懷舊一下 jmcce 1.5 - Linux

Queena avatar
By Queena
at 2015-08-11T20:35

Table of Contents

https://youtu.be/X0CvqYSBHak

上述影片會 cat 出 b 檔案的內容, 有簡體中文、繁體中文、日文, 呼 ... 總算出來了
, 心中的興奮到現在還不能忘。

之前支援 utf8 是轉成 big5 再由原本的 code 秀出, 實在太蠢了, 不過要徹底改造
jmcce 完全支援 utf8 可不是只有編碼的困難, 還得把底層的字型系統換掉, 因為其原本
的字型是用 big5 去查詢該字型的 bitmap, 所以無法支援 utf8, 之前我只能用 utf8 轉
big5 來支援 utf8。

那該怎麼辦呢? 我使用了 freetype2 並搭配 unifont.pcf.gz 這個字型,
unifont.pcf.gz 剛好是 8x16, 16x16 的字型, 剛好可以套在 jmcce 640X480 的環境上
, 我可以先避免計算字型大小、位置等問題。而且他是 unicode 字型, 用這一個就可以
秀出簡體中文、繁體中文、日文, 不需要去切換不同字型, 程式寫起來比較簡單。

再來是 unicode 編碼問題, 使用 freetype2 需要能將 utf8 轉 ucs-4, 我為這問題苦思
許久, 還用上 qt qstring (為了使用 qstring 要 link qt, 怎麼都覺得不划算), 好在
c++11 的即時到來解了我這問題。c++11 提供了 utf8 轉 ucs-4 的程式庫, 不過 gcc 得
用 g++-5 才支援, clang 則需要在安裝 libc++, 而又好在 g++-5 的到來, 我省了些麻
煩。

改寫 hztty_write() [console.c], 換掉其中的 draw_hanzi_char(),
draw_ascii_char() 搭配 freetype2, 總算有了目前的成果。

unifont.pcf.gz 是 bitmap 字型, 所以沒有 anti-alias, 字型沒那麼美觀, 不過這是巨
大的一小步, 能完成他, 我覺得很有成就感。

不過閒暇時間不多, 要能完成到可以使用, 可能要花上一段很久的時間, 現在問題還蠻多
了, 而且 linux framebuffer 我實在不熟, 老是畫錯 pixel 的位置, 雖然有
virtulbox 可以方便 debug, 但還是得花上不少時間。

其實 fbterm 已經做得很好了, 也有輸入法可用, 在穩定度實用性都勝過 jmcce 不少,
字型支援也比較好, 顯示速度也贏 jmcce 不少 (以 linux framebuffer 顯示來比較),
我在想我有必要把時間花在 jmcce 上嗎? 也罷! 就讓 jmcce 先停留在 1.6 α 好了。

fbterm
apt-get install arphic* fbterm fbterm-ucimf

arphic* 會把 fbterm 需要的中文字型裝起來。

--
Tags: Linux

All Comments

Quintina avatar
By Quintina
at 2015-08-12T17:57
夭壽~fbterm相依的packages多達50幾個,純Terminal還是
Selena avatar
By Selena
at 2015-08-13T23:38
jmcce比較單純。

關於使用筆電做routing

Bennie avatar
By Bennie
at 2015-08-11T12:52
※ 引述《wandog (慢跑中毒)》之銘言: andgt; 我的說明應該造成誤會了 不好意思 實際上的架構是 andgt; 以太 以太 wifi andgt; pcandlt;--------------------------a ...

請推薦Centos 方便設定使用的wifi網卡

Dora avatar
By Dora
at 2015-08-11T03:35
各位前輩,最近想要在公司的linux機台上加usb wifi無限網卡, 再用手機當熱點讓linux可以上網! 會想這麼幹的原因是,很多linux的套件都要用到yum來下載或更新, 偏偏部門的機台都是單機不連外網,所以才有此一想, 使用手機當熱點來上網! 不知道有沒有前輩有買過在linux上比較好設定的us ...

關於使用筆電做routing

Callum avatar
By Callum
at 2015-08-10T22:08
我的說明應該造成誤會了 不好意思 實際上的架構是 以太 以太 wifi pcandlt;--------------------------andgt;((((((((laptop))))))))andlt;------------ ...

LTE 4G 模組 問題

Rae avatar
By Rae
at 2015-08-10T18:12
請問一下 我有兩台Linux ubuntu 其中一台使用LTE 4G 模組 可以上網 但是另外一台 卻不能上網 我看了一下Dmesg 發現不能上網的那一台 少了下面這兩個步驟 userif-3: sent link down event. userif-3: sent link up event. 請 ...

XRDP 同帳號使用別台電腦登入

Irma avatar
By Irma
at 2015-08-10T10:33
使用CENTOS 7.0 安裝XDRP,讓Windows使用者用遠端桌面連進去操作軟體, 但是現在遇到一個問題,A電腦使用A帳號連進去開啟一個軟體,然後直接關掉遠端桌面, B電腦使用A帳號連進去看不到原本A電腦開啟的軟體. 有辦法設定不管用哪一台電腦,只要是使用同帳號就可以看到一樣的畫面嗎? 另外再 ...