Commit graph

242 commits

Author SHA1 Message Date
cam900
1b712e03ee Add notifySampleChanged in dispatch and engine:
This method/variables are for notify sample is changed/altered/added/removed.  can be called together with updateSampleTex for sample update.

multipcm: Fix possible desync with instrument and sample parameter

opl4: Split sample table render and sample data render, Add notifySampleChange for refresh sample parameters
2025-10-01 12:31:39 +02:00
tildearrow
de1ab67d4a Merge branch 'master' into hasSampleHeader 2025-09-13 04:23:19 -05:00
cam900
957b57f3d9 Add primary MultiPCM support
Partially revert previous commit
Add notifyInsAddition in dispatch for instrument addition
Refresh sample memory when instrument type changed
Fix naming for consistency
Also, this commit fixes a some possible issue in MultiPCM on openMSX core.
Chip ID: Already determined
2025-08-29 16:24:32 +09:00
cam900
bd8d9a56a0 Prepare to add hasSamplePtrHeader and hasSampleInstHeader in dispatch (WIP)
for refresh sample memory when loop/end pointer and instrument parameter changed. Also, this PR has minor code style fixes and add warning in MultiPCM sample map usage.
2025-08-27 22:52:19 +09:00
cam900
e9b6b441e3 Merge branch 'master' of https://github.com/tildearrow/furnace into getSampleMemOffset 2025-08-27 21:18:29 +09:00
cam900
4ed40d37d6 Add sample limit in OPL4 PCM, Reduce duplicate
it has 512 (if header at 0x000000) or 128 (otherwise; first 384 sample is from bottommost area (ex: YRW801 ROM) in this case) sample limits
2025-08-27 21:02:51 +09:00
tildearrow
387d9e0654 breaking the limit, part 2
all dispatches adapted to 32768 samples.
sample limit unlocked.
testing is required.
2025-07-27 20:16:59 -05:00
tildearrow
801f5c5720 OPL4: fix use of invalid samples
issue #2217
2025-06-24 03:46:08 -05:00
tildearrow
d7c5fceac4 OPL4: fix PCM chan osc on ymfm
for real
issue #2566
2025-06-21 17:46:27 -05:00
tildearrow
c08d42b483 OPL4: fix PCM chan osc on ymfm??????
issue #2566
PCM only has two outputs
2025-06-21 10:57:29 -05:00
tildearrow
4af0345b03 OPL3: fix channel 7 hard reset
issue #2582
2025-06-21 04:07:59 -05:00
cam900
a5148a3441 Implement getSampleMemOffset for further optimize VGM logging (specifically OPL4 PCM) 2025-06-04 21:16:27 +09:00
tildearrow
34ad285efd OPL4: fix playSub() memory corruption
Valgrind has lost!
issue #2536
2025-05-28 02:09:14 -05:00
tildearrow
bfd1afa124 OPL3: fix chan osc when panned right on ymfm 2025-05-22 03:55:05 -05:00
tildearrow
2f6c2d63c3 OPL3: fix 4-op mode ignoring ins change
issue #2457
2025-05-02 14:39:34 -05:00
tildearrow
0ea4310b22 OPL: fix muting in chan osc 2025-04-30 14:37:12 -05:00
tildearrow
bbfa4c7fca OPL: fix Crystal Oscillator muting 2025-04-28 17:08:54 -05:00
tildearrow
7aa735857c OPL: VGM reset after initializing OPL3 mode 2025-04-21 03:25:07 -05:00
tildearrow
a2c745cb10 Y8950: fix ADPCM chan osc 2025-04-08 02:12:28 -05:00
tildearrow
05f2c99bb4 OPL4: fix 12-bit related glitches 2025-04-02 19:18:33 -05:00
tildearrow
c1e99b94ef OPL4: fix corrupted non-8/12/16-bit samples 2025-03-23 13:53:08 -05:00
tildearrow
fd3335f1ee OPL4: fix end of sample 2025-03-23 13:49:23 -05:00
tildearrow
8dcb2d02ad OPL4: fix a couple issues with samples
issue #2217
2025-03-21 17:38:28 -05:00
tildearrow
49a8693dcb new chan osc, part 7
i am done
2025-03-02 16:14:49 -05:00
tildearrow
845c5245c3 Time Is Fixed 2025-02-07 04:20:18 -05:00
tildearrow
f09fd02971 MultiPCM: only set new params on ins change
fixes an issue regarding level direct effect
2025-02-07 04:15:20 -05:00
tildearrow
9dee51851f prepare for proper center rate
the correct rate is 8372Hz rather than 8363Hz
sadly this will require a compat flag so I am not making this change
effective until 0.7

issue #2347
2025-02-06 02:14:21 -05:00
tildearrow
00ad4e4a46 update copyright year 2025-01-28 18:49:19 -05:00
tildearrow
dd9d220f33 use state instead of accessing ins for block 2025-01-28 04:24:10 -05:00
Natt Akuma
cf3d08ca5a Add fixed octave for block+fnum systems
This isn't implemented in SAA1099, despite also being block+fnum system, as there are no benefits from it
2025-01-09 03:51:14 +07:00
Natt Akuma
6a58797669 Use bsr() in frequency shift calculations 2025-01-09 03:43:27 +07:00
tildearrow
192be95c14 OPL: instant drum muting
issue #1945
2024-12-06 18:28:09 -05:00
tildearrow
c69f366942 OPL: ymfm 30xx 2024-11-06 18:36:51 -05:00
tildearrow
69b03172b1 get it done
OPL UNFINISHED
2024-10-19 18:28:27 -05:00
tildearrow
d89a8f2c4f OPL4: fix drums mode
issue #2160
2024-09-26 15:50:06 -05:00
tildearrow
0f2fd76a90 dev223 - Y8950: fix ADPCM pitch
issue #2028
2024-09-26 14:41:14 -05:00
tildearrow
0cf6c7cd64 OPL: fix YMF289 in ymfm
ymfm offers a class called ymf289, but I am too lazy to use it
and it probably does not resample anyway
2024-09-26 14:20:14 -05:00
tildearrow
8ac3491672 OPL: and now fix the fix 2024-09-25 14:43:24 -05:00
tildearrow
f7412e5234 OPL: key off after 4-op mode change
somehow fixes issue #2171
2024-09-25 14:24:39 -05:00
tildearrow
d838224d94 dev222 - Merge branch 'SID3' 2024-09-21 18:04:08 -05:00
cam900
7594b2fb55 OPL4: Fix highest note frequency 2024-09-18 11:00:45 +09:00
tildearrow
47f36f99d9 Merge branch 'master' into SID3 2024-09-13 23:46:13 -05:00
tildearrow
89fb8842b0 OPL: put this variable outside 2024-09-08 18:34:32 -05:00
cam900
16ca40e0d2 Add OPL4/MultiPCM 12-bit PCM support 2024-08-16 20:45:40 +09:00
LTVA1
466adb5613 localize channel pair hints 2024-08-16 10:31:23 +03:00
LTVA1
7c324ec39d naive channel pair refactor (dumb replace one pair with vector of pairs) 2024-08-14 20:01:16 +03:00
cam900
34c3748406 Merge branch 'master' of https://github.com/tildearrow/furnace into ymf278b 2024-08-03 08:17:33 +09:00
tildearrow
c02556afa7 OPL: don't use fm.rhy
issue #2061
2024-08-02 14:32:02 -05:00
cam900
db3b102e1d Correct getGain for OPL4 PCM 2024-07-23 18:04:43 +09:00
cam900
47d962f736 Merge branch 'master' of https://github.com/tildearrow/furnace into ymf278b 2024-07-23 18:02:14 +09:00