News: 11 March 2016 - Forum Rules

Author Topic: Cartographer Issue *SOLVED*  (Read 1914 times)

justin3009

  • Hero Member
  • *****
  • Posts: 1664
  • Welp
    • View Profile
Cartographer Issue *SOLVED*
« on: July 23, 2016, 11:56:45 pm »
I'm working on dumping the script for Sailor Moon - Another Story and I'm running into a few issues.

First one is that this game uses 3-byte pointers instead of 2-byte, which is fine and dandy and is easier to work with pointer wise in-game, but I'm not sure how to properly set that up in Cartographer.  The method I do have right now keeps throwing an error no matter how I order the sequences.

Code: [Select]
#GAME NAME: Sailor Moon - Another Story (SNES)

#BLOCK NAME: Script
#TYPE: NORMAL
#METHOD: POINTER_RELATIVE_PC
#POINTER ENDIAN: LITTLE
#POINTER TABLE START: $050A00
#POINTER TABLE STOP: $053208
#POINTER SIZE: $03
#POINTER SPACE: $00
#ATLAS PTRS: Yes
#RELATIVE PC: Yes
#RELATIVE BASE: $000000
#TABLE: SMASJP.tbl //the string address
#COMMENTS: NO
#END BLOCK

This is PROBABLY wrong but I assume I have to use POINTER_RELATIVE_PC due to it using 3-byte pointers.  I tried just regular Pointer_Relative or even Pointer and it does not work with 3 bytes.  It instantly crashes the program.  I wouldn't mind splitting the text up by banks.. but they're all kind of intermeshed in the pointer table itself.  Some are $C5, some $C6, some $C8 and $C9 and they're pretty sporadic in a few instances.  It's a mess.  Not entirely sure what to do here.
« Last Edit: July 24, 2016, 10:42:57 am by justin3009 »
'We have to find some way to incorporate the general civilians in the plot.'

'We'll kill off children in the Juuban district with an infection where they cough up blood and are found hanging themselves from cherry blossom trees.'

Vehek

  • Full Member
  • ***
  • Posts: 217
    • View Profile
Re: Cartographer Issue
« Reply #1 on: July 24, 2016, 02:17:30 am »
I'm not sure how POINTER_RELATIVE_PC works, but I think you can use POINTER_RELATIVE. You just have to put a negative value in the BASE POINTER to do the subtraction for converting HiRom address to plain offset. The reason is, unlike the inserter Atlas, Cartographer doesn't do any console memory mapping to convert pointers, it only knows plain linear addresses.

justin3009

  • Hero Member
  • *****
  • Posts: 1664
  • Welp
    • View Profile
Re: Cartographer Issue
« Reply #2 on: July 24, 2016, 08:14:43 am »
That did the trick!  I didn't realize you could use negative values on the base pointers, that saved it!  Thank you!
'We have to find some way to incorporate the general civilians in the plot.'

'We'll kill off children in the Juuban district with an infection where they cough up blood and are found hanging themselves from cherry blossom trees.'