Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.

Ultima: Exodus (NES): Difference between revisions

From Data Crystal
Jump to navigation Jump to search
(Ultima Stub article. This is a WIP, and will be changed as I recover my notes.)
 
No edit summary
 
(19 intermediate revisions by 9 users not shown)
Line 1: Line 1:
Offset Value Meaning Value Type Notes
{{Bob
0x00 String "AB" Byte Array Required
| bobscreen= UltimaExodusNESTitle.png
0x01
| title= Ultima: Exodus
0x02 Player Name Name Byte Array
| aka= Ultima: Kyoufu no Exodus (JP)
0x03
| developers= {{developer|Newtopia Planning}}, {{developer|Softhans}}
0x04
| publishers= {{publisher|Pony Canyon}} (JP), {{publisher|FCI}} (US)
0x05
| system= NES
0x06
| japan= {{date|1987|October|9}}
0x07 Unknown/Padding Byte Array
| usa= {{date|1989|February|nocat=true}}
0x08
| tcrf=Ultima: Exodus (NES)
0x09
}}
0x0a
{{INES
0x0b
|title = Ultima: Exodus
0x0c
|image =
0x0d
|mapperno = 1
0x0e
|mappername = Nintendo MMC1
0x0f
|prgrom = 16 x 16 KiB
0x10 Party Order Byte Array Actor 1
|chrrom = 0 x 8 KiB
0x11 Actor 2
|mirroring = Horizontal
0x12 Actor 3
|4screen = No
0x13 Actor 4
|sram = Yes
0x14 Unknown/Padding Byte Array
|game = Ultima: Exodus
0x15
}}
0x16
 
0x17
==Sub-pages==
0x18
{{namespaces}}
0x19
 
0x1a
==Utilities==
0x1b
* None known.
0x1c
 
0x1d
==Hacks==
0x1e
* None known.
0x1f
 
0x20 Horse Status Byte (Bitfield) b7=Mounted, b0=Owned
==Translations==
0x21 Extra Commands Byte (Lower Half Bitfield) b1=Bribe, b2=Pray
* None known.
0x22 Party Position Byte Array Horizontal
 
0x23 Vertical
==Miscellaneous==
0x24 Party Area Location Byte Somewhat Dangerous
* '''Ultima: Exodus''' has space for three seperate player records. Each one is 0x600 bytes long.
0x25 Music to Play Byte Extremely Dangerous!
* 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.
0x26 Unknown/Padding Byte Array
* 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.
0x26
* 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.
0x28
* 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.
0x29
 
0x30 Ship Position Byte Horizontal
<pre>
0x31 Vertical
Roman Characters (This game only has upper-case): 0x8A through 0xA4
0x32 to 0xff Padding Byte Array Non-Data.
Period and comma: 0x42 and 0x43 respectively
Numbers (standard non-japanese): 0x38 through 0x41
</pre>
 
* Map summary:
<pre>
Player record total: 0x600 bytes
The player record is:
  Party record: 0x100 bytes
  Character records: 0x40 bytes * 20d
</pre>
 
* The offsets are from the beginning of the player record.
<pre>
----------------------------------------------------------------
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
0x32Padding             Byte Array         0x32 to 0xFF is non-data
----------------------------------------------------------------
</pre>
 
* A character file has its offset shown from the beginning of the character file.
<pre>
----------------------------------------------------------------
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)
</pre>
 
==Known Dumps==
* Ultima - Exodus (U) [!]
* Ultima - Kyoufu no Exodus (J)
 
==External links==
* No external links yet.
 
{{Ultima series}}

Latest revision as of 02:55, 29 January 2024

Title Screen

Ultima: Exodus

Also known as: Ultima: Kyoufu no Exodus (JP)
Developers: Newtopia Planning, Softhans
Publishers: Pony Canyon (JP), FCI (US)
Platform: NES
Released in JP: October 9, 1987
Released in US: February 1989


Cactisprite.png TCRF
Ultima: Exodus
Mapper No. 1
Mapper Name Nintendo MMC1
PRG-ROM Pages 16 x 16 KiB
CHR-ROM Pages 0 x 8 KiB
Mirroring Horizontal
4-Screen Mirroring No
SRAM Enabled Yes


Sub-pages

No standard subpages yet!

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.