Tales of Phantasia

Memory Map

Offset Description
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
... ...
7E0939 0x01: 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

Decompression bytes:

80: Decompressed 4BPP & other graphics?

81: 2BPP graphics, event data, music data, etc..

82: ???

83: ???

Compression Routine #2: [81]

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.

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.

From the looks of it, 2BPP graphics, event data, music data and possibly others all use a variant of LZ77 but it's unknown what. However, when it comes to event decompression, it ALWAYS decompresses to $7E:BFA0 as the starting offset.