updateControls assumes that when activeMapping is set, an item from
mappingList is guaranteed to be selected. However, there are several
scenarios that break this assumption:
- changing port during an active mapping
- changing device during an active mapping
- reloading the input driver during an active mapping
In all of these cases, updateControls is eventually called. It sees an
outstanding activeMapping and proceeds to figure out the offset of the
currently selected item, but since there are no selected items it ends
up dereferncing a null pointer.
The assumption can be honored by having reloadMappings cancel the
outstanding activeMapping, thus preventing a crash.
Fixes#4.
* improved appended firmware detection [devinacker]
* added dynamic rate control support to ALSA and PulseAudio drivers [RedDwarf]
* added option to use native file dialogs
Dot PPU: latch fine BG Hscroll at H=0 instead of H=56
(fixes minor scanline issues in Full Throttle Racing scoring screen)
(note: exact latch position is not currently known)
Serialize SDD1 PEM
(fixes run-ahead in Star Ocean)
Dot PPU: calculate nameTableIndex and characterIndex from ppu.hcounter()
(fixes scanline glitch in Great Battle IV)
Dot PPU: do not latch BG H/V scroll registers
(fixes Air Strike Patrol raster effects)
(fixes Septentrion glitchy scanline)
It seems auto-joypad poll timing is needed for most games.
So that's back in as before. Instead, I added an override for
Taikyoku Igo - Goliath specifically, until auto-joypad emulation
can be improved further.
Completely disabled auto-joypad timing (happens immediately)
(fixes World Masters until this can be emulated fully)
Disabled fast PPU for Winter Olympic Games
(changes OAM tiledata address mid-frame)
Disabled fast PPU for World Cup Striker
(I'm not sure yet why it's not compatible)
Cleared overscan region when disabling overscan
(fixes World Class Service SNES Tester)
Added override for invalid SNES header in Yuyu no Quiz de Go! Go!
On builds made with Xcode 11+ the current OpenGL context wasn't being
properly configured anymore, resulting in shader compilation errors and
a red screen.
Explicitly calling makeCurrentContext fixes this.