This implements the "copy" portion of copy-and-paste and the "delete"
portion of cut-and-paste.
'backspace' was also partially refactored to share code with the new
'selection_delete'.
I am excited in how expressiveness/readability improved in 'backspace'
after selection_delete was implemented.
The Saturn BIOS does not (un)initialize the DSP. Without zeroizing the DSP
program, the SCSP DSP appears to have a program that continuously writes to
0x30000 through 0x3ffff in sound RAM, which has the effect of destroying any
samples stored there.
This demonstrates the most basic possible SCSP usage.
Strangely this does not work in Kronos, only in mednafen and on real
hardware. I'd like to find a hack, if possible, that fixes Kronos
playback.
I might later question this decision.
I liked how each "hardware" example was roughly one self-contained file. In the
"input_keyboard" case, this is no longer true.
This improves ttf-convert slightly:
- variable size glyphs
- initialize metrics for glyphs with zero-size bitmaps (e.g "space")
- move the font/serialization structures to a common header
The keyboard example includes keyboard layout data for the HSS-0129 (Japanese)
Sega Saturn keyboard.
The Sega Saturn does not have enough video RAM to store an entire 24-bit
framebuffer. Attempting this causes the "bottom" half of the scene to be
clipped, as video RAM addresses that do not exist are written to.
I'd like to include bits of libgcc piecemeal--I don't want to "accidentally"
start depending on libgcc bits that I'm not aware of.
Reworked division so that it uses the on-chip division register.