News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - MeshGearFox

Pages: [1]
I put up a beta patch for Lunatic Dawn: Passage of the Book a few weeks ago ( and I'm currently doing some script revisions. While doing this, I've turned up a few lines that read kind of strangely, but where I don't understand the original Japanese well enough to rewrite them properly, and I'd like to get another pair of eyes to check these over.

Anyway, I put up a google doc here:

It should be user editable, so anyone can propose a translation. (Also make sure you note your username, so that I can give you proper credit!)

Currently there are 31 lines listed. I tried to note context if there was any, although a lot of this is just randomly selected NPC chatter with no real context at all, which is part of the reason I'm having trouble with it (there's a Rumors button on the Inn screen. Clicking it pulls up one of around 200 lines of random, context-free dialogue, or some more game event-specific rumors, which were already revised without issue).

I'll probably end up adding more as I go through more of the script files. I'll post to note any major additions.

(Also, I do want to note that the vast majority of Helly (the main translator's) lines were fine. A lot of these were things I tried translating myself prior to them joining the project!)

I'm working on a translation project for a 32-bit Windows game that uses standard Windows GUI resources for... nearly everything. Anyway, I'm having a problem with text alignment in ListBox resources that automatically expand tab characters. Refer to the below screenshot:

The name substring on the left and the 10000G substring are aligned on every row in the original Japanese, but when converted to English, the Iltal' name substring is short enough that it doesn't push the 10000G substring on its line over to the next tab position, I guess, so the text gets out of alignment.

Any suggestions on how to approach getting the text aligned properly? I can't find anything in Resource Hacker for setting tab positions, and it sounds like if you were, say, doing this in C# you'd pass a message to the control after it was already created (

(For instance, could I find whatever code creates the ListBox resource and find something that pushes the default tabstop positions somewhere in the assembly? Could I swap the ListBox out for a different control that DOES give me more control over tab positions (The MSDN article mentions ListViews) and have the game load the text into that? etc.)


I have a Windows 95 executable with a block of text starting at position 00125FE8, and I want to find the pointers to this so I can update them to point at some other text. I used IDA to look up the pointers, but that got me wondering how you would go about doing it manually, from looking at the executable in a hex editor.

What I understand is that I want to start by adding 400000 to the base address, giving me 00525GE8, and then reverse the bytes, giving me E85F5200.

Searching for E85F5200 through the executable using the hex editor gives me six results -- one at position 000DBEB2, and five more starting position 001ADD2C.

As per IDA, the ones after 001ADD2C are pointers arranged in some null-delimited array thing with other pointers, whereas the hit at 000DBEB2 is actually a CALL opcode E8 with some argument after it. Obviously I don't want to change /that/.

What I'm wondering is how someone -- or IDA, for that matter -- would tell that the first one isn't a pointer. I noticed, for instance, that the actual pointers were all located after the data that they were pointing to. Is stuff like that relevant?

ROM Hacking Discussion / Windows GUI text hacking.
« on: January 11, 2015, 09:43:43 pm »
Got Lunatic Dawn: Passage of the Book on steam and poked around the main executable with a hex editor to see if I could glue some English to it.

1. Window titles are stored in plain SHIFT-JIS encoded strings.

2. Button labels and the contents of dropdown menus are not showing up in the hex editor anywhere. I don't see any external data files for text, though, and these are generic Windows GUI elements which I don't think usually draw from outside data anyway.

So yeah, is the button label/dropdown text encrypted/compressed or something, and if so, any idea on how I could actually modify it?

For what it's worth, I'm thinking this was probably written in C or C++ -- it predates .NET's wider adoption.

This is what I have in my source code:

lui t8, 0x8003
lw t8, 0xe414(t8)

This is what it got turned into after I assembled it, according to no$psx:

lui t8, 0x8003
lw t8, -0x1BEC(t8)

What's going on here? That latter one ends up pointing to 8002E414. Are all offsets going to be treated as negative, meaning I'd need to five 0x8004 in the lui instructions..?

Also I'm using armips as my assembler if that matters.

Still working on my Legend of Mana patch.

One of the things I want to do is speed up enemy attack/movement animations. I'm not sure what approach I should take for this.

I've found a few functions in the disassembly that control the overall speed of the game -- I'm not sure how these work. It looks like the framerate is being limited by them or decoupled from, uh, the number of processor cycles occurring per second.

I think what I want to do is find the segment of code that handles updating which frame is supposed to be drawn, and cause it to update the frame more frequently. Any suggestions on how I could go about finding this section of the code, though?

Also, what sort of structure would be typical for handling sprite sheets within the program? I have some experience with SDL and how you'd handle animation with that, but I don't know if that's what you'd expect to see in a PSX game.

I've been working through a RAM dump of LoM for about a week and I have some assembly fragments I want to drop into the game. Problem is, I can't actually find the executable files I need to modify on the disc.

It has about two megabytes of .bin files, which appear to be executables, however they don't match up with the executable code in the RAM dump. I'm not sure if it uses a non-standard filesystem or if the .bin files are just encrypted. The disc actually looks like it DOES have a standard filesystem for the most part -- it's not like in CC where almost everything's hidden.

Any ideas how I could go about sorting through this? Has anyone worked on this game before?

(SLUS_010.13 is the main executable. It looks like it loads the rest of the executable stuff into memory, and his happens when you select Load or New from the main menu. There's some unused space in this file, and I thought about possible inserting some functions there to change the executable code in RAM after it's already been loaded. I don't know if this works or not, though).

Personal Projects / Phantasy Star 2 Item Hack -- Items restore TP.
« on: June 02, 2013, 06:46:50 pm »
I made a simple hack for Phantasy Star 2 that causes Monomate/Dimate/Trimate items to restore TP instead of HP. The idea is that, by giving the player more room to use techs instead of just attacking constantly, grind would be reduced, and more strategizing would be possible.

This should be finished, but I wanted to get some feedback on whether everything's working okay before I submitted it to proper.

File is available here: whenever Dropbox decides to finish syncing it. File should only contain the IPS file and a readme.

Snippet from the readme:

Known Issue:

Using a *mate item will still give the message that "<Character>'s wounds were healed." I am not, unfortunately, good at altering text. If anyone else wants to create a more appropriate message, by all means, go ahead.

Possible Issues:

I believe that the Star Mist item wasn't altered directly, although its behavior may have been changed when I modified the Trimate routines. From what I could tell, the Star Mist just applied the Trimate healing routine to everyone in your party, so the Star Mist probably restores TP too, now.

I'm not concerned as to whether it actually restores TP or HP -- the focus here was on the *mate items -- but it should definitely be considered a bug if it restores one when used in combat and the other when used from the map.

The Star Mist unfortunately wasn't very well tested because I couldn't find any save states including one.

How to Apply:

This patch was based on Phantasy Star II (UE) (REV 02) [!]. Other versions of the ROM may not work.
This patch SHOULD work with Reiska's Easy Mode hack, although I'd imagine the checksum will need to be recalculated if using both.

--- edit ---

Small, additional concern. I didn't modify how much stuff the *mate items restore. So monomate will restore 20 TP, dimate will restore 60 TP, and Trimates restore all of your TP.

I'm NOT sure that any of the characters get enough TP to make trimates really useful. A 20/40/60 distribution might be better, but I'm hesitant to modify this 'cause it could cause some side-effects with the HP restoring spells in battle.

Making trimates cheaper in shops might be the more workable solution.

Pages: [1]