ROM Hack CTRPluginFramework - Blank Plugin - Now with Action Replay

G1ZM02K

Member
Newcomer
Joined
Jan 28, 2019
Messages
7
Trophies
0
Age
49
XP
997
Country
United Kingdom
i need to help my daughter to cheat with health in kirby triple deluxe
Hi Ilya,

Let's give Kirby Triple Deluxe's main game a shot, eh?

Start the game so you're in the level...

1a. Press 'Select' to bring up the menu.
1b. Change 'Search Type:' to 'Unknown' and click 'Search'; you'll get over 15 million hits - this is normal!
1c. Press 'A' to go back to the results window.
1d. Go back to the game by pressing 'Select', then 'B' to cancel the in-game 'Select' menu.

2a. Lose some health and then press 'Select' to open the menu again.
2b. Change 'Scan Type:' to 'Smaller Than' and click 'Search'; this will still be quite high to start with.
2c. Repeat 2a and 2b a few times until you get around 1000 hits or so.

3a. Go back to the game and move around a bit; this is to change some values we don't want.
3b. Open the menu again and change 'Scan Type:' to 'Equal To' and hit 'Search'; it's going down.
3c. Do this a few times and the hits will drop to around 25.

4. Switch between steps 2a-c and 3a-c until you've only got one digit left - try not to die!

5a. Get hit enough times that Kirby loses all life and restarts.
5b. Open the menu and change the 'Search Type:' to 'Bigger Than' and hit 'Search'.
5c. You should be down to 5 hits now and they won't get any lower (if not, keep doing the above until you are).

On a new life you should end up with something like these; your 'Old Value's will differ depending on the health you had before dying:

Address New Value Old Value Notes:
155E0E00 3F800000 3E19999A Check code?
15B11F3C 000002A0 00000060 Current Health?
15B11F40 000002A0 00000090 Previous Health?
15B17B60 3F800000 3E19999A Check code?
15B17B64 3F800000 3E19999A Check code?


You might have spotted a pattern by now as the results got fewer and fewer, that 2 looks like it's dropping at the same rate as our health and 3 held the previous value of 2. You'll likely have also noticed that results 1,4, & 5 were decreasing too; they're likely some check values - as you'll soon find out...

Just save each cheat individually while you're testing stuff, so:
  • Highlight a line and press 'X'.
  • Select 'New cheat'.
  • Give it a name (I just called them 1-5 for now; you can change them later).
  • Press 'B' to exit out.
  • Repeat this for the other addresses.
When done, press 'B' to go back to the main menu, and click on 'Action Replay' to see your newly created cheats!

Tick the 2nd and 3rd boxes (using 'A') to see if they work in the game (they don't); so go back to the 'Action Replay' menu and tick the other 3 boxes too. Try that, and...

You've just created your first infinite health cheat!

Use the same idea for other games - bear in mind that a lot of things like the check values (3F800000, above) are found through trial and error so don't be afraid to write stuff down and try different things; it's not an exact science but you'll learn to spot certain patterns the more you do it.

Hope this helps 😁
 

Ilya668111

Member
Newcomer
Joined
Aug 3, 2020
Messages
10
Trophies
0
Age
34
XP
373
Country
Russia
Good day dear G1ZM02K
Everything is very clear. Thanks a lot! But next stage it doesn't work. and health bar is deacreasing again when i receive damage :-(
Does it mean that health bar of every stage has different memory location? Is it possible to fix that?
 

G1ZM02K

Member
Newcomer
Joined
Jan 28, 2019
Messages
7
Trophies
0
Age
49
XP
997
Country
United Kingdom
Hi again Ilya,

I didn't check that far ahead to be honest as it's the first time I've picked up my 3DS in years, but that would seem to be the case. It looks like other people haven't had much luck with health on that game either as any cheats I've found online only give 99 lives...

Since I can't post links, I'd suggest using Google (or another search engine) and search for "JourneyOver CTRPF-AR-CHEAT-CODES" and it should be the first link shown. If you click that link (to GitHub), then click the 'Cheats' folder in the centre box it'll take you to a list of cheats for the 3DS that have already been found.

Both Triple Deluxe and Planet Robobot are in the list so just click on one, right-click on the numbered text file (starting 0004) and 'Save as'. Repeat for any other games in the list. You can then drop these onto your 3DS in the 'cheats' folder in the root/main directory (create 'cheats' if it doesn't exist). You can then access them from the Rosalina menu to turn them on and off.

I admit it's a bit of a pain, but it's always safer to use other people's tried and tested codes as writing your own can have unexpected issues further down the line depending on how the game was written; and nobody wants to get to the end of a long level just to have it crash on you.
 
  • Like
Reactions: Ilya668111

Ilya668111

Member
Newcomer
Joined
Aug 3, 2020
Messages
10
Trophies
0
Age
34
XP
373
Country
Russia
Good day dear @G1ZM02K
My 3ds received second life after my daughter grow up :)
Many good games for kids.
About Rosalina thanks. I use it for other games. Wanted to add some invincibility cheats to those games which haven't that cheats. Alas, it is impossible as i understand.
Anyway, thanks a lot for your help. You have big and kind heart for sure!
 
  • Like
Reactions: G1ZM02K

Divinehero2

New Member
Newbie
Joined
Jul 7, 2022
Messages
1
Trophies
0
Age
40
Location
Louisiana
XP
37
Country
United States
i'm uh not sure how to make this work i grabbed the luma and AR files off the 1st post put them in the spot mentioned and tried to open it in game but nothign comes up and i did remember to enable plugins via the rosalina menu

sorry if this sounds ignorant but i'm kinda new at this
 

moemah123

New Member
Newbie
Joined
Jul 7, 2022
Messages
3
Trophies
0
Age
34
Location
Usa
XP
29
Country
United States
I need some help with devkitpro and libctru. Whenever I try to build the latest files using make. I run into errors error: '__syscalls' undeclared (first use in this function)

How do people build this lib successfully? I am trying to follow analogman151 guide, but downloading devkitpro and libctru and libctrpf keeps running into failures. Is this right place in forum to ask as I am new here?
 

PabloMK7

Red Yoshi! ^ω^
Developer
Joined
Feb 21, 2014
Messages
2,604
Trophies
2
Age
24
Location
Yoshi's Island
XP
5,026
Country
Spain
I need some help with devkitpro and libctru. Whenever I try to build the latest files using make. I run into errors error: '__syscalls' undeclared (first use in this function)

How do people build this lib successfully? I am trying to follow analogman151 guide, but downloading devkitpro and libctru and libctrpf keeps running into failures. Is this right place in forum to ask as I am new here?
That happens if you try to compile with an old CTRPF. Update to the latest one.
 

moemah123

New Member
Newbie
Joined
Jul 7, 2022
Messages
3
Trophies
0
Age
34
Location
Usa
XP
29
Country
United States
That happens if you try to compile with an old CTRPF. Update to the latest one.
Would you kindly tell me where to get latest one or its full name? Also, I am pretty sure I had recent ones because most of it comes installed with devkitpro commands no?

running make && makeinstall make[1]: '/opt/devkitpro/libctru/lib/libctru.a' is up to date.

then running it from game folder, not sure what i am doing wrong if make passed for current libctru?

linking Re-Decode.elf
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:/devkitPro/libctrpf/lib\libctrpf.a(syscalls.o): in function `__system_initSyscalls':
syscalls.c:(.text.__system_initSyscalls+0xac): undefined reference to `__syscalls'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: syscalls.c:(.text.__system_initSyscalls+0xb8): undefined reference to `__libctru_gtod'
 
Last edited by moemah123,

PabloMK7

Red Yoshi! ^ω^
Developer
Joined
Feb 21, 2014
Messages
2,604
Trophies
2
Age
24
Location
Yoshi's Island
XP
5,026
Country
Spain
Would you kindly tell me where to get latest one or its full name? Also, I am pretty sure I had recent ones because most of it comes installed with devkitpro commands no?

running make && makeinstall make[1]: '/opt/devkitpro/libctru/lib/libctru.a' is up to date.

then running it from game folder, not sure what i am doing wrong if make passed for current libctru?

linking Re-Decode.elf
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:/devkitPro/libctrpf/lib\libctrpf.a(syscalls.o): in function `__system_initSyscalls':
syscalls.c:(.text.__system_initSyscalls+0xac): undefined reference to `__syscalls'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: syscalls.c:(.text.__system_initSyscalls+0xb8): undefined reference to `__libctru_gtod'
Where are you running make? That looks like your are trying to update libctru, not CTRPF.
The latest lib files are here: https://gitlab.com/thepixellizeross...5b13a8c7c3676/libctrpf-0.7.3-82e697c2.tar.bz2
 
  • Like
Reactions: moemah123 and Nutez

moemah123

New Member
Newbie
Joined
Jul 7, 2022
Messages
3
Trophies
0
Age
34
Location
Usa
XP
29
Country
United States
Thank you so much, I tried to use one I found from different github and it didn't work. Using yours, it was easy to replace and it worked! I appreciate it
 

DidierSardine

Member
Newcomer
Joined
Dec 18, 2020
Messages
13
Trophies
0
Age
123
XP
119
Country
France
(I'm French, so sorry if it's badly explained)

I can't find AR codes for RPG Maker Fes (EUR), so I'm trying to learn how to make AR codes so I can do it myself, but I have an issue.

I'm trying to make a code to increase by 1 the level of the character in slot 1 of the party everytime I press L and D-PAD Right, and to decrease the level by 1 when I press L and D-PAD Left, but I want it to NOT REPEAT when I hold the buttons. When I press D-PAD (Left or right) and L, it loops the code so fast that it goes up by something between 4 and 6. This is because it keeps increasing/decreasing the value as L+D-PAD are pressed, but I want it to do +1 or -1 ONE TIME and then wait until I release L+D-PAD and press them another time.

Here's the code I made: https://pastebin.com/CRQmqwHa

Could someone tell me what's wrong and explain the issue please ?
 

iSharingan

Show me your power
Member
Joined
Jun 23, 2016
Messages
804
Trophies
0
XP
1,636
Country
United States
(I'm French, so sorry if it's badly explained)

I can't find AR codes for RPG Maker Fes (EUR), so I'm trying to learn how to make AR codes so I can do it myself, but I have an issue.

I'm trying to make a code to increase by 1 the level of the character in slot 1 of the party everytime I press L and D-PAD Right, and to decrease the level by 1 when I press L and D-PAD Left, but I want it to NOT REPEAT when I hold the buttons. When I press D-PAD (Left or right) and L, it loops the code so fast that it goes up by something between 4 and 6. This is because it keeps increasing/decreasing the value as L+D-PAD are pressed, but I want it to do +1 or -1 ONE TIME and then wait until I release L+D-PAD and press them another time.

Here's the code I made: https://pastebin.com/CRQmqwHa

Could someone tell me what's wrong and explain the issue please ?
AR codes run every frame while the code is activated, so your code is repatedly loading the value, adding/subtracting one, the writing it back in one cycle, the repeating it a frame later while the button is still held, etc.

To fix your code, replace lines 10 and 16 (restoring the value) with a write a value of 1 to an arbitrary section of empty code (all 0s - but verify the game doesn't use it for other data later and theres just not items/data there yet). At the beginning of the code, add a write of 0 to that arbitrary address so it always resets when the code tryies to execute each frame. This way when the button is held it only copies the current data and incriments it by 1, then uses the arbitrary address as a "button is still pushed" flag. You can also remove the D2 code at the end if you make sure to close all the conditionals with a D0, making it easier to add the next bit at the end of the code without the D2 clearing the data register:

To write the changes, put a new set of conditionals at the end of the code. there's two simple ways to do it - one makes it reliant on CTRPFAR functions and is arguably simpler, or using a workaround with core Gateway code types.

V1 - your code will only run in v1.6+ CTRPFAR plugins, including loaded from [titleID].txt files on a blank plugin:

DFFFFFFF 00000002 - Conditional codes: Value in active Data is compared to YYYY (immediate value)
60000000 0000000 - if [Data] is not 0 (behavior has been modified by the line above) so we don't reset to level 0 by accident
DFFFFFFF 00000000 - resets conditional bahavior to normal
6XXXXXXX 0000000 - if arbitrary "button pressed" value is 0, meaning the earlier incrementing code did not run this cycle. X is the arbitrary address used
D7000000 005CF539 - restore stored value to level
D5000000 00000000 - reset the value in Data so it doesn't overwrite normal game-play behavior
D0000000 00000000 - close inner condtional (manual button flag check)
D0000000 00000000 - close the outer conditional (data check)

V2 - your code can run on Gateway, Rosalinamenu, and CTRPFAR:

6XXXXXXX 0000000 - if arbitrary "button pressed" value is 0, meaning the earlier incrementing code did not run this cycle. X is the arbitrary address used. X MUST be smaller than 0x10000000 or you'd need to use a manual offset that can screw up other offsets you try to use
D7000000 0XXXXXXX{+4} - Write the value in data to the address 4 bytes past the arbitrary button flag at address X
DC000000 FFFFFFFE - D7 codes add 2 bytes to the current offset, so you need to subtract it again. Unless you're copying a lage section of data to a new location in sequence, its wise to always do this after writes from a data register to keep your offsets from drifting - especially in long codes
6XXXXXXX{+4} 00000000 - If the value we just stored isn't 0, a level was stored on a previous loop
D7000000 005CF539 - restore stored value to level
DC000000 FFFFFFFE - again, a D7 code was used, so reverse the offset change
D5000000 00000000 - reset the value in Data to break the write loop
D0000000 00000000 - close inner condtional (manual button flag check)
D0000000 00000000 - close the outer conditional (data check)
 
Last edited by iSharingan,
  • Like
Reactions: cearp

DidierSardine

Member
Newcomer
Joined
Dec 18, 2020
Messages
13
Trophies
0
Age
123
XP
119
Country
France
Thanks for your anwser, I just tested and it didn't work. I tried on CTRPF with both of the solutions you said, the first one did not work (it was just keeping increasing/decreasing every frame while L+D-PAD where pressed), and when I was decreasing level while being level 1 it did not put me back at level 99, it was leaving me at level 1. The second one just did nothing (increasing/decreasing every frame while L+D-PAD pressed). Also, I don't have any documentation about DFFFFFFF codes (I mean, I don't have a lot of documentation about how do AR works on CTRPF), here's what I have: https://nintendq.forumotion.com/t45-action-replay-code-types
I also have this: https://gist.github.com/Nanquitas/d6c920a59c757cf7917c2bffa76de860
(But I still don't understand DFFFFFFF, so I can't fix issues if there are any)
Sorry, I ask a lot of things, and what I am about to ask probably have nothing to do with AR, and I don't think it's possible with AR, but how can I use the little keyboard icon in CTRPF ? For exemple, it would be better to have a code that runs ONE TIME (the codes with a little gear icon in plugins, and also, how can I make them 😅) and that ask the user to input a number with a keyboard (for exemple: 66) and then it runs and sets the level to 66, or a code that make you chose between a selection (like you press the keyboard icon and it asks you to pick between multiple options), or also, the little controller icon, to change the keybind of a code. Also, how could I get, for exemple, the name of a class. Let's say, a class on slot 6 is named "Barbarian", how could I make it so in the code options (the keyboard icon) it will make me chose between multiple class, with their correct names, and, in 6th place (to follow my exemple) I would have "Barbarian".
I don't know if I was clear with what I said, and also, I'm sorry to ask that much questions, and if you have any documentations that could help me learn AR, or how to make CTRPF plugins (with the keyboard and gamepad[...] functions) I would really love to read it. I searched on Google but I only find AR documentation for Nintendo DS.
 

iSharingan

Show me your power
Member
Joined
Jun 23, 2016
Messages
804
Trophies
0
XP
1,636
Country
United States
Thanks for your anwser, I just tested and it didn't work. I tried on CTRPF with both of the solutions you said, the first one did not work (it was just keeping increasing/decreasing every frame while L+D-PAD where pressed), and when I was decreasing level while being level 1 it did not put me back at level 99, it was leaving me at level 1. The second one just did nothing (increasing/decreasing every frame while L+D-PAD pressed). Also, I don't have any documentation about DFFFFFFF codes (I mean, I don't have a lot of documentation about how do AR works on CTRPF), here's what I have: https://nintendq.forumotion.com/t45-action-replay-code-types
I also have this: https://gist.github.com/Nanquitas/d6c920a59c757cf7917c2bffa76de860
(But I still don't understand DFFFFFFF, so I can't fix issues if there are any)
Sorry, I ask a lot of things, and what I am about to ask probably have nothing to do with AR, and I don't think it's possible with AR, but how can I use the little keyboard icon in CTRPF ? For exemple, it would be better to have a code that runs ONE TIME (the codes with a little gear icon in plugins, and also, how can I make them 😅) and that ask the user to input a number with a keyboard (for exemple: 66) and then it runs and sets the level to 66, or a code that make you chose between a selection (like you press the keyboard icon and it asks you to pick between multiple options), or also, the little controller icon, to change the keybind of a code. Also, how could I get, for exemple, the name of a class. Let's say, a class on slot 6 is named "Barbarian", how could I make it so in the code options (the keyboard icon) it will make me chose between multiple class, with their correct names, and, in 6th place (to follow my exemple) I would have "Barbarian".
I don't know if I was clear with what I said, and also, I'm sorry to ask that much questions, and if you have any documentations that could help me learn AR, or how to make CTRPF plugins (with the keyboard and gamepad[...] functions) I would really love to read it. I searched on Google but I only find AR documentation for Nintendo DS.
DFFFFFFF changes how conditionals evaluate, but its a function specific to CTRPFAR, so running the code through Rosalina Menu won't work - it has to be through the CTRPFAR plugin. Default behavior is to evaluate the value at 0XXXXXXX + the active offset (offset can be set/modified with D3 and DC codes to let you target addresses higher than 0FFFFFFF) against the YYYY value. After DFFFFFFF 00000002, it will ignore the address (0XXXXXXX) + offset input and check Data against YYYY.

The step I suspect you may have overlooked is removing the writes back to memory (D7 codes) from data inside the button conditionals. That or you didn't pick an arbitrary address well to use as an ad-hoc "button was pressed" variable

As for the gear edit options, those have to be manually coded into the plugin, built from source code specifically for the game you're playing.
[CTRPF]AR is more about the flow of your code logic than it is a separate language. It mainly boils down to opening/closing/nesting your conditional blocks in the right sequence, using the correct conditionals, and putting the right read/write commands inside. That gist you linked is plenty - you jsut have to know how to read it. For example, the conditional code descriptions is [input] compared to [value at address + offset], which is backwards from what the code looks like, inputting the address (to add to the offset) then the value to compare. IE: 4XXXXXXX 00001234 would seem to imply a check of [value at address X] > 0x1234 when its really doing the reverse, 0x1234 > [value at address X]. When using the code editor in the blank CTRPFAR plugin, the pseudocode output on the right pane will be the biggest help (and it updates for altered conditional states under DFFFFFFF codes). The key is remebering the code executes from top to bottom and if a conditional is false, it skips all code until the next D0/D2 code - only ignoring the specific case of D2000000 00000001, which you can use to exit a loop early.

If you're still having trouble, instead of using a "button is pressed" variable, you can just set up a 'timer' to add one to an arbitrary address every frame and only execute the main part of the code when it equals 10 (or whatever. Just remember to reset the 'timer' address as part of the main code and reverse any offset changes when writing data to an address). I'm intentionally not telling you the exact codes to use, as figuring this out on your own will help you devise other solutions later (plus it shouldn't be too difficult - your original code does 95% of it already).
 

DidierSardine

Member
Newcomer
Joined
Dec 18, 2020
Messages
13
Trophies
0
Age
123
XP
119
Country
France
Thanks for your answer. I've check the modified code with what you told me before, to see if I haven't made a mistake, and I don't think so, here's the code:
https://pastebin.com/xBuT6QXD
(Also, I think I understood how DFFFFFFF works now, but I don't think the issue comes from here)
I tried the timer solution, even if it is not what I am really looking for, and it doesn't work (I might be dumb tho), here's the code:
https://pastebin.com/p9ZVEDKt
Also, there isn't any solution to check if a button IS NOT pressed ? It would be much simpler to create this type of code if this was possible.
 

iSharingan

Show me your power
Member
Joined
Jun 23, 2016
Messages
804
Trophies
0
XP
1,636
Country
United States
Also, there isn't any solution to check if a button IS NOT pressed ? It would be much simpler to create this type of code if this was possible.
Sadly, no. The way button checks work, it only checks for the specified buttons. If additional buttons are pressed, they are ignored, thus a check for no buttons is always 'true'. I suppose adding D2000000 0000001 (exit code immediately) in the button activator conditionals would prevent code execution beyond that when the button is pressed, letting it be ignored when the specific button isn't pressed so the code afterwords will execute.

Its been a while since I worked on making 3DS codes so it slipped my mind, but values in offset and data will be reset at the beginning of every frame when the code starts to execute - but if you store the value in data to a storage register (which keep their value between code executions) after changing the value when a button is pressed with DF000002 00020000 (Copy data #1 to storage #1), then pull it back at the start of the code (to use on the next loop) with DF000002 00010000 (Copy storage #1 to data #1), you can use the value in data as if its persistent. On a related note, D3000000 00000000 is meaningless on the first line since, again, the offset is already reset at the start of code execution (it doesn't hurt anything, but literally does nothing). As for the timer version, your offset is drifting due to not reverting changes your offset after the D7 code to increment the timer so the conditionals after it aren't checking the correct address (D6, D7, and D8 codes increase the offset automatically by 4, 2, and 1 byte respectively after writing the value in data to memory. After using a D7 code, add DC000000 FFFFFFFE to move the offset back 2 bytes to reverse the change). In this specific case, D3000000 00000000 would work to reset your offset, but using DC and a negative number is a better habbit for cases where you will want to keep a non-zero or dynamicly modified value in your offset or modify the offset as part of a loop function (C code) to modify multiple addresses in one code.
 

DidierSardine

Member
Newcomer
Joined
Dec 18, 2020
Messages
13
Trophies
0
Age
123
XP
119
Country
France
Thanks for your answer, for the timer code, I tried to add a DC000000 FFFFFFFE line every D7 line, and it still doesn't work, and when I press L+D-PAD Left it does not decrease the levels. For the first solution, I also tried to use DF000002 00020000 before the D0 line of my conditional blocks and I replaced the first line (D3000000 00000000) with DF000002 00010000 and I don't know why but it still doesn't work, I might have done something wrong ? I think I might have to learn how to make .3gx plugin to finally make this work :/
 

Ezkyee

New Member
Newbie
Joined
Dec 10, 2022
Messages
1
Trophies
0
Age
33
XP
59
Country
Mexico
Hi. I'm sorry, i'm new here and tried to use this boot.firm on my 3DS (i want to use some cheats on Pokemon Ultra Sun/Ultra Moon). But when i start my 3DS a ""Failed to apply 1 FIRM patch(es)"" error msg appear... Help, please?
 

eXtremeDevil

Well-Known Member
Member
Joined
Sep 5, 2012
Messages
130
Trophies
1
XP
486
Country
How is the config saving work? My config has reset a few times... also, I guess it is normal for the "Mapper" button to be greyed out, right?
 

SSplatoon3DS

Active Member
Newcomer
Joined
Nov 12, 2022
Messages
30
Trophies
0
Age
17
XP
193
Country
France
Hey guys ! :)
Here's my little Chrismas Gift for you !

Let's start with CTRPF with Action Replay support !
So you'll be able to load codes from text files (that can be find on Fort42 or even on this forum).
The file can be at 2 locations:
  • cheats.txt placed in the same folder of the plugin (like /plugin/<tid>/cheats.txt)
  • If the cheats.txt file is not found, then the plugin search for a <tid>.txt file in sd:/cheats folder (like sd:/cheats/<TID>.txt)
No editor for now but it's planned, however it should be compatible with all working Gateshark codes.
Here's a list of all the code types support by this Action Replay (all Gateshark and more !).

It supports folders and note generated with NTR Plugin Manager. ;)

Note that this version can break the compatibility with others plugins, it's still highly in dev and crashs should be expected.
Backup your saves before using it !!! There's many tools for that.

Big thanks to @AnalogMan, @Anto726, @Mega-Mew, @Scotline and @Vermil for the beta testing, they were a big help as I don't have much time to test things (and found some huge bugs). :)

My second gift for you is my POC of a plugin loader within Luma3DS 9.0.
This version of Luma3DS can loads plugin without the need to use BootNTR.

However, keep in mind that only CTRPF plugins can be launched with it (and they must be recently compiled, old versions might not work) and the path as well as plugin's name is static:
  • sd:/luma/plugins/<tid>/plugin.plg
Must be this exact path or it won't work.
Also, the plugin loader only works on fw equal or higher than 11.4.

Good new, O3DS users can now use CTRPF on Mode3 games with this plugin loader (so you can use ultraSumoFramework on O3DS).

I recommend using this plugin loader as well for the ActionReplay ctrpf. ;)

That's all, Merry Christmas too all of you ! :)

A newer version can be found in the OP, with bugfixes and a full InGame Code Editor !
Prefer it instead of the attached files of this post.
Does it work on .3gx luma version?
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    SylverReZ @ SylverReZ: But I bet that would be more for a flashcart than a consumer repro board.