* Changed fs::manager_t::enumerate_f() to simplify logic within file system drivers
enumerate_f() used to contain quite a bit of boilerplate logic to determine whether a particular floppy type should be added. This change attempts to move this logic outside the file system drivers to simplify the drivers.
The riskiest part of this change is unformatted_image::enumerate_f(). I attempted to replicate the logic that was previously determining with unformatted image types to use, but the logic is tricky and it isn't clear to me that replicating the logic is the correct action - I may be cargo culting.
* Fix to floppy_image_device::fs_enum::add_raw()
* Updating FS_FAT to reflect this PR
* On the advise of Sarayan, I moved the filtering to the fs::manager_t::fs_enum base class. This is actually a less intrusive change than what I originally had because it keeps the unformatted raw image handling closer to what we had previously.
Some misgivings about these changes:
1. We now have fs::manager_t::fs_enum::add() being a thin call that invokes a protected method called fs::manager_t::fs_enum::add_format(). Better ideas for names are welcome.
2. It feels odd that we've removed the need to do filtering from the various FS modules, but the unformatted module has to ask the fs_enum() for its internal variables for filtering to perform the same logic. This seems to be the least worst option
Feedback is welcome
* Reset the system from a timer callback for the Vast Fame/SL/J.Y.
Company multi-game cartridges. This fixes games on gbcolor.
* Reset system when leaving configuration mode for GBCK003. Fixes most
issues with games.
* Moved GBCK003 to its own source file, and added notes for both
multi-game cartridge types.
* spectrum_cass: New working software list additions
New working software list additions
-----------------------------------
Carlos Sainz (Musical 1) [spectrumcomputing.co.uk]
Cyberball (Erbe) [spectrumcomputing.co.uk]
Ficheiro Astor [Planeta Sinclair]
Forbidden Planet (Design Design) [spectrumcomputing.co.uk]
Gehen Sie in das Gefängnis [spectrumcomputing.co.uk]
Gemini Wing (Dro Soft) [spectrumcomputing.co.uk]
Golden Basket [spectrumcomputing.co.uk]
Ilha dos Espiões (Timex) [Planeta Sinclair]
Spectrum Organ (Mark Lawrence) [Planeta Sinclair]
Redump software
-----------------------------------
Comecocos (Investronica) [spectrumcomputing.co.uk]
Go To Jail (release 1) [spectrumcomputing.co.uk]
Nightmare Rally (set 3, Erbe) [spectrumcomputing.co.uk]
Neither of these use per-game cartridge RAM banking, but they do
segregate the RAM between games and disable it for games that don't need
it.
New working software list additions
--------------
gbcolor.xml: Yín Bǎn Zhōngwén RPG Zhànlüè + Dòngzuò + Yìzhì 12 in 1 [taizou, Vas Crabb]
gbcolor.xml: Shǐshàng Chāoqiáng RPG + Gédòu + Yìzhì Bǎn Zǔhé Kǎ 18 in 1 [taizou, Vas Crabb]
Cartridge RAM features are not implemented yet.
New working software list items
---------------------
gbcolor.xml: New Super Color 145 in 1 (China) [taizou, Vas Crabb]
* nintendo/nes_m82.cpp: Moved m82 to separate source file and added partial implementation. Added missing graphics ROM. Got rid of m82p for now.
* nintendo/nes.cpp: Corrected name of "Twin Famicom". Switched famitvc1 to use older RP2A03.
New working machines
--------------------
Nintendo M8 Game Selectable Working Product Display (US, set 3) [kmg, Voodooween, Forest of Illusion, Fiskbit]
New working clones
------------------
Nintendo M8 Game Selectable Working Product Display (US, set 1) [kmg]
Nintendo M8 Game Selectable Working Product Display (US, set 2) [kmg]
Also made a start on weaning the Qt debugger off its weird configuation
objects. It can now save more view state with less string comparisons
on memory labels, but it can't restore all of it yet.
* Format is mostly compatible with the Cocoa debugger, besides reversed
vertical positioning.
* Made Qt debugger more compatible with configuration format used by
Win32 and Cocoa debuggers.
* emu/config.cpp: Preserve elements with no registered handlers in
default and system configuation files.