Commit Graph

4283 Commits

Author SHA1 Message Date
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
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 a864b4e5d420893b603d590867720f21d7b21f5a)
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