Ultima: Exodus

From Data Crystal
Jump to: navigation, search

Ultima: Exodus
Mapper No. 1
Mapper Name Nintendo MMC1
PRG-ROM Pages 16 ‍×​ 16kB
CHR-ROM Pages 0 ‍×​ 8kB
Mirroring Horizontal
4-Screen Mirroring No
SRAM Enabled Yes
ROM map | RAM map | Text table | Notes | Tutorials

Utilities

  • None known.

Hacks

  • None known.

Translations

  • None known.

Miscellaneous

  • Ultima: Exodus has space for three seperate player records. Each one is 0x600 bytes long.
  • Within each record, there is room for party-common data, such as party order, ship position, or whether a horse has been bought or not. This allows one to completely change the characters in their party without losing their party stats.
  • Within each party record, there is room for 20 characters, each distinct. Each character record is 0x40 bytes long, for a grand total of 0x500 bytes. This dovetails nicely within the 0x600 space for the player record. I will cover the party file first.
  • This is a work in progess. This information is as accurate as I can get it. Until I find my original notes, I am going from a combination of memory and some records I made in Excel.
  • For the curious, the Roman alphabet begins with character 0x8A. Many of the characters used in the text table are Japanese, which you may have seen if your cartridge got bumped and ended up with corrupt data.
Roman Characters (This game only has upper-case): 0x8A through 0xA4
Period and comma: 0x42 and 0x43 respectively
Numbers (standard non-japanese): 0x38 through 0x41
  • Map summary:
Player record total: 0x600 bytes
The player record is:
  Party record: 0x100 bytes
  Character records: 0x40 bytes * 20d
  • The offsets are from the beginning of the player record.
----------------------------------------------------------------
Offset  Value Meaning       Value Type          Notes
----------------------------------------------------------------
0x00    String "AB"         Byte Array          Required
0x01
0x02    Player Name         Byte Array
0x03
0x04
0x05
0x06
0x07    Unknown/Padding     Byte Array
0x08
0x09
0x0a
0x0b
0x0c
0x0d
0x0e
0x0f
0x10    Party Order         Byte Array          Actor 1
0x11                                            Actor 2
0x12                                            Actor 3
0x13                                            Actor 4
0x14    Unknown/Padding     Byte Array
0x15
0x16
0x17
0x18
0x19
0x1a
0x1b
0x1c
0x1d
0x1e
0x1f
0x20    Horse Status        Byte (Bitfield)     "b7=Mounted, b0=Owned"
0x21    Extra Commands      Byte (Bitfield)     "b0=Bribe, b1=Pray"
0x22    Party Position      Byte Array          Horizontal
0x23                                            Vertical
0x24    Party Area Location Byte                Somewhat Dangerous
0x25    Music to Play       Byte                Extremely Dangerous!
0x26    Unknown/Padding     Byte Array
0x27
0x28
0x29
0x30    Ship Position       Byte                Horizontal
0x31                                            Vertical
0x32+   Padding             Byte Array          0x32 to 0xFF is non-data
----------------------------------------------------------------
  • A character file has its offset shown from the beginning of the character file.
----------------------------------------------------------------
Offset  Value Meaning       Value Type          Notes
----------------------------------------------------------------
0x00    Character Name      Byte Array
0x01
0x02
0x03
0x04
0x05    Character Race      Byte
0x06    Profession          Byte
0x07    Strength            Byte
0x08	Dexterity           Byte
0x09	Intelligence        Byte
0x0a    Wisdom              Byte
0x0b    Status              Byte
0x0c    Dagger              Byte
0c0d    Mace                Byte
0x0e    Sling               Byte
0x0f    Axe                 Byte
0x10    Blowgun             Byte
0x11    Sword               Byte
0x12    Spear               Byte
0x13    Broad Axe           Byte
0x14    Bow                 Byte
0x15    Iron Sword          Byte
0x16    Gloves              Byte
0x17    Fighter's Axe       Byte
0x18    Silver Bow          Byte
0x19    Sun Sword           Byte
0x1a    Mystic Sword        Byte
0x1b    Cloth Armor         Byte
0x1c    Leather Armor       Byte
0x1d    Bronze Armor        Byte
0x1e    Iron Armor          Byte
0x1f    Steel Armor         Byte
0x20    Dragon Armor        Byte
0x21    Mystic Armor        Byte
0x22    Torches             Byte
0x23    Keys                Byte
0x24    Map Gems            Byte
0x25    Time Powder         Byte
0x26    Tents               Byte
0x27    Gold Pick           Byte
0x28    Silver Pick         Byte
0x29    Silver Horn         Byte
0x2a    Heart Compass       Byte
0x2b    Food Level          Signed Short
0x2c
0x2d    Current Health      Signed Short
0x2e
0x2f    Current Magic       Byte
0x30    Money               Signed Short
0x31
0x32    Unknown Byte        Byte
0x33    Current Level       Byte
0x34    Current Weapon      Byte*
0x35    Current Armor       Byte**
0x36    Maximum Health      Signed Short
0x37
0x38    Maximum Magic       Byte
0x39    Experience          Signed Short
0x3a
0x3b    Marks               Byte***
0x3c    Cards               Byte****
0x3d    Flower              Boolean
0x3e    Padding (No Data)   Unsigned Short
0x3f

*Current Weapon Values (0x34)

 Hand            00
 Dagger          01
 Mace            02
 Sling           03     
 Ax              04
 Blowgun         05
 Sword           06
 Spear           07
 Broad Ax        08
 Bow             09
 Iron Sword      0A
 Gloves          0B
 Fighter's Ax    0C
 Silver Bow      0D
 Sun Sword       0E
 Mystic Weapon   0F

**Current Armor Values (0x35)

 Skin            00
 Cloth           01
 Leather         02
 Bronze          03
 Iron            04
 Steel           05
 Dragon Armor    06
 Mystic Armor    07

***Marks Values (0x3B)

 00                            (None)
 01                     Force
 02               Fire
 03               Fire  Force
 04        Snake
 05        Snake        Force
 06        Snake  Fire
 07        Snake  Fire  Force
 08  King
 09  King               Force
 0A  King         Fire
 0B  King         Fire  Force
 0C  King  Snake
 0D  King  Snake        Force
 0E  King  Snake  Fire
 0F  King  Snake  Fire  Force  (All)

****Cards Values (0x3C)

 00                           (None)
 01                    Death
 02               Sol
 03               Sol  Death
 04         Love
 05         Love       Death
 06         Love  Sol
 07         Love  Sol  Death
 08  Moons
 09  Moons             Death
 0A  Moons        Sol
 0B  Moons        Sol  Death
 0C  Moons  Love
 0D  Moons  Love       Death
 0E  Moons  Love  Sol
 0F  Moons  Love  Sol  Death  (All)

Known Dumps

  • Ultima - Exodus (U) [!]
  • Ultima - Kyoufu no Exodus (J)

External Links

  • No external links yet.