Difference between revisions of "Map Table"

From Ōkami Speedrun Wiki
Jump to navigation Jump to search
(→‎Current Map ID: clarifying order of setting map ID values upon touching a loading zone.)
(→‎Current Map ID: Describing a mechanic with map ID "forwarding" which I didn't know about)
 
Line 14: Line 14:
The map ID of the current map can generally be found in 4 locations in memory, stored as a uint_16:
The map ID of the current map can generally be found in 4 locations in memory, stored as a uint_16:
* <code>main.dll+B6B240</code> - Affects warped map and displayed overlay map. Always corresponds to the current actual (exterior) map ID even when in interiors. Third to be set upon touching a loading zone.
* <code>main.dll+B6B240</code> - Affects warped map and displayed overlay map. Always corresponds to the current actual (exterior) map ID even when in interiors. Third to be set upon touching a loading zone.
* <code>main.dll+B65E74</code> - Affects warped map only. First to be set upon touching a loading zone. Set to 0x0000 upon entering an interior loading zone and remains 0 until a new map is loaded.
* <code>main.dll+B65E74</code> - Affects warped map only. First to be set upon touching a loading zone. Set to 0x0000 upon entering an interior loading zone and remains 0 until a new map is loaded. In certain cases, such as when entering the loading zone from Kamiki to Shinshu after Blooming Shinshu, the game will set one map ID value (rf01 for Cursed Shinshu) before "forwarding" you to the intended map (rf02 for Healed Shinshu). In this case, this map ID remains at the initial value (rf01) while all the other addresses update to the correct (actually loaded) map ID (rf02).
* <code>main.dll+B4F0B4</code> - Doesn't affect warped map. Set to FFFF at the same time that <code>main.dll+B6B240</code> is set to the correct map ID, then set to the correct value several frames later.
* <code>main.dll+B4F0B4</code> - Doesn't affect warped map. Set to FFFF at the same time that <code>main.dll+B6B240</code> is set to the correct map ID, then set to the correct value several frames later.
* <code>main.dll+B6B246</code> - Doesn't affect warped map. Second to be set upon touching a loading zone.
* <code>main.dll+B6B246</code> - Doesn't affect warped map. Second to be set upon touching a loading zone.

Latest revision as of 03:23, 19 March 2024

Note: This page pertains to Reverse Engineering of Okami.

Explanation

The game world of Okami is divided into over 100 discrete environments called "maps". Loading zones (and sometimes cutscenes) transport Ammy between maps. Each map has a unique identifier made up of 3 hex digits, often prefixed by "r" in internal strings. The leftmost digit is used to assign the map to one of 8 "stages" or groups:

  • st0 - Developer/test maps
  • st1 - Eastern Nippon
  • st2 - Western Nippon
  • st3 - Kamui
  • stC - Title screens
  • stD - Beta/Incomplete maps
  • stE - Fishing maps
  • stF - Overworld maps

Current Map ID

The map ID of the current map can generally be found in 4 locations in memory, stored as a uint_16:

  • main.dll+B6B240 - Affects warped map and displayed overlay map. Always corresponds to the current actual (exterior) map ID even when in interiors. Third to be set upon touching a loading zone.
  • main.dll+B65E74 - Affects warped map only. First to be set upon touching a loading zone. Set to 0x0000 upon entering an interior loading zone and remains 0 until a new map is loaded. In certain cases, such as when entering the loading zone from Kamiki to Shinshu after Blooming Shinshu, the game will set one map ID value (rf01 for Cursed Shinshu) before "forwarding" you to the intended map (rf02 for Healed Shinshu). In this case, this map ID remains at the initial value (rf01) while all the other addresses update to the correct (actually loaded) map ID (rf02).
  • main.dll+B4F0B4 - Doesn't affect warped map. Set to FFFF at the same time that main.dll+B6B240 is set to the correct map ID, then set to the correct value several frames later.
  • main.dll+B6B246 - Doesn't affect warped map. Second to be set upon touching a loading zone.

Using a tool like Cheat Engine, it's possible to force the game to warp Ammy to any map by manually editing the value of one of the first two addresses listed above and freezing it at the value of the desired map ID, then going through a loading zone. Alternatively, you can force the game to load the map listed at those addresses (including reloading the current map) at almost any time by setting the flag located at main.dll+B6B2AF bit 1 to 1.

Vanilla Index

Most vanilla maps (those encountered during normal gameplay) are also assigned an index, the purpose of which is unknown. The index for the current map is located at main.dll+B6B2C8 as a uint_16. The values range from 1 to 81, and are shown in the table below under the "Vanilla Index" column. Certain pairs of maps share an index (namely Kamiki Village before and after fighting Tei, and the Cursed and Healed variants of Shinshu, Agata, Taka, Ryoshima, and Kamui). The value 0 is used when exiting to the main menu via the settings menu, and the value 65535 (0xFFFF) is used when on the main menu or on any maps which aren't explicitly assigned an index. The values 70 and 76 are unused for unknown reasons.

A table which includes both the Map ID and Vanilla Index of each vanilla map is present at main.dll+7ad9b0. If you represent it as a series of 2-byte values, there are 24 columns and 87 rows. In each row, the 1st column is the map ID, while the second is the vanilla index.

Table

Map ID Map Name/Description Vanilla Index
006 Endless load screen
007 2005 Prototype Intro Cutscene Waka Lake
010 Item Test Map - Items 0x00-0x7F
011 Item Test Map - Items 0x80-0xFF
020 Brush Interaction Test Map 1 - Large Animals
021 Brush Interaction Test Map 2 - Small Animals
030 Brush Interaction Test Map 3 - Wheel Enemies
031 Brush Interaction Test Map 4 - Bull Enemies
032 Brush Interaction Test Map 5 - Empty
033 Brush Interaction Test Map 6 - Empty
034 Brush Interaction Test Map 7 - Blue Cylinder
0ff Collision and Movement Test Map
100 Kamiki Village - Game Start 1
101 Cave of Nagi 2
102 Kamiki Village 3
103 Hana Valley 4
104 Tsuta Ruins 5
105 City Checkpoint 6
106 Tsuta Ruins - Spider Queen Arena 7
107 Gale Shrine 8
108 Kusa Village 9
109 Sasa Sanctuary 10
10a Agata Forest - Madame Fawn's House 11
10b Digging Minigame 12
10c Onigiri Dojo Lesson Room 13
10d Gale Shrine - Crimson Helm Arena 14
10e Calcified Cavern 15
110 Moon Cave - Interior 16
111 Moon Cave - Staircase and Orochi Arena 17
112 Kamiki Village - After fighting Tei 3
113 Ryoshima Coast - Bandit Spider Arena 18
114 Taka Pass - Stray Bead #26 Cave 19
115 Kamui - Cherry Bomb 3 Cave 20
116 N. Ryoshima Coast - Power Slash 2 Cave 21
117 N. Ryoshima Coast - Cherry Bomb 2 Cave 22
118 Kamui (Ezofuji) - Power Slash 3 Cave 23
119 Kamui - Blockhead Grande Cave 24
11a N. Ryoshima Coast - Bandit Spider Arena 25
11b Kamui - Bandit Spider Arena 26
11c Dragon Palace - Stray Bead #70 Cave 27
11d N. Ryoshima Coast - Stray Bead #63 Cave 28
120 New Game Intro Cutscene Map 29
121 Beta Kamiki
122 River of the Heavens 30
200 Sei-an City (Aristocratic Qtr.) 31
201 Sei-an City (Commoners' Qtr.) 32
202 Sei-an City (Aristocratic Qtr.) - Himiko's Palace 33
203 Dragon Palace 34
204 Inside the Dragon 35
205 Sunken Ship 36
206 Imperial Palace - Ammy Size 37
207 Imperial Palace - Issun Size 38
208 Oni Island - Lower Interior 39
209 Oni Island - Ninetails Arena 40
20a Catcall Tower 41
20b Imperial Palace - Blight Arena 42
20c Sei-an City (Commoners' Qtr.) - Kimono Shop 43
20d Oni Island - Exterior 44
20e Oni Island - Upper Interior 45
20f Oni Island - Sidescroller 46
301 Wep'keer 47
302 Kamiki Village - 100 years ago 48
303 Wawku Shrine 49
304 Wawku Shrine - Nechku Arena 50
305 Ponc'tan 51
306 Moon Cave - 100 years ago 52
307 Ark of Yamato 53
308 Ark of Yamato - Spider Queen Arena 54
309 Ark of Yamato - Orochi Arena 55
30a Ark of Yamato - Blight Arena 56
30b Ark of Yamato - Ninetails Arena 57
30c Ark of Yamato - Crimson Helm Arena 58
30d Ponc'tan - Mrs. Seal's House 59
310 Yoshpet 60
311 Inner Yoshpet 61
312 Ark of Yamato - Yami Arena 62
313 Wep'keer Square 63
314 Wawku Shrine - Lechku & Nechku Arena 64
c00 Return to Title Screen 65535
c01 Unknown menu (Removed from later versions)
c02 Presents from Issun 65535
d00 Beta Shinshu
d01 Beta Hana
d02 Beta Tsuta
d03 Beta Agata
d04 Beta Ryoshima
d05 Beta Kamui
d06 Beta Taka
d07 Title Screen Demo Cutscene Village
e00 Fishing with Benkei on Sei-an Bridge 65
e01 Fishing with Benkei next to Himiko's Palace 66
e02 Fishing with Kokari in Agata 67
e03 Fishing with Kokari in Kamui 68
e04 Fishing with Fisherman in NRyo 69
f01 Shinshu Field - Cursed 71
f02 Shinshu Field - Healed 71
f03 Agata Forest - Cursed 72
f04 Agata Forest - Healed 72
f06 Moon Cave Entrance 73
f07 Taka Pass - Cursed 74
f08 Taka Pass - Healed 74
f09 Ryoshima Coast - Cursed 75
f0a Ryoshima Coast - Healed 75
f0c N. Ryoshima Coast 77
f10 Early Development/Trailer Kamui (Removed from later versions)
f11 Kamui - Cursed 78
f12 Kamui - Healed 78
f13 Kamui (Ezofuji) 79
f20 Shinshu Field - 100 years ago 80
f21 Moon Cave Entrance - 100 years ago 81

Miscellaneous

  • Map r007 "2005 Prototype Intro Cutscene Waka Lake" can be seen in this trailer for Okami from the 2005 Tokyo Game Show: https://archive.org/details/okami-playstation-2-tgs-2005-trailer-dvd-rip
  • Normally, when on developer map r011 (Item Test Map - Items 0x80-0xFF), the game constantly displays a swirly smoke puff particle attached to the camera, covering a large part of the screen. This can be hidden by setting a flag located at main.dll+B6B2AB bit 3 to 1. This flag in general also hides the display of NPC portraits over their heads. It's unknown if any other flags affect this particle.