Home | Forums | What's new | Resources | |
Translating Dungeons and Dragons Tower of Doom 1.0 |
Lirinica - Dec 22, 2023 |
1 | 2 | Next> |
Danthrax | Dec 22, 2023 | |||
Good luck! |
Malenko | Dec 23, 2023 | |||
Good news is all those select screen tiles are in MP079.DAT in 16x16 4bpp tiles |
LTH | Jan 5, 2024 | |||
will this use official translation? |
Donald Alvord | Dec 2, 2024 | |||
Did this ever get off the ground? |
Lirinica | Dec 2, 2024 | |||||
Yeah, I'm trying to do a good hack. I just didn't update the topic I'm very close to the end of this (I think) but very tired too. I'll probably rest this end of year, play some game for a while and come back sometime next year... |
obsolescence | Jan 18, 2025 | |||||
Just giving you a boost! I have just come looking for this, was shocked to see a discussion this recent |
euan | Jan 21, 2025 | |||
Super excited for this when you finish @Lirinica... ! |
Lirinica | Feb 8, 2025 | |||
Hello guys. After a long time without updating the topic, I will post some notes about the evolution of the project, and in the next few days I will post something more graphical. Currently I already have the translated script (taken from the arcade version, with some translation errors that I found and corrected) and I already have the offsets of the version to be "translated" (Saturn). I have also written the asm hack that solves the lack of space question. The hack needs some tweaking, but so far it works. I recreated the fonts for the character descriptions during the selection screen, the fonts for the alphabet to enter your name, and the fonts for the character names that appear at the bottom and top of the screen, and the font for the items that appear at the top. I'm currently recreating the font for the items that appear at the bottom of the screen, dagger, hammer, etc (first photo). After creating the fonts, I'll need to adjust the pointers to the new font. This font in particularar sucks because it is not ASCII, there is no standardization, and each item has its own letter (table), apart from the fact that they are covered by the green bar in the UI. I'm replicating what they did, but with the translation. It would be possible to standardize, but it would be more work than leaving it the way it is, and it would create even more problems with space. The next steps are: Insert the script with the translation in the new space; To adjust the offsets for the new space; To adjust the size of textboxes; Small adjustments here and there. |
kamugin | Feb 8, 2025 | |||
Great news !! |
Danthrax | Feb 13, 2025 | |||
Good luck! Keep up the great work! |
Lirinica | Feb 14, 2025 | |||
So, I finally finished these weapon tiles. Damn UI, or maybe I'm the problem here. It's similar to the original, like 90%. I had to redo it a few times until it was even minimally good. Living and learning. If I had known that with this font I wouldn't have enough space in the UI for some names, I would have based it on the original. I think the tile work ends here. This UI was the last thing I needed to redo, I did it last because I knew it would be the shittiest thing to do. Now I'll work back on hacking part, probably will do the sinopse first, and later I'll change the text box sizes. For last, I'll need to create the script thing to dump the original text pointers, and to insert the translation. Edit: I forgot to leave some notes about these tiles. The game has a routine that writes part of the background and mainly this entire UI. This routine uses 1 word and is divided into two subroutines, the first subroutine writes 1 tile at a time, like 1.2 3.4 The second writes 4 tiles at a time, as if it were 16x16, but with 8x8 tiles, like 12 34 The first subroutine basically has as a pointer the location of the font file, like 0x044A; The second subroutine is activated by starting the word with 8, like 0x844A, then it writes the subsequent 4 tiles in this format: 0x044a,0x044b; 0x044c,0x044d. Japanese characters use the first subroutine a lot and mix it with the second to write their tiles. I cut the use of the first subroutine as much as I could to have space on the pointers and to make the work easier, and I only used it on certain items to keep them centered and that kind of thing. |
Lirinica | Mar 6, 2025 | |||
Hello. I've finally done the pre game translation. I'm reaching the end of the project, now all thats left is the story itself. Like always, a explanation of how the game handle things off. I didn't mention it in the other topics (I think), but one fact that really messed things up was the encoding of the 16x16 characters in this game. Normally 16x16 shift jis use 2 bytes (FFFF) per character, but this game/port already has 1 byte (FF) encoding for almost all characters, so there is no "extra" space in the offsets with text. This is because of how they organized the font files, basically every file has its own font with its own table. So the most important part was finding a stable place in the game code where I could apply the translation (and other fun stuff) without having to edit or interfere with the originality of the game, its functions and the script. The pre game is separated in 6 archives, MP100 until MP106. Starting with the ranking in the MP100.BIN, the easiest of all: it uses FACE.FNT and the table has the table 00=A, and of course, the letters are 8x8. The ranking is stored in DD_SS1.BIN and is written to HWRAM 0x060E~, a place where the game stores some routines that vdp2 uses. MP100.BIN pulls this list, decodes the letters and other characters and writes it to vdp2. Simple. Cutscenes: the "demo play" with skill information was by far the worst part. This text coding has the table 4C=A from the MGMES.FNT. Here has an irregular routine that writes the blue textbox in 8x8 based on a character table from DD_SS1.BIN, and the letters are obviously 16x16. The bad thing about this is the fact that the same table and routine is responsible for writing and "erasing" the letters and the textbox (the routine doesn't actually delete, it writes dummy with a "null" color so we can't see it) this makes it an exclusive routine, but the worst of all is that the routine writes and erases only what was previously written, in other words, if you try to move the letters around, or write more text, they simply won't be erased. Yes, very petty. So I used part of the hack file and wrote a simple loop-based routine that erases the entire textbox region just below "PRESS START". Fortunately, all the cutscenes (and only the cutscenes) are linked to this routine, so everything was solved at once. Character info: this part was simple, was here in the MP104.BIN that I discovered that the game had 8x16 routine. That said, this file does not use the standardized 8x16 routine, part of the routine was pasted into the file itself, but the difference is in the organization of the registers. Finally, the "synopsis" in MP105.BIN. This part was somewhat fun, because at least the routine was well written. That said, it was harder than I thought it would be, because of the scrolling of the text. Two routines run here, actually the main writing routine and a subroutine that serves to make the text follow the scroll. The command codes F3, F4, F5, F6, and F7 does the trick here: F3 serves as the "resume" command, this code makes the game continue writing the text at the previously saved offset. F4 serves as the default spacing between lines. F5 acts as a line break. F6 command was the tricky part, I know what it does but I don't know how it does it (I didn't feel like following this subroutine all the way through). Anyway, it returns the game code to a pre-file routine, and then it returns back to the synopsis file, but the base offset that is written in vdp2 changes to another base offset, it is as if it were a giant line break. F6 is mainly used to follow the scroll, but these commands were created with this specific text length in mind. Because of this, in this case I had to obey the rules of the original text, and although I could write more text, I had to maintain the number of lines of the original text, or else I would have to change the scroll routine itself. F7 stops the scrolling. I didn't see the F7 subroutine, but its function was quite visible. That's it for now. I'll probably only update the topic when the translation is ready to be released (so I hope). |
TrekkiesUnite118 | Mar 6, 2025 | |||
Is that how the text boxes are supposed to look? It looks like the text is still erasing it. |
Lirinica | Mar 7, 2025 | |||||
No, I changed the photos with the current update. |
Malenko | Mar 7, 2025 | |||
Thank you for the fantastic write up! Progress looks great as well. |
TrekkiesUnite118 | Mar 7, 2025 | |||||
Ah ok, those look a lot better. |
1 | 2 | Next> |