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

Author Topic: Editing lists in Dragon Warrior 1  (Read 638 times)

werewolfslayr925

  • Full Member
  • ***
  • Posts: 102
    • View Profile
Editing lists in Dragon Warrior 1
« on: May 25, 2018, 10:50:04 pm »
I'm having some trouble editing the enemies, item lists, and menus in Dragon Warrior. After lots of trial and error with Atlas, Pointer Tables, and attempts to edit the hex code in CrystalTiles, I've met temporary defeat and am seeking some guidance on how to effectively translate the enemy names, item names, menus and stats, and (if it's anything like the items and enemies) the credits.

Relevant thread here.

What's happening is this:

Whenever I try to insert the text using Atlas, I use the following code, I (sometimes) get the following error

Code: [Select]
This application requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

That comes up when I use the following code:

Code: [Select]
//DRAGON QUEST SPANISH ITEMS AND MONSTERS-ATLAS CODING
// Define, load, and activate a table (replace "dw_es.tbl" with the name of your table file).
#VAR(dwSP4, TABLE)
#ADDTBL("dwSP4.tbl", dwSP4)
#ACTIVETBL(dwSP4)

// NES ROMs have a $10 byte header.
#HDR($10)

// Jump to the start of the script, set an upper bound on the available space so that you don't accidentally start overwriting other code/data if your script is too long.
#JMP($7AC0, $BCBF)

// Write a 16-bit pointer to the current address (which is $8038 because that's where we just jumped to)
#W16($7AC0)
é<EB><A6><A5>qo[60]Palo[ITM]Porra[ITM]Espada[ITM]Hacha[ITM]Sable[ITM]Espada[ITM]Espada[ITM]Ropas[ITM]Armadura[ITM]Cota[ITM]Corasa[ITM]Petral[ITM]Armadura[ITM]Armadura[ITM]Rodela[ITM]Escudo[ITM]Escudo[ITM]Hierba[ITM]Hachón[ITM]Escama[ITM]Alas[ITM]Llave[ITM]Agua[ITM]Orbe de[ITM]Tableta[ITM]Flauta[ITM]Lira[ITM]Caña[ITM]Piedra del[ITM]Amor de[ITM]Gota del[ITM]Cinturón[ITM]Collar[ITM]Anillo[ITM]Sello de[ITM]Pasaje[ITM][ITM][ITM]de Cobre[ITM][ITM][ITM]de Fuego[ITM]de Loto[ITM][ITM]de Cuero[ITM]de Malla[ITM][ITM][ITM]Mágica[ITM]de Loto[ITM][ITM][ITM]de Plata[ITM][ITM][ITM]de Dragón[ITM][ITM]Mágica[ITM]de Hadas[ITM]Luz[ITM][ITM]de Hadas[ITM]de Plata[ITM]de Lluvia[ITM]Sól[ITM]Laura[ITM]Arcoiris[ITM]Maldito[ITM]Maldito[ITM][ITM]Loto[ITM]Secreto[ITM]Goma[ITM]Goma[ITM]Vampiro[ITM]Fantasma[ITM]Mágico[ITM]Murcielaguito[ITM]Escorpión[ITM]Ojo[ITM]Espanto[ITM]Babosa[ITM]Murciélago[ITM]Muerto[ITM]Brujo[ITM]Metál[ITM]Lobo[ITM]Difunto[ITM]Alacranito[ITM]Espectro[ITM]Lobo[ITM]Ojo[ITM]Babosa[ITM]Quimera[ITM]Alacrán[ITM]Esqueleto[ITM]Golem[ITM]Golem[ITM]Armadura[ITM]Quimera[ITM]Demonio[ITM]Licántropo[ITM]Dragón[ITM]Quimera[ITM]Mago[ITM]Guerrero[ITM]Dragón[ITM]Gran[ITM]Guerrero[ITM]Dragón[ITM]El Rey Dragón[ITM]El Rey Dragón[ITM][ITM]Roja[ITM][ITM][ITM][ITM][ITM][ITM][ITM][ITM][ITM][ITM][ITM][ITM][ITM][ITM][ITM][ITM][ITM]Rojo[ITM]Rojo[ITM]Mágico[ITM][ITM][ITM][ITM][ITM]de Oro[ITM][ITM]Mágica[ITM][ITM][ITM][ITM]Cósmica[ITM][ITM][ITM]Azúl[ITM]Golem[ITM]Armado[ITM]Rojo[ITM][ITM][ITM]g<BE>a<00>Y<00><B4><00>M2<DC>5,C2<00>á<00><46><00>I1<E8>3<B8>báu2<00><5A><00>é3<D0>Vo<00>8<00>á<00><46><00>R<00>C<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><68>1[60]9u

Taking out everything beyond the final "[ITM]" command yeilds a successful insertion of the script. However, the names of things are scrambled. For example, the slime isn't called "Goma" like I want, but instead has the latter part of the Dragonlord's name ("ey Dragón") and the Magic Key ("Llave Mágica") is called "Llave Luz" ("Key Light"), presumably because its name got mixed up somehow with "Orbe de Luz" (the Ball of Light).

I'm guessing this has to do with the way the game reads these lists, but I'm not sure how to remedy this. I remember reading somewhere that the pointers for the game read a list from beginning to end to find the appropriate code necessary to display the name of a monster/item/etc., but I'm not sure how to manipulate that (or if manipulation of it is even necessary). Another thing to note is the manner in which the text dumps. I'm using Pointer Tables to dump the text and, for some reason, the text dumps like this:

Code: [Select]
Table Start: 6842
Table End: 6851
Text Start: 7AC0
Text End: 7E5F
XOffset: FFFFC009

Table Type: 0
Text Type: 0
Custom PT: T0 T1

PT Line Command:
-----------------
6844
é<EB><A6><A5>qo[60]Bamboo[ITM]Club[ITM]Copper[ITM]Hand[ITM]Broad[ITM]Flame[ITM]Erdricá}s[ITM]Clothes[ITM]Leather[ITM]Chain[ITM]Half[ITM]Full[ITM]Magic[ITM]Erdricá}s[ITM]Small[ITM]Large[ITM]Silver[ITM]Herb[ITM]Torch[ITM]Dragon}s[ITM]íings[ITM]Magic[ITM]Fairy[ITM]Ball of[ITM]Tablet[ITM]Fairy[ITM]Silver[ITM]Staff of[ITM]Stones of[ITM]Géaelin}s[ITM]R
6848
ainboé[ITM]Cursed[ITM]Death[ITM]Fighter}s[ITM]Erdricá}s[ITM]
6846
Secret[ITM]Pole[ITM][ITM]Séord[ITM]Axe[ITM]Séord[ITM]Séord[ITM]Séord[ITM][ITM]Armor[ITM]Mail[ITM]Plate[ITM]Plate[ITM]Armor[ITM]Armor[ITM]Shield[ITM]Shield[ITM]Shield[ITM][ITM][ITM]Scale[ITM][ITM]Key[ITM]íater[ITM]Light[ITM][ITM]Flute[ITM]Harp[ITM]Rain[ITM]Sunlight[ITM]Lov
684A
e[ITM]Drop[ITM]Belt[ITM]Necálace[ITM]Ring[ITM]Toáen[ITM]P
684E
assage[ITM]Slime[ITM]Red[ITM]Draáee[ITM]Ghost[ITM]Magician[ITM]Magidraáee[ITM]Scorpion[ITM]Druin[ITM]Poltergeist[ITM]Droll[ITM]Draáeema[ITM]Sáeleton[ITM]íarlocá[ITM]Metal[ITM]íolf[ITM]íraith[ITM]Metal[ITM]Specter[ITM]íolflord[ITM]Druinlord[ITM]Drollmagi[ITM]íyvern[ITM]Rogue[ITM]íraith[ITM]Golem[ITM]Goldman[ITM]Knight[ITM]Magiéyvern[ITM]Demon[ITM]íereéolf[ITM]Green[ITM]Staréyvern[ITM]íizard[ITM]Axe[ITM]Blue[ITM]Stoneman[ITM]Armored[ITM]Red[ITM]Dragonlord[ITM]Drag
6850
onlord[ITM][ITM]Slime[ITM][ITM][ITM][ITM][ITM][ITM][ITM][ITM][ITM][ITM][ITM][ITM]Scorpion[ITM][ITM][ITM]Slime[ITM][ITM][ITM][ITM][ITM][ITM]Scorpion[ITM]Knight[ITM][ITM][ITM][ITM][ITM]Knight[ITM][ITM]Dragon[ITM][ITM][ITM]Knight[ITM]Dragon[ITM][ITM]Knight[ITM]Dr
684C
agon[ITM][ITM][ITM]g<BE>a<00>Y<00><B4><00>M2<DC>5,C2<00>á<00><46><00>I1<E8>3<B8>báu2<00><5A><00>é3<D0>Vo<00>8<00>á<00><46><00>R<00>C<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><68>
6842
1

The names of some enemies are cut off and continue two sections down. Is that supposed to happen?

Also:

The script for the items and monsters in Spanish is only two characters under the limit, but there are some enemy names I want to change that will push it over the limit. There's some blank space in the ROM (a series of FFs after the spell list), and I would like to make use of that to expand the names some. However, this problem is probably going to make that effort more difficult than I thought.

Can anyone offer some insight, advice, and/or guidance on how the pointers work, how to edit the text, and how best to insert it? I'm not asking for someone to do the project for me; I just want to know what I'm doing wrong and how I can do it right.
« Last Edit: May 28, 2018, 11:52:01 am by werewolfslayr925 »
As the harbor is welcome to the sailor, so is the last line to the scribe.

- complaint in the margin of a medieval manuscript