Commit Graph

27 Commits

Author SHA1 Message Date
hap
35e80b8d47 ymfm_opl: no need to check for IsOpl2Plus here 2025-02-01 00:47:03 +01:00
hap
077ac12495 ymfm_opl: actually emulate opl2 waveform enable bit 2025-02-01 00:13:42 +01:00
hap
078322da16 ymfm_opn: OPNA does not have 4 latches 2025-01-31 13:35:57 +01:00
hap
d319a3aec9 Revert "ymfm_opn: writes to 0xa7/0xaf also go to latch"
This reverts commit 659471456a.
2025-01-31 13:19:23 +01:00
hap
659471456a ymfm_opn: writes to 0xa7/0xaf also go to latch 2025-01-31 13:01:50 +01:00
hap
802bce33eb ymfm_opn: apparently there is no internal flag when latch was written 2025-01-30 14:49:27 +01:00
Angelo Salese
5e41c0e195
3rdparty/ymfm: sync to latest (#13263) 2025-01-30 14:23:12 +01:00
Aaron Giles
c778f5406b
Update 3rdparty/ymfm to latest. (#10583)
* Fixes uninitialized member causing slight jitter in timing (GitHub #10414).
* Fixes OPNA behavior when LFO is disabled.
* Fixes a PCM playback wraparound bug due to incorrect auto-incrementing.
2022-11-25 02:56:33 +11:00
Aaron Giles
4384558d9b
Update ymfm library to latest version (a78b567): [Aaron Giles, hyano] (#10052)
- Fix incorrect operator volumes in some cases for OPL (MT8108)
 - Fix PCM playback to cut off previous notes when new waveforms are selected (see dragnblz)
 - Fix reversed OPM noise frequency
 - Fix bug preventing CSM key ons from being noticed
 - Fix bug where SSG EG envelope could be left in inverted state
 - Fix SSG envelope handling when tone and noise are off
 - Increase strength of DAC discontinuity in YM2612
 - Improve latching logic for fnums in OPN
 - Increase envelope suppression threshold so some effects don't get prematurely muted
 - Improve ADPCM-B behavior at stop/limit addresses (more thorough rewrite here coming later)
2022-07-08 09:44:18 -04:00
Aaron Giles
d187a28fad
ymfm: Correct for free-running timer B multipler (#8988) 2021-12-16 08:16:48 -05:00
Aaron Giles
3d450c480d ymf278b: Allow PCM writes if new2flag is set, even if newflag is not. Fixes MT08033. 2021-07-24 00:53:38 -07:00
Aaron Giles
6bb6d3db45 ymfm: Return masked status from set/reset function. Fixes MT08034. 2021-07-23 18:26:36 -07:00
Aaron Giles
f996103315 ymfm: Sync with upstream
* Fix LFO disable on YM2151
* Fix swapped lower nibbles for 12-bit PCM on OPL4
2021-07-23 01:21:27 -07:00
Aaron Giles
86d1ef2604 ymfm: Play ADPCM-A samples through the end of the end block inclusive 2021-06-22 00:39:32 -07:00
Aaron Giles
102f311ae7 Fix reporting of ADPCM-B end-of-sample. Seems to fix MT08006; hopefully will fix other neogeo issues as well. 2021-06-21 20:22:33 -07: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
Aaron Giles
04027e4fa7 ymfm: Sync with upstream:
* Match OPN LFO frequencies to hardware measurements
 * Improve OPQ detune, reverb, and KSR
2021-05-29 02:37:19 -07:00
Aaron Giles
646938cf96 ymfm: Don't mask off top bit of octave for OPQ. 2021-05-23 20:50:54 -07:00
Aaron Giles
9e1ed0acf4 ymfm: Improve OPQ behavior for timers and register access. Add YM3533 device and use that instead of YM3806. 2021-05-23 18:13:07 -07:00
Aaron Giles
48bde2d647 ymfm: Fix OPZ fine tuning and envelope shift. Now pretty much all the TX81Z built-in instruments sound reasonable. 2021-05-23 16:02:28 -07:00
Aaron Giles
ac96627377 ymfm: Some progress on OPZ. Some instruments in the TX81Z sound kind of ok now. 2021-05-23 13:24:36 -07:00
Aaron Giles
b78991fc83 ymfm: Fix OPL3 waveform 7 to better match hardware. 2021-05-22 13:28:30 -07:00
Aaron Giles
3ccdbfc3b5 ymfm: Add missing clamp in YM2608 2021-05-22 11:20:43 -07:00
Aaron Giles
e825cb34bb ymfm: Boost ADPCM-B volume by a factor of 2 to more closely match previous levels. Addresses MT #07956 2021-05-22 11:13:44 -07: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
cb48ece8f9 ymfm: Switch to internal SSG for YM2203/2608/2610. Clean up code to determine the number of SSG outputs. 2021-05-15 00:40:03 -07: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