Tales of Phantasia

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.

[[tales_of_phantasia_dejap.tbl|DeJAP Translation Table File: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.