Commit Graph

4330 Commits

Author SHA1 Message Date
Vas Crabb 46c0de4f55 3rdparty/bimg: Try to keep all the builds working. 2023-02-19 04:37:35 +11:00
Vas Crabb cca40d6ea1 3rdparty/bimg: Disable SSE on 32-bit x86 - it assumes x86-64 integer ALU is available when using SSE. 2023-02-19 04:20:48 +11:00
Vas Crabb 19a3f5dea2 srcclean and bump copyright date on language files to 2023 2023-02-19 03:28:47 +11:00
Vas Crabb d4589e0b29 Input refactoring:
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.
2023-02-18 06:18:45 +11:00
hap 9dbf099b65 nes zapper: improve trigger, put bandai lightgun in its own file 2023-02-16 21:54:04 +01:00
arbee 302c0ae5b2 imacg3.cpp, powermacg3.cpp: added Cuda, MacADB, and DIMM serial presence detect readback. [R. Belmont]
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]
2023-02-15 22:08:09 -05:00
wilbertpol d8f70e6446
bus/msx/cart/ram.cpp: Added RAM expansion cartridges. (#10888) 2023-02-15 05:23:22 +11:00
Brian Johnson 5f85581eb7
bus/nabupc: Added hard disk controller card. (#10880) 2023-02-09 01:55:55 +11:00
Vas Crabb 7245878a94 Miscellaneous cleanup:
* 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.
2023-02-09 01:49:46 +11:00
Patrick Mackinlay 4c512e6ed9 New systems marked not working
------------------------------
Tadpole Technology TP881V [Plamen Mihaylov]
2023-02-08 18:40:24 +07:00
Vas Crabb 7bf3044c32 cpu/arcompact: Cleanup:
* 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.
2023-02-06 07:51:29 +11:00
David Haywood 7bf6964388
-cpu/arcompact: Rewrote core. (#10808)
* 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.
2023-02-06 05:15:25 +11:00
arbee 758fabb885 New machines added as NOT_WORKING
---------------------------------
Power Macintosh G3 [R. Belmont]
iMac (Bondi blue) [R. Belmont, Guru]
2023-02-04 15:44:25 -05:00
Vas Crabb b98fb7c98e Small batch of input refactoring:
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.
2023-02-05 05:01:40 +11:00
Patrick Mackinlay 1d39af0599 New systems marked not working
------------------------------
Motorola MVME327A [Bitsavers]
2023-02-03 14:44:53 +07:00
Patrick Mackinlay e914e421c7 New systems marked not working
------------------------------
Motorola MVME181 [Plamen Mihaylov]
2023-02-03 14:37:49 +07:00
Patrick Mackinlay bc802bb8ac mc88200: new device 2023-02-03 14:15:19 +07:00
Vas Crabb 0ae68e4dea Use EQUIVALENT_ARRAY to avoid issues with std::size on member arrays, enable warnings for VLAs in C++. 2023-02-01 16:12:58 +11:00
Vas Crabb 2810c9d91b osd: Turned video modules into actual modules, fixed various issues.
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.
2023-02-01 04:00:44 +11:00
Vas Crabb 68472d3d72 Various input and OSD refactoring:
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.
2023-01-29 03:16:14 +11:00
Vas Crabb 2498f2b7cf Miscellaneous fixes and refactoring:
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.
2023-01-28 08:16:53 +11:00
Brian Johnson 07b19fb3ed
misc/nabupc.cpp, bus/nabupc: Added support for NABU PC and simulated host. (#10676)
New working systems
-------------------
NABU PC
2023-01-24 03:08:37 +11:00
Patrick Mackinlay 16de1c7df5 New machines marked as NOT_WORKING
---
Motorola MVME180 [Plamen Mihaylov]
2023-01-17 19:11:20 +07:00
Vas Crabb b97bda1282 3rdparty: Suppress unused variabe warnings for SQLite3 - clang 15.0.5 for Windows considers sqlite3_os_type unused. 2023-01-13 04:04:57 +11:00
Justin Kerk 6e417d79f1
Fix compile error on mingw due to invalid setting for ASTCENC_SSE (#10824) 2023-01-11 05:47:53 +00:00
MooglyGuy 88ea41b887
sun4c, SPARC, and NCR53C90 bug fixes: (#10821) [Ryan Holtz]
* 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.
2023-01-11 04:20:00 +11:00
cracyc 1287b114de i386: fix fpu log2 and atan 2023-01-09 14:08:08 -06:00
Miodrag Milanovic 6dc6c1255a Fix parameters for mingw build
(cherry picked from commit a864b4e5d4)
2023-01-05 21:31:35 +01:00
Miodrag Milanović 812e6094f4
Update BGFX, BX and BIMG (#10789)
* Update to bgfx a93a714632b79b5ddbf5c86ac323fa9b76ed3433
Co-authored-by: Бранимир Караџић <branimirkaradzic@gmail.com>
2023-01-05 09:32:40 -05:00
R. Belmont 94b1e168b2
Revert "Update BGFX, BX and BIMG (#10750)" (#10787)
This reverts commit 5581eaa50a due to link failure on macOS.
2023-01-04 23:29:18 -05:00
Miodrag Milanović 5581eaa50a
Update BGFX, BX and BIMG (#10750)
* Update to bgfx a93a714632b79b5ddbf5c86ac323fa9b76ed3433
Co-authored-by: Бранимир Караџић <branimirkaradzic@gmail.com>
2023-01-04 23:12:10 -05:00
Vas Crabb 09e4b34dd8 Updated png.py to 0.0.20 (last version before Python 3.4 support dropped) 2023-01-03 16:05:24 +11:00
Vas Crabb 9f99b27d05 Bump dates to 2023 where appropriate 2023-01-02 11:58:17 +11:00
angelosa f0fb9723c9 bus/pc8801: preliminary implementation of HAL HMB-20 sound card, addresses #10703 2022-12-25 19:32:42 +01:00
Sven Schnelle 0ce06a9d74
formats/hp300_dsk.cpp, formats/hp_lif.cpp: Added HP 300 floppy format and LIF filesystem. (#10729)
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.
2022-12-25 06:33:59 +11:00
fulivi 045f23d116
hp/hp9825.cpp: Added support for HP 9825A and HP 9831. (#10595)
* 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
2022-12-24 20:15:16 +11:00
MooglyGuy 3178442049
More MC68EZ328 work for palmm100 and iqunlim (#10696) [Ryan Holtz]
* palm/palm.cpp: Promoted palmm100 to working.  Split Palm LCD into a separate device.
* machine/mc68328.cpp: Improved LCD controller emulation.  Fixed reported Coverity issues
* vidoe/mc68328lcd.cpp: Added a generic device to handle MC68328-style LCD output signals.
* vtech/iqunlim.cpp: Hooked up MC68EZ328 device.

Clones promoted to working
---------------------
3Com Palm m100 [Ryan Holtz]
2022-12-22 03:15:56 +11:00
Vas Crabb bdf4645b73 bus/pce_ctrl: Added PC Engine Mouse support. 2022-12-21 08:26:53 +11:00
hap d3fbba3a5e m6809: rename *.ops to *.lst 2022-12-18 17:06:25 +01:00
Vas Crabb a32b70c034 More Micom Soft controller wrangling:
* bus/msx/ctrl: Added XE-1AP pad with defaults for personal computers.
* bus/pce_ctrl: Added XHE-3 PC joystick adapter.
2022-12-18 22:21:33 +11:00
Vas Crabb d57396edf0 bus/sms_ctrl: Added support for Denpa XE-1AP controller.
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.
2022-12-18 06:40:56 +11:00
Vas Crabb d464f33772 bus/sms_ctrl: Added Konami Hyper Shot for Sega, too. 2022-12-17 07:56:52 +11:00
Vas Crabb f87d24a4a2 bus/msx/ctrl: Added Konami Hyper Shot controller. 2022-12-17 07:21:59 +11:00
MooglyGuy 16e265185e
palm/palm.cpp: Improved Palm IIIc support. (#10684) [Ryan Holtz]
* machine/mc68328.cpp: Split MC68328 device into a base class with shared functionality, and derived MC68328 and MC68EZ328 models.
* video/sed1375.cpp: Added roughly-functional implementation of the Epson SED1375 LCD controller.

Machines promoted to working
------------------------
3Com Palm IIIc [Ryan Holtz]
2022-12-16 23:44:37 +11:00
Vas Crabb 905470b653 bus/sms_ctrl: Added support for Sega mouse and four-player adaptor. 2022-12-16 17:52:06 +11:00
Vas Crabb 01c5fe81f1
sega/sms.cpp: Refactored Game Gear handling. (#10682)
Use a memory view to switching between Game Gear and Master System compatibility I/O space mapping.  Got rid of most of the conditional code checking whether it's a Game Gear driver.

Got rid of the special Game Gear EXT port slot.  It's the same thing as a Mega Drive controller/expansion I/O port with a different connector.

sega/mdioport.cpp: Added a variant for the Game Gear with the TH/PC6 interrupt latch, and added it to the Game Gear.
2022-12-14 19:26:21 +11:00
Vas Crabb 85fd7f8c45 -bus/sms_ctrl: Added raphnet DIY SMS/Mark III paddle.
-cpu/avr8: Added minimal ADC support (in particular, ADC interrupts are
 not implemented).

-sega/megadriv.cpp: Further broke up base Mega Drive class.
* Created a light-weight base class with just the core functionality,
  used for "Genie" hardware (Puckman Pockimon).
* Moved built-in controller emulation to a derived class so it isn't
  lurking underneath the consoles with pluggable controllers.
* Moved the Sun Mixing Mega Drive bootlegs to their own source file -
  they're substantially different, not using the I/O blocks for input.

-sega/sms.cpp: Untangled SG-1000 Mark III slightly.
2022-12-13 08:00:03 +11:00
Nigel Barnes 3e8cb6894c bus/archimedes/podules: Added Ethernet podules (not working)
- Acorn AEH50 Ethernet II
- Acorn AEH54 10Base2 Ethernet Podule
- ANT Ethernet 10base2 mini-podule
2022-12-12 20:44:33 +00:00
Nigel Barnes e09c883434 mdcr: Moved philips/p2000t_mdcr.cpp->machine/mdcr.cpp to allow use with other machines. 2022-12-12 18:47:14 +00:00
Nigel Barnes 8d06c14709 New machines marked as NOT_WORKING
----------------------------------
MiniB Computer [Nigel Barnes, Sprow]
2022-12-12 18:13:59 +00:00
Nigel Barnes 66f4e8d40b bus/archimedes/podule: Added SCSI Interface podules (not working).
- Acorn A500 SCSI Interface
- Acorn AKA31 SCSI Expansion Card
- Acorn AKA32 CDFS & SCSI Expansion Card
- Cumana 16bit SCSI Interface
- Lingenuity SCSI Podule
- Morley Electronics 16bit Cached SCSI card
- Oak Solutions 16 bit SCSI Interface
2022-12-11 23:04:03 +00:00
Nigel Barnes e3c1dc11fc mt65: Slotified the keyboard port, devicified Microtan Keypad (MT006), Microtan Keyboard (MT009), and ETI Space Invasion Key Unit.
- Added cards ETI Real Time Clock, ETI Sound Card, Microtanic Real Time Clock, TUG Combo Card, and TUG EPROM Storage Card.

mt6809: Fixed keyboard input, RALBUG commands now work, and promoted to working.
- Added support for FLEX and BBC Micro floppy formats.

spinveti: Replaced incorrect ROM to load at &F800.
2022-12-11 22:16:32 +00:00
Vas Crabb 6e5d7328cb sega/mdioport.cpp: Added Mega Drive I/O port controller device.
Adapted all Mega Drive hardware drivers to work with the new I/O port
device, and moved based Mega Drive 68k peripherals to a common address
map function.

sega/megadriv_acbl.cpp: Added base machine configuration to attach an
optional I/O port to the EXP port, and moved some stuff to derived
classes.

sega/megadriv_rad.cpp: Simplified code.

bus/sms_ctrl: Added an RS-232 adapter.  Only sending from the console to
the attached device works so far, reception will have to wait.
2022-12-12 04:25:30 +11:00
AJR e8823c2ab8 thomson.cpp: Extension bus cleanup
- Make CC 90-232 serial/parallel interface an extension device
- Eliminate spurious custom Centronics interface from MO5NR (CC 90-232 is used with this model instead)
- Make RF 57-932 serial interface an extension device
- Make MD 90-120 modem interface an extension device (emulation still needs work)
- Make Midipak an extension device and completely rewrite emulation
- Make MEA8000-based speech interface an extension device
- Configure 1 MHz E clock for extension bus
- Add FIRQ & IRQ outputs from extension bus
- Expand extension I/O address range from $x7D0-$x7DF to $x7C0-$x7FF
- Clean up various bits of driver code
2022-12-10 18:32:36 -05:00
Vas Crabb dc360abb02 bus/sms_ctrl: Reworked Sega Master System controller bus.
Rationalised interface, got rid of TH from the "pulled" lines, and
extended to support output on all data lines.  Renamed to be less
specific as the same interface is shared by multiple consoles.

Removed a lot of unnecessary indirection through I/O ports and multiple
levels of inversion in peripheral emulation that was obfuscating the
code.

Made Rapid Fire Unit switches toggles so they can be assigned to
controller buttons and switched on/off easily during gameplay.  You can
still see/change the current state in the Toggle Inputs menu if you
don't want to assign buttons.

Implemented idle timeout in Furrtek 4-player Master System adapter.

Improved crosshair tracking in Graphic Board, added ability to
raise/lower pen, and greatly cleaned up code.

Fixed paddle controller when used with export consoles.

Added 3-button and 6-button Mega Drive control devices.

sega/sms.cpp: SG-1000 Mark III has pin 7 of controller ports tied low -
indicate this to attached controllers (this pin became TH on the Master
System).

sega/mdconsole.cpp: Replaced controller emulation in the driver with
Sega controller ports.  Also removed some vestigial code from the driver
base class.

sharp/x68k.cpp: Replaced controller emulation in the driver with MSX
controller ports.

bus/msx/ctrl: Added a Sega controller adapter device, supported by
X68000 software including chelnov and ssf2.
2022-12-08 05:24:59 +11:00
arbee 0d93398fb3 imgtool: properly remove all Apple modules. (GitHub #10594) [R. Belmont] 2022-12-06 20:15:09 -05:00
tim lindner b7a807443a
trs/coco12.cpp, trs/coco3.cpp: Moved real-time clocks to where they belong (addresses MT08416). (#10575)
*bus/coco: Remove real-time clock and no-halt functions from Radio Shack floppy disk controller.
* bus/coco: Added Disto Super Controller II floppy disk controller that contains no-halt functionality
* bus/coco: Added "mini expansion bus" that the SCII uses for add on cards, and added slots to SCII and Disto RAM cartridges.
* bus/coco: Added Disto "Realtime Clock" MEB slot device (also includes a parallel printer interface).
2022-12-05 17:09:00 +11:00
AJR b3ec67fc4c unidasm: Add IBM 1800, IBM 1130 and (DG) Nova disassemblers 2022-12-02 21:52:57 -05:00
wilbertpol 3b9fa5f3c6
bus/msx: Added support for Hudson Soft Bee Card and Electric Software Astron Softcard media. (#10610)
* Copied or moved Bee Cards entries from msx1_cart.xml to msx1_bee_card.xml.
* Copied or moved SoftCard entries from msx1_cart.xml to msx_softcard.xml.
2022-12-03 02:46:39 +11:00
Vas Crabb 516f6b5d2b -debugger: Improved session save/restore.
* Qt: Save expression for memory and disassembly views.
* Qt: Made command history behave more like Cocoa.
* Qt: Added expression history and made behaviour more like Cocoa.
* Qt: Refactored global notifications to use signals.
* Win32: Increased command/expression history size to 100 items.
* Cocoa: Save state of device info viewer windows.
* Qt/Win32/Cocoa: Save command/expression history.

-util/xmlfile.cpp: Fixed bug where copyInto failed to copy nodes.
2022-12-02 02:25:57 +11:00
Vas Crabb 17b9672b1f bus/msx/ctrl: Added Micomsoft Libble Rabble Joypad. 2022-11-26 18:49:19 +11:00
Vas Crabb f46a046799 -fujitsu/fmtowns.cpp: Use MSX controller slots for pad ports.
-bus/msx/ctrl: Added 2-button and 6-button FM Towns pads.
2022-11-26 03:32:29 +11:00
wilbertpol be34605ffd
msx.cpp: Made the general purpose ports (joystick/mouse) a slot device. (#10579)
* Also moved msx slot devices to subfolders.
2022-11-24 16:58:31 +11:00
AJR d653fc0703 Update cpu.lua for 9bb87665ba 2022-11-16 15:35:52 -05:00
Vas Crabb 6c0257b1a1 bus/gameboy: Added support for Liebao Technology cartridges.
gameboy.xml: Changed default NVRAM fill for dbzgeki to 0xff - this will
cause it to treat the three save files as empty rather than starting in
a glitchy state.

New working software list items
-------------------------------
Dragon Ball Z English [lana_chan_, taizou]
2022-11-12 03:39:21 +11:00
Vas Crabb 2a33336d95 bus/gameboy: Added support for newer NT/Makon cartridges.
bus/gameboy: Removed the non-working "Digimon 2" cartridge device.

gbcolor.xml: Corrected titles for a few Chinese games.

New working software items (gbcolor.xml)
----------------------------------------
Capcom Vs. SNK: Millennium Fight 2001 (China) [Pepper9801, taizou]
Digimon 02 4 (China) [taizou]
Digimon 2 (China) [Robyn A1200, taizou]
Digimon Pocket (China) [taizou]
Harry Potter 3 (China) [taizou]
Pokémon Diamond: Special Pikachu Edition [taizou]
Pokémon Jade: Special Pikachu Edition [taizou]
Pokémon: Mewtwo Strikes Back [taizou]
Street Fighter Zero 4 (China) [taizou]

Software items promoted to working (gbcolor.xml)
------------------------------------------------
Shùmǎ Bào Lóng 02 4 (China) [Vas Crabb]
Shùmǎ Bào Lóng 3 Shuǐjīng Bǎn (China) [Vas Crabb]
2022-11-10 03:45:57 +11:00
wilbertpol ac4af4b16b
msx/msx.cpp, bus/msx_cart, bus/msx_slot: Reimplemented memory using views. (#10473) [Wilbert Pol]
* Made some devices which were not present in all msx models optional; install software lists based on components of the system.
* Updated hardware descriptions.
* Implemented bruc100 firmware banking.
* Added m5.00.011 version of Yamaha SFG05 cartridge.
* Fixed phc28 RAM misconfiguration.
* Added AX-230 internal games mapper.
* Started adding support for FS-A1FM modem.
* Updated input port definitions.
* Added support for kanji font from raw FS-A1FX ROM dump.
* Started adding support for RS-232.
* Added support for Toshiba HX-M200 kanji cartridge - allows hx21 and hx22 to start their firmware.
* Fixed most floppy problems.
* Marked all ROMs that need verification as bad dumps.
* Moved floppy controller and drive configuration from main state to msx_slot disk devices.

New working machines
---------------------------------------
Hitachi MB-H1 (MSX1, Japan)
Mitsubishi ML-8000 (MSX1, Japan)
Panasonic CF-2700 (MSX1, UK)
Pioneer", "UC-V102 (MSX2, Japan)
Sakhr AX-200 (MSX1, Arabic/English)
Sakhr AX-230 (MSX1, Arabic)
Sakhr AX-350 II (MSX2, Arabic)
Sakhr AX-500 (MSX2, Arabic)
Sanyo MPC-25FS (MSX2, Japan)
Sanyo PHC-23 / Wavy23 (MSX2, Japan)
Toshiba HX-32 (MSX1, Japan)
Toshiba HX-51I (MSX1, Italy, Spain)
Yamaha SX-100 (MSX1, Japan)
Victor HC-80 (MSX2, Japan)

New working clones
---------------------------------------
Frael Bruc 100-2 (MSX1, Italy)
Hitachi MB-H1E (MSX1, Japan)
Philips NMS 8250/16 (MSX2, Spain)
Sakhr AX-200M (MSX1, Arabic/English)
Sakhr AX-350 II F (MSX2, Arabic)
Sony HB-101 (MSX1, Japan)
Sony HB-75 (MSX1, Japan)
Sony HB-F500 2nd version (MSX2, Japan)
Spectravideo SVI-728 (MSX1, Spanish)
Talent DPC-200 (MSX1, Argentina, international keyboard)
Toshiba HX-20E (MSX1, Spain)
2022-11-08 15:00:55 +11:00
Olivier Galibert 624ea9dacf 68000: Add a level of transparent indirection, turn the reset output line into devcb. 2022-11-03 09:32:13 +01:00
Nigel Barnes 4c776b71ba bus/electron: Added Millsgrade Voxbox Speech Synthesiser. 2022-10-18 20:23:03 +01:00
Brian Johnson 601b5430c4
Rework QX10 Keyboard implementation (#10384)
* qx10: Rework keyboard code

    * Split keyboard into ascii and hasci variants
    * Update keymappings to be more complete
    * Add output_finders for keyboard LEDs
    * Keyboard now uses sync serial, fixes timing issues with CP/M Plus

* qx10: Add layouts for both hasci and ascii keyboards
2022-10-15 11:21:41 +02:00
fulivi 153f096fd6
Added support for Intel ISIS-II filesystem (#10367)
* fs_isis: support for Intel ISIS-II filesystem added

* fs_isis: fix after CI failure

* fs_isis: adapted to changes in 5499683a23

* all.cpp: fixed amount of ws
2022-10-15 11:02:48 +02:00
Brian Johnson 604d40c826
bus/epson_qx: Added YM2149-based sound card for the Epson QX-10. (#10400) 2022-10-15 03:33:31 +11:00
AJR 6c1e5da058 unkts: Hook up new skeleton CPU device 2022-10-12 13:22:26 -04:00
AJR 8f2beee479 unidasm: Add Nios II disassembler 2022-10-11 21:42:57 -04:00
Brian Johnson b4ecb617be
bus/epson_qx: Added hard disk support for the Epson QX-10. (#10378)
* Added IDE hard disk option board.
* Added ComFiler CR-1510 option board.
2022-10-08 00:05:28 +11:00
Vas Crabb f4b23f1737 bus/gameboy: Moved MBC3/MBC30 to their own file as separate devices.
New working software list additions
-----------------------------------
gbcolor.xml: Juéduì Wǔlì (China), Wàixīng Tànxiǎn zhī Xīngqiú Dàzhàn (China) [Robyn A1200, taizou]
2022-10-04 12:51:33 +11:00
Olivier Galibert 71f1f480fd m68000: split the header to make future semi-indenpendant implementations sane 2022-09-30 10:58:31 +02:00
Olivier Galibert f9870d6f02 ap2_dsk: Move the applesauce formats in their own file
as_dsk: Create a common base class, merge what is currently identical
2022-09-28 17:44:09 +02:00
AJR 60a3acb970 Move UTF8_xxx string literal macros to new header in lib/util 2022-09-25 22:23:29 -04:00
arbee a9cdc7d7c2 Fix missed build file from previous commits. [R. Belmont] 2022-09-24 20:32:06 -04:00
arbee 1651ed37c0 apple2: final removal of Apple II support for the legacy floppy system. [R. Belmont] 2022-09-24 20:18:35 -04:00
arbee f9adf9ffaa sonydriv.cpp: retired. [R. Belmont] 2022-09-22 22:17:28 -04:00
Olivier Galibert ab4680981d mtu130: Implement the banking using the actual sequencer prom 2022-09-20 23:06:26 +02:00
0kmg a9b22a67ea
Renamed n2a03 to rp2a03 throughout source tree. (#10343) 2022-09-20 05:43:55 +10:00
Vas Crabb 76541e8c81 Debugger updates:
Made closing the Qt debugger console window hide all debugger windows
and run the emulated machine (debugger windows will be shown on next
user break or breakpoint hit).  This matches the behaviour of the Win32
and Cocoa debuggers.

Made Qt debugger clean up its windows on exit rather than on subsequent
starts.  This fixes GitHub #9789.

Made Qt debugger less reliant on global variables, and made code to save
and load configuration a bit less convoluted.  It still needs more
refactoring on this front, but it's in slightly better shape now.

Made Qt debugger a bit less crashy on invalid configuration.  Still
plenty of ways to crash it, but every little bit counts.

Made Qt debugger do less comparisons on menu item names and object
names - it might be possible to localise one day.

Moved all the C++ debugger implementations into namespaces.  They're
using awfully generic class names, so it's about time.
2022-09-20 04:22:51 +10:00
Vas Crabb 796d8d6720 bus/gameboy: Fixes for multi-game cartridges.
* Reset the system from a timer callback for the Vast Fame/SL/J.Y.
  Company multi-game cartridges.  This fixes games on gbcolor.
* Reset system when leaving configuration mode for GBCK003.  Fixes most
  issues with games.
* Moved GBCK003 to its own source file, and added notes for both
  multi-game cartridge types.
2022-09-19 03:26:16 +10:00
Vas Crabb 33f2b34198 bus/gameboy: Added partial support for some Chinese multi-game cartridges.
Cartridge RAM features are not implemented yet.

New working software list items
---------------------
gbcolor.xml: New Super Color 145 in 1 (China) [taizou, Vas Crabb]
2022-09-18 06:05:43 +10:00
Vas Crabb c76cf754b3 debugger/win: Added capability to save/restore window arrangement.
* Format is mostly compatible with the Cocoa debugger, besides reversed
  vertical positioning.
* Made Qt debugger more compatible with configuration format used by
  Win32 and Cocoa debuggers.
* emu/config.cpp: Preserve elements with no registered handlers in
  default and system configuation files.
2022-09-16 22:23:34 +10:00
hap ad338bd3e7 source org: move gmaster to handheld folder 2022-09-16 00:18:00 +02:00
smf- 5acbdb2e86 fix visual studio builds after bdb9404c08 2022-09-15 18:22:03 +01:00
smf- bdb9404c08 fixes for clang 15.0 on windows [smf] 2022-09-15 13:39:13 +01:00
Vas Crabb f9728327f8 More miscellaneous fixes:
* Fixed tiny build for consolidated driver files.
* tools/unidasm.cpp: Capture big objects by reference in lambdas.
* misc/oneshot.cpp: Fixed unsigned comparison to zero bugs.
2022-09-14 04:46:58 +10:00
Vas Crabb 5db7ffb86a Reimplemented Game Boy and Mega Duck cartridge slots:
Allow cartridges to install themselves rather than putting accesses
through trampolines.  Use memory banks even when they aren't installed
directly, as it exposes script bindings and declares intent.

Added support for MBC6 Flash, and MBC7 two-axis accelerometer and 128*16
or 256*16 serial EEPROM.  Added basic support for Game Boy Camera image
capture (various M64282FP processing features are not implemented).
Improved MBC3 real-time clock emulation.

Added basic support for Hudson Soft HuC-1 cartridges (infrared I/O not
supported) and HuC-3 cartridges (real-time clock and infrared I/O not
supported).

Added full support for Vast Fame VF001 cartridges.

Separated Mega Duck flat and banked ROM cartridge types, and allowed
software list items to specify whether a cartridge has fixed and
selectable 16K banks or a single selectable 32K bank.

Added support for RAM sizes smaller than 8K that will be mirrored in the
0xA000-0xBFFF area.  Implemented correct ROM mapping for sizes that are
not powers of two.  Corrected size of MBC2 internal static RAM.

Added support for various hypothetical cartridge wirings, such as MBC5
with outer ROM banking for up to 128M, M161 and Wisdom Tree cartridges
with flat RAM, and MBC1 or MBC5 with fewer than the maximum number of
inner ROM bank lines used.

Fixed logo spoofing logic for many pirate cartridges, including Rocket
Games, Sachen MMC1 and MMC2, Sintax, Li Cheng, and Niutoude.  Identified
fine bank mask register for GBCK003 board.

Added basic support for GBX format ROM images.  Added heuristic for
detecting raw dumps of M161 cartridge images.  Removed unreliable
unlicensed cartridge detection heuristics - these need to be
reimplemented in a better way.

Software list items promoted to working
---------------------------------------
gameboy.xml:
Game Boy Camera (Europe, USA)
Game Boy Camera Gold (USA)
Pocket Camera (Japan, Rev 1)
gbcolor.xml:
Command Master (Japan)
Kirby Tilt 'n' Tumble (USA)
Korokoro Kirby (Japan)
Street Hero (Taiwan)
Thunder Blast Man (Europe)
4 in 1 + 8 in 1 (World, 4B-001)
4 in 1 + 8 in 1 (World, 4B-002)
4 in 1 + 8 in 1 + 16 in 1 (World, 4B-005)
4 in 1 + 8 in 1 (World, 4B-007)
31 in 1 Mighty Mix (Taiwan)
31-in-1 Mighty Mix (Australia)
Nǚwáng Gédòu 2000 (Taiwan)
Chāojí Gédòu 2001 Alpha (Taiwan)
Gédòu Jiàn Shén - Soul Falchion (Taiwan)
2022-09-13 06:27:33 +10:00
Olivier Galibert 2da17be127 mtu130: Add support for the datamover (68k board) 2022-09-11 11:56:36 +02:00
0kmg 1e85658dd3
bus/nes_ctrl: Added Sharp Cassette Interface AN-300SL device. (#10318)
Clones promoted to working
--------------------------
Sharp My Computer Terebi C1 [kmg]
2022-09-10 12:13:29 -04:00
AJR d90da03d0e Add skeleton devices for MPS-1200 & MPS-1250 IEC printers 2022-09-08 19:10:34 -04:00
AJR a7be70a183 Add preliminary M50734 emulation 2022-09-07 09:14:06 -04:00
Olivier Galibert ef8ac6eee8 * new WORKING machine
----
MTU-130 [Olivier Galibert, David Williams, Disk Blitz, Eric Wright]
2022-09-06 19:04:46 +02:00
Vas Crabb 051c380fd1 Patched up some gaps in functionality and fixed some bugs.
ui: Added some missing functionality:
* Added an option to copy input device IDs to the relevant menus.
* Added an item for setting the software lists files path (-hashpath) to
  the folder setup menu.
* Allow pasting text from clipboard in most places that allow typing
  (searching, entering filenames, entering barcodes).
* Changed the software selection menu heading to be a bit less
  misleading.
* Made barcode menu less eager to rebuild itself unnecessarily, and
  removed some confusing and apparently pointless code.

Exposed more Lua bindings:
* Added low-level palette objects.
* Added indexed bitmap types.
* Added a bitmap method for extracting pixels from a rectangular area as a
  packed binary string.
* Changed screen device pixels method to return width and height in
  addition to the pixels.

osd: Added some functionality and cleaned up a little:
* Added a function for copying text to the clipboard.
* Moved function for converting Windows error codes to standard error
  conditions to winutil.cpp so it can be used from more places.
* Removed duplicate declaration of osd_get_clipboard_text and made the
  function noexcept (including fixing implementations).
* Made macOS implementation of osd_get_clipboard_text skip the encoding
  conversion if it finds UTF-8 text first.
* Changed the default -uimodekey setting so it doesn't lose the "not
  shift" that stops the default from interfering with UI paste.

Various bug fixes:
* util/unicode.cpp: Fixed the version of utf8_from_uchar that returns
  std::string blowing up on invalid codepoints.
* util/bitmap.h: Fixed wrapping constructors for indexed bitmaps taking
  the wrong parameter type (nothing was using them before).
* util/bitmap.cpp: Fixed potential use-after-free issues with bitmap
  palettes.
* emu/input.cpp, emu/inputdev.cpp: Log 1-based device numbers, matching
  what's shown in the internal UI and used in tokens in CFG files.
* emu/emumem.cpp: Added the bank tag to a fatal error message where it
  was missing.

docs: Reworked and expanded documentation on configuring stable
controller IDs.

For translators, the changes are quite minor:
* There's a menu item for copying a device ID to the clipboard, and
  associated success/failure messages.
* There's the menu item for setting the software list file search path.
* One of the lines in the software selection menu heading has changes as
  it could be interpreted as implying it showed a software list name.
2022-09-02 08:55:16 +10:00
Michael R. Furman 46ecd84148
formats/fdos_dsk.cpp: Added FDOS disk format for the SWTPC 6800. (#10273)
Allows the SWTPC 6800 machine to boot FDOS in MAME using Mike Douglas'
FDOSMPS.DSK, and to read/write other available disk images.
2022-08-28 07:07:30 +10:00