Skip to content

An example project for generating a ROM and a GBS file from hUGETracker exports

License

Notifications You must be signed in to change notification settings

ISSOtm/fortISSimO-demo

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fortISSimO-demo

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:

  1. 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.
  2. src/fortISSImO/ is a Git submodule, so it will be empty by default. With Git, use git clone --recursive, or run git submodule update --init after cloning. If you downloaded this repo as a ZIP, you must download and extract fortISSimO separately.
  3. Replace demo_song.uge in the src/ directory with the song you want to play.
  4. From the same directory as the Makefile, run make (or make gbs if you want the GBS, or make all for both). By default, this will attempt to build teNOR from source, which requires Rust to be installed; alternatively, you can point the teNOR variable at a teNOR binary, e.g. make gbs teNOR=./teNOR.exe.
  5. Enjoy bin/example.gb and/or bin/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.

Notes

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.

CPU usage

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.

Acknowledgements

See also

  • gbsdiff was used to identify differences between this driver and hUGEDriver.
  • Emulicious and BGB were used to debug the driver.

License

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.

About

An example project for generating a ROM and a GBS file from hUGETracker exports

Topics

Resources

License

Stars

Watchers

Forks

Languages

  • Assembly 74.0%
  • Makefile 16.2%
  • Batchfile 9.8%