-
Notifications
You must be signed in to change notification settings - Fork 5
MapList
See also the map loading procedure.
Each map has:
- an ID
- a
[mapname].romlist.zlb
file (described here) - a directory containing the map's assets
- an entry in
MAPINFO.bin
which contains:- the map's name (used by debug builds)
- the map's type
- an object ID which, in older versions, specified which object to use as the player
- omitted from first list since it's always zero
- an unknown parameter which is always 6 (omitted here)
ID | Romlist | Directory Name | Name from MAPINFO.bin | T | Note |
---|---|---|---|---|---|
00 | frontend | shipbattle | Ship Battle | 0 | Start of game, Krystal vs ship |
01 | frontend2 | animtest | ZNot Used - Front End2 | 3 | only map where T = 3 |
02 | dragrock | dragrock | Dragon Rock - Top | 0 | |
03 | krazoapalace | animtest | ZNot Used - Krazoa Palace | 0 | Unused maps are prefixed with Z |
04 | temple | volcano | Volcano Force Point | 0 | |
05 | hightop | animtest | Rolling Demo - Just In Case | 0 | |
06 | discovery | animtest | ZNot Used - Discovery Falls | 0 | |
07 | hollow | swaphol | ThornTail Hollow | 0 | Originally called SwapStone Hollow |
08 | hollow2 | swapholbot | ThornTail Hollow - Undergro | 0 | |
09 | mazecave | mazecave | MazeTest | 0 | |
0a | wastes | nwastes | SnowHorn Wastes | 0 | |
0b | warlock | warlock | Krazoa Palace | 0 | Originally called Warlock Mountain |
0c | fortress | crfort | CloudRunner Fortress | 0 | |
0d | wallcity | wallcity | Walled City | 0 | |
0e | swapcircle | lightfoot | LightFoot Village | 0 | |
0f | cloudtreasure | cloudtreasure | ZNot Used - CloudRunner - T | 0 | directory missing |
10 | clouddungeon | clouddungeon | CloudRunner - Dungeon | 0 | |
11 | cloudtrap | animtest | ZNot Used - CloudRunner - T | 0 | |
12 | moonpass | mmpass | Moon Mountain Pass | 0 | |
13 | snowmines | darkicemines | DarkIce Mines - Top | 0 | |
14 | krashrin2 | animtest | ZNot Used - Krazoa Shrine | 0 | |
15 | kraztest | desert | Ocean Force Point - Bottom | 0 | |
16 | krazchamber | animtest | krazchamber | 0 | |
17 | newicemount | icemountain | Ice Mountain | 0 | |
18 | newicemount2 | animtest | ZNot Used - Ice Mountain 2 | 0 | |
19 | newicemount3 | animtest | ZNot Used - Ice Mountain 3 | 0 | |
1a | animtest | animtest | Animtest | 0 | |
1b | snowmines2 | darkicemines2 | DarkIce Mines - Bottom | 0 | |
1c | snowmines3 | bossgaldon | BOSS DarkIce | 0 | |
1d | capeclaw | capeclaw | Cape Claw | 0 | |
1e | insidegal | insidegal | ZNot Used - Inside Galleon | 0 | directory missing |
1f | dfshrine | dfshrine | Test Of Combat | 0 | |
20 | mmshrine | mmshrine | Test Of Fear | 0 | |
21 | ecshrine | ecshrine | Test Of Skill | 0 | |
22 | gpshrine | gpshrine | Test Of Knowledge | 0 | |
23 | diamondbay | dbay | ZNot Used - Diamond Bay | 0 | directory missing |
24 | earthwalker | animtest | ZNot Used - EarthWalker Tem | 0 | |
25 | willow | animtest | ZNot Used - Willow Grove | 0 | |
26 | arwing | arwing | ArWing Level - Andross | 4 | |
27 | dbshrine | dbshrine | Test Of Strength | 0 | |
28 | nwshrine | nwshrine | BOSS Scales | 0 | |
29 | ccshrine | worldmap | World Map | 4 | choosing where to fly to |
2a | wgshrine | animtest | ZNot Used - WGShrine | 0 | |
2b | cloudrace | cloudrace | CloudRunner - Race | 0 | |
2c | finalboss | bossdrakor | BOSS Drakor | 0 | |
2d | wminsert | animtest | ZNot Used - WMinsert | 0 | |
2e | snowmines4 | animtest | ZNot Used - DarkIce Mines - | 0 | |
2f | snowmines5 | animtest | ZNot Used - DarkIce Mines - | 0 | |
30 | trexboss | bosstrex | BOSS TRex | 0 | |
31 | mikelava | animtest | ZNot Used - MikesLava | 0 | |
32 | dfptop | dfptop | Ocean Force Point - Top | 0 | |
33 | swapstore | shop | Shop | 0 | ThornTail store |
34 | dragbot | dragrockbot | Dragon Rock - Bottom | 0 | |
35 | kamdrag | animtest | ZNot Used - BOSS Kamerian D | 0 | |
36 | magicave | magiccave | Magic Cave - Small\Big | 0 | caves where staff upgrades are found - has backslash |
37 | duster | cloudjoin | ZNot Used - Duster Cave | 0 | directory missing |
38 | linkb | linkb | LinkB - Ice2Wastes | 0 | |
39 | cloudjoin | animtest | ZNot Used - CloudRunner2Rac | 0 | |
3a | arwingtoplanet | arwingtoplanet | Arwing to Planet | 4 | flying to Dino Planet |
3b | arwingdarkice | arwingdarkice | Arwing Darkice | 4 | |
3c | arwingcloud | arwingcloud | Arwing Cloud | 4 | |
3d | arwingcity | arwingcity | Arwing City | 4 | |
3e | arwingdragon | arwingdragon | Arwing Dragon | 4 | |
3f | gamefront | gamefront | Game Front | 4 | title screen |
40 | linklevel | linklevel | LinkK - Nik Test | 0 | directory missing |
41 | greatfox | greatfox | Great Fox | 0 | probably first scene where Fox receives mission |
42 | linka | linka | LinkA - Warpstone to Others | 0 | |
43 | linkc | linkc | LinkC - Wastes to Hollow | 0 | |
44 | linkd | linkd | LinkD - Darkmines top 2 bot | 0 | |
45 | linke | linke | LinkE - hollow to moon pass | 0 | |
46 | linkf | linkf | LinkF - moonpass to volcano | 0 | |
47 | linkg | linkg | LinkG - hollow to lightfoot | 0 | |
48 | linkh | linkh | LinkH - lightfoot to capecl | 0 | |
49 | linkj | linkj | LinkJ - capeclaw 2 ocean fo | 0 | |
4a | linki | linki | LinkI - CloudRunner2Race | 0 |
From here on, there appears to be no corresponding directory. (The directory table only goes up to entry 0x4A.) The different naming convention also suggests they may be from later in development.
These are the only ones to use the ObjType field. Although this function was removed at some point during development, the object IDs still seem to match up with the final version. Also, all maps in this list have T (Map Type) 1.
ID | Romlist | Name from MAPINFO.bin | ObjType | Note |
---|---|---|---|---|
4b | dfpodium | dfpodium | 0000 | |
4c | dfcradle | dfcradle | 0000 | |
4d | dfcavehatch1 | dfcavehatch1 | 0000 | |
4e | dfcavehatch2 | dfcavehatch2 | 0000 | |
4f | scstatue | scstatue | 0000 | |
50 | galleonship | galleonship | 008E SB_Galleon | |
51 | cfgalleon | cfgalleon | 00CE CFScalesGal | |
52 | cfgangplank | cfgangplank | 0000 | |
53 | nwtreebridge | nwtreebridge | 0000 | |
54 | cfdungeonblock | cfdungeonblock | 00B3 CFDungeonBl | |
55 | cloudrunnermap | cloudrunnermap | 008C SB_Cloudrun | |
56 | ccbridge | ccBridge | 0099 CCBridge | |
57 | cfcolumn | cfcolumn | 0782 CF_BobbingC | |
58 | nwboulder | nwboulder | 0000 | |
59 | cfprisondoor | cfprisondoor | 00C1 CFPrisonDoo | |
5a | cfprisoncage | cfprisoncage | 0127 CFPrisonCag | |
5b | nwtreebridge2 | nwtreebridge2 | 01DB NW_treebrid | |
5c | dim2iceblock1 | dim2 ice block1 | 07C7 DIM2IcePlat | |
5d | dimpushblock | dimpushblock | 01CB DIMWoodDoor | |
5e | dim2iceblock2 | dim2 ice block2 | 07C9 DIM2IcePlat | |
5f | dimhornplinth | dimhornplinth | 0000 | |
60 | nwshcolpush | nwshcolpush | 0000 | |
61 | dim2lift | dim2lift | 0000 | |
62 | dim2icefloe | dim2icefloe | 0111 DIM2IceFloe | |
63 | dim2icefloe1 | dim2icefloe1 | 0109 DIM2IceFloe | |
64 | dim2icefloe2 | dim2icefloe2 | 010D DIM2IceFloe | |
65 | cfliftplat | cfliftplat | 0000 | |
66 | imspacecraft | imspacecraft | 0168 IMAnimSpace | |
67 | dimbossgut | dimbossgut | 0155 DIM_BossGut | |
68 | wmcolrise | wmcolrise | 015D WM_colrise | |
69 | vfpslide1 | vfpslide1 | 03BA VFP_Platfor | |
6a | vfpslide2 | vfpslide2 | 03C0 VFPLavaBloc | |
6b | drpushcart | drpushcart | 0418 DR_PushCart | |
6c | drliftplat | drliftplat | 03B1 DR_Platform | |
6d | dim2stonepillar | dim2stonepillar | 00F2 DIM2StonePi | |
6e | bossdrakorflatr | bossdrakorrock | 07DF WCPushBlock | |
6f | wcbouncycrate | wcbouncycrate | 04FE WCBouncyCra | |
70 | wcpushblock | wcpushblock | 0515 WCPushBlock | |
71 | wctemplelift | wctemplelift | 0528 WCMoonTempl | |
72 | KamColumn | kameriancolumn | 0000 | |
73 | dbstepstone | dbstepstone | 0000 | |
74 | vfppushblock | vfppushblock | 0857 VFP_Bobbing |
Although animtest
is unused (and contains only one object, a setuppoint
),
the game does look at its files sometimes, notably at the title screen.
This might have to do with frontend2
?
T
is the map type:
- 00: Normal map
- 01: Normal submap
- 02: Special map - unloads all objects immediately upon loading (unused)
- 03: Special submap (same as 02) - only used by map 1 which is itself unused
- 04: Special map - hides PDA HUD. Used for title screen and Arwing maps. If applied to a normal map, the game will crash looking for an object that isn't there.
The names, as well as prerelease articles about the game, hint at some maps whose names have been changed:
Final Name | Original Name | Internal | Note |
---|---|---|---|
ThornTail Hollow | SwapStone Hollow | swaphol | WarpStone was once SwapStone |
Krazoa Palace | Warlock Mountain | warlock | |
Ocean Force Point | ? | desert | |
Test Of Combat | ? | dfshrine | presumably "dfalls" |
Test Of Fear | ? | mmshrine | presumably Moon Mountain |
Test Of Skill | ? | ecshrine | |
Test Of Knowledge | ? | gpshrine | |
Test Of Strength | ? | dbshrine | Diamond Bay? |
BOSS Scales | ? | nwshrine | Northern Wastes (SnowHorn Wastes) |
World Map | ? | ccshrine | Probably reused map ID |
BOSS Drakor | ? | finalboss | Probably final boss before Starfoxification |
The table at 0x802cbbac
in RAM (v1.0) is a list of map directories with many repeats:
ID | Directory | ID | Directory | ID | Directory | ID | Directory | ID | Dir |
---|---|---|---|---|---|---|---|---|---|
00 | animtest | 10 | shop | 20 | animtest | 30 | dbay | 40 | linka |
01 | animtest | 11 | animtest | 21 | animtest | 31 | animtest | 41 | linkc |
02 | animtest | 12 | crfort | 22 | darkicemines2 | 32 | cloudrace | 42 | linkd |
03 | arwing | 13 | swapholbot | 23 | bossgaldon | 33 | bossdrakor | 43 | linke |
04 | dragrock | 14 | wallcity | 24 | animtest | 34 | animtest | 44 | linkf |
05 | animtest | 15 | lightfoot | 25 | insidegal | 35 | bosstrex | 45 | linkg |
06 | dfptop | 16 | cloudtreasure | 26 | magiccave | 36 | linkb | 46 | linkh |
07 | volcano | 17 | animtest | 27 | dfshrine | 37 | cloudjoin | 47 | linkj |
08 | animtest | 18 | clouddungeon | 28 | mmshrine | 38 | arwingtoplanet | 48 | linki |
09 | mazecave | 19 | mmpass | 29 | ecshrine | 39 | arwingdarkice | ||
0a | dragrockbot | 1a | darkicemines | 2a | gpshrine | 3a | arwingcloud | ||
0b | dfalls | 1b | animtest | 2b | dbshrine | 3b | arwingcity | ||
0c | swaphol | 1c | desert | 2c | nwshrine | 3c | arwingdragon | ||
0d | shipbattle | 1d | animtest | 2d | worldmap | 3d | gamefront | ||
0e | nwastes | 1e | icemountain | 2e | animtest | 3e | linklevel | ||
0f | warlock | 1f | animtest | 2f | capeclaw | 3f | greatfox |
At 0x802cbcd0
is a lookup table that translates map IDs to indices
into the above table.
Idx | Dir | Map | Directory | Note |
---|---|---|---|---|
00 | 0D | frontend | shipbattle | |
01 | 05 | frontend2 | animtest | frontend dir not used |
02 | 04 | dragrock | dragrock | |
03 | 05 | krazoapalace | animtest | used krazoa palace is idx 0B |
04 | 07 | temple | volcano | |
05 | 05 | hightop | animtest | |
06 | 05 | discovery | animtest | dfalls dir not used |
07 | 0C | hollow | swaphol | |
08 | 13 | hollow2 | swapholbot | |
09 | 09 | mazecave | mazecave | |
0a | 0E | wastes | nwastes | |
0b | 0F | warlock | warlock | |
0c | 12 | fortress | crfort | |
0d | 14 | wallcity | wallcity | |
0e | 15 | swapcircle | lightfoot | swapcircle dir not used |
0f | 16 | cloudtreasure | cloudtreasure | |
10 | 18 | clouddungeon | clouddungeon | |
11 | 05 | cloudtrap | animtest | |
12 | 19 | moonpass | mmpass | |
13 | 1A | snowmines | darkicemines | |
14 | 05 | krashrin2 | animtest | |
15 | 1C | kraztest | desert | |
16 | 05 | krazchamber | animtest | |
17 | 1E | newicemount | icemountain | |
18 | 1F | newicemount2 | animtest | different animtest entry |
19 | 20 | newicemount3 | animtest | different animtest entry |
1a | 05 | animtest | animtest | |
1b | 22 | snowmines2 | darkicemines2 | |
1c | 23 | snowmines3 | bossgaldon | |
1d | 2F | capeclaw | capeclaw | |
1e | 25 | insidegal | insidegal | |
1f | 27 | dfshrine | dfshrine | |
20 | 28 | mmshrine | mmshrine | |
21 | 29 | ecshrine | ecshrine | |
22 | 2A | gpshrine | gpshrine | |
23 | 30 | diamondbay | dbay | |
24 | 05 | earthwalker | animtest | |
25 | 05 | willow | animtest | |
26 | 03 | arwing | arwing | |
27 | 2B | dbshrine | dbshrine | |
28 | 2C | nwshrine | nwshrine | |
29 | 2D | ccshrine | worldmap | |
2a | 05 | wgshrine | animtest | |
2b | 32 | cloudrace | cloudrace | |
2c | 33 | finalboss | bossdrakor | |
2d | 05 | wminsert | animtest | |
2e | 05 | snowmines4 | animtest | |
2f | 05 | snowmines5 | animtest | |
30 | 35 | trexboss | bosstrex | |
31 | 05 | mikelava | animtest | |
32 | 06 | dfptop | dfptop | |
33 | 10 | swapstore | shop | |
34 | 0A | dragbot | dragrockbot | |
35 | 05 | kamdrag | animtest | |
36 | 26 | magicave | magiccave | |
37 | 37 | duster | cloudjoin | |
38 | 36 | linkb | linkb | |
39 | 05 | cloudjoin | animtest | cloudjoin dir used for unused duster map |
3a | 38 | arwingtoplanet | arwingtoplanet | |
3b | 39 | arwingdarkice | arwingdarkice | |
3c | 3A | arwingcloud | arwingcloud | |
3d | 3B | arwingcity | arwingcity | |
3e | 3C | arwingdragon | arwingdragon | |
3f | 3D | gamefront | gamefront | |
40 | 3E | linklevel | linklevel | |
41 | 3F | greatfox | greatfox | |
42 | 40 | linka | linka | |
43 | 41 | linkc | linkc | |
44 | 42 | linkd | linkd | |
45 | 43 | linke | linke | |
46 | 44 | linkf | linkf | |
47 | 45 | linkg | linkg | |
48 | 46 | linkh | linkh | |
49 | 47 | linkj | linkj | |
4a | 48 | linki | linki |
A few directories aren't used, or don't match up with the actual map:
- Directory
frontend
is unused; mapfrontend
uses directoryshipbattle
- Directory
dfalls
is unused, probably belonged to mapdiscovery
ordbay
- Directory
swapcircle
is unused; mapswapcircle
uses directorylightfoot
- Maps
newicemount2
andnewicemount3
use entries 0x1F and 0x20 in the directory list- Both are
animtest
but most unused maps use entry 0x05 instead
- Both are
- Map
duster
uses directorycloudjoin
- Map
cloudjoin
uses directoryanimtest
- ID 0x05 (animtest) is also used as the default for any invalid map IDs
At 0x802cbdfc
is a table assigning some map directories a "parent".
If a map has a parent listed here, the parent is loaded at the same
time as the map. (Note that Idx
here is a directory ID, not a map ID.)
Idx | ID | Directory | Parent |
---|---|---|---|
09 | 0C | mazecave | swaphol |
0d | 0F | shipbattle | warlock |
10 | 0C | shop | swaphol |
13 | 0C | swapholbot | swaphol |
18 | 12 | clouddungeon | crfort |
1c | 06 | desert | dfptop |
23 | 22 | bossgaldon | darkicemines2 |
27 | 19 | dfshrine | mmpass |
28 | 15 | mmshrine | lightfoot |
29 | 0F | ecshrine | warlock |
2a | 14 | gpshrine | wallcity |
2b | 0E | dbshrine | nwastes |
2c | 0F | nwshrine | warlock |
30 | 05 | dbay | animtest |
35 | 14 | bosstrex | wallcity |
36 | 1E | linkb | icemountain |
3f | 0F | greatfox | warlock |
41 | 0E | linkc | nwastes |
43 | 0C | linke | swaphol |
44 | 07 | linkf | volcano |
45 | 0C | linkg | swaphol |
46 | 15 | linkh | lightfoot |
47 | 2F | linkj | capeclaw |