GRANDIA HD Remaster

GRANDIA HD Remaster

Not enough ratings
How to activate Debug Mode
By Phno 🐙
Let's manipulate save games files and sink into a rabbit hole with the debug mode. This text naturally contains mild spoilers but also a collection of map values for the map selecter.
   
Award
Favorite
Favorited
Unfavorite
Previous words
While i was in the process of re-engineering the save game files and the game itself to create new options/features (e.g. traveling between disk 1 and disk 2 + traveling before and after the End of the World) i noticed that the debug mode implemented by the developers was never mentioned here.



The debug mode makes it possible to get additional internal information from the game, teleport to certain maps, manipulate the stats of individual characters and assign items.
How to activate Debug Mode
Download the latest version of Cheat Engine[www.cheatengine.org]. With Cheat Engine, programs can be manipulated at bit and byte level in real time.

Now follow the steps below:
  1. Start GRANDIA HD Remaster. I recommend switching the game from full screen to window mode at this point.
  2. Start CheatEngine
  3. In CheatEngine, click the "screen" icon on the top left. Then select the "GRANDIA HD Remaster" process from the list. Click "open".



  4. Now we have to adjust the correct data range to activate the debug mode. Select "Array of byte" in "Value type". Enter "00 00 30 30 30 30" in "Array of byte". Just in case select the "grandia.exe". Click "First Scan". (Fun fact: should be offset 0x3E5E).



  5. You should now find exactly this value on the left-hand side. Right-click on it and select "Change value of selected addresses".




  6. Now change "00 00 30 30 30 30" into "00 00 34 30 30 30" and click "OK".



That's it. You activated the debug mode. This must be done every time the process is closed (aka the game is terminated).
What can we do now?
Map Selecter
At this point I would like to mention this[tcrf.net] website, this was one of the few documentations I found.

In the main menu, you can now press the X button with an XBOX controller (no idea how this works with other controllers or even the keyboard) to call up the map selecter.



A value can be entered for "Map Number", which must correspond to of a map. If you confirm this with the A button and it is correct, you will automatically be teleported to this map with the last loaded savegame. If the value does not exist, the game crashes.
This can of course be very broken if you are already at a certain point in the game and then enter the world map.

"Party Group" corresponds to the party you want to have after confirming, at this point I quote TCRF:
"Valid party groups are in the range 0 to 16 (except 7, 11 and 13) and correspond to the PGR*.CPD files. If you select a map or party group that does not exist, the game will freeze."

However, I find "Map Number" more interesting here. An (apparently?) complete list can be found here[new.tcrf.net].

Menu
There is now a new icon in the menu called "List". Any items can be assigned to the characters here. The stats and levels of individual characters can also be manipulated by pressing the X button.


Further investigations
Potential
I am currently reverse engineering the save game files to see how they can be manipulated with a hex editor. I found out that the offsets 0x2F4 and 0x2F5 corresponds the value in the map selecter. These values are little endian coded and must therefore be swapped.

For example: A save game file that was created at the save point "Gaia (4)" has the value 10 E0 at this point. If this value is now converted (into big endian), you get E0 10. If you now enter e010 in the map selecter, you will be teleported to the map "Gaia (4)". The teleportation point does not correspond to the location of the save point but apparently to the "entrance of the map".

For a better understanding, see screenshots (images are all in german but you get an idea):



Offset 0x900 to 0x90F is a damn interesting range for save game files. I guess that certain story-relevant flags are set here. The game uses these to determine where you spawn, how the world map behaves and so on.



For example: If you change a certain byte in this area, you will no longer spawn at Gaia (4) but in Feena's house, even if you have not manipulated anything else. However, if you now go to the world map, depending on what value the other bytes have, you will be on the map behind the End of the World (e.g. world map whose pointer points to cafu) or on the world map whose pointer points to Parm. The game can also freeze at this point because certain dependencies are not fulfilled.

TLTR: You can basically switch between several world maps, even if the game would no longer allow it from a story perspective.
1 Comments
TMek7 20 Jun, 2024 @ 10:24pm 
As far as map selector values go, this list looks like most if not all?
https://new.tcrf.net/User:EdwardTohr/Grandia