Integration

Integrating fortISSimO into your project depends on what toolchain you are using; please go to the appropriate page for detailed instructions.

The following, however, is independent of the toolchain.

Debugfile support

fortISSimO supports debugfiles, which enable emulators to perform some run-time checks for free. This can help catch bugs in fortISSimO, songs, or custom routines.

Define a PRINT_DEBUGFILE symbol (e.g. by passing -DPRINT_DEBUGFILE to rgbasm) to have the debugfile printed to standard output.

So, for example:

$ rgbasm src/fortISSimO.asm -I src/include -DPRINT_DEBUGFILE >obj/fortISSimO.dbg

Tuning fortISSimO

fortISSimO supports a bit of configuration without having to modify fortISSimO.asm, which would make upgrading more difficult.

The following symbols can/must be defined when assembling fortISSimO.asm:

NameKindDefaultFunctionality
FORTISSIMO_ROMString constantROM0Attributes for fortISSimO’s ROM section.
Example: ROMX, BANK[42].
If empty, no SECTION directive will be emitted, which can be useful if doing INCLUDE "fortISSimO.asm".
FORTISSIMO_RAMString constantWRAM0Attributes for fortISSimO’s RAM section.
Example: WRAMX, ALIGN[4].
FORTISSIMO_CH3_KEEPAnyNot definedIf any symbol by this name is defined, then fortISSimO will not remove CH3 from NR51 temporarily while writing to wave RAM. This may make the process sound slightly “clicky”, but allows hUGE_TickSound to be safely interrupted by code that writes to NR51.