Commit Graph

4310 Commits

Author SHA1 Message Date
AJR
0cc8539dfa mos8563: Split device source from mc6845 2023-03-25 18:52:27 -04:00
wilbertpol
6c28bd93ba
scripts/minimaws: Fixed last-minute change to zipfile use. (#11028) 2023-03-26 04:47:30 +11:00
Vas Crabb
4cf33cfe0a Various optimisations to code generaton.
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.
2023-03-26 01:32:50 +11:00
wilbertpol
fb81cb16bb
minimaws: Let command-line romident identify media inside zip archives. (#11024) 2023-03-26 01:31:09 +11:00
Nigel Barnes
469c2906d9 New systems marked not working
------------------------------
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]
2023-03-25 12:25:50 +00:00
Sven Schnelle
972703281d
bus/ISA: Added HP82321A BASIC Language coprocessor (#10926)
* 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.
2023-03-24 23:35:18 -04:00
Vas Crabb
5f97af903c
-Lua engine: run everything in coroutines. (#11019)
* 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.
2023-03-25 05:53:58 +11:00
AJR
da94203755 Remove unused cd90_640_dsk formats (functionally replaced by thom_dsk)
* apple2video.cpp: Fix permissions
2023-03-23 19:04:15 -04:00
BartmanAbyss
4ff301b134
brother/lw30.cpp: Added driver for Brother LW-30 word processor. (#10996)
New working systems
---------------------
Brother LW-30
2023-03-20 03:54:11 +11:00
wilbertpol
2461397c80
bus/msx: Moved Yamaha module and minicart slots into their own folders. (#10984)
Also defined MSX cartridge slot options in one place.
2023-03-14 06:35:01 +11:00
AJR
6543248641 unidasm: Add Interdata Series 16 disassembler 2023-03-11 09:19:24 -05:00
wilbertpol
c1b0bf352b
bus/msx: Added Yamaha UCN-01 cartridge-to-module slot adapter. (#10972) 2023-03-11 05:33:19 +11:00
Vas Crabb
2eba8b2112 cpu/z180: Added CSIO emulation. [Vas Crabb, Sandro Ronco] 2023-03-11 05:02:50 +11:00
Ivan Vangelista
9006ed9c92
bus/snes/profighter.cpp: Added skeleton devices for "Pro Figher" SNES cartridge copiers. (#10952)
Dumped four SNES copiers (3 Super Pro. Fighter Q variants and a Pro Fighter X). [Darksoft, Apocalypse]
2023-03-10 06:17:46 +11:00
Curt Coder
3b8c1569cf abc1600: Implement Luxor R8 mouse. [Curt Coder] 2023-03-07 12:28:40 +02:00
Vas Crabb
31c0d2a4a8 Reduce warnings that need to be suppressed to build linenoise. 2023-03-07 05:46:28 +11:00
Vas Crabb
8384223ac8 Updated forked linenoise to latest upstream.
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).
2023-03-07 05:33:37 +11:00
Vas Crabb
dc87571a43 3rdparty: Avoid the need for -fpermissive since clang doesn't like it.
I'll try to get some of this upstreamed.
2023-03-07 04:19:36 +11:00
Vas Crabb
b5475eb38b Various updates, mostly around Lua:
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.
2023-03-07 01:39:42 +11:00
Eric Anderson
369ecb2f77
vectorgraphic/vector4.cpp: Added Vector 4 driver. (#10710)
* bus/s100: Added Vector Dual-Mode Disk Controller (only floppy supported for now).
* formats/vgi_dsk.cpp: Addec Micropolis VGI floppy disk image format.
2023-02-27 19:47:55 +11:00
Vas Crabb
383ab43dbc Various cleanups:
* cpu/dsp56156: Removed vestigial (and excessively slow) "new" execution code.
* apple/bandit.cpp: Got rid of unnecessary friend declaration.
* nintendo/n64_v.cpp: More const.
* Fixed a few "const qualifier has no effect" warnings.
2023-02-27 06:11:37 +11:00
Miodrag Milanović
bd59a0d447
Removed local copy of SDL source and update Android build support. (#10899)
* 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.
2023-02-27 05:40:37 +11:00
AJR
793367ff91 Retire legacy NCR 539X emulation 2023-02-25 20:02:17 -05:00
Dirk Best
281957363e
machine/pccard.cpp, machine/pccard_sram.cpp: Added support for PCMCIA linear SRAM cards. (#10886)
* 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.
2023-02-26 05:33:56 +11:00
AJR
df80004c3c Add dump and skeleton device for Schneider NLQ 401 Printer [unknown]
* tms1024.cpp: Add optional logging messages
2023-02-25 10:41:37 -05:00
wilbertpol
14d00bf2f7
bus/msx/cart/slotexpander.cpp: Add support for four-slot expander cartridges. (#10890)
* bus/msx/cart/softcard.cpp: Fixed typo in 'Electric Software'.
* bus/msx/slot/ram_mm.h: Renamed m_ramio_set_bits to m_unused bits.
* Don't allow external memory mapper register readback to avoid conflicts with internal memory mappers.
2023-02-23 04:18:47 +11:00
Olivier Galibert
e76e82c9e4 scc68070: Revert to use musashi for now, it's very much not a traditional 68000. 2023-02-22 11:29:51 +01:00
Olivier Galibert
0b6732cf91 emumem: First try at wait states 2023-02-22 11:29:48 +01:00
Olivier Galibert
74971c2f53 m68000: New implementation, generated from the micro/nanocode 2023-02-22 11:29:45 +01:00
Vas Crabb
63ea393695 3rdpary/bimg: Just disable SSE on all 32-bit builds to be safe. 2023-02-20 03:08:50 +11:00
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