PCエンジンのHuCをWindows10で動かしてみたのだがうまく動かないので、後継のもののソースコードをMinGWを使ってビルドして動かした。
最初はこのあたりの記事を見て、huc-3.21-winというオリジナル版を動かしてみた。
・PCエンジンで動くソフトを自作しよう、SDKの関数を使いこなす – 日経クロステック(xTECH)
しかし、どうも正しく動いていないようだ。日経の上記の2022年10月の記事ではちゃんと動いているのだろうか? どうも当てにならない感じだ。
症状としては、ソースコード(.c)がまったく読まれなくて、何も書かれていない0バイトのソースコードをコンパイルしたような結果になってしまうということが起きている。
自分でソースコードをビルドしなおしてみることにした。
ソースコードは、オリジナルを引き継いで更新されたものがあるというのを知ったので、そちらを使った。(ソースコードのみ配布されていて、バイナリは配布されていない。)
・GitHub – uli-huc- Enhanced version of the PC Engine development system HuC
最初、Visual Studioで取り掛かって、unix関係の互換性がないヘッダファイルなどで最近のVisual Studioは通らない箇所が多いのをなんとかごまかしてhuc.exeだけは生成した。だが、huc.exeが呼び出しているアセンブラpceas.exeもビルドしなおさないと駄目で、こちらはさらにビルドができなさそうだったのであきらめた。
Visual StudioのかわりにMinGWを使ってビルドすることにした。
Makefileを弄ってやることでhuc.exeとpceas.exeをビルドすることができた。
Makefileの変更点としては、以下のようなことをした。
フォルダ階層ごとにMakefileが置いてあって、ややこしい構造になっている。
一番上の階層の.incファイルを各Makefileがincludeする仕組みになっているのだが、MinGW環境ではうまくいかないようなので、Makefile末尾のあたりのincludeを削除して、代わりに引用されるべきビルドルールをそれぞれのMakefileに書き写した。あとは、.oという部分を.objに書き換えたりした。
MinGWでビルドしたhucを実際にWindows10上で試してみた。
hello.cというソースコードをコンパイルしてみる。
#include "huc.h"
main() {
disp_off();
cls();
disp_on();
set_color_rgb(1, 7, 7, 7);
set_font_color(1, 0);
set_font_pal(0);
load_default_font();
put_string("Hello, world.", 10, 15);
}
次のような.batファイルを書いて、ビルドをした。
hucの実行ファイルはc:\huc\binに置いて、includeファイルもc:\huc\includeに置いた。
set PATH=%PATH%;c:\huc\bin
set PCE_INCLUDE=c:\huc\include\huc
huc hello.c
pause
無事、hello.pceというバイナリが生成された。
TURBO EVERDRIVE(のコピー品?)のmicroSDカードにhello.pceを入れて、PCエンジンに挿して起動し、実行してみた。
ちゃんと画面にhello worldという文字が表示された。
hucを動かすことができて、PCエンジン実機でプログラムを動かすことができた。