Updates are good, gimme moar
Posted by Gemini on March 14, 2008
Woah, almost a week without posting news. :D And we also have over 8000 hits on the blog. :9 Anyway, let’s go for the real part of the news and with the usual array of pictures which makes you all drool, or at least they work like that for me. :P
Part 1: battles again! I’ve finally fixed a couple of code snippets that kept infesting the battle engine with nasty bugs. They made it crash on real hardware when you selected a Spell or when entering a boss battle (boss names use a separate list and are pasted in a string buffer using some sort of C strcat function, for some reason). I’ve also got the center align to work for most strings, as you can see from the images:
- The first one was bitch to work out, especially because some programmer left it as “Tatsuya and party…Retreated!”. Probably the original version changed that part dynamically and they forgot to remove it or something (the string width is the same in both cases for Japanese, but that doesn’t work pretty well for English X_x). However, the “Retreated!” string uses a separate text box, so I forced the game to always paste “failed!” at the end of the message and that fixed the width issue.
- The second one shows a 1 year old hack, but I never bothered to hardcode it inside the battle module, so here it goes. Also wanted to show the cool spell name from EP. ;D
Part 2: card menus. Not much code hacked here:
- If you played IS in Japanese, you should remember the tarot list using a fixed width font, which was okay with the old Chicago font, but creates a nasty effect with mine (can’t remember the name). X_x I removed that effect and replaced it with the standard variable width font, just like Atlus US did for EP.
- No new hacks involved here. Just wanted to show more of the translation. :D
Part 3: maps. All the code for maps should be finally done. Dialogues work perfectly (already reported in one of the previous news) and now also place names do:
They had a centering issue, just like spells in battle. The code to determine the string width was a little stranger than usual, but I made it point to my GetVarWidth routine, changed a couple of opcodes responsible for placing the string on screen, et voilà.
Part 4: multiple choices in dialogue. This was one my nightmares:
This part of the text engine works like a completely separate entity and is integrated within standard dialogues in a diabolic way (did I tell you Satan himself programmed the game?). I had to recode several segments of code in 3 different routines, all thanks to the new text format (1 byte per character, opposed to the 2 byte format used by the Japanese version) and it kept me busy for like 3 hours the last night (X_x), but it’s finally DONE! Now only one small part of the text engine is incompatible with my format, but it should be pretty easy to fix since it’s just a matter of reading an unaligned halfword.