This reverts commit 2c0246059f.
This PR obviously wasn't reviewed properly. It has very obvious issues,
in particular:
* Resetting child devices from device_reset/machine_reset. Child
devices are automatically reset when a device is reset.
* Changing input state on reset. This leads to state getting out of
sync. Devices that change their outputs on reset are responsible for
pushing out the update.
New systems marked not working
------------------
Roland Music Style Card TN-SC2 Software List holder
New software list items marked not working
------------------
r8_card: SN-R8-09 Power Drums U.S.A.
roland_tnsc2: TN-SC2-04 Dance
u110_card: SN-SPLA-01 Sound Elements Vol. 1 (U-01)
Uses decay rules, so if a delegate returns a reference and you want to
supply a referene to an object you don't want copied as the default
result, remember to use std::ref.
Updated a few devices to use resolve_safe on device delegates to
streamline code.
- Add I2C EEPROM and RTC
- Hook up YMZ280B IRQ properly
- Use standard VGA screen parameters
* h8: Add PC to unhooked port logging message; add notes about and slightly adjust cycle counts
taito/taitowlf.cpp: convert to new PCI model
taito/taitowlf.cpp: add proper pf2012 main BIOS [Guru]
video/atirage.cpp: hookup ATI Rage II+ DVD variant to p5txla
taito/taitowlf.cpp: virtualize CMOS and RTC as MB resources, initial implementation of Taito Wolf ROM DISK ISA
* pf2012 now manages to start loading the DOS process, failing with EMM386
- use address_maps instead of catch-all handlers;
- implement rd4 and rd5 line views;
- converted a800_rom_williams_device to the new system, make almost every entry in mega* and prisma* SW to actually boot;
- bus/a800: implement maxflash_1mb / maxflash_8mb devices.
* This allows loading arbitrary collection of .xex files built thru Maxflash Cartridge Studio program as flash ROM binaries;
- bus/a800: implement sic_128kb / sic_256kb / sic_512kb flash ROM devices;
- bus/a800: implement ast2k, atrax, Blizzard 32kb, Adawliah, SpartaDOS 128KB, A5200 Super Cart variants;
- bus/a800: implement Super Charger math unit device;
- a800_slot.cpp: fix xegs cart default slot for loose cart loading;
- a800_carts.h: merge a800_turbo64 and a800_turbo128 into single a800_turbo slot option;
- bus/a800/a800_slot: split a5200 to own interface
New working software list additions
-----------------------------------
a800.xml: Maxflash Cartridge Studio - Demonstration Workbook [Atarimax Team], SIC! 31-in-1 Demonstration [SIC! Team]
a800.xml: Atrax 01, Atrax 02, Atrax 03, Atrax 04, Atrax 05, Atrax 06, Atrax 08, Atrax 09, Atrax 10, Atrax 11, Atrax 12, Atrax 13, Atrax 15 [Atarimania]
a800.xml: Prince of Persia (AtariMAX i/f), Prince of Persia (SIC! i/f) [AtariAge]
New software list items marked not working
------------------------------------------
a800.xml: Atrax 14, Atrax 16 [Atarimania], Turbo Hit (Blizzard 32kb) [atari.area]
a5200.xml: Bosconian 5200 - Star Destroyer (Ultimate Version) [AtariAge]
There are two parts to the change. First is a correction to the coco_fdc
hardware emulation. Second is file format ordering adjustments wich make
things easier for using FLEX on CoCos.
For the hardware change: Before the change FLEX was unable to boot on CoCo
machines. The behaviour and troubleshooting showed that while the FLEX
kernel started up it was unable to read anything from Track 0. Standard
FLEX disks have SD(FM) on Track 0, and the remainder of the disks (for CoCo
FLEX) are normally DD(MFM) or could also be SD(FM). The bug was in the
handling of the WDC FDC's INTRQ line. Reviewing the available
documentation and schematics showed that when the FDC asserts INTRQ two
things happen. NMI is asserted on the CoCo bus and the HALT signal is
cleared. The MAME code added an incorrect condition on clearing HALT: It
only happened when Double-Density operation was selected. This change
fixes the logic to work the same way as is shown in the schematics, that
HALT is cleared any time INTRQ is asserted. SD(FM) disk operations work
properly and FLEX boots completely and runs correctly after making this
change.
File Format Ordering Adjustments: This part of the change makes it easiser
to use FLEX in CoCo emulation with a wider variety of FLEX-formatted disk
images. The issue here is that due to the way the JVC disk format works it
winds up being a catch-all for disk images. Because FLEX has specific
formatting requirements and code to handle this and JVC has no support for
this special formatting, FLEX formats along with DMK and SDF are moved to
come before JVC in the formats list. This allows a wider variery of
FLEX-formatted disk images to be properly detected.
The DMK disk image from the following recent restoration of FHL Color FLEX
was used for testing:
https://archive.org/details/color-flex-5.0.4-frank-hogg-laboratory
This simplifies looking up the target device during configuration. It
is useful when configuring child devices in things like CPUs with
integrated peripherals.
emu/device.h: Allow templated subdevice() and siblingdevice() to work
with classes that don't derive from device_t (e.g. classes that derive
from device_interface).
util/delegate.h: Added more noexcept. Won't make much difference as
most of the affected member functions are inline anyway.
* This raises the hard minimum macOS and SDK versions to 10.13.
* In practice, the minimum since 0.252 has been macOS 11 Big Sur.
* 10.13/10.14/10.15 can be built and run with this unsupported patch: https://gist.github.com/rb6502/8a1736ee3775f998e8e71faa47ae4b59
The patch works for me, but no guarantees are offered and it may break at any time.
- Fix bank switching of ROM areas
- Replace LCDC with type that has the correct accented characters for European versions
- Add localized key definitions for all three systems; identify all unknown keys and rebind keys to better match QWERTY/QWERTZ/AZERTY layouts
- Eliminate runtime port tag lookups
- Separate driver from pc2000.cpp
- Reduce bus to 4 bits (but note that an 8-bit variant exists), and add CS write handler to ensure multiple writes go to the correct nibbles. This results in considerable uglification of the mt32 driver code, but is more hardware-accurate.
- Speculatively eliminate cursor wraparound at first and last positions. This may or may not be accurate, but seems to produce neater results.
- Save state of internal variables.
New working software list additions
--------------------------------------------
19 Part One - Boot Camp [El Trastero del Spectrum]
2 por 1: Rock'n Roller + Wells & Fargo [Steven Brown, Planeta Sinclair]
Averno [Steven Brown, Planeta Sinclair]
Dragons of Flame [El Trastero del Spectrum]
Dungeons of Gomilandia (v0.1a) [RetroWorks]
Dungeons of Gomilandia (v0.1) [Spectrum Computing]
El Asombroso Spider-Man y Capitán America en La Venganza del Dr. Muerte! [El Trastero del Spectrum]
El Equipo A [El Trastero del Spectrum]
Frightmare (Zafiro) [El Trastero del Spectrum]
Gunship (Erbe, alt) [El Trastero del Spectrum]
High Steel (Erbe, alt) [Steven Brown, Planeta Sinclair]
Pit-Fighter (Dro Soft) [El Trastero del Spectrum]
Power Magic (alt) [El Trastero del Spectrum]
Rainbow Islands (Erbe, alt) [El Trastero del Spectrum]
Reaper [Spectrum Computing]
Renaud [El Trastero del Spectrum]
Seto Taisho Special Edition [Spectrum Computing]
Shadow Warriors (Erbe) [El Trastero del Spectrum]
Solo [El Trastero del Spectrum]
Starlife [El Trastero del Spectrum]
Test Match [Steven Brown, Planeta Sinclair]
The Dragonslayer Trilogy [Steven Brown, Planeta Sinclair]
The Duel - Test Drive II (Dro Soft) [El Trastero del Spectrum]
The Sunflower Number Show (alt) [Steven Brown, Planeta Sinclair]
The Tears of the Moon + Laskar's Crystals [Steven Brown, Planeta Sinclair]
Ulises [El Trastero del Spectrum]
New NOT working software list additions
--------------------------------------------
Heavy Metal [El Trastero del Spectrum]
Skate Wars [Steven Brown, Planeta Sinclair]
Spectrum +3 Spectacular [Steven Brown, Planeta Sinclair]
The Archon Collection [Steven Brown, Planeta Sinclair]
Redump software list
--------------------------------------------
NARC (Erbe) [El Trastero del Spectrum]
Metadata cleanups: update descriptions, added region and language info tag, moved XML comments to XML notes tag