Friday, September 26, 2008

The Most Tedious Blog Post Yet



Pardon the nekkid Fujinami guy, as I just used the default new wrestler.

Also ignore the fact that the parameter and move names are still in Japanese...

Anyway, this ordinary looking screenshot actually represents a new breakthrough in my hacking of the game.

Here's what it looked like in the original version:


And here's the shot from Fire Pro Wrestling 2:


See to the left of the parameters where it says main and sub? In Japanese, you can have a single symbol represent the word or concept, but it usually requires more space when written in English. Well, I didn't like the idea of having to write "main" on two lines like it was in FPW2, so I made those boxes (and by extension that whole section) wider to make it fit.

(Everything on the screen except for the parameter names and values, affinity grade, the wrestler(s) and the cursor(s) are part of the background(s), which are made up of tiles. The layout of these tiles come from a tile map.)

Now, making the new graphics and creating the new tile map is relatively simple (for me), but if you were to just do that, the screen would look something like this:


Yeah, the text up top is now out of alignment because the game doesn't know that I moved the boxes that lay underneath it. You have to TELL the hardware where that text is supposed to go, and the existing code tells it that it should be where the boxes used to be. Fixing that is not as easy as working with the tiles, as it actually requires altering some of the programming.

See, everything that I've done up to this point has been changing text, graphics, palettes, tile maps, pointer tables and other assorted data. But that stuff is just that -- data. You don't really need any programming knowledge to mess with it. The game knows how to load and deal with this information.

But by modifying the actual code, you could change HOW it deals with the data, and that's what I had to do to get the text at the proper offset.

So, I've actually learned a little about assembly language. I mean, as far as assembly hacks go, this is pretty basic, but it's a start...

The funny thing is, once you know where to look, changing that programming can be done in a matter of seconds, while dealing with the "simple" graphic designing takes for-frigging-ever.

With this new knowledge, I've also gotten distracted from my translation work a few times, as I started looking over the programming, trying to figure out how things in the actual match engine work -- even things that I basically know how they work, like damage calculations, but now I'm trying to get more insight into it all by deciphering the actual code behind it.

It's kind of interesting (to a nerd like myself) to see just how many instructions are going on behind the scenes in a fraction of a second to make everything in the game tick...

Tuesday, September 23, 2008

A Blast From the Past




lulz

TWO DAYS LATER EDITTO:

Perhaps I should've written a little more...

I just posted this video on YouTube, but it's from at least 3 1/2 years ago (hence the post title), when I tested out porting a few moves from FPZ into the GBA games. For this experiment I used FPW2(US), even though if I ever put this stuff into a game FOR REALZ I'd use Final Fire Pro.

Two other videos actually exist of other moves I did (I think Dave put one on his YouTube channel), but that's all the testing I've done, and I'm not even gonna get back into this until the FFP translation is finished...

Tuesday, September 16, 2008

Back again, but for how long...?

I finally put the link to this blog in my sig and/or profile at FPZOMG! and FPC, so it's possible somebody else might actually stumble upon it eventually. I mean, Davey's the only person I bothered to tell about it, lawl...

In typical JB fashion, I posted about working on the FFP hack, and then after a couple more days, I proceed to not touch the damn thing for three months.

So, yeah, that means that I just got back to it...

I figured out the cause of the annoying bug from my old ROM that I mentioned in my last post (which is just a botched cursor when going into the initial MoR booking screen), because I wound up having the same thing happen in my new translation... Turns out there are too many text characters in the description in the preceding menu, which runs over into the space in RAM where the cursor tiles are supposed to be. (For some reason, the game loads up these graphics before they're even needed. If they didn't get called into memory until the corresponding menu also gets loaded, this wouldn't be a problem.)

Anyway, I have a solution to this that also ties into extending the naming limitations: replacing the kanji with double romaji characters.

Now, this is different from the hack Dave did with two ASCII characters simply typed in place of the kanji codes. That might work for the name entry screens (though even then there are some issues with this method), but it wouldn't do anything to help the characters from running over their intended space in the RAM.

See, each character takes up the same room there regardless of its width when actually in use, meaning the 12-pixels-wide kanji and 6-pixels-wide romaji are treated as equals. And the fact that many more romaji characters can fit on the screen is why the graphics run long in RAM.

Ah, but two of those 6-pixel romaji could fit in the same space as the 12-pixel kanji and be counted by the RAM as only one character, meaning it'd only take up half the space there and it'd fit without any troubles. But, in order to do that, I've got to replace the actual font, which might be a rather tedious undertaking...

It's also interesting (and by "interesting", I mean "fucking boring") that the game has many more characters in the font than what's listed on the name entry screens. For instance, there are a handful of Greek and Russian letters selectable when you go to name things, but the full alphabets are actually in the ROM. That's right, all this time you could've been using the Strangle Hold Lambda, but those bastards at Spike held out on us.

Yeah, this is exactly why I have this blog. I can ramble on about frickin' fonts for 27 paragraphs without worrying about cluttering up somebody's message board...

Hmm, I wanted to post some other shit (and possibly some more screenshots), but I forgot what it was. Guess that'll happen when it takes you almost 2 hours to finish a fucking blog post...