Commit Graph

93441 Commits

Author SHA1 Message Date
Vas Crabb
128c29c52f cpu/e132xs: More fixes and optimisation:
* Fixed failing to call the debugger instruction hook for the first
  instruction following an interrupt, exception or trap.
* Use UML branches to emulate non-delayed intra-block branches, avoiding
  the expensive "hash jump".
* Re-worked the instruction description code:
  - Calculate static branch targets for more instructions.
  - Flag instructions that may cause mode changes.
  - Don't be so eager to end an instruction sequence.
  - Removed the local register input/output flags - FP may no be the
    same when executing the code as when describing instructions.
* Fixed interpreter incorrectly setting ILC when an interrupt
  immediately follows a RET instruction.
* Fixed recompiler flag calculation regressions, and optimised a little.
2025-03-27 08:07:52 +11:00
hap
08fae4612b winspike: remove outdated comment and MUP flag 2025-03-26 16:57:49 +01:00
Vas Crabb
3b7e214343 cpu/e132xs: Fixed some recompiler cycle counts:
* Fixed double-counting bug in exception dispatch.
* Fixed unsigned comparison of signed values in MUL cycles calculation.
2025-03-26 20:10:55 +11:00
Vas Crabb
81a0a72bda cpu/e132xs: Made debugging Hyperstone E1 software less painful.
* Fixed local register display in debugger (this never worked).
* Made disassembler show local register indices.
2025-03-26 19:11:24 +11:00
Matthew Daniels
d8f21c57f8
scsp: improve handling of MIDI interrupts (#13521) 2025-03-26 08:18:44 +01:00
Vas Crabb
9fd89a456e cpu/e132xs: Call debugger exception hook for TRAP instructions.
Also made cycle counts a bit more consistent between interpreter and
recompiler for exceptions and traps.
2025-03-26 17:58:40 +11:00
AJR
221f40f1b1 i960: Further disassembly fixes
- Enable decoding of a few more reg-type instructions
- Add 0x prefix to unary branch destinations
2025-03-25 21:39:36 -04:00
Vas Crabb
213e1b5857 cpu/e132xs: Moved interrupt check to the beginning of instruction execution.
* Fixes interrupts not being serviced while tracing.
* Further improves recompiler performance.
* Fixes recompiler interrupt check function calling itself recursively.
* Also added debugger exception hook calls to interpreter and recompiler.
2025-03-26 10:06:25 +11:00
angelosa
add2015ce3 machine/i82371sb.cpp: rectify 377e9d6d7d 2025-03-25 18:44:45 +01:00
Vas Crabb
ef974fbdad -cpu/e132xs: Fixes and optimisations:
* Fixed XM (index move) instructions failing to update the destination
  register on range error for interpreter and recompiler.
* Fixed double-word stores when the source indicates SR (both stored
  words are zero) for interpreter and recompiler.
* Fixed recompiler failing to set ILC and P on range error and frame
  error exceptions.
* Optimised recompiled code for word size shifts.
* Pushed more recompiler logic from run-time to code generation time and
  simplified delay slot PC check and trace check logic.
* Use MOV rather than LOAD where possible in recompiler to improve code
  generation performance and symbolic memory locatin names in
  disassembled UML.
* Updated TODO list in header comment, reduced copy/paste some more.

-cpu/drcbex64.cpp: Avoid some more unnecessary register copies for
 ROLAND.
2025-03-26 04:28:09 +11:00
Ivan Vangelista
4b19418739 New systems marked not working
------------------------------
Balance Try (Japan, ver 1.00) [Guru, Hammy]
Love Power [Siftware]
Pai Pai Le 3 [dyq, little0, Guru]
unknown bubble soccer game [Kevin Eshbach]

New clones marked not working
-----------------------------
Chao Ji Da Heng 2 (V311CN, alternate GFX ROMs) [little0]
2025-03-25 18:26:54 +01:00
Roberto Fresca
1126bb6c3d naroutp.cpp driver improvements: [Roberto Fresca, Grull Osgo]
- Added support for dynamic size chars lines.
    That fixes the paytable shown in different games
    such as dphl, dphljp, dphlunkb, sureshoto, smshilo,
    etc, allowing to remove the imperfect graphics flags.
 - norautua: fixed the overflow when drawing cards
    in the possible straight case.
 - Rewrote the screen update to save a big number of lines.
 - Removed the driver init for ssjkrpkr.
 - Added Inputs & DIP switches for gtipoker.
 - Change gtipoker game description to: Aces or Better Draw Poker.
 - Rearrange the gtipoker graphics ROM.
 - Promoted gtipoker set to working.
 - Added technical notes.

Systems promoted to working
---------------------------
Aces or Better Draw Poker (GTI) [Roberto Fresca, Grull Osgo]
2025-03-25 15:24:52 +01:00
Vas Crabb
76c8864115 cpu/e132xs: Optimised recompiled FRAME instruction.
Also added some more constants so there are a few less magic literals.
2025-03-25 09:04:37 +11:00
AJR
bdee79bc42 i960: Fix disassembly of ADD<cc>, SUB<cc> & SEL<cc> for cc = l, ne, le, o 2025-03-24 14:58:13 -04:00
Vas Crabb
4eed813fa1 cpu/e132xs: Removed leftover block end from a function that no longer generates a standalone block. 2025-03-25 05:05:59 +11:00
Ivan Vangelista
092cf02d15 New clones marked not working
-----------------------------
Long Hu Bang III Cuo Pai Gao Shou (China, V242C) [little0]
Manguan Caishen (China, V110C) [little0]
2025-03-24 18:00:54 +01:00
Vas Crabb
c13ea3d36b cpu/e132xs, cpu/drcbex64.cpp: More fixes and optimisation:
cpu/e132xs: Implemented supervisor and trace modes as recompiler modes.
This eliminates or simplifies a lot of run-time checks.  In particular,
the trace checks on every instruction are not generated when not
tracing, and simplified to just checking the P bit when tracing.

cpu/e132xs: Optimised code generation for RET, avoid a redundant load
when checking for an overflow trap, use the exception parameter for
exception codes rather than generating one function for each possible
code.  Also simplified interpreter code for RET.

cpu/e132xs: Implemented SUMS for the recompiler.

cpu/e132xs: Implemented privilege check for setting L (interrupt
lockout) for recompiler.  Not implemented for interpreter.

cpu/e132xs: Partially fixed tracing.  P flag should be set by all
instructions except RET.  Trace exceptions are not triggered for
branches when using the recompiler.

cpu/e132xs: Fixed ILC being set incorrectly for RET.

cpu/drcbex64.cpp: Avoid unnecessary expensive operations when a shift
operation request the zero and/or sign flags but not the carry flag.
2025-03-25 03:38:51 +11:00
Vas Crabb
91d9b3cb02 cpu/e132xs: Don't generate code to handle a delayed branch inline.
* Also avoid an redundant load when checking if trace is active.
* Reduces generated native instruction count by about 24% on x86-64 and
  gives an overall performance improvement of about 3.5% in -bench
  scores.
2025-03-24 03:33:04 +11:00
Ivan Vangelista
d0b681c51e New working clones
------------------
Chong Chong Le Yuan (V100CN) [little0]
2025-03-23 08:36:42 +01:00
ClawGrip
728f24da8c
galaxian/galaxian.cpp: Add a new Mandinga set (bootleg of Amidar) (#13326)
New working clones
------------------
Mandinga (bootleg of Amidar) [Luis Arrufat, Jordi Tuells]
2025-03-23 07:53:23 +01:00
AJR
97467ad077 mn10300: Fix disassembly of ADD Dm, Dn 2025-03-22 20:44:30 -04:00
AJR
7c4cdf37ed mn10300: Fix disassembly of even more move instruction modes 2025-03-22 20:41:24 -04:00
AJR
96688cfe03 mn10300: Re-add missing LSR and ASR modes 2025-03-22 20:32:43 -04:00
AJR
ada8249a07 mn10300: Fix disassembly of yet another move instruction mode 2025-03-22 20:26:18 -04:00
AJR
f96fa09eda mn10300: Fix disassembly of another move instruction mode 2025-03-22 20:19:49 -04:00
AJR
70f8492d7f mn10300: Fix disassembly of some move instruction modes 2025-03-22 20:11:46 -04:00
holub
c709a0f124
build: Fixed QT6 build for macosx (#13510) 2025-03-22 19:40:50 -04:00
AJR
e95cdde8e9 unidasm: Add Panasonic MN10300 disassembler 2025-03-22 19:28:42 -04:00
Nigel Barnes
b294aff9a7 acorn/acrnsys2: Replaced bad dump of COS. 2025-03-22 23:16:20 +00:00
Vas Crabb
297e546844 srcclean the tree. 2025-03-23 05:13:47 +11:00
Nigel Barnes
cbe7391c95 psion/psion.cpp: Consolidated into single file, and removed runtime tag lookups.
- Simplified ROM/RAM banking.
- Added Alpha and Numerical keyboards for POS variants.
- Applied software list filters.
- Added topslot for Organiser II variants.
- Removed fake LZ64S model, ROMs moved to LZ64.

psion/psion_pack.cpp: Allow setting image_interface.

New working clones
------------------
Organiser II Alpha POS 200 [Nigel Barnes, Jaap Scherphuis]
Organiser II P 250 [Nigel Barnes, Jaap Scherphuis]
Organiser II P 432 [Nigel Barnes, Jaap Scherphuis]
2025-03-22 18:07:15 +00:00
Vas Crabb
0e2241ef0a cpu/e132xs: Fixed IO2 interrupt check in recompiler.
Also further reduced conditional branches and logic operations in
interrupt check.
2025-03-23 05:04:41 +11:00
Vas Crabb
2e256840ff cpu/e132xs: More recompiler optimisation:
* Made interrupt check function generate far more compact code (about
  85% reduction in number of native instructions on x86-64).
* Optimised out-of-cycles check.
* Applied prior optimisation for trap/interrupt checks to static
  exception checks as well (code is still copy/pasted).
2025-03-23 04:05:02 +11:00
ClawGrip
df2b117eb6
Create skeleton device for Sega Megalo 50 DASS and hook it on supported Sega C2 games [jordigahan, Recreativas.org] (#12401) 2025-03-22 16:13:45 +01:00
m1macrophage
d11197c548
linn/linndrum.cpp: Emulating hi-hat decay. (#13509)
* Hi-hat decay knob is now working.
* Open and closed hats have different decays.
* Better default tuning for the snare.
* Removed `strobe_` prefix from functions where it was redundant. Made it an argument in a function where it matters.
2025-03-22 16:09:55 +01:00
ClawGrip
891a89643f
misc/compucranes.cpp: Add a new crane coinop on GANCHONEW hardware (#13358)
New systems marked not working
------------------------------
Cranesaurus Single [Zooo Arcade, Recreativas.org]
2025-03-22 15:56:02 +01:00
ClawGrip
c946188daa
Add a skeleton driver for Secoinsa Serie 20 (#13381)
New systems marked not working
------------------------------
Serie 20 [ArcadeHacker]
2025-03-22 15:54:55 +01:00
ClawGrip
604b39ef76
Add a skeleton for Microtek Powerpack In-Circuit Emulator PP-SW+ PIII (#13390)
New systems marked not working
------------------------------
Powerpack In-Circuit Emulator PP-SW+ PIII [ArcadeHacker]
2025-03-22 15:52:51 +01:00
ClawGrip
cbfce1c556
Add a skeleton for Microtek MICE-IIIS-68000 In-Circuit Emulator (#13393)
New systems marked not working
------------------------------
MICE-IIIS 68000 [ArcadeHacker]

Also renamed "Microtek International" to just "Microtek" as manufacturer name on the driver for older MICE models (the commercial brand was "Microtek", without any suffix).
2025-03-22 15:51:48 +01:00
angelosa
eec99a6643 hash/pc88va.xml: update QA 2025-03-22 15:50:55 +01:00
angelosa
80162c1546 nec/pc80s13k.cpp: sync pc88va2_fd_if_device with timer fixup from main driver 2025-03-22 15:50:55 +01:00
ClawGrip
8bbff64062
capcom/gng.cpp: Add a new Ghosts'n Goblins bootleg (#13428)
New working clones
------------------
Ghosts'n Goblins (bootleg) [Jordi Tuells, Jordi Beltran (Crazy Taxi)]
2025-03-22 15:50:27 +01:00
ClawGrip
1a03fdb8a7
Add a skeleton for Turnier Dart darts machine (#13437)
New systems marked not working
------------------------------
Turnier Dart [Victor Fernandez (City Game)]

New clones marked not working
------------------------------
Turnier Dart (HB8-97) [Victor Fernandez (City Game)]
2025-03-22 15:43:46 +01:00
ClawGrip
02d309ea7e
Add a Skeleton driver for Honeywell CAMIR-F1 motion sensor (#13441)
New systems marked not working
------------------------------
CAMIR-F1 [ArcadeHacker]
2025-03-22 15:42:35 +01:00
ClawGrip
81f91611a6
Add a skeleton driver form AMS Optomax V image analyser (#13460)
New machines marked not working
-----------------------------
Optomax V [ClawGrip]
2025-03-22 15:41:08 +01:00
ClawGrip
5a0bdb23bf
Add a new Cadash Spanish set (#13461)
New working clones
------------------
Cadash (Spain) [Tailsnic Retroworks]
2025-03-22 15:35:29 +01:00
Michael Borthwick
db64e253a6
Update sorcerer_cass.xml (#13480)
Corrected developer names and added dates and publisher details for various titles.
2025-03-22 15:33:54 +01:00
ClawGrip
3b4d107f79
dataeast/rohga.cpp: Add Wizard Fire (Over Sea v1.0) (#13495)
New working clones
------------------
Wizard Fire (Over Sea v1.0) [Tailsnic Retroworks]
2025-03-22 15:28:58 +01:00
holub
1d3e23615c
sinclair/spectrum.cpp Improved performance by 50% avoiding memregion lookup in a critical path (#13508) 2025-03-22 11:43:19 +01:00
Ivan Vangelista
1481692510 - igs/igs01.cpp: dumped missing GFX ROM for xymga [little0]
- igs/spoker.cpp: dumped missing GFX ROM for jinhulu2101is and cjdh6. Renamed cjdh6 to huahuas2a as it was misnamed [little0]

- igs/spoker.cpp: implemented more tile banking bits following Haze's IGS033 implementation, gives correct GFX for the sets which use that chip without breaking the ones using the IGS001 / IGS002 combo
2025-03-22 10:36:46 +01:00