Commit Graph

1088 Commits

Author SHA1 Message Date
tildearrow 0d4f20b7a6 SoundUnit: add 64K chip revision 2022-08-03 00:05:58 -05:00
Waldemar Pawlaszek 5feba3a716 More robust popcnt 2022-07-31 22:26:59 +02:00
tildearrow a9afcf873c fix ARM build 2022-07-31 14:05:23 -05:00
Waldemar Pawlaszek 6ff51ce8f3 #511 Added dynamic popcnt dispatcher 2022-07-31 11:33:38 +02:00
tildearrow 1921fd1759 PCE: implement anti-click technology 2022-07-30 01:00:51 -05:00
cam900 b48b7c8bc5 Apply loop end position for generic DAC 2022-07-24 12:23:38 +09:00
Aleksi Knutsi 8011e7adc7
Implement Phase Reset Timer macro for Sound Unit (#573)
* Implement Phase Reset Timer Macro

* And make the macro actually work

* Delete ex4Max variable
2022-07-23 19:13:30 -05:00
tildearrow 623c0efbba
Merge pull request #578 from tildearrow/ngp
Add generic PCM DAC system
2022-07-23 19:12:51 -05:00
tildearrow 7bc3166ed5 YMZ280B: frequency precision improvement
frequency is now multiplied by 256 and then fed to the chip divided by
256 to increase freq precision
2022-07-22 00:01:29 -05:00
cam900 5127d5ef18
Implement sample loop end position, enum-ise sample depth (#557)
TODO: new sample format
2022-07-21 23:36:42 -05:00
tildearrow 60a52d3b9f
Revert "Revert "Fix issue #567: LFO disable/enable behavior for YM2151."" 2022-07-17 00:06:04 -05:00
tildearrow 707dc30f15
Revert "Fix issue #567: LFO disable/enable behavior for YM2151." 2022-07-17 00:05:56 -05:00
Natt Akuma e334fdddb8
Merge pull request #572 from ZeroByteOrg/opmlfo
Fix issue #567: LFO disable/enable behavior for YM2151.
2022-07-17 12:04:38 +07:00
tildearrow 15ab8cc49b YM2612: fix a CSM issue with key off 2022-07-12 18:45:54 -05:00
ZeroByteOrg 850508e1b8 Merge branch 'master' into ZSMv1 2022-07-11 12:59:59 -05:00
tildearrow c2f1385703 MSM6258: fix position not being reset in furnace s
ample mode
2022-07-08 02:25:25 -05:00
tildearrow b39924c9d6 AY: TODO fix wtr_envelope.dmf 2022-07-05 01:16:25 -05:00
tildearrow f4a85bebff dev101 - fix SMSFM_intro.dmf 2022-07-04 01:43:59 -05:00
tildearrow 949e293053 SMS: aaaand more .dmf compatibility 2022-07-03 23:43:13 -05:00
Natt Akuma f8425b817f Fix GCC errors 2022-07-03 20:11:04 +07:00
Natt Akuma d3cd7bbb81 Add generic PCM DAC system
For use with NGP DAC and some arcade system combos
2022-07-03 01:42:47 +07:00
Natt Akuma 59bcd9599f OPL: Missed changes from last commit 2022-07-01 17:55:33 +07:00
Natt Akuma 02b28e6e7d OPL: Correct CHIP_FREQBASE to match clock ratio
This changes from 9440540 to 9437184
2022-07-01 17:33:33 +07:00
ZeroByteOrg 807848cfee Fix LFO disable/enable behavior for YM2151. 2022-06-29 16:59:47 -05:00
ZeroByteOrg 40d67d7bb5 Merge branch 'master' into ZSMv1 2022-06-29 13:14:15 -05:00
tildearrow 0a055ff85b OPL: fix crash 2022-06-29 02:11:25 -05:00
tildearrow 4a0bb1fa38 OPLL: one more chan osc fix 2022-06-29 01:50:20 -05:00
tildearrow 0b70902dbe OPLL: fix per-channel osc, part 2 2022-06-29 01:40:03 -05:00
tildearrow 4dfd413ead OPLL: fix per-channel osc, part 1 2022-06-29 01:32:52 -05:00
tildearrow 90481cc460 OPL: fix drums mode per-channel osc 2022-06-29 01:06:31 -05:00
tildearrow 477674400c YM2612: whoops! 2022-06-29 00:55:05 -05:00
tildearrow aaf02103f6 YM2612: implement DualPCM macros 2022-06-29 00:49:11 -05:00
tildearrow 3ea0ad1e0a OPL: fix pitch macro
fixes #535
2022-06-28 23:32:36 -05:00
tildearrow 13f14b6854 SoundUnit: fix copy-paste blunder 2022-06-28 12:55:14 -05:00
tildearrow f483292a88 OPN[A/B/2]?: implement 18xx effect 2022-06-28 01:16:46 -05:00
Natt Akuma e2449d91f1 VERA: Run noise generation in each channel update 2022-06-27 19:37:45 +07:00
tildearrow b04743d045 SMS: implement Game Gear stereo in Nuked core 2022-06-27 04:09:24 -05:00
tildearrow e39a923b23 C64: fix per-channel osc for 6581 2022-06-24 03:26:00 -05:00
tildearrow 951db12e6a Namco WSG: fix C15/C30 high notes 2022-06-23 22:59:06 -05:00
tildearrow b90552dfb1 fix Termux build 2022-06-23 16:23:46 -05:00
ZeroByteOrg ae7b271e1d Merge branch 'master' into ZSMv1 2022-06-23 13:45:12 -05:00
Natt Akuma 8dc143af7b PET: Support full 16-bit period range
Fix #500
2022-06-23 02:42:11 +07:00
cam900 69ea1d0227 Fix AY8930 unmuting 2022-06-21 11:06:26 +09:00
tildearrow 5a1a583ab0 AY: finally fix unmuting 2022-06-20 18:53:39 -05:00
tildearrow fd61e0e9f8 ZX beeper: per-"channel" osc
there's only one
2022-06-20 18:48:10 -05:00
tildearrow ee709b85c2 Namco WSG: per-channel oscilloscope 2022-06-20 18:20:49 -05:00
tildearrow 6772159d5f one more GCC < 8 fix 2022-06-20 04:58:03 -05:00
cam900 9cad907773 Fix potential register related issue 2022-06-18 11:07:36 +09:00
tildearrow 39fa3d7d85 Merge branch 'master' into preset1 2022-06-17 20:40:09 -05:00
cam900 6dc81c7af1 Pitch correction (again), Fix compatibility issue 2022-06-18 10:38:48 +09:00
tildearrow 753458f898 LOL 2022-06-17 04:51:39 -05:00
cam900 25af023dc6 Various corrections and fixes
Fix SN PSG pitch corrections
Revive YM2612 from dead
Add Game Gear stereo function finally
Add OPN/A prescaler config
2022-06-17 14:30:18 +09:00
cam900 0c1a8bc001 Merge branch 'master' into preset1 2022-06-17 09:19:17 +09:00
Natt Akuma c44ca95b92 Make volume command handling consistent
For WonderSwan and VIC-20
2022-06-17 03:06:07 +07:00
tildearrow dc9f1112d1 MSM6258: fix rate being twice
#541
2022-06-14 23:00:20 -05:00
tildearrow da756bef7f OPL: fix 4-op channel muting 2022-06-12 23:22:45 -05:00
tildearrow dd05429c0e WaveSynth: initialize wave to 0 on SCC/Bubble Syst 2022-06-09 18:16:51 -05:00
cam900 6aa88b0770 Move on .cpp, prepare for variable rate support 2022-06-08 10:10:55 +09:00
ZeroByteOrg d3717a5710 Merge branch 'master' into ZSMv1 2022-06-07 16:10:06 -05:00
cam900 7bbfe3af7c Fix per-channel osc 2022-06-07 23:59:50 +09:00
cam900 dd93f6d18e Merge branch 'master' into preset1 2022-06-07 13:04:17 +09:00
cam900 3e953f57b3 Prepare for TI-99/4A support
only works on MAME core only for now.
2022-06-07 12:57:09 +09:00
tildearrow 6dc408d99c SAA1099: remove MAME core
closes #529

the MAME core is inaccurate.
it doesn't emulate envelope too well.
2022-06-06 15:05:08 -05:00
tildearrow d3a3473f19 commit requested changes 2022-06-06 13:32:57 -05:00
ZeroByteOrg 378f6a957b Merge branch 'master' into ZSMv1 2022-06-06 09:44:57 -05:00
cam900 74e3892fd9 Finally fixed 2022-06-06 23:26:22 +09:00
cam900 8bc545c8ab Fix compile (again) 2022-06-06 22:45:16 +09:00
cam900 5473b8722d Fix compile, Remove unused include 2022-06-06 19:52:13 +09:00
cam900 ebbd9784e6 Reduce more FM codes 2022-06-06 19:40:37 +09:00
cam900 d1aeabe464 Fix compile 2022-06-06 19:26:34 +09:00
cam900 35caab6f82 Merge branch 'master' into preset1 2022-06-06 19:09:12 +09:00
cam900 e0e6a45000 Prepare for reducing duplicates for 4op FM related codes, Add and correct bunch of presets, Add various clock, type options for chips
Prepare for reducing duplicates for 4op FM related codes

Add and correct bunch of presets
- mostly based on MAME source.
- Neo Geo AES uses slightly difference clock for NTSC, PAL colorbust frequency.
- Turbosound FM + SAA: Some Turbosound FM has additional SAA1099, for additional sound channel and Plays SAM coupe tune?
- PC-98:
 - Sound Orchestra: OPN with hardpanned stereo, some model has with OPL family FM addons.
   V variation has Y8950 and supports ADPCM.
 - Sound Blaster 16 for PC-9800: This famous PC sound card is also exists for PC-98, with optional OPN PC-9801-26(K) compatibility on some models.
- IBM PCjr: PC with SN PSG sound, but less popular than previous models, and compatible Tandy 1000.
- Tandy 1000: PCjr and previous IBM PC compatible, also has SN PSG (later embedded in their ASIC, like Sega).
- Hexion: One of konami's budget arcade hardware with SCC + MSM6295 sound system, like their amusement hardware in this era.
- DJ Boy, Atari JSA IIIs, Skimaxx: How to panning sound or plays stereo sound on MSM6295 - just use MSM6295s per each output!
- Air Buster: One of arcade hardware with OPN + MSM6295 sound system, Used this configuration is also some hardwares.
- Tecmo system: One of arcade hardware with pretty unique sound system: OPL3, YMZ280B, MSM6295; first 2 entry is mostly used in music, last entry is mostly used in sound effect.
- Sunsoft Shanghai 3: Predecessor of Sunsoft Arcade is using YM2149 rather than FM, MSM6295 is still there.
- Atari Klax: example of arcade hardware sound system with single MSM6295 only.
- Ikari warriors: This early SNK Triple-Z80 hardware uses 2 OPL1s and no ADPCM supports.
- Coreland Cyber Tank: This rare arcade machine's stereo sound is like SB Pro, but it's actually produced in 2 Y8950s.
- Data East MLC: Latest arcade hardware from Data East, with single YMZ280B for sound.
- Kaneko Jackie Chan: Predecessor of Super Kaneko Nova System hardware, also with YMZ280B.
- Super Kaneko Nova System: Latest arcade hardware from Kaneko, with single YMZ280B for sound. this announced 3D acceleration addon, but finally cancelled.
- Toaplan 1: Home of Late 80-Early 90s Good ol' stuffs, Example of arcade sound system with single OPL2
- Namco Pac-Land: and this era, Namco start to change Custom 15 WSG to their Custom 30 WSG with featured RAM based waveform, and mailbox feature.
- Namco System 1: One of latest usage of Custom 30 WSG, with OPM FM hardware and 8 bit DAC and Stereo output.

Add various clock, type options for chips
- SN7: Prepare to add 17 bit noise variation, Game gear stereo extentsion, NCR PSG variation (MAME core only for now)
- OPN, OPNA: Add placeholder for prescaler option
- OPL: Prepare for OPL3L, OPL4 downscaled output rate option
2022-06-06 19:04:52 +09:00
tildearrow 2932a7281d implement getChanMacroInt() on supported systems 2022-06-05 18:17:00 -05:00
tildearrow 05ffc98ed1 MSM6258: the final bits 2022-06-04 17:58:19 -05:00
tildearrow 05c2fb357f MSM6258: clock/rate selection 2022-06-04 17:51:59 -05:00
tildearrow fc34474d6e MSM6258: prepare for rate changing 2022-06-04 16:52:42 -05:00
tildearrow 91621fe0f5 YM2612: DualPCM per-channel osc
fixes #516
2022-06-04 01:03:58 -05:00
tildearrow a550c4cb30 YM2612: more DualPCM muting fixes 2022-06-04 01:00:29 -05:00
tildearrow 641648ca0f YM2612: fix DualPCM muting
issue #516
2022-06-04 00:50:53 -05:00
tildearrow a6b33d0955 PC speaker: don't use printf/perror 2022-06-03 16:32:07 -05:00
tildearrow 71b4bf5fdd YM2612: CSM arpeggio and slides 2022-06-03 16:21:42 -05:00
tildearrow b4a7f0f5b7 YM2612: - C S M -
CSM only available with Nuked core
may not work on VGM export if you compress VGM (removes timer A writes)
2022-06-03 16:13:57 -05:00
tildearrow 59ba156cdf YM2612: half-working CSM 2022-06-03 15:54:49 -05:00
tildearrow 365e466611 YM2612: earliest completely untested CSM work 2022-06-03 14:10:28 -05:00
tildearrow 0895789539 YM2612: fix DAC output not visible in per-chan osc
issue #515
2022-06-03 01:47:31 -05:00
tildearrow 94dae570e0 fix Ubuntu build 2022-06-03 01:40:09 -05:00
tildearrow cc80bfbd81 PC speaker: add alternative output methods 2022-06-03 01:18:32 -05:00
tildearrow 37539157be PC Speaker: timing improvements 2022-06-02 23:27:28 -05:00
tildearrow 50bdbb784a oh no 2022-06-02 03:21:00 -05:00
tildearrow e2f3a89513 test 2022-06-02 02:59:07 -05:00
tildearrow 131bef2689 SMS: fix per-channel osc when using Nuked core 2022-06-02 02:01:48 -05:00
tildearrow 2da92b0433 newVolumeScaling, part 4 (final) 2022-06-01 18:27:06 -05:00
tildearrow ad1ed7fe35 newVolumeScaling, part 3 2022-06-01 18:10:50 -05:00
tildearrow e94d1b857f newVolumeScaling, part 2 2022-06-01 18:02:34 -05:00
tildearrow 8141574d3c newVolumeScaling, part 1 2022-06-01 17:50:26 -05:00
tildearrow 140318f8d3 SMS: prepare for an arp+porta fix 2022-06-01 15:15:32 -05:00
tildearrow 42d98f0894 SegaPCM: finally implement new behavior 2022-06-01 13:58:39 -05:00
tildearrow a298ec2177 oops 2022-05-31 19:03:31 -05:00
tildearrow 1be93d9bbb implement brokenOutVol compat flag
#341
2022-05-31 19:03:26 -05:00
tildearrow 9d10b5bf2b OPL: complete the drum instrument type
#310
2022-05-31 17:44:52 -05:00
cam900 2e97e63b26 Forgot this 2022-05-31 14:11:43 +09:00
cam900 9c4dc2b978 Fix wrong link, Add modifier and contributor disclaimer in vgsound_emu core 2022-05-31 14:06:16 +09:00
cam900 443448c65b Fix dead links 2022-05-31 13:52:36 +09:00
tildearrow 2119675b10 OPN: fix 11xx not working on ExtCh
issue #503
2022-05-30 21:21:42 -05:00
tildearrow 394a315c4a ZX beeper: drum muting hotfix 2022-05-30 00:07:24 -05:00
tildearrow 1ed5be887b MSM6295: fallback rate 2022-05-29 13:29:58 -05:00
tildearrow 1cb07eb1a2 MSM6295: add more rates 2022-05-29 13:29:18 -05:00
tildearrow f8796f8ec9 MSM6295: VGM export! 2022-05-28 18:15:26 -05:00
tildearrow b8671afa39 oops 2022-05-28 17:45:44 -05:00
tildearrow cc87d1502c MSM6295: add rate select effect (20xx) 2022-05-28 17:45:34 -05:00
ZeroByteOrg b034e3c5da Commander X16 file export: ZSM format 2022-05-27 09:36:24 -05:00
tildearrow a776129c3d dev98 - YM2612: add Fractal system
partially done
2022-05-27 04:02:53 -05:00
tildearrow 0b7d27dc29 YM2612: add reverse sample playback 2022-05-27 02:47:44 -05:00
tildearrow 9d6d84a87f Lynx: sample looping 2022-05-27 01:36:05 -05:00
tildearrow d6282c6949 Lynx: fix PCM mode volume 2022-05-27 01:20:57 -05:00
Waldemar Pawlaszek 65817f7589
Merge branch 'tildearrow:master' into master 2022-05-27 08:11:32 +02:00
Waldemar Pawlaszek 70aa8f7682 Lynx: using DAC output for PCM 2022-05-27 08:10:34 +02:00
tildearrow 061b312943 SMS: volume table is now non-float 2022-05-26 23:46:42 -05:00
tildearrow 905aa1b1a1 SMS: add TI PSG volume table 2022-05-26 23:19:27 -05:00
tildearrow 7e938c869d
Merge pull request #484 from grauw/y8950-adpcm-fix
More Y8950 ADPCM fixes
2022-05-26 21:50:51 -05:00
tildearrow 0577aa3569 SMS: early Nuked-PSG modding 2022-05-26 19:00:14 -05:00
tildearrow e3ebe0cb92 SMS: add modified Nuked-PSG core 2022-05-26 18:46:20 -05:00
tildearrow 4874e91bb0 FDS: a bit more 2022-05-26 18:09:46 -05:00
tildearrow 6d441c2ffd FDS: set a post-amp value 2022-05-26 18:07:59 -05:00
tildearrow a52f71ba32 FDS: fix NSFplay core low pass filter precision
closes #427
2022-05-26 18:03:57 -05:00
tildearrow 9d36cf5ff0 fix compilation on GCC 12 2022-05-26 13:31:17 -05:00
tildearrow 4b91669e58 Lynx: why did I not commit this 2022-05-26 03:37:34 -05:00
tildearrow 6260bcef54 Lynx: more sample improvements 2022-05-26 00:50:11 -05:00
tildearrow b0c8cfc1f6 Lynx: sample improvements 2022-05-26 00:39:15 -05:00
tildearrow 1811a95e76 Lynx: add sample support! 2022-05-26 00:29:04 -05:00
Laurens Holst 4b4bc98417 Stop / reset Y8950 ADPCM before restarting.
The emulation core treats every write to register 7 with start bit set as
a retrigger. This is not how the real hardware behaves.
2022-05-26 03:48:49 +02:00
tildearrow 42a082b2a7 Lynx: add phase reset macro 2022-05-25 00:28:47 -05:00
tildearrow eb926a668d MSM6258: it works 2022-05-24 00:24:52 -05:00
tildearrow 8ea60f37c5 MSM6258: start work - DO NOT USE! 2022-05-23 19:01:10 -05:00
Laurens Holst fc7b94876d Fix Y8950 ADPCM samples.
Reverting back to before 70ead337f3, and setting register 8 to 256Kbit RAM mode.
This is what MSX has natively, and allows for the most compact sample storage with
only 4 byte alignment.

Additionally, setting register 8 before writing the start / stop addresses.

Back story:

VGMPlay MSX only supports Y8950 256K DRAM mode and ROM mode (for the latter
it makes sure address writes are shifted). 64K DRAM mode is not supported because
it’s not used by anything and the addresses are specified weirdly with some middle
bits having to be masked out.

The original code in Furnace before the change 70ead337f3 was almost correct except
it needed to set register 8 to 0 to select the 256K DRAM mode. It was set to ROM mode
so the address shift did not match up.

After 70ead337f3 (address shift change) it was also more or less correct except in
“furnacePCM” direct-sample mode the shift was not updated accordingly.

In 1a446c1cdd it selected 64K RAM mode, but for this the addresses need to be specified
differently (see Y8950 manual page 18), and it’s not really the best choice anyway.
2022-05-24 00:51:13 +02:00
tildearrow ff1263aadf ASDFGHJK 2022-05-23 03:43:33 -05:00
tildearrow ced2940336 MSM6295: per-channel osc and muting 2022-05-23 03:18:56 -05:00
tildearrow d3edc58cb1 MSM6295: add clock rate flag 2022-05-23 03:13:22 -05:00
tildearrow 59a722d04a MSM6295: a bit more polishing 2022-05-23 02:56:43 -05:00
tildearrow f25cd17590 early OKI MSM6295 work 2022-05-23 01:46:58 -05:00
tildearrow 133b213998 OPL: new forceIns strategy 2022-05-23 00:18:50 -05:00
tildearrow 519bf244b9 OPL: fix kick volume in drums mode 2022-05-23 00:07:32 -05:00
tildearrow 1a446c1cdd Y8950: let's see 2022-05-22 23:54:33 -05:00
tildearrow 2fa51e482a OPN(A/B/2/B-B): fix absolutely everything 2022-05-22 23:47:41 -05:00
tildearrow 3d4f2cfa13
Merge pull request #453 from grauw/scc-reset-period-counter
Reset period counter when writing to period registers.
2022-05-22 22:49:03 -05:00
tildearrow 82eaa45f5d increase range of relative pitch macro
-32768 to 32767 should be enough
2022-05-22 22:47:40 -05:00
tildearrow 43981eb59f bring up MSM6295 core
vgsound_emu by cam900
2022-05-22 18:06:56 -05:00
tildearrow 98e9a4b28d MSM6258 emulator de-MAMEfication 2022-05-22 17:49:41 -05:00
tildearrow 393d1c018d dev97 - add old octave boundary compat flag 2022-05-22 13:25:59 -05:00
tildearrow b40c95013a fix phase reset in FM chips after note off 2022-05-22 04:30:56 -05:00