-sound/xaudio2_sound.cpp: More fixes:
* Fixed a couple more potential deadlocks when handling critical engine errors.
* Better tracking of the default device when devices are reconfigured.
- added a derived 6502 core for the VT3xx Sound CPU (built into the SoC), it has some customized opcodes
- added enough emulation of the Sound CPU to get denv150 to pass initial checks
- added internal SoC ROM to a number of sets that copy the sound program from it, allowing those to pass startup checks too
- added preliminary support for some of the extra VT3xx background video features, note even the way the hardware implements these is ugly, they really are hacked on top of the standard NES modes
- added preliminary support for extra VT3xx sprite modes
- the above also allow various Lexibook sets to show boot screens eg. lxcmcysw, lxcmcyfz, lxcmcydp, lxcmcysp, lxcmcycr, lxcmcypj, lxcmcyba, lxcmcypp
- paired some scrambling/encryption to specific SoC classes, as it's likely these represent slightly customized models, added modes for nubsupmf, red5mam, dgun2593, gcs2mgp, 240in1ar which also now show something
- started looking at the new DMA modes needed by 240in1ar etc.
- denv150 basically now works, but leaving it marked as NOT WORKING until the rest of the sound CPU logic is hooked up
- flagged a few sets as potentially bad dumps
- verified / corrected metadata for a number of sets now that they boot and can be better identified
- identified some cases where there seem to be additional protection devices present, supplying either code or data
- replaced vt1682 ALU in vt3xx emulation with its own implementation as it isn't the same
- added relative offset support (a kind of banking internal to the VT3xx) allowing the majority of games in the multi-game menus to go ingame
- added external banking support to a number of the larger games (anything larger than 32Mbytes has to be externally banked)
- corrected ROM loading for a number of sets
- fixed additional opcodes on sound CPU, and added the remaining peripherals
- misc other VT related tweaks
Should be added soon:
- mute
- speaker/microphone resampling
To be added a little later:
- compression
- reverb
Needs to be added by someone else:
- coreaudio
- direct
- portaudio
- xaudio2
- js
allow PDS cards to hijack the internal screen. [R. Belmont]
bus/nubus: Many updates. [R. Belmont]
* All cards: modernized with short types, fewer boilerplate comments, general cleanups,
and card memory map support.
* Lapis ProColor: fixed "encrypted" 4 and 8 bit-per-pixel modes and added the NuBus and PDS/30
versions of the ProColor 8. Also used the TLC34075/34076 DAC device.
* m2video: use the CRTC registers of the TFB 1.0 chip and the Bt453 DAC device.
* m2hires: use the CRTC registers of the TFB 2.2 chip, merge in the Apple Portrait Card, and
add the Apple Workstation Card. All 3 of these were the same card with different ROMs,
pixel clock crystals, and DAC models (Bt473 or Bt474).
* Sigma Designs LaserView: Now uses the CRTC register values.
* RasterOps ColorBoard/264 NuBus: Much better correctness on the NuBus version, including support
for the 30 Hz NTSC mode
* RasterOps ColorBoard/264 PDS: Near-total rewrite using the TMS34061 and Bt473 devices.
* SuperMac Spectrum/8 Series III: Use Bt478 DAC device like the real card.
* SuperMac Spectrum PDQ: Documented that the card uses 3 Bt458 DACs. Not actually hooked up that
way yet.
* Moniterm MacViking: Documented that the CRTC is a TTL state machine, there are no registers.
* Micron/XCEED MacroColor/30: Merged with Color 30HR which is 99% the same hardware, and
added an "internal" version which takes over the SE/30's internal display and allows you to
show grayscale on the original CRT.
* Micron/XCEED Color HR30: All available video modes are supported now with the MonitorXCEED
software. Also added an "internal" version like the MacroColor/30, decoded the register
encryption, and used the correct Bt473 and Bt478 devices.
* shared/exidysound.cpp: Use real 8253 PIT device rather than a local
implementation, fixed class memory access error, cleaned up code to
use virtual member functions idiomatically.
* cpu/alto2: Fixed class memory access error (was nuking unique
pointers).
* interton/vc4000_v.cpp: Fixed class memory access error, got rid of
indirection on bitmap, cleaned up a little.
* Enabled error for GCC class memory access warning to avoid rot.
* Made it a bit easier to cross-compile for x86-64 or i686 on an AArch64
Windows system.
* Choose the default native recompiler back-end based on predefined
macros rather than requiring the build scripts to set it.
* Don't require every target without a native recompiler to declare
this.
* Got rid of the code that was supposed to set -m32 or -m64 when
building GENie (it didn't work - it tried to use ARCHITECTURE before
setting it).
* Avoid relying on the unreliable PROCESSOR_ARCHITECTURE environment
variable.
* Got rid of stuff for versions of Xcode that are definitely no longer
supported.
* Got rid of workarounds for very old Linux distros.
* Use newer makefile syntax for if/else/if structures, comment some else
and endif statements for clarity.
Attempt to enable SSE features explicitly specified in ARCHOPTS. It
will still fall back to SSE 2 if you just use -march= to enable later
SSE features.
* bus/snes/st018.cpp: Add primary support of ST018 coprocessor
moritas2 now boots, but still hangs at in-game.
* bus/snes/st018.cpp: Fix CPU latch accessing
* Fixed behaviour of exceptions in delay slots, and fixed recompiler not
updating ILC and P for some exceptions.
* Implemented privilege error exception on setting L in user mode for
interpreter.
-emu/debug, osd/modules/debugger: Added an option to show
exceptionpoints in breakpoints windows.
* Implement MMC5 sound emulation
- Heavily based from devices/sound/nes_apu.cpp, Adjusted to differences compares to NES APU and MMC5.
* bus/nes/mmc5,cpp: Fix save state support, Implement MMC5 sound
* bus/nes/nes_slot.h: Fix save state support
* sound/nes_defs.h: Fix save state support
* scripts/minimaws: Set option strict for JavaScript code.
* util/mfpresolve.h: Be explicit about turning nullptr into a pointer to
data.
* cpu/drcbearm64.cpp: Reduced number of temporary registers used for AND
with some operand combinations.
* frontend/mame/infoxml.cpp: Recursively discover device types when
filtering output.
* frontend/mame/infoxml.cpp: Don't waste time/memory collecting device
types when not filtering.
* scripts/target/mame: Sort driver projects and sources within driver
projects to give more determinisitc output on filesystems that don't
enumerate in order by filename (e.g. XFS or ext).
-machine/s3c24xx.hxx: Got rid of a layer of indirection on LCD bitmaps.