Raspberry Piに移植するために、まずはfMSX-SDLを参考にSDL化しました。
http://home.kabelfoon.nl/~vincentd/
Android版から以下のファイルを修正しています。
+source msx1.vcproj +src emu.cpp emu.h sdl_input.cpp sdl_screen.cpp sdl_sound.cpp sdlmain.cpp
SDLに対応したソースファイルをリリースしました。
http://www.geocities.jp/parallel_computer_inc/android.html
> msx1.exe -help Yet Another msx1 Emulator msx1 [cart1] [cart2] [-tape name] [-diska name] [-diskb name] [-key] [-help] -tape: Cas Image name -diska: Disk1 Image name -diskb: Disk2 Image name -key: Joystick Emulation <↑↓[CTRL]←→>[SHIFT][ALT] -help: Show usage
とても遅くて実用的ではないのですが、Raspberry Pi用に書いたMakefileです。
# Yet Another ASCII MSX1 Emulator Makefile CC = g++ DEFINES = -D_GNU_SOURCE=1 -D_REENTRANT -DSDL -D_MSX1 CFLAGS = -I/home/pi/20131006/include -I/usr/include/SDL -L/usr/lib ${DEFINES} LDLIBS = -L/usr/lib/arm-linux-gnueabihf -lSDL OBJECTS = sdlmain.o common.o config.o fileio.o emu.o sdl_input.o sdl_screen.o sdl_sound.o event.o i8255.o io.o i8251.o tms9918a.o z80.o datarec.o disk.o ym2203.o upd765a.o file.o fmgen.o fmtimer.o opna.o psg.o joystick.o keyboard.o memory.o msx1.o all: msx1 msx1: ${OBJECTS} ${CC} ${CFLAGS} -o msx1 ${OBJECTS} ${LDLIBS} clean: rm -f *.o *~ msx1 sdlmain.o: src/sdlmain.cpp ${CC} ${CFLAGS} -c src/sdlmain.cpp common.o: src/common.cpp ${CC} ${CFLAGS} -c src/common.cpp config.o: src/config.cpp ${CC} ${CFLAGS} -c src/config.cpp fileio.o: src/fileio.cpp ${CC} ${CFLAGS} -c src/fileio.cpp emu.o: src/emu.cpp ${CC} ${CFLAGS} -c src/emu.cpp sdl_input.o: src/sdl_input.cpp ${CC} ${CFLAGS} -c src/sdl_input.cpp sdl_screen.o: src/sdl_screen.cpp ${CC} ${CFLAGS} -c src/sdl_screen.cpp sdl_sound.o: src/sdl_sound.cpp ${CC} ${CFLAGS} -c src/sdl_sound.cpp event.o: src/vm/event.cpp ${CC} ${CFLAGS} -c src/vm/event.cpp i8255.o: src/vm/i8255.cpp ${CC} ${CFLAGS} -c src/vm/i8255.cpp io.o: src/vm/io.cpp ${CC} ${CFLAGS} -c src/vm/io.cpp tms9918a.o: src/vm/tms9918a.cpp ${CC} ${CFLAGS} -c src/vm/tms9918a.cpp datarec.o: src/vm/datarec.cpp ${CC} ${CFLAGS} -c src/vm/datarec.cpp z80.o: src/vm/z80.cpp ${CC} ${CFLAGS} -c src/vm/z80.cpp disk.o: src/vm/disk.cpp ${CC} ${CFLAGS} -c src/vm/disk.cpp i8251.o: src/vm/i8251.cpp ${CC} ${CFLAGS} -c src/vm/i8251.cpp ym2203.o: src/vm/ym2203.cpp ${CC} ${CFLAGS} -c src/vm/ym2203.cpp upd765a.o: src/vm/upd765a.cpp ${CC} ${CFLAGS} -c src/vm/upd765a.cpp file.o: src/vm/fmgen/file.cpp ${CC} ${CFLAGS} -c src/vm/fmgen/file.cpp fmgen.o: src/vm/fmgen/fmgen.cpp ${CC} ${CFLAGS} -c src/vm/fmgen/fmgen.cpp fmtimer.o: src/vm/fmgen/fmtimer.cpp ${CC} ${CFLAGS} -c src/vm/fmgen/fmtimer.cpp opna.o: src/vm/fmgen/opna.cpp ${CC} ${CFLAGS} -c src/vm/fmgen/opna.cpp psg.o: src/vm/fmgen/psg.cpp ${CC} ${CFLAGS} -c src/vm/fmgen/psg.cpp joystick.o: src/vm/msx1/joystick.cpp ${CC} ${CFLAGS} -c src/vm/msx1/joystick.cpp keyboard.o: src/vm/msx1/keyboard.cpp ${CC} ${CFLAGS} -c src/vm/msx1/keyboard.cpp memory.o: src/vm/msx1/memory.cpp ${CC} ${CFLAGS} -c src/vm/msx1/memory.cpp msx1.o: src/vm/msx1/msx1.cpp ${CC} ${CFLAGS} -c src/vm/msx1/msx1.cpp
不明な点はTwitterなどでお問い合わせください。