When the MSU1 audio sample rate was locked at exactly 44100Hz in 829953b, some A/V desync was introduced in videos played by the example video player.
Audio sample rate had previously been set to a slightly higher rate to match the slightly higher vertical refresh rate of the SNES.
This commit repeats a video frame occasionally, based on a phase accumulator, to keep video playback from running ahead of audio.
Since MSU1 auto saving may lead to undesired delays on track changes for quirky hacks, add a config option to turn it off.
In the process, a global autosave disable option is also introduced.
MSU1 autosave is automatically disabled when global autosave is disabled.
Add two LoROM flavors of the MSU1 demo video player:
* A direct adaptation of the HiROM variant with identical behavior
* A slight variant that takes a data offset and track number from RAM; may be used to support playback of different videos from a caller
The SNES's CPU revision A occasionally does not carry out DMA transfers when a HDMA channel is configured to use $2100 as a B-Bus target, i.e. $00 must not be written to any DMA channel's B-Bus address register at any time.
The fix sets $21ff (unmapped) as a target address instead and configures the DMA channel to write two registers, thereby wrapping around to $2100 on the second write.
- Do not erase text buffer from SNES side but from MCU side to prevent
SNES overwriting text already written by MCU on delayed boot.
- Display up to 24 lines of text instead of 1.
- Show more detailed messages including FS error description
- Display firmware version
Fixes#156
UI stuff is always the most painful...
- There was no way to return outside of the submenu system whether a
function was executed so a `listsel_dirty` flag was introduced to force
refresh
- Same for the `listsel_backup` variable
- Redrawing the list after removing a favorite resulted in some flickering so
an additional `screen_dma_disable` flag was introduced to inhibit
screen refresh (WRAM->VRAM DMA) until the redraw was finished.
This feature can be useful for other redraw operations.
Context menu is accessed with the Y button
Favorites list is accessed with the SELECT button or via the main menu
Adds new menu option type FUNC_CLOSE, which closes the current menu after RTL
Extends menu_select to support multiple buttons to select an item