News:

11 March 2016 - Forum Rules

Main Menu

Can't dump text using Cartographer

Started by Chatterine, September 18, 2021, 01:29:29 PM

Previous topic - Next topic

Chatterine

Hey there, I'm trying to address an issue with Cartographer. I would like to dump the text in Strider (NES), but it doesn't seem to be working.

Here's my bat file:
cartographer strider_original.nes strider_commands.txt strider_script -m

And here are the commands I put in my strider_commands.txt file:


#GAME NAME:      Strider
#BLOCK NAME:      Block1
#TYPE:         NORMAL
#STRING END:      Yes
#METHOD:      POINTER_RELATIVE
#POINTER ENDIAN:   LITTLE
#POINTER TABLE START:   $01C943
#POINTER TABLE STOP:   $01C953
#POINTER SIZE:      $04
#POINTER SPACE:      $00
#ATLAS PTRS:      Yes
#BASE POINTER:      $014000
#TABLE:         Original.tbl
#COMMENTS:      Yes
#END BLOCK


The first line I'd like to edit is at offset $01cab3 in the ROM. Whenever I try to dump it, it outputs an empty script file. Also, I keep getting the following error:


Allocating memory for strider_original.nes...
Missing one or more pointer commands in block [Block1]
Invalid command : #ATLAS PTRS:          Yes
Error occured in BLOCK [Block1]


I don't know what causing this issue, but I'd be grateful if anyone here could lend me a hand. Any help is appreciated.

C_CliFF

Try and comment out the STRING END.

Also, are you sure the pointers are 4-byte and not 2?

Chatterine

Quote from: C_CliFF on September 18, 2021, 05:49:05 PM
Try and comment out the STRING END.

Also, are you sure the pointers are 4-byte and not 2?

I don't know if commenting out STRING END should fix the issue. I changed my pointers from 04 to 02 and now I'm getting a different issue; currently it's dumping the text, but since it doesn't know where the string ends at, it goes beyond the location the text is stored and dumps the entire ROM. This makes me think the issue is with the tbl, and not with the commands file itself.

Vehek

End tokens are indicated by placing a '/' before the hex value of the end-string thingy in the table file.
Quote from: Cartographer readmeEnd tokens specifed by beginning the entry with a '/' (like /FF=<END>\n\n above) are used by the Pointer dumping methods to determine when the end of the string has been reached.

Chatterine

Still not there... this game has 2 control codes it uses for ending strings, but the problem is that both of them may not be used entirely for ending the strings. This means that the string may be ended prematurely during the dumping progress.