其實字型檔處理很難說有乙個統一的方法,不同的程式都需要不同方法來處理。
關於常見位圖字型檔的詳細資訊。
下面是字庫存在於elf/erx檔案時的處理思路。
最天真樸素、最通用的處理方式。適用於原字型檔大小能夠塞下漢化所用的全部文字的情況。
這種情況只要對碼表進行整理,完成碼點的重對映即可,可以說非常的簡單。
但是,如果漢化用字超出了……呢?
然而,ps2上,由於程式是被載入到記憶體中,而且各個記憶體都有被利用的可能性(通過堆分配等),如果真的要移動到尾端,你還需要繼續維護成噸的**,確保字型檔占有的記憶體不被利用掉。你可能需要修改malloc(甚至可能是開發商自己實現的)等一系列函式。然後才能將字型檔移動過去。
如果原始字型檔不是單色(1bpp)而是4色甚至16色的話,犧牲一些精度來保證容量是完全可以接受的。
難點在於,這次需要修改從字型檔取字的例程了。
而根據遊戲的不同,取字例程要改到什麼程度是不一定的。有的遊戲可能擁有不止乙個取字例程,那麼也都需要改變。
以gust的遊戲為例,除了主字型檔之外,遊戲還有乙個小號的字模「緩衝區」。程式首先在緩衝區中找字,找不到的話再去字型檔取字,並儲存到緩衝區。之後再從緩衝區中複製到其他各種地方染色、縮放等。所以,最簡單的方法就是修改從字型檔複製字元到緩衝區的例程。將取得的1bpp字模加色到4bpp後貼回去即可。
將字型檔資料壓縮,然後執行時解壓到壓縮時騰出的空間中,然後再令取字例程從那裡取字。代價是會帶來巨大的執行時開銷。壓縮率高時尤是。
大概,就這些吧?
PS 2鍵盤原理
11.4 鍵盤原理 早期的鍵盤實際上是一種5pin的鍵盤,稱作at鍵盤,是1984年ibm pc的標準鍵盤。在1987年ibm進行了改進,從而變成了現在的ps 2鍵盤。當按下乙個鍵或釋放乙個鍵,鍵盤都會傳送鍵盤掃瞄碼到主機。比如按下a,鍵盤就會傳送0x1c到主機。如果持續按a,當經過乙個給定時間後,...
ps2協議命令
define ps2 reset 0xff 復位命令 回應0xfa define resend 0xfe 再次傳送 define set default 0xf6 使用預設設定 回應0xfa define dis data report 0xf5 禁用資料報告 回應0xfa define en da...
執行ps2總結
問題1 缺少對應的2個cpp檔案和標頭檔案。直接貼上進去就可以。另外在add library中加入對應的.cpp檔案。問題2 at opt ros kinetic share catkin cmake catkinconfig.cmake 83 find package could not find...