2016年3月19日 星期六

[FC][吞食天地][天地を喰らう] 資料分析 - 武將篇

未經許可,不得轉載~
引用資料來源:海大司機的廢言堂 & http://wildplants.es.land.to/ 

**本篇文章主要取自海大司機的廢言堂,再加上自己的補充而成**


武將資料兩部分
1. 0x328100x329FF - 位址索引
2. 0x32A000x33EDF - 實際資料

位址索引可以拿來分析出
1.武將的編號,每個武將有固定的代碼
2.武將資料的開頭位址!

推測這樣的設計主要是因為武將中文名字的日文譯音,所對應出的片假名長度不固定,
所以利用前後位址索引的差值來表示該武將資料的長度或者說下一個武將資料的位址


武將資料格式 (引用自海大司機的廢言堂)
比照海大以關羽為例,資料起始位址在 0x338EB
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16
F5 B4 00 05 40 00 8A 8A 01 3A 0C 0D 0E 0F 10 11 09 70 71 FF 47 68 FF
武力 智力 出場章節 人物圖像代碼 調色盤和攻擊力 防禦 敵方時的兵量 招降為我方時兵量 策略類型 速度 肖像一 肖像二 肖像三 肖像四 肖像五 肖像六 肖像背景與漢字表 姓名漢字一 姓名漢字二 姓名漢字三 姓名片假名一 姓名片假名二 姓名片假名三
*紅色欄位表示另有說明

特別說明:02 出場章節: 內定主角
     00:內定 或 隨機 01:黃巾賊     02:董卓
     03:袁術        04:袁紹       05:荊州
     06:漢中        07:東吳       08:曹魏
03 武將圖像代碼:05
 (製圖者:173氏) 來源:海大司機的廢言堂







04 調色盤攻擊力
0x40 (0100 0000)  最前面 2 Bits 表示調色盤代碼 (01) 的值是 1 所代表的是第二組調色盤(電腦的算法都是從 0 開始算!不會算的可以打開Windows 裡面的小算盤,可以做 16 進位,十進位,八進位,二進位的轉換)

05 防禦:
攻擊與防禦都是 0,是因為遊戲一開始 關羽並沒有裝備任何武器與防具~

08 策略類型:
00 ~ 1F,總共 32 種類型。(可參考海大的策略列表)

09 速度:
這是隱藏值,並沒有在遊戲裡武將資訊中秀出來,但仍然對遊戲有影響。甚至在不同章節,數值有不一樣的權重加成!

0A ~ 0F 人物肖像
(製圖者:173氏)
來源:海大司機的廢言堂

每個武將都是由 6 個 48x8 圖像所組成的 48x48 大小圖像!

從代碼 AE 之後的各式武將可隨意搭配組出武將的圖像。
10 漢字表肖像背景 0x09 (0000 1001) 前三個 Bit 分別代表三個漢字為第一組(0)或第二組(1)表格的字(可參考海大提供的漢字表),後四個 Bit 表示肖像的背景顏色(0 ~ 9),0:黑色   9:白色。其中第四的 Bit 沒有用!會改寫ROM程式也許可以拿來利用!

*根據上述資料利用程式把資料分析出來~  (ps 關羽的武將代碼是 152...)
ps. 如果把片假名的長度固定改為 1 (直接都是 0xFF) 是否就可以擴增武將數目呢?
也就是說每位武將資料變成只剩固定的 21 Bytes (0x14) (留一碼片假名避免錯誤),則總長度 5344 Bytes (0x14E0) 將可以設定出 254 個武將!
目前實際用到的編碼只到 216(0xD8),應該還可以擴充 38 個武將!