- quizpun2.cpp, tail2nos.cpp: used finder for memory bank, small cleanups
- aerofgt.cpp, cop01.cpp, dacholer.cpp, galivan.cpp, pzletime.cpp, taxidriv.cpp, terracre.cpp, welltris.cpp: removed some custom GFX decodes in favor of the ones provided in emu/video/generic.cpp
----------------------------------
unknown game on TrueSys hardware [Jorge Silva]
New clones marked as NOT_WORKING
--------------------------------
Royal Card (stealth with NES multigame, set 2) [Jorge Silva]
Structural changes:
- amiga_copper.cpp: convert to device, added copins implementation as debugging mailbox, convert to logmacro.h;
- 8364_paula.cpp: convert audio implementation accessors from switch-case to per-channel maps;
- amiga.cpp: convert OCS/ECS/AGA chipset flavours to address_map_bank_device, currently using the older custom_chip_r/_w as a legacy trampoline that will be progressively removed once that we have working implementations of Agnus/Denise and derivatives;
- akiko.cpp: convert to logmacro.h;
- amigafdc.cpp: better elaborate QA notes, add "Trackdisk" to device long name as officially referred by Amiga SDK:
- amiga.cpp: kicked off an amiga_demos.xml SW list hookup;
Adds the following implementation detail changes:
- amigaaga.cpp: fix sprites and bitplanes in dualpf modes, fixes at very least cd32:dstreets on gameplay;
- amigaaga.cpp: fix BPLCON0 when planes == 7 is set, fixes title screen GFXs in surfninj;
- amigaaga.cpp: use HAM6 when not in AGA mode, fixes colors in cdtv:townona when run with CD32 system;
- amigaaga.cpp: fix sprite control fetches when FMODE != 0, fixes at very least Digger AGA sprites display;
- amigaaga.cpp: add extended bitplane delay hooks;
- amigaaga.cpp: fix HAM8 when in HIRES mode, fixes at least roadkill title and car screens;
- amiga.cpp: allow LOF bit to be set by writing bit 15 on VPOSW, fix roadkill AGA boot;
- amigaaga.cpp: implement Extra Half-Brite mode, used by bblow_a main menu
- amiga.cpp: disallow blitter address writes to go beyond the allocated chip RAM, fixes OCS sockid and AGA sockid_a drawing spurious filled tiles on playfield;
- amiga.cpp, amigaaga.cpp: workaround most GFX pitch corruptions, caused by implicit DDFSTOP overrunning width loop;
- amiga.cpp: allow DDFSTRT and DDFSTOP to read bit 2 in lores mode, fix swordsod GFX pitch in gameplay;
- amiga.cpp: use pf2pri for non-dual playfield, fixes alfred player sprite visibility;
- akiko.cpp: subq command adds +2 in command buffer, fixes cdtv:defcrown hardlock emulation;
- amigaaga.cpp: implement bscan2;
- amiga.cpp: disable floppy drive default for CD32;
- cubo.cpp: add inputs to eldoralg/odeontw/odeontw2;
- amiga.cpp: allow CD32 to read CDTV titles from SW list;
New NOT_WORKING software list additions
---------------------------------------
cdtv.xml: 17 Bit - Collection for Amiga CDTV, 17 Bit - Continuation Disc,
A Bun for Barney (USA), Advanced Military Systems (Europe),
American Heritage Illustrated Encyclopedic Dictionary (USA, 1991a Edition),
Barney Bear Goes to School (USA), Cinderella - The Original Fairy Tale (USA),
Defender of the Crown CDTV (Europe), Deutschland Kompakt (Germany),
Fantastic Voyage (USA), Garden Fax - Garden Plants (USA),
Garden Fax - Trees, Shrubs, Roses, and Conifers (USA),
Language TV - English (France), Lemmings (Europe), Log!cal (Europe),
Mud Puddle (USA, Multi 5), Pandora's CD v1.0 (alt), Psycho Killer (U2A2020UA),
CDTV Demo Disc (Europe), Raffles (Sweden),
Snoopy - The Case of the Missing Blanket (Sweden), Team Yankee (Europe),
The Curse of Ra (Germany),
The Demo Collection for Amiga CDTV (Europe, Black Disc),
The Hutchinson Encyclopedia (Europe),
The New Basics Electronic Cookbook (USA, 1991a Edition),
Time Table of History - Business, Politics & Media (USA, 1991a Edition),
Trivial Pursuit - The CDTV Edition (Europe, v1.0a),
Turrican (Germany, alt), Turrican II: The Final Fight (Germany, alt),
Welcome to CDTV Multimedia (USA, CDRM-499000), Wrath of the Demon (USA),
Xenon 2 - Megablast (Eng, Fra, Ger, Ita), Ten on Ten Compilation [redump.org]
------------------
BBC Micro Model B (Norway) [Nigel Barnes]
New clones marked as NOT_WORKING
--------------------------------
Cisco SIST1 Terminal [Nigel Barnes]
----------------------------------
unknown game on FR004 hardware (set 1) [Jorge Silva]
unknown game on FR009 hardware [Jorge Silva]
New clones marked as NOT_WORKING
--------------------------------
unknown game on FR004 hardware (set 2) [Jorge Silva]
unknown game on FR004 hardware (set 3) [Jorge Silva]
unknown game on FR004 hardware (set 4) [Jorge Silva]
----------------------------------
unknown PMC game [Mike Coates]
New clones marked as NOT_WORKING
--------------------------------
Boa Sorte! (Golden Poker prequel HW) [Jorge Silva]
- galaxian.cpp: added correct dip switches for redufob3 and dip locations for the redufo bootlegs [Guru]
Addressed pure virtual function call crash on end of emulation session
if you haven't explicitly removed all address space taps, memory
corruption on end of emulation session if you haven't explicitly removed
all address space change notifiers, and symbol being garbage-collected
out from under you while you have parsed expressions or other symbol
tables that depend on them.
Removed the copy constructor for parsed expressions as the underlying
C++ copy constructor appears to be broken, and simplified symbol table
constructors. Also made symbol table add methods return the new entry
to avoid the need for an extra lookup.
Fixed breakpoint/watchpoint objects being inappropriately copied into
the tables returned by bplist() and wplist(), allowing the enabled
property to be modifiable for breakpoint and watchpoint objects in Lua.
Fixed drivers and devices causing a new memory pass-through handler to
be allocated on each soft reset, and fixed multiple instances of taps
being installed in the event the machine is reset before the tap is
removed.
Added classes for managing broadcast subscriptions, and adapted address
spaces to use this for change notifications.
----------------------------------
Color Match [Jorge Silva]
Sport Memory [Jorge Silva]
- 391in1.cpp: dumped flash ROM and EEPROM for pokrwild [Jorge Silva]
- Add W65C02S CPU emulation with subtly different fetch patterns from classic 65C02 and use it for arbv2, cmmb103, cmmb162 and bbc_tube_rc6502
- Replace ST2XXX's slightly customized CPU emulation with hooks into new W65C02S core
--------------------------------
Tetris (bootleg set 5) [Jorge Silva]
- audio/nichisnd.cpp, audio/rax.cpp, drivers/usgames.cpp: used finder for memory banks
------------------
Genius 6 (V132F) [Jorge Silva]
Lethal Crash Race / Bakuretsu Crash Race (set 2, alternate sound ROM) [Jorge Silva]
- ohmygod.cpp: used finder for memory bank and other minor cleanups
- Streamlined logging across chips to use logmacro.h, removed popmessages and printfs in production code;
- Add missing include guards in header files;
- split Atomiswave into own file from naomi.cpp (dc_atomiswave.cpp);
- powervr2.cpp: YUV pitch follows U size, fixes#8999
- powervr2.cpp: move Elan related stuff back into naomi2_state;
- naomi.cpp: support for player 2 keyboard inputs;
- naomi.cpp: add proper inputs to alpilot/alpilotj and sstrkfgt;
- naomi.cpp: hookup lightgun for deathcox;
- naomi.cpp: make G2-DMA timings slightly more accurate (fixes sfz3ugd silent BGMs regression caused by implicit insta-DMAs)
- dc_g2if.cpp: wrote a device for G2 DMA interface, fixes#9000 ;
- dc_g2if.cpp: add E1/E2/DD channels thru template, add area protection, add illegal address and overflow exceptions (fixes loopchk g2 bus tests 0302 and 0303)
- aica.cpp: $2814 CA reads doesn't need shifting, fixes ADX repeating sample/hang bugs in many entries [Angelo Salese, MetalliC];
- powervr2.cpp: make ISP/TSP irq to be slower, fixes regression bug with Capcom fighters having frame hiccups [David Haywood, Angelo Salese]
- dc_atomiswave.cpp: converted aw_modem_r/_w to 32-bit, added 3p/4p inputs to ggisuka, expose EXID to an input/output ioports for future extensions;
- dc_atomiswave.cpp: extend xtrmhnt2 ALL.Net hack for -drc, move around state machine to derive ALL.Net external device mapping instead of driver_init fn, demote to MUP for obvious reasons;
- dc_atomiswave: add Area 1 mirrors, fix maxspeed title screen animation;
- [MT#8143](https://mametesters.org/view.php?id=8143) is fixed
New NOT_WORKING software list additions
---------------------------------------
dc.xml: DC Checker for Repair v2.05R (World), Loop Checker v1.00 (World), GD Drive Repair Program v0.1 (World) [Hidden Palace]
- Move from falco5220.cpp to falco500.cpp
- Implement many ASIC features and support most video options
- Fully hook up RS232 ports
- Hook up bell
- Add keyboard
- Add detailed hardware descriptions for 3 models
New machines marked as NOT_WORKING
----------------------------------
Falco 500e [Bitsavers]
------------------
Rastan Saga (bootleg, Japan Rev 1, earlier code base) [Fabrice Arzeno]
timeplt.cpp: added a note about a spaceplta PCB with a char ROM taken from the original [Trol]
* Created an initial file system implementation for OS-9 under the CoCo
* Minor fixes to directory entry handling
* Changed to use fsblk_t::r[8|16|24|32]b()
- Changed the above functions to be const
- Remove the iodevice_t classification, which was not used that much and was incomplete anyway. Image device implementations must now provide their own instance names and brief instance names. Several new parent classes have been created to make it easier to use the old standard names.
- Change must_be_loaded from a pure virtual function to be overridden in implementations to a getter for a base class property that can be set on the host side (as was formerly made possible for NES, MD and "generic" cartridge slots) but defaults to false for all types. This restrictive property has been unset for a small number of cases.
- Create parent classes for paper tape and magnetic tape devices. At present these are dummy classes that do little to nothing, but may help unify implementations in the future.
- Change several member functions to take std::string_view parameters rather than const std::string & or const char *.
- Make update_names take into account brief names, as discussed in PR #2555.
- Remove the obsolete uses_file_extension function (which used thread-unsafe strtok).
* portfolio_ccm_slot: Change image type from "cartridge" to "memcard"
* i7220, datapack: Add custom instance names that weren't there before
* pc11: Add note
* Reimplemented support for the CoCo's RS-DOS filesystem on top of the "fsmgr" framework (currently read only)
* Added support for file_type and ascii_flag metadata, minor bug fix decoding file allocation table entries
* Creating a "CoCo Raw Disk" format and changing the CoCo RS-DOS filesystem to use it
* 1. Adding COCO_RAWDSK to all.cpp
2. Fixing sector order on CoCo raw disk
- Eliminate dependencies on emu.h, replacing most fatalerror calls and floptool's ersatz emu_fatalerror class with standard exception classes
- Use range-based std::string constructors in some methods
- Move filesystem metadata handling to a separate source file
- Eliminate src/emu as an include path for libformats (necessitates kludge in ti99_dsk.cpp)
* Research into thoop and squash 'refrsh rate' protection [Victor Fernandez (City Game), Peter Ferrie, David Haywood]
- prevents freeze when dying in stage 4 of Thunder Hoop, and bad text on continue in Squash
* Minor changes to various drivers (todo, comments, text strings).
* ec1847: Moved to pc.cpp, it's a generic OEM clone.
* Use proper name for serial/parallel ports card in ec1840 and ec1841.
* superga2: Moved to arcade section, updated emulation status.
* 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.)