xkeropi をビルドした。
環境構築
OS をインストールする
nasm 使っているので 32bit の ubuntu を使う。
ubuntu-16.04.6-desktop-i386.iso を Hyper-V にインストールする。
あると便利な ssh (任意)
$ sudo apt install openssh-server
あると便利な samba (任意)
$ sudo apt install samba
$ sudo vi /etc/samba/smb.conf
[homes]
comment = Home Directories
browseable = no
writable = yes
create mask 0644
directory mask = 0755
$ sudo smbpasswd -a yui
$ sudo service smbd restart
必要なライブラリなどをインストール
$ sudo apt-get install xutils-dev
$ sudo apt-get install libgtk2.0-dev
$ sudo apt-get install libsdl1.2-dev
$ sudo apt-get install nasm
ビルド
$ wget https://www.nonakap.org/keropi/xkeropi-20101107.tar.bz2
$ tar xf xkeropi-20101107.tar.bz2
$ cd xkeropi-20101107
$ xmkmf -a
$ make
実行してみる
うぐぅ
強制的に動かしてみる。
アサーションに引っかかってるのは下記の場所
windraw.c
/* 15 or 16 bpp 以外はサポート外 */
if (visual->depth != 15 && visual->depth != 16) {
fprintf(stderr, "No support depth.\n");
return FALSE;
}
Hyper-V だと visual->depth = 24 だった(32じゃないのは意外だ)。
そんなん 24bppバッファに16bppで描画しても崩れはしてもバッファオーバーフローはしないので大丈夫やろってことでチェックを外す。
diff
- if (visual->depth != 15 && visual->depth != 16) {
+ if (0) {
おけおけ。
24bpp描画は書く面倒だけど windraw.c を改造すればなんとかなる。
その前に EUC を UTF-8 に変更しておこっと。