-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.
* 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
WK-1800 floppy support is not implemented.
New working systems
----------
Casio WK-1800 [Edward d-tech, Devin Acker]
New working clones
----------
Casio WK-1600 [Edward d-tech, Devin Acker]
apple/gsc.cpp: Split Apple Gray Scale Controller (remarked C&T 65210) to its own device. [R. Belmont]
apple/csc.cpp: Initial Apple Color Screen Controller (remarked C&T 65220) support. [R. Belmont]
apple/msc.cpp: Initial Apple Main System Controller and MSC II support. [R. Belmont]
m6805/m68hc05pge.cpp: Initial support for the Apple/Motorola "PG&E" microcontroller. [R. Belmont]
apple/macpwrbkmsc.cpp: New driver for MSC and MSC II-based Mac PowerBooks and PowerBook Duos. [R. Belmont]
Systems promoted to working
---------------------------
Apple Macintosh PowerBook Duo 210 [R. Belmont]
New working systems
-------------------
Apple Macintosh PowerBook Duo 270c [R. Belmont]
Apple Macintosh PowerBook Duo 280 [R. Belmont]
New working clones
------------------
Apple Macintosh PowerBook Duo 230 [R. Belmont]
Apple Macintosh PowerBook Duo 250 [R. Belmont]
Apple Macintosh PowerBook Duo 280c [R. Belmont]
- Rewrite DMAC DMA controller. Now actually transfers data.
- Add preliminary support for the A590 hard disk controller
- Add preliminary support for the Action Replay freezer devices
- Add support for the MegaMix 500 RAM expansion
- Add preliminary support for the A2091 hard disk controller
New working software list additions
-----------------------------------
A590 Setup Disk 1.7 (Western Digital Harddisk) [Turran FTP]
A2091 Setup Disk 1.27 [Amiga Hardware Database]
* Build all native back-ends if any native back-end is enabled so errors
caused by changing interfaces can be found faster.
* cpu/drcbeut.cpp: Moved resolved member function stuff to a place where
it can be shared by back-ends.
* cpu/drcbearm64.cpp: Use ubfx instruction to extract unordered flag.
* cpu/drcbearm64.cpp, cpu/drcbex64.cpp: Bypass trampolines when calling
get map variable value and debugger instruction hook functions.
* cpu/drcbearm64.cpp: Moved some internal helpers that don't need to be
members to anonymous namespace.
* cpu/drcbearm64.cpp: Added a comment with some info to help when
debugging generated code.
* cpu/drcbec.cpp: Put code in the drc namespace.
* util/delegate.cpp, cpu/drcbex64.cpp, cpu/drcbearm64.cpp: Use common member function resolution code.
-cpu/drcbearm64.cpp, cpu/drcbex64.cpp, cpu/drcbex86.cpp: Moved some stuff to anonymous namespaces.
-cpu/drcbex64.cpp, cpu/drcbex86.cpp: Defer allocating labels if they aren't always needed.
* z80sio: add support for wait/ready, fix rx int logic, fix SDLC bit stuffing bug
* hp98x6: added support for HP98628 & HP98629 exp. cards
* hp98x6: removed dependency on buggy hp_dio functions, restored original hp_dio.*
* The CPU passes its initial memory test, but no I/O is connected.
-dynax/ddenlovr.cpp: Identified 18 of 40 DIP switches for hanakanz with
high confidence, and improved inputs.
* Properly support Wayland under EGL and Vulkan. (#3358)
* Dynamically load libwayland-egl.so.1 when dealing with Wayland to remove dependencies at program startup. (#3359)
* Cleanup.
* Support both X11 and Wayland in the same build. (#3360)
* Support both X11 and Wayland in the same build.
- Works for both Vulkan and OpenGL.
- Remove --with-wayland from genie options.
- Vulkan loads all three extensions for surface creation instead of only one.
- Add width and height parameter to GlContext::createSwapChain(), which is needed for EGL to create
a SwapChain with the given window size.
- Dirty-fix the example-22-windows to recreate the FrameBuffer by first destroying and then
recreating to make sure the window is released of its swapchain.
- Fix dbgText glitch in example-22-windows.
- Remove old X11-related dependencies for GLFW3.
* Formatting.
* Adapt to latest bgfx wayland code
* Cleanup.
* Fix Vulkan swapchain invalidation issue. (#3379)
* Fix Vulkan swapchain invalidation issue.
* Always clamp render pass to frame buffer size.
* Fix formatting.
* Hopefully fix macOS build
* Hopefully fix macOS build, attempt 2
---------
Co-authored-by: Martijn Courteaux <courteauxmartijn@gmail.com>
Co-authored-by: Бранимир Караџић <branimirkaradzic@gmail.com>
* rename previous ds1315 to earlier/original ds1215 device
* support both ds1215 and transparent access methods
* implement rtc and nvram interfaces
* support updating registers
* cpu/upd177x/upd177x.cpp: Add NEC uPD177x cpu core.
* scv.xml: Promoted 1 item.
Software list items promoted to working
------------------------------------------
Star Speeder
* cpu/upd177x/upd177x.cpp: Remove a comment.
* cpu/upd177x/upd177x.cpp: Remove callback on PA.
* cpu/upd177x/upd177x.cpp: Update comment about setting m_pc to 1 during reset.
* Add a different workaround for the sync issue between the 2 cpus in scv.
* cpu/upd1771x/updf177x.cpp: Use little endian.
* cpu/upd177x/upd177x.cpp: Include device tag in fatalerror messages.
* epoch/scv.cpp: Update upd1771c rom region sizes.
* nec/apc.cpp: Switch to upd177x_cpu_device.
* epoch/scv.cpp: Add location to upd1771c rom name.
* cpu/upd177x/upd177x.h: Remove 'overrides' comments.
New working software list additions
-----------------------------------
Rainbow II Diashow Professional V1.92 [Amiga Hardware Database]
RainbowPainter V0.99b [Amiga Hardware Database]
* Updated to GENie 1181.
* Applied local fix for GENie resource include directory bug, sent upstream as bkaradzic/GENie#572.
* Set MSVC flags to use conformant preprocessor, standards conformance mode, and assume UTF-8 encoding.
* abandoned cassette vison work
* remove comment now that the useful table is gone
* force github to rebuild because github is being github
* add a note based on earlier research
* bring this part over from the previous tree too, it seems worth having still
* actually use this version instead, I thought it was broken, but it actually has advantages
* I've been informed this will be merged if I assign a copyright holder, so as I don't really recognize it as my own design anymore, I'm assigning Vas.
* Update cpu.lua
* Start cleaning up:
* cassvisn_cart.xml: Fixed program region width.
* cassvisn_cart.xml: Added Japanese titles and proper markup for release
dates.
* epoch/cassvisn.cpp: Removed unnecessary byte swapping when loading
software list items.
* cpu/upd777.cpp: Made order of declarations and definitions more
consistent with each other, added more inline and const hints.
* tools/unidasm.cpp: Make data source big Endian to match CPU core.
* epoch/cassvisn.cpp: Digit grouping for big numbers, better error messages.
---------
Co-authored-by: David Haywood <hazemamewip@hotmail.com>
Co-authored-by: Vas Crabb <vas@vastheman.com>