星期二, 3月 16, 2010

Just Try

因為校對TO真的很無聊
所以我稍稍了一下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 則留言:

LiNcUtT 提到...

Lula大真是太厲害了@@

SFC ASM Debbuger...
小弟一直搞不懂VRAM跟DMA這方面
只會粗淺的trace ASM code修改一些小東西而已

不知能否傳授一些秘訣? ^^"

匿名 提到...

ZSNES的DOS版本也可以DEBUGGER!到倾向于ZSNES。ZSNES的官网有DOS版本的下。VRAM可以导出。

Lula 提到...

ZSNES當然也很OK
我只是單純不喜歡跑DOS下程式(視覺派)
如果要dump VRAM資訊
確實好像只能選ZSNES

不過就方便性來說
我個人是SNES9x用的比較順手

TO Allen
這有點難用回應解釋
我晚點另開文章簡單回復好了