I'm new here, so please let me know if this is the wrong forum, etc.
I've been working on translating Pocket King for the Game Boy Color.
It's kind of a fantasy advance wars but you can form little parties and evolve your
troops/monsters. I've never seen it mentioned in English and don't recall how I discovered it.
So far, I've made a table file and reverse engineered the text format
for narrative sequences between stages. I've also found several
individual strings with pointers and have had some small luck with
insertion. I've made dumpers successfully for both of these kinds of
text, and have a translator picking away at the dumps.
What I haven't had much luck with is modifying menu text. I've isolated
the code that loads the tiles into VRAM and the code that uses those
tiles to 'paint' the menu to the map VRAM. There is even a 'drawing'
in the code representing the menu, with hex of the appropriate
tile number in each position.
What I haven't been able to find, is any reference to the strings
relating to the menu items, if they even exist. Maybe they are hardcoded somehow,
but I also didn't find pointers to the sprites in memory or anything like that.
I could change the menu text using the
above 'drawing', but only to currently loaded tiles, which is not
helpful. There must be a data format that at least sets what tiles will
be in the VRAM to draw the menu from, but it doesn't use the same format
as the other text.
I have also isolated where the image for the first tile in a menu
item is in the raw ROM and have isolated where the code starts reading
it, but I seem to lack the skills to work backwards in the asm to
figure it out.
I'm a professional programmer, but very new to romhacking, so I'd
appreciate any guidance. I can provide plenty of specifics (offsets, control codes, pointer locations, etc) if anyone is
interested in taking a look. I also imagine someone more experienced
would have some general approaches or advice I'd find helpful.
Well, after days of work (and of course the day after I went around asking for help...), I had a breakthrough. The 'picture' of the menu based on tiles didn't have the tiles in numeric order, like the word 'unit' (in katakana) used the tiles 14 13 15 12. I realized the representation in the code from the table might be scrambled and in the numeric order of the tiles, and it was.
So if 'word' was the target word and used tiles 14 13 15 12, if I ordered the tiles 12 13 14 15, instead of looking for 'word' in the ROM, I needed to look for 'dowr'. It worked out. Probably would have obvious to you old hands but that threw me for a loop for awhile.
Should have an early playable demo soon(?).
I've been working on translating Pocket King for the Game Boy Color.
It's kind of a fantasy advance wars but you can form little parties and evolve your
troops/monsters. I've never seen it mentioned in English and don't recall how I discovered it.
So far, I've made a table file and reverse engineered the text format
for narrative sequences between stages. I've also found several
individual strings with pointers and have had some small luck with
insertion. I've made dumpers successfully for both of these kinds of
text, and have a translator picking away at the dumps.
What I haven't had much luck with is modifying menu text. I've isolated
the code that loads the tiles into VRAM and the code that uses those
tiles to 'paint' the menu to the map VRAM. There is even a 'drawing'
in the code representing the menu, with hex of the appropriate
tile number in each position.
What I haven't been able to find, is any reference to the strings
relating to the menu items, if they even exist. Maybe they are hardcoded somehow,
but I also didn't find pointers to the sprites in memory or anything like that.
I could change the menu text using the
above 'drawing', but only to currently loaded tiles, which is not
helpful. There must be a data format that at least sets what tiles will
be in the VRAM to draw the menu from, but it doesn't use the same format
as the other text.
I have also isolated where the image for the first tile in a menu
item is in the raw ROM and have isolated where the code starts reading
it, but I seem to lack the skills to work backwards in the asm to
figure it out.
I'm a professional programmer, but very new to romhacking, so I'd
appreciate any guidance. I can provide plenty of specifics (offsets, control codes, pointer locations, etc) if anyone is
interested in taking a look. I also imagine someone more experienced
would have some general approaches or advice I'd find helpful.
Post automatically merged:
Well, after days of work (and of course the day after I went around asking for help...), I had a breakthrough. The 'picture' of the menu based on tiles didn't have the tiles in numeric order, like the word 'unit' (in katakana) used the tiles 14 13 15 12. I realized the representation in the code from the table might be scrambled and in the numeric order of the tiles, and it was.
So if 'word' was the target word and used tiles 14 13 15 12, if I ordered the tiles 12 13 14 15, instead of looking for 'word' in the ROM, I needed to look for 'dowr'. It worked out. Probably would have obvious to you old hands but that threw me for a loop for awhile.
Should have an early playable demo soon(?).
Last edited by null-problem,








