Post by Deleted on Aug 14, 2011 11:05:34 GMT -5
I'm posting this mainly for my own reference but if anyone else ever actually tries this then I guess the information is here.
Useful references:
wiki.spinout182.com/w/Maps_and_Scenes
wiki.spinout182.com/w/Debug_ROM:_Exit_List
wiki.spinout182.com/w/Debug_ROM:_Exit_List_%28alternate%29
Note: steps 1 and 2 need to be done for both map and scene files.
Step 1: Add pointers to alternate scene/map headers
This will be a bit more of a hassle if your scene/map files don't already have alternate headers as you'll have to move some data around and fix some other pointers.
If there are no alternate headers for you map, add an 0x18 command at the start of the file. The data it points to should be:
00000000 00000000 00000000 [bbxxxxxx]*
*repeat as many times as the number of cutscenes you want to add.
bb = memory segment (aka bank, 03 = current map, 02 = current scene)
xxxxxx = offset
If there are already alternate headers then you either have to add 00000000 [bbxxxxxx] or just [bbxxxxxx] to the list (depending on whether or not there are already cutscenes).
Step 2: Write your scene/map headers
I won't explain it here because the information is elsewhere, just follow the format on the wiki page and use existing headers as a reference if you get stuck.
Once you're done go back and fix the pointers you added in step 1 to point to these headers.
Step 3: Modify the exit table
Your cutscene won't be able to run unless it has an entry in the exit table but unfortunately there's not an easy way to avoid overwriting other data that may be needed. For now just add an entry directly after the ones for the scene number you're using (entrance 0) for each of your cutscenes. If this causes problems with any other areas you need to use then you'll have to relocate their entries in the exit table and change the exit number used by scenes to access that area (annoying, but I don't think there's another way).
Not too complicated but I'm just posting this so I remember it or if anyone else might need it.
Useful references:
wiki.spinout182.com/w/Maps_and_Scenes
wiki.spinout182.com/w/Debug_ROM:_Exit_List
wiki.spinout182.com/w/Debug_ROM:_Exit_List_%28alternate%29
Note: steps 1 and 2 need to be done for both map and scene files.
Step 1: Add pointers to alternate scene/map headers
This will be a bit more of a hassle if your scene/map files don't already have alternate headers as you'll have to move some data around and fix some other pointers.
If there are no alternate headers for you map, add an 0x18 command at the start of the file. The data it points to should be:
00000000 00000000 00000000 [bbxxxxxx]*
*repeat as many times as the number of cutscenes you want to add.
bb = memory segment (aka bank, 03 = current map, 02 = current scene)
xxxxxx = offset
If there are already alternate headers then you either have to add 00000000 [bbxxxxxx] or just [bbxxxxxx] to the list (depending on whether or not there are already cutscenes).
Step 2: Write your scene/map headers
I won't explain it here because the information is elsewhere, just follow the format on the wiki page and use existing headers as a reference if you get stuck.
Once you're done go back and fix the pointers you added in step 1 to point to these headers.
Step 3: Modify the exit table
Your cutscene won't be able to run unless it has an entry in the exit table but unfortunately there's not an easy way to avoid overwriting other data that may be needed. For now just add an entry directly after the ones for the scene number you're using (entrance 0) for each of your cutscenes. If this causes problems with any other areas you need to use then you'll have to relocate their entries in the exit table and change the exit number used by scenes to access that area (annoying, but I don't think there's another way).
Not too complicated but I'm just posting this so I remember it or if anyone else might need it.