News:

11 March 2016 - Forum Rules

Main Menu

MegaMan 8 - Debug Menu

Started by MeganGrass, October 13, 2013, 12:37:50 PM

Previous topic - Next topic

MeganGrass

I discovered a few unused debug menus in the US release of MegaMan 8 (SLUS_004.53).

MAINMENU


FLAGCHANGE


WORKVIEW


VABVIEW


POWERUP


PARTS


SOUND TEST


The variables in the Flag Change menu can be modified (ON/OFF), but have no apparent effect. I suppose that a debugging unit must be used for real advantage, here.

The Work View menu contains many different pages that display various statistics, but unfortunately, none of the variables can be modified.

The VAB View menu simply allows to test any sound effect the game uses.

The Powerup and Parts menus simply alter what items are in the inventory, though, some will reset to 0 after reaching a 'Continue Point' or loading a new level.

The Sound Test menu is separate from the Main Menu, but both sound effects and music can be tested. It's supposed to display various font and statistics, but will require a little bit of work to reestablish.

VicVergil

So, which address did you modify to do this? Do you have a code?
It's a very nice find.


MeganGrass

#2
@GHANMI - I'm sorry, but these menus cannot be accessed via GameShark/Action Replay cheat codes. I will release an asm patch, soon.


Meanwhile, I've fixed the Sound Test screen. :D

By default, there were several things that were previously wrong with this menu:

1 - As seen in the original post of this thread, the "SOUND TEST" string and other statistical strings weren't being displayed, due to improper code sequence. In addition to that, a few necessary things for proper display of text was missing.

2 - The controller handler was bugged, causing major difficulty to change the BGM track ID. For example, there are 0x45 music tracks available... one simple tap of a button would cause the ID to jump from 0x00 all the way to 0x45, thus, making it impossible to select various tracks.

3 - There wasn't any way to exit this menu - once enabled, the PSone system would have to be reset to exit.


...but, I've fixed all that.



October 15, 2013, 07:01:57 PM - (Auto Merged - Double Posts are not allowed before 7 days.)

The Sound Test option can now be activated from the Main Menu, thus, accomplishing full functionality of all previously-hidden menus! :beer:



Now, to cleanup, and produce a patch for download...

October 18, 2013, 03:54:46 PM - (Auto Merged - Double Posts are not allowed before 7 days.)

I've decided to take this one step further, and added a "Stage Select" option.



Normally, this feature doesn't exist anywhere in the executable - I injected my own code to create the functionality. After all, what good is a debug menu without an option to level jump at will? ;P

This should prove useful for any serious hacking attempts.

VicVergil

It would be nice if you added ASM patches for both unaltered debug menus (for such purposes as documenting debugging features, like in tcrf), and for the tweaked one you made.
Interesting :)

Also one more noobish question: Is Playstation asm that hard and terrifying as people on the net suggest? (I'm a noob who can't even figure out in 65c18 how to hook code to somewhere far away in the rom because I don't know if i should put the hi-rom adress with JSR or the memory adress or the absolute adress starting from 0)
And do you have a documentation with you to share to the poor soul yours faithfully? I love collecting those for potential future endeavors.
I though it uses exclusively r30000 but I saw some debuggers fro psx emulators having r5900 (wtf?)

I admire your work. It's something like magic for me at this point  ;D

MeganGrass

#4
Quote from: GHANMI on October 18, 2013, 07:42:50 PM
It would be nice if you added ASM patches for both unaltered debug menus (for such purposes as documenting debugging features, like in tcrf), and for the tweaked one you made.
Interesting :)

Also one more noobish question: Is Playstation asm that hard and terrifying as people on the net suggest? (I'm a noob who can't even figure out in 65c18 how to hook code to somewhere far away in the rom because I don't know if i should put the hi-rom adress with JSR or the memory adress or the absolute adress starting from 0)
And do you have a documentation with you to share to the poor soul yours faithfully? I love collecting those for potential future endeavors.
I though it uses exclusively r30000 but I saw some debuggers fro psx emulators having r5900 (wtf?)

I admire your work. It's something like magic for me at this point  ;D

I plan to release two patches - one for the unaltered functionality (as seen in the first post of this thread), and the other containing fixes and brand-new injections I've made. I know all too well how purists can be. :P

As for R3000 dis/assembly, it's fairly easy if you have a decent understanding of how simple programming works. For example, if you've ever written an application in c/c++, then ASM language should be a breeze to learn. If not, it never hurts to pick up a new hobby. It could certainly be debated, but I'd say that learning ASM is actually easier (as opposed to c/c++), but only because there is so very few things to remember.

Here are a few resources:

www.mrc.uidaho.edu/mrc/people/jff/digital/MIPSir.html
www-id.imag.fr/~briat/perso.html/NACHOS/NACHOS_DOC/mips.html
http://www.egr.unlv.edu/~ed/MIPStextSMv11.pdf

The PSone strictly uses R3000, whereas the PS2 uses R5900. I can only assume that the emulators you've tried have either completed and/or in-development support for the PS2.

...and, it should go without saying that the results I've produced are many thanks to KC's armips application, found here: http://www.romhacking.net/forum/index.php/topic,8413.0.html

Many thanks for the feedback! It keeps me going... :D

October 19, 2013, 02:34:16 PM - (Auto Merged - Double Posts are not allowed before 7 days.)

I figured out what the "FLAGCHANGE" menu is used for...


Lance

The Cutting Room Floor I'm sure would love to see this documented on their Megaman 8 wiki page.

MeganGrass

Quote from: Lance on October 20, 2013, 03:25:50 PM
The Cutting Room Floor I'm sure would love to see this documented on their Megaman 8 wiki page.

Protodude, from "Protodude's Rockman Corner" suggested that I do the same, and I've already whored my results at the tcrf forum: http://jul.rustedlogic.net/thread.php?id=16558 :P

Besides archival purpose of the original, hidden functionality, the real purpose of my work on these debugging features will be for a future ROM hacking project.

So far, I've built a PAC archive file dis/assembler to extract+repack contents (both PSone and Saturn version supported), and a ROM/ISO rebuilder (PSone version, only).

From what I've been told (and read from others), it will be the first MM8 hack. Hopefully, many more will follow.

Celice

Did I hear a potential hack is in the works? Looking forward to whatever comes of this stuff :)


VicVergil

Thanks a million for the release! It was a good month, with Legends 2 debug version and a proto X5 being also made available :)