ROM Hack Super Mario advance 2 two run buttons ROM hack

Finji

Member
OP
Newcomer
Joined
Jan 18, 2022
Messages
5
Trophies
0
Age
19
XP
3
Country
Poland
Hello, I've been wondering if there's a romhack of Super Mario advance 2 that let's you run with L trigger and B button (basically 2 run buttons like on snes). I'm because I really hate that you can't turn with cape (I mean you can but it's really weird), also if it would be possible to remap L to an alternative run button that would make a lot possiblities for romhacks (like those on SMWCentral).
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
34,929
Trophies
2
Website
trastindustries.com
XP
24,356
Country
United Kingdom
I have not checked the various Mario hacking forums (granted most of those are not terribly concerned with the GBA entries, especially not this one) and don't see it on https://www.romhacking.net/?page=ha...e=20&order=&dir=&title=&author=&hacksearch=Go either.

To that end you would probably have to do it yourself. Control hacks are doable enough, though would be jumping in the deep end somewhat compared to the graphical/text/cheat things most spend their time contemplating.

You have various approaches. If you can find whether the game has a "is running" mode/state (should be doable with a cheat search) then you might even be able to do it with a cheat - set running mode if L is pressed just as you might refill health in another game with a button press.

If there is no simple state then I would probably go the other way and focus on the graphical aspects -- running moves more pixels per frame than walking so somewhere in that will be the calculation, and eventually further back the check on the button press.
You could go the other way and note button presses. Most consoles have a point in memory that corresponds to button presses ( http://problemkaputt.de/gbatek.htm#gbakeypadinput ), though it is generally not suggested to use it directly in your code. Instead once a frame it is copied and everything operates on that instead (saves two different states happening during two reads in a frame because the switch is slightly dirty or not quite fully closed and flicking between things). You could do something like if L pressed then also change the state of B, or you could set whatever reads B to also read L, or you could add another section of code that checks for L and does what B would normally go/jumps to where B would normally go. I have a guide https://gbatemp.net/threads/gbatemp-rom-hacking-documentation-project-new-2016-edition-out.73394/ and https://www.romhacking.net/documents/361/ is for an old fork of VBA (no$gba debug is free and https://wrongbaud.github.io/posts/ghidra-debugger/ is also good stuff) but covers the basics of tracing, which should be what you need to start fiddling with code.
 
  • Like
Reactions: Finji

Finji

Member
OP
Newcomer
Joined
Jan 18, 2022
Messages
5
Trophies
0
Age
19
XP
3
Country
Poland
I have not checked the various Mario hacking forums (granted most of those are not terribly concerned with the GBA entries, especially not this one) and don't see it on either.

To that end you would probably have to do it yourself. Control hacks are doable enough, though would be jumping in the deep end somewhat compared to the graphical/text/cheat things most spend their time contemplating.

You have various approaches. If you can find whether the game has a "is running" mode/state (should be doable with a cheat search) then you might even be able to do it with a cheat - set running mode if L is pressed just as you might refill health in another game with a button press.

If there is no simple state then I would probably go the other way and focus on the graphical aspects -- running moves more pixels per frame than walking so somewhere in that will be the calculation, and eventually further back the check on the button press.
You could go the other way and note button presses. Most consoles have a point in memory that corresponds to button presses ( ), though it is generally not suggested to use it directly in your code. Instead once a frame it is copied and everything operates on that instead (saves two different states happening during two reads in a frame because the switch is slightly dirty or not quite fully closed and flicking between things). You could do something like if L pressed then also change the state of B, or you could set whatever reads B to also read L, or you could add another section of code that checks for L and does what B would normally go/jumps to where B would normally go. I have a guide and is for an old fork of VBA (no$gba debug is free and is also good stuff) but covers the basics of tracing, which should be what you need to start fiddling with code.
I don't have any coding experience but I could try the cheat code method that you mentioned, Thanks for help though ^_^
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
34,929
Trophies
2
Website
trastindustries.com
XP
24,356
Country
United Kingdom
Yeah a few issues with spammers meant until you have a certain number of posts under your belt (think it is 10 but might be more) that you can't do URLs. If you need to have one then break it up a bit a la http : // www . somesite .tld / whatever

Anyway for GBA cheats then I would usually link up
https://doc.kodewerx.org/hacking_gba.html (covers button activators in a roundabout way, and while I said above about not using the area in memory then everybody uses it for cheats. There might even be a button activator code generator tool.
and
https://web.archive.org/web/20080309104350/http://etk.scener.org/?op=tutorial

Finding a flag can be annoying compared to the usual infinite potions cheat finding exercise, though you should be able to find a quiet point in the game where not a lot is going on and you can run back and forth as befits your will. Might want an autopress button, or a third hand to hit the "search for cheat" option, but thinking about it then might even be quicker than buying and selling things in a shop for the usual infinite whatever cheats.
 

Finji

Member
OP
Newcomer
Joined
Jan 18, 2022
Messages
5
Trophies
0
Age
19
XP
3
Country
Poland
Yeah a few issues with spammers meant until you have a certain number of posts under your belt (think it is 10 but might be more) that you can't do URLs. If you need to have one then break it up a bit a la whatever

Anyway for GBA cheats then I would usually link up
(covers button activators in a roundabout way, and while I said above about not using the area in memory then everybody uses it for cheats. There might even be a button activator code generator tool.
and


Finding a flag can be annoying compared to the usual infinite potions cheat finding exercise, though you should be able to find a quiet point in the game where not a lot is going on and you can run back and forth as befits your will. Might want an autopress button, or a third hand to hit the "search for cheat" option, but thinking about it then might even be quicker than buying and selling things in a shop for the usual infinite whatever cheats.
I'll check those links tomorrow :mthr: (it's night here in Poland). I'll also ask people on SMWCentral if they know of any hack/cheat code like that, alternatively a cheat code that keeps the P-speed/prevents Mario from cancelling flight could work
 

Finji

Member
OP
Newcomer
Joined
Jan 18, 2022
Messages
5
Trophies
0
Age
19
XP
3
Country
Poland
Hello, I've been wondering if there's a romhack of Super Mario advance 2 that let's you run with L trigger and B button (basically 2 run buttons like on snes). I'm because I really hate that you can't turn with cape (I mean you can but it's really weird), also if it would be possible to remap L to an alternative run button that would make a lot possiblities for romhacks (like those on SMWCentral).
Thanks to u/Ph147
Hello, I've been wondering if there's a romhack of Super Mario advance 2 that let's you run with L trigger and B button (basically 2 run buttons like on snes). I'm because I really hate that you can't turn with cape (I mean you can but it's really weird), also if it would be possible to remap L to an alternative run button that would make a lot possiblities for romhacks (like those on SMWCentral).
Thanks to u/Ph147 on Reddit, they found a way to remap the controls so that it's possible to run with L and shoot fire balls with B, cape is a bit tricky though as you have to hold L to get the P-speed and then hold B to actually fly (otherwise Mario/Luigi will fall after he reaches the end of his jump) it's not perfect but it's pretty close.
Here's the message:


I haven't done extensive testing, but this seems to work for the US version:

With the help of a hex editor, patch the following bytes into the ROM:

* at offset `0x0068f6` overwrite the existing bytes `0x08 0x40` with `0x00 0x20`
* at offset `0x06ecae` overwrite the existing bytes `0x02 0x21 0x08 0x40` with `0x92 0xf2 0xa7 0xf9`
* at offset `0x301000` overwrite a bunch of `0x00` bytes with the following: `01 21 49 02 08 40 00 b5 00 bd`

What this actually does:

First, disable old scrolling function of L-button during gameplay:

080068F6: 2000 mov r0, #0

At the point where the game determines if Mario should run, jump to a free area

0806ECAE: F292 F9A7 bl 0x08301000

and inject own code there that replaces B-button with L-button:

08301000: 2101 mov r1, #1 ; check for L-press
08301002: 0249 lsl r1, r1, #9
08301004: 4008 and r0, r1
08301006: B500 push {lr} ; go back
08301008: BD00 pop {pc}
 
General chit-chat
Help Users
    Dark_Phoras @ Dark_Phoras: Posts link