If you are still using the old URL (datacrystal.romhacking.net), please update your bookmarks! The old URL may stop working soon.
The current URL is datacrystal.tcrf.net.
The current URL is datacrystal.tcrf.net.
Ultima: Exodus (NES): Difference between revisions
Jump to navigation
Jump to search
(Updated offsets 0x36-0x37 and 0x38. Added "values" lists for 0x34, 0x35, 0x3C, and 0x3D.) |
(Cleanup) |
||
Line 1: | Line 1: | ||
{{INES| title = Ultima: Exodus | {{INES| title = Ultima: Exodus | ||
|image= | |image = | ||
|mapperno= | |mapperno = 1 | ||
|mappername= | |mappername = [[Nintendo MMC1]] | ||
|prgrom= | |prgrom = 16 x 16kB | ||
|chrrom= | |chrrom = 0 x 8kB | ||
|mirroring= | |mirroring = Horizontal | ||
|4screen= | |4screen = No | ||
|sram= | |sram = Yes | ||
|game = Ultima: Exodus | |||
}} | }} | ||
==Utilities== | |||
* None known. | |||
==Hacks== | |||
* None known. | |||
==Translations== | |||
* None known. | |||
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. | ==Miscellaneous== | ||
* '''Ultima: Exodus''' has space for three seperate player records. Each one is 0x600 bytes long. | |||
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. | * 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 26: | Line 33: | ||
</pre> | </pre> | ||
* Map summary: | |||
Map summary: | |||
<pre> | <pre> | ||
Player record total: 0x600 bytes | Player record total: 0x600 bytes | ||
The player record is: | |||
Party record: 0x100 bytes | |||
Character records: 0x40 bytes * 20d | |||
</pre> | </pre> | ||
The offsets are from the beginning of the player record. | * The offsets are from the beginning of the player record. | ||
<pre> | <pre> | ||
Offset Value Meaning Value Type Notes | ---------------------------------------------------------------- | ||
0x00 String "AB" Byte Array Required | Offset Value Meaning Value Type Notes | ||
0x01 | ---------------------------------------------------------------- | ||
0x02 Player Name | 0x00 String "AB" Byte Array Required | ||
0x03 | 0x01 | ||
0x04 | 0x02 Player Name Byte Array | ||
0x05 | 0x03 | ||
0x06 | 0x04 | ||
0x07 Unknown/Padding Byte Array | 0x05 | ||
0x08 | 0x06 | ||
0x09 | 0x07 Unknown/Padding Byte Array | ||
0x0a | 0x08 | ||
0x0b | 0x09 | ||
0x0c | 0x0a | ||
0x0d | 0x0b | ||
0x0e | 0x0c | ||
0x0f | 0x0d | ||
0x10 Party Order Byte Array Actor 1 | 0x0e | ||
0x11 | 0x0f | ||
0x12 | 0x10 Party Order Byte Array Actor 1 | ||
0x13 | 0x11 Actor 2 | ||
0x14 Unknown/Padding Byte Array | 0x12 Actor 3 | ||
0x15 | 0x13 Actor 4 | ||
0x16 | 0x14 Unknown/Padding Byte Array | ||
0x17 | 0x15 | ||
0x18 | 0x16 | ||
0x19 | 0x17 | ||
0x1a | 0x18 | ||
0x1b | 0x19 | ||
0x1c | 0x1a | ||
0x1d | 0x1b | ||
0x1e | 0x1c | ||
0x1f | 0x1d | ||
0x20 Horse Status Byte (Bitfield) "b7=Mounted, b0=Owned" | 0x1e | ||
0x21 Extra Commands Byte ( | 0x1f | ||
0x22 Party Position Byte Array Horizontal | 0x20 Horse Status Byte (Bitfield) "b7=Mounted, b0=Owned" | ||
0x23 | 0x21 Extra Commands Byte (Bitfield) "b0=Bribe, b1=Pray" | ||
0x24 Party Area Location Byte Somewhat Dangerous | 0x22 Party Position Byte Array Horizontal | ||
0x25 Music to Play Byte Extremely Dangerous! | 0x23 Vertical | ||
0x26 Unknown/Padding Byte Array | 0x24 Party Area Location Byte Somewhat Dangerous | ||
0x25 Music to Play Byte Extremely Dangerous! | |||
0x28 | 0x26 Unknown/Padding Byte Array | ||
0x29 | 0x27 | ||
0x30 Ship Position Byte Horizontal | 0x28 | ||
0x31 | 0x29 | ||
0x32 | 0x30 Ship Position Byte Horizontal | ||
0x31 Vertical | |||
0x32+ Padding Byte Array 0x32 to 0xFF is non-data | |||
---------------------------------------------------------------- | |||
</pre> | </pre> | ||
* A character file has its offset shown from the beginning of the character file. | |||
A character file has its offset shown from the beginning of the character file. | |||
<pre> | <pre> | ||
Offset Value Meaning Value Type Notes | ---------------------------------------------------------------- | ||
Offset Value Meaning Value Type Notes | |||
0x00 Character Name Byte Array | ---------------------------------------------------------------- | ||
0x01 | 0x00 Character Name Byte Array | ||
0x02 | 0x01 | ||
0x03 | 0x02 | ||
0x04 | 0x03 | ||
0x05 Character Race Byte | 0x04 | ||
0x06 Profession Byte | 0x05 Character Race Byte | ||
0x07 Strength Byte | 0x06 Profession Byte | ||
0x08 Dexterity Byte | 0x07 Strength Byte | ||
0x09 Intelligence Byte | 0x08 Dexterity Byte | ||
0x0a Wisdom Byte | 0x09 Intelligence Byte | ||
0x0b Status Byte | 0x0a Wisdom Byte | ||
0x0c Dagger Byte | 0x0b Status Byte | ||
0c0d Mace Byte | 0x0c Dagger Byte | ||
0x0e Sling Byte | 0c0d Mace Byte | ||
0x0f Axe Byte | 0x0e Sling Byte | ||
0x10 Blowgun Byte | 0x0f Axe Byte | ||
0x11 Sword Byte | 0x10 Blowgun Byte | ||
0x12 Spear Byte | 0x11 Sword Byte | ||
0x13 Broad Axe Byte | 0x12 Spear Byte | ||
0x14 Bow Byte | 0x13 Broad Axe Byte | ||
0x15 Iron Sword Byte | 0x14 Bow Byte | ||
0x16 Gloves Byte | 0x15 Iron Sword Byte | ||
0x17 Fighter's Axe Byte | 0x16 Gloves Byte | ||
0x18 Silver Bow Byte | 0x17 Fighter's Axe Byte | ||
0x19 Sun Sword Byte | 0x18 Silver Bow Byte | ||
0x1a Mystic Sword Byte | 0x19 Sun Sword Byte | ||
0x1b Cloth Armor Byte | 0x1a Mystic Sword Byte | ||
0x1c Leather Armor Byte | 0x1b Cloth Armor Byte | ||
0x1d Bronze Armor Byte | 0x1c Leather Armor Byte | ||
0x1e Iron Armor Byte | 0x1d Bronze Armor Byte | ||
0x1f Steel Armor Byte | 0x1e Iron Armor Byte | ||
0x20 Dragon Armor Byte | 0x1f Steel Armor Byte | ||
0x21 Mystic Armor Byte | 0x20 Dragon Armor Byte | ||
0x22 Torches Byte | 0x21 Mystic Armor Byte | ||
0x23 Keys Byte | 0x22 Torches Byte | ||
0x24 Map Gems Byte | 0x23 Keys Byte | ||
0x25 Time Powder Byte | 0x24 Map Gems Byte | ||
0x26 Tents Byte | 0x25 Time Powder Byte | ||
0x26 Tents Byte | |||
0x28 Silver Pick Byte | 0x27 Gold Pick Byte | ||
0x29 Silver Horn Byte | 0x28 Silver Pick Byte | ||
0x2a Heart Compass Byte | 0x29 Silver Horn Byte | ||
0x2b Food Level Signed Short | 0x2a Heart Compass Byte | ||
0x2c | 0x2b Food Level Signed Short | ||
0x2d Current Health Signed Short | 0x2c | ||
0x2e | 0x2d Current Health Signed Short | ||
0x2f Current Magic Byte | 0x2e | ||
0x30 Money Signed Short | 0x2f Current Magic Byte | ||
0x31 | 0x30 Money Signed Short | ||
0x32 Unknown Byte Byte | 0x31 | ||
0x33 Current Level Byte | 0x32 Unknown Byte Byte | ||
0x34 Current Weapon Byte* | 0x33 Current Level Byte | ||
0x35 Current Armor Byte** | 0x34 Current Weapon Byte* | ||
0x36 Maximum Health Signed Short | 0x35 Current Armor Byte** | ||
0x37 | 0x36 Maximum Health Signed Short | ||
0x38 Maximum Magic Byte | 0x37 | ||
0x39 Experience Signed Short | 0x38 Maximum Magic Byte | ||
0x3a | 0x39 Experience Signed Short | ||
0x3b Marks Byte*** | 0x3a | ||
0x3c Cards Byte**** | 0x3b Marks Byte*** | ||
0x3d Flower Boolean | 0x3c Cards Byte**** | ||
0x3e Padding (No Data) Unsigned Short | 0x3d Flower Boolean | ||
0x3f | 0x3e Padding (No Data) Unsigned Short | ||
0x3f | |||
*Current Weapon Values (0x34) | *Current Weapon Values (0x34) | ||
Line 189: | Line 196: | ||
***Marks Values (0x3B) | ***Marks Values (0x3B) | ||
00 | 00 (None) | ||
01 | 01 Force | ||
02 | 02 Fire | ||
03 Force | 03 Fire Force | ||
04 | 04 Snake | ||
05 | 05 Snake Force | ||
06 Fire | 06 Snake Fire | ||
07 Force | 07 Snake Fire Force | ||
08 King | 08 King | ||
09 Force | 09 King Force | ||
0A Fire | 0A King Fire | ||
0B Force | 0B King Fire Force | ||
0C Snake | 0C King Snake | ||
0D Force | 0D King Snake Force | ||
0E Fire | 0E King Snake Fire | ||
0F All | 0F King Snake Fire Force (All) | ||
****Cards Values (0x3C) | ****Cards Values (0x3C) | ||
00 | 00 (None) | ||
01 | 01 Death | ||
02 | 02 Sol | ||
03 Death | 03 Sol Death | ||
04 | 04 Love | ||
05 | 05 Love Death | ||
06 Sol | 06 Love Sol | ||
07 Death | 07 Love Sol Death | ||
08 Moons | 08 Moons | ||
09 Death | 09 Moons Death | ||
0A Sol | 0A Moons Sol | ||
0B Death | 0B Moons Sol Death | ||
0C Love | 0C Moons Love | ||
0D Death | 0D Moons Love Death | ||
0E Sol | 0E Moons Love Sol | ||
0F All | 0F Moons Love Sol Death (All) | ||
</pre> | |||
==Known Dumps== | |||
* Ultima - Exodus (U) [!] | |||
* Ultima - Kyoufu no Exodus (J) | |||
==External Links== | |||
* No external links yet. |
Revision as of 22:43, 6 October 2011
Ultima: Exodus | |
Mapper No. | 1 |
Mapper Name | [[Nintendo MMC1]][[Category:NES games using the Nintendo MMC1 mapper]] |
PRG-ROM Pages | 16 x 16kB |
CHR-ROM Pages | 0 x 8kB |
Mirroring | Horizontal |
4-Screen Mirroring | No |
SRAM Enabled | Yes |
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.