News:

Don't forget to visit the main site! There's lots of helpful docs, patches, and more!

Main Menu

Remapping angle up/angle down?

Started by Psyfl, June 03, 2020, 08:07:33 AM

Previous topic - Next topic

Psyfl

Hey. As I'm sure you guys know, angle up/angle down cannot be remapped to A/B/X/Y. This means that if you were to put something like dash onto L/R, which I know many people like to do, you completely lose access to angle up/angle down.

I am wondering how easy it would be to make a mod to fix this, so that you could have dash on L/R but also have angle up/angle down on the B button so you still have access to it. Could it be done with simple editing of data via game genie codes? Would it require custom code somewhere? Any help would be much appreciated.


mccad

Quote from: Psyfl on June 03, 2020, 08:07:33 AM
Hey. As I'm sure you guys know, angle up/angle down cannot be remapped to A/B/X/Y. This means that if you were to put something like dash onto L/R, which I know many people like to do, you completely lose access to angle up/angle down.

I am wondering how easy it would be to make a mod to fix this, so that you could have dash on L/R but also have angle up/angle down on the B button so you still have access to it. Could it be done with simple editing of data via game genie codes? Would it require custom code somewhere? Any help would be much appreciated.

The button maps are stored in ram, even for buttons that cannot be mapped. You could theoretically edit them via a cheat tool like game genie or action replay, but it would be way easier to change your emulator's keymapping instead. If you're playing on hardware, this is of course a little more challenging

Psyfl

Yeah, the goal is to do this on original hardware. I am playing the game via the sd2snes which lets you use game genie codes so that would be a good way of doing it I think. I guess I'll try to look into documentation of the RAM layout and see if I can figure that out.

Psyfl

I found this page that documents the memory location of button remap data: http://patrickjohnston.org/ASM/ROM%20data/Super%20Metroid/Kejardon's%20docs/ControllerInput.txt

By editing the bytes here, I have been able to remap the R button to dash. However, maybe I'm missing something here, but I cannot remap angle up/angle down to B even when I seemingly edit the correct data into the correct bytes to do so. I'm not entirely sure why that is - I guess there must be a limitation in the method that is used to apply the remappings, which is presumably why the developers didn't implement this in the first place.

Now, unless I've missed something, I guess it would be necessary to add custom logic somewhere to accomplish this. I've had another idea leveraging the sd2snes that might work, but as a complete noob to doing any form of SNES modding, it's only an idea and any help would be appreciated. So, the sd2snes implements in-game button hotkeys like "L+R+Select+Start" to reset the game and "L+R+Select+X" to reset to the sd2snes menu. It seems to do this via hooking in-game functions like the NMI routine. Maybe I could add onto the sd2snes in-game hooking code to manipulate the controller data? If anyone has any further info on how/when Super Metroid goes about reading the controller data, that would be very helpful. Thanks for any help.

P.JBoy

Kej's Control Freak patch allows for rebinding the aim buttons to face buttons
...