News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: Jeanne d'Arc (PSP) - Debug Menu  (Read 6540 times)

RetroHelix

  • Full Member
  • ***
  • Posts: 147
    • View Profile
Jeanne d'Arc (PSP) - Debug Menu
« on: October 11, 2014, 12:01:38 pm »
Hi,

I found a debug menu for the game Jeanne d'Arc. It has a model viewer, effect viewer, video viewer and so on. But its not fully functional. You can't load sound files or maps for example and it chrashes alot. I guess it's because everything was packed into archive files after development was finished so there are no sound files to load.

I case someone wants to try it out here is a cheatcode for CWcheat or ppsspp:
UCUS98700.ini:
_C1 Debug Menu
_L 0x00851918 0x00000003

Just start the game with the cheat applied.

PPSSPP got the spacing for the characters in the debug menu wrong though.
« Last Edit: October 11, 2014, 12:35:37 pm by RetroHelix »

VicVergil

  • Hero Member
  • *****
  • Posts: 715
    • View Profile
Re: Jeanne d'Arc (PSP) - Debug Menu
« Reply #1 on: October 11, 2014, 01:42:54 pm »
Thanks a lot for sharing this!
I'm always amazed by hidden content in games even though I only find the text left behind but rarely the programming (only managed a debug room through file swapping :P )
How did you spot the dangling bits for the debug menu programming?

If this has an event viewer, it could be very useful to the ongoing French fan-translation (yes, Jeanne Dark d'Arc was never released in French - as was Layton's London Life, never released in England)

RetroHelix

  • Full Member
  • ***
  • Posts: 147
    • View Profile
Re: Jeanne d'Arc (PSP) - Debug Menu
« Reply #2 on: October 11, 2014, 02:26:18 pm »
Thanks a lot for sharing this!
I'm always amazed by hidden content in games even though I only find the text left behind but rarely the programming (only managed a debug room through file swapping :P )
How did you spot the dangling bits for the debug menu programming?

If this has an event viewer, it could be very useful to the ongoing French fan-translation (yes, Jeanne Dark d'Arc was never released in French - as was Layton's London Life, never released in England)

I thought about rebalancing the game a bit but lost interest after finishing the whole game. Nerveless I took a look at the game files and found the menu graphics. There were graphics for a debug menu entry. I was searching the memory for strings like "debug = 1" and even found such strings but changing them was not bringing up the menu. I gave up but was still thinking on how to access the menu. During a walk it came to me that I could try to access the menu by changing the value of the currently selected menuentry to a higher value. From there it was just a cheatsearch with CWcheat :) I'm still interested on how someone with more insight in reverse engineering would have approached this.

The Debug Menu has an entry called "Stage Check". You can start every stage from there but it looks like there are much more stages than in the actual game and some aren't loading. I could be wrong about the number of stages though.

FAST6191

  • Hero Member
  • *****
  • Posts: 2593
    • View Profile
Re: Jeanne d'Arc (PSP) - Debug Menu
« Reply #3 on: October 11, 2014, 05:50:04 pm »
If you are reasonably sure that the menu can be accessed from a given point (and graphics placed alongside it, especially if they are actually in memory, is a good point) then forcing a value like that is a good thing to look at. When you do not know and debug menus start being accessed from options menus, sound tests, "press start" screens, in the actual game and whatever else is when you get to break out the big toys, doubly so if you suspect the method of getting to the debug menu was removed from the final build somehow. How it might get removed varies, though typically NES era stuff will have it left in and the access methods removed, later stuff might actually be recompiled without it (more modern consoles often have nice memory laden debug/development versions) and all you will find is some strings and graphics from it.

Anyway if it is a combo or options select combo that does the deed it will have to be noted in memory somehow as you are entering it. As title screens, options menus and more are not noted for their massively changing memory, and don't have the most functionality beyond "if button pressed then jump to whatever next menu is behind the one that was selected" you can usually spot when things get modded. If you are just using cheats then a combination of savestates and observation may get you what you want, if you are actually playing with a proper debugger then following the code, and then maybe jumping to a disassembly will tell you exactly what it wants and then jump.

Others elect to do things like force an actual jump (not just the value it uses to figure out a jump) to places in the debug part of the code. You can do this in various ways but usually if you see the debug text in memory then you can find a function that references part of that and work backwards from there.

Azkadellia

  • Forum Moderator
  • Hero Member
  • *****
  • Posts: 868
  • 提交向你的情妇!
    • View Profile
    • Princess Translations
Re: Jeanne d'Arc (PSP) - Debug Menu
« Reply #4 on: October 11, 2014, 10:25:30 pm »
This would be an excellent entry for TCRF. Seriously, TCRF thrives on this kind of stuff.
Current Projects: On hold indefinitely.
I do the Twitter thing now: https://twitter.com/MistressSaeko (expect lots of game streaming announcements)
Mistress of the RHDN Discord server.

VicVergil

  • Hero Member
  • *****
  • Posts: 715
    • View Profile
Re: Jeanne d'Arc (PSP) - Debug Menu
« Reply #5 on: October 12, 2014, 06:06:58 pm »
During a walk it came to me that I could try to access the menu by changing the value of the currently selected menuentry to a higher value. From there it was just a cheatsearch with CWcheat :) I'm still interested on how someone with more insight in reverse engineering would have approached this.


Wow :)
I figured from the title screen menu being buggy after enabling the code that you resorted to that method (setting the cursor value higher than normal values) :P (it works with Rockman EXE WS, Tales of Phantasia GBA, Tales of Symphonia, the PS2 Fullmetal games and a lot other games - also for battle engine debug menus: for example the one in Valkyrie Profile)
Now that's thinking outside the box (perhaps literally) :D Brilliant stuff.
(I intend to start a blog about unused content in games, since that gives more freedom a wiki could ever hope to achieve, and none of those editing wars - it always brings me a smile something new is discovered in old games)

You mentioned graphics? When I opened it in PPSSPP the initial debug menu shows but the submenus are blank (even then I managed after choosing at random to test the options for FMVs/shop dialogue boxes/world map). I assumed this is normal since US versions tend to remove the Japanese font, but is there more to it in this case? (not that this is a problem for me since for cheats I intend to "unlock" my real hardware anyways to try some translations the way they should be, just asking :P )

RetroHelix

  • Full Member
  • ***
  • Posts: 147
    • View Profile
Re: Jeanne d'Arc (PSP) - Debug Menu
« Reply #6 on: October 13, 2014, 01:09:52 pm »
You mentioned graphics? When I opened it in PPSSPP the initial debug menu shows but the submenus are blank (even then I managed after choosing at random to test the options for FMVs/shop dialogue boxes/world map). I assumed this is normal since US versions tend to remove the Japanese font, but is there more to it in this case? (not that this is a problem for me since for cheats I intend to "unlock" my real hardware anyways to try some translations the way they should be, just asking :P )

On real hardware you can access all submenus but there is no content to select under Map Model, Sound Test and Skin Check. As I said before, I think its because the files are packed inside archive files. Thats were the graphics are stored too.
« Last Edit: October 14, 2014, 03:03:42 pm by RetroHelix »