Software list items promoted to working (nes.xml)
---------------------------------------
Fāngkuài Zǒngdòngyuán (China)
Korean Igo (Korea)
Ninja Ryukenden (China)
* Added boards for Palthena no Kagami (Kid Icarus) and Lucky Rabbit, (Roger Rabbit) FDS bootlegs.
* Fixed background tiles in fuunsfds, it has hardwired vertical mirroring.
-nes.xml: Marked tobidfds as not supported - it crashes on start.
New working software list additions (nes.xml)
-----------------------------------
Hikari Shinwa - Palthena no Kagami (Asia, FDS conversion) [famiac]
Lucky Rabbit (Asia, Roger Rabbit FDS conversion) [famiac]
* metroidk: Corrected fixed bank address that caused game to crash after title screen.
* metroidk: Corrected the nametable page mis-ordering that then becomes apparent when game is running.
* crimebst uses standard zapper on ctrl2 - works fine.
Software list items promoted to working
-----------------------
Crime Busters
Metroid - Jin Ji Zhi Ling (Asia, FDS conversion)
* Fixes the menu in mc_s42 so you can actually tell what you are selecting.
* Fixes mc_76 so the screen refreshes when returning to main menu from submenus.
* Fixes graphics glitches too numerous to list (anything with scrolling was heavily glitched to unplayable).
This appears to substantially reduce compilation time and binary size without too much impact on critical paths. The only critical-path parts really touched by this are probably handler_entry_read_units<Width, AddrShift, Endian>::read and handler_entry_write_units<Width, AddrShift, Endian>::write, which no longer need a branch on descriptor endianness for the downcast. The other instances of where the endianness now needs to be fetched from the address space are practically all in constructors, which probably don't get called too often except in drivers where the memory map is regularly rewritten (e.g. segas16b.cpp); even then the performance impact probably isn't huge.
-machine/smc91c9x.cpp adjustments:
* Reset should disable promiscuous mode.
* RCR - handle promiscuous changes, adjust soft reset handling.
* EPH_STATUS should be LINK_OK by default (previous code wouldn't set LINK_OK unless RX_EN is set but LANceGS won't set RX_EN unless LINK_OK is set).
* B0_BANK bits 4-8 are unspecified in the documentation but LANceGS expects a 3 (used in Card detection logic).
* MIR values depend on device type and resets when the mmu resets.
* Reading/writing the data register needs to be aware of 8-bit I/O.
* Calculate FCS.
* Removed WMS OUI filtering hack.
* Changed to use modern poly.h instead of polylgcy.h.
* Moved helper classes into separate voodoo namespace.
* Derived device classes from video_device_interface.
* Split classes so that later versions derive from earlier versions.
* Created device maps to be directly included.
* Redesigned register mapping to use helper classes and delegates.
* Rewrote rasterizers to use C++ templates instead of macros.
* Added logic to compute equations for color/texture combine units.
* Added special generic identity-texel rasterizer cases.
* Removed pipeline stalls on texture and palette changes.
* Removed pipeline stalls on most all parameter changes.
* Generally re-thought and cleaned up logic throughout.
* Parameterized cycle stealing on status reads; updated all existing voodoo consumers to configure it as it was before.
-vidoe/poly.h: Various improvements:
* Exposed poly_array class for broader use.
* Changed poly_array to intelligently determine maximum size.
* Added logic to track multiple "last" instances in poly_array.
* Extended logic to support up to 16m work items.
* Removed MaxPolys parameter from poly_manager template.
* Added Flags parameter to poly_manager template.
* Added POLY_FLAG_NO_CLIPPING flag to remove clipping code when not needed.
* poly_manager now supports a MaxParams value of 0.
* Made paramcount a template parameter for render_* functions.
* Added reset_after_wait() method to be overridden by derived classes.
* Switched to using std:: helpers instead of internal methods.
* Removed useless dependency on screen_device.
* TRACK_POLY_WAITS now produces more complete statistics.
-video/polylgcy.cpp: Removed legacy implementation of polygon renderer.
-machine/gt64xxx.cpp: Prevent lockups by disallowing 0-duration timers.
-machine/pci.cpp: Added support for adding subdevice maps directly.
-emu/video/rgbsse.h: Improved min/max for SSE4.1+ and scale+clamp operations for all.
-emu/vidoe/rgbutil.h: Made palette expansion constexpr and added argbexpand function.
-osd/osdcore.cpp: Changed osd_ticks to use QueryPerformanceCounter on Windows since the mingw std::chrono::high_resolution_clock is anything but.
* Correctly split angrybr3 into 32K PRG and 64K CHR.
* Fixed Plants vs Zombies garbled title screen.
Software list items promoted to working
---------------------------------------
Angry Birds 3 (Chi)
* New WORKING clones
--------------------------------------
Space Mission (SegaSA / Sonic, Spanish bootleg of Scramble) [Arcade Planet, Victor Fernandez (City Game), ClawGrip]
* Add 'spcmission'
* New NOT_WORKING machine
-----------------------------------
Olimpic Hockey (EM Bubble Hockey, set 1) [Museo del Recreativo, Recreativas.org]
New NOT_WORKING clone
-----------------------------------
Olimpic Hockey (EM Bubble Hockey, set 2) [Museo del Recreativo, Recreativas.org]
* Add 'olihockey' and 'olihockeya'