ROM Hack CTRPluginFramework - Blank Plugin - Now with Action Replay

  • Thread starter Thread starter Nanquitas
  • Start date Start date
  • Views Views 832,618
  • Replies Replies 1,472
  • Likes Likes 100
i put everything where i think they should be, there should be a picture that shows what files go where. That would help a lot.

--------------------- MERGED ---------------------------

nevermind it just decided to work
 
Yeah, you just have to turn off the Plugin loader in Rosalina before launching your Homebrew. ;)

I have this same issue with games/applications stalling on the load screen after using ctr. The result is the same after disabling the plugin with Rosalina menu.
For now, after playing a game with the ctrpf plugin, I just exit the game, call up Rosalina menu and reboot system. Not too bad of a workaround.

I don't think this is a problem with ctr, because I had the exact same problem with NTR CFW, (the problem is likely on that end).

In fact, this problem is common with NTR CFW if you look around online. I wonder what could cause this issue even after the plugin has been disabled with Rosalina?

Anyway, thank you for offering this application to the community, I've been having a lot of fun with it!
 
Last edited by 0x3000027E,
  • Like
Reactions: Nanquitas
I have this same issue with games/applications stalling on the load screen after using ctr. The result is the same after disabling the plugin with Rosalina menu.
For now, after playing a game with the ctrpf plugin, I just exit the game, call up Rosalina menu and reboot system. Not too bad of a workaround.

I don't think this is a problem with ctr, because I had the exact same problem with NTR CFW, (the problem is likely on that end).

In fact, this problem is common with NTR CFW if you look around online. I wonder what could cause this issue even after the plugin has been disabled with Rosalina?

Anyway, thank you for offering this application to the community, I've been having a lot of fun with it!
It's the same issue that you could have with NTR since Luma's plugin loader is NTR's code ported and adjusted to work without the need to inject NTR.
I mostly made it for convenience, as it's faster to test plugins (and as plugin developer, you reboot a looooot, so waiting for NTR to load + boot rate => :hateit:).

As to why it does that, I had some guesses but no fix to propose. I have an idea I'd like to try when I'll have the time, but I'm far from confident that it could solve it.
In the worst case it would just make the plugin loader better and compatible on most firmwares (for now it only works on >= 11.4 iirc).

--------------------- MERGED ---------------------------

Btw, there's a reboot option in CTRPF->Tools which will reboot your 3DS.

It's the fastest way to switch games and use plugins so far.
 
Just wanted to pop in and say you've done an amazing job with the Action Replay implementation! :)
Thanks to your well-done AR code write-up I was able to convert my Cave Story libShark2NTR plugin within a couple hours.
 
  • Like
Reactions: Nanquitas
Just wanted to pop in and say you've done an amazing job with the Action Replay implementation! :)
Thanks to your well-done AR code write-up I was able to convert my Cave Story libShark2NTR plugin within a couple hours.
Thanks, next version will add some code types and among them one to easily create hook to game code. :D
 
Hey code creators ! :)

So, I'm currently working on a new hook system and thanks to that I can finally propose a hook code for the Action Replay.

I'm thinking about a syntax, but I'd like your thoughts on it (ideas & suggestions to improve it) as you'll be those who'll use it.
For now I have this:
Code:
FD0000AB YYYYYYYY - Create a hook at offset to custom code (ZZZZ), YYY is code size in bytes
ZZZZZZZZ ZZZZZZZZ
A - Manual Return (don't allow the assisted bx lr), set 1 to enable
B - Don't Execute Overwritten Instruction Before custom code, set 1 to enable

FD100000 YYYYYYYY - Disable a hook at address YYYYYYYY if exists

Example of code usage
Code:
Zelda OOT
[Inf HP]
D3000000 00352E24 - Offset = 0x00352E24
FD000000 0000000C - New hook at offset, 12 bytes
E1D504B2 E1C504B4 - ldrh r0, [r5, #0x42], strh r0, [r5, #0x44]
E12FFF1E 00000000 - bx lr
D2000000 00000000 - End


Note about the hook system:
- A hook can only be created if the target address isn't already hooked
- All hooks created by a code will be disabled when the code is disabled in the menu (or edited)
- With default parameters (and except for instruction which are PC depending), the overwritten instruction is executed before executing the custom code (ZZZZ)
- A maximum of 91 enabled hooks is available in same time
- No need for a code cave, the code will be placed into CTRPF's memory (so you can do really long code)

If you have questions or needs more options, feel free to ask, I'll see what is possible to do. ;)

Thanks
 
Hey code creators ! :)

So, I'm currently working on a new hook system and thanks to that I can finally propose a hook code for the Action Replay.

I'm thinking about a syntax, but I'd like your thoughts on it (ideas & suggestions to improve it) as you'll be those who'll use it.
For now I have this:
Code:
FD0000AB YYYYYYYY - Create a hook at offset to custom code (ZZZZ), YYY is code size in bytes
ZZZZZZZZ ZZZZZZZZ
A - Manual Return (don't allow the assisted bx lr), set 1 to enable
B - Don't Execute Overwritten Instruction Before custom code, set 1 to enable

FD100000 YYYYYYYY - Disable a hook at address YYYYYYYY if exists

Example of code usage
Code:
Zelda OOT
[Inf HP]
D3000000 00352E24 - Offset = 0x00352E24
FD000000 0000000C - New hook at offset, 12 bytes
E1D504B2 E1C504B4 - ldrh r0, [r5, #0x42], strh r0, [r5, #0x44]
E12FFF1E 00000000 - bx lr
D2000000 00000000 - End


Note about the hook system:
- A hook can only be created if the target address isn't already hooked
- All hooks created by a code will be disabled when the code is disabled in the menu (or edited)
- With default parameters (and except for instruction which are PC depending), the overwritten instruction is executed before executing the custom code (ZZZZ)
- A maximum of 91 enabled hooks is available in same time
- No need for a code cave, the code will be placed into CTRPF's memory (so you can do really long code)

If you have questions or needs more options, feel free to ask, I'll see what is possible to do. ;)

Thanks
so it means no more EBXXXXXX jump to code cave? woooooooooh...... incredible!
 
Last edited by Sonansune,
so it means no more EBXXXXXX jump to code cave? woooooooooh...... incrediable!
Yep, no need to manually copy bytes all over the place (still available of course).

Here the branch & the code is automatically handled and the return to game is assisted (you use bx lr to exit your code, but lr will be restored before returning to game).
And no need for a code cave available in the branch range anymore. ;)
 
Yep, no need to manually copy bytes all over the place (still available of course).

Here the branch & the code is automatically handled and the return to game is assisted (you use bx lr to exit your code, but lr will be restored before returning to game).
And no need for a code cave available in the branch range anymore. ;)
dont know what to say....:bow:
 
  • Like
Reactions: Nanquitas
So what's a hook?

Also I did want to thank you for making this. It's fun being able to do the different things with this (like playing Kid Icarus with Dark Pit).
 
  • Like
Reactions: Nanquitas
So what's a hook?
A hook is a process which allows to redirect the code flow from a target to a custom code before returning to the original code location.

I don't know exactly how to phrase this in english sorry...

Basically, it allows to inject custom asm routines at defined point in the game.
The real gain is that you can do absolutely everything in asm, at the condition that you have an understanding of asm of course.

Asm injection is already possible thanks to the E code, but it can be bothersome to use, and disabling a code is annoying.
This new code will handle many things automatically and hence make the creation of asm code easier.
 

Site & Scene News

Popular threads in this forum