Ultima: Exodus

From NES Hacker Wiki
Jump to: navigation, search

Ultima: Exodus is the NES port of the computer game Ultima III: Exodus. It is a traditional 4-person party fantasy RPG. You fight enemies to collect gold, buy better weapons and armor, enter 3-D dungeons, and eventually battle the final boss, Exodus.

Easy Cheats

See the guide on Easy Cheats to find out how to use these.

722E - 0A - P1 Infinite Hit Points
726E - 0A - P2 Infinite Hit Points
72AE - 0A - P3 Infinite Hit Points
72EE - 0A - P4 Infinite Hit Points
722F - 63 - P1 Infinite Magic Points
726F - 63 - P2 Infinite Magic Points
72AF - 63 - P3 Infinite Magic Points
72EF - 63 - P4 Infinite Magic Points
7231 - 0A - P1 Infinite Gold
7271 - 0A - P2 Infinite Gold
72B1 - 0A - P3 Infinite Gold
72F1 - 0A - P4 Infinite Gold
7207 - 63 - P1 Full Strength
7247 - 63 - P2 Full Strength
7287 - 63 - P3 Full Strength
72C7 - 63 - P4 Full Strength
7208 - 63 - P1 Full Dexterity
7248 - 63 - P2 Full Dexterity
7288 - 63 - P3 Full Dexterity
72C8 - 63 - P4 Full Dexterity
7209 - 63 - P1 Full Intelligence
7249 - 63 - P2 Full Intelligence
7289 - 63 - P3 Full Intelligence
72C9 - 63 - P4 Full Intelligence
720A - 63 - P1 Full Wisdom
724A - 63 - P2 Full Wisdom
728A - 63 - P3 Full Wisdom
72CA - 63 - P4 Full Wisdom
720B - 63 - P1 Good Status
724B - 63 - P2 Good Status
728B - 63 - P3 Good Status
72CB - 63 - P4 Good Status
722C - 0A - P1 Infinite Food
726C - 0A - P2 Infinite Food
72AC - 0A - P3 Infinite Food
72EC - 0A - P4 Infinite Food

North America

Ultima - Exodus.png

Memory Addresses

0009 - Controller 1 input
00F0-00FF - Music variables
0200-02FF - Sprite Variables
03F0-03FF - Enemy HP in combat (2 bytes)
0400-047F - Map NPCs (Not in combat)
	1 - Character (See list) Add 80 to make the character stationary
	2 - ?
	3 - Map X Pos
	4 - Map Y Pos

0580-05FF - Status Screen text

0700-07FF - Tiles on screen

6100-61FF - Player Stats (Mirror)

7200-72FF - Player Stats

Stats

00-04 - Name
05    - ? 
06    - Class (See Type list)
07    - Strength
08    - Dexterity
09    - Intelligence
0A    - Wisdom
0B    - Status (0 - Good, 1 - Poison, 2 - Cold, 3 - Dead, 4 - Ash)
0C    - Dagger
0D    - Mace
0E    - Sling
0F    - Axe
10    - Blowgun
11    - Sword
12    - Spear
13    - Broad Axe
14    - Bow
15    - Iron Sword
16    - Gloves
17    - Halberd
18    - Silver Bow
19    - Sun Sword
1A    - Mystic Weapon
1B    - Cloth
1C    - Leather
1D    - Bronze
1E    - Iron
1F    - Steal
20    - Dragon
21    - Mystic Armor
22    - Torches
23    - Magic Keys
24    - Gems
25    - Sands
26    - Tents
27    - Gold Pick
28    - Silver Pick
29    - Silver Horn
2A    - Compass Heart
2B-2C - Food
2D-2E - Hit Points
2F    - Magic Points
30-31 - Gold
32    - ?
33    - Level
34    - ?
35    - ?
36-37 - Max Hit Points
38    - Max Magic Points
39-3A - Experience
3B    - Marks (0000) Binary Flags 1 - Force, 2 - Fire, 3 - Kings, 4 - Snake
3C    - Cards (0000) Binary Flags 1 - Death, 2 - Sol, 3 - Love, 4 - Moons
3D    - Flower Flag
3E    - ?
3F    - ?

Classes

00 - Fighter
01 - Cleric
02 - Wizard
03 - Thief
04 - Paladin
05 - Barbarian
06 - Lark
07 - Illusionist
08 - Druid
09 - Alchemist
0A - Ranger
0B - Lord British (Buggy)
0C - Everything after this point is buggy.

Map Character Objects

00 - Lord British
01 - Priest
02 - Guard
03 - Shop Keep Overalls (Blue) - Unused
04 - Shop Keep Overalls (Red)
05 - Ship
06 - Fat Shop Keep (Blue)
07 - Fat Shop Keep (Red) - Unused
08 - Fortune Teller
09 - Man
0A - Boy
0B - Jester [Unused]
0C - Woman
0D - Girl
0E - Dishonest Guard
0F - Old Woman
10 - Old Man
11 - Bar Keep (Male)
12 - Bar Keep (Female)
13 - Horse
14 - Doctor
15 - Monster (Weak)
16 - Monster (Giants)
17 - Monster (Demons)
18 - Monster (Sea Serpent)
19 - Monster (Insects)
1A - Monster (Dragons)
1B - Monster (Man-O-War)
1C - Monster (Pirates)
1D - Sherry
1E - Whirl pool
1F - Unknown


ROM Data

00000-0000F: iNES Header
00010-03810: Maps: Town/Castle/Overworld
03810-04010: Graphics and possibly data/code Ship/Whirlpool
04010-0780F: Maps: Town/Castle/Overworld
07810-08010: Graphics and possibly data/code Ship/Whirlpool
08010-0B810: Maps: Dungeons
0B810-0C010: Empty w/some data
0C010-11310: Graphics data
11310-13810: Patterned Data
13810-14010: Graphics and possibly data/code Ship/Whirlpool
14010-15010: Code: Affects menu dialogue
15010-15B5F: Unpatterned
15B60-15D70: Partial End Game Credits (Probably unused)
15DA0-15DB0: Code: Dialogue text typing?
15DB1-17CB6: Unpatterned data possibly code/dialogue
17BC7-17C33: Partial Intro Credits (Probably unused)
17E50-18810: Graphics data
18810-18F3E: Unpatterned
18FCB-19A2B: Unpatterned
19E98-19F10: Patterned Data
19F10-1C010: Graphics: Gem Map Data
1C010-1F110: Graphics data
1F110-20010: Empty w/some data
20010-20810: Graphics also Unpatterned Data
20810-23910: Patterned
23910-24010: Empty w/some data
24010-24710: Graphics also Unpatterned Data
24710-27A10: Patterned Data
27A10-28010: Empty w/some data
28010-2B210: Graphic data
2B210-2C010: Empty w/some data
2C010-30010: Mix between patterned and unpatterned and graphics
30010-31B10: Code: Unpatterned data possibly code/dialogue (Menu code?)
31B10-3251F: Mix between patterned and unpatterned and graphics
32ED0-32F10: Mix between patterned and unpatterned and graphics
32F10-33610: Graphic data
33610-33B0F: Mix between patterned and unpatterned and graphics
33B10-33C06: List of weapons and armor names
33C07-35C66: Mix between patterned and unpatterned and graphics
35C67-35D6A: List of weapons and armor names
33D6B-35B18: Mix between patterned and unpatterned and graphics
35B19-35B67: List of items
35B68-36010: Mix between patterned and unpatterned and graphics
36010-36810: Patterned Data
36810-37410: Unpatterned data (Not text for first 2 towns)
37410-37643: Graphics and possibly data/code Ship/Whirlpool
37927-37E10: Graphics and possibly data/code Ship/Whirlpool
37E10-38810: Graphics data
38810-38F3E: Patterned
38FCB-39A29: Patterned Data
39F10-3BB3E: Gem Map Data w/ data in the middle (probably not used)
3BC35-3C010: Gem Map Data w/ data in the middle (probably not used)
3C010-3FA87: Unpatterned data
3FAA0-40010: Unpatterned data


Text

As an RPG, Ultima has a large amount of dialog, but it's encoded in some unusual manner. However, some of the game's text, like the menus, story, credits, messages, and items, use simple byte-for-letter replacement and is often repeated in the ROM. The Japanese Hiragana and Katakana sets are left in the USA release. The dungeons also use a simple byte-for-tile encoding, so you can use a text table to edit them. The marks, fountains, and messages change by location, so there must be another look up table for them.

Game

17D0A-17E4F: Monster/NPC List
18F3F-18FCA: Introduction Credits
19A2C-19E97: End Game Credits
32520-32644: Stats, Races, Items, Cards Text
326D0-3275D: Name Registry
3275E-327D4: Party Creation Menu
327D5-32DAF: Character Creation
32DB0-32ECF: Lord British's Intro
37644-37926: Dungeon Messages
38F3F-38FCA: Introduction Credits
39A2A-39F10: End Game Credits
3BB3F-3BC34: Introduction Credits
3FA88-3FA9F: Dungeon info

00= 
01=+
02=-
03=:
04='
05="
08=<
09=*
38=0
39=1
3A=2
3B=3
3C=4
3D=5
3E=6
3F=7
40=8
41=9
42=,
43=·
7B=—
7C=!
7D=?
86=.
88=©
89=…
8A=A
8B=B
8C=C
8D=D
8E=E
8F=F
90=G
91=H
92=I
93=J
94=K
95=L
96=M
97=N
98=O
99=P
9A=Q
9B=R
9C=S
9D=T
9E=U
9F=V
A0=W
A1=X
A2=Y
A3=Z

Dungeons

00=#
01==
02=H
03=^
04=v
05=:
06=M
07=f
08=m
09=w
0A=g
0B=$
0C=t
0D= 
0E=T

Dungeon Key

# - Wall
= - Door
H - Hidden Door
^ - Stairs Up
v - Stairs Down
: - Stairs Up and Down
M - Mark (Changes by location)
f - Fountain (Changes by location)
m - Message (Changes by location)
w - Wind (Lose Torch)
g - Gremlins (Lose Food)
$ - Treasure Chest
t - Trap
  - Floor
T - Time Lord


Japan

Ultima - Kyoufu no Exodus.png

In Japan Ultima: Exodus is called ウルティマ 恐怖のエクソダス (Ultima: Kyoufu no Exodus) or "Ultima: Fear of Exodus".