Using debugger for PCengine translation: Where should I start

Started by apraxiumRum, October 04, 2019, 08:06:44 AM

Previous topic - Next topic

apraxiumRum

I stumbled big while trying to figure the way Dragon Slayer 6: The Legend of Heroes II handle its text:
-The obvious text written in S-JIS was just for the intermission cutscenes between chapters. One such scene is "Selios Departure": showing a conversation between Selios and Dinah in Japanese.
-The stuff needed for translation (Names, enemies and battle messages, NPCs talks, items and magic, etc.) is all scrambled and incomprehensible. When I tried dumping the CPU memory using Mednafen, I vaguely found what a Guard was saying in the beginning of the game, which not surprisingly, was compressed using LZSS.
I realized then, that I was running circles around myself, and that I should instead start small. But I really need to learn how to actually use a debugger in games to find:
-Where the game stores the raw text.
-How it calls and deals with its compression.
-How to recreate to routine to produce the text for translation purposes. Then re-compress the new translated line and put it instead of the old one. I think Assembly is what Mednafen shows.
-And of course, how to change things such as length of the text.
I do feel I am demanding much, but I am having difficulties finding sources that are beginner-friendly or explain the procedure at ones own lesuire. Please don't take it as me being lazy. I just don't know where to start.

Psyklax

Do you know assembly? If not, that's where to start. :) The PC Engine uses a 6502 CPU, so there's a ton of information about that. Best starting point, I think, is to make your own infinite lives hack - the simplest of all hacks. If you can do that, it'll show that you understand the basics of how assembly works.

I would explain it but it'll take too long and there are plenty of places to learn how it works. This game choice could be a tricky one, but if you're willing to learn then you can do it.

In other words, once you grasp the basics of assembly, all those questions you ask will be answered. :)

dshadoff

I wrote a few fairly large posts on another board, about the overall process of making a translation patch for PC Engine games.

You can find them here:
Post 1: http://pcengine.proboards.com/thread/557/translation-patch-post-level-overview
Post 2: http://pcengine.proboards.com/thread/561/translation-patch-isolating-print-function
Post 3: http://pcengine.proboards.com/thread/583/translation-patch-print-function-modification
Post 4: http://pcengine.proboards.com/thread/595/translation-patch-post-extracting-script

These are going to answer some of your questions, but are really only a starting point.  They are all posted in the "Homebrew Development" forum on the (currently) most active PC Engine-focused message board, which is focused on subjects like this one.  I'm sure there are many other posts there which you might find helpful too.

Any questions you have after that point are welcome there, and will likely find good answers.

Dave

apraxiumRum

QuoteAny questions you have after that point are welcome there, and will likely find good answers.

Dave
Thanks Dave! That's sure gonna keep me away for a while but it'll be worth it!
It sure beats wandering with no aim. And why I didn't see that forum while looking for tutorials??