Using Ruby for Sega Dreamcast development
It's possible to develop in Ruby for the Sega Dreamcast system using the mruby implementation. This proof-of-concept was initially made by Yuji Yokoo back in 2019. This is experimental and a lot of features are missing, not working and/or not tested (e.g. debugging).
As almost all Sega Dreamcast software, this uses KallistiOS (KOS) as base.
- You should have a working KallistiOS environment and all the dependencies made for compiling KallistiOS installed;
- You need to have KallistiOS library built;
- The /opt/toolchains/dc/kos/kernel/build/newlib_kill.o and /opt/toolchains/dc/kos/kernel/build/newlib_getpid.o object files should be on your disk (they are produced when building KOS) - this is actually an issue that should be fixed later;
- You need to have rake and bison installed (see below).
Installing prerequisites on Cygwin
Open the Cygwin setup and search for the rake and bison packages and install them.
Installing prerequisites on DreamSDK (MinGW/MSYS)
- Install RubyInstaller then verify that the rake command is available in the PATH environment variable.
- Install msys-bison-bin package from the MinGW Installation Manager program.
Note: If you are using DreamSDK on Windows XP, then you should install RubyInstaller 2.0.0 as it the last version which supports this system.
Installing prerequisites on GNU/Linux
Install the rake and bison packages with your package manager (e.g. apt with Debian/Ubuntu).
Installing prerequisites on macOS
Install the rake and bison packages with your package manager (e.g. brew).
Installing prerequisites on MinGW-w64/MSYS2
pacman -S rake bison
Setting up mruby
Open a Terminal and type the following:
cd /opt git clone https://github.com/mruby/mruby.git cd /opt/mruby cp examples/targets/build_config_dreamcast_shelf.rb build_config.rb make
This will generate all the required files, i.e. the host tools plus the embedded mruby library (libmruby.a) for the Sega Dreamcast.
Using mruby on a Sega Dreamcast project
Currently, two projects are available as template:
Clone these repositories then build these projects by using the usual make command (of course, this requires mruby installed properly!).