Audio: Remove the 8K track size limit.
Audio: Rename End command to Jump.
Audio: Fix issue with a 7FH wait being processed as end.
MapView: Pass tile in iy rather than ix.
MapView: Separate drawing the parts before and after the split.
ROM: Change mapper type from KonamiSCC to ASCII8. ASCII8 supports larger sizes and does not have SCC registers in bank 3FH.
ROMMapper: Add constructor, define in ROM and initialise in ROMRuntime.
Video: Improve mode constant names, and make them 0 / 1 for simpler math. Instead of multiplying / dividing, now we shift left / right.
MapView: Keep tile offset in l' instead of iyl or iyh. A bit slower on 4bpp, a bit faster on 8bpp, less code and frees up iy.
MapView: Manipulate e register directly instead of going through a. A bit slower on 4bpp, but a bit faster on 8bpp, and no need to preserve a.
MapView: Inline get tile source call, and separate draw column tile methods.
TileMap: Store map as an array of tiles rather than references of tiles. Removes a level of indirection. Halves the maximum tile map size, but it was limited already so we will need to deal with that in the future anyway. Additionally, the Tile object size could be reduced to two bytes because the aligned tile data address really only needs 13-14 bits depending on screen mode, and can be packed with 2-3 collision bits.
tools: Introduce Array2D class and simplify Image and TileMap.
tools: Export using shorthand object literals.
tools: Use double quotes everywhere.
README: Add development information.
images: Store RGB colours as homogeneous coordinates. So that the exact value is preserved and they’re easier to convert to different bit-depths.
images: Introduce gamma function to convert colours more precisely.
resources: Construct resources sooner, and inline parse methods.
audio: Introduce audio subsystem. Based on VGM-like playback with VGM files as input. Including a "silence" track which doubles as a stress test, updating all chip registers every other frame.