Translating Dungeons and Dragons Tower of Doom

Hello everyone, I'm starting this thread to provide my knowledge so far on D&DToD Saturn translation (hacking).
After a long time of analysis, I currently believe I have everything necessary to bring the MAME translation to the Saturn.
I'll add most of the relevant information here at another time.

I think I'm at the ultimate goal, which is to add more space to allocate the large difference in characters between the sentences in the text boxes.

After all the time analyzing the routines and subroutines, my first thought would be to try to create the characters in one of the empty spaces in the main bin file that is always loaded, and delete them after use.

At the end of each .bin file of each "scene" of the game, some codes that I believe to be dummy are always loaded in the empty part of the hwram, they are codes from the main .bin file.
I'll still check if they have any use and possibly where exactly they are created, because in this case I could also write a routine to produce the characters and load them into this "empty" space.

There is perhaps the possibility of extracting the game and adding a file, but I tried it once and failed (I didn't try that much).
As the game is .bin and has compressed sounds I don't even know if it is possible to extract and recompile it, in this case I would like someone experienced to say "it is possible to do this just using the tools available in the community", and I would try this possibility too.

Until the next update.
 
Some info about the game:

#All the font (text, character, texture etc.) is uncompressed;

#There is a .BIN file and a .DAT file for each "screen" of the game, this includes the "press start" screen, the post press start screen, the cutscenes, character selection, name selection and finally, the stages;

#In the prototype there was a character .dat file (the text letters MXXM.DAT) and screen textures (background screen MXX.DAT) however in the final game, both files is in a unique .DAT file).

There is the first file to be loaded: the 0DD_SS.BIN:
#It's located between 0x06010000~0x06043832.
#this file loads all the .bin files and do some other stuff that I probably saw and didn't write a note, but that's not relevant by now.

The "main program" where is almost all subroutines that produce stuff is on DD_SS1.BIN:
#It's located between 0x060440000~060B3520;
#DD_SS1.BIN loads all the .DAT files;
#The character info texture (name, items, exp etc.) is pushed from DD_SS1.BIN;
#The enemies name list is pushed from here;
#The player default name is pushed from here too (probably, I didn't spend time on it);
#The game has a table for upper name (when you get a item or punch some kobold) and a table for bottom name (your name fixed on bottom screen).

#All MPXX.BIN is located on 0x060B8000~variable (some stages loads more than one .bin file if I remember right, or maybe not, whatever).

As said before, the game has a .Dat file for each screen, and by that I mean that there is a FONT TABLE for each screen too.
Basically every screen has it's own font table with the characters and textures that will be used by the .BIN file, the game does not have a main font table.​

16x16 and 8:16 Fonts

#The main font for all the japanese characters that appear on every Text Box (and some other locations) is 16:16;
#There are some archives with 8:16 Alphanumeric characters, but I literally haven't seen them being used anywhere aside for the numbers on some cutscenes;
#The archive with 8:16 font is the MP104.DAT and some others. This file loads on the cutscenes that show the individual characteristics of the four heroes.

Although the 8:16 Alphanumeric characters is not used anywhere, happily there ARE subroutines that can do this with some modifications:
#The 16:16 japanese characters that appear on every Text Box has it's own subroutine;

To swap the text box's text for 8:16, just do 8907 on 0x06046332 and 7601 on 0x06046354.
#This modification will make the file write on VDP2 the first tile of X coordinate and the next tile on Y coordinate, doing
0
1
and not
0 2
1 3.​

8x8 fonts
#The game has 8x8 fonts but for the player's name, player frame, item list on top screen (ALWS.FNT);
#There are 8x8 fonts for basically the same thing but to bottom screen, the "NOW LOADING", the numbers for "continue screen" (FACE.FNT);
#For some cutscenes there is a major Font table (MGMES.FNT);


Until the next update.​
 
Last edited:
This game does some of the word displays the same way it does for SFZero 3 , there's a string of tiles to make the words on screen, but they aren't 16x16 per letter /character.

For example, this text is made of 16x16 tiles BUT
1703344041801.png

they look like this:

1703344318400.png
1703344303624.png
1703344285086.png
1703344265270.png
1703344217683.png
1703344199531.png
1703344178341.png
 
Good news is all those select screen tiles are in MP079.DAT in 16x16 4bpp tiles
View attachment 9184
Yeah, as I said, all japanese characters other than the 8x8 characters of names, items and the highscore is in 16x16, (at least in my knowledge) this includes the select hero screen that you showed. This file and the cutscene info tiles is also in this format (more like manually drawn characters and not some standardized letters).
And I have to say that the select hero screen is partially drawned on vdp1, this includes the letters you mentioned.

You reminded me that I forgot to include notes about 8x8 characters, Thanks Malenko for the reply.

Currently the goal is to insert more 8:16 characters into text box in the most convenient way possible... But maybe I can spend some time "translating" the menus while an idea doesn't come to mind.
 
Back
Top