SNES Development
Tales of Phantasia

Tales of Phantasia

Tales of Phantasia Memory Map

OffsetDescription
7E6B44 & 1フェアリィリング
7E6B44 & 2フォースリング
7E6B44 & 4リフレクトリング
7E6B44 & 8フレアマント
7E6B44 & 10アクアマント
7E6B44 & 20エルブンマント
7E6B44 & 40プリンセスケープ
7E6B44 & 80デモンズシール
7E6B45 & 1ブルータリスマン
7E6B45 & 2ナイトメアブーツ
7E6B45 & 4ペルシャブーツ
7E6B45 & 8マジックミスト
7E6B45 & 10ブラックオニキス
7E6B45 & 20ムーンクリスタル
7E6B45 & 40ラックブレイド
7E6B46 & 1
7E6B46 & 2
7E6B46 & 4
7E6B46 & 8
7E6B46 & 10スターブルーム
7E6B46 & 20スタークローク
7E6B46 & 40スターシールド
7E6B46 & 80ホーリィシンボル
7E6B47 & 1フィートシンボル
7E6B47 & 2ミスティシンボル
7E6B47 & 4エメラルドリング
7E6B47 & 8プロテクトリング
7E6B47 & 10レジストリング
7E6B47 & 20シーブスマント
7E6B47 & 40エルブンブーツ
7E6B47 & 80アイアンブーツ
7E6B48 & 1フライシンボル (召還カメレオン無効)
7E6B48 & 2デモンシンボル (デスクラウド無効)
7E6B48 & 4ピクルスストーン
7E6B48 & 8シルバーマトック
7E6B48 & 10ポインズンチェック
7E6B48 & 20ストーンチェック
7E6B48 & 40パラライチェック
7E6B48 & 80ホワイトミスト
7E6B49 & 1ラビットシンボル
7E6B49 & 2リバースドール
7E6B49 & 4ダークシール
7E6B49 & 8スターベレット
7E6B49 & 10ピヨハン
7E6B49 & 20メンタルリング
7E6B49 & 40
7E6B49 & 80タリスマン
7E6B4A & 1シルバーケープ
7E6B4A & 2
7E6B4A & 4
7E6B4A & 8
7E6B4A & 10
7E6B4A & 20
7E6B4A & 40
7E6B4A & 80
~~~~~~~~~~~~~~~~~~~~
7E09390x01: Combo Possible / コンボコマンド装備しなくてもコンボ入力可

コンボにゅうりょくでーた

$C1/DDFA BF BD DE C1 LDA $C1DEBD,x[$C1:DEBD] A:0001 X:0000 Y:0000 P:envmxdizc

Text

$F0/A8C2 BF 2E 9C EC LDA $EC9C2E,x[$EC:9D1B] A:00ED X:00ED Y:DF50 P:envMxdizC

I have this noted down as something to do with the DTE. Though it’s probably wrong, but this could help with other things. There might be 50 in total? Not too sure.

$F0/A93A BF 14 88 EC LDA $EC8814,x[$EC:88F2] A:00DE X:00DE Y:DF66 P:enVmxdizc

These are the numbers you add to EC6553 in order to find where the text is located.

$F0/A941 BF 53 65 EC LDA $EC6553,x[$EC:6689] A:0136 X:0136 Y:DF66 P:enVMxdizc

Text.

DeJAP Translation Table File

Text notes by justin3009, table by Rappa, original memory map started by 546◆rbsENsUukE.

Decompression

Compression Routine #1: 2bpp (Menu Font and maybe others)

The routine essentially starts at C6/6E32 with the pre-settings. It then JSL's to C7/F4CF for the actual routine.

Very small partial example:

C7/F4CF 08          PHP                     A:FF49 X:D100 Y:8972

C7/F4D0 E2 20       SEP #$20                A:FF49 X:D100 Y:8972

C7/F4D2 64 7B       STZ $7B    [$00:007B]   A:FF49 X:D100 Y:8972

C7/F4D4 64 7C       STZ $7C    [$00:007C]   A:FF49 X:D100 Y:8972

C7/F4D6 85 7D       STA $7D    [$00:007D]   A:FF49 X:D100 Y:8972

C7/F4D8 64 6D       STZ $6D    [$00:006D]   A:FF49 X:D100 Y:8972

C7/F4DA 64 6B       STZ $6B    [$00:006B]   A:FF49 X:D100 Y:8972

C7/F4DC 64 7F       STZ $7F    [$00:007F]   A:FF49 X:D100 Y:8972

C7/F4DE 85 80       STA $80    [$00:0080]   A:FF49 X:D100 Y:8972

C7/F4E0 B7 7B       LDA [$7B],y[$49:8972]   A:FF49 X:D100 Y:8972

The routine checks the very first value at $49:8972 for specific values.

80: Decompressed graphics? (From what's tested, yes)
81: 2bpp graphics & maybe others (Menu Font comes to mind)
82: ??? (Possibly Tileset?)
83: Sprites? (Not fully sure.  Rheairds come to mind on this but not sure what else uses it)

In this case, it loads value 81 for the Menu Font’s data. The following two bytes AFTER are how big the chunk of data is. In this case, ‘36 07’ which is 736.

I’m no expert on decompression but the menu font’s routine is somewhat similar to Chrono Trigger’s from what I’ve tested. If you use Lunar Compress and do for example: decomp ROMNAME.smc FILENAME.bin 498972 13 736, it’ll produce SOMEWHAT visible results of other menu data. Value 13 is Chrono Trigger’s decompression routine in Lunar Compress from what’s tested.

As far as I can see, this specific routine might be a variant of what Chrono Trigger uses.