And Now For Something Different…

As some of you may or may not be aware of, Twilight Translations and Studio Llama Translation have teamed up to bring a number of Super Robot Wars games to English audiences. Up until now I’ve been rather hush-hush about my involvement with the projects. Sure, I’ve made a few posts on Studio Llama’s blog from time to time, but I’ve never officially acknowledged the projects on my own site. Today that changes.

The script for Super Robot Wars Advanced (SRWA) for the Gameboy Advance was dumped last year. I haven’t really had a chance (due to commitments to other projects) to sit down and implement the VWF I plan to. I have worked with the game enough to know one thing: I hate compiler generated assembly code. Once the hacking for SRWA is squared away, the other GBA SRWs should be fairly simple to hack.

That leaves us with the Playstation SRWs. Suzaku’s and my plan is to start at the beginning of each “saga” and work our way through to the subsequent entries in the series. In other words, we’ll be tackling the games in chronological order. For the Playstation series, that means beginning with the Complete Box, which collects SRW2, SRW3, and SRWEX all in one spiffy package.

My copy came earlier this week and I’ve just started working on the game. Let me make one thing clear, this is the first I’ve ever really worked with the Playstation. With that in mind, I thought it’d be interesting if I use this game as a demonstration of sorts. What if, I asked myself, I use my blog as a journal? That seems the most beneficial for everyone. For me, I’ll have the chance to reflect and collect my thoughts. For you, you’ll have the chance to first and foremost be kept up-to-date on where the project stands. In addition to this, you’ll also have the chance to see what goes into a project like this, especially when the hacker is new to the system. Hopefully it proves useful to someone.

The first dev-post won’t go up until tomorrow. That’s mostly because I’m too tired to take screenshots and type everything up tonight. If you tune in tomorrow, I guarantee you’ll find something worthwhile. Or maybe not.

8 Responses to “And Now For Something Different…”

  1. twilighttranslations Says:

    Not quite sure how I’ll handle new entries. For the time being I’ll just add to this news post while it’s on top. Anyway, here’s last night’s journal entry:


    Super Robot Wars Complete Box came yesterday. Tonight I thought I’d do a little preliminary work and get acquainted with the Playstation a bit better. This marks my first foray into the world of Playstation hacking. This is something I’ll have to keep in mind in the coming days/weeks as I learn the hardware.

    New hardware. New game. Where do I begin? I want to get the script dumped as soon as possible. That way Suzaku can be chipping away at the script while I work on implementing all of the changes that an English translation calls for. The most important of which is a VWF, but I’ll worry about that later. For now I just want to find the script and get it dumped.

    Since this is a new system, I’m spending quite a bit of time reading up on the Playstation. As far as literature goes I’m currently reading: “Everything You Have Always Wanted to Know about the Playstation But Were Afraid to Ask”; “MIPS32 Architecture For Programmers: Volumes I-III”; and various documents by doomed that cover a variety of topics. I’ll probably spend a few hours this weekend surfing the web for additional information. Remember: there is no such thing as too much information.

    At the moment my toolkit includes YY-CHR for graphics hacking and exploration and pSX as my emulator of choice. I’ve followed pSX off and on since it came on the scene and I’m really impressed with its debugger. The only feature that I miss is the trace logger, but I can probably make do with the debugger. If worse comes worst I can use PCSX’s tracer.

    I want to find the text routine and I don’t have any idea where the text is on the CD or anything else about the text. I’m not going into this completely blind, however. I’m going to make a few (fairly safe) assumptions about how this game works.

    First, the game has to read the text and then draw the corresponding tiles that represent each character of text. That means at some point the tile data for the font characters drawn will have to be loaded. Second, it’ll be a lot faster if instead of reading each tile off of the CD every time, the font were stored some where in RAM where it can be easily and quickly read.

    With that in mind, I fire up the game in pSX and proceed to the first string of dialogue in SRW2. This happens to be one of Bright’s lines. Using pSX’s nifty debugger I dump the entire 2MB worth of RAM to a file, which I then open in YY-CHR. From there I scroll through the RAM dump until I find the font.

    Now that I know where the font is at, I just need to find the first kana in Bright’s dialogue. From there I can set a breakpoint and work backward until I find the text routine. The reason this will work is because first a character is read from the string. The hex value of the character is then used to determine the address of its corresponding font tiles. In between point A and B, the hex value of the character will most likely undergo a number of changes. So, you find the address of the font tiles, determine where the address is coming from and work backward until you find the starting point, i.e. the point that the character is read from the string. From there you can find all sorts of things: the pointers, control codes, and so on and so forth.

    That’s the idea anyway. Right now I’ve only managed to find the font and determine the point at which the kana is loaded. This is usually where I bust out a trace logger. I let the tracer log the instructions up until the tile is read and the work through the instructions leading up to the load until I find the text routine. Fortunately I learned how to crack games without tracers, so this isn’t a big deal. I’ll just have to be creative, but that will have to wait until tomorrow.

  2. IRT Says:

    Cool. Good luck with the work!
    Now for a little question, when you get around to it, which you probably won’t for a long time, is it possible to enable/disable battle animations through hacking with some kind of option. It’s already possible with a Gameshark code.

  3. twilighttranslations Says:

    Yes, it’s possible. Am I going to do that? No. If you want to disable battle animations, using the Gameshark would be a lot quicker and easier than hacking the feature into the game and potentially screwing something up. Hope that answers your question. šŸ™‚

  4. Sume Gai Says:

    As a huge SRW and Mecha fan in general I wish you good luck and Godspeed

  5. saito Says:

    Hey looks great that you’re going to take on psx’s srw games.If you need something don’t hesitate to ask,we’ve been some time tangling with psx file-formats so if you need anything give us a holler and we’ll point you the direction.Best luck for this project šŸ˜‰

  6. Crabapple Says:

    I am trying to play Dragon Ball Z III – Ressen Jinzou Ningen, and I found the english patch on your site. But I couldn’t find instructions on how to patch the game. Any advice you could offer is appreciated. Sorry for the lack of knowledge on this topic.

  7. Crabapple Says:

    Sorry I figured it out, feel free to delete that question. Thanks for the great work.

  8. Bobinsky4 Says:

    Is this project dead?

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: