2. Att ändra text

Som de flesta andra dokument tänkte jag att vi skulle översätta Zelda 2 till svenska. Till att börja med hitta dig en Zelda 2 rom.

Om man nu öppnar den här i en hexeditor så kommer dialogen "PLEASE LET ME HELP YOU. COME INSIDE" se ut så här:

Men detta säger dig säkert inte mycket. Nu är det så att det hexadecimala talet E9 representerar bokstaven "P" och talet E5 betyder "L". Så om man sakta avkodar alla talen som kommer man att kunna se hela texten. För oftast är det så (om inte texten är komprimerad) att all text i spelet ligger lagrad på detta viset. Men hur vet man då vilka hexadecimala tal som representerar vilka bokstäver? Nu finns det två olika sätt. Det ena är att använda Nesticle, vilket man ofta gör när man är nybörjare, eller göra en Relative search. Vi börjar med att gå igenom hur man gör i Nesticle.

Nu är det så att vi vill byta ut alla "E9" mot P och alla "E5" mot L. Detta gör man genom att använda en table fil. Det går att översätta rommar utan att använda en table fil men det är otroligt jobbigt!

Först öppnar du upp rommen, och så spelar du dig fram till stället där texten i fråga sägs. Tryck då på ALT + P för att pausa spelet. Detta är inte nödvändigt men det kan vara en god idé. Tryck nu på F2. Nu dyker all grafik som används på just denna skärm upp. Om det är Zelda 2 rommen som du använder så kommer alla bokstäver och siffror dyka upp nere till höger. Om du nu trycker med vänsterknappen på "A" så kommer det upp en annan liten ruta. I menyraden till denna ruta står det nu (om du använder Zelda 2) #DA. Anteckna detta värde. Stäng sedan rutan och klicka på siffran 0. Värdet för denna är D0. Finns det små bokstäver i spelet tar du även reda på vilket värde som lilla "a" har. Nu kommer vi till det roliga. Du kan nu stänga av Nesticle.

Nu kör du igång Dos Edit eller Notepad. Jag skall ta fördelen med Dos Edit lite senare. När du öppnat ditt program skriver du som följande:

DA=A
DB=B
DC=C
DD=D
DE=E
DF=F
E0=G
E1=H

och så vidare ända till Z. Efter detta lägger du till:

D0=0
D1=1
D2=2
D3=3
D4=4

och så vidare ända tills 9. Sedan sparar du detta som zelda2.tbl. Detta kallas för en table fil. Som du märkte matade du in "E9=P". Om du läser lite längre upp så berättade jag detta för dig lite tidigare. En table fil behöver inte alltid innehålla bokstäver och siffror. Den kan även innehålla Japanska Hiragana och Kana tecken. Men det har inte vi någon nytta av nu, men dock har vi nytta av en del andra saker. De skall jag gå igenom nu:

Om du nu stoppar zelda2.nes och zelda2.tbl i samma katalog som Hexposure och sedan öppnar detta program. Sen markerar du zelda2.nes filen och trycker på enter. Nu kommer zelda2.nes öppnas i denna hexeditor. Men det som skiljer Hexposure från HexWorkshop är att Hexposure inte alltid använder ASCII standarden som HexWorkshop gör. Om .nes filen och .tbl filen har samma namn kommer dessa att laddas samtidigt.

Om du nu scrollar ner till offset $E390. Man skriver ofta $ före hexadecimala adresser. Du kan antingen använda PageDown för att komma hit eller trycka på F1 och skriva in offsetten. Nu kommer du se följande.

Här har du din text! Men som du kanske märker så i stället för mellanslag står det en punkt. Hur skall vi fixa detta? Om vi tar reda på vilket värde som mellanslag har kanske vi kan föra in detta i för table fil?

F4? Om vi öppnar vår table fil och lägger till

F4=

Efter "=" skall det vara ett mellanslag, glöm inte det. Om vi nu öppnar zelda2.nes rommen igen så skall det se ut så här:

Men nu ser du kanske att det fortfarande finns en del punkter kvar. CF som är markerat med grönt, är faktiskt en riktig punkt, så då lägger vi helt enkelt till:

CF=.

Men om vi tittar på den röda markeringen. FD står det. Nu är det så att FD i detta spelet står för radbyte. Hur vet man det? Okända hexvärden får man prova sig fram med. Men övnings ger färdighet så det är inga problem när man väl lärt sig. I table filen lägger vi till:

*=FD

* Betyder ny rad. Men om vi tittar på den blå markeringen ser vi ännu ett nytt värde. FF står det här. I de flesta spel står det för mellanslag, men som vi vet är mellanslag F4 så det är nåt annat. Det betyder faktiskt slut på dialogen. Så vi lägger till i table filen:

/=FF

Som betyder slut på dialogen. Lägg nu noga märket till att kontrollkoderna i table filen är skrivna på omvänt sett en de som betyder tecken. Det är för att hexeditorn inte skall skriva "*" och "/" istället. Om vi nu öppnar våran nya table fil kommer det så ut så här:

När man vill ha en trycker vi helt enkelt bara på Enter. Svårare än så är det inte. För att få en trycker man på Tab och skriver FF. Så vitt jag vet finns det inget annat sätt, men det får man dras med. Allt går ju så mycket fortare nu än det gick för...

Om vi nu för skojs skull skulle ta och ändra lite av texten. Skriv dock INTE längre än fram till ! Jag ändrade min till:

Ok, det var kanske lite lamt, men det är bara för att visa dig hur man skall göra. Om man nu tycker på F5 så sparas filen. Du behöver inte stänga av Hexposure utan kan trycka på ALT + TAB för att komma tillbaka till Windows och sen öppna filen i valfri NES emulator. När du kommer till stället där texten står kommer det nu att stå det som du skrev. Skoj? Ja det är en bra början i alla fall. =)