Ultima VI: The False Prophet:ROM map

From Data Crystal
Revision as of 21:28, 1 January 2021 by BinarySplit (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The offsets listed are for a ROM that does not include a copier header.

Compressed data

Start    End      Description
------   ------   -----------
01D700   01FEF6
028060   029C62   Title screen graphics 
029E50   02DDA1   Intro graphics (loaded 1st before intro cutscene) 
02DDB0   02E586   Intro graphics (loaded 3rd before intro cutscene) 
02E590   02EFD5   Intro graphics (loaded 2nd before intro cutscene) 
02F1D0   02F913
02F920   02FDB9
048000   049CF0   Dialog (companions, Lord British, etc.) 
049D00   04B861   Dialog 
04B900   04DE05   Dialog 
04DF00   04FD90   Dialog 
050000   051A05   Dialog 
051B00   0538C2   Dialog 
053900   055ED4   Dialog 
055F80   057919   Dialog 
058000   05BA14   Dialog 
05BA80   05D416   Dialog 
05D480   05FD95   Dialog 
060000   061955   Dialog 
061A00   062DCA   Dialog 
062E00   065D95   Dialog 
065E00   06710A   Dialog 
067180   0678D5   Dialog 
068000   069E0A   Dialog 
069E80   06BA70   Dialog 
06BB80   06D3DA   Dialog 
06D480   06FA93   Dialog 
070000   0715E0
071600   073651
073680   075007
075080   075A44
075A80   0761BE
076200   076968
076980   0770EA
077100   0779CA
096B00   0977FB
09D000   09D943
09DA00   09E1EF
09E300   09EBD3
09EC00   09F488
09F500   09F92F
0BF100   0BF81A
0CD400   0CEA21
0CEA80   0CFCF1
0D0000   0D2133
0D2180   0D41E3
0D4200   0D65E5   Tile data in castle 
0D6600   0D67B1
0D6800   0D6D2C
0D6D80   0D6F8A
0D7000   0D7230
0D7280   0D7495
0D7500   0D7C4E
0D8000   0D94DA
0D9500   0DA2B2
0DA300   0DC0D3
0DC100   0DE067
0DE100   0DF199
0DF200   0DFDD1
0E0000   0E0FA9
0E1000   0E31AE
0E3200   0E47BA


Offset    Item size    Description
------    ---------    -----------
  EB34            1    Loaded into second byte of 7E8200 structure in RAM
  EBF0            1    Loaded into first byte of 7E8400 structure in RAM
  ECAC            1    Loaded into second byte of 7E8400 structure in RAM
  ED68            1    Loaded into first byte of 7E8600 structure in RAM
  EE24            2    Loaded into 7E8800 structure in RAM
  EF9C            1    Loaded into second byte of 7E8600 structure in RAM
  F058            1    Sprite ID, loaded into first byte of 7E8000 structure in RAM
 18C3D            4    Initial positions. First 10 bits are the X position, next 10 bits are the Y position, 3rd byte is loaded into the first byte of the 7E8200 structure in RAM


Mobs can have sprite IDs from 00-4F. In their default state, the sprite ID is mapped to a palette and graphics row ID, but in some states (sleeping, dead, invisible) their graphics will be overridden.|

Each graphics row is 200 bytes of tiles, stored as an 8x2 grid of 8x8 tiles in standard SNES graphics format.

Offset  Length  Item size   Description
------  ------  ---------   -----------
  2647      9E          2   vtable mapping sprite IDs to functions that handle rendering. 
                            Note these are stored as 16-bit little-endian pointers to the in-memory addresses of functions.
  4591      9E          2   vtable mapping sprite IDs to functions that update their animation flags.
  F159      4F          1   Palette index (0-7) of each sprite. Note that some render functions ignore this and use a hard-coded palette.
 16735      4F          1   Mapping of sprite IDs to graphics row IDs. 
                            The least significant 6 bits are an index into the row IDs table. 
                            The most significant 2 bits are the number of rows to load starting from that address: 00=1 row, 01=2 rows, 10/11=4 rows
 1679B      A8          3   Mapping of graphics row IDs to 24-bit in-memory addresses of the sprite graphics