First things first: How’s that even possible?
Answer: via the magic of Microsoft’s .NET. #CSpect was completely re-written by Mike Dailly in C# which immediately made it portable to any platform that can run .NET or mono (which is the open source equivalent of .NET for MacOS, Linux, FreeBSD etc). Unlike ZEsaruX, #CSpect doesn’t require recompilation for a different platform; you only need .NET to run it.
So can I run it on <insert platform here>?
Answer: Most likely YES. You can run it on Linux whereas this is on a Mac or an Raspberry Pi or a plain old PC and a few other platforms .NET/mono runs on. This tutorial however deals with MacOS exclusively so you’ll have to wait for a special tutorial for other platforms.
What do I need?
Answer: You’ll need three (and a half) things: #CSpect, a System/Next SD Image, Homebrew (that’s the half) and finally mono.
First you need the latest and greatest version of #Cspect (downloadable from www.cspect.org). Pick a folder to decompress it on your Mac and then proceed to get a System/Next SD card image from www.zxspectrumnext.online/cspect/ You can pick any one you like depending on your needs, then decompress it in the same folder you decompressed your #CSpect in. After that you need to install Homebrew (read about that from http://brew.sh) by entering:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
in a terminal window (you’ll find the MacOS Terminal in Applications > Utilities) or by:
- Open Finder.
- Click Applications.
- Click Utilities.
- Double-click Terminal.
- Click the Spotlight icon.
- Type terminal into the search box.
- Double-click Terminal.
Once Homebrew is installed, you’ll be able to to install mono which is as easy as giving the following command in your Terminal window:
brew install mono
You’ll see a few things running and once your terminal settles, you’re ready to run #CSpect
Is that all?
Answer: Not quite. I’m assuming you want audio too. #CSpect needs one little tiny extra called OpenAL. You can download it from the OpenAL site but for your convenience it’s also located in the System/Next Images site as well right here. Drop the decompressed file in the SAME FOLDER you decompressed #CSpect in.
Can I play now?
Answer: Absolutely. Let’s assume you decompressed CSpect into your home folder in a folder named Cspect. Then still using the terminal change the folder to that by giving:
Then run #CSpect by giving:
mono cspect.exe -w3 -basickeys -zxnext -nextrom -mmc=../cspect-next-2gb.img
You’ll notice that the example above is different from the screenshot below. It includes an extra switch (-basickeys) and the –mmc switch is written a bit differently. This only affects the way the keyboard behaves (makes you find your keys a bit easier)
And here it is running just perfectly
So is that all there is to know?
Answer: Pretty much yeah! Well… there are a few things:
- #CSpect NEEDS two files from the SD Card image enNextZX.ROM and enNxtMMC.ROM that need to be present in the same folder as #CSpect. If you decompress the SD card image from the System/Next SD Image site you’ll find they’re included for your convenience but that works ONLY if you put them together with #CSpect. If you choose a different folder, then you need to MANUALLY copy these to your #CSpect installation folder
- The -mmc switch has TWO distinct uses: One is to provide access to the underlying OS when NOT in full (ie running Next ZXOS) ZX Spectrum Next mode and the other to attach an SD Card Image when in full ZX Spectrum Next mode. You CANNOT (currently) decompress the System/Next image onto a folder of your computer and expect #CSpect to boot from there. It won’t.