* Made it possible to add digital controls to axis settings as enables.
* Mix multiple analog controls assigned to an axis setting.
* Added a "reverse" modifier for analog controls (useful with mixing).
* Fixed an issue assigning mouse axes using multiple mouse-like devices
with -nomultimouse.
-frontend: More cleanup:
* Got rid of some abuse of "special main menus".
* Added a helper class for auto-pause menus that don't spawn submenus.
* Got rid of the fake menu that schedules an exit on the first frame.
* Turned the confirm quit prompt into a menu, eliminated one more
special-cased event loop.
* Fixed the confirm quit prompt resuming if you return to emulation if
you weren't paused to begin with.
-bus/centronics: Fixed conflicting DIP locations, reversed order and
inverted polarity for Epson printers.
* Also added the LX-810 (without L suffix) DIP switches for reference -
we don't have a device for this printer yet.
* Refactored Family Trainer and Tap-tap Mat into common base class.
Software list items promoted to working (nes.xml)
---------------------------------------
Super Mogura Tataki!! Pokkun Moguraa (Japan)
* Moved common code for drawing about box, info viewer, and other text box menus to a base class; removed the last of the info viewer logic and the multi-line item hack from the base menu class.
* Added previous/next group navigation for general inputs and plugin input selection menus.
* Moved message catalog logic to lib/util, allowing osd and emu to use localised messages.
* Made the base menu class use the UI manager’s feature for holding session state rather than a static map and mutex.
* Improved menu event handling model, and fixed many issues, particularly with menus behaving badly when hidden/shown.
* Added better support for menus that don’t participate in the usual menu stack, like the menuless sliders and the save/load state menus.
* Made a number of menus refresh state when being shown after being hidden (fixes MT08121 among other issues).
* Fixed indication of mounted slot option in the slot option details menu.
* Improved appearance of background menus when emulation isn't running - draw all menus in the stack, and darken the background menus to make the edges of the active menu clearer.
* Fixed locale issues in -listxml.
-debugger: Made GUI debuggers more uniform.
* Added new memory view features to Win32 debugger.
* Fixed spelling of hexadecimal in Cocoa debugger and added decimal address option.
* Fixed duplicate keyboard shortcut in Cocoa debugger (Shift-Cmd-D was both new device window and 64-bit float format).
* Made keyboard shortcuts slightly more consistent across debuggers.
-plugins: Moved input selection menu and sequence polling code to a common library. Fixed the issue that prevented keyboard inputs being mapped with -steadykey on.
-docs: Started adding some documentation for MAME's internal UI, and updated the list of example front-ends.
-Regenerated message catalog sources. For translators, the new strings are mostly:
* The names of the inputs provided by the OS-dependent layer for things like fullscreen and video features. These show up in the user interface inputs menu.
* The names for automatically generated views. These show up in the video options menu - test with a system with a lot of screens to see more variants.
* The input macro plugin UI.
* A few format strings for analog input assignments.
* A few strings for the about box header.
* ctk2100: preliminary work
* ctk2100: possible keyboard hookup
* ctk2100: hook up rudimentary timers
* ctk2100: add ports and hook up the LCD
* ctk2100: timer tweaks, input tweaks
* ctk2100: fix I/O port reads (stops constant LCD resets)
* gt913: increase key polling rate (fixes ctk2100 test mode)
* ctk2100: add ADCs, clean up and comment some other stuff
* lpc210x: add the PL190 VIC here too while i'm at it
* vic_pl192: fix clang build
* unidasm: add gt913
Changed the default mapping for UI select to not trigger on Alt+Enter
fullscreen toggle. (Fullscreen toggle still doesn't work in menus -
actually fixing that is complicated.)
frontend: Made the about box wrap text properly, made the title and
backtrack menu item always visible, and added a footer with the VCS
revision.
frontend: Don't highlight the favourites and info toolbar buttons if
there's no selection (can happen if filters produce no results). Also
made the info viewer appear even if no info is available - it's less
confusing to see an empty menu than wonder why clicking the button does
nothing.
debugger: Added a register points view to the GUI debuggers, to go with
the breakpoints and watchpoints views.
debugger: Extended [brw]p(clear|(en|dis)able) commands to accept
multiple arguments to perform the same action on multiple
(break|watch|register)points at once. Also made rplist accept a CPU for
showing a single CPU's register points ([bw]plist already support this).
docs: Updated registerpoints debugger commands page, and updated other
pages for latest extensions to syntax.
frontend: Made it possible to cancel a media audit while it's in
progress. Also made the media audit multi-threaded so it's faster.
frontend: Made the DIP switches in the DIP switch preview clickable.
frontend: Made the system and software selection menus leave focus on
the same system when clearing the search rather than jumping to the
first item. Also fixed a couple of bugs in the logic for keeping the
selected item visible.
frontend: Fixed a few places that weren't showing localised system
names.
frontend: Made UI Cancel clear a search in the file manager the same way
it does on the system and sofware selection menus.
frontend: Made it possible for plugin menus to handle UI Cancel more
naturally, backing up to the previous plugin menu rather than dropping
straight back to the list of plugins. Updated the autofire, cheat and
cheatfind plugins, and fixed a few other issues in the cheatfind plugin.
debugger: Made the mount and unmount commands accept instance names as
well as brief instance names. Also updated another page of debugger
documentation.
frontend: Allow clicking the adjuster arrows on menu items. This allows
things like video options and DIP switches to be configured using a
mouse only. Also fixed a bug preventing paging menus with a mouse if
the first item scrolled off the bottom is not selectable.
debugger: Allow wplist and bplist to accept a CPU argument to list
breakpoints/watchpoints for a single CPU only.
debugger: Fixed some corner cases in address space syntax in memory
accesses, and allowed memory region accesses to use tags relative to the
visible CPU.
emu/softlist.cpp: Ignore notes elements when loading software lists.
It's effectively a comment that isn't a comment syntactically, it's
being used for things that are not useful to display in the internal UI,
and it slows down startup.
docs: Updated three more pages of debugger documentation. Also updated
more of the built-in debugger help.
minimaws: Fixed up schema for software list notes, made sofware list
notes display initially collapsed.
* Expanded VRC4 CHR bank regs to 9-bit. This functionality is verified on Konami VRC4 hardware as well but is only used by clones (World Hero here).
* Removed board for World Hero. Its VRC4 clone chip is under a glop top but is thought to be identical to Konami's.
* Reimplemented TF1201 (Lethal Weapon) as a VRC4 subclass. Its clone chip is only known to differ by the IRQ reload bit, which it ignores.
* Reimplemented Shui Guan Pipe as a VRC4 subclass. Its clone chip has different PRG banking but is otherwise standard.
Software list items promoted to working (nes.xml)
---------------------------------------
Gimmick! (Asia, pirate)
Lethal Weapon (China)
World Hero (Asia)
World Hero (Asia, alt)
Got rid of one of the UI audit inputs. There only needs to be one, and
the options can be presented in the confirmation menu. Two secret
keystrokes is too confusing. Also got rid of the long-obsolete UI
Toggle Debugger input.
Added audit media button to the toolbar so it's a bit less opaque, and
it can be accessed with a mouse/trackball (not just by knowing the key
mapping).
Made default I/O port names localisable.
Made autofire plugin save port fields using the { port, mask, type }
tuple, the same way MAME does. Unfortunately this will break existing
autofire configuration, but it should be more stable going forward.
Added some more UI keys to the default key mappings documentation.
* frontend: Added support for message context to localisations.
* frontend: Added string_view versions of the message lookup functions.
* frontend: Added a few more folder options to the internal UI.
* emu/softlist.cpp: Use more appropriate containers.
* Switched to Python 3 by default - this will become a requirement.
* Updated msgfmt.py for message context support.
* frontend: Show all software item info in the internal UI.
* frontend: Search alternate titles in software selection menu.
* 3rdparty/utf8proc: Updated to v2.6.1 (has several fixes).
* frontend: Added software filters for common info fields.
* frontend: Allow UI manager to hold onto persistent session data.
* frontend: Cache software lists for eight machines.
* frontend: Added support for loading localised system names.
* frontend: Add UI for selecting localised system names.
* softlist.cpp: Add support for a 'notes' field to store information about a software list or software list item. [Wilbert Pol]
* Add software list and software notes to minimaws
* Turned `core_file` into an implementation of `random_read_write`.
* Turned PNG errors into a standard error category.
* Added a helper for generating what look like derived classes on-the-fly.
Added comments with V.24 interchange circuit numbers and names to
rs232.h to make the meanings of the abbreviated signal names clearer.
Moved a few slot card classes out of headers and into anonymous
namespaces to reduce compile depedencies and exported symbols.
Transliterated a Korean NES game title.
New clones marked as NOT_WORKING
--------------------------------
PC-8001mkIISR [anonymous]
* Generate a new pc8001_flop.xml list, based off Neo Kobe dumps;
* Move several items from pc8801_flop.xml to the new pc8001_flop.xml;
* Generate new lists for pc8001mk2_flop.xml and pc8001mk2sr_flop.xml;
* Hook aforementioned lists where they belongs
( i.e. N-Basic list is now shared between pc8801.cpp and pc8001.cpp,
N80 list belongs to pc8001mk2 and pc8001mk2sr,
N80SR list belongs to pc8001mk2sr alone)
* upd3301.cpp: fix scrolling glitch when unthrottled
* pc8001.cpp: fix machine configs inheritance
* pc8001.cpp: constexpr the XTALs
* pc8001.cpp: allow to enter into N80 BASIC mode for mk2 machines
* Ported pc80s31k to device interface, and hooked it up to pc8001
* Fix validation errors
* Misc documentation updates
* uPD3301.cpp: implement bulk of attribute fields
* upd3301: fix olyboss compile and crashing, add rvv signal
* upd3301.cpp: fix last value of attribute row (7narabe), fix graphic mode when in width 40 (15puzzle)
* upd3301.cpp: consider an attribute end of 0 equal to max size, fixes starfire
* upd3301.cpp: rvv is definitely a global reverse rather than acting on palette for PC8001, document flgworld attribute weirdness (double somersault)
* pc8001_flop.xml: QA selected SW
* pc80s31k.cpp: split into PC80S31 (2d) and PC80S31K (2d/2dd/2hd) devices, rearrange disk bioses
* pc8801.cpp: inherit pc80s31k device and kill off FDC legacy code
* pc80s31k.cpp: documentation updates
* pc8001_flop: move Magic Copy and a alt versions of ay1 and 4d house in here
* pc98.xml: move daivacal from PC88 since it really belongs here
* pc8801_flop.xml: major QA testing on suspicious floppy activities
* pc8801.cpp: remove logging of High [TV]RAM
* pc8801_flop.xml: fix rogue extra comment closing
* pc80s31k.cpp: mailbox the PPI ports, fix barbatus booting;
pc80s31k.cpp: allow filemst to boot, and add note about its unemulated
extended HW;
* upd3301.cpp: convert AT1/AT0/SC to an aggregate variable
* upd3301.cpp: convert attribute fetch to be a client delegate
* pc8001.cpp: move some shared functions to pc8001_base_state
* pc8001.cpp: add DMA functions
* pc8001.cpp: add extension setter for 24KHz mode (which will be used by PC-8801 once implementation is merged)
* pc8801_flop.xml: fix description duplicate
* Bulk replace pc8*_flop.xml capitalized Alt into lowercase
* pc80s31k.cpp: add space.unmap() for terminal_count_r, reorder headers, make constructor trampoline protected
* Standardize Daiva titles across XMLs
* pc8801_cass.xml: revert of software name t[ape] postfixes
* pc8801_flop.xml: more identification of N/V1 BASIC SWs
* If a delegate is set to a functoid (e.g. a lambda) with a signature
that is an exact match for the delegate's signature, it will be bound
directly. If arguments or the return value need conversion, a static
adaptor will be generated. This removes unnecessary indirection
through std::function::operator().
-Added a few more documentation comments.
* Filled in proper screen parameters for goldnpkr, witchcrd and
megadpkr. There may be other games that use different parameters.
* Demoted megadpkr and megadpkrb to not working as they can only boot
once before writing timekeeper data that prevents booting again.
-Tidied up a few drivers a little.
- Remove opresolv.h from emu.h and some other base headers
- Split legacy floppy image class into a separate file
- Clean up a lot of #includes in src/lib and src/tools/imgtool
----------------------------------
Recel Bios
Alaska
Hot & Cold
Screech
Mr Evil
Torneo
Crazy Race
Fair Fight
Poker Plus
Mr Doom
Cavalier
Swashbuckler
Don Quijote
The Flipper Game
Black Magic 4 [Robbbert]
- Modified MMC1 base class (SxROM) to have outer bank base/mask to make it extensible by multicarts.
- Implemented two boards, reset-based SxROM and a 2-in-1 by TXC, as proof of concept.
- Marked Operation Wolf games as partially supported due to zapper inputs not working.
- Marked Space Shadow as not supported since it requires the extra buttons on the Bandai Hyper Shot gun.
New working software list additions (nes.xml)
-----------------------------------
1997 Super HiK 4 in 1 (JY-021) [MLX]
1995 Super HiK 4 in 1 (JY-022) [NewRisingSun, taizou]
1996 Super HiK 4 in 1 (JY-051) [NewRisingSun, taizou]
2 in 1 Uzi Lightgun [CaH4e3]
cchasm.cpp: Combined source files, added I/O port finder, reduced audio
levels to avoid hitting the limiter.
redalert.cpp: Converted sound boards to devices and removed a couple of
trampolines, making the driver state class considerably tidier.
bus/amiga/keyboard, bus/sunkbd: Put a bunch of implementation classes in
anonymous namespaces, getting implementation details out of headers and
out of the global namespace.
* The UI controls are described as zoom in/out, but they had the
opposite effect on the palette and tile viewers. That has been
changed to make them consistent with the tilemap viewer.
* Made the default zoom key not act as a toggle. People are familiar
with the function of Ctrl+0/=/- in web browsers, so making them behave
similarly in MAME should make it more approachable. Also added the
default zoom key to the relevant documentation page.
* Implemented the default zoom key for the palette and tile viewers.
* In the tilemap viewer, if the view is in default expand to fit mode,
zoom in/out starting from the actual zoom ratio. Once again, this
behaves more like the zoom controls in a web browser displaying an
image so it should be more intuitive.
* Made more messages from the tilemap viewer localisable.
-util/zippath.cpp: Fixed MT08074.
* There were multiple issues at play here. After #8443 was applied,
is_root was simply never returning true on Windows, as OSD_WINDOWS
isn't actually defined outside libosd and libocore. This caused
phantom parent items to appear in disk roots on Windows, but it meant
that the check in zippath_resolve would always fail so the trailing
backslash would be trimmed. Fixing the macro test in is_root meant
the trailing backslash from C:\ would no longer be trimmed, which
caused the stat in zippath_resolve to fail.
-bigbord2.cpp: Hooked up floppy DRQ that had somehow got lost.
-Reduced tag map lookups in several drivers and devices.
-util/coretmpl.h: Removed an overload of bitswap that can be avoided
using if constexpr.
-Added doxygen comments to some classes, and fixed several doxygen
warnings.
-util, osd: Test for _WIN32 rather than WIN32.
* In C++17 mode, WIN32 is no longer a predefined macro, although various
things in 3rdparty define it to maintain legacy support. We're better
off moving forward anyway for when WIN32 disappears entirely. (WIN32
is not a reserved name, while _WIN32 is, starting with an underscore
follwed by an uppercase letter.)
emu/render.cpp: Use I/O filter for zlib decompression, avoiding the need
to use zlib directly.
audo/bally.cpp: Moved several constructors out of the header, fixed a
save state issue, and made outputs use finders.
exidy.cpp: Split up state class and reduced reliance on driver init
functions.
Changed various drivers to use output finders.
- Reduced redundant code by making "kasing" device parent class for sglionk/sgboog. The latter are identical save for the extended register/address scrambling.
- Eliminated hosenkan device altogether (mapper 182). It is identical to sglionk (mapper 114).
First major step in splitting up machine classes in NEC PC98 family tree:
* Splits up derivative HWs into own state machine and files (pc98ha.cpp, pc9821.cpp and pc9801_epson.cpp);
* Adds a preliminary uPD4991a parallel RTC, used by pc98ha;
* Fix -26, -86, -118 C-bus sound board dips or jumper settings;
* Fix default sound card for pc9821 (-86) and pc9821ce2 / pc9821cx3 (-118);
* Adds preliminary MAD Factory Otomichan-kai C-bus sound board;
* Adds boilerplate code for C-bus installing board I/Os, avoiding the possible inconvenience of board(s) getting silently unmapped by other installed boards;
* Major refactoring of HW dip switches readouts, using required_ioports instead of scattering things around in PPI hooks;
* Extensive QA rundown, including research on missing features and undumped machines.
pc9801.cpp: Don't passthrough mouse irq frequency when cycle setting is setup too, fixes jastrike mouse input on options menu.
pc9801.cpp: Fix kanji RAM window LR readback, makes telenetm to properly display 8x16 chars on RS and derivative machines.
pc8801.cpp: fixed OPNA RAM readback, allowing SWs to playback ADPCMs properly.
New machines marked as NOT_WORKING
----------------------------------
PC-98LT [anonymous]
PC-98HA "Handy98" [anonymous]
PC-9821Nr15 (98NOTE Lavie) [flyingharuka]
PC-9821Nr166 (98NOTE Lavie) [flyingharuka]
PC-9821Nw150 (98NOTE Lavie) [flyingharuka]
PC-9821Ra266 (98MATE R) [flyingharuka]
PC-9821Cx3 (98MULTi CanBe) [flyingharuka]
PC-9801VX [qazmko1029]
PC-9801US [CoolMod]
Added more modern generic I/O interfaces with implementation backed by stdio, osd_file and core_file, replacing io_generic. Also replaced core_file's build-in zlib compression with a filter.
unzip.cpp, un7z.cpp: Added option to supply abstract I/O interface rather than filename.
Converted osd_file, core_file, archive_file, chd_file and device_image_interface to use std::error_condition rather than their own error enums.
Allow mounting TI-99 RPK from inside archives.
- Implement video slot and mono graphics video card
- Hook up CIO, SIO, RTC, PIT, SN76489
- Add daisy chain for Z80 devices and hook it up to the PIC
- Add system control ports
Removed support for DirectInput 7 and earlier. It hasn't been tested in
years, and it's not relevant on any supported OS. DirectInput is
effectively finalised at version 8, and is unlikely to get an API update
in the future.
Use more string[_view] and fewer C strings, and tightened up scope of a
few things.
neogeo.cpp: Added newer Universe BIOS versions to irrmaze - this allows
the Japanese version to be seen by switching the region, and joystick
play using a cheat (although 2.3 and later also support trackball play,
a joystick is still required for setup and to use the in-game menu).
Also changed roboarma to roboarmya, as this matches the software list,
and we prefer to make clone set names using suffixes.
neogeo.xml: Added irrmaze with usage note explaining that newer
Universe BIOS versions support joystick play as a cheat (must be enabled
each session - Universe BIOS does not save cheat state to NVRAM).
lwriter.cpp: Got rid of a couple of literal tags, make use of Allman
style a bit more consistent, and got rid of a redundant part of a
bitwise or expression.
runaway.cpp: Merged video code into main driver file, split state
classes, reduced a bit of redundancy, eliminated runtime input tag
lookups, and generally tidied up code.
dai3wksi.cpp: Noted manufacture in description for runaways.
-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.
New working software list additions
-----------------------------------
2A03Puritans [rainwarrior]
E.T. [KHAN]
Glider [anonymous]
* mapper 29: support should be complete but there are few if any other homebrew roms to test against
* mapper 30: only supports the most basic board that doesn't use flashable memory - tested on a dozen or so roms, all working
* add a game each for mappers 29 (Glider), 30 (E.T.), and 31 (2A03Puritans) so there is something in the software lists to actually test against. Glider is discontinued by manufacture, the other two are freely available from their authors.
* various naming clean ups, like BTL- prefixes for things that are not bootlegs
-----------------------------------
lk3000: Calculator, Electronic Notebook [hap, Sean Riddle]
New NOT_WORKING software list additions
---------------------------------------
lk3000: English-German [hap, Sean Riddle]
* Removed unnecessary VRAM read trampolines.
* Use buffered_spriteram16_device for buffered sprite RAM.
* Derive clocks from crystals.
* Reduced runtime tag lookups, unnecessary region size.
* Fix naming, spacing.
* Use generic graphics layouts, fix color usage of gfxdecode related to palette size.
* Restrict rowscroll to screen clipping rectangle.
* add some dumped data to the innotab2 driver, split from storio [Sean Riddle]
* new NOT WORKING software list entry
------
leapfrog_zippity_cart.xml:
The Princess and the Frog - Magical Bayou Adventure (500-13779-A) (UK) [Sean Riddle]
* new NOT WORKING machines
-----
Compact Cyber Arcade TV - 120 in 1 (JL2370) [Sean Riddle, taizou]
Leapster Explorer [David Haywood]
* new NOT WORKING software list entries
------------
leapfrog_leapster_explorer_cart.xml:
TinkerBell and the Lost Treasure (500-14226-A) [Dave "Foxhack" Silva]
Mr. Pencil Saves Doodleburg (500-14221-A) [Dave "Foxhack" Silva]
Adventure Sketchers (500-15340-A) (Creativity Learning Game) [Dave "Foxhack" Silva]
* new NOT WORKING software list entries
-------
vtech_innotab_cart.xml:
The Penguins of Madagascar (80-230500, US) [Dave "Foxhack" Silva]
Teenage Mutant Ninja Turtles - Turtle Power! (80-231300, US) [Dave "Foxhack" Silva]
* mobigo_cart.xml: remove jakenevalt, it's a bad dump "80-252800 - Jake and the Neverland Pirates (US).bin FIXED BITS (xxxxxx1xxxxxxxxx)"
* mobigo_cart.xml: remove dprinces, it's a bad dump "mobigo_251100.bin BADADDRxxxxxxxxx-xxxxxxxxxxxxxx"
* new NOT WORKING software list entries
------
mobigo_cart.xml:
Disney/Pixar Cars 2 (USA, rev 2?) [Sean Riddle, Dave "Foxhack" Silva]
Thomas & Friends - Really Useful Engines (USA, rev 2?) [Sean Riddle, Dave "Foxhack" Silva]
* - added German ltleappad BIOS [Team Europe, Sean Riddle]
* new NOT WORKING software list entries
------
vtech_storio_cart.xml:
Cars 2 (USA) [Sean Riddle, Dave "Foxhack" Silva]
Dora and the 3 Little Pigs (USA) [Sean Riddle, Dave "Foxhack" Silva]
Hello Kitty's Surprise (USA) [Sean Riddle, Dave "Foxhack" Silva]
Disney Princess - A Gift From The Heart & Belle's Special Treat (USA) [Sean Riddle, Dave "Foxhack" Silva]
TinkerBell and the Great Fairy Rescue (USA) [Sean Riddle, Dave "Foxhack" Silva]
Mickey Mouse Clubhouse (USA) [Sean Riddle, Dave "Foxhack" Silva]
* update notes in storio xml
* add some more known cartridge info to juicebox.xml
- Use memory taps instead of directly installing into the memory map
- Use address_maps to specify address ranges
- Add missing save states
- Support the BennVenn SD Loader (preliminary)
- Move lightpen skeleton to a device
* Split YM2154 into a separate device
* Created fake YM2154 ROMs as placeholders
* Created new BBD sound device in src/devices/sound/bbd.cpp
* Created new mixer device in src/devices/sound/mixer.cpp
* Connected YM2154 and BBD devices
* Approximated BBD driver behavior
* Exposed analog sliders as adjusters (accessible via ` menu)
* Added sliders to layout and animated them
* Sync with upstream. I/O callbacks are now consolidated into a single read callback and a single write callback, with an access type specifier.
* Initial working implementation of YM278B. Most features implemented, except vibrato.
* Implement vibrato and status register flags. Fix envelope rate computation.
* Rename ymfm_interface::external_type to access_class and clean up the fallout.
* Formally replace the old YMF278B engine with the one from ymfm
* Rotated YMF278B outputs into a more logical order.
* Re-evaluted envelope calculations and 2x works better than the weird 15/8 I came up with before. Also changed the way FM resampling is computed to be more precise (and simpler). Turned off extraneous debugging.
* Start of/reset to a null state with no loaded waveforms.
* Fix YM2608 I/O ports.
Software list items promoted to working
---------------------------------------
vsmile_cart: V.Smile Smart Keyboard (USA), V.Smile Clavier Tip Tap (France), V.Smile Schreibspaß (Germany) [Ryan Holtz, PulkoMandy]
ymfm: refactor the code into a separate 3rdparty library
* Moved ymfm core implementation to 3rdparty/ymfm
* Split out each family (OPM/OPN/OPL/etc) into its own source file
* Added preliminary OPQ and OPZ support, still WIP
* Put all 3rdparty code into its own namespace ymfm
* Fixed various bugs reported in #8042
* Created interface class for communication between the 3rdparty engine and the emulator
* Standardized MAME implementation of all Yamaha devices based on a template class
* Created standard base class ym_generic that can be used when multiple YM chips are swapped in
* Changed YM2203/2608/2610 to embed a YM2149 as a subdevice instead of deriving from ay8910_device
* Also provided compile-time option to use a simplified built-in SSG rather than using MAME's at all (currently off)
* Consolidated MAME header files from one-per-chip (ym2151.h, ym2203.h, etc) to one-per-family (ymopm.h, ymopn.h, etc)
- Hooked up PIC and connected keyboard and vblank interrupts
- Implemented HLE keyboard (all keys mapped, using the translation ROM for keycodes)
- Increased shared memory to 40k
- Fixed interrupt flags register
- Implemented cursor and roll offset
* OPL prep. Define FAMILY constant in register classes, and use that instead of template specialization for family-specific behaviors. Expand channel masks to 32 bits. Add is_keyon() helper.
* Made FM channel and operator mapping more flexible. Operators are now owned by the engine and can be dynamically assigned to channels. Register classes now provide a mapping between a linear set of operators and channels. The register data array is now a regular array instead of a vector.
* Minor change for consistency.
* Introduce OPL registers and create a ymopl_engine. Add support for sustain-less notes and the OPL envelope clocks (which does not divide by 3).
* Moved keycode calculations into register class. Removed unnecessary recalc in phase generator. Lined up OPL frequency, feedback, algorithm, and total level.
* Implement key scale level and OPL-specific LFO and phase handling.
* Create new YM3526 device based on new OPL. Fix keyon and sustain behaviors.
* Fix weird OPL multiple values. Clean up and further document OPL LFO.
* No busy flag on OPL, so no need to do the work. Add a right shift of 1 to the output stage to line up volume with old implementation.
* More compact way of representing key scale level values.
* Move the KSL bitswap into the registers since it's apparently fixed in OPLL and perhaps others.
* Add support for ryhthm generation in OPL. Change compute_volume to take a phase value directly, and expose operator phase.
* Fix OPL timers.
* Start LFSR with a non-zero value to ensure it actually starts generating for OPL.
* Fix silly bug in sustain logic for OPL. Fixes a lot of previously missing sounds.
* Create OPL2 engine. Add waveform support for OPL2/3 waveforms.
* Wire up YM3812 to the new OPL2 engine.
* Reset OPL timers when the mask is written as well.
* Manage rhythm key ons separately. Fixes Wardner awfulness.
* Explicitly make channel logic handle 0, 2, or 4 operators rather than checking each one for null. Also simplify the combining logic for the 2 operator case.
* Reverse bit order of LFSRs to make things a little simpler. Fix OPL LFSR so that it has its full 23-bit period.
* Change outputs along the path to arrays rather than stereo items. This allows for four channel output. Also add a constant for the number of outputs to the register class.
* Move status register bit definitions to the registers class. Generically support the IRQ bit.
* Create shared helpers for FP encode/decode/roundtrip and use them throughout. Also update TMNT to use the FP decoder.
* No need to clamp when using the roundtrip.
* Clear the EOS flag when execute is turned off on ADPCM-B. Fix combine_status in YM2608 to ignore previously set flags.
* Add missing note_select in base class. Don't add 1 to the OPL release rate.
* Move Y8950 over to new OPL engine.
* Remove old y8950, along with fmopl and ymdeltat
* Add updates prior to status reads for ADPCM systems.
* Add status_mask and irq_reset logic into the core. Clean up documentation on family-specific registers. Includes some temporary gross debugging stuff.
* Made debugging less gross by giving operators and channels a reference back to their owner.
* Fix status port address in OPL chips. Reduce ADPCM volume to match previous implementation.
* Fix Y8950 ADPCM start. Return masked status properly.
* Initial cut at OPLL mapping.
* Add YM2413 support based on ymfm; renamed vrc7snd to ds1001; added YM2423 amd YMF281 variants as well. Instrument data is now loaded via external ROMs. Added 'depress' envelope support to the core engine. Fixed a number of issues in the ymopll_engine. Documented hard-coded values. Moved register clear into register-specific reset.
* Add missing identifier.
* Y8950 is OPL not OPL2.
* Some documentation cleanup. Consistency fixes in the register classes.
* Consolidate large comments. Add support for delayed modulators for OPL. Broke out 2-op and 4-op cases to help simplify logic. Fixed overflow handling in fp encoding.
* Fix silly bug.
* Changed operator assignment mechanism to be more readable. Added prepare method to be called at the start of sound update. Added ALL_CHANNELS constant to register files. Updated all consumers to call prepare and use constants where applicable.
* Move YMF262 and YMF278B to use new FM engine for OPL3/4. Fix several issues in OPL3 logic, which now seems to work ok.
* Minor fixes. More documentation.
* Fix MSVC build.
* Add caching of data to prepare methods to improve performance. Moved non-register decoding logic out of the .h file and into .cpp file. Move phase_step calculation into register class.
* More notes. Removed keycode from cache. Split 2/4-operator outputs into separate functions. Changed OPN/OPL to use templates for variants. Added channel/operator_offset helpers.
* Fairly substantial overhaul of register interface. Register interface is now stateless and contains family-specific state. Channel and operator accessors are prefixed by ch_/op_ now and require an offset to the specific channel or operator. Moved LFO/noise generation into register class, along with keyon logging.
* Add noise back to OPL/OPLL
* Added early-out for low envelope. Moved waveform logic out into family-specific code. General clean up of ordering. Reduced family base class to minimal needed.
* More aggressively track active channels to help performance.
* Use only summing outputs for consideration of active channels. Centralize the logic of determined 4-op vs 2-op.
* More conservative channel deactivation.
* Add helper to compute the sample rate and use it in all implementations. Remove unneeded chnum/opnum members.
* Fix error in YM2612 that caused crashes.
* Switching parameters and locals to 32-bit values gives a noticeable performance boost. Checkpoint 1.
* More moving to 32-bit values. Checkpoint 2.
* Last of the 32-bit promotions.
* Ensure SSG inverted flag is only tested on systems with SSG support in the innermost loops.
* Make most constants 32-bit as well. Expose some constants via the engine class.
* Expand waveforms ahead of time. Optimize the attenuation lookup a bit.
* If volume is low, don't erase output, just leave it alone. Fixes missing sound in raimais.
* Replace a couple of magic numbers with constants.
* Normalization of FM engine usage across consumers.
* Removed explicit external prepare() call; this logic is now automatically done after writes and periodically. Changed OPL/OPLL to use native formats for block/fnum. Fixed waveform generation. Fixed PM and AM depth on OPL/OPLL.
* Cache multiple value. Clean up output handling a bit.
* Move multiple caching ahead of phase step caching.
* Fully split OPLL from OPL. Remove many hacks now that OPLL registers can have state. Created shared helpers between OPL/OPLL. Removed more aggressive channel disables since it was not rhythm friendly and didn't really buy much.
* Remove old comment
* Remove bad write in OPL mode case. Fixes fsoccer intro. Only call set_reset_status() once per mode call.
* Remove FM output boost in YM2608/2610. Not sure why I did that. Better matches previous volume now.
* Make AM/PM logging less confusing.
* Let's actually set DYNAMIC_OPS properly, eh?
* Improved logging.
* Comment cleanups. Add constant for dynamic phase. Pre-shift sustain level. Srcclean.
* Fix memory regions on YM2608 games.
* Clean up ymadpcm to line up with recent ymfm changes.
* y8950: Reshuffle read/write handlers. Rename them to less confusing names.
* ym2413: Reshuffle read/write handlers. Rename them to less confusing names.
* ym3526/ym3812: Reshuffle read/write handlers. Rename them to less confusing names.
* ymf262: Match read/write details to datasheet and previous tests.
* Use a constexpr function instead of macro for packing operator numbers. Pre-compute OPM LFO waveforms.
* Generate OPL4 engine to support the proper clock divider and new flags. Update YMF278B to use FM timers and status rather than replicating the logic.
* Fix 4-operator enable on new OPL4 instance.
* Fix FM downsampling and adjust balance in YM278B.
* Moved sprite handling to a device.
* Adjusted audio balance on mechatt (channel 0 was overpowering everything).
* Adjusted priority handing on mechatt (planes now correctly rise from underground hanger on stage 3, train carts in later level).
* Split driver in two, general refactoring etc.
* Removed player 2 inputs from mechattu1 - it doesn't respond to them at all.
----------------------------------
Bee-Zerk [Bad A Billy, Smitdogg, The Dumping Union]
unknown VLC multigame [Bad A Billy, Smitdogg, The Dumping Union]
What's missing:
- parameters (like the disk name when it exists)
- possibly a cleanup of ram_open and friends (but not sure of the appropriate direction in which to go)
new WORKING machines
-------
TV Board Games 6-in-1: Silly 6 Pins, Candy Land, Hungry Hungry Hippos, Match 'em, Mixin' Pics, Checkers [Sean Riddle, David Haywood]
TV Board Games 6-in-1: Simon, Battleship, Mouse Trap, Checkers, Link-a-Line, Roll Over [Sean Riddle, David Haywood]
New BSD-licensed implementation of Yamaha OPN and OPM FM audio chips, along with new device drivers for YM2203, YM2608, YM2610, YM2610B, YM2612, YM3438, and YM2151 based upon these.
New working machines
--------------------
Basketball (Mattel) [hap, Sean Riddle]
QuizKid Speller [hap, Sean Riddle]
New working clones
------------------
QuizKid Racer (MM5799 version) [hap, Sean Riddle]
If you want to build 64-bit and 32-bit in the same tree without them
stomping on each other, use SEPARATE_BIN=1 (you already need to do this
for TOOLS=1 anyway).
* Added note explaining that view options saved in machine CFG take
precedence over INI/command line.
* Added prerequisites for building HTML documentation under MSYS2 and
Fedora Linux.
* Explicitly mentioned that Ubuntu modifies GCC to enable "fortify
source" by default in the relevant section.
* Removed obsolete reference to glibstdc++6.
* Re-formated compiling guide source (hard wrap at 80 columns,
typographical quotes, code blocks for sample command lines).
-genie.lua: Show GCC ignored attribute warnings, but don't fail for
them.
- Separate driver from cosmic.cpp
- Add MC6845 CRTC and use it for all video updates
- Configure screen with raw parameters
- Add support for display flipping in cocktail mode
* Separated Acorn IOC and MEMC into devices.
* Emulated 8051-based serial keyboard.
* acorn_machine/memc.cpp: Ensure only one logical page is mapped to a single physical page.
* Fixed RISC OS POST IOC register test.
* aa310.cpp: Added debug code to display RISC OS POST failures.
-machine/archimedes_keyb.cpp: Dumped Acorn Archimedes keyboard microcontroller. [Phil Pemberton]
* formats/hti_tape.cpp: Added support for Manchester encoded DC100 cassettes.
* machine/hp2640_tape.cpp: added emulation of DC100 tape drives.
* machine/hp_dc100_tape.cpp: Added unit name display.
- sa1110: Added rudimentary support for the ICP and DMA blocks. [Ryan Holtz]
- sa1111: Various changes. [Ryan Holtz]
* Hooked up I2S audio DMA support.
* Hooked up IRQ support.
* Hooked up basic GPIO support.
- uda1344: Added initial pass at audio support, based on DMADAC. [Ryan Holtz]
- sed1356: Added support for BitBLT solid-fill command. [Ryan Holtz]
- jornada: Added more keys, touch pen support, and fixed EEPROM access. [Ryan Holtz]
* New machines marked as NOT_WORKING
----------------------------------
AlphaSmart 3000 [TeamEurope, ClawGrip]
* New NOT_WORKING software list additions
---------------------------------------
alphasmart_kapps.xml: Accelerated Reader (1.3, English (UK)), Accelerated Reader (1.2, English (UK)), AlphaQuiz (3.1, English (UK)), AlphaWord Plus (3.4, English (UK)), Beamer (1.01, English (UK)), Calculator (3.02, English (UK)), Control Panel (1.07, English (UK)), Control Panel (1.04, English (UK)), KeyWords (3.6, English (UK)), KeyWords Wireless (4.2, English (UK)), MathFacts in a Flash RP (1.3, English (UK)), MathFacts in a Flash RP (1.1, English (UK)), MathFacts in a Flash (offline) (1.2, English (UK)), MathFacts in a Flash (offline) (1.0, English (UK)), Neo Font - Large (4 lines) (1.0, English (UK)), Neo Font - Medium (5 lines) (1.0, English (UK)), Neo Font - Small (6 lines) (1.0, English (UK)), Neo Font - Very Large (3 lines) (1.0, English (UK)), Neo Font - Extra Large (2 lines) (1.0, English (UK)), Responder (1.2, English (UK)), SpellCheck Large USA (1.03, English (UK)), SpellCheck Large USA (1.02, English (UK)), SpellCheck Small USA (1.03, English (UK)), SpellCheck Small USA (1.02, English (UK)), SpellCheck Spanish (1.0, Dutch), Text2Speech Updater (1.4, English (UK)), Text2Speech Updater (1.3, English (UK)), Thesaurus Large USA (1.1, English (UK)), Thesaurus Large USA (1.0, English (UK)), Thesaurus Small USA (1.1, English (UK)), Thesaurus Small USA (1.0, English (UK)), Wireless File Transfer (1.1, English (UK)), Wireless Updater (2.0, English (UK)), Wireless Updater (1.3, English (UK)) [ClawGrip]
* Fixed a couple of fixed-size buffers in Windows OSD code.
* Marked MAME as aware of long paths in Windows manifest.
* Made a cleaner, thread-safe API for getting volume names.
* Added compile-time option to disable recompiler W^X mode.
* NuBus image device current directory doesn't need to be pinned.
- render.h: Split out layout class declarations into rendlay.h, with some adjustments for the resulting incomplete types (std::reference_wrapper unfortunately does not allow these by C++17 rules)
- rendlay.h: Move old header contents to layout/generic.h
- vecstream.h: Revert changes made in aa29519528. The std::string_view conversion has been made a non-member function (util::buf_to_string_view) and moved to coretmpl.h.
- strformat.h: Remove the using declaration importing util::string_format into the global namespace. It has been moved to emucore.h and a few tool sources; other references have been qualified.
- osdcore.h: Split out file, directory and path classes and methods to a new header (osdfile.h), Doxygenizing the documentation comments.
- Disaggregate many #includes that were including other standard or custom headers. emu.h now includes basically the same things that it did, but other headers have been streamlined; for instance, emucore.h no longer stealth-includes osdcore.h several ways.
* shuffle a few things around re: the BBL ST2302U based handhelds, give bbl338 its own map due to internal ROM etc.
* fake some interrupts on bbl338
* better document test draw command, so that we can verify we're in test mode
----------------------------------
Twin Basket [Museo Del Recreativo]
-st62xx: Various changes. [Ryan Holtz]
* Fixed RETI and LD rr,A opcodes.
* Optimized internal register handling.
* Converted to use logmacro.
* Added initial timer support.
* Started moving Lua class reference to docs. Expecting people to find
the class reference material in the source isn’t going to help make it
approachable. The docs allow longer explanations, better formatting,
and cross reference links.
* Added another layout scripting example to the docs.
-goldnpkr.cpp: Minor clean-up.
* Improved the short names for Witch Card and Witch Game clone sets.
* Made Witch Up & Down artwork clickable.
* Added working Video Klein sets where the parent is a working Video
Klein set to the tiny subtarget.
* Removed history from the header comment - we have version control for
a readon.
* set additions, see main decription
* not working additions, see main description
* more not working bits, see main description
* more not working additions, see main description
* consistency fix
Added methods for enabling and disabling breakpoints and watchpoints,
and made debugger views update when breakpoints/watchpoints are
manipulated from Lua. Made breakpoints and watchpoints objects rather
than tables. (It’s not possible to enable/disable a breakpoint or
watchpoint from the object itself, you have to go through its owners'
debug interface.)
Exposed more device_t members for dealing with child/sibling tags and
devices. Also provided a way to get regions/shares/banks from a device
using relative tags rather than going through the memory manager with
absolute tags.
* ms32.cpp: fix/document memory map
* ms32.cpp: preliminary CRTC hookup
* ms32.cpp: implement sprite direction bit, nuke per-game kludges
* Move note where it belongs (nw)
* ms32.cpp, bnstars.cpp: correct sprite RAM ranges
* tetrisp2.cpp: kill some legacy screen params, need those anyway
* Improve notes (nw)
* ms32.cpp: move CRTC to a new sysctrl device
Also added a bare-bones Python script for generating new device file
defs to src/mame/etc
* gen_python_def.py: address issues, misc improvements
* Kill device_memory_interface in favour of direct address_map, QA always broken flip_screen in flags
* ms32.cpp: reinstated flip screen thru callback
* ms32.cpp: Make mixing to honor cliprects instead of erratic screen.width / height call
* Need a safeguard somehow, and a symbols build doesn't help here lalala
* Fix notes, cannot repro the bug, next
* Move irq assert/clear lines to device, add preliminary prg timer, make 30 Hz irq to behave like one.
(Note: very untested, feedback is appreciated)
* Send a prg timer ack if irq is disabled
* Misc cleanups
* Nuke emu_timers in favour of configure_scanline, preliminary bnstars1 hookup
* No magic number please
* Add sysctrl to tetrisp2.cpp, move rockms stuff into its own state machine, misc
* Kill off 30 Hz refresh rate hack in stepstag/vjdash sub screens
* Flag all those xtals as unknown
* Move has_zoom/has_yuv in ms32_sprite init constructor, fix dummy config bug with stepstag right screen update
* jalcrpt.h doesn't belong to tetrisp2.cpp, errata on sysctrl reset line
* Fix build
* Left-over
* Fix bool comparison to itself (blame JS habits), nuke bnstars1 mahjong
switch case altogether.
* Notes
* Fix bnstars1 crash
* update_color fn doesn't work without a memory_share_creator, documentation
* Translate clamp_to_12bits_neg to a constexpr method
* Fix crashing in main ms32 driver, except it now has very broken priority for seemingly no reason
* Fix nasty spriteram buffer RAM allocation bug
* Make objectram_size to be calculated at init time
* First (naive) pass in moving common interface to a ms32_base_state
Move m_irqreg save state from video_start to machine_start fn;
Fix embarassing palette overflow bug in ms32.cpp;
Add bitswap for bnstars1 mahjong panel;
.bytes() -> .length() for objectram_size;
* bnstars: template video handlers
* bnstars: fix config, split sprite chips/gfxdecode/palette into two, fix palette ranges
* ms32.cpp: implement proper irq acknowledge lines
* Add config setter in sysctrl for inverted vblank/field lines, make tp2ms32 and wpksocv2 happy
* Move f1superb to own state
* MS32 merge sound maps
* Remove TIMER_DEVICE_CALLBACK_MEMBER in favour of emu_timer
The things that were previously called device iterators are not
iterators in the C++ sense of the word. This is confusing for
newcomers. These have been renamed to be device enumerators.
Several Lua methods and properties that previously returned tables now
return lightweight wrappers for the underlying objects. This means
creating them is a lot faster, but you can't modify them, and the
performance characteristics of different operations varies.
The render manager's target list uses 1-based indexing to be more like
idiomatic Lua.
It's now possible to create a device enumerator on any device, and then
get subdevices (or sibling devices) using a relative tag.
Much more render/layout functionality has been exposed to Lua. Layout
scripts now have access to the layout file and can directly set the
state of an item with no bindings, or register callbacks to obtain
state. Some things that were previously methods are now read-only
properties.
Layout files are no longer required to supply a "name". This was
problematic because the same layout file could be loaded for multiple
instances of the same device, and each instance of the layout file
should use the correct inputs (and in the future outputs) for the device
instance it's associated with.
This should also fix video output with MSVC builds by avoiding delegates
that return things that don't fit in a register.
* replaced dgun2869 dump with good one [Sean Riddle]
* also did some work on the dreamGear unit, works now
* an innotab2 driver entry was also added to hold the software list, but the ROM isn't dumped yet
machines promoted to WORKING
------
My Arcade Retro Micro Controller - 220 Built-In Video Games (DGUN-2869) [Zup, Team Europe, Sean Riddle]
new WORKING machines
------
Code Lyoko (25-in-1 handheld) [KaruzoHikari, Team Europe, David Haywood]
My Arcade Pac-Man Pocket Player (DGUNL-3227) [Sean Riddle]
new NOT WORKING machines
------
Palace Arcade [Sean Riddle, Kamaal Brown]
new NOT WORKING Software List entries
------
vtech_innotab_cart.xml : Mickey Mouse Clubhouse (UK) [Team Europe]
-netlist: Give devices the C++17 namespace treatment.
-Tidied up compiler warning options for 3rdparty.
-emu/render.cpp: Exposed a few information view item properties.
I've guessed whether break or [[fallthrough]] is appropriate. In cases
where it looked particularly suspicious, I added a FIXME comment. All
of these changes should be reviewed by someone familiar with the code.
* Removed .mask(), as it’s not reliable in the general case.
* Added asserts to things that assume power-of-two sizes.
* Got rid of virtual qualifier on pointer-to-member operator.
* Made helpers a bit more assertive about logging warnings.
-emu/rendlay.cpp: Use delegates to avoid hot conditional branches.
-docs: Finished off description of object finders and output finders.
new NOT WORKING machines
----------------------
InnoTV [Team Europe]
new NOT WORKING software list entries
----------------------
vtech_innotv_innotabmax_cart.xml:
pawpatrl: Paw Patrol - Pups Save a UFO! (80-274103 UK) [Team Europe]
dcgcr: DC Comics - Gotham City Robots (80-274803 UK) [Team Europe]
finddory: Finding Dory (80-274903 UK) [Team Europe]
liongrd: The Lion Guard (80-275203 UK) [Team Europe]
new WORKING software list entries
----------------------
gameking.xml:
mc_4v07a: 4 in 1 - TrojanLegend (Trojan) + HappyBall + Supermotor (Motor) + Lanneret (Hawk) (512KB cartridge) [Team Europe]
mc_4v16a: 4 in 1 - Manhunt + Bobby + Tantivy + Racing Car (512KB cartridge) [Team Europe]
- Implemented memory mapper for CP/M.
- Serial printer port.
- External RAM is now scrambled.
- SuperCart bankswitching board implemented for Aquaricart.
- Cartridge images of size 4K, 8K, 16K now supported, was previously 16K only.
new WORKING machines
-----
The New York Times Sudoku [David Haywood, Sean Riddle, Kamaal Brown]
Vs Maxx 25-in-1 (VT03 hardware) [David Haywood, Sean Riddle, Kamaal Brown]
6-in-1 Sudoku Plug & Play [David Haywood, Sean Riddle]
Plug 'N' Play 50-in-1 (DGUN-853) [David Haywood, Sean Riddle, Kamaal Brown]
new WORKING clones
-----
Mega Drive Collection Volume 2 (Radica, Arcade Legends) (UK) [David Haywood, Sean Riddle]
Super Sonic Gold (Radica Plug & Play) (UK) [David Haywood, Sean Riddle]
new NOT WORKING machines
-----
Plug 'N' Play 25-in-1 (DGUN-806) [David Haywood, Sean Riddle, Kamaal Brown]
IQuest (US) [David Haywood, Sean Riddle, Kamaal Brown]
- Added MegaDrive side ROM to sarc110 sets, moved to skeleton 'hybrid' driver based on megadriv_rad.cpp and demoted to not working for now as they're meant to boot from the MD side with the VT03 games as bonus items [Sean Riddle, Team Europe]
- Moved reactmd to a skeleton 'hybrid' driver, demoted to not working, it's also meant to boot from the MD side with the SunPlus games as bonus items.