Commit Graph

104 Commits

Author SHA1 Message Date
Devin Acker
cbf84129bf
fz1 and clones: preliminary sound emulation, fz20m: fix SCSI hookup (#13967)
* - fz1 and clones: preliminary sound emulation
- fz20m: fix SCSI hookup
2025-07-25 21:18:21 -04:00
hap
1e8c8d01b7 remove obsolete wave (cassette sound) device 2025-05-21 16:56:27 +02:00
Olivier Galibert
d0f1c15a0f New sound infrastructure.
Should be added soon:
- mute
- speaker/microphone resampling

To be added a little later:
- compression
- reverb

Needs to be added by someone else:
- coreaudio
- direct
- portaudio
- xaudio2
- js
2025-04-27 22:23:20 +02:00
m1macrophage
3299e78bae
Implemented VA EG (Envelope Generator) and VCA (Voltage Controlled Amplifier) sound devices. (#13545)
* sound/va_eg.cpp, sound/va_vca.cpp: Envelope generator and voltage-controlled amplifier.

Implemented RC-based envelope generator and voltage-controlled amplifier devices.
Replaced custom implementations in paia/fatman, linn/linndrum and oberheim/dmx.

* Fixing comments.

* More comment fixes.

* Adding comments based on feedback.

* Fixed typo.
2025-04-02 10:31:23 +02:00
cam900
3fb2594c99
devices/sound/mmc5.cpp: Implement MMC5 sound emulation (#13487)
* Implement MMC5 sound emulation
- Heavily based from devices/sound/nes_apu.cpp, Adjusted to differences compares to NES APU and MMC5.

* bus/nes/mmc5,cpp: Fix save state support, Implement MMC5 sound

* bus/nes/nes_slot.h: Fix save state support
 
* sound/nes_defs.h: Fix save state support
2025-03-30 15:53:31 -04:00
Michael Zapf
d96222a3f0 tms52xx: Remove legacy spchrom implementation. 2025-02-27 22:58:01 +01:00
Devin Acker
752c45b42b
casio/wk1800.cpp, sound/gt155.cpp: Added Casio WK-1800/WK-1600 music keyboards. (#12957)
WK-1800 floppy support is not implemented.

New working systems
----------
Casio WK-1800 [Edward d-tech, Devin Acker]

New working clones
----------
Casio WK-1600 [Edward d-tech, Devin Acker]
2025-02-22 08:34:36 +11:00
Devin Acker
efee42e5e4
casio/ct8000.cpp: Emulated Casiotone 8000 keyboard and related systems. (#13237)
* sound/flt_biquad.cpp: Added Sallen-Key high-pass filters.
* sound/bbd.cpp: Added MN3207P variant.
* sound/upd931.cpp: Emulated µPD931 synthesis chip.

New working systems
--------------------
Casio Casiotone 8000 [=CO=Windler, Devin Acker]
Casio Casiotone FK-1 [BCM, Devin Acker]

New systems marked not working
------------------------
Casio Casiotone MB-1 [=CO=Windler, Devin Acker]
2025-01-26 04:47:44 +11:00
angelosa
f9eb32e6b0 amiga: move paula, akiko, copper and fdc from machine to project folder 2025-01-01 12:51:22 +01:00
wilbertpol
926b6182b1
Replace uPD1771c high level emulation with a cpu core. (#13106)
* cpu/upd177x/upd177x.cpp: Add NEC uPD177x cpu core.

* scv.xml: Promoted 1 item.

Software list items promoted to working
------------------------------------------
Star Speeder

* cpu/upd177x/upd177x.cpp: Remove a comment.

* cpu/upd177x/upd177x.cpp: Remove callback on PA.

* cpu/upd177x/upd177x.cpp: Update comment about setting m_pc to 1 during reset.

* Add a different workaround for the sync issue between the 2 cpus in scv.

* cpu/upd1771x/updf177x.cpp: Use little endian.

* cpu/upd177x/upd177x.cpp: Include device tag in fatalerror messages.

* epoch/scv.cpp: Update upd1771c rom region sizes.

* nec/apc.cpp: Switch to upd177x_cpu_device.

* epoch/scv.cpp: Add location to upd1771c rom name.

* cpu/upd177x/upd177x.h: Remove 'overrides' comments.
2024-12-27 21:58:48 -05:00
angelosa
024f4305b4 isa/sb16: move mixer implementation to own ct1745 device 2024-11-23 16:00:01 +01:00
hap
14efb71aa4 source org: move dedicated dave soundchip to enterprise folder 2024-10-17 14:12:42 +02:00
Devin Acker
dfb266a8d9
casio/zoomer.cpp: Emulated Casio/Tandy "Zoomer" PDA. (#12739)
* sound/upd65043gfu01.cpp: Added basic support for NEC uPD65043GF-U01 sound chip.
* casio/zoomer_rtc.cpp: Emulated Zoomer real-time clock chip.
* src/devices/cpu/nec: Don't log message on bus lock by default.

New working systems
----------
Casio / Tandy Zoomer (Z-PDA / Z-7000) [Devin Acker]
2024-09-11 15:05:58 +10:00
Vas Crabb
0f64064d47 srcclean and cleanup 2024-07-28 08:56:25 +10:00
Giulio Zausa
81284c68ca
Fixes/ROMs for Roland stuff (#12555)
* Fixed screen

* Added ROMs and GP/LP support

* Fixed rom and prints

* Leftover

* Fix
2024-07-08 22:44:06 +02:00
Simon Eriksson
19962ed350
spg2xx: Switch ADPCM algorithm to IMA ADPCM (#12525)
- Also add new IMA ADPCM implementation class for this purpose
2024-06-28 18:35:32 -04:00
987123879113
55212dab72
misc/xtom3d.cpp: Added PIU10 ISA PCB for Pump It Up. (#12237)
* misc/xtom3d_piu10.cpp: Added PIU10 card device (CAT702, DAC3350A, MAS3507D, Flash).
* sound/dac3350a: Added Micronas DAC 3350A device.
* sound/mas3507d.cpp: Mix sample internally before playing.
* machine/cat702.cpp: Added CAT702 variant with different interface logicfor PIU10.
* machine/intelfsh.cpp: Add Macronix 29F1610MC device.
2024-04-17 04:28:27 +10:00
Olivier Galibert
6bccd589c1 swx00: Advance 2024-03-18 22:46:54 +01:00
Devin Acker
a97718f3b3
misc/jaminator.cpp: Added driver and software list for Noise Toys Jaminator guitar toy. (#12146)
sound/cf61909.cpp: Added Texas Instruments CF61909 sound chip device.

New working systems
----------
Noise Toys Inc. Jaminator [Devin Acker]

New working software list items
----------
jaminator.xml: Classic Rock I (USA), Classic Rock II (USA), Hard Rock I (USA), Hard Rock II (USA), Lead Rock Guitarists (USA), Modern Rock (USA) [Devin Acker]
2024-03-18 16:35:01 +11:00
hap
19c5c5bff8 added preliminary OKI MSM6588 ADPCM Recorder device 2024-02-29 01:52:37 +01:00
987123879113
32e13b0f3c
misc/sttechno.cpp: Implement driver for Kato's Shamisen Brothers. (#11929)
* machine/intelfsh.cpp: Implemented fast mode for Fujitsu flash.
* bus/ata/atapihle.cpp: Made DMA ready configurable.
* sound/stt_sa1.cpp: Emulated STT-SA1 PCM sample playback.

Systems promoted to working
-----------------------------
Shamisen Brothers Vol 1 (V1.01K) [Windy Fairy, Taro, angeryer]
2024-01-16 05:51:26 +11:00
MooglyGuy
ba60c481b5
Added LD-V1000 HLE device, placeholder SSI-263A HLE device, and promoted Thayer's Quest. (#11915) [Ryan Holtz]
-cinematronics/thayers.cpp: Added CHD and promoted to working. [Ryan Holtz]
 * Fixed periodic IRQ hookup.
 * Fixed COP421 clock divisor.
 * Switched to LD-V1000 by default and removed LD-PR7820 support for now.
 * Switched to using logmacro and shorthand data types.
 * Adjusted IRQ triggering and acknowledgement according to schematics.

-sound/ssi263hle.cpp: Added a temporary SSI-263 device which remaps SC-02 phonemes onto the SC-01's phoneme set. [Ryan Holtz]
 * SSI-263 skeleton extracted from cinematronics/thayers.cpp.

-machine/ldv1000hle.cpp: Added an HLE version of the Pioneer LD-V1000 laserdisc player. [Ryan Holtz]

-machine/laserdsc.h: Added a general-purpose parallel LaserDisc player interface, to have a common class parent for LD-PR7820. [Ryan Holtz]

-sega/timetrv.cpp: Replaced timetrv2 LaserDisc image with a good capture. [Ryan Holtz, Matt Ownby, ld-decode Team]

Systems promoted to working
---------------------------
Thayer's Quest (set 1) [Ryan Holtz, Matt Ownby, ld-decode Team]

Clones promoted to working
--------------------------
Thayer's Quest (set 2) [Ryan Holtz, Matt Ownby, ld-decode Team]
2024-01-08 03:47:49 +11:00
Olivier Galibert
556de9bd1e Argh, sorry about the forgotten files. 2023-10-30 00:42:51 +01:00
arbee
f923597fed Revert "swp30: Use natural addresses, reorganize the meg, make envelopes and keyoff a little better"
This reverts commit ae2ee86fe8.
2023-10-29 18:38:19 -04:00
Olivier Galibert
ae2ee86fe8 swp30: Use natural addresses, reorganize the meg, make envelopes and keyoff a little better 2023-10-29 21:03:09 +01:00
qufb
ba621ec24d
sega/sega_beena.cpp: Emulated Advanced Pico BEENA and TV Ocha-Ken. (#11213)
Basic functionality is supported, making most games playable.

StoryWare display is not yet implemented.

Game-specific peripherals are not emulated.

There are still some issues with graphics.

emu/ioport.h: Fixed rarely-used PORT_CROSSHAIR_MAPPER and PORT_CROSSHAIR_MAPPER_MEMBER macros.

cpu/arm7: Added AP2010 CPU device.

sound/ap2010pcm.cpp: Added basic AP2010 PCM audio output device.

Systems promoted to working
------------------------
Sega Advanced Pico BEENA

New working systems
------------------------
Sega TV Ocha-Ken
2023-10-28 03:06:55 +11:00
Devin Acker
3574a5aa74
casio/cz101.cpp: Added sound output and RAM cartridge, and promoted system to working. (#11613)
* casio/ra3.cpp: Added simple Casio RA-3 RAM cartridge device.
* sound/upd933.cpp: Emulated Casio/NEC uPD933 phase distortion synthesis chip.

Systems promoted to working
----------------
Casio CZ-101 [Devin Acker]
2023-10-18 03:00:22 +11:00
987123879113
f60fd23e3e
namco/namcos12.cpp: Emulated games with CDXA board. (#11558)
* machine/t10mmc.cpp: Added support for T10SBC_CMD_SEEK_10 command.
* cpu/sh: Added SH7014 SoC.
* machine/icd2061a.cpp: Emulated IC Designs 2061A programmable clock generator.
* sound/lc78836m.cpp: Emulated Sanyo LC78836M audio DAC.
* namco/namcos12_cdxa.cpp: Emulated Namco System 12 CDXA board.

Systems promoted to working
-----------------------------
Truck Kyosokyoku (Japan, TKK2/VER.A) [Windy Fairy]

New working systems
-----------------------------
Um Jammer Lammy NOW! (Japan, UL1/VER.A) [Phil Bennett, Eric Yockey, Windy Fairy]
2023-09-22 14:56:24 +10:00
Vas Crabb
6e2d6cd2c5 Revert "Clean up the Votrax SC-01[-A] class names and device names. [Lord Nightmare]"
Names in the global namespace need to be specific.  Making them overly
generic is a very bad idea, and leads to confusion and conflicts.
Device type names must always be in the global namespace, and most
device classes are in the global namespace.

Changing members like m_votrax to m_sc01 doesn't help understand the
code.  If there's only one Votrax speech module in the system, it's
obvious what it is.

This reverts commit c6f0e83ecf.
2023-07-12 07:33:52 +10:00
Lord-Nightmare
c6f0e83ecf Clean up the Votrax SC-01[-A] class names and device names. [Lord Nightmare] 2023-07-11 17:17:00 -04:00
Olivier Galibert
f432d6e4d2 hrdvd: Add placeholders for all the chips, thanks Guru for tracing the pcb 2023-05-26 09:37:50 +02:00
Lord-Nightmare
f64470c568 Add support for the older Votrax SC-01 chip; currently only used by Bally Astrocade-derived arcade hardware. All other devices remain using the Votrax SC-01-A. [Lord Nightmare] 2023-05-16 14:52:48 -04:00
987123879113
fb2b5745d1
namco/namcos10.cpp: Add MP3 decoder support to the MEM(P3) board. (#11210)
* 3rdparty/minimp3: Update to latest source (afb604c06bc8beb145fecd42c0ceb5bda8795144).
* sound/mp3_audio.cpp: Add helper class to decode MP3 frame data, abstracting away minimp3 from devices.
* sound/lc82310.cpp: Added basic Sanyo LC82310 MP3 decoder emulation.
* namco/namcos10.cpp: Fixed light gun inputs for Golgo 13: Juusei no Requiem.

Systems promoted to working
------------------
Golgo 13: Juusei no Requiem (Japan, GLT1 VER.A)
Tsukkomi Yousei Gips Nice Tsukkomi (NTK1 Ver.A)
Seishun-Quiz Colorful High School (CHS1 Ver.A)
2023-05-15 14:38:30 +10:00
Devin Acker
35cb398d8a
yamaha: new GEW7 and GEW12 machines, various GEW8/MultiPCM improvements (#11105)
* yamaha: implement GEW7, partially implement GEW12, some GEW8/MultiPCM fixes (envelope behavior, sample lengths, stream updates, save state members)

New working machines
----------
Yamaha PSR-150 [Edward d-tech, Devin Acker]
Yamaha PSR-180 [Edward d-tech, Devin Acker]
Yamaha PSR-78 [Edward d-tech, Devin Acker]

New working clones
----------
Yamaha PSR-110 [Edward d-tech, Devin Acker]
Yamaha PSR-75 [Edward d-tech, Devin Acker]
Yamaha PSR-76 [Edward d-tech, Devin Acker]
Yamaha PSS-11 [Edward d-tech, Devin Acker]
Yamaha PSS-21 [Edward d-tech, Devin Acker]
Yamaha PSS-31 [Edward d-tech, Devin Acker]
Yamaha PSS-6 [Devin Acker]

Machines promoted to working
----------
Yamaha PSS-12 [Devin Acker]

New NOT_WORKING machines
----------
Yamaha PSR-260 [Edward d-tech, Devin Acker]
Yamaha PSR-79 [Edward d-tech, Devin Acker]

New NOT_WORKING clones
----------
Yamaha PSR-160 [Edward d-tech, Devin Acker]
2023-04-22 08:07:03 -04:00
cam900
00f45b9df1
Atari Lynx emulation updates (#8931)
* Atari Lynx emulation updates
- Use memory_view for address mapping
- Support variable framerate, Fix screen overscan (102 visible + 3 blank lines)
- Fix collision handling (possibly copy-paste error?)
- Reduce unnecessary shared pointers, Some duplications
- Use inlines values for bit flags
- Add support for variable page size for cartridge, AUDIN pin for bankswitch
- Add hardware notes, Initialize values
- Fix namings, Fix spacings, Use shorter/correct type values
- Move lynx sound functions into device/sound/lynx.*, Fix sound pitch (input clock related)
2021-12-14 10:31:51 -05:00
Dirk Best
620f531c54 Remove a few outdated references to MESS 2021-12-02 13:34:15 +01: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
hap
681b9c9675 ymtx81z: leave lcd color up to the (internal)artwork 2021-05-24 13:42:20 +02: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
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
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
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
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
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
Ryan Holtz
139f044859 -arm7: Added optional logging for Windows CE calls. [Ryan Holtz]
-uda1344: Added skeleton audio device for Philips UDA13444 Codec. [Ryan Holtz]

-sa1111: Hooked up basic L3 audio transceiver support. [Ryan Holtz]
2020-12-31 19:18:54 +01:00
Aaron Giles
89dbabd04d
volt_reg: Remove uses that are not needed anymore with the recent (#7367)
DAC changes. Which is all of them. Remove the device as well.
2020-10-20 10:59:34 -04:00
cam900
24d5367e8f
Implement TT5665 emulation (#6841)
* Implement TT5665 emulation
Similar as OKIM6295, but with Support more ROM capacity and phrase spaces, 2 sound outputs
used in bowltry, igs_m036 (for some hardwares with TT5665, ex: cjddzsp)
bowltry.cpp: Fix game name (BOWLING TRY! in both poster and PCB)

* bowltry.cpp: Typo

* Fix endline

* tt5665.cpp: Reduce unnecessary argument
2020-10-15 14:18:21 -04:00
Jonathan Gevaryahu
63dc4b41ed
Major update for HC55516 CVSD audio device and related filtering, as well as hooking it to drivers. (#7290)
* Split hc55516 core into separate cores/subclasses for hc55516 and hc55532 (new 'digital' implementation based on decap/die tracing) as well as mc3417 and mc3418 (old existing 'analog' implementation left alone) and hooked the hc55516 and mc3417 implementations to the appropriate hardware drivers. This should vastly improve CVSD sound quality in drivers that use the hc55516. [Lord Nightmare, Sean Riddle]
* Made Exidy's mouse trap use a timer to clock the mc3417 and update the state readable by the z80 rather than relying on the mc3417 to accept a clock parameter and update the z80 state via a callback. The timer implementation ensures proper synchronization and prevents missed clock transitions from the z80 side causing noise in the CVSD audio. [Lord Nightmare]
* Added a biquad-based 2nd order filter emulation for an audio stream (to go along with flt_rc 1st order filter emulation) and hooked it to Exidy's mouse trap (mc3417) and williams drivers (hc55516) following the original schematics. For hc55516 this is necessary as the original chip produces a very pronounced audible 16khz 'carrier' in its output audio even on the real chip, and these filters suppress this. This also happens to a lesser extent with the 8khz quieting waveform noise on both mc3417 and hc55516. [Lord Nightmare]
* Made Williams System 11 and s11_bg relative sound mixing more accurate to the original audio flow on the PCB itself. [Lord Nightmare]
* Switched Williams Joust 2 to use the s11_bg common sound device rather than its own implementation. [Lord Nightmare]
2020-10-10 04:25:40 +11:00
David Haywood
3cd14b2e0a
machines promoted to WORKING (plug play) (#7299)
machines promoted to WORKING
----
TV MegaMax active power game system 30-in-1 (MegaMax GPD001SDG) [David Haywood]

* added files for the VT APU type, currently no extra functionality, but will be built upon
2020-09-29 19:05:21 +10:00