* bus/segaai: Rename device_segaai_card_interface to segaai_card_interface
* bus/segaai: Rename device_segaai_exp_interface to segaai_exp_interface
* hash/segaai.xml: Add barcode for several titles.
* hash/segaai.xml: Merge eigooha1 and eigooha2 into eigoohan, and eigogam1 and eigogam2 into eigogame.
* hash/segaai.xml: Update description for Eigo de Ohanashi and Eigo de Game.
* hash/segaai.xml: Add notes to Pinpon Music Rhythm and Melody.
* hash/segaai.xml: Merge Okeiko Aiueo and Hanamaru Aiueo into a single software item.
* hash/segaai.xml: Swapped checksums for Okeiko Aiueo and Hanamaru Aiueo and updated some notes.
* hash/segaai.xml: Added and replaced some overlays. Added placeholders for some older revisions released on cassette.
* hash/segaai.xml: Add cassette dumps of Alice World, Robinson Land, and Cosmis Train.
* hash/segaai.xml: Add dumps of several older cassette versions.
* hash/segaai.xml: Add/update serial, alt_title, and barcodes for cassette releases.
* hash/segaai.xml: Use improved overlay scans.
* layout/segaai.lay: Display clickable area when no overlay is present.
* layout/segaai.lay: Make cursor square.
* sega/segaai.cpp: Update old driver.
* sega/segaai.cpp: Let cards and expansions install themselves.
* sega/segaai.cpp: Adjust upd7759 sound level.
* sega/segaai.cpp: Mark cassette as stereo.
* sega/segaai.cpp: Only output the left channel from the cassette player.
* sega/segaai.cpp: Set the cassette channel to use for data input.
* sega/segaai.cpp: Add upd7759 busy signal to input port 4.
skeleton/aquaplus_piece.cpp: Added skeleton Aquaplus P/ECE driver with
Flash and RAM mapped in the right places.
cpu/c33: Added skeleton devices for C33 STD Core (S1C33000) and
S1C33209/221/222.
New systems marked not working
------------------------------
Aquaplus P/ECE (512 kB Flash)
New clones marked not working
-----------------------------
Aquaplus P/ECE (2 MB Flash)
-cinematronics/thayers.cpp: Added CHD and promoted to working. [Ryan Holtz]
* Fixed periodic IRQ hookup.
* Fixed COP421 clock divisor.
* Switched to LD-V1000 by default and removed LD-PR7820 support for now.
* Switched to using logmacro and shorthand data types.
* Adjusted IRQ triggering and acknowledgement according to schematics.
-sound/ssi263hle.cpp: Added a temporary SSI-263 device which remaps SC-02 phonemes onto the SC-01's phoneme set. [Ryan Holtz]
* SSI-263 skeleton extracted from cinematronics/thayers.cpp.
-machine/ldv1000hle.cpp: Added an HLE version of the Pioneer LD-V1000 laserdisc player. [Ryan Holtz]
-machine/laserdsc.h: Added a general-purpose parallel LaserDisc player interface, to have a common class parent for LD-PR7820. [Ryan Holtz]
-sega/timetrv.cpp: Replaced timetrv2 LaserDisc image with a good capture. [Ryan Holtz, Matt Ownby, ld-decode Team]
Systems promoted to working
---------------------------
Thayer's Quest (set 1) [Ryan Holtz, Matt Ownby, ld-decode Team]
Clones promoted to working
--------------------------
Thayer's Quest (set 2) [Ryan Holtz, Matt Ownby, ld-decode Team]
* Xtensa work, alongside Poems hardware improvements to show the core is functional [David Haywood]
---------
Co-authored-by: David Haywood <hazemamewip@hotmail.com>
* Implemented free-running timer.
* Eliminated internal header in favor of scoped enums.
* Eliminated double-dispatch switch/case in handlers, in favor of individual register handlers.
* Reworked GPIO handling for correctness.
-misc/39in1.cpp: Fixed GPIO hookup, now boots on its own. [Ryan Holtz]
* casio/ra3.cpp: Added support for software list ROM cartridges.
* sound/upd933.cpp: Clear pending interrupt flag when read.
* sound/upd933.cpp: Implemented presumed pitch modulator register.
New working systems
--------------------
Casio CZ-1 [Mastropiero, Devin Acker]
New working clones
--------------------
Casio MZ-1 (prototype) [Mastropiero, Devin Acker]
New working software items (cz1_cart.xml)
------------------------------------
Orchestra (RC-10) [Edward d-tech]
Organ / Synth. Sound / Sound Effect (RC-30) [Edward d-tech]
Piano / Guitar / Percussion (RC-20) [unknown]
psion/psion3a.cpp: Added preliminary Condor serial device for Series 3c, and added save state flag.
psion/psionhc.cpp: Removed expansion port C, and added save state flag.
psion/siena.cpp: Added preliminary Condor serial device, and added save state flag.
psion/workabout.cpp: Added save state flag.
* machine/nandflash.cpp: Only reset page address on read or program command.
* machine/nandflash.cpp: Added Samsung K9F1G08U0M and K9F2G08U0M.
* Removed now-unused machine/serflash.cpp.
sega_beena_cart.xml: Put page scans in individual data areas.
frontend/mame/luaengine_mem.cpp: Added a raw read function for memory
regions.
plugins/layout: Added bitmap classes to layout sandbox.
cpu/evolution: Added dummy CPU core so disassembly will show in debugger.
* new skeleton - Evolution
New systems marked not working
-------------------
Kidz Delight Evolution Max [TeamEurope, David Haywood]
Basic functionality is supported, making most games playable.
StoryWare display is not yet implemented.
Game-specific peripherals are not emulated.
There are still some issues with graphics.
emu/ioport.h: Fixed rarely-used PORT_CROSSHAIR_MAPPER and PORT_CROSSHAIR_MAPPER_MEMBER macros.
cpu/arm7: Added AP2010 CPU device.
sound/ap2010pcm.cpp: Added basic AP2010 PCM audio output device.
Systems promoted to working
------------------------
Sega Advanced Pico BEENA
New working systems
------------------------
Sega TV Ocha-Ken
Without this patch, order of entries in
generated/has_{buses,cpus,formats,machines,sounds,videos}.h
varied across builds.
This patch was done while working on reproducible builds for openSUSE.
Co-authored-by: Bernhard M. Wiedemann <bernhard+gitcommit lsmod.de>
* Emulated most features of the system, with the exception of sound output and the thermal printer.
* bus/vboy/slot.cpp: Fixed loading loose software on big Endian hosts. [Vas Crabb]
Systems promoted to working
---------------------------
Casio Loopy [Phil Bennett, Ryan Holtz]
New working software list items (casloopy.xml)
-------------------------------
Chakra-kun no Omajinai Paradise [Rachel Simone Weil]
* This card provides unaccelerated 1024x768 video, which isn't the greatest idea on a 68020.
video/tms34061.h: Added accessors to get the horizontal and vertical visible resolution and totals. [R. Belmont]
nubus/cards.cpp, apple/maclc.cpp: Support a list of cards for only the original Macintosh LC. [R. Belmont]
Up-to-date with revision 24c8d575e588d557d28f4011becb753421346860. Resolves issues building with Visual Studio.
Enabled PortAudio when building with Visual Studio and clang-cl.
docs: Removed note about duplicate GUID symbols in PortAudio when built with MSVC.
- add support for address modifiers
- add support for shared interrupt request lines
- add support for interrupt acknowledge daisy chain
- add support for bus error
- add slot device option aggregator
- standardized slot device file, device and class naming
- enp10: implement vme interface
- hk68v10: convert to slot device, improve boot vector and rom handling
- mzr8105: convert to slot device, improve boot vector and rom handling, add vme short space access
- mzr8300: convert to slot device, expose to bus
- sys68k*: convert to slot device, improve boot vector and rom handling
- force/fccpu20: converted to slot device
- sgi/ip4: converted to twin tower chassis with ip4 slot device
New working software list items
-------------------------------
c64_cart:
Disc Drive DD-001 (v1.1) [Steve Gray], Disc Drive DD-001 (v1.0) [LHS]
c64_flop_misc:
Games and Utility Disc (v1.1) [LHS]
bus/vidbrain: add info_manager and comp_language cartridge types
Software list items promoted to working
---------------------------------------
vidbrain: The Computational Language [hap, Sean Riddle, Ianoid]
* Look for MOC in QT_HOME/libexec if not found in QT_HOME/bin
* Use the Qt6* libraries if the Qt version is >= 6
* Switch the include paths for QAction & QActionGroup for Qt >= 6
* Replace the deprecated + operator for keys with |
Names in the global namespace need to be specific. Making them overly
generic is a very bad idea, and leads to confusion and conflicts.
Device type names must always be in the global namespace, and most
device classes are in the global namespace.
Changing members like m_votrax to m_sc01 doesn't help understand the
code. If there's only one Votrax speech module in the system, it's
obvious what it is.
This reverts commit c6f0e83ecf.
This isolates the ATA disk drive interface implementation from the
physical parallel ATA device interface. The ATA Flash PC Card is no
longer a kind of parallel ATA device.
- use address_maps instead of catch-all handlers;
- implement rd4 and rd5 line views;
- converted a800_rom_williams_device to the new system, make almost every entry in mega* and prisma* SW to actually boot;
- bus/a800: implement maxflash_1mb / maxflash_8mb devices.
* This allows loading arbitrary collection of .xex files built thru Maxflash Cartridge Studio program as flash ROM binaries;
- bus/a800: implement sic_128kb / sic_256kb / sic_512kb flash ROM devices;
- bus/a800: implement ast2k, atrax, Blizzard 32kb, Adawliah, SpartaDOS 128KB, A5200 Super Cart variants;
- bus/a800: implement Super Charger math unit device;
- a800_slot.cpp: fix xegs cart default slot for loose cart loading;
- a800_carts.h: merge a800_turbo64 and a800_turbo128 into single a800_turbo slot option;
- bus/a800/a800_slot: split a5200 to own interface
New working software list additions
-----------------------------------
a800.xml: Maxflash Cartridge Studio - Demonstration Workbook [Atarimax Team], SIC! 31-in-1 Demonstration [SIC! Team]
a800.xml: Atrax 01, Atrax 02, Atrax 03, Atrax 04, Atrax 05, Atrax 06, Atrax 08, Atrax 09, Atrax 10, Atrax 11, Atrax 12, Atrax 13, Atrax 15 [Atarimania]
a800.xml: Prince of Persia (AtariMAX i/f), Prince of Persia (SIC! i/f) [AtariAge]
New software list items marked not working
------------------------------------------
a800.xml: Atrax 14, Atrax 16 [Atarimania], Turbo Hit (Blizzard 32kb) [atari.area]
a5200.xml: Bosconian 5200 - Star Destroyer (Ultimate Version) [AtariAge]
* Use "-rom file.bin" with the user-defined ROM card to make your own custom Apple. File must be 12KiB and goes in
D0/D8/E0/E8/F0/F8 order.
a2bus: wire up a method to assert the reset line on the slots. This is important for the ROM card. [R. Belmont]
apple/apple2.cpp,apple2e.cpp,apple2gs.cpp,apple3.cpp: Reset the a2bus when the 6502/65816 is reset. [R. Belmont]
apple/apple2gs.cpp: Reset the softswitches like a IIe on Control-Reset. [R. Belmont]
apple/apple3.cpp: Now has the same Control-Reset behavior improvements as the Apple IIs. [R. Belmont]
New NOT_WORKING software list additions (msx1_cart.xml)
------------------------------------------
DPQ-280 Quick Disk Drive
DPQ-280 Quick Disk Drive (alt)
QDM-01 Quick Disk Drive
VY-0002 Quick Disk Drive
- video/pc_vga.cpp: Move everything that doesn't belong to main VGA/SVGA interfaces to per-manufacturer family files;
- shared/pcshare.cpp: retire pcat_base_state::pcvideo_* fns;
- video/pc_vga.cpp: temporary move gamtor_vga_device to misc/gamtor.cpp;
- bus/isa/isa_cards.cpp: retire TGUI9680 from being selected (all refs points to be a PCI card only, there's mention of a VLB card but haven't seen a single retail dump/photo yet)
- bus/isa/svga_trident.cpp: add TVGA9000 ISA card
- bus/isa/svga_tseng.cpp: add earlier ColorImage ET4000AX variant
- bus/isa/svga_tseng.cpp: add Kasan Hangulmadang-16 Korean variant ISA
- Adds a very preliminary implementation of nVidia Riva 128 PCI card, added as a temp target in pc/pcipc.cpp (pcinv3);
- video/pc_vga.cpp: Rework and fix VGA input sense (necessary to allow Riva 128 to survive POST);
- video/pc_vga_s3.cpp: Fix s3_vga_device inheritance (was subclassing from ati_vga_device)
- pc/calchase.cpp: convert custom JAMMA i/f to ISA device;
- pc/calchase.cpp: connect Trident VGA to ISA bus;
- implement stubs for i82443bx_host and i82371eb PCI devices, hooks up base PCI stubs to midway/midqslvr.cpp, misc/comebaby.cpp and misc/xtom3d.cpp
- misc/xtom3d.cpp: preliminary implementation of Oksan ROM DISK ISA card
- machine/pci-smbus.h: make map public so it can be reused by i82371eb_acpi (would otherwise fail mapping to the intended HW)
New systems marked not working
----------------------------------
Pump It Up: The 1st Dance Floor [ATR4X, Gergc, Pawprint, infamouspat, Ruubbinnexx, H4M573R, Angelo Salese, Hammy]
-------------------
HC 120 [Nigel Barnes, zedstarr]
New working clones
------------------
HC 100 [Nigel Barnes, zedstarr]
HC 110 [Nigel Barnes, zedstarr]
------------------------------
Series 3 [Nigel Barnes, The Last Psion]
New clones marked not working
-----------------------------
Pocket Book [Nigel Barnes, The Last Psion]
Series 3s [Nigel Barnes, The Last Psion]
- 3Fax Modem, 3Link Parallel Printer Interface, 3Link RS232 Serial Interface, and Siena SSD Drive.
psion/psion3a.cpp: Added wakeup with specific keys, and SIBO/Honda expansion ports.
psion/siena.cpp: Added wakeup with specific keys, and Honda expansion port.
psion/workabout.cpp: Added wakeup with specific keys.
machine/psion_asic5.cpp: Partially implemented peripheral mode.
machine/psion_asic9.cpp: Implemented memory protection, and additional external interrupt lines.
cpu/z80: Added support for variants with address translation and implemented Z84C015 chip selects.
New working clones
-------------------
Peters Plus, Ivan Mak Sprinter Sp2000
- crazyfgt, lastfght, all games in subsino2.cpp: Hook up DS2430A device, add handcrafted EEPROM data to satisfy serial protection checks and remove ROM patches that forced them to pass
- crazyfgt: Hook up coin counter
- queenbeei, queenbeesa, qbeebing, treamary: Add RTE-to-RTS ROM patches that were missing
- treamary: Change configuration to one that allows booting into title screen rather than getting stuck on initial tests
* machine/smartmed.cpp, machine/nandflash.cpp: Separated NAND Flash from smartmed.
* sound/spu.cpp: Calculate tables based on clock speed.
* machine/intelfsh.cpp: Added Intel 28F640J5 device.
* namco/namcos10.cpp: Refactored driver, and implemented MEM(M) and MEM(N) boards.
* namco/namcos10.cpp: Fixed parenting of Mr. Driller 2, and renamed Kono e Tako.
abc800_dsk: Split to interleaved and non-interleaved disk formats. [Curt Coder]
New working software list items
-------------------------------
abc838_flop: Systemskiva ABC800 v1.0 (Sweden), Systemskiva för UFD-DOS v6.3 (Sweden) [Curt Coder]
util/bitmap.cpp, util/palette.cpp: Marked lots of things constexpr.
Bitmaps don't throw exceptions on allocation failure, they just become
invalid. Almost nothing in MAME actually checks for this.
emu/profiler.cpp: Abort if the profile stack overflows rather than
throwing an exception. This is a developer feature and if it overflows,
the code is broken. Calling a noreturn noexcept function generates less
code than throwing an exception, which adds up.
util/strformat.cpp: Traded away some unnecessary flexibility for more
compact code. The stream objects must derive from std::basic_ostream
now - they can't just be any old objects with the expected operators.
------------------------------
Series 3a [Nigel Barnes, The Last Psion]
Series 3c [Nigel Barnes, The Last Psion]
Series 3mx [Nigel Barnes, The Last Psion]
Siena [Nigel Barnes, The Last Psion]
Workabout [Nigel Barnes, The Last Psion]
Workabout mx [Nigel Barnes, The Last Psion]
New clones marked not working
-----------------------------
Pocket Book II [Nigel Barnes, The Last Psion]
Series 3a (2M) [Nigel Barnes, The Last Psion]
Series 3a (2M) (German) [Nigel Barnes, The Last Psion]
* emu: add defer_access() method, which is useful for keeping the cpu in a loop restarting the current
instruction to emulate waitstates.
* add HP82321A Basic Language Coprocessor
This adds support for the HP82321A Basic language coprocessor, which emulates a HP9816 system with a 68K cpu. See http://www.hpmuseum.net/display_item.php?hw=681 for more details and software to run on this card.
* This lets you use emu.wait(...) directly without mucking around creating coroutines.
* Allow emu.wait to accept an attotime argument.
* Added a couple more wait helper functions.
-emu/profiler.h: Actually use scope-based profiling helpers.
* This makes the comment at the top of emu/profile.h less dishonest, and makes it easier to write exception-safe code.
* Got rid of some do { ... } while (0) loops that only existed so break could be used like a goto.
This removes the need to force it to build as C++, and adds proper UTF-8
support for Windows.
Since this is a fork of linenoise, there's no hope for getting
lua-linenoise to sync with it upstream. I made the bare minimum changes
to keep it working, but didn't add bindings for new functionality (e.g.
multi-line editing).
Compile Lua as C++. When Lua is compiled as C, it uses setjmp/longjmp
for error handling, resulting in failure to unwind intermediate stack
frames. Trying to ensure no objects with non-trivial destructors are in
scope when raising a Lua error is error-prone. In particular,
converting an exception to a Lua error becomes convoluted, and raising a
Lua error from a constructor is effectively impossible.
Updated Lua to 5.4.4 - this includes a brand-new garbage collector
implementation with better performance. The main thing removed is the
deprecated bitlib.
Updated sol2 to version 3.3.0 - this adds support for Lua 5.4 and fixes
a number of issues, including not correctly handling errors when Lua is
built as C++.
Updated LuaFileSystem to version 1.8.0 - this adds support for symbolic
links on Windows, as well as Lua 5.4 compatibility.
Updated LuaSQLite3 to version 0.9.5 - this fixes issues in
multi-threaded environments, as well as Lua 5.4 compatibility.
Fixed double-free after attempting to construct a debugger expression
from Lua with an invalid string, and exposed expression error to Lua in
a better way.
Added warning level print function to Lua.
Fixed saving cheats with shift operators in expressions, although this
code isn't actually used as there's no cheat editor.
* Removed SDL2 source.
* Updated gradle.
* Updated SDL2 Java support glue code.
* Increased minimum supported Android API version to 24.
* Updated required asset files for Android app.
* Added proper tag for Android logging.
* Added SDL2 hint to make BGFX work on Android.
* Added callbacks for card detect, battery voltage and write protect to the PCCard interface.
* Added helpers to read/write data swapped (similar to the existing support in the ATA device).
* Add support for 2 MB and 4 MB SRAM PCMCIA models from Centennial with built-in EEPROM storage for CIS information.
* machine/linflash.cpp: Updated the linear Flash PCMCIA card emulation to use the new card detection support.
* machine/gayle.cpp: Rewrote the Amiga Gayle emulation, adding support for PCMCIA.
* Fixed an issue with Amiga interrupts arriving at the wrong time.
osd/modules/input, emu/inpttype.cpp: Made most default joystick
assignments supplied by input modules. Input modules take available
controls into consideration when generating default assignments.
emu/inpttype.ipp: Added a separate "Back" UI input separate from Cancel.
You may want an easier to hit combination for moving to the previous
menu than for exiting or cancelling input. They both default to Escape.
emu/inpttype.ipp: Added a UI Help control. Currently only used by
analog inputs menu
emu/inpttype.h: Moved I/O port field type enum to its own header and
sorted UI controls so they appear in a more logical order.
ui: Don't use UI Select to restore defaults - people should be getting
used to the UI Clear input by now. UI Select cycles multi-value items
instead.
ui/inputmap.cpp: Don't use immediate cancel to cycle between clearing
and restoring default assignment (use UI Clear instead).
osd: Reduced the number of files needing to include the dreaded emu.h.
Got some implementation out of headers.
mpc106.cpp: fixed endianness of register access, hooked up RAM, made compatible with RAM device. [R. Belmont]
cuda.cpp: Added I2C I/O hookups. [R. Belmont]
heathrow.cpp: Hack for unknown register that imac was stuck on. [R. Belmont]
dimm_spd.cpp: New device that provides a configurable DIMM serial presence detect readback for I2C or SMBus. [R. Belmont]
* Got rid of a few more unnecessary uses of simple_list.
* bus/amiga/zorro: Got rid of a pointer member that would make adding
save state support unnecessarily difficult.
* nichibutsu/cop01.cpp: Remove need to remove devices from machine
config.
* Moved common instruction field accessors used by the CPU core and
disassembler to a shared base class and made them constexpr.
* Got the inline member functions bodies file out of the public CPU
header so they aren't pulled in by everything using it.
* Got most of the disassembler handler declarations out of the public
header so they can be changed withut excessive recompiling.
* Split into files by opcode encode type/group.
* Refactored out macros.
* Added additional opcodes.
* Added interrupt logic.
* Added stub handlers for used but unknown opcodes.
-leapfrog/leapster.cpp updates:
* Put some data uploaded by the leapster BIOS somewhere for debugging purposes.
* Removed a read handler that was only there because of previous bad handling.
* Noted some used Leapster side addresses.
emu/input.cpp: Fixed regression in display of some joystick inputs.
osd/interface: Split up interface classes into a few more files to
reduce where the input device interface class needs to be included.
Made OSD independent of concrete input_device class.
osd/modules/input, emu/inputdev.cpp, emu/ioport.cpp: Allow input devices
to provide tokens for controls without standard item types and
additional default input assignments. Fixes issues assigning Yen and
Backslash on Japanese keyboards.
ui/textbox.cpp: Added a fixed-content text box menu class for future
use.
Got main.h out of emu.h as it’s only used in a very small number of
places, mostly for getting the application name. Added eminline.h to
attotime.h as it's used without emu.h. Cleaned up forward declarations
in emufwd.h a little.
Don't ignore the return status of OSD module initialisation. Attempt to
fall back to an alternate module if the selected module fails to
initialise. Log more useful diagnostic information at verbose level.
Fixed BGFX crash on exit after toggling fullscreen. Also persist more
settings than just the selected chains across toggling fullscreen.
Turned video modules into OSD modules in the same sense as all the other
OSD modules. They now use the same selection/fallback mechanism as all
the other modules without special extra code in the OSD implementations.
Untangled some object ownership mess. Windows own renderers, OSD
objects own windows. Fixed a refrence loop that caused the first window
object to always leak.
Don't create renderer object until after underlying window has been
created. Fixed issues with order of creation/destruction when toggling
fullscreen or changing prescale in fullscreen with -switchres in SDL
builds.
Use more smart pointers in BGFX and Direct3D render modules. Most of
the code now reutrns a smart pointer when handing over ownership or a
naked pointer when retaining ownership. Fixed a few leaks and
simplified cleanup code.
Encapsulated various OSD modules better.
osd: Supply OSD object to modules on initialisation. Encapsulated some
event handling in the OSD objects rather than leaving it in free
functions. Put various stuff in namespaces.
osd/modules/input: Enabled dinput, xinput and winhybrid modules for
Windows SDL builds, and enabled background input for dinput and xinput
(and by extension winhybrid) modules. Also fixed some COM and X11
resource leaks.
osd/modules/input/input_sdl.cpp: Flipped SDL mouse button order to match
Windows, and exposed vertical and horizontal scroll as Z and rZ axes.
Moved SDL UI event handling out of input devices into OSD object.
osd/modules/input_rawinput.cpp: Changed lightgun Z axis token so it's
correctly identified as a relative axis (it maps to the scroll wheel
equivalent).
osd: Added an option to choose the network provider module. Mostly
useful if you build with both TUN/TAP and pcap support included, or if
you want to disable emulated networking completely.
emu/input.cpp: Use a better strategy for assembling input code names
that uses fewer temporary strings and doesn't require use of the
non-Unicode-aware space trimming function (fixes MT08552).
osd/modules/input_dinput.cpp: Improved polling logic.
osd: Made various parts of the input code less dependent on concrete emu
objects, and reduced inappropriately passing around the machine object.
Made input modules less dependent on OSD implementation. Encapsulated
some stuff and got rid of some vestigial newui and SDL1 support code.
Cleaned up some interfaces. Moved OSD options classes to their own
files.
Prepare to remove main.h from emu.h - it's mostly used to get the
application name, which the vast majority of emulated devices don't need
to do.
ui/analogipt.cpp: Fixed bar graph display for fields with ranges
that wrap through zero.
emu/inputdev.cpp: Separateed analog axis deadzone and switch threshold
settings, reduced default deadzone, and fixed a potential division by
zero if the deadzone and saturation settings are equal.
emu/ioport.cpp: Fixed behaviour of absolute analog fields where range
passes through zero - it previously only worked for specific
combinations of mask, minimum and default. Removed a workaround from
universal/getaway.cpp that is no longer necessary.
emu/input.cpp: Fixed unintuitive behaviour when an absolute field is
assigned an OR combination of a relative control folled by an absolute
control (e.g. Mouse X or Joy 1 LSX). Also fixed reading axis input
sequences where an axis code is followed by a switch code (these can
only be produced by manually editing configuration files, not through
MAME's UI), and fixed the returned type when multiple relative axes sum
to zero.
osd/modules/input_dinput.cpp: Fixed hat switches being stuck in up
position when input is suspended in the background
taito/taitoio_yoke.cpp: Give throttle control a distinct type, and don't
auto-centre.
osd: Added option to select MIDI provider module (currently only
PortMidi and the dummy module are available). Also put various things
in namespaces, and fixed builds including SDL sound module with native
Windows OSD.
emu/validity.cpp: Added check to catch I/O port fields using UI input
types.
emu/inpttype.ipp: Renamed inputs that were causing confusion. "Bill"
and "Track" were causing confusion for translators and hence likely
causing confusion for many users, especially those who are not native
English speakers. "Track" as an abbreviation for "Trackball" was
frequently being mistranslated, e.g. in the sense of a CD track
selection button or even in the sense of a railway track. There's no
reason to abbreviate it. "Bill" in the US English sense as a banknote
is too ambiguous and was causing confusion for translators. It's better
to use the less ambiguous "Banknote". Corrected Greek translations of
"Trackball".
Don't run GitHub Actions on issue template changes.
* machine/ncr53c90.cpp: Renamed to ncr53c90 to avoid confusion about the actual NCR part name.
* machine/ncr53c90.cpp: Fixed 'Select w/ ATN and Stop' command in DMA mode.
* cpu/sparc: Avoid using temporary C-strings as address space names.
* machine/sun4c_mmu.cpp: Fixed l2p debugger command by removing inadvertent narrowing conversion.
* sun/sun4.cpp: Switched to NCR 53C90 from 53C90A, and fixed DMA byte-address masking - fixes Solaris 2.4 booting.
Added support for various disk formats used with HP computers. Named
'hp300', but also contains formats used with HP85 and HP150 computers,
using the same floppy drivers as the 300 series.
Most of the information was taken from "HP Flexible Disk Formats" by
Martin Hepperle.
HP LIF was used in quite a lot of different HP products like the
HP 9000/300, HP85/87 and HP150 computers. Added support for
reading this filesystem.
* bus/hp9845_io: Added HP9871 printer.
New working machines
------------------
Hewlett-Packard HP 9825A
Hewlett-Packard HP 9831A
New working software list items
------------------
hp9825_rom: 9862 Plotter/Gen I/O ROM for 9825
hp9825_rom: General/extended I/O ROM for 9825
hp9825_rom: General/extended I/O/9862 plotter ROM for 9825
hp9825_rom: General/extended I/O/plotter ROM for 9825
hp9825_rom: Plotter/Gen I/O ROM for 9825
hp9825_rom: String/Advanced programming ROM for 9825
hp9831_rom: Mass storage ROM for 9831
New not working software list items
------------------
hp9831_rom: Matrix/plotter ROM for 9831
This is the "horsehoe crab" game pad version of the Denpa Micom Soft
Analog/Digital Intelligent Controller System (the other version is the
desktop "cyber stick").
Mega Drive games only support this controller in analog mode (the
default). Digital mode is designed to be used for games on computers
with MSX-style controller ports that don't support analog controls.