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
No edit summary
No edit summary
 
(15 intermediate revisions by 9 users not shown)
Line 1: Line 1:
'''Ultima: Exodus''' has space for three seperate player records. Each one is 0x600 bytes long.
{{Bob
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.
| bobscreen= UltimaExodusNESTitle.png
| title= Ultima: Exodus
| aka= Ultima: Kyoufu no Exodus (JP)
| developers= {{developer|Newtopia Planning}}, {{developer|Softhans}}
| publishers= {{publisher|Pony Canyon}} (JP), {{publisher|FCI}} (US)
| system= NES
| japan= {{date|1987|October|9}}
| usa= {{date|1989|February|nocat=true}}
| tcrf=Ultima: Exodus (NES)
}}
{{INES
|title = Ultima: Exodus
|image =
|mapperno = 1
|mappername = Nintendo MMC1
|prgrom = 16 x 16 KiB
|chrrom = 0 x 8 KiB
|mirroring = Horizontal
|4screen = No
|sram = Yes
|game = Ultima: Exodus
}}


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.
==Sub-pages==
{{namespaces}}


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.
==Utilities==
* None known.


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.
==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.


<pre>
<pre>
Line 14: Line 48:
</pre>
</pre>


 
* Map summary:
Map summary:
<pre>
<pre>
Player record total: 0x600 bytes
Player record total: 0x600 bytes
    The player record is:
The player record is:
      Party record: 0x100 bytes
  Party record: 0x100 bytes
      Character records: 0x40 bytes * 20d
  Character records: 0x40 bytes * 20d
</pre>
</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
0x32+  Padding            Byte Array          0x32 to 0xFF is non-data
----------------------------------------------------------------
</pre>


The offsets are from the beginning of the player record.
* A character file has its offset shown from the beginning of the character file.  
<pre>
<pre>
Offset Value Meaning Value Type Notes
----------------------------------------------------------------
0x00 String "AB" Byte Array Required
Offset Value Meaning       Value Type         Notes
0x01
----------------------------------------------------------------
0x02 Player Name Name Byte Array
0x00   Character Name      Byte Array
0x03
0x01
0x04
0x02
0x05
0x03
0x06
0x04
0x07 Unknown/Padding Byte Array
0x05   Character Race      Byte
0x08
0x06   Profession          Byte
0x09
0x07   Strength            Byte
0x0a
0x08 Dexterity          Byte
0x0b
0x09 Intelligence        Byte
0x0c
0x0a   Wisdom              Byte
0x0d
0x0b   Status              Byte
0x0e
0x0c   Dagger              Byte
0x0f
0c0d    Mace                Byte
0x10 Party Order Byte Array Actor 1
0x0e   Sling              Byte
0x11 Actor 2
0x0f   Axe                Byte
0x12 Actor 3
0x10   Blowgun            Byte
0x13 Actor 4
0x11   Sword              Byte
0x14 Unknown/Padding Byte Array
0x12   Spear              Byte
0x15
0x13   Broad Axe          Byte
0x16
0x14   Bow                Byte
0x17
0x15   Iron Sword          Byte
0x18
0x16   Gloves              Byte
0x19
0x17   Fighter's Axe      Byte
0x1a
0x18   Silver Bow          Byte
0x1b
0x19   Sun Sword          Byte
0x1c
0x1a   Mystic Sword        Byte
0x1d
0x1b   Cloth Armor        Byte
0x1e
0x1c   Leather Armor      Byte
0x1f
0x1d   Bronze Armor        Byte
0x20 Horse Status Byte (Bitfield) "b7=Mounted, b0=Owned"
0x1e   Iron Armor          Byte
0x21 Extra Commands Byte (Lower Half Bitfield) "b1=Bribe, b2=Pray"
0x1f   Steel Armor        Byte
0x22 Party Position Byte Array Horizontal
0x20   Dragon Armor        Byte
0x23 Vertical
0x21   Mystic Armor        Byte
0x24 Party Area Location Byte Somewhat Dangerous
0x22   Torches            Byte
0x25 Music to Play Byte Extremely Dangerous!
0x23   Keys                Byte
0x26 Unknown/Padding Byte Array
0x24   Map Gems            Byte
0x26
0x25   Time Powder        Byte
0x28
0x26   Tents              Byte
0x29
0x27    Gold Pick          Byte
0x30 Ship Position Byte Horizontal
0x28   Silver Pick        Byte
0x31 Vertical
0x29   Silver Horn        Byte
0x32 to 0xff Padding Byte Array Non-Data.
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>
</pre>


==Known Dumps==
* Ultima - Exodus (U) [!]
* Ultima - Kyoufu no Exodus (J)


A character file has its offset shown from the beginning of the character file.  
==External links==
<pre>
* No external links yet.
Offset Value Meaning Value Type Notes


0x00 Character Name Byte Array
{{Ultima series}}
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
0x26 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 Unused Data? Unsigned Short Initially d150 (0x0096)
0x37
0x38 Unused Data? Byte Initially d25 (0x19)
0x39 Experience Signed Short
0x3a
0x3b Marks Byte (Lower Half Bitfield) b3-King, b2-Snake, b1Fire, b0-Force
0x3c Cards Byte (Lower Half Bitfield) b3-Moon, b2-Love, b1-Sun, b0-Death
0x3d Flower Boolean
0x3e Padding (No Data) Unsigned Short
0x3f
</pre>

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.