Ultima VI: The False Prophet:RAM map
From Data Crystal
Mob data is split across 16 arrays in range
7e9fff, each holding 2 bytes per mob with room for 256 mobs.
Address Description ------- ----------- 7E8000 Byte 0: sprite ID Byte 1: ??? 7E8200 Byte 0: ??? Byte 1: animation state (whether moving, facing direction, animation frame) 7E8400 7E8600 7E8800 7E8A00 7E8C00 7E8E00 X coordinate 7E9000 Y coordinate 7E9200 Strangely packed version of coordinates, only for visible mobs 7E9400 AI data? Always 00 00 for NPCs in your party 7E9600 Initial X coordinate 7E9800 Initial Y coordinate 7E9A00 7E9C00 7E9E00 Byte 0: ID of potential party member? NPCs that can be party members have the values 01-0d assigned in ascending order Empty mob AB has the value 0E Empty mob AE has the value 0F All other mobs have the value 0 The memory immediately after, 7EA000, has a compacted version of this array using only 1 byte per mob. This may be a mapping of mob IDs to inventory IDs or combat stats.
Mob index Description --------- ----------- 00 Empty 01-A7 NPCs A8-CB Empty? CC-FF Dynamically allocated mobs, i.e. spawned monsters
Address Size Description ------- ---- ----------- 3C 1 Selected spell level in the Cast menu 209 1 Index of currently selected menu item 17FF Unpacked spellbook (8 bytes per level, populated with indexes of known spells) 8A56 12 vtable for menu functions (Inventory is special-cased) 038000 Talk function 038476 Look function 0382BB Attack function 038432 Cast function 01B64D Camp function 03880E Save function
Address Size Description ------- ---- ----------- 49 2 Joy1 input state (whether a button is currently pressed) 4B 2 Joy2 input state (whether a button is currently pressed) 4D 2 Joy1 input state (whether a button started being pressed this frame) 4F 2 Joy2 input state (whether a button started being pressed this frame) AB 2 Pointer to start of sprite data for visible mobs (always 0500) AD 2 Pointer to end of sprite data for visible mobs B5 2 Pointer to the next available slot for DMA copies 500 Sprite data for visible mobs A00 Queue of DMA copies for this frame 1300 1FF Tile data copied to OAM each frame A3BA 1 Screen fadeout level - 0F for full vision, 00 for faded to black 1014B 1 Amount of karma 1014C 2 Amount of gold 7N0151 1 Hour 7E0152 1 Minute 7F0000 FFFF Temp space and output buffer for decompressed data