SNES Development
Seiken Densetsu 2

Seiken Densetsu 2 / Secret of Mana

RAM Map

OffsetCategoryDescriptionValues
7E00F4SystemHours / 時間時間カウント 65535の次は0に戻る
7EC800Monster / NPC16 bytes * N~
7E0030MapsLayer 2 transparency toggle~
7E00DC - 7E00DDMapsExit Destination0x0F: Debug Room?
7E00DEMapsExit Destination X-Coordinate~
7E00DFMapsExit Destination Y-Coordinate~
7E00E1MapsExit Destination Character Entrance Style~
7E00E2MapsExit Destination Screen Effects~
7E00E4MapsScreen Fade Wait Timer~
7E00E5MapsScreen Fade TimerHigher = Longer Fade Time
7E00E6MapsScreen Brightness~
7E00E8MapsEntrance Style (Flammie Drops Off / Pick Up~
7E00EDMapsWeapon Useable0x80: Yes
0x00: No
7E1846Ring MenuSub Ring Menu Magic Category/
Weapon being forged
0x00: Gnome/Talon
0x01: Undine/Sword
0x02: Salamando/Axe
0x03: Sylphid/Lance
0x04: Luna/Whip
0x05: Dryad/Bow
0x06: Shade/Boomerang
0x07: Lumina/Javelin
7E1847Ring MenuRing Menu Mode0x00: Use/Equip
0x01: Buy
0x02: Sell
0x03: Forge
7E180BRing MenuNumber of elements in Ring Menu~
7EE600MonsterBase Address of Enemy 1 on Screen~
7EE800MonsterBase Address of Enemy 2 on Screen~
7EEA00MonsterBase Address of Enemy 3 on Screen~
7EE602MonsterY-Coordinate~
7EE604MonsterX-Coordinate~
7EE645MonsterZ-Coordinate~
7EE781MonsterLevel~
7EE782MonsterCurrent HP~
7EE784MonsterMaximum HP~
7EE786MonsterCurrent MP~
7EE787MonsterMaximum MP~
7EE788MonsterStrength~
7EE789MonsterSpeed~
7EE78DMonsterExperience~
7EE7C8MonsterMoney / Gil~
7EE7CEMonsterProbability of Chest Drop~
7EE7EDMonsterAggressivenessSet to 99 for rabites, counted down each frame, at zero the enemy attacks.
7ECC00 - 7ECC0BCharacterName~
7EE000CharacterCompanions Available / 仲間になっているか0x00: None / いない
0x01: Friend / 仲間
0xFF: Off / 外れる
7EE00ECharacterTransparency / 透明0x01: Visible / 震える
0xFF: Transparent / 透明
7EE180CharacterGraphic / グラフィック0x80: Boy / ランディ
0x81: Girl / プリム
0x82: Sprite / ポポイ
7EE181CharacterLevel~
7EE182CharacterCurrent HP / 現在のHP0 - 999
7EE184CharacterMaximum HP / HPの最大値0 - 999
7EE186CharacterCurrent MP / 現在のMP0 - 99
7EE187CharacterMaximum MP / MPの最大値0 - 99
7EE188CharacterStrength / 力 / ちから0 - 99
7EE189CharacterAgility / 素早さ / すばやさ0 - 99
7EE18ACharacterConstitution / 体力 / たいりょく0 - 99
7EE18BCharacterIntelligence / 知性 / ちせい0 - 99
7EE18CCharacterWisdom / 精神 / せいしん0 - 99
7EE18DCharacterExperience / 経験値0 - 9999999
7EE190CharacterState 1 / 状態10x02: ?
0x04: おもり
0x08: ?
0x10: 気絶
0x20: 雪だるま
0x40: 石化
0x80: 混乱
7EE191CharacterState 2 / 状態20x02: ちびっこ
0x04: タル
0x08: ?
0x10: モーグリ
0x20: 毒
0x40: 火だるま
0x80: 死神
7EE197CharacterHit % / 攻撃命中率 (ヒット%)0 - 255
ヒット% = 75+(すばやさ÷4)
7EE198CharacterAI: Attack / 攻撃攻撃力 (こうげき) (0 - 255)
攻撃 = 力+武器の攻撃力
7EE19BCharacterExperience to Next Level (?) / ため Level現在の必殺技ゲージたまり具合
7EE19CCharacterExperience Total (?) / ため最大~
7EE1A4CharacterAI: Keep Away / 回避回避率 (回避%) (0 - 255)
回避% = 防具三種の固有回避率の総合+(すばやさ÷4)
7EE1A5CharacterAI: Guard / 防御防御力 (ぼうぎょ) (0 - 999)
防御 = 体力+防具三種の物理防御の総合
7EE1A8CharacterAI: Approach / 魔防 / 接近魔法防御 (0 - 999)
魔法防御 = 精神+防具三種の魔法防御の総合
7EE1AECharacterCritical Rate (?) / クリティカル率?未調査
7EE1B1CharacterInvincibility (?) / 無敵?未検証
0x00
0x10: Physical / 物理無効
0xF0: Magic & Physical / 魔法反射 & 物理無効
7EE1B2CharacterUnknown / 詳細不明グラフィックフラグ?
0x08: でガッツポーズ
7EE1D0CharacterSkill: Glove / グローブ熟練 / グローブの熟練度0 - 99
7EE1C0CharacterLevel: Glove / Sword / グローブ/剣 Level左がグローブ、右が剣の武器レベル
例えばグローブLv5 剣Lv3なら、「0X53」が入っている\n通常はLv8:熟練99が上限
7EE1D1CharacterSkill: Sword / 剣熟練0 - 99
剣の熟練度
7EE1D2CharacterSkill: Axe / 斧熟練0 - 99
斧の熟練度
7EE1C1CharacterLevel: Axe / Spear / 斧 / 槍 Level左が斧、右が槍の武器レベル
通常はLv8:熟練99が上限
7EE1D3CharacterSkill: Spear / 槍熟練0 - 99
槍の熟練度
7EE1D4CharacterSkill: Whip / ムチ熟練0 - 99
ムチの熟練度
7EE1C2CharacterLevel: Whip / Bow / ムチ / 弓 Level左がムチ、右が弓の武器レベル
通常はLv8:熟練99が上限
7EE1D5CharacterSkill: Bow / 弓熟練0 - 99
弓の熟練度
7EE1D6CharacterSkill: Boomerang / ブーメラン熟練0 - 99
ブーメランの熟練度
7EE1C3CharacterLevel: Boomerang / Javelin / ブーメラン/スピアLv左がブーメラン、右がスピアの武器レベル
通常はLv8:熟練99が上限
7EE1D7CharacterSkill: Javelin / スピア熟練0 - 99
スピアの熟練度
7EE1E0CharacterArmor: Head / 頭防具装備中の頭防具。「持ち物」の項目のほうが優先されます
7EE1E1CharacterArmor: Body / 体防具装備中の頭防具。「持ち物」の項目のほうが優先されます
7EE1E2CharacterArmor: Arms / 腕防具装備中の頭防具。「持ち物」の項目のほうが優先されます
7EE1E3CharacterWeapon / 武器装備中の武器。「武器パワー」の項目のほうが優先されます
7EE1E4CharacterWeapon Type / 武器の種類「武器パワー」の項目のほうが優先されます
0x0: Glove / グローブ
0x1: Sword / 剣
0x2: Axe / 斧
0x3: Spear / 槍
0x4: Whip / ムチ
0x5: Bow / 弓
0x6: Boomerang / ブーメラン
0x7: Javelin / スピア
7EE1E8CharacterWeapon Subaddress (?) / 武器サブアドレス?Same as 7EE1E3
7EE1E3と同じ値
7EE1EDCharacterPower Guage / パワーゲージ攻撃直後は99で、減っていく。0で100%
7EE1F1CharacterHP Damage / HPダメージHPダメージ処理に使用?
7EE1F3CharacterHP Recovery / HP回復HP回復処理に使用?
7EE1F5CharacterMP Recovery / MP回復MP回復処理に使用?
7EE1F6CharacterMP Damage . MPダメージMPダメージ処理に使用?
7EE1FBCharacterFlag Operation / 操作フラグ (?)Unknown, usually 0x80 / 不明、通常は80
0x2: Unable to move
0x4: Invincible
7ECC24Personal EffectsArmor: Head / 頭防具変更すると装備が外れてしまうので、ゲーム内で装備しなおしてください
7ECC24Personal EffectsPerson Equipped / 装備者頭防具の装備者。防具が「なし」の場合はポポイになっています
※変更すると装備が消えてしまうので、いじらないでください
0x00
0x40: Boy / ランディ
0x80: Girl / プリム
0xC0: Sprite / ポポイ
7ECC30Personal EffectsArmor: Body / 体防具変更すると装備が外れてしまうので、ゲーム内で装備しなおしてください
7ECC30Personal EffectsPerson Equipped / 装備者体防具の装備者。防具が「なし」の場合はポポイになっています
※変更すると装備が消えてしまうので、いじらないでください
0x00
0x40: Boy / ランディ
0x80: Girl / プリム
0xC0: Sprite / ポポイ
7ECC3CPersonal EffectsArmor: Arms / 腕防具変更すると装備が外れてしまうので、ゲーム内で装備しなおしてください
7ECC3CPersonal EffectsPerson Equipped / 装備者腕防具の装備者。防具が「なし」の場合はポポイになっています
※変更すると装備が消えてしまうので、いじらないでください
0x00
0x40: Boy / ランディ
0x80: Girl / プリム
0xC0: Sprite / ポポイ
7ECC48Personal EffectsItem / アイテムアイテムの種類と個数。通常は4個までしか買えません
16進数の左の桁に個数×2、右の桁にアイテムIDが入っています
7ECC6APersonal EffectsMoney (Gil) / 所持金0 - 9999999
所持金額 (ルク)
7EE782Monster / During ComabtEnemy HP / 敵HP~
7ECC54Character / WeaponWeapon Rank / 武器ランク現在の武器ランク(0~8)、63は未入手武器の意味
変更すると装備が外れてしまうので、ゲーム内で装備しなおしてください
7ECC54Character / WeaponPeron Equipped / 装備者※変更すると武器ランクが0になってしまうので、いじらないでください
0x00
0x40: Boy / ランディ
0x80: Girl / プリム
0xC0: Sprite / ポポイ
7ECFB8Character / WeaponWeapon Power / 武器パワー手に入れた武器パワー(0~8)。ワッツの店で鍛えると、ここの値まで武器ランクを上げられます。
7EE3D8Character / MagicGnome Skill / ノーム熟練0 - 99
ノームの熟練度
7EE3C4Character / MagicGnome / Undine / ノーム / ウンディーネ左がノーム、右がウンディーネの熟練レベル
例えばノームLv5 ウンディーネLv3なら、「OX53」が入っている
通常はLv8:熟練99が上限
7EE3D9Character / MagicLevel: Undine / ウンディーネ熟練0 - 99
ウンディーネの熟練度
7EE3DACharacter / MagicLevel: Salamando / サラマンダー熟練0 - 99
サラマンダーの熟練度
7EE3C5Character / MagicSalamando / Sylphid (Jin) / サラマンダー / ジン左がサラマンダー、右がジンの熟練レベル
通常はLv8:熟練99が上限
7EE3DBCharacter / MagicLevel: Sylphid (Jin) / ジン熟練0 - 99
ジンの熟練度
7EE3DCCharacter / MagicLevel: Luna / ルナ熟練0 - 99
ルナの熟練度
7EE3C6Character / MagicLuna / Dryad / ルナ / ドリアード左がルナ、右がドリアードの熟練レベル
通常はLv8:熟練99が上限
7EE3DDCharacter / MagicLevek: Dryad / ドリアード熟練0 - 99
ドリアードの熟練度
7EE3DECharacter / MagicLevel: Shade / シェイド熟練0 - 99
シェイドの熟練度、ポポイのみ
7EE3C7Character / MagicShade / Wisp / シェイド / ウィスプ左がシェイド、右がウィスプの熟練レベル
通常はLv8:熟練99が上限
プリムはシェイドを使えず、ポポイはウィスプを使えない
7EE3DFCharacter / MagicLevel: Wisp / ウィスプ熟練0 - 99
ウィスプの熟練度、プリムのみ

ROM Map

The ROM Map describes various offsets, some could be broken down further and just haven’t been expanded up on, but data structures are provided for those linked to.

OffsetCategoryDescription
014E00 - 014FFFGraphics / グラフィックBall Object (4BPP)
02B8D6 - 02BAD5Graphics / グラフィックFloating Mana Fortress (4BPP)
033D39 - 033DF8Audio / PointersSPC Pointers / シーケンスデータへのオフセット 3 bytes * 64
033DF9 - 033E5BAudio / PointersBRR Pointers / 波形へのオフセット 3 bytes * 33
033E5C - 033E9DAudio / Other波形ループ開始位置 2 bytes * 33
033E9E - 033EDFAudio / Other波形音程補正 2 bytes * 33
033EE0 - 033F21Audio / Other波形ADSR 2 bytes * 33
033F22 - 034781Audio / OtherSample Indexes / BGM毎 波形指定 32 bytes * 67
034782 - 04D33CAudio / WaveformNon-Music Audio
04D33D - 05FFE8Audio / TrackSPC Music Audio
062000 - 062FFFGraphics / グラフィックClouds (4BPP)
063000 - 063FFFGraphics / グラフィックFlamie (7 Blank 8x8) (4BPP)
066700 - 0669FFGraphics / グラフィックExplosion (4BPP)
066C00 - 0673FFGraphics / グラフィックUnknown Graphics (4BPP)
07FB00 - 07FB9FGraphics / グラフィックMap Directions (4BPP)
081000 - 081F59Graphics / PalettesMonster / Character Palettes
083000 - ~Maps / Entry & Exit Data4 bytes
0A7E1C - 0A7E33Item / Prices / アイテムの値段Item Price / アイテム値段 2 bytes
0A7E34 - 0A7EB1Item / Prices / アイテムの値段Armor Price / 防具値段 2 bytes
0A7ED2 - 0A7F79Item / Store InventoryStore Inventory Lists (1 byte * number of items)
0B4000 - ~Graphics / Tilemaps 16x1616x16 Tile Sets
0C0C00 - 0CEAD9Maps / Compressed Data / マップ圧縮Map IDs: 0x0300 ~ ?
0C9000 - ~Text / Script PointersFirst 1024 Script Pointers
0CA000 - ~Text / Script PointersRemaining Script Pointers
0CEADA - 0CEFFFUnused / Free Space / 未使用領域Filled with 0xFF
0CF000 - 0CFBA2Maps / Compressed Data / マップ圧縮Map IDs: 0x037F ~ ?
0CFBA3 - 0CFFFFUnused / Free Space / 未使用領域Filled with 0xFF
0D0000 - 0D0005Maps / Comparative Map ID for Changing Bank / バンク変更用 マップID比較2 bytes * 3
0D0006 - 0D0803Maps / Map Offset / マップオフセット2 bytes * 1023
0D0804 - 0FFE52Maps / Compressed Data / マップ圧縮Map IDs: 0x0000 ~ ?
0FFE53 - 0FFFF3BIOS / Multi-Tap BIOSMULTI5 CONNECT CHECK Ver1.00
0FFFF4 - 0FFFFFUnused / Free Space / 未使用領域Filled with 0xFF
100000 - 1007FFGraphics / Monster StructureGraphics, Shadows, Animations, etc
101000 - 1018E7Item / Weapons Data / 武器データ12 bytes each, 190 entries
101C00 - 102A7FMonster / Data / モンスターステータス29 bytes, 128 entries
102AA0 - 10351FCharacter / Magic Data / 魔法データ40 bytes, 42 entries
103A50 - 103CCFMonster / Treasure Chest Drop5 bytes * 128 Groups
103ED0 - 104145Item / Armor Data10 bytes * 62
104146 - 10414FUnused / Free Space / 未使用領域Filled with 0xFF
104150 - 10420FItem / Data16 bytes * 12
104210 - 104527Character / Level Data / Boy / ランディLevels 1 - 99 8 bytes * 99
104528 - 10483FCharacter / Level Data / Girl / ププリムLevels 1 - 99 8 bytes * 99
104840 - 104B57Character / Level Data / Sprite / ポポイLevels 1 - 99 8 bytes * 99
104B58 - 104C80Character / Experience Data / LevelsLevel Up Values 3 bytes * 99
105116 - ~Monster / AI & MovementEach entry ending with 0xFF
127E80 - 1281FFGraphics / グラフィックPower Meter / Numbers / Character Boxes (2BPP)
128760 - 12C59FGraphics / IconsMenu Icons
12C680 - 12C8FFGraphics / グラフィックCharacter Icons / メニュー画像 (4BPP)
12D080 - 12D47FGraphics / グラフィックMessage Boxes / メニュー画像 (2BPP)
12D480 - 12D87FGraphics / グラフィックメニュー画像 (4BPP)
12D880 - 12DB7FGraphics / グラフィックメニュー画像 (2BPP)
14FDC0 - 1877DFGraphics / グラフィックGraphic (4BPP)
150000 - 157FFFGraphics / グラフィックランディ
150000 - 1A0FFFGraphics / グラフィックキャラ画像 (4BPP)
158000 - 15FFFFGraphics / グラフィックプリム
160000 - 167FFFGraphics / グラフィックポポイ
168000 - 16953FGraphics / グラフィック精霊
169540 - 169DFFGraphics / グラフィックニキータ
169E00 - ~Graphics / グラフィック鍛冶屋ワッツ
187D40 - 18FD3FGraphics / グラフィックGraphic (4BPP)
198000 - 19FBFFGraphics / グラフィックGraphic (4BPP)
19FEC0 - 19FFFFGraphics / グラフィック0-F Hexadecimal Font (1BPP)
1A0000 - 1A0FFFGraphics / グラフィックGraphic (4BPP)
1C0000 - 1FFFFFGraphics / グラフィック画像 (4BPP)

Data Tables

Audio Waveforms

OffsetDescription
034782 - 034E67波形 01
034E68 - 035343波形 02
035344 - 0356B7波形 03
0356B8 - 03618D波形 04
03618E - 036ED9波形 05
036EDA - 037C0A波形 06
037C0B - 037DC5波形 07
037DC6 - 0381D2波形 08
0381D3 - 039194波形 09
039195 - 03A0E1波形 0A
03A0E2 - 03BA8D波形 0B
03BA8E - 03CA3D波形 0C
03CA3E - 03CC9A波形 0D
03CC9B - 03CF87波形 0E
03CF88 - 03E38A波形 0F
03E38B - 03F33A波形 10
03F33B - 03F4B6波形 11
03F4B7 - 03FBC9波形 12
03FBCA - 041605波形 13
041606 - 041EA4波形 14
041EA5 - 04230B波形 15
04230C - 043906波形 16
043907 - 043F9B波形 17
043F9C - 0447F2波形 18
0447F3 - 045988波形 19
045989 - 046254波形 1A
046255 - 046CE2波形 1B
046CE3 - 048E14波形 1C
048E15 - 04954B波形 1D
04954C - 049FD9波形 1E
049FDA - 04B058波形 1F
04B059 - 04BB88波形 20
04BB89 - 04D33C波形 21

Audio Tracks

OffsetDescription
04D33D - 04D7AE曲 (00) Secret of the Arid Sands / 熱砂の秘密
04D7AF - 04DEFA曲 (09) The Little Sprite / 妖精族のこども
04DEFB - 04E7AC曲 (14)
04E7AD - 04F077曲 (15)
04F078 - 04FDE3曲 (04)
04FDE4 - 0506B7曲 (05)
0506B8 - 050A4A曲 (06) The Wind Never Ceases / 風の焉わるところ
050A4B - 050B62曲 (07) I Closed My Eyes / ひとみを閉じて
050B63 - 050F42曲 (08) Spirit of the Night / 夜の魂
050F43 - 051FBE曲 (01) Flight Into the Unknown / 未知への飛行
051FBF - 0522D9曲 (0A) What the Forest Taught Me / 森が教えてくれたこと
0522DA - 052F22曲 (0B) Eternal Recurrence / 永劫回帰
052F23 - 0537CA曲 (0C)
0537CB - 054218曲 (0D)
054219 - 054765曲 (0E)
054766 - 054BE0曲 (0F)
054BE1 - 055379曲 (10)
05537A - 055A84曲 (11)
055A85 - 055C63曲 (12)
055C64 - 0566F1曲 (13)
0566F2 - 056B32曲 (16)
056B33 - 056C45曲 (17)
056C46 - 056CFD曲 (18)
056CFE - 056D91曲 (19)
056D92 - 056F41曲 (1A)
056F42 - 057151曲 (1B)
057152 - 057429曲 (1D)
05742A - 057502曲 (1E)
057503 - 057AE6曲 (1F) It Happened Late One Evening / 月夜の出来事
057AE7 - 058148曲 (20)
058149 - 0581D0曲 (21)
0581D1 - 05840D曲 (24) A Wish… / ねがい
05840E - 05851B曲 (23) (ファンファーレXX)
05851C - 058DC9曲 (25) Monarch on the Shore / 海辺の王様
058DCA - 05964D曲 (26) Steel and Snare / 鋼鉄と罠
05964E - 059B4C曲 (02) The Dark Star / 暗黒星
059B4D - 059EF8曲 (27)
059EF9 - 05A152曲 (29)
05A153 - 05A28B曲 (22)
05A28C - 05A81A曲 (12)
05A81B - 05AC0E曲 (2A)
05AC0F - 05AD56曲 (28)
05AD57 - 05AEA3曲 (2B)
05AEA4 - 05B7F9曲 (2C)
05B7FA - 05B866曲 (2D)
05B867 - 05B937曲 (2E)
05B938 - 05BA11曲 (2F)
05BA12 - 05BADE曲 (30) (Elemental Acquired)
05BADF - 05C46B曲 (31) Leave Time for Love / 愛に時間を
05C46C - 05C5BC曲 (33)
05C5BD - 05DFBC曲 (32) The Second Truth From the Left / 最後から二番目の真実
05DFBD - 05E127曲 (34) I Won’t Forget / 君を忘れない
05E128 - 05E1F1曲 (35) (Ally Joins)
05E1F2 - 05E66E曲 (36) Morning Is Here / 明日に届く
05E66F - 05E8EE曲 (37) One of Them is Hope / そのひとつは希望
05E8EF - 05EA04曲 (38) A Conclusion / ある結末 / 曲 3B,3C,3D,3E,3F ??
05EA05 - 05F96A曲 (39) Meridian Dance / 子午線の祀り
05F96B - 05FC60曲 (3A) Now Flightless Wings / 翼はもうはばたかない
05FC61 - 05FF6F曲 (03) Prophecy / 予感
05FF70 - 05FFE8????

Items

ValueAlt. ValueDescription
00BACandy / まんまるドロップ
01BBChocolate / ぱっくんチョコ
02BCRoyal Jam / ロイヤルゼリー
03BDFaerie Walnut / 魔法のくるみ
04BEMedical Herb / プイプイ草
05BFCup of Wishes / 天使の聖杯
06C0Magic Rope / 魔法のロープ
07C1Flammie Drum / 風の太鼓
08C2Moogle Belt / モーグリベルト
09C3Midge Mallet / ちびっ子ハンマー
0AC4Barrel / タル
0BC5? / 不明

Item Prices / アイテムの値段

Each item price is 2 bytes long, little endian.

Offset / アドレスCategoryItem Name / 名前Price / デフォルトの値段
0A7E1CItemまんまるドロップ10
0A7E1EItemぱっくんチョコ30
0A7E20Itemロイヤルゼリー100
0A7E22Item魔法のくるみ500
0A7E24Itemプイプイ草10
0A7E26Item天使の聖杯150
0A7E28Item? 魔法のロープ65535
0A7E2AItem? ちびっ子ハンマー65535
0A7E2CItem? 風の太鼓65535
0A7E2EItem? モーグリベルト65535
0A7E30Itemタル450
0A7E32Item65535
0A7E34Item(なし)0
0A7E36Itemバンダナ50
0A7E38Itemプリティリボン55
0A7E3AItemラビのぼうし45
0A7E3CItemヘッドギア70
0A7E3EItem羽ぼうし110
0A7E40Item鉄のカブト180
0A7E42Item金のかみかざり350
0A7E44Itemアライグマハット550
0A7E46Itemポロビンフード700
0A7E48Itemタイガーキャップ1100
0A7E4AItemサークレット2300
0A7E4CHelmet3400
0A7E4EHelmetユニコヘルム5625
0A7E50Helmetドラゴンヘルム7500
0A7E52Helmetダックヘルメット11250
0A7E54Helmetニードルヘルム15000
0A7E56Helmet? コカトリスヘルム22500
0A7E58Helmet? デビルキャップ36000
0A7E5AHelmet? グリフォンヘルム44500
0A7E5CHelmet? 精霊の王冠58000
0A7E5EArmor(なし)0
0A7E60Armor革のツナギ20
0A7E62Armorカンフー道着25
0A7E64Armorチビッ子ローブ22
0A7E66Armorくさりのチョッキ120
0A7E68Armorパンクスーツ260
0A7E6AArmorチャイナドレス350
0A7E6CArmorハデなツナギ675
0A7E6EArmor銀のチェスト1000
0A7E70Armor黄金のベスト2250
0A7E72Armorルビーの胸あて4500
0A7E74Armorトラのぬいぐるみ6375
0A7E76Armorタイガービキニ7100
0A7E78Armor魔法のヨロイ11500
0A7E7AArmorトータスメイル14850
0A7E7CArmorバラのレオタード21000
0A7E7EArmorバトルスーツ30000
0A7E80Armorプロテクター32750
0A7E82Armor? バンパイアマント47000
0A7E84Armor? プラズマスーツ53000
0A7E86Armor? 精霊のマント65000
0A7E88Armor(なし)0
0A7E8AArmor?精霊のうでわ55000
0A7E8CAccessoryエルボーパット90
0A7E8EAccessoryパワーリスト150
0A7E90Accessoryコブラのうでわ280
0A7E92Accessoryウルフバンド400
0A7E94Accessory銀のうでわ525
0A7E96Accessoryゴーレムリング750
0A7E98Accessoryスノーマンリング1200
0A7E9AAccessoryオチューリング1875
0A7E9CAccessory金のブレスレット3750
0A7E9EAccessoryプロテクトリング5100
0A7EA0Accessoryラピスのうでわ8800
0A7EA2Accessory? レジストリング12500
0A7EA4Accessoryガントレット18750
0A7EA6Accessory? ニンジャのこて24000
0A7EA8Accessory? ドラゴンリング31000
0A7EAAAccessory? バイルダーリング37500
0A7EACAccessory? チビデビルリング42500
0A7EAEAccessory? デーモンリング48000
0A7EB0Accessory? リストバンド45

Color Palettes

Each item price is 0x1D (29) bytes long. This chart is missing most entries.

Offset / アドレスCategoryDescription
081000 - 08101DMonsterRabbite / ラビのパレット
~~~
081F00 - 081F1DCharacterBoy / ランディのパレット
081F1E - 081F3BCharacterPrincess / プリムのパレット
081F3C - 081F59CharacterSprite / ポポイのパレット

Store Inventory / 店データ

The list of goods in each store varies with the last entry being 0xFF to indicate the end.

Offset / アドレスDescriptionItems
0A7ED2 - 0A7ED7Potos / ポトス村5 + End
0A7ED8 - 0A7EE3Neko’s Place / ニキータの店、 ガイアのヘソ・妖魔の森・エリニース城のニキータ11 + End
0A7EE4 - 0A7EEAPandora (1) / パンドーラ16 + End
0A7EEB - 0A7EF2Kippo Village / キッポ村7 + End
0A7EF3 - 0A7EFEDwarf Village / ドワーフの村11 + End
0A7EFF - 0A7F08Pandora (2) / パンドーラ29 + End
0A7F09 - 0A7F14Moogle Village / モーグリの村11 + End
0A7F15 - 0A7F1EMatango Village / マタンゴ王国9 + End
0A7F1F - 0A7F28Kakkara Village / カッカラ王国9 + End
0A7F29 - 0A7F32Todo (Ice Country), Neko / トド村、氷の森のニキータ9 + End
0A7F33 - 0A7F40Empire (Northtown) / 帝国ノースタウン13 + End (Before Event)
0A7F41 - 0A7F4DEmpire (Southtown) / 帝国サウスタウン12 + End
0A814E - 0A7F56Mandala Village / マンダーラ7 + End
0A7F57 - 0A7F62Gold Isle / 黄金の街8 + End
0A7F63 - 0A7F6FTasnica (Turtle Island) / タスマニカ共和国12 + End
0A7F70 - 0A7F79Temple of Mana (Tree Palace) / マナの神殿10 + End

Experience to Level Up

This is the experience required to level up, 3 bytes long with 99 entries.

0-2: Experience Level Required
0-2:レベルアップ必要経験値
Offset / アドレスDescriptionValue
104B58 - 104B5ALevel 210 00 00
104C7E - 104C80Maximum7F 96 98

Armors

Values 0x00 - 0x14 are head wear, values 0x15 - 0x29 are body wear and 0x2A - 0x3F are for the arms.

ValueDescription
00Bare Head / (なし:頭)
01Bandanna / バンダナ
02Hair Ribbon / プリティリボン
03Rabite Cap / ラビのぼうし
04Head Gear / ヘッドギア
05Quill Cap / 羽ぼうし
06Steel Cap / 鉄のカブト
07Golden Tiara / 金のかみかざり
08Raccoon Cap / アライグマハット
09Quilted Hood / ポロビンフード
0ATiger Cap / タイガーキャップ
0BCirclet / サークレット
0CRuby Armlet / ルビーアーメット
0DUnicorn Helm / ユニコヘルム
0EDragon Helm / ドラゴンヘルム
0FDuck Helm / ダックヘルメット
10Needle Helm / ニードルヘルム
11Cockatrice Cap / コカトリスヘルム
12Amulet Helm / デビルキャップ
13Griffin Helm / グリフォンヘルム
14Faerie Crown / 精霊の王冠
15Nothing / (なし:体)
16Overalls / 革のツナギ
17Kung Fu Suit / カンフー道着
18Midge Robe / チビッ子ローブ
19Chain Vest / くさりのチョッキ
1ASpiky Suit / パンクスーツ
1BKung Fu Dress / チャイナドレス
1CFancy Overalls / ハデなツナギ
1DChest Guard / 銀のチェスト
1EGolden Vest / 黄金のベスト
1FRuby Vest / ルビーの胸あて
20Tiger Suit / トラのぬいぐるみ
21Tiger Bikini / タイガービキニ
22Magical Armor / 魔法のヨロイ
23Tortoise Mail / トータスメイル
24Flower Suit / バラのレオタード
25Battle Suit / バトルスーツ
26Vestguard / プロテクター
27Vampire Cape / バンパイアマント
28Power Suit / プラズマスーツ
29Faerie Cloak / 精霊のマント
2ANothing / (なし:腕)
2BFaerie’s Ring / 精霊のうでわ
2CElbow Pad / エルボーパット
2DPower Wrist / パワーリスト
2ECobra Bracelet / コブラのうでわ
2FWolf’s Band / ウルフバンド
30Silver Band / 銀のうでわ
31Golem Ring / ゴーレムリング
32Frosty Ring / スノーマンリング
33Ivy Amulet / オチューリング
34Gold Bracelet / 金のブレスレット
35Shield Ring / プロテクトリング
36Lazuri Ring / ラピスのうでわ
37Guardian Ring / レジストリング
38Gauntlet / ガントレット
39Ninja Gloves / ニンジャのこて
3ADragon Ring / ドラゴンリング
3BWatcher Ring / バイルダーリング
3CImp’s Ring / チビデビルリング
3DAmulet Ring / デーモンリング
3EWristband / リストバンド
3F(Blank) / (なし)

Monsters

ValueDescription
00ラビ
01ビービー
02マイコニド
03ポロン
04バドフラワー
05ガルフィッシュ
06ゴブリン
07アイスパイ
08グリーンスライム
09スペクター
0Aバットラー
0Bゴブリンロード
0Cサハギン
0Dマジカルチェア
0Eゴブリンガード
0Fダークスモッグ
10クロウラー
11プチポセイドン
12ゾンビ
13ガラシャ
14ラビリオン
15ブラッドアウル
16モールベア
17パンプキンボム
18デスクラブ
19ユニコーンヘッド
1Aウィザードアイ
1Bジャッカル
1Cポロビンフッド
1Dガスクラウド
1Eダークバット
1Fウェアウルフ
20シャドウX3(ポポイ)
21イビルソード
22ダークプリースト
23マジックブック
24デススコーピオン
25ダックソルジャー
26タールマン
27レッドマシュマロ
28コカトリス
29ボムビー
2Aダースマタンゴ
2Bブラッドパンジー
2Cキラーフィッシュ
2Dミミックン
2EシャドウX1(ランディ)
2Fガラシャラム
30ゴースト
31メタルクロウラー
32スパイダーレッグ
33バイルダー
34トータスナイト
35ビーストゾンビ
36グール
37チビデビル
38ブルーババロア
39セイレーングレル
3Aデーモンヘッド
3Bグリフォンハンド
3Cニードリオン
3Dメタルクラブ
3Eアーマーナイト
3FシャドウX2(プリム)
40カオスソーサラー
41ダックジェネラル
42グレネードボム
43タートルナイト
44ヘルウォーター
45バジリスク
46グレムリン
47メタルスコーピオ
48ニンジャ
49メタルバイルダー
4Aヘルハウンド
4Bサタンヘッド
4Cデビルマガジン
4Dダークストーカー
4Eダークナイト
4Fシェイプシフター
50ウルフデビル
51エレメントソード
52ターミネーター
53マスターニンジャ
54?(という名)
55クリスタルオーブ
56宝箱
57マンティスアント
58ルームガーター
59バド
5Aミノタウロス
5Bタイガーキメラ
5Cジャバウォック
5Dアックスビーク
5Eフロストギガース
5Fパックンドラゴン
60マシンライダー
61サタンズウォール
62バンパイア
63メタルマンティス
64マシンライダー2
65ガーディアン
66ゴーゴンタウロス
67ブラッドローパー
68オチューフェイス
69グレートボア
6Aヒューポスライム
6Bバイオキメラ
6Cガーターズアイ
6Dヒドラ
6Eメガゾーン
6Fラミアンナーガ
70デスマシーン
71パックンおたま
72マシンライダー3
73ホワイトドラゴン
74ファイアギガース
75レッドドラゴン
76ヘルフェニックス
77ブルードラゴン
78バンパイアロード
79ダークリッチ
7Aパックンとかげ
7Bドラゴンウォーム
7Cウィスポスライム
7Dサンダーギガース
7Eサタンズアイ
7F神獣

Weapon List

ValueDescription
00Spike Knuckle / 【グ0】カイザーナックル
01Power Glove / 【グ1】パワーグローブ
02Moogle Claws / 【グ2】モーグリのツメ
03Chakra Hand / 【グ3】チャクラハンド
04Heavy Glove / 【グ4】メタルグローブ
05Hyper-Fist / 【グ5】ハイパーフィスト
06Griffin Claws / 【グ6】グリフォンのツメ
07Dragon Claws / 【グ7】ドラゴンのツメ
08Aura Glove / 【グ8】オーラグローブ
09Rusty Sword / 【剣0】さびた聖剣
0ABroad Sword / 【剣1】ディフェンダー
0BHerald Sword / 【剣2】クサナギの剣
0CClaymore / 【剣3】オリハルコンの剣
0DExcalibur / 【剣4】エクス力リバー
0EMasamune / 【剣5】マサムネ
0FGigas Sword / 【剣6】ズールトの剣
10Dragon Buster / 【剣7】ドラゴンバスター
11Mana Sword / 【剣8】マナの剣
12Watt’s Axe / 【オノ0】ドワーフのオノ
13Lode Axe / 【オノ1】バトルアックス
14Stout Axe / 【オノ2】ブローバ
15Battle Axe / 【オノ3】フランシスカ
16Golden Axe / 【オノ4】ゴールドアックス
17Were-Buster / 【オノ5】ウェアバスター
18Great Axe / 【オノ6】グレートアックス
19Gigas Axe / 【オノ7】魔人のオノ
1ADoom Axe / 【オノ8】デビルアックス
1BSpear / 【ヤリ0】ブロンズランス
1CHeavy Spear / 【ヤリ1】スチールランス
1DSprite’s Spear / 【ヤリ2】妖魔のヤリ
1EPartisan / 【ヤリ3】パルティザン
1FHalberd / 【ヤリ4】ハルバード
20Oceanid Spear / 【ヤリ5】サンゴのヤリ
21Gigas Lance / 【ヤリ6】巨人のヤリ
22Dragon Lance / 【ヤリ7】ドラゴンランス
23Daedalus Lance / 【ヤリ8】ダイダロスのヤリ
24Whip / 【ムチ0】革のムチ
25Black Whip / 【ムチ1】ブラックウィップ
26Backhand Whip / 【ムチ2】はやてのムチ
27Chain Whip / 【ムチ3】チェーンフレイル
28Flail of Hope / 【ムチ4】シルバーフレイル
29Morning Star / 【ムチ5】モーニングスター
2AHammer Flail / 【ムチ6】ハンマーフレイル
2BNimbus Chain / 【ムチ7】ダイヤフレイル
2CGigas Flail / 【ムチ8】ギガースフレイル
2DChobin’s Bow / 【弓0】ポロンの弓矢
2EShort Bow / 【弓1】鉄の弓矢
2FLong Bow / 【弓2】ロングボウ
30Great Bow / 【弓3】グレートボウ
31Bow of Hope / 【弓4】銀の弓矢
32Elfin Bow / 【弓5】エルフの弓矢
33Wing Bow / 【弓6】ウイングボウ
34Doom Bow / 【弓7】ひっさつの弓矢
35Garuda Buster / 【弓8】ガルーダバスター
36Boomerang / 【ブ0】ブーメラン
37Chakram / 【ブ1】チャクラム
38Lode Boomerang / 【ブ2】鉄のブーメラン
39Rising Sun / 【ブ3】円月輪
3ARed Cleaver / 【ブ4】チタンブーメラン
3BCobra Shuttle / 【ブ5】バグナグ
3CFrizbar / 【ブ6】バトルフリスビー
3DShuriken / 【ブ7】手裏剣
3ENinja’s Trump / 【ブ8】風魔手裏剣
3FPole Dart / 【ス0】スピア
40Javelin / 【ス1】ジャベリン
41Light Trident / 【ス2】サハギンのモリ
42Lode Javelin / 【ス3】トライデント
43Fork of Hope / 【ス4】シルバーピラム
44Imp’s Fork / 【ス5】チビデビルのモリ
45Elf’s Harpoon / 【ス6】ルーンスピア
46Dragon Dart / 【ス7】ドラゴンスピア
47Valkyrian / 【ス8】バルキリースピア

Magic List

ValueTypeDescription
00GnomeEarth Slide / アースクエイク
01GnomeGem Missile / ダイヤミサイル
02GnomeSpeed Down / スピードダウン
03GnomeStone Saber / ストーンセイバー
04GnomeSpeed Up / クイック
05GnomeDefender / プロテクト
06UndineFreeze / フリーズ
07UndineAcid Storm / アシッドストーム
08UndineEnergy Absorb / スポイト
09UndineIce Saber / アイスセイバー
0AUndineRemedy / リフレッシュ
0BUndineCure Water / ヒールウォーター
0CSalamandoFireball / ファイアボール
0DSalamandoExploder / エクスプロード
0ESalamandoLava Wave / ラーバウェイブ
0FSalamandoFlame Saber / フレイムセイバー
10SalamandoFire Bouquet / ファイアカクテル
11SalamandoBlaze Wall / ブレイズウォール
12SylphidAir Blast / エアブラスト
13SylphidThunderbolt / サンダーボルト
14SylphidSilence / サイレンス
15SylphidThunder Saber / サンダーセイバー
16SylphidBalloon / バルーン
17SylphidAnalyzer / ディテクト
18LunaChange Form / ボディチェンジ
19LunaMagic Absorb / アブソーブ
1ALunaLunar Magic / ルナティック
1BLunaMoon Saber / ムーンセイバー
1CLunaLunar Boost / ラッシュ
1DLunaMoon Energy / エナジーボール
1EDryadSleep Flower / スリープフラワー
1FDryadBurst / バースト
20DryadMana Magic / マナ(ポポイ)
21DryadRevivifier / リバイブ
22DryadWall / カウンタマジック
23DryadMana Magic / マナ(プリム)
24ShadeEvil Gate / イビルゲート
25ShadeDark Force / ダークフォース
26ShadeDispel Magic / アンティマジック
27LuminaLight Saber / ホーリーセイバー
28LuminaLucent Beam / セイントビーム
29LuminaLucid Barrier / ティンクルバリア

Menu Icons

They are 96 bytes each, the first 48 of which contain the icon text. In VRAM, the range is from DC00 - DFFF. The routine that loads the icons into RAM is at D0CA8B - D0CAB6.

OffsetDescription
128760 - 1287BFEQUIP Icon
12C360 - 12C3BFTargeting Icon
12C3C0 - 12C41FSTAT Icon
12C420 - 12C47FLEVEL Icon
12C480 - 12C4DFACT Icon
12C4E0 - 12C53FEDIT (Controller) Icon
12C540 - 12C59FEDIT (Window) Icon

Data Structures

Monster / NPC Location

Each object is 16 bytes, and the number of objects is dependent on the locations.

 1 - Spawn Type (?)
 2 - ?
 3 - ?
 4 - ?
 5 - ?
 6 - ?
 7 - ?
 8 - ?
 9 - ?
10 - ?
11 - Starting X-Coordinate
12 - Starting Y-Coordinate
13 - Palette - Z-Plane (?)
14 - Sprite
15 - Reaction to Button Press
16 - Reaction to Button Press

Map Entrances & Exits

Each entry is 4 bytes long.

1  Destination
2  Destination X-Coordinate
3  Destination Y-Coordinate
4  Destination Entrance Style

Weapons Data

Each weapon block takes up 12 bytes, and there are 190 weapons blocks.

$00  Graphic 1 (?)
$01  Bits 7-6: Raises Agility               (00: 0, 01: +1, 10: +5, 11: -5)
     Bits 5-4: Raises Health (Constitution) (00: 0, 01: +1, 10: +5, 11: -5)
     Bits 3-2: Raises Intelligence          (00: 0, 01: +1, 10: +5, 11: -5)
     Bits 1-0: Raises Wisdom                (00: 0, 01: +1, 10: +5, 11: -5)
$02  Bits 1-0: Raises Strength              (00: 0, 01: +1, 10: +5, 11: -5)
$03  Graphic 1 (2)
$04  Color Palette
$05  Bit 7: Effective Against Dragons
     Bit 6: Effective Against Ghosts
     Bit 5: Effective Against Evil / Dead
     Bit 4: Effective Against Slimes / Lizards
     Bit 3: Effective Against Animals / Birds / Beasts
     Bit 2: Effective Against Insects
     Bit 1: Effective Against Plants / Fish
     Bit 0: Effective Against Sub-Human (?)
$06  Critical Rate (0x00 - 0xFF, 100% at 0xFF)
$07  Hit% (0x00 - 0x64)
$08  Attack
$09  Bit 7: Cause Confusion
     Bit 6: Cause Petrify
     Bit 5: Cause Frozen / Frostied
     Bit 4: Cause Stun
     Bit 3: Cause ?
     Bit 2: Cause 'Slowed Down'
     Bit 1: Cause ?
     Bit 0: Cause ?
$10  Bit 7: Cause Death
     Bit 6: Cause Fire / Englufed
     Bit 5: Cause Poison
     Bit 4: Cause Moogled
     Bit 3: Cause Transform
     Bit 2: Cause Barrel
     Bit 1: Cause Midget / Pygmized
     Bit 0: Cause Balloon
$11  Additional Effect from Abnormal Condition % (0x00 - 0x64)

 0  グラフィック?1
 1  b7-6:すばやさ補正 (00:なし, 01:+1, 10:+5, 11:-5)
    b5-4:たいりょく補正 (00:なし, 01:+1, 10:+5, 11:-5)
    b3-2:ちせい補正 (00:なし, 01:+1, 10:+5, 11:-5)
    b1-0:せいしん補正 (00:なし, 01:+1, 10:+5, 11:-5)
 2  b1-0:ちから補正 (00:なし, 01:+1, 10:+5, 11:-5)
 3  グラフィック?2
 4  カラーパレット
 5  b7:相性○ ドラゴン系
    b6:相性○ ゴースト系
    b5:相性○ アンデッド・アクマ系
    b4:相性○ スライム系・リザード系
    b3:相性○ どうぶつ・トリ・獣人系
    b2:相性○ ムシ系・カラダのかたい
    b1:相性○ しょくぶつ・サカナ系
    b0:相性○ 亜人系
 6  クリティカル率 (00 ~ FFh、 FFhで100%)
 7  ヒット%(0~64h)
 8  攻撃力
 9  b7:付加効果 混乱
    b6:付加効果 石化
    b5:付加効果 雪だるま
    b4:付加効果 気絶
    b3:付加効果 ?
    b2:付加効果 おもり
    b1:付加効果 ?
    b0:付加効果 ?
10  b7:付加効果 死神
    b6:付加効果 火だるま
    b5:付加効果 毒
    b4:付加効果 モーグリ
    b3:付加効果 変身
    b2:付加効果 タル
    b1:付加効果 ちびっ子
    b0:付加効果 風船
11  付加効果による状態異常発生%(0~64h)

Monster Structure

The monster structure is 16 bytes long, with 128 monster spots available.

$00 - $03  Graphic
$04        Shadow Pattern
$05 - $08  Animation
$09        Initial Action (Combination of algorithm behavior, locks up)
$10        Algorithm Behavior
$11 - $15  Animation

0-3  : グラフィック
4    : 影パターン
5-8  : アニメーション
9    : 初期行動 (行動アルゴリズムとの組み合わせによっては 、固まってしまう
10   : 行動アルゴリズム
11-15: アニメーション

Monster Data

Each monster entries takes up 29 bytes, and there are 128 entries.

00       Level
01 - 02  HP
03       MP
04       Strength (0x00 - 0x64)
05       Agility (0x00 - 0x64)
06       Intelligence (0x00 - 0x64, related to Magic Attack from Sprite)
07       Wisdom (0x00 - 0x64, related to Magic Attack Power)
08       Evade Percent (0x00 - 0x64)
09 - 10  Defence (0x00 - 0x3E7)
11       Magic Evade % (0x00 - 0x64) まほうかいひ%(0~64h)
12 - 13  Defence (0x00 - 0x3E7)
14  Bit 7: Race Dragons
    Bit 6: Race Ghosts
    Bit 5: Race Evil / Dead
    Bit 4: Race Slimes / Lizards
    Bit 3: Race Animals / Birds / Beasts
    Bit 2: Race Insects
    Bit 1: Race Plants / Fish
    Bit 0: Race Sub-Human (?)
15  Bit 7: Weakness: Luna / Moon
    Bit 6: Weakness: Gnome / Tree
    Bit 5: Weakness: Shade / Dark
    Bit 4: Weakness: Lumina / Light
    Bit 3: Weakness: Undine / Water
    Bit 2: Weakness: Salamando / Fire
    Bit 1: Weakness: Dryad / Mana
    Bit 0: Weakness: Sylphid / Wind
16 - 17  Experience
18       Unknown
19       Unknown
20  Bit 7: Tolerance Confusion
    Bit 6: Tolerance Petrify
    Bit 5: Tolerance Frozen / Frostied
    Bit 4: Tolerance Stun
    Bit 3: Tolerance ?
    Bit 2: Tolerance 'Slowed Down'
    Bit 1: Tolerance ?
    Bit 0: Tolerance ?
21  Bit 7: Tolerance Death
    Bit 6: Tolerance Fire / Englufed
    Bit 5: Tolerance Poison
    Bit 4: Tolerance Moogled
    Bit 3: Tolerance Transform
    Bit 2: Tolerance Barrel
    Bit 1: Tolerance Midget / Pygmized
    Bit 0: Tolerance Balloon
22       Unknown
23       Short Range Weapon
24       Long Range Weapon
25       Death Animation
26  Bits 7-4: Magic Level (0 - 9)
    Bits 3-0: Weapon Level (0 - 9)
27 - 28  Bulk
  
  0: レベル
1-2: HP
3: MP
4: ちから(0~64h)
5: すばやさ(0~64h)
6: ちせい(0~64h、ポポイ用の魔法攻撃力に関係する)
7: せいしん(0~64h、プリム用の魔法攻撃力に関係する)
8: かいひ%(0~64h)
9-10: ぼうぎょ(0~3E7h)
11: まほうかいひ%(0~64h)
12-13: 魔法防御(0~3E7h)
14: b7: 種族 ドラゴン系
    b6: 種族 ゴースト系
    b5: 種族 アンデッド・アクマ系
    b4: 種族 スライム系・リザード系
    b3: 種族 どうぶつ・トリ・獣人系
    b2: 種族 ムシ系・カラダのかたい
    b1: 種族 しょくぶつ・サカナ系
    b0: 種族 亜人系
15: b7: 弱点 月
    b6: 弱点 木
    b5: 弱点 闇
    b4: 弱点 聖
    b3: 弱点 水
    b2: 弱点 火
    b1: 弱点 土
    b0: 弱点 風
16-17: 経験値
18:(未解析)
19:(未解析)
20: b7:耐性 混乱
    b6:耐性 石化
    b5:耐性 雪だるま
    b4:耐性 気絶
    b3:耐性 ?
    b2:耐性 おもり
    b1:耐性 ?
    b0:耐性 ?
21: b7:耐性 死神
    b6:耐性 火だるま
    b5:耐性 毒
    b4:耐性 モーグリ
    b3:耐性 変身
    b2:耐性 タル
    b1:耐性 ちびっ子
    b0:耐性 風船
22: (未解析)
23: 武器1
24: 武器2
25: 死亡時アニメーション
26: b7-4:魔法レベル(0~9)
    b3-0:武器レベル(0~9)
27 - 28: ルク

Magic Data

Each magic entry is 40 bytes long, and there are 42 entries. Magic at level 8 is more reliable at level 9.

Track:
  0: Direct
  1: Pursuit (Air Blast, Energy Ball)
  2: Pursuit (Sabre System)
  5: From Above (Thunderbolt)
  6: (Baguru ?) (Saint-beam)
  7: From Above (Frozen)

00       Unknown
01       Unknown
02       Graphics Set for Regular Magic 1
03       Graphics Set for Regular Magic 2
04       Graphics Set for Super Magic 1
05       Graphics Set for Super Magic 2
06       Graphics Set for Unknown Magic 1
07       Graphics Set for Unknown Magic 2
08       Level 0/1 (Unexplained)
09       Level 0/1 Track
10 - 15  Level 0/1 Effects Animation
16       Level 2/3 (Unexplained)
17       Level 2/3 Track
18 - 23  Level 2/3 Effects Animation
24       Level 4/5 (Unexplained)
25       Level 4/5 Track
26 - 31  Level 4/5 Effects Animation
32       Level 6/7 (Unexplained)
33       Level 6/7 Track
34 - 39  Level 6/7 Effects Animation
40       Super Magic (Unexplained)
41       Super Magic Track
42 - 47  Super Magic Effects Animation
48       Over Level 10 (?) (Unexplained)
49       Over Level 10 (?) Track
50 - 55  Over Level 10 (?) Effects Animation
56  Bit 7: Can Select Enemy Object
    Bit 6: Can Select Boy Equipped with the Sword
    Bit 5: Can Select Orb
    Bit 0: Double Single (0: Single Target, 1 Multiple Targets)
57  Unknown
58  Effect Size (?)
59  Unknown
60  Bit 7: Attribute: Dryad
    Bit 6: Attribute: Luna
    Bit 5: Attribute: Lumina
    Bit 4: Attribute: Shade
    Bit 3: Attribute: Salamando
    Bit 2: Attribute: Undine
    Bit 1: Attribute: Sylphid
    Bit 0: Attribtue: Gnome
61  Bit 7: Additional Effect Confusion
    Bit 6: Additional Effect Petrify
    Bit 5: Additional Effect Frozen / Frostied
    Bit 4: Additional Effect Stun
    Bit 3: Additional Effect ?
    Bit 2: Additional Effect 'Slowed Down'
    Bit 1: Additional Effect ?
    Bit 0: Additional Effect ?
62  Bit 7: Additional Effect Death
    Bit 6: Additional Effect Fire / Englufed
    Bit 5: Additional Effect Poison
    Bit 4: Additional Effect Moogled
    Bit 3: Additional Effect Transform
    Bit 2: Additional Effect Barrel
    Bit 1: Additional Effect Midget / Pygmized
    Bit 0: Additional Effect Balloon
63  MP Consumption

※超魔法はLv8で稀に、Lv9で確実に発動する魔法の強力バージョン。
※軌道 0:対象に直接
       1:追尾(エアブラスト、エナジーボール)
       2:追尾(セイバー系)
       5:上から(サンダーボルト)
       6:基本的にバグる(セイントビーム)
       7:上から(フリーズ)
 ------------------------
 0:?
 1:?
 2:通常魔法のグラフィックセット1
 3:通常魔法のグラフィックセット2
 4:超魔法のグラフィックセット1
 5:超魔法のグラフィックセット2
 6:(?のグラフィックセット1)
 7:(?のグラフィックセット2)
 8:Lv0/1 (未解明)
 9:Lv0/1 軌道
10-15:Lv0/1 エフェクトアニメーション
16:Lv2/3 (未解明)
17:Lv2/3 軌道
18-23:Lv2/3 エフェクトアニメーション
24:Lv4/5 (未解明)
25:Lv4/5 軌道
26-31:Lv4/5 エフェクトアニメーション
32:Lv6/7 (未解明)
33:Lv6/7 軌道
34-39:Lv6/7 エフェクトアニメーション
40:超魔法 (未解明)
41:超魔法 軌道
42-47:超魔法 エフェクトアニメーション
48:Lv10以上? (未解明)
49:Lv10以上? 軌道
50-55:Lv10以上? エフェクトアニメーション
56:b7:対象 敵
   b6:対象 剣を装備したランディ
   b5:対象 宝箱・クリスタルオーブも選択可
   b0:対象 単/複(0:単体のみ, 1:単複選択可能)
57:?
58:効果量?
59:?
60:b7:属性 木
  :b6:属性 月
  :b5:属性 聖
  :b4:属性 闇
  :b3:属性 火
  :b2:属性 水
  :b1:属性 風
  :b0:属性 土
61:b7:追加効果/セイバー効果 混乱
   b6:追加効果/セイバー効果 石化
   b5:追加効果/セイバー効果 雪だるま
   b4:追加効果/セイバー効果 気絶
   b3:追加効果/セイバー効果 ?
   b2:追加効果/セイバー効果 おもり
   b1:追加効果/セイバー効果 ?
   b0:追加効果/セイバー効果 ?
62:b7:追加効果/セイバー効果 死神
   b6:追加効果/セイバー効果 火だるま
   b5:追加効果/セイバー効果 毒
   b4:追加効果/セイバー効果 モーグリ
   b3:追加効果/セイバー効果 変身
   b2:追加効果/セイバー効果 タル
   b1:追加効果/セイバー効果 ちびっ子
   b0:追加効果/セイバー効果 風船
63:消費MP

Monster Treasure Chest Drop Items / モンスターが落とす宝箱

Each entry is 5 bytes long, with 128 entries.

0  Bit  7:
     0x1:    Chest Runs Away From You
     0x0:    Chest Stands Still
   Bits 6:   If set chest always appears. Overrides Probability.
   Bits 5-0: Chest Probability (0x00 - 0x64). `percentage = (value&0x1F) / 64.0;`
1  Trap information
   Type of trap is based depends on the level of the Monster.
   Bits 4-7: Agility needed to avoid trap `if( ((value&0xF0)>>1) < agility ) avoidTrap();`
   Bits 0-3: Analyze magic level needed to defuse trap
2  Money / Item & Probability for a Rare Drop
   Bit 0-2: Ignored (Unknown?)
   Bit 3-5: Probability for a rare drop. `percentage = ((value&0x38)>>3) / 64.0;`
   Bit 6:   Content of the Normal Drop
     0x0: Money
     0x1: Item
   Bit 7:   Content of the Rare Drop
     0x0: Item
     0x1: Money
3  Amount of Money / Item ID
     0x01-0x3E = Equipment
     0x40-0x50 = Items
     0x80      = Talon Orb works up to 9
     0x81      = Probably Sword Orb, but Candy always appears
     0x82      = Axe Orb up to 9
     0x83      = Lance Orb up to 9
     0x84      = Whip Orb up to 9
     0x85      = Bow Orb up to 9
     0x86      = Boomerang Orb up to 9
     0x87      = Javelin Orb up to 9
     0x88-     = Candy
4  Rare Drop Money Amount / Rare Drop Item ID
     Same as byte 0x3

**Deprecated translation, needs update**
0:b7:宝箱が逃げるか(0:逃げない,1:逃げる)
  b6-b0:宝箱出現確率(0~64h)
1:罠の確率?(罠の種類はモンスターのレベルによって変わる)
2:アイテム/ルク(宝箱の中身がアイテムかルクか、を決める。法則はよく分からず。)
3:宝箱の中身(コモン)
4:宝箱の中身(レア)

Armor Data / 防具データ

Each entry is 10 bytes long, with 62 entries.

0  Bit 4: +5 to Strength
   Bit 3: +5 to Agility
   Bit 2: +5 to Constitution
   Bit 1: +5 to Intelligence
   Bit 0: +5 to Wisdom
1  Defence
2  Evasion
3  Magic Defence
4  Magic Evasion
5  Bit 7: Boy Can Wear
   Bit 6: Girl Can Wear
   Bit 5: Sprite Can Wear
6  (?)
7  Bit 7: Resistance against Confusion
   Bit 6: Resistance against Petrify
   Bit 5: Resistance against Frozen / Frostied
   Bit 4: Resistance against Stun
   Bit 3: Resistance against ?
   Bit 2: Resistance against 'Slowed Down'
   Bit 1: Resistance against ?
   Bit 0: Resistance against ?
8  Bit 7: Resistance against Death
   Bit 6: Resistance against Fire / Englufed
   Bit 5: Resistance against Poison
   Bit 4: Resistance against Moogled
   Bit 3: Resistance against Transform
   Bit 2: Resistance against Barrel
   Bit 1: Resistance against Midget / Pygmized
   Bit 0: Resistance against Balloon
9  (?)

0: b4: ちから+5
   b3: すばやさ+5
   b2: たいりょく+5
   b1: ちせい+5
   b0: せいしん+5
1: 防御力
2: 回避率
3: 魔法防御
4: 魔法回避率
5: b7: ランディ装備可能
   b6: プリム装備可能
   b5: ポポイ装備可能
6: ?
7: b7: 耐性 混乱
   b6: 耐性 石化
   b5: 耐性 雪だるま
   b4: 耐性 気絶
   b3: 耐性 ?
   b2: 耐性 おもり
   b1: 耐性 ?
   b0: 耐性 ?
8: b7: 耐性 死神
   b6: 耐性 火だるま
   b5: 耐性 毒
   b4: 耐性 モーグリ
   b3: 耐性 変身
   b2: 耐性 タル
   b1: 耐性 ちびっ子
   b0: 耐性 風船
9: ?

Item Data / アイテムデータ

Each entry is 16 bytes long, with 12 entries.

 0: ?
 1: ?
 2: Amount to Recover
 3: ?
 4: ?
 5: ?
 6: ?
 7: Effect 1
 8: Effect 2
 9: Effect 3
10: Effect 4
11: Effect 5
12: Effect 6
13: Effect 1
14: ?
15: ?

 0: ?
 1: ?
 2: 回復量
 3: ?
 4: ?
 5: ?
 6: ?
 7: エフェクト1
 8: エフェクト2
 9: エフェクト3
10: エフェクト4
11: エフェクト5
12: エフェクト6
13: エフェクト7
14: ?
15: ?

Character Level Stats Data

Each entry is 8 bytes long, with 99 entries per character, so (8 * 99) * 3.

0-1: HP
  2: MP
  3: Strength
  4: Agility
  5: Constitution
  6: Intelligence
  7: Wisdom

0-1: HP
  2: MP
  3: ちから
  4: すばやさ
  5: たいりょく
  6: ちせい
  7: せいしん

SPC Header / SPC ヘッダ

The SPC header is 26 bytes long.

00-01 : Sequence Size                 シーケンスの大きさ
02-03 : Sequence Starting Address     シーケンス開始アドレス
04-05 : Channel 1 Starting Address    Channel 1開始アドレス
06-07 : Channel 2 Starting Address    Channel 2開始アドレス
08-09 : Channel 3 Starting Address    Channel 3開始アドレス
0A-0B : Channel 4 Starting Address    Channel 4開始アドレス
0C-0D : Channel 5 Starting Address    Channel 5開始アドレス
0E-0F : Channel 6 Starting Address    Channel 6開始アドレス
10-11 : Channel 7 Starting Address    Channel 7開始アドレス
12-13 : Channel 8 Starting Address    Channel 8開始アドレス
14-15 : Sequence Ending Address + 1   シーケンス終了アドレス + 1

SPC Sequence Commands

00-0E = Play Note: C
0F-1D = Play Note: C#
1E-2C = Play Note: D
2D-3B = Play Note: D#
3C-4A = Play Note: E
4B-59 = Play Note: F

5A-68 = Play Note: F#
69-77 = Play Note: G
78-86 = Play Note: G#
87-95 = Play Note: A
96-A4 = Play Note: A#
A5-B3 = Play Note: B
B4-C2 = Continue previous note for given length (There is no B# -- it's the same as C)
C3-D1 = Rest

Each note has 15 different values for their length.
The relative lengths for C (00-0E) are:
00 = 64
01 = 48
02 = 32
03 = 21.333
04 = 24
05 = 16
06 = 10.66
07 = 12
08 = 8
09 = 5.333
0A = 4
0B = 2.666
0C = 2
0D = 1.333
0E = 1

D2 xx       = Set instrument volume to xx
D3 xx       = ???
D4 xx       = Pan channel left or right [$00 = Right, $64 = Middle, $FF = Left] (Reverse stereo)
D7 ss tt dd = Vibrato: ss = Speed, tt = Time until vibrato, dd = Depth
E0          = Vibrato off?
E1          = ???
E2          = ???
E3          = ???
E4 xx       = Change pitch (octave) to xx
E5          = Increases the pitch (octave)
E5 xx       = Length of next note is xx
E6          = Decreases the pitch (octave)
EA xx       = Change Instrument to xx
F0 xx yy    = Starts a loop pattern and the parameter is the number of iterations it will loop for. 
              They can be nested. It's used for music "compression."
F1          = End Loop
F2          = End of channel
F3 xx       = Change tempo to xx
F4          = ???
F5 xx       = Set reverb to xx
F6          = ???
F7 xx yy    = ???
F8 xx       = Set global SPC volume to xx
F9          = ??? (Looping Command)
FF          = End of Sequence (?)

Sequences & control codes should be mostly compatible with Final Fantasy 5, interchanging tracks between the two should be easy.
シーケンス、 制御コード、 共にFF5との互換性が強く、 容易に相互移植が可能だと思われる。

BRR Samples

ValueDescription
8247C3~
684EC3~
4453C3~
B856C3~
8E61C3~
DA6EC3~
0B7CC3~
C67DC3~
D381C3~
9591C3~
E2A0C3~
8EBAC3~
3ECAC3~
9BCCC3~
88CFC3~
8BE3C3~
3BF3C3~
B7F4C3~
CAFBC3~
0616C4~
A51EC4~
0C23C4~
0739C4~
9C3FC4~
F347C4~
8959C4~
5562C4~
E36CC4~
158EC4~
4C95C4~
DA9FC4~
59B0C4~
89BBC4~

SPC Songs

ValueDescription
3DD3C4Into the Thick of It
430FC5Flight Into The Unknown
3F96C5Star of Darkness
56FCC5Prophecy
78F0C4Danger
E4FDC4Far Thunder
B806C5The Wind Never Ceases
4B0AC5Close Your Eyelids
630BC5Spirit of the Night
AFD7C4The Fairy Child
BF1FC5What the Forest Taught Me
DA22C5Eternal Recurrence
232FC5Oracle
CB37C5Tell a Strange Tale
1942C5Into the Thick of It 2
6647C5Rose and Ghost
E14BC5Did You See the Sea?
7A53C5The Color of the Summer Sky
855AC5Menu
645CC5The Legend
FBDEC4The Orphan of the Storm
ADE7C4Eight Ringing Bells
F266C5Dancing Beasts
336BC5Victory
466CC5Boss Defeated
FE6CC5Cannon Travel Launch
926DC5Cannon Travel
426FC5Ceremony
7DA2C5Always Together
5271C5A Prayer and a Whisper
2A74C5Burning Castle (?)
0375C5Happenings on a Moonlight Night
E77AC5A Curious Happening
4981C5Unknown Fanfare (?)
44A1C5Midge Mallet
0E84C5Unknown Fanfare (?)
D181C5A Wish
1C85C5Monarch on the Shore
CA8DC5Steel and Traps
3E9BC5Pure Night
00ACC5Flammie Coming
EA9EC5Kind Memories
0CA8C5The Holy Intruder
48ADC5In the Darkness’ Depths
95AEC5Angel’s Fear
EBB7C5Grumble (?)
58B8C5Mara’s Key
29B9C5Got an Item
03BAC5Elemental Acquired
D0BAC5Give Love its Rightful Time
B0C5C5The Second Truth From the Left
5DC4C5The Curse
B0DFC5I Won’t Forget
1BE1C5Ally Joins
E5E1C5To Reach Tomorrow
62E6C5One of Them is Hope
E2E8C5A Conclusion
F8E9C5Meridian Dance
60F9C5The Wings No Longer Beat
E2E8C5A Conclusion
E2E8C5A Conclusion
E2E8C5A Conclusion
E2E8C5A Conclusion
E2E8C5A Conclusion (?)

Compression

Seiken Densetsu 2 Graphic Compression / 聖剣伝説2 タイトル系圧縮

The game uses a LZ style compression for most data types. A working reference decompressor is available here as well as an example of the input and output:
Secret of Mana / Seiken Densetsu 2 Graphics Decompressor
Secret of Mana / Seiken Densetsu Title Screen Compressed
Secret of Mana / Seiken Densetsu Title Screen Decompressed

Data Structure / データ構造

$01-$02  Type of Compression (014C00 + X)
         #  : Type
         00 : 0x1F
         01 : 0x0F
         02 : 0x07
         03 : 0x03
         04 : 0x01
         05 : 0x00
$03-$04  Size of Uncompressed Data (Big Endian)
$05-~    First byte of Compressed Data

1-2 バイト目 : 圧縮の種類 (014C00 + X)
   [数値:圧縮の数値]
   00 : 0x1F
   01 : 0x0F
   02 : 0x07
   03 : 0x03
   04 : 0x01
   05 : 0x00
3-4 バイト目 : 解凍後の大きさ(ビッグエンディアン)
5-~ バイト目 : 圧縮部分

Compression Code List / 圧縮コード一覧

XX YY ZZ ...

XX = 0x00-0x7F (Single Byte Code XX / XX の 1 バイトコード)

The XX is the length of raw data to read starting at the next byte, (XX + 1).
その後の ROM データを (XX + 1) バイト参照する.

XX = 0x80-0xFF (2-byte Code XX YY / XX YY の 2 バイトコード)

{ (XX - 0x80) AND (Compression Type) } × 0x100 + (YY + 1) is the position of where to read from. This position is how many bytes back from the current position. To calculate the actual position from the start you would subtract this value from the current position.
(XX - 0x80) / (Compression Type + 1) + 3 is the length of the data to read.
{ (XX - 0x80) AND (圧縮の数値) } × 0x100 + (YY + 1) バイト前のメモリーから
(XX - 0x80) / (圧縮の数値+1) + 3 バイト分参照する

Compression Priority, Prediction / 圧縮優先度 / 予想

  1. 0x80-0xFF
  2. 0x00-0x7F

Seiken Densetsu 2 Boss Graphic Compression

The game handles boss sprites in the following way:

  1. Read pointers for compressed tiles.
  2. Write compressed data from ROM via blockmove to WRAM.
  3. Decompress and directly write them with 2118/2119 in VRAM.

Read Boss Tile Data

$C2/260C BF 52 BC D0 LDA $D0BC52,x[$D0:BC8A] A:0038 X:0038 Y:001A P:envmxdIzc
$C2/2610 85 95       STA $95    [$00:0295]   A:00DB X:0038 Y:001A P:envmxdIzc
$C2/2612 85 9D       STA $9D    [$00:029D]   A:00DB X:0038 Y:001A P:envmxdIzc
$C2/2614 BF 54 BC D0 LDA $D0BC54,x[$D0:BC8C] A:00DB X:0038 Y:001A P:envmxdIzc
$C2/2618 85 97       STA $97    [$00:0297]   A:8E86 X:0038 Y:001A P:eNvmxdIzc
$C2/261A BF 56 BC D0 LDA $D0BC56,x[$D0:BC8E] A:8E86 X:0038 Y:001A P:eNvmxdIzc
$C2/261E 85 99       STA $99    [$00:0299]   A:6200 X:0038 Y:001A P:envmxdIzc
$C2/2620 BF 58 BC D0 LDA $D0BC58,x[$D0:BC90] A:6200 X:0038 Y:001A P:envmxdIzc
$C2/2624 85 9B       STA $9B    [$00:029B]   A:1400 X:0038 Y:001A P:envmxdIzc
$C2/2626 A0 00 60    LDY #$6000              A:1400 X:0038 Y:001A P:envmxdIzc
$C2/2629 A6 97       LDX $97    [$00:0297]   A:1400 X:0038 Y:6000 P:envmxdIzc
$C2/262B A9 7F 00    LDA #$007F              A:1400 X:8E86 Y:6000 P:eNvmxdIzc

Decompression starts at $C2/2636. Decrompression:

public class DecompBoss {

    int now, last, code, decompByte;
    int[] data;
    int[] decomp;

    public void setData(int[] data){
        this.data = data;
    }

    public void decomp(int length){
        decomp = new int[length];
        now = 0;
        last = 0;
        decompByte = 0;
        for(int dataByte=0; data.length > dataByte; dataByte++){
            code = data[dataByte];
            System.out.println("Decompress code: " + code);
            for(int counter = 0;counter < 8; counter++){
                code = code * 2;
                if(code > 255){
                    dataByte++;
                    code = code-256;
                    decomp[decompByte] = data[dataByte];
                    last = now;
                    now = data[dataByte];
                }
                else{
                    decomp[decompByte] = last;
                    last = now;
                    now = decomp[decompByte];
                }
                decompByte++;
            }
        }
    }

    public void out(){
        System.out.println(" ");
        for(int x=0; decomp.length > x; x++){
            if(x % 16 == 0){
                System.out.println(" ");
            }
            System.out.print(Integer.toHexString(decomp[x])+" ");
        }
        System.out.println(" ");
    }
}

Examples

Example: 5B (Length)

0B 01 03 01 FF 06 02 0D 04 1B 08 16 01 C2 00 00
01 FF 02 01 04 03 08 07 00 0F FF 1E 00 F3 12 86
84 26 04 8F F6 16 E4 12 E0 FF 00 00 12 0C 84 78
04 F8 03 00 FC 4B 00 0F 11 07 FF 33 0F 79 39 63
20 EF 6F C3 00 00 0E 0F F9 1F 1F 07 3F 1F 7F CA
00 00 E0 58 F7 14 A0 CA F0 D0 E6 68

Uncompressed:

00 00 00 00 01 00 03 01 06 02 0D 04 1B 08 16 01
00 00 00 00 00 00 01 00 02 01 04 03 08 07 00 0F
1E 00 F3 12 86 84 26 04 F6 04 F6 04 16 E4 12 E0
00 00 12 0C 84 78 04 F8 04 F8 04 F8 04 F8 00 FC
00 00 00 00 0F 00 11 07 33 0F 79 39 63 20 EF 6F
00 00 00 00 00 00 0E 0F 1F 1F 07 3F 1F 3F 1F 7F
00 00 00 00 E0 00 58 00 14 A0 CA F0 CA D0 E6 68
2B
(  ) E0E0           (F0) F8F8FCFC
(EF) 0F0073801FFF03 (E0) 030000
(17) 0F7F0303       (C0) 0000
(BF) FCC70419E1C6F8 (FF)E37C791E190E0906

000000000000E0E0 F8F8FCFCFCFCFCFC
0F007300801FFF03 0300000000000000
0000000F007F0303 0000000000000000
FC00C70419E1C6F8 E37C791E190E0906

---------------------------------

2C
(  ) 04F801FEC0FF (FF) 607F181F080F0007
(6F) 0080C0806040 (FE) 30209810CC0084
(8B) 00804080     (FD) 20C010E000F0F8

000004F801FEC0FF 607F181F080F0007
00008000C0806040 30209810CC008400
0000000080004080 20C010E000F000F8

---------------------------------

05
(2F) 183E182706

0000000000000000 0000000000000000
0000000000000000 0000000000000000
0000000000000000 000018003E182706

Seiken Densetsu 2 Map Compression / 聖剣伝説2 マップ圧縮

This describe the compression used on maps.

Data Structure / データ構造

$00  1st byte   = (Numbers in 1st byte / 2) + 1 = Horizontal Size
$01  2nd byte   = (Numbers in 2nd byte / 2) + 1 = Vertical Size
$02  3rd byte ~ = Compressed Data

$00  1バイト目  = [1 バイト目の数値 / 2] + 1 = "横の大きさ"
$01  2バイト目  = [2 バイト目の数値 / 2] + 1 = "縦の大きさ"
$02  3バイト目- = 圧縮部分

Compression Code List / 圧縮コード一覧

XX YY ZZ ...

XX = 0x00-0xBF (Single Byte Code XX / XX の 1 バイトコード)

Simply outputs the value of XX. XX の値をそのまま書き込む

XX = 0xC0-0xDF (Single Byte Code XX / XX の 1 バイトコード)

Bits 3-4 of XX + 1 are the number of bytes of memory before.
Bits 0-2 of XX + 1 are the byte write.
(“XX の bit3-4” + 1) バイト前のメモリーの数値を
(“XX の bit0-2” + 1) バイト書き込む

XX = 0xE0 (2-byte Code XX YY / XX YY の 2 バイトコード)

{ (“Bit 7 of YY” + 1 ) × 0x80 } previous bytes from memory, (“Bits 0-6 of YY” + 1) are bytes to reference.
{ (“YY の bit7” + 1 ) × 0x80 } バイト前のメモリーから, (“YY の bit0-6” + 1) バイト参照する

XX = 0xE1-0xE7 (Single Byte Code XX / XX の 1 バイトコード)

0x80 previous bytes from memory, (“Bits 0-2 of XX” + 1) are bytes to reference.
0x80 バイト前のメモリーから, (“XX の bit0-2” + 1) バイト参照する

XX = 0xE8-0xEF (2-byte Code XX YY / XX YY の 2 バイトコード)

{ (“Bits 0-2 of XX”) × 2 + “Bit 7 of YY” + 1 } previous bytes from memory, (“Bits 0-6 of YY” + 1) are bytes to reference.
{ (“XX の bit0-2”) × 2 + “YY の bit7” + 1 } バイト前のメモリーから, (“YY の bit0-6” + 1) バイト参照する.

XX = 0xF0 (2-byte Code XX YY / XX YY の 2 バイトコード)

This code will vary depending on the value of YY.

YY < 0x80

0x01 previous bytes of memory, incrementing by 1, (“Bits 0-6 of YY” + 1) bytes to write.
Example: 0x60 61 62 63 64 65 66 67 68 69 … and so on. For a length of 10, so 10 consecutive in total.
0x01 バイト前のメモリーの数値を, 1 ずつ加算しながら, (“YY の bit0-6” + 1) バイト書き込む.
(60 / 61 62 63 64 65 66 67 68 69 …など.計10連続以上の場合)

YY ≥ 0x80

0x01 previous bytes of memory, decrementing by 1, (“Bits 0-6 of YY” + 1) bytes to write.
Example: 0x5C 5B 5A 59 … and so on. For a length of 3, so 3 consecutive in total.
0x01 バイト前のメモリーの数値を, 1 ずつ減算しながら, (“YY の bit0-6” + 1) バイト書き込む.
(5C / 5B 5A 59 … など.計3連続以上の場合)

XX = 0xF1-0xF7 (Single Byte Code XX / XX の 1 バイトコード)

0x01 previous bytes of memory, incrementing by 1, (“Bits 0-2 of XX” + 1) bytes to write.
Example: 0x60 61 62 … and so on. 2 ~ 9 consecutive times in total.
0x01 バイト前のメモリーの数値を, 1 ずつ加算しながら, (“XX の bit0-2” + 1) バイト書き込む.
(60/61 62 …等に使われる.計2~9連続の場合)

XX = 0xF8-0xFF

Unknown
Rarely Used? / 滅多に使われない?

Compression Priority, Prediction / 圧縮優先度 / 予想

  1. 0xC0-0xEF - The most efficient, if this isn’t efficient go to 2. / のうち 最も効率がいいもの (効率がよくない場合は下へ)
  2. 0xF0-0xF7 - The most efficient, if this isn’t efficient go to 3. / のうち 最も効率がいいもの (効率がよくない場合は下へ)
  3. 0x00-0xBF - Direct Write / の直値書き込み

Raw Format Parsing

This is a less systematic way of doing what the code above does.
Symbol (prevByteN) indicates the value of a byte processed in the past. For (N=1), the last byte before this command; (N=2), the byte before (N=1); and so on. These work based on the decompressed results of past commands, not the compressed commands themselves. N is a decimal value.
The first two bytes of a map specify width and height, respectively. To convert them to real values, divide each byte by two and add one.
Map data is pointed to from a table at D0200.

Compression Codes

CodeFunctionDescription / Example
B1Indicates a “stationary door” tile.How door details (destination, tile graphic, etc) are specified is unknown.
B4Indicates a “walking door” tile.These are seen with town entrances; you step on a tile and lose control.
As your characters automatically walk in/out of town for you. Door details, as with B1, are unknown.
C0Fill the next byte with (prevByte1).
C1Fill the next 2 bytes with (prevByte1).
C2Fill the next 3 bytes with (prevByte1).
C3Fill the next 4 bytes with (prevByte1).
C4Fill the next 5 bytes with (prevByte1).
C5Fill the next 6 bytes with (prevByte1).
C6Fill the next 7 bytes with (prevByte1).
C7Fill the next 8 bytes with (prevByte1).
C8Fill the next byte with (prevByte2).
C9Fill the next 2 bytes with (prevByte2).
CAFill the next 3 bytes with (prevByte2).
CBFill the next 4 bytes with (prevByte2).
CCFill the next 5 bytes with (prevByte2).
CDFill the next 6 bytes with (prevByte2).
CEFill the next 7 bytes with (prevByte2).
CFFill the next 8 bytes with (prevByte2).
D0Fill the next byte with (prevByte3).
D1Fill the next 2 bytes with (prevByte3).
D2Fill the next 3 bytes with (prevByte3).
D3Fill the next 4 bytes with (prevByte3).
D4Fill the next 5 bytes with (prevByte3).
D5Fill the next 6 bytes with (prevByte3).
D6Fill the next 7 bytes with (prevByte3).
D7Fill the next 8 bytes with (prevByte3).
D8Fill the next byte with (prevByte4).
D9Fill the next 2 bytes with (prevByte4).
DAFill the next 3 bytes with (prevByte4).
DBFill the next 4 bytes with (prevByte4).
DCFill the next 5 bytes with (prevByte4).
DDFill the next 6 bytes with (prevByte4).
DEFill the next 7 bytes with (prevByte4).
DFFill the next 8 bytes with (prevByte4).

For the following codes XX = 7F or XX = FF will fill 128 bytes.

CodeFunction
E0 XX (XX = 00-7F)Repeat (XX + 1) bytes from 1 row above the current tile (0x80 previous in RAM).
E0 XX (XX = 80-FF)Repeat (XX + 1) bytes from 2 rows above the current tile (0x100 previous in RAM).
E1Repeat 2 bytes from the previous row (0x80 previous in RAM)
E2Repeat 3 bytes from the previous row (0x80 previous in RAM)
E3Repeat 4 bytes from the previous row (0x80 previous in RAM)
E4Repeat 5 bytes from the previous row (0x80 previous in RAM)
E5Repeat 6 bytes from the previous row (0x80 previous in RAM)
E6Repeat 7 bytes from the previous row (0x80 previous in RAM)
E7Repeat 8 bytes from the previous row (0x80 previous in RAM)

For the following codes:

  • XX = 7F or XX = FF will fill 128 bytes.
  • XX = 00-7F: use the lower prevByteN value (odd values)
  • XX = 80-FF: use the higher prevByteN value (even values)

Important Note: These functions can and will collide with themselves. Take, say, E8 02; it repeats prevByte1, and then hits itself. So it gets prevByte1 again, and hits itself again… this isn’t an infinite loop due to the behavior of the argument - after XX + 1 (in this case, 3) bytes, it stops dead. Pretty nifty.

CodeFunction
E8 XXRepeat the decompressed data from (prevByte1/2) forward, filling (XX + 1) spaces.
E9 XXRepeat the decompressed data from (prevByte3/4) forward, filling (XX + 1) spaces.
EA XXRepeat the decompressed data from (prevByte5/6) forward, filling (XX + 1) spaces.
EB XXRepeat the decompressed data from (prevByte7/8) forward, filling (XX + 1) spaces.
EC XXRepeat the decompressed data from (prevByte9/10) forward, filling (XX + 1) spaces.
ED XXRepeat the decompressed data from (prevByte11/12) forward, filling (XX + 1) spaces.
EE XXRepeat the decompressed data from (prevByte13/14) forward, filling (XX + 1) spaces.
EF XXRepeat the decompressed data from (prevByte15/16) forward, filling (XX + 1) spaces.

The first value filled for all of these codes is (prevByte1 + 1).

CodeFunction
F0 XXFill the next (XX + 1) bytes, the value incrementing with each byte.
F1Fill the next 2 bytes, the value incrementing with each byte.
F2Fill the next 3 bytes, the value incrementing with each byte.
F3Fill the next 4 bytes, the value incrementing with each byte.
F4Fill the next 5 bytes, the value incrementing with each byte.
F5Fill the next 6 bytes, the value incrementing with each byte.
F6Fill the next 7 bytes, the value incrementing with each byte.
F7Fill the next 8 bytes, the value incrementing with each byte.

If the codes breach the width value of the map, the following tiles are placed automatically on the next line; auto-wrap, in a sense.

Errors in Decompression

These are known errors in the postulated compression scheme above (mismatches between WRAM and prediction).

AreaLengthAssociated Tile / Tiles
2084 (0x824)1 byteElder’s House door
2448 (0x990)1 bytePotos northwest house door
2948 (0xB84)1 bytePotos west exit
3076 (0xC04)1 bytePotos west exit
3099 (0xC1B)1 bytePotos bar door
3613 - 3615 (0xE1D - 0xE1F)3 bytesHole to Mantis Ant’s lair (event-based map change)
3741 - 3743 (0xE9D - 0xE9F)3 bytesHole to Mantis Ant’s lair (event-based map change)
3853 (0xF0D)1 bytePotos item shop door
4882 (0x1312)1 bytePotos inn door
5409 - 5410 (0x1521 - 0x1522)2 bytesPotos south exit

Tileset 16x16 Compression

16x16 Tileset Compression Commands

  00  Copy Last Tile Entirely
  01  8-bit Increment on Tile Index Value of Last Tile
  10  8-bit Decrement on Tile Index Value of Last Tile

1111 XXXXXXXX XXXXXXXX  Specify entire tile data
 110 XXXXXXX:           Add 7-bit signed value XXXXXXX to previous tile's tile index, 
                        and use that
1110 XXXX YYYYYY        Change tile flags with XXXX as follows, 
                        and add 6-bit signed value YYYYYY to previous tile's tile index.

0PPP: Change Palette to PPP
1FFF: Change Flags:
        Vertical Flip
        Horizontal Flip
        Alt. BG

Icon Compression

The compression is nothing special really. The ratio of compressed to decompressed data is always 3:4. Basically each sprite tile consists of 0x18 bytes, which can be divided into 3 byte subsections. When I look at 4BPP graphics in a hex editor, to me the most intuitive way is to view each 8 pixel line as a square. Luckily the developers at Squaresoft shared my point of view so it was fairly easy to understand what they were doing. Demonstration using random hex values:

$000000: FF 7F 0F 07 FF 7F 0F 07 FF 7F 0F 07 FF 7F 0F 07 
$000010: 3F 1F 03 01 3F 1F 03 01 3F 1F 03 01 3F 1F 03 01 

For simplicity’s sake, #$XX will refer to a literal value, whereas $XX will refer to a memory location with the given address.

The first line of the image data is determined by the values at $00, $01, $10, and $11. The next line is determined by that of $02, $03, $12, and $13. If you look at the example above you can see that each line is therefore a 2 byte by 2 byte square.

Suppose we wanted the color index of the first (top left pixel). We’ll take {FF 7F, 3F 1F} and examine the left most bit (MSB) of each byte. With #$FF the left most bit has value 1. With #$7F the MSB is 0, same for #$3F and #$1F. Thus the color index for the top left pixel is 1. Why? The MSB of $00 corresponds to bit zero of the color index, the MSB of $01 corresponds to bit one of the color index, the MSB of $10 … corresponds to bit two of the color index. We can then see that the color index for the next pixel to the right would be 1 + (1 << 1) + (0 << 2) + (0 << 3) = 3. (Note: instead of using the MSB, for the second pixel we use the next bit to the right. For the third pixel you use the next bit to the right after that, and so on.)

Now what if each line always looked like this:

XX YY
ZZ 00

Where the letters are arbitrary bits, but the fourth byte is always zero. This effectively reduces the size of the tile’s colors to 3BPP (ranging from 0 to 7). But that leaves lots of redundant space, so why not compress the data into 3 byte chunks instead of 4 byte chunks? That’s exactly what Squaresoft did, but they made it a little more complicated.

They store it in a 3BPP format with color indices ranging from 0 to 6. 7 corresponds to 0 before any addition is done ( that’s coming up). They made it more complicated by making some of the sprites have all their indices increase by 0, 5, or A, depending on the sprite. Why would you do this? It’s easy to see - Tiles of the first type use the color 0 (transparent) and colors 1 through 6. Tiles of the next type use the color 0, and colors 5 through B, the last type uses the color 0, and colors A through F. Thus you only need one palette entry (16 colors) to handle three different kinds of sprites. Very economical, b/c you can not only save space on graphics by compressing them in the rom, you can partition a palette entry as well.

Anyways, when I did my decompression routine, I ignored the possibility that the finished product might have 5 or A added to all its indices. Why? Because the relationship between all the color values would stay the same, and thus still be recognizable in the tile editor. In the rom the tiles are stored in a neutral format that doesn’t really know if it has 0, 5, or A added to them later, so it doesn’t really matter.

I know I’m rambling quite a bit, but here’s a diagram of what happens:

Sample compressed first line of a tile: FF F0 F0.

First what happens is this gets written to the rectangular grid:

FF F0
F0 00

Then we go through each pixel, starting from left to right, and calculate the color index. The color indices going from left to right should be 7, 7, 7, 7, 1, 1, 1, 1

The decompression algorithm asks us to change 7’s into zeroes. Anything else gets left alone. The result:

0F 00
00 00

Recompressing is simply changing sevens back into zeroes, then ignoring the fourth byte and packing it back into three byte segments. The LSR, ROL, ASL crap is basically an algorithm that does that. It’s probably not the cleanest way to do it. If I were writing code to handle this, I think I’d probably use TSB and TRB and what not.

Deccompression / Recompression Code

// Small program designed to simply load/save icon graphics from Secret of Mana
// Psuedo C Code
unsigned char data[0x4200];
unsigned char output[0x5800];
unsigned char comp[0x80];
unsigned char uncomp[0x80];
unsigned char carry = 0;
unsigned char a_reg = 0;
unsigned char nextcarry = 0;

int counter = 0;
int offset = 0;
int tile = 0;
int loop = 0;
int sprite = 0;

void decompress(){
  for(tile = 0; sprite < 0xB0 ; sprite++){
    offset = 0x60 * sprite;

    // This for loop grabs the compressed data for the four tiles of the current sprite.
    for(counter = 0; counter < 0x80 ; counter += 2, offset += 3){
      comp[counter]        = data[offset];
      comp[counter + 1]    = data[offset + 1];
      comp[counter + 0x10] = data[offset + 2];
      comp[counter + 0x11] = 0;

      tile += 2;

      if(tile == 0x10){
        tile = 0;
        counter += 0x10;
      }
    }

    tile = 0;
                // This for loop does a number of manuevers to decompress the data.
    for(counter = 0; counter < 0x80 ; counter += 2){
      loop = 8;

      loopback:

      a_reg = 0;
      carry = 0;

      // ASL $10, X; {
      carry = (comp[counter + 0x10] & 0x80) ? 1 : 0;
      comp[counter + 0x10] <<= 1;
      //}

      // ROL A; {
      nextcarry = (a_reg & 0x80) ? 1 : 0;
      a_reg = (a_reg << 1) + carry;
      carry = nextcarry;
      //}

      // ASL $01, X; {
      carry = (comp[counter + 1] & 0x80) ? 1 : 0;
      comp[counter + 1] <<= 1;
      //}

      // ROL A; {
      nextcarry = (a_reg & 0x80) ? 1 : 0;
      a_reg = (a_reg << 1) + carry;
      carry = nextcarry;
      //}

      // ASL $00, X; {
      carry = (comp[counter] & 0x80) ? 1 : 0;
      comp[counter] <<= 1;
      //}

      // ROL A; {
      nextcarry = (a_reg & 0x80) ? 1 : 0;
      a_reg = (a_reg << 1) + carry;
      carry = nextcarry;
      //}

      if(a_reg == 0x07){
        a_reg = 0;
      }
      else{
        carry = 0;
      }

      // Now decompress the tiles into the uncomp buffer
      // LSR A; {
      carry = (a_reg & 0x01) ? 1 : 0;
      a_reg >>= 1;
      //}

      // ROL $20, X; {
      nextcarry = (uncomp[counter] & 0x80) ? 1 : 0;
      uncomp[counter] = (uncomp[counter] << 1) + carry;
      carry = nextcarry;
      //}

      // LSR A; {
      carry = (a_reg & 0x01) ? 1 : 0;
      a_reg >>= 1;
      //}

      // ROL $21, X; {
      nextcarry = (uncomp[counter + 1] & 0x80) ? 1 : 0;
      uncomp[counter + 1] = (uncomp[counter + 1] << 1) + carry;
      carry = nextcarry;
      //}

      // LSR A; {
      carry = (a_reg & 0x01) ? 1 : 0;
      a_reg >>= 1;
      //}

      // ROL $30, X; {
      nextcarry = (uncomp[counter + 0x10] & 0x80) ? 1 : 0;
      uncomp[counter + 0x10] = (uncomp[counter + 0x10] << 1) + carry;
      carry = nextcarry;
      //}

      // LSR A; {
      carry = (a_reg & 0x01) ? 1 : 0;
      a_reg >>= 1;
      //}

      // ROL $31, X; {
      nextcarry = (uncomp[counter + 0x11] & 0x80) ? 1 : 0;
      uncomp[counter + 0x11] = (uncomp[counter + 0x11] << 1) + carry;
      carry = nextcarry;
      //}

      loop--;

      if(loop > 0){
        goto loopback;
      }

      tile += 2;

      if(tile == 0x10){
        tile = 0;
        counter += 0x10;
      }
    }
    memcpy(output + (sprite * 0x80), uncomp, 0x80);
  }
  // Write output to file, 0x5800 bytes in size.
}

void recompress(){
  // Now to save import the graphics into the rom. Working in the 0x5800 buffer now.
  for(sprite = 0; sprite < 0xB0; sprite++){
    offset = (sprite * 0x80);

    memcpy(uncomp, output + offset, 0x80);

    a_reg = 0;
    carry = 0;

    for(counter = 0; counter < 0x80; counter += 2){
      loop = 8;

      loopback2:

      // LSR $31, X; {
      nextcarry = (uncomp[counter + 0x11] & 0x01) ? 1 : 0;
      uncomp[counter + 0x11] >>= 1;
      carry = nextcarry;
      //}

      // ROL A; {
      nextcarry = (a_reg & 0x80) ? 1 : 0;
      a_reg = (a_reg << 1) + carry;
      carry = nextcarry;
      //}

      // LSR $30, X; {
      nextcarry = (uncomp[counter + 0x10] & 0x01) ? 1 : 0;
      uncomp[counter + 0x10] >>= 1;
      carry = nextcarry;
      //}

      // ROL A; {
      nextcarry = (a_reg & 0x80) ? 1 : 0;
      a_reg = (a_reg << 1) + carry;
      carry = nextcarry;
      //}

      // LSR $21, X; {
      nextcarry = (uncomp[counter + 1] & 0x01) ? 1 : 0;
      uncomp[counter + 1] >>= 1;
      carry = nextcarry;
      //}

      // ROL A; {
      nextcarry = (a_reg & 0x80) ? 1 : 0;
      a_reg = (a_reg << 1) + carry;
      carry = nextcarry;
      //}

      // LSR $20, X; {
      nextcarry = (uncomp[counter] & 0x01) ? 1 : 0;
      uncomp[counter] >>= 1;
      carry = nextcarry;
      //}

      // ROL A; {
      nextcarry = (a_reg & 0x80) ? 1 : 0;
      a_reg = (a_reg << 1) + carry;
      carry = nextcarry;
      //}

      if(a_reg == 0){
        a_reg = 7;
      }

      // Now start putting things back into the "compressed" buffer.
      // LSR A; {
      carry = (a_reg & 0x01) ? 1 : 0;
      a_reg >>= 1;
      //}

      // ROR $00, X; {
      nextcarry = (comp[counter] & 0x01) ? 1 : 0;
      comp[counter] >>= 1;
      comp[counter] |= (carry << 7);
      carry = nextcarry;
      //}

      // LSR A; {
      carry = (a_reg & 0x01) ? 1 : 0;
      a_reg >>= 1;
      //}

      // ROR $01, X; {
      nextcarry = (comp[counter + 1] & 0x01) ? 1 : 0;
      comp[counter + 1] >>= 1;
      comp[counter + 1] |= (carry << 7);
      carry = nextcarry;
      //}

      // LSR A; {
      carry = (a_reg & 0x01) ? 1 : 0;
      a_reg >>= 1;
      //}

      // ROR $10, X; {
      nextcarry = (comp[counter + 0x10] & 0x01) ? 1 : 0;
      comp[counter + 0x10] >>= 1;
      comp[counter + 0x10] |= (carry << 7);
      carry = nextcarry;
      //}

      // LSR A; {
      carry = (a_reg & 0x01) ? 1 : 0;
      a_reg >>= 1;
      //}

      loop--;

      if(loop > 0){
        goto loopback2;
      }

      tile += 2;

      if(tile == 0x10){
        tile = 0;
        counter += 0x10;
      }
    }

    tile = 0;

    offset = (sprite * 0x60);

    for(counter = 0; counter < 0x80; counter += 2, offset += 3){
      data[offset]     = comp[counter];
      data[offset + 1] = comp[counter + 1];
      data[offset + 2] = comp[counter + 0x10];

      tile += 2;

      if(tile == 0x10){
        tile = 0, counter += 0x10;
      }
    }
  }
  // Write the data buffer to the ROM file at 0x128400, 0x4200 bytes overwritten.
}

Text

Script Pointers

C90000 contains the first 1024 script pointers (based from C90000) and CA0000 contains the remaining pointers, for a total of 2561. There are only 2048 scripts, the rest are texts used in status screens etc.

Script Commands

ValueTypeDescription
00 - 4FScript CommandScript Command Range
00Script CommandEnd
02Script CommandReturn to Calling Script
03Script CommandBring Party
04Script CommandInvisibility Toggle
05Script CommandInvisibility Toggle
06Script CommandGet Ready
08Script CommandComplete Actions
0EScript CommandSell
0FScript CommandUpgrade Weapons
10-17 XXScript CommandJump to Script XX
18-1B XXScript CommandGo to Room XX
1C XXScript CommandFlight Command XX
1D XXScript CommandCannon Flight Command XX
1E XXScript CommandGet Item XX
1F 00Script CommandName Boy
1F 01Script CommandName Girl
1F 02Script CommandName Sprite
1F 03Script CommandShow Forgotten Continent
1F 04Script CommandShow Mana Fortress
1F 05Script CommandNothing
1F 06Script CommandSave
1F 07Script CommandReset
1F 08-0BScript CommandUpdate Weapons (All the Same)
1F 0CScript CommandGet Chest Item
1F 10Script CommandUnknown
1F 0D-0F, 11-FFScript CommandEnd Game
20-27 XXScript CommandCall Script XX
28 00Script CommandWait for Button Press
28 xxScript CommandWait 5 * XX Frames
29 xxScript CommandIncrease Counter by XX
2A xxScript CommandDecrease Counter by XX
2B xxScript CommandAdd a Character to the Party
2C xxScript CommandRemove a Character to the Party
2D 00Script CommandFlash
2D 01Script CommandNo Flash
2D 02Script CommandVertical Shake
2D 03Script CommandHorizontal Shake
2D 04Script CommandNo Shake
2D 05 XX XXScript CommandFade Palette
2D 06 XX XXScript CommandFade Palette (Reverse)
2D 07Script CommandFade to Normal
2D 08Script CommandCenter Main Character
2E XXScript CommandBuy
2F XXScript CommandHeal (All, Boy, Girl, or Sprite)
30 XX XXScript CommandSet Counter
31 XX XXScript CommandAction
32 XX XXScript CommandWalk (Uppermost 2 bits of the 2nd byte are the direction)
33 XX XXScript CommandSet Background Color
34 XX XXScript CommandLoop Action
35Script CommandUpdate HPs
36 XX XXScript CommandAdd Money XX XX
37 XX XXScript CommandSubtract Money XX XX
38 XXScript CommandSkip 2 bytes ahead if Player XX isn’t in Party
39 XX XX XXScript CommandSet Character Data XX XX XX (out of the last 256)
3A XX XX XXScript CommandSet Animation XX XX XX
40 XX XX XX XXScript CommandPlay Sound XX XX XX XX
42 AA BCScript CommandSkip 2 bytes ahead if variable AA is not between B and C
49 AA BB CCScript CommandSkip 2 bytes ahead if byte BB of character AA’s data is less than CC
4A AA BB CCScript CommandSkip 2 bytes ahead if byte BB of character AA’s data is greater than or equal to CC
4B AA BB CCScript CommandSkip 2 bytes ahead if byte BB of character AA’s data has any of the bits specified in CC
4C AA BB CCScript CommandPointless Command
4D AA BB CCScript CommandPointless Command 2
4E AA BB CCScript CommandSkip 2 bytes ahead if byte BB of character AA’s data is different from CC
4FScript CommandFreeze Game
50 - 5FText CommandText Command Range
50Text CommandOpen
51Text CommandClose
52Text CommandClear
54 XXText CommandEnemy XX Name
55 XXText CommandWeapon XX Name
56 XXText CommandMagic XX Name
57 XXText CommandPlayer XX Name
58Text CommandDecision
59 XXText CommandSet X Position to XX
5A XXText CommandSet Choice to XX
5BText CommandSelect
5DText CommandOpen Money
5EText CommandClose Money
5FText CommandPrint Money
60 - 7CDTE CommandDTE Range
7DEnding TextStart of ending text (in ASCII, only capital letters, break lines with 7F).
7EEnding TextEnd of Ending Text
7FEnding TextLine Break
80 - D2ASCII CharacterASCII Character Range
80ASCII Character(Space)
81 - 9AASCII Charactera-z
9B - B4ASCII CharacterA-Z
B5 - BEASCII Character0-9
BF - CDASCII Character. , / ' \'ab \'bb : - % ! & ? ( )
CE - D2ASCII CharacterOther Characters
D3 - FFDTE CommandDTE Range

Translations

This is a translation of the spells, items, equipment, and locations.

Locations

JapaneseRomajiEnglishWoolsey
ポトス村potosumuriPotos VillagePotos Village
ニキータの店nikitanotamaNikita’s PlaceNeko’s
水の神殿mizunoshindenWater ShrineWater Palace
パンドーラ城下街pando-rajuukamachiCastle Town PandoraPandora
キッポ村kippomuriKippo VillageKippo Village
ドワーフの村dowa-funomuriDwarfish VillageDwarf Village
妖魔の森youmanomoriHaunted ForestHaunted Forest
魔女の城majonoshiroEnchantress’s CastleWitch’s Castle
モーグリの村mo-gurinomuriMowgli VillageMoogle Village
妖精の村youseinomuriFaerie VillageSprite Village
風の神殿kazenoshindenWind ShrineWind Palace
マタンゴ王国mantangooukokuMatango KingdomMatango
氷のトド村koorinotodomuriIcicle Village TodoTodo Village
サンドシップsandoshippuSandshipSandship
カッカラ王国kakkaraoukokuKakkara KingdomKakkara
帝国サウスタウンteikokusausutaunImperial SouthtownSouthtown
帝国ノースタウンteikokuno-sutaunImperial NorthtownNorthtown
黄金の街ougonnomachiGolden CityGold City
月の神殿tsukinoshindenMoon ShrineMoon Palace
マンダーラmanda-raMandalaMandala
山道yamamachiMountain PathMOUNTAIN ROAD
賢者のどうくつkenjanodoukutsuSage’s CaveSage’s Cave
タスマニカ共和国tasumanikakyouwakokuTasmanican RepublicTasnica
木の神殿kinoshindenTree ShrineTree Palace
失われた大陸ushinawaretatairikuLost ContinentLost Continent
マナの聖地mananoseichiMana HolylandPure Land
マナの要塞mananoyousaiMana FortressMana Fortress
皇帝の城kouteinoshiroImperial CastleEmpire Castle
氷の森koorinomoriIcicle ForestFrosty Forest
ガイアのヘソgaianohesoGaia’s NavelGaia’s Navel

#### Weapons ####

JapaneseRomajiEnglishWoolsey
カイザーナックルkaiza-nakkuruKaiser KnuckleSpike Knuckle
パワーグローブpawa-guro-buPower GlovePower Glove
モーグリのツメmo-gurinotsumeMowgli’s ClawMoogle Claws
チャクラハンドchakurahandoChakra HandChakra Hand
メタルグローブmetarugro-buMetal GloveHeavy Glove
ハイパーフィストhaipa-fisutoHyper FistHyper Fist
グリフォンのツメgurifonnotsumeGryphon’s ClawGriffin Claws
ドラゴンのツメdoragonnotsumeDragon’s ClawDragon Claws
オーラグローブo-raguro-buAura GloveAura Glove
さびた聖剣sabitaseikenRusted Holy SwordRusty Sword
ディフェンダーdifenda-DefenderBroad Sword
クサナギの剣kusanaginokenImperial SwordHerald Sword
オリハルコンの剣oriharukonnokenOrichalcum SwordClaymore
エクスカリバーekusukariba-ExcaliburExcalibur
マサムメmasamuneMasamuneMasamune
ズールトの剣zu-rutonokenSurt’s SwordGigas Sword
ドラゴンバスターdoragonbasuta-Dragon BusterDragon Buster
マナの剣mananokenMana SwordMana Sword
ドワーフのオノdowa-funoonoDwarf’s AxeWatt’s Axe
バトルアックスbatoruakkusuBattleaxeLode Axe
ブローバburo-baBlowbackStout Axe
フランシスカfuranshisukaFranciscaBattle Axe
ゴールドアックスgo-rudoakkusuGold AxeGolden Axe
ウェアバスターueabasuta-WerebusterWere-Buster
グレートアックスgure-toakkusuGreat AxeGreat Axe
魔人のオノakumajinFiend’s AxeGigas Axe
デビルアックスdebiruakksuDevil AxeDoom Axe
ブロンズランスburonzuransuBronze LanceSpear
スチールランスsuchi-ruransuSteel LanceHeavy Spear
妖魔のヤリyoumanoyariSpirit’s LanceSprite’s Spear
パルティザンparutizanPartisanPartisan
ハルバードharuba-doHalberdHalberd
サンゴのヤリsangonoyariCoral LanceOceanid Spear
巨人のヤリmyojinnoyariGiant’s LanceGigas Lance
ドラゴンランスdoragonransuDragon LanceDragon Lance
ダイダロスのヤリdaidarosunoyariDaedalus’s LanceDaedalus Lance
革のムチkawanomuchiLeather WhipWhip
ブラックウイップburakkuuippuBlack WhipBlack Whip
はやてのムチhayadenomuchiSwift WhipBackhand Whip
チェーンフレイルche-nfureiruChain FlailChain Whip
シルバーフレイルshiruba-fureiruSilver FlailFlail of Hope
モーニングスターmo-ningusuta-Morning StarMorning Star
ハンマーフレイルhanma-fureiruHammer FlailHammer Flail
ダイヤフレイルdaiyafureiruDiamond FlailNimbus Chain
ギガースフレイルgiga-sufureiruGigas FlailGigas Flail
ポロンの弓矢poronnoyumiyaPoron’s Bow & ArrowChobin’s Bow
鉄の弓矢tetsunoyumiyaIron Bow & ArrowShort Bow
ロングボウrongubouLongbowLong Bow
グレートボウgure-tobouGreatbowGreat Bow
銀の弓矢ginnoyumiyaSilver Bow & ArrowBow of Hope
エルフの弓矢erufunoyumiyaElf’s Bow & ArrowElfin Bow
ウイングボウuingubouWingbowWing Bow
ひっさつの弓矢hissatsunoyumiyaDeadly Bow & ArrowDoom Bow
ガルーダバスターgaruda-basuta-Garuda BusterGaruda Buster
ブーメランbu-maranBoomerangBoomerang
チャクラムchakuramuChakramChakram
鉄のブーメランginnobu-maranSilver BoomerangLode Boomerang
円月輪engetsurinFull Moon RingRising Sun
チタンブーメランchitanbu-maranTitanium BoomerangRed Cleaver
バグナグbagunaguBagh NakhCobra Shuttle
バトルフリスビーbatorufurisubi-Battle FrisbeeFrizbar
手裏剣shurikenShurikenShuriken
風魔手裏剣fuumashurikenFuma ShurikenNinja’s Trump
スピアsupiaSpearPole Dart
ジャベリンjaberinJavelinJavelin
サハギンのモリsahaginnomoriSahagin’s HarpoonLight Trident
トライデントtoraidentoTridentLode Javelin
シルバーピラムshiruba-piramuSilver PilumFork of Hope
チビデビルのモリchibidebirunomoriChibidevil’s HarpoonImp’s Fork
ルーンスピアru-nsupiaRune SpearElf’s Harpoon
ドラゴンスピアdoragonsupiaDragon SpearDragon Dart
バルキリースピアbarukiri-supiaValkyrie SpearValkyrian

Headgear

JapaneseRomajiEnglishWoolsey
バンダナbandanaBandanaBandanna
プリティリボンpuritiribonPretty RibbonHair Ribbon
ラビのぼうしrabinoboushiRabite’s CapRabite Cap
ヘッドギアheddogiaHeadgearHead Gear
羽ぼうしhaneboushiWing CapQuill Cap
鉄のカブトtetsunokabutoIron HelmetSteel Cap
金のかみかざりkinnokamikazariGolden HairpinGolden Tiara
アライグマハットaraikumahattoRaccoon HatRaccoon Cap
ポロビンフードporonfu-doPoron HoodQuilted Hood
タイガーキャップtaiga-kyappuTiger CapTiger Cap
サークレットsa-kurettoCircletCirclet
ルビーアーメットrubia-murettoRuby ArmetRuby Armet
ウニコヘルムunikoherumuUnicorn HelmUnicorn Helm
ドラゴンヘルムdoragonherumuDragon HelmDragon Helm
ダックヘルメットdakkuherumettoDuck HelmetDuck Helm
ニードルヘルムni-doruherumuNeedle HelmNeedle Helm
コカトリスヘルムkokatorisuherumuCockatrice HelmCockatrice Cap
デビルキャップdebirukyappuDevil CapAmulet Helm
グリフォンヘルムgurifonherumuGryphon HelmGriffin Helm
精霊の王冠seireinooukanSpirit’s DiademFaerie Crown

Armor

JapaneseRomajiEnglishWoolsey
革のツナギkawanotsunagiLeather OverallsOveralls
カンフー道着kanfu-dougiKung Fu DougiKung Fu Suit
チビっ子ローブchibikkoro-buMidget RobeMidge Robe
くさりのチョッキkusarinochokkiChain VestChain Vest
パンクスーツpankusu-tsuPunk SuitSpiky Suit
チャイナドレスchainadoresuChina DressKung Fu Dress
ハデなツナギhadenatsunagiGaudy OverallsFancy Overalls
銀のチェストginnochesutoSilver ChestplateChest Guard
黄金のベストougonnobesutoGolden VestGolden Vest
ルビーの胸あてrubi-nomuneakiRuby ChestplateRuby Vest
トラのぬいぐるみtoranonuigurumaTiger CostumeTiger Suit
タイガービキニtaiga-bikiniTiger BikiniTiger Bikini
魔法のヨロイmahounoyoroiMagic ArmorMagical Armor
トータスメイルto-tasumeiruTortoise MailTortoise Mail
バラのレオタードbaranoreota-doRose LeotardFlower Suit
バトルスーツbatorusu-tsuBattle SuitBattle Suit
プロテクターpurotekuta-ProtectorVestguard
バンパイアマントbanpaiamantoVampire MantleVampire Cape
プラズマスーツpurazumasu-tsuPlasma SuitPower Suit
精霊のマントseireinomantoSpirit’s MantleFaerie Cloak

Armwear

JapaneseRomajiEnglishWoolsey
精霊のうでわseireinouderoSpirit’s BangleFaerie’s Ring
エルボーパットerubo-paddoElbow PadElbow Pad
パワーリストpawa-risutoPower WristPower Wrist
コブラのうでわkoburanouderoCobra’s BangleCobra Bracelet
ウルフバンドurufubandoWolf BandWolf’s Band
銀のうでわginnouderoSilver BangleSilver Band
ゴーレムリングgo-remuringuGolem RingGolem Ring
スノーマンリングsuno-manringuSnowman RingFrosty Ring
オチューリングochu-ringuOchu RingIvy Amulet
金のブレスレットkinnoburesurettoGold BraceletGold Bracelet
プロテクトリングpurotekutoringuProtect RingShield Ring
ラピスのうでわrapisunouderoLapis BangleLazuri Ring
レジストリングrejisutoringuResist RingGuardian Ring
ガントレットgantorettoGauntletGauntlet
ニンジャのこてninjanokoteNinja BracerNinja Gloves
ドラゴンリングdoragonringuDragon RingDragon Ring
バイルダーリングbairuda-ringuBeholder RingWatcher Ring
チビデビルリングchibidebiruringuChibidevil RingImp’s Ring
デーモンリングde-monringuDemon RingAmulet Ring
リストバンドrisutobandoWristbandWristband

Items

JapaneseRomajiEnglishWoolsey
まんまるドロップmanmaridoroppuRound DropCandy
ぱっくんチョコpakkunchokuChomp ChocolateChocolate
ロイヤルゼリーroiyaruzari-Royal JellyRoyal Jam
魔法のくるみseireinokurumiSpirit WalnutFaerie Walnut
プイプイ草poipoikusaPoipoiwortMedical Herb
天使の聖杯tenshinoseihaiAngel’s GrailCup of Wishes
魔法のロープmahounoro-puMagic RopeMagic Rope
風の太鼓kazenotaikoWind DrumFlammie Drum
モーグリベルトmo-guriberutoMowgli’s BeltMoogle Belt
ちびっ子ハンマーchibikkohanma-Midget HammerMidge Mallet
タルtaruBarrelBarrel

Elementals

JapaneseRomajiEnglishWoolsey
ノームno-muGnomeGnome
ウンディーネundi-neUndineUndine
サラマンダーsaramanda-SalamanderSalamando
ジンjinJinnSylphid
ルナrunaLunaLuna
ドリアードdoria-doDryadDryad
シェイドsheidoShadeShade
ウィルオウィスプuiruouisupuWill’o’WispLumina

Spells

JapaneseRomajiEnglishWoolsey
アースクエイクa-sukueikuEarthquakeEarth Slide
ダイヤミサイルdaiyamisairuDiamond MissileGem Missle
スピードダウンsupi-dodaunSpeed DownSpeed Down
ストーンセイバーsuto-nsaiba-Stone SaberStone Saber
クイックkuikkuQuickSpeed Up
プロテクトpurotekutoProtectDefender
フリーズfuri-zuFreezeFreeze
アヒッドストームahiddosuto-muAcid StormAcid Storm
スポイトsupoitoSpoitEnergy Absorb
アイスセイバーaisusaiba-Ice SaberIce Saber
リフレッシュrifuresshuRefreshRemedy
ヒールウォーターhi-ruuo-ta-Heal WaterCure Water
ファイアボールfaiabo-ruFireballFireball
エクスプロードekusupuro-doExplodeExploder
ラーバウェイブra-baueibuLava WaveLava Wave
フレイムセイバーfureimusaiba-Flame SaberFlame Saber
ファイアカクテルfaiakakuteruFire CocktailFire Bouquet
ブレイズウォールbureizuuo-ruBlaze WallBlaze Wall
エアブラストeaburastoAir BlastAir Blast
サンダーボルトsanda-borutoThunderboltThunderbolt
サイレンスsairensuSilenceSilence
サンダーセイバーsanda-saiba-Thunder SaberThunder Saber
バルーンbaru-nBalloonBalloon
ディテクトditekutoDetectAnalyzer
ボディチェンジbodichenjiBody ChangeChange Form
アブソーブabuso-buAbsorbMagic Absorb
ルナティックrunatikkuLunaticLunar Magic
ムーンセイバーmu-nsaiba-Moon SaberMoon Saber
ラッシュrasshuRushLunar Boost
エナジーボールenaji-bo-ruEnergy BallMoon Energy
スリープフラワーsuri-pufurawa-Sleep FlowerSleep Flower
バーストba-sutoBurstBurst
マナmanaManaMana Magic
リバイブribaibuReviveRevivifier
カウンタマジックkauntamajikkuCounter MagicWall
イビルゲートibiruge-toEvil GateEvil Gate
ダークフォースda-kufo-suDark ForceDark Force
アンティマジックantimajikkuAnti-MagicDispel Magic
ホーリーセイバーho-ri-saiba-Holy SaberLight Saber
セイントビームsaintobi-muSaint BeamLucent Beam
ティンクルバリアtinkurubariaTinkle BarrierLucid Barrier

Monsters

JapaneseRomajiEnglishWoolsey
ラビrabiRabiteRabite
ビービーbi-biBee BeeBuzz Bee
マイコニドmaikonidoMyconidMushboom
ポロンporonPoronChobin Hood
バドフラワーbadofurawa-Bud FlowerLullabud
ガルフィッシュgarufisshuGalfishIffish
ゴブリンgoburinGoblinKid Goblin
あいすぱいaisupaiEye SpyEye Spy
グリーンスライムgurensuraimuGreen SlimeGreen Drop
スペクターsupekuta-SpecterSpecter
バットラーbattora-BattlerBlat
ゴブリンロードgoburnro-doGoblin LordGoblin
サハギンsahaginSahaginWater Thug
マジカルチェアmajikarucheaMagical ChairPolter Chair
ゴブリンガードgoburinga-doGoblin GuardMa Goblin
ダークスモッグda-kusumokkuDark SmokeDark Funk
クロウラーkuroura-CrawlerCrawler
プチポセイドンpuchiposaidonPetit PoseidonIce Thug
ゾンビzonbiZombieZombie
ガラシャgarashaGarashaKimono Bird
ラビリオンrabirionRabillionSilktail
ブラッドアウルburaddoauruBlood OwlNemesis Owl
モールベアmo-rubeaMolebearPebbler
バンプキンボムbanpukinbomuBumpkin BombPumpkin Bomb
デスクラブdesukurabuDeath CrabSteamed Crab
ユニコーンヘッドweniko-nheddoUnicorn HeadChess Knight
ウィザードアイuiza-doaiWizard EyeWizard Eye
ジャッカルjakkaruJackalHowler
ポロビンフットporobinfuttoPorobin FootRobin Foot
ガスクラウドgasukuraudoGas CloudLA Funk
ダークバットda-kubattoDark BatGrave Bat
ウェアウルフueaurufuWerewolfWerewolf
シャドウ X3shadou X3Shadow X3Shadow X3
イビルソードibiruso-doEvil SwordEvil Sword
ダークプリーストda-kupuri-sutoDark PriestTomato Man
マジックブックmajikkubukkuMagic BookMystic Book
デススコーピオンdesusuko-pionDeath ScorpionSand Stinger
ダックソルジャーdakkusoruja-Duck SoldierMad Mallard
タールマンta-rumanTallmanEmberman
レッドマシュマロreddomashumaroRed MarshmallowRed Drop
コカトリスkokatorisuCockatriceEggatrice
ボムビーbomubi-Bomb BeeBomb Bee
ダースマタンゴda-sumatangoDeath MatangoMushgloom
ブラッドパンジーburaddopanji-Blood PansyTrap Flower
キラーフィッシュkira-fisshuKiller FishDinofish
ミミックンmimikkunMr. MimicMimic Box
シャドウ X1shadou X1Shadow X1Shadow X1
ガラシャラムgarasharamuGarasharamKimono Wizard
ゴーストgo-sutoGhostGhost
メタルクロウラーmetarukuroura-Metal CrawlerMetal Crawler
スパイダーレッグsupaida-regguSpider LegSpider Legs
バイルダーbairuda-BeholderWeepy Eye
トータスナイトto-tasunaitoTortoise KnightShellblast
ビーストゾンビbi-sutozonbiBeast ZombieBeast Zombie
グールgu-ruGhoulGhoul
チビデビルchibidebiruChibidevilImp
ブルーババロアburu-babaroaBlue BavaroisBlue Drop
セイレーングレルsaire-ngureruSiren GrellMarmablue
デーモンヘッドde-monheddoDemon HeadFierce Head
グリフォンハンドgurifonhandoGryphon HandGriffin Hand
ニードリオンni-dorionNeedleonNeedlion
メタルクラブmetarukurabuMetal CrabMetal Crab
アーマーナイトa-ma-naitoArmor KnightArmored Man
シャドウ X2shadou X2Shadow X2Shadow X2
カオスソーサラーkaosuso-sara-Chaos SorcererEggplant Man
ダックジェネラルdakkujeneraruDuck GeneralCaptain Duck
グレネードボムgurene-dobomuGrenade BombNitro Pumpkin
タートルナイトta-torunaitoTurtle KnightTurtlance
ヘルウォーターheruuo-ta-HellwaterTsunami
バジリスクbajirisukuBasiliskBasilisk
グレムリンguremurinGremlinGremlin
メタルスコーピオmetarusukopioMetal ScorpioSteelpion
ニンジャninjaNinjaDark Ninja
メタルバイルダーmetarubairuda-Metal BeholderWhimper
ヘルハウンドheruhaundoHellhoundHeck Hound
サタンヘッドsatanheddoSatan HeadFiend Head
デビルマガジンdebirumagajinDevil MagazineNational Scar
ダークストーカーda-kusuto-ka-Dark StalkerDark Stalker
ダークナイトda-kunaitoDark KnightDark Knight
シェイプシフターsheipushifuta-ShapeshifterShape Shifter
ウルフデビルurufudebiruWolf DevilWolf Lord
エレメントソードerementoso-doElement SwordDoom Sword
ターミネーターta-mine-ta-TerminatorTerminator
マスターニンジャmasuta-ninjaMaster NinjaMaster Ninja
クリスタルオーブkurisutaruo-buCrystal OrbCrystal Orb
宝箱takarabakoTreasure ChestTreasure Chest

Bosses

JapaneseRomajiEnglishWoolsey
マンティスアントmantisuantoMantis AntMantis Ant
ルームガーダーru-maga-da-Room GaurderWall Face
バドbadoBudTropicallo
ミノタウロスminotaurosuMinotaurosMinotaur
タイガーキメラtaiga-kimeraTiger ChimeraSpikey Tiger
ジャバウォックjabauokkuJabberwockJabberwocky
アックスビークakkusubi-kuAxe BeakSpring Beak
フロストギガースfurosutogiga-suFrost GigasFrost Gigas
パックンドラゴンpakkundoragonChomp DragonSnap Dragon
マシンライダーmashinraida-Machine RiderMech Rider
サタンズウォールsatanzuuo-ruSatan’s WallDoom’s Wall
バンパイアbanpaiaVampireVampire
メタルマンティスmetarumantisuMetal MantisMetal Mantis
マシンライダー2mashinraida- 2Mashine Rider 2Mech Rider
ガーディアンga-dianGuardianKilroy
ゴーゴンタウロスgo-gontaurosuGorgontaurosGorgon Bull
ブラッドローパーburaddoro-pa-Blood RoperBrambler
オチューフェイスochu-feisuOchu FaceBoreal Face
グレートボアgure-toboaGreat BoaGreat Viper
ヒューポスライムhu-posuraimuHyposlimeLime Slime
バイオキメラbaiokimeraBiochimeraBlue Spike
ガーダーズアイga-da-zuaiGuarder’s EyeChamber’s Eye
ヒドラhidoraHydraHydra
メガゾーンmegazo-nMegazornAegagropilon
ラミアンナーガramianna-gaLamian NagaHexas
デスマシンdesumashinDeath MachineKettle Kin
ぱっくんオタマpakkunotamuChomp TadpoleTonpole
マシンライダー3mashinraida- 3Machine Rider 3Mech Rider
ホワイトドラゴンhowaitodoragonWhite DragonSnow Dragon
ファイアギガースfaiagiga-suFire GigasFire Gigas
レッドドラゴンreddodoragonRed DragonRed Dragon
ヘルフェニックスherufenikkusuHell PhoenixAxe Beak
ブルードラゴンburu-doragonBlue DragonBlue Dragon
バンパイアロードbanpaiaro-doVampire LordBuffy
ダークリッチda-kuricchiDark LichDark Lich
ぱっくんトカゲpakkuntokageChomp LizardBiting Lizard
ドラゴンウォームdoragonuo-muDragon WormDragon Worm
ウイスポスライムuisuposuraimuWisp SlimeDread Slime
サンダーギガースsanda-giga-suThunder GigasThunder Gigas
サタンズアイsatanzuaiSatan’s EyeDoom’s Eye
神獣shinjuuGodbeastMana Beast

Event Data / イベントコード

1F 01  プリムの仲間加入時の名前を決める&武器のグローブ入手(プリム初期装備)
2B 01  プリム加入
1F 02  ポポイの仲間加入時の名前を決める&武器のブーメラン入手(ポポイ初期装備)
2B 02  ポポイ加入
24 1B  全回復
1F 06  現在地でセーブ(表示上はポトス村セーブになる)

Item Storage

Check Item Count

$D0/D9B9 4A LSR A A:0040 X:0000 Y:0000 P:envmxdIzc
$D0/D9BA 4A LSR A A:0020 X:0000 Y:0000 P:envmxdIzc
$D0/D9BB 4A LSR A A:0010 X:0000 Y:0000 P:envmxdIzc
$D0/D9BC 4A LSR A A:0008 X:0000 Y:0000 P:envmxdIzc
$D0/D9BD 4A LSR A A:0004 X:0000 Y:0000 P:envmxdIzc
$D0/D9BE 60 RTS   A:0002 X:0000 Y:0000 P:envmxdIzc

Buying Allowed (Less Than 4 Items):

$C0/6552 BF 00 CC 7E LDA $7ECC00,x[$7E:CC49] A:0000 X:0049 Y:0001 P:envMxdIZC
$C0/6556 18          CLC                     A:0060 X:0049 Y:0001 P:envMxdIzC
$C0/6557 69 20       ADC #$20                A:0060 X:0049 Y:0001 P:envMxdIzc
$C0/6559 C9 9F       CMP #$9F                A:0080 X:0049 Y:0001 P:eNVMxdIzc
$C0/655B B0 EA       BCS $EA [$6547]         A:0080 X:0049 Y:0001 P:eNVMxdIzc
$C0/655D 80 1B       BRA $1B [$657A]         A:0080 X:0049 Y:0001 P:eNVMxdIzc
$C0/657A 48          PHA                     A:0080 X:0049 Y:0001 P:eNVMxdIzc
$C0/657B AD 21 18    LDA $1821 [$00:1821]    A:0080 X:0049 Y:0001 P:eNVMxdIzc
$C0/657E 0A          ASL                     A A:0000 X:0049 Y:0001 P:enVMxdIZc
$C0/657F 0A          ASL                     A A:0000 X:0049 Y:0001 P:enVMxdIZc
$C0/6580 0A          ASL                     A A:0000 X:0049 Y:0001 P:enVMxdIZc
$C0/6581 0A          ASL                     A A:0000 X:0049 Y:0001 P:enVMxdIZc
$C0/6582 0A          ASL                     A A:0000 X:0049 Y:0001 P:enVMxdIZc
$C0/6583 0A          ASL                     A A:0000 X:0049 Y:0001 P:enVMxdIZc
$C0/6584 03 01       ORA $01,s [$00:01DF]    A:0000 X:0049 Y:0001 P:enVMxdIZc
$C0/6586 83 01       STA $01,s [$00:01DF]    A:0080 X:0049 Y:0001 P:eNVMxdIzc
$C0/6588 68          PLA                     A:0080 X:0049 Y:0001 P:eNVMxdIzc
$C0/6589 9F 00 CC 7E STA $7ECC00,x[$7E:CC49] A:0080 X:0049 Y:0001 P:eNVMxdIzc
$C0/658D A9 00       LDA #$00                A:0080 X:0049 Y:0001 P:eNVMxdIzc
$C0/658F 8F 0F CF 7E STA $7ECF0F[$7E:CF0F]   A:0000 X:0049 Y:0001 P:enVMxdIZc
$C0/6593 60          RTS                     A:0000 X:0049 Y:0001 P:enVMxdIZc

Buying Not Allowed (4 Items)

$C0/6531 BF 00 CC 7E LDA $7ECC00,x[$7E:CC49] A:0011 X:0049 Y:0001 P:eNvMxdIzc
$C0/6535 C9 FF       CMP #$FF                A:0080 X:0049 Y:0001 P:eNvMxdIzc
$C0/6537 F0 12       BEQ $12 [$654B]         A:0080 X:0049 Y:0001 P:eNvMxdIzc
$C0/6539 29 1F       AND #$1F                A:0080 X:0049 Y:0001 P:eNvMxdIzc
$C0/653B CD 20 18    CMP $1820 [$00:1820]    A:0000 X:0049 Y:0001 P:envMxdIZc
$C0/653E F0 12       BEQ $12 [$6552]         A:0000 X:0049 Y:0001 P:envMxdIZC
$C0/6552 BF 00 CC 7E LDA $7ECC00,x[$7E:CC49] A:0000 X:0049 Y:0001 P:envMxdIZC
$C0/6556 18          CLC                     A:0080 X:0049 Y:0001 P:eNvMxdIzC
$C0/6557 69 20       ADC #$20                A:0080 X:0049 Y:0001 P:eNvMxdIzc
$C0/6559 C9 9F       CMP #$9F                A:00A0 X:0049 Y:0001 P:eNvMxdIzc
$C0/655B B0 EA       BCS $EA [$6547]         A:00A0 X:0049 Y:0001 P:envMxdIzC
$C0/6547 A9 02       LDA #$02                A:00A0 X:0049 Y:0001 P:envMxdIzC
$C0/6549 80 44       BRA $44 [$658F]         A:0002 X:0049 Y:0001 P:envMxdIzC
$C0/658F 8F 0F CF 7E STA $7ECF0F[$7E:CF0F]   A:0002 X:0049 Y:0001 P:envMxdIzC
$C0/6593 60          RTS                     A:0002 X:0049 Y:0001 P:envMxdIzC

Selling

$C0/7DB1 C2 30       REP #$30                A:0006 X:FB9C Y:0001 P:envmxdIzc
$C0/7DB3 A0 0B 00    LDY #$000B              A:0006 X:FB9C Y:0001 P:envmxdIzc
$C0/7DB6 AE 3E 18    LDX $183E [$00:183E]    A:0006 X:FB9C Y:000B P:envmxdIzc
$C0/7DB9 BF 00 CC 7E LDA $7ECC00,x[$7E:CC48] A:0006 X:0048 Y:000B P:envmxdIzc
$C0/7DBD E0 48 00    CPX #$0048              A:FF40 X:0048 Y:000B P:eNvmxdIzc
$C0/7DC0 90 12       BCC $12 [$7DD4]         A:FF40 X:0048 Y:000B P:envmxdIZC
$C0/7DC2 E2 20       SEP #$20                A:FF40 X:0048 Y:000B P:envmxdIZC
$C0/7DC4 38          SEC                     A:FF40 X:0048 Y:000B P:envMxdIZC
$C0/7DC5 E9 20       SBC #$20                A:FF40 X:0048 Y:000B P:envMxdIZC
$C0/7DC7 9F 00 CC 7E STA $7ECC00,x[$7E:CC48] A:FF20 X:0048 Y:000B P:envMxdIzC
$C0/7DCB 29 F0       AND #$F0                A:FF20 X:0048 Y:000B P:envMxdIzC
$C0/7DCD D0 5B       BNE $5B [$7E2A]         A:FF20 X:0048 Y:000B P:envMxdIzC
$C0/7E2A C2 20       REP #$20                A:FF20 X:0048 Y:000B P:envMxdIzC
$C0/7E2C A9 00 00    LDA #$0000              A:FF20 X:0048 Y:000B P:envmxdIzC
$C0/7E2F 60          RTS                     A:0000 X:0048 Y:000B P:envmxdIZC

Update Limit to 9 Items

The changes to alter the limit to 9.

Check if Odd:
F0 12 29 1F
F0 12 29 0F

Increase Item & Call Check for Max Limit:
69 20 C9 9F
69 10 C9 9F

Convert Quantity:
4A 4A 4A 4A 4A 60
4A 4A 4A 4A EA 60

Decrease and Save:
E9 20 9F 00 CC 7E
E9 10 9F 00 CC 7E

Add New if First:
AD 20 18 09 20
AD 20 18 09 10

Hide Odd Values:
F0 0B 29 1F 00
F0 0B 29 0F 00

Show Item:
D0 02 29 1F
D0 02 29 0F

Use Item:
83 01 98 29 1F
83 01 98 29 0F

BF 48 CC 7E 29 1F
BF 48 CC 7E 29 0F

63 01 29 E0
63 01 29 F0

10 02 A0 E0
10 02 A0 F0

9F 48 CC 7E 29 E0
9F 48 CC 7E 29 F0

Selling:
D0 05 29 1F 00 (Show)
D0 05 29 0F 00

BF 00 CC 7E 29 1F (Sell)
BF 00 CC 7E 29 0F

Secret of Mana - Item Limit Increase

Map decompression originally described by Michael1 (Alchemic) and an anonymous ID:JJuQ5DDK Japanese BBS source.
Title, SPC and event decompression and data described by an anonymous ID:JJuQ5DDK Japanese BBS source.
Tileset 16x16 compression described by Mop / Moppy.
Icon compression described by MathOnNapkins.
English Script commands described by Sephiroth3.
Drop item format described in-depth by deflaktor.
Boss graphic decompression and Item storage described by flow.