呃...因為5月底時颱風引起的斷電
我客廳的準系統主機板爆掉啦(灑花
然後我OB的測試檔案全在上面(汗....
因為準系統規格特殊 所以到6月底才修好回來
還好硬碟正常 資料完全無損
不過因為一個月沒動 我就推拖拉扯、一時懶得再開計畫
直到上週末才又有興趣繼續(逃
果不其然...一打開OB資料夾完全看不懂之前弄到哪裡、怎麼弄的
所以乾脆先去弄16x16劇情文字的解碼跟擴容....
16x16文字主要有兩種編碼方式:
1.訊息部分是未壓縮+索引
這部份很簡單,導出程式一下就寫好了,導入程式也不難寫(還沒動手)。
改出來大概就下最下面的圖....
2.劇情對話部分是壓縮+索引
這部份較難些,不過很謎的是導出程式我以前不知何時就寫得差不多了,導入程式預計用與未壓縮差不多的方式寫入(還沒動手,不過應該也不難)。
相對起來...擴容還是傷腦筋得多...雖然沒8x16那麼複雜啦
擴容這邊問題在於代碼不足!
原遊戲的16x16字可用代碼範圍如下:
XX, 19+YY, 1A+YY, 1B+YY (XX:20~FF, YY:00~FF)
所以原本最多有約1000個字可用 要擴容最多也只能多加下面幾組:
1C+YY, 1D+YY, 1E+YY, 1F+YY (20以上開頭就是XX,17以下是控制碼)
花了半天,終於改寫好已經亂到不行的原ROM
把1D+YY, 1E+YY, 1F+YY納入了新的可使用範圍 順便多加一個新的空間放字庫
1C+YY目前無法納入 因為跟小人像的圖塊代號重複
為了避免麻煩....我決定乾脆不用了XD
(例如下圖就使用了1D00~1D01,1E00~1E03,1F00~1F02來顯示皇家騎士團1中文化)
目前看來16x16的文字最多大概可以用1700字左右
考慮OB劇情文字量只有TO一半 我想是夠用了
問題是這些文字要從哪裡來 我現在沒那精力去刻了=__=|||
星期一, 8月 20, 2012
星期一, 5月 07, 2012
這部分2年前就破過 簡單啦.....
.....才怪:(
這週處理的是狀態欄上方的bar
因為上週翻回去以前的blog文章 看到類似處理完的圖
我以為以前就弄好了.....
.....我錯啦!!(抱頭
以前真的就只是試做確認可行性
例如可以固定顯示某小隊長名字 但其實不能換人顯示
這次又是預設只有256個8x8可用 卻要改成可顯示~700個8x16
連那256個8x8字都是不知道壓縮放在哪(我也懶得查了)
反正硬幹等它丟到Ram我再去把代碼跟字型換掉
就出現了左下那張圖 事實上到這裡還不難
因為就固定是那幾個字 頂多一個早上就能弄好
可是要弄出右下圖就讓我傻眼了....
移動到不同小隊時會顯示小隊長名
原本遊戲人名都是平片假名 所以256個8x8字就夠用
但是現在有上千個中文人名(還有幾個擅長移動地形)
要從~700個8x16字隨意選出來....=_=|||
好吧 也只能看要什麼就臨時載入什麼到VRam
這邊的顯示函式又是照慣例跟其他地方不同
所以又硬著頭皮找遊戲原本是載入到VRam哪裡
然後隨時把要的文字動態取代掉其中的一部份字庫位置
再把代碼依序對應到那固定幾個位置
理論上就能成功了!......才怪:(
不知道什麼原因,直接從Rom丟字到VRam 0x0900位置時
一直無法順利取代掉該位置內容(這是第一次用DMA傳失敗)
試了一個下午 卻"意外"發現丟到0x0400反而可以成功
雖然後來猜測是之前為顯示左下圖而丟在Ram的文字
因為多寫的函式被別人呼叫而持續將它自動載入VRam同位置
導致我另外寫上去的動作在0x0800~0x1000被覆蓋掉
0x0000~0x0800則因為我沒有要拿來顯示 所以沒被別人呼叫到
不過....我在trace過程中 其實完全沒發現有被意外呼叫的情形
所以真正原因至今還是個謎....
まぁ.....反正最後有改出來就好XD
最後總計花了一天時間 多寫了3段函式處理這個bar 效果如下:
(....其實右下小隊長名用空白打混過去 我想80%的人也不會注意到吧....)
那麼 再改完最後一個地方就完成所有8x16字的部分了....
....很遺憾 其實前天想到還有音樂鑑賞模式沒弄....orz
假設1~2週解決1個課題的話(我不一定每週都有空檔....)
也許6月就可以來弄16x16劇情部分了
星期一, 4月 30, 2012
訂閱:
文章 (Atom)





