ROM Hack CTRPluginFramework - Blank Plugin - Now with Action Replay

  • Thread starter Thread starter Nanquitas
  • Start date Start date
  • Views Views 832,588
  • Replies Replies 1,472
  • Likes Likes 100
I would also like to make a code that gets it's values from another code so that it persists through loading zones. Is there any way of doing that and if so, could someone explain it please. Sorry if this has been answered already.

A better way of explaining what I need to do is that I only really need to know how to have a code that reads a value at a certain address.

example:
GET XXXXXXXX FROM YYYYYYYY
YYYYYYYY = XXXXXXXX
END
This would allow any kind of code that gets reset when the game loads to stay at the same value after it's finished loading.
 
Last edited by Bikkudie,
I would also like to make a code that gets it's values from another code so that it persists through loading zones. Is there any way of doing that and if so, could someone explain it please. Sorry if this has been answered already.

A better way of explaining what I need to do is that I only really need to know how to have a code that reads a value at a certain address.

example:
GET XXXXXXXX FROM YYYYYYYY
YYYYYYYY = XXXXXXXX
END
This would allow any kind of code that gets reset when the game loads to stay at the same value after it's finished loading.
Can't you just set the offset that changes through a loading screen to a static number?

By this I mean just changing the offset and keeping the cheat activated?

Also after some testing i've realised that the F1 code does allow adding but its really fast (sort of) for example in majoras mask 3d eur:
Code:
DD000000 00000400
F1776318 00000001
Adds one ruppee but after pushing X however it's really sensitive in a way and thinks your holding x and adds more ruppees and I think this was @Bummibaer 's problem as his value was changing too fast so he thought it was multiplying but if you tap x really fast it does add one ruppee.
 
That doesn't work for some values if the value was changed by another code
Oh then you'll have to look for pointers and as for that you're going to have to investigate yourself. But heres a video that could help you out:



Its the first video I found so I don't know if it would help.
 
Last edited by MrHaqs,
I don't think that it's pointers as the location never changes, it's always at 089EFC9C. The value just gets reset to 3F800000 after some loading zones, I'll still check the video just in case.
 
I don't think that it's pointers as the location never changes, it's always at 089EFC9C. The value just gets reset to 3F800000 after some loading zones, I'll still check the video just in case.
Then changing the value of fhe offset should keep it the same should it not?

What game are you testing and what code are you trying to make?
 
I'm basically trying to take the code that adds to a value when a button is pressed and have it's value persist through load zones that would reset it. I'm using it on the player's scale value in the game Pokemon Super Mystery Dungeon as a test so that I can use it in other games and for other addresses once it works.
 
I'm basically trying to take the code that adds to a value when a button is pressed and have it's value persist through load zones that would reset it. I'm using it on the player's scale value in the game Pokemon Super Mystery Dungeon as a test so that I can use it in other games and for other addresses once it works.
Oh ok well I can't help you then I'm afraid, sorry about that just keep trying you'll get it eventually.
 
That's alright, I honestly didn't think anyone would know how to do it.

(EDIT)
I found a way to do it, or at least a start! It looks like this:
Code:
D3000000 089EFC00 --- Sets offset 1
DD000000 00004020 --- Checks for ZL+Left (this will need to be changed to get it fully working)
D9000000 0000009C --- Sets Data#1 to the value at [0000009C + offset]
DF000002 00020000 --- Copies Data#1 to Storage#1 (not sure if required)
D0000000 00000000 --- End if
DD000000 00004010 --- Checks for ZL+Right (can be changed to whatever)
DF000002 00010000 --- copies storage#1 to data#1
D6000000 0000009C --- writes the value at [0000009C+offset] to the value at data#1
D2000000 00000000 --- End all

One thing that definitely be changed if possible is the ZL+Right check. If at all possible it could check if the value at the address is back to it's default and then set it back to it's previous value.

EDIT 2
We might be able to drop the storage bits if we use
D2000000 00000001
to exit the code WITHOUT clearing the data

Final Edit

I got it fully working! it's a bit messy though, so feel free to clean it up if you want.
It requires 1 address that gets reset between load zones (NOT THE ONE YOU ARE GOING TO HAVE SAVE)
here is the full working code:
STORAGE BETWEEN LOADING ZONES
Code:
D3000000 [ADDRESS TO CHANGE] (ADDRESS 1) sets offset 1
D3000001 [ADDRESS THAT GETS RESET DURING LOADS] (ADDRESS 2) sets offset 2
DF000000 00000001 sets offset 2 as active
60000000 [DEFAULT VALUE OF ADDRESS 2] checks if the value of address 2 is not it's default value
DF000000 00000000 sets offset 1 as active
D9000000 00000000 copies the value at address 1 into data
DF000002 00020000 copies data to storage
D0000000 00000001 end if
DF000002 00010000 storage back to data
DF000000 00000001 offset 2 active
50000000 [DEFAULT VALUE OF ADDRESS 2] checks if address 2's value is equal to it's default
DF000000 00000000 offset 1 active
D6000000 00000000 sets address 1 to stored value
DF000000 00000001 offset 2 active
F1000000 00000001 (WORKS BEST IF ADDRESS 2 IS A FLOAT*) adds 1 to address 2
D2000000 00000001 exit immediately

*a float should be stored as a 4 byte value with a hex value of 3F800000 if the default value is 1.000
 
Last edited by Bikkudie,
Hello!
I´ve done all (maybe not) the steps and get this working, but no cheats appear when I touch Action Replay through the games. I´ve downloaded the DB from github and try within the folders with the game name inside sd:\cheats, won´t work. Tryied to move all the .txt files for sd:\cheats but won´t work either. Any hint?
 
Hello!
I´ve done all (maybe not) the steps and get this working, but no cheats appear when I touch Action Replay through the games. I´ve downloaded the DB from github and try within the folders with the game name inside sd:\cheats, won´t work. Tryied to move all the .txt files for sd:\cheats but won´t work either. Any hint?
I might be wrong on this, but the .txt files need to be named the same as the title ID of the game you want to use them with.
 
  • Like
Reactions: MUDD_BR
I might be wrong on this, but the .txt files need to be named the same as the title ID of the game you want to use them with.
ah, I thought the pattern "00040000000D9D00.txt" already was the game ID, so I´ll make some research. Thanks, buddy!!

Edit: No, all the txt files are using correct title ID according to my research. weird...
 
Last edited by MUDD_BR,
  • Like
Reactions: Bikkudie
ah, I thought the pattern "00040000000D9D00.txt" already was the game ID, so I´ll make some research. Thanks, buddy!!

Edit: No, all the txt files are using correct title ID according to my research. weird...

I ran into problems trying to use cheats on a cartridge. Maybe your doing the same?
I downloaded the same game and the cheats seemed to work fine iirc.
Also some homebrew apps might use sd:/cheats, I think there might be an alternative folder struc to use? Been a while since I set it up.
 
  • Like
Reactions: MUDD_BR
ah, I thought the pattern "00040000000D9D00.txt" already was the game ID, so I´ll make some research. Thanks, buddy!!

Edit: No, all the txt files are using correct title ID according to my research. weird...
Maybe try making a blank cheat in the game you are trying to get cheats for and then replace the .txt that that makes? I can't think of much else, unless you have the plugin itself in the wrong folder.
 
  • Like
Reactions: MUDD_BR
Thanks for the answers, @Bikkudie and @Kymsplat, I´ll try again later.
Are you using the EUR or US version of Altered beasts?
Oh and if you are I should also mention that the text file only contains one cheats so it would be easier to type and create the cheat instead of hassling yourself messing with files. :)
 
Last edited by MrHaqs,
  • Like
Reactions: MUDD_BR
Are you using the EUR or US version of Altered beasts?
Oh and if you are I should also mention that the text file only contains one cheats so it would be easier to type and create the cheat instead of hassling yourself messing with files. :)
Thanks for the hint, but I´ve just tryied with super mario 3d land us ver.
 
And did it work?
Nope. I´ll try again later, with another game and return to update, thanks!

EDIT:
It worked! Thanks!!! I´ve made the create new cheat and then copy content for empty file.

Now I´ve some questions:

1) It´s possible to, after disable street pass avoid messages asking for it to be activated on every game?

2) It´s possible to enable plugins on Luma menu and save it? Bc I need to set this every time?

3) Ah, after I close the game with plugin activated, if I t ry to open another one it crashes, this answer my 2nd question?

Thanks everybody!
 
Last edited by MUDD_BR,

Site & Scene News

Popular threads in this forum