[Translation Hack] Initial D - Gaiden (GB).

Started by Bunkai, April 19, 2022, 08:27:03 PM

Previous topic - Next topic


I decided to try my own documents and see what I can get.
{I need to explain better how to calculate the pointer table end.
However, thanks to the help from 343 and abridgewater in the RHDN discord
I got a proper dump}

All the info to make a translation for it is here.
[Besides most images seem uncompressed. If not all]

   Game rom: Initial D Gaiden (Japan) (SGB Enhanced)
   CRC-32: 6CC56612

Japanese Info on the game and menus

   Full script in txt
   Menus texts are graphic assets.

Font + Address

Pointer Table + Address

Script text + Address

Proper dump proof

Batch link for the images

Table created by 343 and fixed by me
Sorry but you are not allowed to view spoiler contents.

Command.txt for a proper dump with cartographer
Sorry but you are not allowed to view spoiler contents.

Insertion test / proof

Reused the same font and copied the table with utf-8 format to check.
A new font will/should be made.

Atlas code for insertion,
Actual text will require pointer adjustment since it gives overflowed warnings.
But insertion works.
Sorry but you are not allowed to view spoiler contents.

All Graphic Assets:
Start with the font, and follow through.
Sorry but you are not allowed to view spoiler contents.

Last bank with Graphics: 0x34000
Curiosity leads to knowledge,
be curious.


I was doing a second search to be sure i didn't leave any text and I found, in bank 0x1:

Credits, 2 Character Names' list, some JPN & ENG text menus.

* I believe one of this Character Names list is for the default name records.

Credits text + Address

Link with batch of screenshots for any new text found

The text on this post is undumped, the post will be updated when this text is dumped

This table works in a different way with more bytes, explanation in the spoiler:
Sorry but you are not allowed to view spoiler contents.

A couple more of graphic assets

PS: I have to review all graphic assets yet, but mainly English titles like "RECORDS" or "SOUND CHECK" are the only ones eluding my searchs.
Curiosity leads to knowledge,
be curious.


Quote from: Bunkai on May 16, 2022, 07:05:19 AM

We discussed this in the Discord, but I figured I'd summarize here for posterity:
cd e0 0c (at $44a3) disassembles as call $0ce0
At $0ce0 is e1 cd 05 0d e5 c9, which is
pop hl
call $0d05
push hl

What we have is a code stream with inline literal strings.  The strings are variable-length, so either the length is loaded ahead of time or there's a terminator, and 65 is a good bet for the terminator, especially given the "Credits text" image.

From there, we see (at $44b6) a sequence 06 xx 0e yy cd e0 0c which appears a few times again further down.  This is
ld b, $xx
ld c, $yy
call $0ce0

and the values used strongly suggest display coordinates rather than a text length.

Sometimes there just aren't manipulable pointers.  Sometimes it's a matter of asm hacking no matter what.


Currently examining the sound code

This is the i/o map:

This is the routine to load the wave pattern:

The game seems to use ASM code to initiate and update the sound channels, not literal strings
More to come
Curiosity leads to knowledge,
be curious.