Macintosh (Basilisk II) 8-bit Color
-
Meneer Jansen over in "Gaming and General Discussion" was talking about an older Mac game he got working on RetroPie's Basilisk Emulator and it reminded me that I've yet to get a game working that requires 256 colors (8-bit color). This is particularly frustrating because almost any game for the Mac of that era requires it be run in 8-bit color. I have a posting aimed in his direction, but I thought someone here might have some insight as well.
What happens is, every time the emulated MacOS tries to make the switch to 256 colors, Basilisk freezes and RetroPie must be restarted. I have tried MacOS 8.1 & 7.5.5, as well as a Performa and Quadra 900 system rom (changing the corresponding config settings with each), all with the same results. I have tried the default config, as well as trying it with 32 & 64 MB of emulated memory. All in all, I've tried more combinations than I can really work into this post. If anyone has manged to get Basilisk to run or boot in 256 colors without crashing, I would be most interested to learn the technique.
-
I've done a bit more research and have discovered that the version of Basilisk II in RetroPie is simply incapable of running in 8-bit color. I have to admit, it's a little disappointing, as it severely cuts the number of games that are capable of running to a much smaller list. However, the later games that use 16-bit color and higher should run fine, so I guess I'm going to settle on MacOS 8.1, which is the highest version that Basilisk II will support. That should ensure the greatest level of compatibility with later generation games and stay within the technical limitations of the emulator.
Edit: For anyone interested now or in the future, a workaround is being discussed at:
https://retropie.org.uk/forum/topic/166/what-are-you-playing/41 -
Thank you for opening a separate topic about this.
I didn't even know that BasiliskII (a classic Apple Mackintosh emulator) was included in RetroPie (or Raspbian for that matter). I compiled it from source code the first time. I compiled it as described in ref. [1] and [2]. That leaves you w/ a BII version that uses SDL for video and audio. SDL video is nice because it does not need an X server (i.e. something like LXDE) to work. So you can start it from the Emulationstation menu.
However, like said above, BII cannot be run in 8 bit color (= 256 color) mode. The greatest platform game ever made by man (Prince of Persia 2 - The Shadow and the Flame) must be run in 8 bit mode. Bummer! So one has to de-install the version installed by RetroPie (or Raspbian for that matter) and compile an other one instead.
This leaves you w/ another problem. If you've installed RetroPie from an SC card image than I think that no LXDE (i.e. a graphical desktop environment) is included on your Pi. I installed Raspbian (a Linux operating ystem for the Pi based on Debian) on my Pi and afterwards I installed RetroPie from a (shell) script (link).
Anyway, to play PoP2 on your Pi, here's my personal HowTo:
Compile BII from source
-
Instead of like in [1] do not try to install libgtk2-dev but install libgtk2.0-dev!
-
Don't forget to apt-get update.
-
Use git clone https://github.com/cebix/macemu.git
-
The command
aclocal ; autoconf
don't work (?) -
BII w/ SDL graphics (no X needed) does not support 8 bit (256) color mode so NO Prince2 that way. So one has to compile BasiliskII w/ framebuffer support instead of SDL. Unfortunately this also meand that BII has to be started from within X (i.e. LXDE in Raspbian). Use the following options to compile BII and (SDL) sound and 8 bit mode will work in X.
./configure --disable-vosf --disable-jit-compiler --without-gtk --enable-sdl-audio --enable-fbdev-dga
From the Readme [3]:
dga/<frame buffer name> [if Basilisk II was configured with --enable-fbdev-dga] Full-screen display using the frame buffer device /dev/fb. The color depth (8/15/24 bit) depends on the depth of the underlying X11 screen. The "frame buffer name" is looked up in the "fbdevices" file (whose path can be specified with the "fbdevicefile" prefs item) to determine certain characteristics of the device (doing a "ls -l /dev/fb" should tell you what your frame buffer name is).
-
Add to settings file
/home/pi/.basilisk_ii_prefs
for PoP2 in full screen in BasiliskII:screen win/512/384
-
Full screen in LXDE: Alt F11.
-
Set LXDE to 512 x 384: start the Pi in 512 x 384 mode. For this to one should edit on the Pi the file
/boot/config.txt
and alter/add the following options (example below for my flatscreen 16:9 television):
# uncomment to force a console size. By default it will be display's size minus overscan. framebuffer_width=512 framebuffer_height=384 # It is recommended to set monitor mode to DMT (i.e hdmi_group=2), see below in HDMI section # HDMI SECTION: # HDMI group 1 = CEA, group 2 = DMT. # [http://elinux.org/RPiconfig] # CEA modes (goup 1) are meant for TV, DMT modes (group 2) for computer monitors. # Group1/mode1 = VGA; group2/mode4 = 640 x 480 @60 Hz; # group2/mode9 = 800 x 600 @60 Hz; group2/mode16 = 1024 x 768 @60 Hz; # group2/mode23 = 1280 x 768 @60Hz (16:9); hdmi_group=1 hdmi_mode=1
- After
startx
you'll get the LXDE desktop environnment/GUI and then you should run BasiliskII from there (in a terminal window for instance). Music is a bit too slow but effects work just fine. The music probably is generated by a (virtual) sound card (Midi?) and the sound effects might be samples. The samples play fine, the emulation of the sound card might be too slow.
The game itself is playable, i.e. not too slow. Great!
Procedure from [2]
Basilisk II, a 68K Mac emulator running on the Raspberry Pi. Everyone asks if the Pi can do this or that. If you can do it on Linux and compile it, the answer is usually "yes"! The other limiting factor is CPU power, but Basilisk runs just fine as you can see. The only trick here was building from source (it's not in the Raspbian repos) which was easy (updated for May 2013 Raspbian):
# apt-get install git libsdl1.2-dev autoconf libgtk2-dev libxxf86dga-dev libxxf86vm-dev libesd0-dev # git clone github.com/cebix/macemu # cd macemu/BasiliskII/src/Unix # aclocal ; autoconf
Remark: maybe:
./autogen.sh
(might not be necessary if custom ./configure is used)# autoreconf -I ./m4 # ./configure --enable-sdl-video --enable-sdl-audio --disable-vosf --disable-jit-compiler --without-gtk # make install
There is no 68000 JIT for ARM CPUs yet so it's not lightning-fast but is eminently usable. As ever, it runs faster on the console (as shown here) without the bloat of Xorg. 8-bit color mode crashed but all the other modes including 16-bit color works fine. Audio lags by around or perhaps a little more than 500ms.
The contents of my .basilisk_ii_prefs:
disk /home/pi/mac/Basildisk < == changeme extfs /home/pi/mac < == changeme screen win/640/480 seriala /dev/cu.Bluetooth-Modem serialb /dev/null ether slirp udptunnel false udpport 6066 rom /home/pi/mac/iici.rom < == changeme bootdrive 0 bootdriver 0 ramsize 67108864 frameskip 0 modelid 5 cpu 3 fpu true nocdrom false nosound false noclipconversion false nogui false jit false jitfpu false jitdebug false jitcachesize 8192 jitlazyflush true jitinline true keyboardtype 5 keycodes false mousewheelmode 1 mousewheellines 3 dsp /dev/dsp mixer /dev/mixer ignoresegv true idlewait true
Procedure from [1]
# apt-get install git libsdl1.2-dev # git clone github.com/cebix/macemu # cd macemu/BasiliskII/src/Unix # NO_CONFIGURE=1 ./autogen.sh # ./configure --enable-sdl-video --enable-sdl-audio --disable-vosf --disable-jit-compiler # make install
References
[1] www.emaculation.com/forum/viewtopic.php?f=6&t=8009
[2]
[3] Readme:
http://basilisk.cebix.net/README
(see official website under "Genaral infoermation": http://basilisk.cebix.net)[4] Official website:
http://basilisk.cebix.netStill reading this? Then you're a real tough fellow ! If you've ever played PoP2 on MS-DOS and liked it then I can really recommend the procedure above to compile BII to play the superior Mac version! The orig. Mac version is close to something that might even be commercially released on a lightweight portable game platform today. Well, almost then... ;-)
-
-
@Meneer-Jansen said in Macintosh (Basilisk II) 8-bit Color:
The orig. Mac version is close to something that might even be commercially released on a lightweight portable game platform today. Well, almost then... ;-)
I agree. It's a gorgeous game. I up-voted your post here earlier, but I wanted to wait until I could digest it's contents completely before I commented. This reference guide you put together really is streets ahead. Seeing as how so many of the old Mac games relied on 8-bit color, this will likely serve as a great one-stop tutorial to all the Pi users out there left scratching their heads over this issue. I look forward to giving it a go myself and vanquishing the evil Jaffar once and for all.
Thanks again.
-
@mediamogul said in Macintosh (Basilisk II) 8-bit Color:
@Meneer-Jansen said in Macintosh (Basilisk II) 8-bit Color:
The orig. Mac version is close to something that might even be commercially released on a lightweight portable game platform today. Well, almost then... ;-)
I agree. It's a gorgeous game. I up-voted your post here earlier, but I wanted to wait until I could digest it's contents completely before I commented. This reference guide you put together really is streets ahead. Seeing as how so many of the old Mac games relied on 8-bit color, this will likely serve as a great one-stop tutorial to all the Pi users out there left scratching their heads over this issue. I look forward to giving it a go myself and vanquishing the evil Jaffar once and for all.
Thanks again.
I'm afraid I have to agree w/ you that it's not for the faint of hart. You'l need quite some Pi skills and Linux skills. Most of the fun must be sought in acquiring computer skills, not so much in playing PoP2, ha ha.
Anyway, summarizing it comes to this:
- Install the graphical user interface/desktop environment
- Compile BasiliskII from source code w/ the option to not use SDL for video but framebuffer/DGA.
- Install MacOS operating system on it or download from PoP Unofficial Website the so called PoP Macintosh Total Pack.
- Optionally: fiddle a bit w/ RetroPie to get a 512x384 game to play full screen.
You might also try to use the executable/binary that I compiled for my Pi 1B (mediafire link). I don't even know if it will run stand-alone though... Good luck! :-)
- Install the graphical user interface/desktop environment
-
@Meneer-Jansen said in Macintosh (Basilisk II) 8-bit Color:
it's not for the faint of hart.
Fortune favors the bold. ;)
Thanks again. Your time and attention to this issue is much appreciated.
-
@Meneer-Jansen said in Macintosh (Basilisk II) 8-bit Color:
You might also try to use the executable/binary that I compiled for my Pi 1B (mediafire link). I don't even know if it will run stand-alone though... Good luck! :-)
Just a FYI to those who might try. By itself, this executable has dependencies that are not met. Thanks for the link though. It was worth a shot, and I still look forward to using your guide in full when I get a little more time to experiment.
-
@mediamogul said in Macintosh (Basilisk II) 8-bit Color:
@Meneer-Jansen said in Macintosh (Basilisk II) 8-bit Color:
You might also try to use the executable/binary that I compiled for my Pi 1B (mediafire link). I don't even know if it will run stand-alone though... Good luck! :-)
Just a FYI to those who might try. By itself, this executable has dependencies that are not met. Thanks for the link though. It was worth a shot, and I still look forward to using your guide in full when I get a little more time to experiment.
I could also post the files it needs and tell you where they are installed. Also realize that you need to run this executable in a terminal window in LXDE (it needs X). Do you get an error message and could you post it here? Maybe in the error mess tells what files it misses...
-
I do appreciate it, but it's probably best that it be compiled and installed as your guide intends or else we'll just be asking for trouble.
-
I tried to run the BasiliskII executable from a location other than the standard location (i.e.
/home/pi/
instead of/usr/local/bin/
). It appears to need a config file (i.e./home/pi/.basilisk_ii_prefs
), a ROM for the virtual Mac and a hard disk image for the virtual Mac (both can be nicked from the PoP Mac total Pack). And BasiliskII needs to be started from within LXDE. One might try to find a good tutorial to install and start LXDE in RetroPie and do an experiment w/ the BasiliskII executable that I posted. Might save one the time and trouble of compiling it from source...Good luck everybody. :-)
-
Last night, I was fortunate enough to stumble onto somewhat of a solution to this problem. Using the
runcommand-onstart
, we can now set the framebuffer to 8-bit color on launch by adding:if [ "$2" = "basilisk" ]; then fbset -depth 8 fi
With this enabled, games running in 8-bit color will now be visible. From here, I want to reset the default color depth on exit in the
runcommand-onend
script. Am I correct in assuming that the default color depth is16-bit32-bit?if [ "$2" = "basilisk" ]; then fbset -depth 32 fi
-
@mediamogul it's 32 bit now.
I could probably add some framebuffer depth setting to runcommand. Ill look into it.
-
Oh wow, that would be fantastic. Thanks.
-
@mediamogul I haven't looked into it too extensively but there are some colour type Macs for the minivmac emulator though currently the macplus is the only binary it compiles
-
Very keen! My childhood best friend had a Macintosh Plus. I think that was the first time I ever played 'Deja Vu'. Has SheepShaver ever been considered for Retropie? If I remember right, it's capable of emulating a PowerPC up to System 9.0.4.
-
Just tested 'Prince of Persia 2: The Shadow and the Flame' and it runs like a champ with the framebuffer set to 8-bit color depth. A runcommand setting would indeed be most helpful for games that require a higher color depth, as the screen now turns black when the emulated Mac is set to "Thousands of Colors". It's been a long time coming, but it was well worth the wait to play this great game again. I'm marking this as solved. Thanks again @Meneer-Jansen and @BuZz for your help with this.
-
@mediamogul I made a ticket for myself on the issue tracker. Nice find btw. Strangely I did try switching framebuffer depth before and it didn't work. I obviously did something wrong or a firmware change has affected something. Nice one!
-
Got this all working today with a "1gb hard drive". Now i notice on the pi the mouse skips. Which makes using paint impossible. Closing stuff gets to be a pain too. Is it possible to have the mouse working a little better? On windows obviously it is flawless. Im going to install doom for fun just to see how bad it runs.
-
The mouse doesn't skip on mine for whatever reason. I've even tried it with a few mouse-based games and it's pretty smooth.
-
@mediamogul strange. I have it with a premade 30mb drive and the 1gb one i made. The skip is so big that the blue squares on the background are slightly smaller than the space between each mouse jump. I watched a youtube video where the guy had the same issue.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.