Emulating Odyssey2 Games on GNU/Linux
You can grab an emulator from here that works swimmingly.
I'm using a Gentoo system. I first had to emerge allegro, wich provided me with the game toolkit needed to compile o2em:
>>> Regenerating /etc/ld.so.cache...
* Caching service dependencies...
* Service 'dcron' already provide 'cron'!;
* Not adding service 'vcron'... [ ok ]
>>> media-libs/allegro-4.0.3 merged.
>>> Recording media-libs/allegro in "world" favorites file...
|
I also had to copy the correct makefile:
root@wrk-1 O2EM101-src # cp Makefile.linux Makefile
|
Now, the Makefile refers to the allegro libraries being in /usr/local/lib, but they are in /usr/lib, so, I needed to change the Makefile:
CFLAGS = -O3 -Wall -fomit-frame-pointer -I/usr/include
LFLAGS = -s
LIBALLEG = /usr/lib/liballeg.so.4.0 -lalleg_unsharable
|
Now I can make o2em:
root@wrk-1 O2EM101-src # make
gcc -O3 -Wall -fomit-frame-pointer -I/usr/include -c audio.c -o audio.o
audio.c: In function `audio_process':
audio.c:76: warning: operation on `aud_data' may be undefined
audio.c:76: warning: operation on `aud_data' may be undefined
gcc -O3 -Wall -fomit-frame-pointer -I/usr/include -c cpu.c -o cpu.o
gcc -O3 -Wall -fomit-frame-pointer -I/usr/include -c cset.c -o cset.o
gcc -O3 -Wall -fomit-frame-pointer -I/usr/include -c keyboard.c -o keyboard.o
gcc -O3 -Wall -fomit-frame-pointer -I/usr/include -c main.c -o main.o
gcc -O3 -Wall -fomit-frame-pointer -I/usr/include -c table.c -o table.o
gcc -O3 -Wall -fomit-frame-pointer -I/usr/include -c vdc.c -o vdc.o
gcc -O3 -Wall -fomit-frame-pointer -I/usr/include -c vmachine.c -o vmachine.o
gcc -O3 -Wall -fomit-frame-pointer -I/usr/include -c debug.c -o debug.o
gcc -O3 -Wall -fomit-frame-pointer -I/usr/include -c timefunc.c -o timefunc.o
gcc -O3 -Wall -fomit-frame-pointer -I/usr/include -c voice.c -o voice.o
gcc -O3 -Wall -fomit-frame-pointer -I/usr/include -c crc32.c -o crc32.o
gcc -O3 -Wall -fomit-frame-pointer -I/usr/include -c vpp_cset.c -o vpp_cset.o
gcc -O3 -Wall -fomit-frame-pointer -I/usr/include -c vpp.c -o vpp.o
gcc -s audio.o cpu.o cset.o keyboard.o main.o table.o vdc.o vmachine.o
debug.o timefunc.o voice.o crc32.o vpp_cset.o vpp.o -o o2em
/usr/lib/liballeg.so.4.0 -lalleg_unsharable
gcc -O3 -Wall -fomit-frame-pointer -I/usr/include -c dis48.c -o dis48.o
gcc -s dis48.o table.o -o dis48
root@wrk-1 O2EM101-src #
|
Let's run the emulator using the AMOK! game from here. Note that you will have to find the o2rom.bin somewhere first. You could make an image of the ROM in the system you own. This is the ROM that is inside the 8048. If that is inconvenient, here is a resource.
root@wrk-1 O2EM101-src # ./o2em AMOKPD.BIN
O2EM v1.01 (October/2002) - Linux binary
Freeware Odyssey2 / Videopac+ Emulator - http://o2em.sourceforge.net
Developed by Andre de la Rocha
Created by Daniel Boris (c)1996/1998
Starting emulation ...
Initializing sound system...
Sound system initialized ok
Sound driver [Open Sound System] detected
Using Allegro Allegro 4.0.3, Unix
Odyssey2 bios ROM loaded
Loading: "AMOKPD.BIN" Size: 4K CRC: 2247405E
Loading voice samples... 0 samples loaded
|
Here is a guide to the keys:
For a fabulous tutorial on how to get this all up and running on a Windows box, see this article.
|
|