所以我稍稍玩了一下OB
好換一下口味
基本上
我是能不碰ASM就不碰
一來看code流程很無聊
二來替代函式容易出包
所以可以的話
我一般偏好按原算法
重新壓縮資料回原空間
這樣幾乎不會衝突當掉
不過......
偶爾還是有不用ASM寫新函式不行的情形.....
OB的狀態畫面就是其中之一
這個畫面主要會放512個(事實上不止)8x8圖像到VRAM
再選用這些8x8圖像拼出狀態畫面
其中作為字庫的部份近200個 用來放平片假名英數字等
(其他內容是職業icon、邊框、血條等....)
用兩個8x8圖像顯示8x12中文的話 塞不到100個字就爆了
而我估計 大約要近400個8x12中文字
才能涵蓋所有姓名、職業、攻擊名、裝備名等用字
就算VRAM切換成mode 0 讓職業icon改用4色表示(原16色)
還是無法一次讀進4倍大的中文字庫
最後只好改寫新函式
把人名、職業等所用的圖像編號鎖死成連續編號
把當下要用的字依序排好繪至RAM裡後
一次用DMA轉進到VRAM中的對應連續編號位址
(理論上這樣就沒有了字庫大小的限制)
只是這函式僅能用於狀態畫面 其他畫面的要再改寫一下....
OB目前看來 最麻煩的就是這4倍文字量需求的狀態畫面
其他劇情對話等雖有壓縮 但很快就被找出位址跟演算法
狀態畫面則是花了我兩天時間才初步解決
不過這不代表我會繼續做下去就是了
目前只是為了轉換心情用而已.....
何況戰神3也要出了.....另外關於SFC ASM debugger
我是推薦用snes9x1.43.ep9r8比較方便
只可惜VRAM資料好像不能存出?
3 則留言:
Lula大真是太厲害了@@
SFC ASM Debbuger...
小弟一直搞不懂VRAM跟DMA這方面
只會粗淺的trace ASM code修改一些小東西而已
不知能否傳授一些秘訣? ^^"
ZSNES的DOS版本也可以DEBUGGER!到倾向于ZSNES。ZSNES的官网有DOS版本的下。VRAM可以导出。
ZSNES當然也很OK
我只是單純不喜歡跑DOS下程式(視覺派)
如果要dump VRAM資訊
確實好像只能選ZSNES
不過就方便性來說
我個人是SNES9x用的比較順手
TO Allen
這有點難用回應解釋
我晚點另開文章簡單回復好了
張貼留言