Yet Another ASCII MSX1 Emulator その3

Raspberry Piに移植するために、まずはfMSX-SDLを参考にSDL化しました。

http://home.kabelfoon.nl/~vincentd/

f:id:tanam:20131003231949p:image:w360

f:id:tanam:20131003231948p:image:w360

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

Linuxを想定しているため、コマンドラインで実行します。

> 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などでお問い合わせください。