Commit Graph

3815 Commits

Author SHA1 Message Date
Jaen
3c1ca80a75
pofo.cpp: Converted keyboard to device. (#8192)
Fixes multiple keys being pressed simultaneously.
2021-06-16 04:35:20 +10:00
Ivan Vangelista
2306f4132a scripts/mame/arcade.lua: moved Model Racing drivers to separate project 2021-06-15 18:35:15 +02:00
Nigel Barnes
efcdeeaed4 bus/coco: Added the Dragon MSX 2+, The Dragon's Claw, Peaksoft Prestel, and CoCo WordPak/WordPak II/WordPak RS/WordPak 2+ devices. 2021-06-14 13:20:35 +01:00
David Haywood
3098ee38ae
Reworked rockclim driver to be based on galaxian.cpp (was in galaxold.cpp). (#8182) 2021-06-14 13:11:07 +10:00
Vas Crabb
73d97b7dc4 Added helpers for 64-bit count leading zeroes/ones. 2021-06-13 09:38:01 +10:00
cam900
838da5bea9
inufuku.cpp: Merged */inufuku.* into drivers/inufuku.cpp, minor cleanups. (#8172)
* Removed unnecessary VRAM read trampolines.
* Use buffered_spriteram16_device for buffered sprite RAM.
* Derive clocks from crystals.
* Reduced runtime tag lookups, unnecessary region size.
* Fix naming, spacing.
* Use generic graphics layouts, fix color usage of gfxdecode related to palette size.
* Restrict rowscroll to screen clipping rectangle.
2021-06-13 01:55:06 +10:00
AJR
35f317e027 New skeleton ISA device: Lark Associates LRK-331 ESDI Controller [Bitsavers] 2021-06-11 20:50:45 -04:00
yz70s
ba3e5baffc naomi: add a new device for the Sega 837-14438 "SH I/O BD" hopper board 2021-06-08 21:36:37 +02:00
Patrick Mackinlay
80fb62cce5 ns32082: new device 2021-06-07 19:05:07 +07:00
xray-sky
24df3089f8
fix pcap builds (#8150) [xray-sky, R. Stricklin] 2021-06-06 21:40:17 -04:00
MooglyGuy
7aa7502bb6
-supracan.cpp: Added basic sound emulation. (#8143) [Ryan Holtz, superctr]
* Many features still need fleshing out, including sample sources and envelopes.
2021-06-06 08:11:19 +10:00
ClawGrip
43a68379a1
New NOT_WORKING machine (#8122)
* New NOT_WORKING machine
----------------------
Super Chexx (EM Bubble Hockey) [ClawGrip]
2021-06-02 21:32:41 -04:00
cracyc
37b944eaf9 New machines NOT_WORKING
----------------------------------
Philips :YES [Svenska, rfka01, Carl]
2021-06-02 19:30:08 -05:00
Ivan Vangelista
682090918b stv.cpp: moved the few remaining protection functions in stvprot.cpp to the driver file and eliminated strvprot.* 2021-06-02 17:06:42 +02:00
David Haywood
50be96c46d
new educational / plug and play dumps / cartridges from Sean [Sean Riddle, Dave "Foxhack" Silva] (#8113)
* add some dumped data to the innotab2 driver, split from storio [Sean Riddle]

* new NOT WORKING software list entry
------
leapfrog_zippity_cart.xml:
The Princess and the Frog - Magical Bayou Adventure (500-13779-A) (UK) [Sean Riddle]

* new NOT WORKING machines
-----
Compact Cyber Arcade TV - 120 in 1 (JL2370) [Sean Riddle, taizou]
Leapster Explorer [David Haywood]

* new NOT WORKING software list entries
------------
leapfrog_leapster_explorer_cart.xml:
TinkerBell and the Lost Treasure (500-14226-A) [Dave "Foxhack" Silva]
Mr. Pencil Saves Doodleburg (500-14221-A) [Dave "Foxhack" Silva]
Adventure Sketchers (500-15340-A) (Creativity Learning Game) [Dave "Foxhack" Silva]

* new NOT WORKING software list entries
-------
vtech_innotab_cart.xml:
The Penguins of Madagascar (80-230500, US) [Dave "Foxhack" Silva]
Teenage Mutant Ninja Turtles - Turtle Power! (80-231300, US) [Dave "Foxhack" Silva]

* mobigo_cart.xml: remove jakenevalt, it's a bad dump "80-252800 - Jake and the Neverland Pirates (US).bin                         FIXED BITS (xxxxxx1xxxxxxxxx)"

* mobigo_cart.xml: remove dprinces, it's a bad dump "mobigo_251100.bin                               BADADDRxxxxxxxxx-xxxxxxxxxxxxxx"

* new NOT WORKING software list entries
------
mobigo_cart.xml:
Disney/Pixar Cars 2 (USA, rev 2?) [Sean Riddle, Dave "Foxhack" Silva]
Thomas & Friends - Really Useful Engines (USA, rev 2?) [Sean Riddle, Dave "Foxhack" Silva]

* - added German ltleappad BIOS [Team Europe, Sean Riddle]

* new NOT WORKING software list entries
------
vtech_storio_cart.xml:
Cars 2 (USA) [Sean Riddle, Dave "Foxhack" Silva]
Dora and the 3 Little Pigs (USA) [Sean Riddle, Dave "Foxhack" Silva]
Hello Kitty's Surprise (USA) [Sean Riddle, Dave "Foxhack" Silva]
Disney Princess - A Gift From The Heart & Belle's Special Treat (USA) [Sean Riddle, Dave "Foxhack" Silva]
TinkerBell and the Great Fairy Rescue (USA) [Sean Riddle, Dave "Foxhack" Silva]
Mickey Mouse Clubhouse (USA) [Sean Riddle, Dave "Foxhack" Silva]

* update notes in storio xml

* add some more known cartridge info to juicebox.xml
2021-06-01 14:11:00 -04:00
Aaron Giles
973373e712 ymfm: Sync with upstream:
* Fix panning calculations in OPL4 (YMF278B)
* Make OPQ reverb less ridiculous
2021-06-01 09:54:44 -07:00
Ivan Vangelista
6e5f1cbb77 New machines marked as NOT_WORKING
----------------------------------
Play Sonic 4 [Juan Romero, ClawGrip]
2021-06-01 18:12:44 +02:00
Dirk Best
fa08c5f552 vtech: Rework expansion bus emulation
- Use memory taps instead of directly installing into the memory map
- Use address_maps to specify address ranges
- Add missing save states
- Support the BennVenn SD Loader (preliminary)
- Move lightpen skeleton to a device
2021-06-01 13:16:52 +02:00
AJR
57d621860c tek410x: Add keyboard [AJR, Bitsavers]
* tek440x: Hook up 410X keyboard to pass boot test
* mc68681: Wait until transmitter is actually empty to set TxEMT
2021-05-31 22:15:36 -04:00
tim lindner
eb1df97c6b
bus/coco: add CoCo Max Hi Res Input Module (#8104) 2021-05-31 16:29:01 -04:00
Aaron Giles
05cacea947 ympsr60: Fleshed out the PSR60/PSR70 drivers
* Split YM2154 into a separate device
* Created fake YM2154 ROMs as placeholders
* Created new BBD sound device in src/devices/sound/bbd.cpp
* Created new mixer device in src/devices/sound/mixer.cpp
* Connected YM2154 and BBD devices
* Approximated BBD driver behavior
* Exposed analog sliders as adjusters (accessible via ` menu)
* Added sliders to layout and animated them
2021-05-31 11:20:28 -07:00
Ivan Vangelista
599c33e839 New machines marked as NOT_WORKING
----------------------------------
Fortune Wheel [coolmod]
2021-05-29 07:13:58 +02:00
Olivier Galibert
293a5c9129 Stupid warning is stupid 2021-05-26 22:35:19 +02:00
AJR
c7d7b25caa Better fix for vt_dsk.h header name clash 2021-05-26 14:39:05 -04:00
Olivier Galibert
9add8034d2 vtech: Add floppy formats and fs 2021-05-26 19:15:31 +02:00
Olivier Galibert
da1bd3b0ec reorganize the floptool code, add some write support 2021-05-24 14:06:06 +02:00
hap
681b9c9675 ymtx81z: leave lcd color up to the (internal)artwork 2021-05-24 13:42:20 +02:00
Vas Crabb
5fe20586ee srcclean for release 2021-05-23 17:33:52 +10:00
MooglyGuy
fe08fee386
-pbo: Added skeleton for Philips BO (Videosynthesizer Prototype). [Ryan Holtz, MrMii6, CD-i Fan] (#8093) 2021-05-22 12:34:15 -04:00
Aaron Giles
d9db7d77c4
ymfm: Sync with latest, add complete YMF278B support (#8090)
* Sync with upstream. I/O callbacks are now consolidated into a single read callback and a single write callback, with an access type specifier.
* Initial working implementation of YM278B. Most features implemented, except vibrato.
* Implement vibrato and status register flags. Fix envelope rate computation.
* Rename ymfm_interface::external_type to access_class and clean up the fallout.
* Formally replace the old YMF278B engine with the one from ymfm
* Rotated YMF278B outputs into a more logical order.
* Re-evaluted envelope calculations and 2x works better than the weird 15/8 I came up with before. Also changed the way FM resampling is computed to be more precise (and simpler). Turned off extraneous debugging.
* Start of/reset to a null state with no loaded waveforms.
* Fix YM2608 I/O ports.
2021-05-22 12:33:21 -04:00
arbee
15a5731492 adb: preliminary working A9M0330 IIgs keyboard emulation (not used yet). [R. Belmont] 2021-05-22 09:16:23 -04:00
Nigel Barnes
24189a9346 bus/bbc/tube: Added Sprow ARM7TDMI Co-Processor. 2021-05-21 22:32:11 +01:00
hap
262aa23c89 saitek_osa: added maestro/analyst B/C/D/D+/D++ module [hap, Berger, anonymous] 2021-05-21 19:06:07 +02:00
Robbbert
eab3ae7e54 New working machines
--------------------
Capital Radio Engineering Institute CREI-680 [Robbbert]
2021-05-22 00:53:45 +10:00
AJR
1382af68f4 unidasm: Add CPU16 disassembler 2021-05-21 08:28:01 -04:00
987123879113
c7b89485ea
ksys573: Add incomplete support for Dance Dance Revolution Karaoke Mix (#8047) 2021-05-20 19:15:02 -04:00
arbee
52e917793b Preliminary support for GCC 11.1 (Fedora 34) [R. Belmont] 2021-05-20 13:04:46 -04:00
AJR
ab88bacf35 decmate2, decmate3: Emulate HD-6120 CPU; add enough I/O to initialize various peripheral ICs and run tests on disk controller 2021-05-19 18:27:34 -04:00
arbee
24b7ed9ec5 adb: add skeleton for model A9M0331 ADB mouse. [R. Belmont, Al Kossow] 2021-05-17 20:14:26 -04:00
Olivier Galibert
3b13ae6d71 pc_formats: Believe it or not, but it seems there has been released pc-format ipfs 2021-05-16 19:53:59 +02:00
Ivan Vangelista
6fb35fced8 New machines marked as NOT_WORKING
----------------------------------
Dangerous Bar [Museo del Recreativo (Amusement Museum)]
2021-05-16 08:48:22 +02:00
MooglyGuy
c3ebd9ebb2
-bus/vsmile: Added Smart Keyboard in US, French, and German layouts. [Ryan Holtz, PulkoMandy] (#8059)
Software list items promoted to working
---------------------------------------
vsmile_cart: V.Smile Smart Keyboard (USA), V.Smile Clavier Tip Tap (France), V.Smile Schreibspaß (Germany) [Ryan Holtz, PulkoMandy]
2021-05-16 03:26:22 +10:00
hap
8ba12dd6da saitek_osa: add skeleton device for Sparc module [hap, Berger] 2021-05-15 13:37:52 +02:00
Aaron Giles
3cfc522458
ymfm: Refactor new FM engine into a 3rdparty library (#8046)
ymfm: refactor the code into a separate 3rdparty library
* Moved ymfm core implementation to 3rdparty/ymfm
* Split out each family (OPM/OPN/OPL/etc) into its own source file
* Added preliminary OPQ and OPZ support, still WIP
* Put all 3rdparty code into its own namespace ymfm
* Fixed various bugs reported in #8042
* Created interface class for communication between the 3rdparty engine and the emulator
* Standardized MAME implementation of all Yamaha devices based on a template class
* Created standard base class ym_generic that can be used when multiple YM chips are swapped in
* Changed YM2203/2608/2610 to embed a YM2149 as a subdevice instead of deriving from ay8910_device
* Also provided compile-time option to use a simplified built-in SSG rather than using MAME's at all (currently off)
* Consolidated MAME header files from one-per-chip (ym2151.h, ym2203.h, etc) to one-per-family (ymopm.h, ymopn.h, etc)
2021-05-14 18:33:49 -07:00
Nigel Barnes
2c3530a57a New machines marked as NOT_WORKING
----------------------------------
Kyber Minus [Nigel Barnes, Alessandro Liberalato]
2021-05-14 21:43:53 +01:00
Nigel Barnes
eabd5ddbcd New machines marked as NOT_WORKING
----------------------------------
MG-1 [Tom Stepleton, Andrew McPherson]
2021-05-14 21:43:52 +01:00
hap
c8d53cabbd added saitek OSA module interface used in leonardo/renaissance 2021-05-14 22:00:42 +02:00
Dirk Best
96b871cff8 bingoc: Convert terminal to a device, partially works now 2021-05-12 17:51:11 +02:00
AJR
3955b5c9e9 New machines marked as NOT_WORKING
----------------------------------
DECmate II (PC278) [AJR, Vince Slyngstad]
DECmate III (PC238) [AJR, Vince Slyngstad]
2021-05-11 13:59:42 -04:00
Patrick Mackinlay
9ef03aa399 New machines marked as NOT_WORKING
---
Tektronix 6130 [Randon Michels, Patrick Mackinlay]
2021-05-10 16:42:45 +07:00
Olivier Galibert
7ff6ed667f cdr-254sh: Skeleton 2021-05-10 09:14:54 +02:00
arbee
e13ea1cd39 Retiring my original NCR5380 implementation. [R. Belmont, AJR] 2021-05-08 16:55:52 -04:00
arbee
bca8f60c47 Update arcade.lua with new devices. [R. Belmont] 2021-05-08 16:30:01 -04:00
arbee
fa5977301e apple2: Add support for the BOOTI card [R. Belmont] 2021-05-08 16:19:36 -04:00
AJR
7ed1de96c9 mac.cpp, mac128.cpp, macprtb.cpp, macpwrbk030.cpp, macquadra.cpp: Add helper device to permit use of "new" SCSI bus and 53(C)80 emulation with macse and later 2021-05-08 13:02:41 -04:00
Robbbert
173a0cf3b6 h01x: added mc6845 and cleanup. 2021-05-09 02:30:21 +10:00
Dirk Best
763151a18c missamer: Move to its own driver
- Flesh out driver to make it mostly work
- Create artwork showing all lamps and inputs
2021-05-07 17:50:37 +02:00
Ivan Vangelista
3bdefe103f hornet.cpp, nwk-tr.cpp: extracted nwk-tr.cpp lan board implementation to a device and hooked it up to thrilldbu in hornet.cpp. It doesn't reset anymore but needs analog controls hook-up 2021-05-05 20:23:59 +02:00
AJR
741595c312 qbus: Add dump and skeleton device for Data Systems Design A4432 Floppy Disk Interface [AJR, Bitsavers] 2021-05-05 09:36:12 -04:00
hap
993e9e69e0 chessmst: split driver into chessmst/chessmstdm 2021-05-03 23:39:53 +02:00
Ivan Vangelista
84cf42a2ab New machines marked as NOT_WORKING
----------------------------------
Panic Shot Rockman [SpinalFeyd]
2021-05-02 10:47:40 +02:00
Sandro Ronco
800a422e42 ertictac.cpp: convert to use IOC and MEMC devices. 2021-05-01 23:07:51 +02:00
ClawGrip
243ee045e1
New NOT_WORKING machine (#7986)
-----------------------
Ajofrin City [jordigahan, ClawGrip]
2021-04-30 03:32:38 +10:00
Olivier Galibert
c8b751da56 mess: Add forgetten module 2021-04-28 16:19:40 +02:00
Olivier Galibert
8709e06b67 floppy: start block-devicing fielsystem support 2021-04-28 16:17:56 +02:00
hap
5f27fc8951 poly880: move header file into driver 2021-04-28 00:10:49 +02:00
hap
03ea2d2207 slc1a: remove driver, turns out it's a mod of poly880 2021-04-27 23:52:51 +02:00
arbee
3b6f5c69f6 New NOT WORKING machines
========================
Yamaha PSR-60 PortaSound [R. Belmont, JKN0, d-tech]
2021-04-27 07:42:37 -04:00
arbee
f08b0c9c6c bus/rs232: Preliminary emulation of the Mockingboard D "sound card" for the Apple IIc. [R. Belmont, Apple II Documentation Project] 2021-04-25 22:24:44 -04:00
hap
5f977adf3f fix arcade target link 2021-04-23 18:55:31 +02:00
Dirk Best
02516af978 basf7100: Hook up interrupt controller, keyboard
- Hooked up PIC and connected keyboard and vblank interrupts
- Implemented HLE keyboard (all keys mapped, using the translation ROM for keycodes)
- Increased shared memory to 40k
- Fixed interrupt flags register
- Implemented cursor and roll offset
2021-04-19 19:27:33 +02:00
AJR
3cee2739a2 mame.lst, mess.lua: Fix build errors from c037dfd822 2021-04-19 12:42:11 -04:00
hap
d79ba952ac smartboard: add internal artwork for the pc version 2021-04-19 14:53:28 +02:00
hap
9194b83f3b smartboard: add support to connect it to pc printer port 2021-04-19 13:01:19 +02:00
Olivier Galibert
7dc0aab8df thomson,bm3: Correct compile errors due to incorrectly pushing a not entirely mature patch (but good enough for a start) 2021-04-19 11:44:03 +02:00
Olivier Galibert
c037dfd822 thomson: Turn the extensions into slot devices, modernize the floppies 2021-04-19 09:50:19 +02:00
AJR
daa6c94699 New machines marked as NOT_WORKING
----------------------------------
Roland PR-100 Digital Sequencer [AJR, Valley Bell]
2021-04-18 14:05:21 -04:00
Robbbert
92ebbbaee1 radionic: Split radionic to its own source. 2021-04-19 02:40:19 +10:00
Robbbert
a9938f507e New machines marked as NOT_WORKING
----------------------------------
Intellec 8 MCS
2021-04-18 23:00:25 +10:00
Robbbert
a37f66aa70 New machines marked as NOT_WORKING
----------------------------------
Elektronikladen Elzet 80/K
Elektronikladen Elzet 80/P
2021-04-18 02:52:53 +10:00
AJR
56ea894a84 nscsi: Add dump and skeleton device for Sony CDU561-25 CD-ROM drive [Bitsavers] 2021-04-16 15:19:23 -04:00
Robbbert
f627dff3ad New machines marked as NOT_WORKING
----------------------------------
Junior-80
2021-04-17 02:44:11 +10:00
Olivier Galibert
9c8b72a5fe sound: Pulseaudio support 2021-04-16 14:49:16 +02:00
Robbbert
4269a89525 New machines marked as NOT_WORKING
----------------------------------
Lobo Max-80
2021-04-16 15:54:33 +10:00
Justin Kerk
6462fb5e00 Fix compilation with Emscripten versions greater than 2.0.8 (#7794) [Sam Clegg] 2021-04-16 02:44:16 +00:00
Furrtek
c1bf2b99cb
Added Konami 007452 multiplier/divider (#7951)
* Added 007452 multiplier/divider, fixes rolling mines trajectories in contra
* Plugged k007452 in combatsc, flkatck, wecleman
2021-04-15 01:09:22 +02:00
Olivier Galibert
6cbee7f176 cdu415: Add skeleton 2021-04-14 09:34:44 +02:00
hap
f498f61295 mephisto_montec.cpp: split driver file into montec/smondial 2021-04-12 00:36:52 +02:00
hap
ba646af6d8 mephisto_glasgow.cpp: split driver file into glasgow/amsterdam 2021-04-11 00:02:50 +02:00
hap
e56f56d624 added device for 1st version of mephisto display module 2021-04-10 17:21:14 +02:00
hap
55e356f13a mephisto_mondial.cpp: split driver file into mondial/mondial2 2021-04-09 11:54:50 +02:00
Olivier Galibert
b663c4bc50 cdu75s: start the driver 2021-04-08 09:15:25 +02:00
hap
0dca4d3106 mephisto_polgar.cpp: split driver into polgar, risc, milano 2021-04-07 23:11:20 +02:00
Olivier Galibert
e0d69fad4c h8: Add the h8/3032 2021-04-07 14:29:28 +02:00
arbee
e42e059b23 Add bus/adb for real ADB device emulation [O. Galibert, R. Belmont] 2021-04-06 22:40:10 -04:00
Vas Crabb
958189731b bus/a2bus: Added Orange Micro Grappler printer interface card. 2021-04-07 04:33:43 +10:00
Dirk Best
ba29e1f553 New machines marked as NOT_WORKING
----------------------------------
BASF 7120 [rfka01, Dirk Best]
2021-04-06 17:49:05 +02:00
feos
4e337734f7 Fix vs2019_clang build 2021-04-05 13:00:48 +10:00
Aaron Giles
52f0acb25c
New BSD-licensed OPL/OPLL (YM3526, YM3812, YM2413, Y8950, YMF262, etc) cores (#7869)
* OPL prep. Define FAMILY constant in register classes, and use that instead of template specialization for family-specific behaviors. Expand channel masks to 32 bits. Add is_keyon() helper.

* Made FM channel and operator mapping more flexible. Operators are now owned by the engine and can be dynamically assigned to channels. Register classes now provide a mapping between a linear set of operators and channels. The register data array is now a regular array instead of a vector.

* Minor change for consistency.

* Introduce OPL registers and create a ymopl_engine. Add support for sustain-less notes and the OPL envelope clocks (which does not divide by 3).

* Moved keycode calculations into register class. Removed unnecessary recalc in phase generator. Lined up OPL frequency, feedback, algorithm, and total level.

* Implement key scale level and OPL-specific LFO and phase handling.

* Create new YM3526 device based on new OPL. Fix keyon and sustain behaviors.

* Fix weird OPL multiple values. Clean up and further document OPL LFO.

* No busy flag on OPL, so no need to do the work. Add a right shift of 1 to the output stage to line up volume with old implementation.

* More compact way of representing key scale level values.

* Move the KSL bitswap into the registers since it's apparently fixed in OPLL and perhaps others.

* Add support for ryhthm generation in OPL. Change compute_volume to take a phase value directly, and expose operator phase.

* Fix OPL timers.

* Start LFSR with a non-zero value to ensure it actually starts generating for OPL.

* Fix silly bug in sustain logic for OPL. Fixes a lot of previously missing sounds.

* Create OPL2 engine. Add waveform support for OPL2/3 waveforms.

* Wire up YM3812 to the new OPL2 engine.

* Reset OPL timers when the mask is written as well.

* Manage rhythm key ons separately. Fixes Wardner awfulness.

* Explicitly make channel logic handle 0, 2, or 4 operators rather than checking each one for null. Also simplify the combining logic for the 2 operator case.

* Reverse bit order of LFSRs to make things a little simpler. Fix OPL LFSR so that it has its full 23-bit period.

* Change outputs along the path to arrays rather than stereo items. This allows for four channel output. Also add a constant for the number of outputs to the register class.

* Move status register bit definitions to the registers class. Generically support the IRQ bit.

* Create shared helpers for FP encode/decode/roundtrip and use them throughout. Also update TMNT to use the FP decoder.

* No need to clamp when using the roundtrip.

* Clear the EOS flag when execute is turned off on ADPCM-B. Fix combine_status in YM2608 to ignore previously set flags.

* Add missing note_select in base class. Don't add 1 to the OPL release rate.

* Move Y8950 over to new OPL engine.

* Remove old y8950, along with fmopl and ymdeltat

* Add updates prior to status reads for ADPCM systems.

* Add status_mask and irq_reset logic into the core. Clean up documentation on family-specific registers. Includes some temporary gross debugging stuff.

* Made debugging less gross by giving operators and channels a reference back to their owner.

* Fix status port address in OPL chips. Reduce ADPCM volume to match previous implementation.

* Fix Y8950 ADPCM start. Return masked status properly.

* Initial cut at OPLL mapping.

* Add YM2413 support based on ymfm; renamed vrc7snd to ds1001; added YM2423 amd YMF281 variants as well. Instrument data is now loaded via external ROMs. Added 'depress' envelope support to the core engine. Fixed a number of issues in the ymopll_engine. Documented hard-coded values. Moved register clear into register-specific reset.

* Add missing identifier.

* Y8950 is OPL not OPL2.

* Some documentation cleanup. Consistency fixes in the register classes.

* Consolidate large comments. Add support for delayed modulators for OPL. Broke out 2-op and 4-op cases to help simplify logic. Fixed overflow handling in fp encoding.

* Fix silly bug.

* Changed operator assignment mechanism to be more readable. Added prepare method to be called at the start of sound update. Added ALL_CHANNELS constant to register files. Updated all consumers to call prepare and use constants where applicable.

* Move YMF262 and YMF278B to use new FM engine for OPL3/4. Fix several issues in OPL3 logic, which now seems to work ok.

* Minor fixes. More documentation.

* Fix MSVC build.

* Add caching of data to prepare methods to improve performance. Moved non-register decoding logic out of the .h file and into .cpp file. Move phase_step calculation into register class.

* More notes. Removed keycode from cache. Split 2/4-operator outputs into separate functions. Changed OPN/OPL to use templates for variants. Added channel/operator_offset helpers.

* Fairly substantial overhaul of register interface. Register interface is now stateless and contains family-specific state. Channel and operator accessors are prefixed by ch_/op_ now and require an offset to the specific channel or operator. Moved LFO/noise generation into register class, along with keyon logging.

* Add noise back to OPL/OPLL

* Added early-out for low envelope. Moved waveform logic out into family-specific code. General clean up of ordering. Reduced family base class to minimal needed.

* More aggressively track active channels to help performance.

* Use only summing outputs for consideration of active channels. Centralize the logic of determined 4-op vs 2-op.

* More conservative channel deactivation.

* Add helper to compute the sample rate and use it in all implementations. Remove unneeded chnum/opnum members.

* Fix error in YM2612 that caused crashes.

* Switching parameters and locals to 32-bit values gives a noticeable performance boost. Checkpoint 1.

* More moving to 32-bit values. Checkpoint 2.

* Last of the 32-bit promotions.

* Ensure SSG inverted flag is only tested on systems with SSG support in the innermost loops.

* Make most constants 32-bit as well. Expose some constants via the engine class.

* Expand waveforms ahead of time. Optimize the attenuation lookup a bit.

* If volume is low, don't erase output, just leave it alone. Fixes missing sound in raimais.

* Replace a couple of magic numbers with constants.

* Normalization of FM engine usage across consumers.

* Removed explicit external prepare() call; this logic is now automatically done after writes and periodically. Changed OPL/OPLL to use native formats for block/fnum. Fixed waveform generation. Fixed PM and AM depth on OPL/OPLL.

* Cache multiple value. Clean up output handling a bit.

* Move multiple caching ahead of phase step caching.

* Fully split OPLL from OPL. Remove many hacks now that OPLL registers can have state. Created shared helpers between OPL/OPLL. Removed more aggressive channel disables since it was not rhythm friendly and didn't really buy much.

* Remove old comment

* Remove bad write in OPL mode case. Fixes fsoccer intro. Only call set_reset_status() once per mode call.

* Remove FM output boost in YM2608/2610. Not sure why I did that. Better matches previous volume now.

* Make AM/PM logging less confusing.

* Let's actually set DYNAMIC_OPS properly, eh?

* Improved logging.

* Comment cleanups. Add constant for dynamic phase. Pre-shift sustain level. Srcclean.

* Fix memory regions on YM2608 games.

* Clean up ymadpcm to line up with recent ymfm changes.

* y8950: Reshuffle read/write handlers. Rename them to less confusing names.

* ym2413: Reshuffle read/write handlers. Rename them to less confusing names.

* ym3526/ym3812: Reshuffle read/write handlers. Rename them to less confusing names.

* ymf262: Match read/write details to datasheet and previous tests.

* Use a constexpr function instead of macro for packing operator numbers. Pre-compute OPM LFO waveforms.

* Generate OPL4 engine to support the proper clock divider and new flags. Update YMF278B to use FM timers and status rather than replicating the logic.

* Fix 4-operator enable on new OPL4 instance.

* Fix FM downsampling and adjust balance in YM278B.
2021-04-02 19:58:04 +02:00
hap
0d897d07e6 namcos2/c355 sprites: color 0xfe is for a palette offset instead of shadow [dink, hap] 2021-04-01 21:01:36 +02:00
Robbbert
b44de86569 Moved lnw80 to its own driver. 2021-04-01 20:34:23 +11:00
Vas Crabb
71b8df0417 MAME 0.230
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEE0DYtsBhE4EM627+6wXSxAYxAcQ4FAmBjCXUACgkQwXSxAYxA
 cQ6PAhAAuSgrMmBQiTdMrBvCDcB080E9yFNOkFpMgcH/RD9Md9hC5lN3sHVlGvex
 1hfA2hz1P2E3Icl2hI6oqhvXh192oo+AOj3EJ6bQdtn8c4UHhpFxNZ2tqbO0gcz5
 uuoThQx4Y29tAcYsurFcL7n782tcDym+QvTRl+UDiRWEMLXOTcd0IgKwYTm8scRL
 8c02Ks07cXJgawjDkyZYYQIvUjodppwTwdIW0hL3vvVNjFptG9ailtfTibLdfZRC
 QBTKLLewQxLDGROzfkY3lQwN+9TPdkSiITm63tBr9d+mCBT4Ib64MafplNGuxOVC
 vXBdjEsJyz2WDn490FXw3ZevOJI/BZCKuYZaW54owNbqgvLDXvc7AJMeEpqBGH8h
 soyJOx8NWY6FSB3yIgU6EROa+4IT3ZLdth3Q742ZNIBPlG1zIOvatredHnAQNis/
 VQM6y0jdbyIiMTRRfn3WLDp/CI0U2XO65d8+S9f86+5I8kbxTrJGSxx8YfM9c3up
 xuUbCBIU/egYBpYOaQzxxg9vFf+kWs50qdH2hMIxQjFM1IpUzWokiukUjCjRiVPp
 a4tRW3bdDmL76vkcQ/S4gQrSeDCLMBcPIZ5ffkBuaEar+C01/GOOKzn3UJWEkkmB
 dnw8HRLvJviPyTN2IiFWSZT+wYdgM0d3G3YofLsH6JTsaSF3xq8=
 =WmoT
 -----END PGP SIGNATURE-----

Merge tag 'mame0230' into mainline-master

MAME 0.230
2021-03-31 12:05:54 +11:00
David Haywood
196a342ae4
Refactoring and bug fixes for bbusters and mechatt: (#7902)
* Moved sprite handling to a device.
* Adjusted audio balance on mechatt (channel 0 was overpowering everything).
* Adjusted priority handing on mechatt (planes now correctly rise from underground hanger on stage 3, train carts in later level).
* Split driver in two, general refactoring etc.
* Removed player 2 inputs from mechattu1 - it doesn't respond to them at all.
2021-03-31 00:13:02 +11:00
hap
2247ffefa2 makefile: added param to override ar 2021-03-30 13:58:16 +02:00
AJR
2610d8771d Restore legacy pc_dsk floppy support for imgtool only 2021-03-29 22:50:26 -04:00
AJR
4d3afe00fc Restore legacy pc_dsk floppy support for imgtool only 2021-03-29 22:48:14 -04:00
hap
ab3a834deb remove references to "mame64" from comments 2021-03-29 15:26:38 +02:00
Vas Crabb
438edcd151 Fix building with clang 6
Annoyingly, clang 6 produces warnings for unused private static data
members, but does not recognise the [[maybe_unused]] attribute for them.
2021-03-29 04:30:37 +11:00
Vas Crabb
e298c31a69 srcclean in preparation for release 2021-03-28 14:34:50 +11:00
Ivan Vangelista
6ea5487515 New machines marked as NOT_WORKING
----------------------------------
Bee-Zerk [Bad A Billy, Smitdogg, The Dumping Union]
unknown VLC multigame [Bad A Billy, Smitdogg, The Dumping Union]
2021-03-25 12:45:10 +01:00
Robbbert
f2fa9bd3b1 Fixed arcade build. 2021-03-24 20:16:29 +11:00
Olivier Galibert
c8b532068f xt446: Use its real name 2021-03-22 22:51:49 +01:00
Olivier Galibert
5270d43692 keyboardmania: Interface with the mu100 2021-03-21 23:01:23 +01:00
hap
001eadf294 pps41: add preliminary mm78la/mm77la 2021-03-19 17:53:12 +01:00
Olivier Galibert
cdb06b7a99 pmac6100: Move it to a new driver 2021-03-12 21:35:02 +01:00
hap
82461369ff pps41: added mm78 disasm and mm77/mm78 skeleton device 2021-03-08 15:52:04 +01:00
AJR
3f122ae7df New machines marked as NOT_WORKING
----------------------------------
Akai MPC60 MIDI Production Center [DBWBP]
2021-03-07 23:35:00 -05:00
fulivi
3fe689f03f
HP9845: added synchronous I/O for RS232 port and HP98046 module (#7695)
* rs232: added device for synchronous I/O

* hp9845: implemented external clocking in hp98046 serial module

Co-authored-by: ajrhacker <ajrhacker@users.noreply.github.com>
2021-03-07 13:31:39 -05:00
Brian Troha
a5f7033245 arcade.lua: Remove unnecessary BUS device. 2021-03-06 16:50:48 -06:00
Brian Troha
864040eade Fix 'arcade' build 2021-03-06 01:00:33 -06:00
Olivier Galibert
e8ab2b8a78 Fix messed-up merge 2021-03-05 14:10:44 +01:00
Olivier Galibert
92326e47af floppy: Beginning of the support for preformatted floppy images.
What's missing:
- parameters (like the disk name when it exists)
- possibly a cleanup of ram_open and friends (but not sure of the appropriate direction in which to go)
2021-03-05 10:17:20 +01:00
hap
d65c5159f1 pps41: add skeleton MM76-derived devices 2021-03-04 13:10:10 +01:00
Dirk Best
e5d1cec868 formats: Fix missed RC759 format 2021-03-04 11:24:17 +01:00
Olivier Galibert
d436cbd3a6 formats: Create mame_formats_full_list which gives access to all the supported formats, make floptool use it. Castool should use it too probably, but I don't want to touch it. 2021-03-04 10:14:24 +01:00
Dirk Best
23769b0970 rc759: Add RTC and floppy, start cleanup 2021-03-03 13:38:54 +01:00
Olivier Galibert
a52b69d27c Fix dependencies 2021-03-02 20:51:01 +01:00
Olivier Galibert
faf0417271 defaults: pc format is in, ipf is out 2021-03-02 20:20:20 +01:00
David Haywood
2746058dcf
new WORKING machines (TV Board Games 6-in-1) (#7824)
new WORKING machines
-------
TV Board Games 6-in-1: Silly 6 Pins, Candy Land, Hungry Hungry Hippos, Match 'em, Mixin' Pics, Checkers [Sean Riddle, David Haywood]
TV Board Games 6-in-1: Simon, Battleship, Mouse Trap, Checkers, Link-a-Line, Roll Over [Sean Riddle, David Haywood]
2021-03-02 13:53:31 -05:00
hap
323250bbee mastmind: shuffle around bit/byte ordering, disasm looks better now 2021-03-02 19:49:53 +01:00
hap
dd75841b96 machine.lua: correct applefdintf file pointer 2021-03-02 12:24:01 +01:00
AJR
f74d0978a9 Revert "fileio.cpp: This doesn't technically require emu.h"
This reverts commit 6d6073054b.
2021-02-28 13:25:25 -05:00
Nigel Barnes
fda2a0e482 econx25: Added the dual Z80 co-processor board (incomplete). 2021-02-28 12:22:22 +00:00
AJR
7002aae556 New working machines
--------------------
Mark 1 FORTH Computer [AJR]
2021-02-27 11:58:40 -05:00
Dirk Best
8b5e6f363e rc759: Fix cassette error, add keyboard 2021-02-27 14:33:00 +01:00
Aaron Giles
95869d5718
New BSD-licensed implementation of Yamaha OPN and OPM FM audio chips (#7808)
New BSD-licensed implementation of Yamaha OPN and OPM FM audio chips, along with new device drivers for YM2203, YM2608, YM2610, YM2610B, YM2612, YM3438, and YM2151 based upon these.
2021-02-27 21:57:43 +11:00
hap
2f02c96baf added MM76 disassembler and preliminary PPS-4/1 MCU core [hap]
New machines marked as NOT_WORKING
----------------------------------
Electronic Master Mind (Invicta) [hap, Sean Riddle]
2021-02-26 18:24:59 +01:00
Ivan Vangelista
081817139d New machines marked as NOT_WORKING
----------------------------------
Mini Money [jordigahan, ClawGrip]
2021-02-26 18:10:34 +01:00
AJR
6d6073054b fileio.cpp: This doesn't technically require emu.h 2021-02-26 12:07:44 -05:00
AJR
5dda26dd69 fddebug.cpp: Remove from build 2021-02-26 12:06:59 -05:00
Ivan Vangelista
72cc272622 simple_st0016.cpp: got rid of tagmap lookups and other small cleanups 2021-02-23 20:55:37 +01:00
cam900
0a2caa105d
Refactored Seta sound, adding preliminary ST0032 sound support. (#7800)
* Renamed sound/nile.cpp to sound/setapcm.cpp.
* Added preliminary support for 16-voice ST0032 variant.
* jclub2.cpp: Hooked up ST0032 sound.
* jclub2.cpp, srmp6.cpp: Derive sound clocks from crystal frequencies.
2021-02-23 23:12:22 +11:00
ClawGrip
757e506018
New machines marked as NOT_WORKING (#7769)
New machines marked as NOT_WORKING
----------------------------------
Silverball (8.01) [jordigahan, ClawGrip]

New clones marked as NOT_WORKING
--------------------------------
Silverball (6.32) [Asure]
Silverball (7.20) [Asure]
Silverball Bulova (4.09, set 1) [Asure]
Silverball Bulova (4.09, set 2) [Asure]
2021-02-20 06:14:10 +01:00
ClawGrip
f834335d26
New machines marked as NOT_WORKING (#7700)
New machines marked as NOT_WORKING
----------------------------------
Photo Play 2001 (Spanish) [jordigahan, ClawGrip]
2021-02-20 06:11:35 +01:00
Nigel Barnes
2a4a487ec2 bus/bbc/tube: Added the CMS 6809, Acorn 16032, and Acorn A500 2nd processors. 2021-02-20 00:22:05 +00:00
ClawGrip
8be77e81fb
New machines marked as NOT_WORKING (#7801)
* New machines marked as NOT_WORKING
----------------------------------
PlayCenter Champions Tournament (v9.3) [Recreativas.org]
2021-02-19 20:18:06 +01:00
hap
147b5e72a4 added MM5799 MCU emulation [hap]
New working machines
--------------------
Basketball (Mattel) [hap, Sean Riddle]
QuizKid Speller [hap, Sean Riddle]

New working clones
------------------
QuizKid Racer (MM5799 version) [hap, Sean Riddle]
2021-02-14 23:23:28 +01:00
Roberto Benfatto
02d6b1e457
scripts: Remove references to non-existent headers and duplicate source file references. (#7770) 2021-02-14 22:15:17 +11:00
hap
307261ec8a New machines marked as NOT_WORKING
----------------------------------
G.T. Block Challenger [hap, chaneman]
2021-02-11 12:21:52 +01:00
hap
856f17da03 novag_supremo: redumped the ROM [bataais]
novag_supremo: move driver to novag_snova [hap]
2021-02-09 18:14:25 +01:00