N64 improvements. Split N64 save files into eep, sra, fla, mpk and tpk files.
Add "wide" tag detection to database, auto-switches to widescreen if found.
Prioritize N64-database_user.txt, so that people can override games already in the regular database file.
Honor order that rpak, cpak and tpak are written in database, for p1 controller.
* Fix: when extensions are less than 3 characters send NUL
Currently if the extension is less than 3 characters the last characters
of the filename will be sent to the FPGA. These are not consistent and
would not help the core establish what kind of file it is.
There are few ROMs with less than 3 characters, but they do exist (e.g.
.ws for WonderSwan). It is unclear reading the code how those are
handled outside of this specific function.
## Security considerations
This does not fix a buffer overflow as the code to get there would fail
if the complete filename would be less than 4 characters (e.g. the root
filesystem is read only).
## Testing
This has been tested with the happy path; the code at least works with
current files.
* Apply comment
* add n64 type
* use a custom loader for N64
This loader:
- converts little-endian and byte-swapped ROMs
- auto-detects ROM properties, this requires a N64-database.txt file in
the N64 games folder
Update Y/C Parser
- Added the Y/C tuned phase inc's into the yc.txt file.
- Fixed an issue with the parser handling spaces in the core name
Removed force SOG on CVBS / SVIDEO Modes
* C128: add support for .d71 and .g71 disk images
* C128: add creating or resizing tracks in .g64/.g71 images
* C128: change "1571" flag from bit 8 of lba to bit 10
* C128: fix second side of d71 images
* C128: small fix for gcr track end position detection
* C128: set track speed to 8 for MFM tracks
* C128: provide detected disk image type to core
* C128: add bit to indicate disk image GCR support
Added `cfg_error` function for reporting errors in the ini.
Report errors when parsing video_mode information.
Report out of bounds settings.
Report unknown settings.
Detect numeric parse failures.
Reduce cost of setting video mode information when using
vsync_adjust=1/2 or vscale_mode=4/5 from 90ms to 5ms (worst case, most
instances are less than 1ms).
Split video initialization into video_init and video_set_mode.
video_init is called once, video_set_mode is called whenever the mode
changes.
Split hdmi_config into hdmi_config_init and hdmi_config_set_mode. Same
as video_, hdmi_config_init does the bulk of the initialization,
hdmi_config_set_mode is just for parameters that can change based on the
mode.
Load video filter data in loadScalerCfg and persist it.
Calculate a digest for scaler data and use that to determine whether new
data needs to be sent.
Only send gamma information if the filename has changed.
Offload fb module parameter writing to a separate thread via the new
offload system.
Reduce the amount of work being done in set_vrr_mode when vrr is
disabled.
A key combo, Meta (Win) + Scroll Lock was added
to allow cores using PS/2 to access the Scroll
Lock.
Num Lock (EMU_SWITCH_2) was previously excluded,
this has been re-enabled when using the Meta key
modifier.
Meta+Scroll Lock previously took a screenshot.
This is no longer possible, when that key combo
is used for keyboard emuation mode. A screenshot
must be taken with either:
Meta+Print Screen or Alt+Scroll Lock.