fortISSimO is a from-scratch reimplementation of SuperDisk's hUGEDriver. For instructions on how to use fortISSimO in your project, please check out its readme. This repo is a simple-ish example project that allows you to create a GB ROM and a GBS file from a hUGETracker export:
- Prerequisites: have RGBDS and GNU Make installed.
(Windows users will probably need WSL, MSYS2, or Cygwin.)
If you want to make a GBS file, you must also have
sed
in your PATH. src/fortISSImO/
is a Git submodule, so it will be empty by default. With Git, usegit clone --recursive
, or rungit submodule update --init
after cloning. If you downloaded this repo as a ZIP, you must download and extract fortISSimO separately.- Replace
demo_song.uge
in thesrc/
directory with the song you want to play. - From the same directory as the
Makefile
, runmake
(ormake gbs
if you want the GBS, ormake all
for both). By default, this will attempt to build teNOR from source, which requires Rust to be installed; alternatively, you can point theteNOR
variable at a teNOR binary, e.g.make gbs teNOR=./teNOR.exe
. - Enjoy
bin/example.gb
and/orbin/example.gbs
, best served hot!
Having trouble? Please file an issue, or contact me!
Do you have something in mind you want to discuss? The discussions tab is here for that, but you can also chat with me on GBDev or in the hUGETracker Discord if you don't have a GitHub account.
Your song sounds different from with hUGEDriver? Please file an issue on fortISSimO; the driver aims for 100% compatibility, so I'll want to fix that.
This repo started as a fork of hUGEDriver, but now it's moved pretty far from that.
The demo ROM contains two fancy features: some size information, and CPU usage stats. The size information is simply the size, in bytes, of the driver itself, and of the exported song.
You can see the instantaneous measure at the top of the screen: the flickering white pixels indicate for how long the driver was running. On average, fortISSimO appears to be a handful of scanlines faster than hUGEDriver.
The CPU graph shows how many scanlines (screen lines, equivalent to 114 CPU M-cycles) the driver took to perform its update. The measure is rounded down. Bars are coloured depending on their height:
- [0; 7] pixels: light gray
- [8; 15] pixels: dark gray
- [16; 23] pixels: black
- 24 or more: this shouldn't happen, and will be signalled by the bar being empty. Please file an issue if this happens to you.
The graph can look fairly static, but this is normal if your song contains mostly repeated rows.
- SuperDisk created the original driver, composed the demo song, and has helped a lot throughout the project. Thanks a lot, man!
- Cello2WC composed the music used in this demo.
- Evie and PinoBatch provided some support code.
- gbsdiff was used to identify differences between this driver and hUGEDriver.
- Emulicious and BGB were used to debug the driver.
hUGETracker and hUGEDriver are dedicated to the public domain.
fortISSimO and all of this demo's code is the same, unless otherwise stated; for example, bcd.asm
from PinoBatch is under the Zlib license.