Made closing the Qt debugger console window hide all debugger windows
and run the emulated machine (debugger windows will be shown on next
user break or breakpoint hit). This matches the behaviour of the Win32
and Cocoa debuggers.
Made Qt debugger clean up its windows on exit rather than on subsequent
starts. This fixes GitHub #9789.
Made Qt debugger less reliant on global variables, and made code to save
and load configuration a bit less convoluted. It still needs more
refactoring on this front, but it's in slightly better shape now.
Made Qt debugger a bit less crashy on invalid configuration. Still
plenty of ways to crash it, but every little bit counts.
Made Qt debugger do less comparisons on menu item names and object
names - it might be possible to localise one day.
Moved all the C++ debugger implementations into namespaces. They're
using awfully generic class names, so it's about time.
* Replaced Canada country abbreviation by the full name.
* Use lowercase for descriptive text in descriptions ("Alt", "Prototype", "Earlier", Demo, "Bad").
* 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.