Commit graph

72 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
3a06e7b963 remove hasSampleInsHeader()
- it is only used by MultiPCM
- an alternative approach is in place
2025-09-14 14:21:31 -05: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
a5148a3441 Implement getSampleMemOffset for further optimize VGM logging (specifically OPL4 PCM) 2025-06-04 21:16:27 +09:00
tildearrow
68a550a419 update the acquireDirect API
size_t offset is no more - it is always 0
2025-03-05 18:57:17 -05:00
tildearrow
95b1085aed I have no idea what's going on 2025-03-03 17:18:52 -05:00
tildearrow
231819da2e Revert "Revert "prepare acquireDirect API" - stupid crap"
thought of an idea for optimization. let's try again.

This reverts commit 4ca7033dec.
2025-02-25 18:45:28 -05:00
tildearrow
4ca7033dec Revert "prepare acquireDirect API" - stupid crap
the most POINTLESS plan of all time... acquireDirect.
why? because you gotta fill in the oscBufs anyway, which will take
precious CPU time, so you can't just pass the blip_bufs to dispatch
and hope it'll help by not processing when nothing's happening.

"so disable it when the per-chan osc is up!" NO! we need this for
volume calculation....

"how about rewrite per-chan osc logic?" you know what? I don't have
either the time or the will for that.
now back to Something Else......

This reverts commit 08177d839a.
2025-02-21 01:27:04 -05:00
tildearrow
08177d839a prepare acquireDirect API
provide direct access to blip_buf to dispatch code, which may allow for some serious optimizations
2025-02-19 15:46:10 -05:00
tildearrow
00ad4e4a46 update copyright year 2025-01-28 18:49:19 -05:00
LTVA1
87e0a9fbff oops 2024-08-14 22:16:28 +03:00
LTVA1
7c324ec39d naive channel pair refactor (dumb replace one pair with vector of pairs) 2024-08-14 20:01:16 +03:00
tildearrow
482f5de0fe prepare to add function for mapping vol to percent 2024-07-14 19:58:33 -05:00
tildearrow
1445371ad8 fix build... 2024-03-01 21:49:21 -05:00
tildearrow
f8187b9a5f dev191 - kind of remove DIV_ALWAYS_SET_VOLUME
it's useless crap I put during the Defle compat days
it serves nearly no purpose nowadays

also why is it a command?
2024-01-16 23:54:32 -05:00
tildearrow
88b42ddd58 update copyright year 2024-01-16 21:26:57 -05:00
tildearrow
51b385a1ef apply volExp on velocity input - PLEASE READ
DivDispatch::mapVelocity() now takes a float instead of an unsigned char
2023-12-16 19:52:37 -05:00
tildearrow
69998e2c7e prepare for MIDI velocity mapping 2023-12-13 20:44:32 -05:00
tildearrow
43468653a0 prepare for pre-calculated pitch table 2023-10-10 20:15:58 -05:00
tildearrow
839dc3cd91 prepare to add channel pair and mode hints 2023-10-05 04:47:14 -05:00
tildearrow
c9cbf133d6 Eknous please HELP ME 2023-08-23 17:25:05 -05:00
tildearrow
9d410dfe9c add isVolGlobal to DivDispatch
do not key release on pendingNotes if so
issue #1325
2023-08-07 18:05:31 -05:00
tildearrow
f80a2b8864 GUI: make playing needles in sample editor work
currently only for YM2612 but I will implement more soon
2023-03-19 03:12:08 -05:00
tildearrow
45faadd4c8 update copyright year 2023-01-19 19:18:40 -05:00
tildearrow
c1e26ee749 fix more possible crashes when deleting ins
and added a fatal error if implementation is missing
2023-01-19 00:37:37 -05:00
tildearrow
08d2f12dbd prepare new dispatch
will allow for more than 2 outputs
2023-01-01 19:46:08 -05:00
cam900
18b87dcfaf Fix build 2022-12-04 20:02:59 +09:00
cam900
2ec4237076 Reduce duplicates of channel struct
Add/Fix custom clock limit defines (for YMF278B)
2022-12-04 19:58:58 +09:00
tildearrow
c6604ff581 add ability to select custom clock rates 2022-12-04 02:04:42 -05:00
tildearrow
b647d17b12 prepare for custom chip clock rates 2022-12-03 04:24:08 -05:00
tildearrow
cf38680072 chip sample selection, part 4
partially works
2022-11-26 23:50:20 -05:00
tildearrow
3a9349d49a chip sample selection, part 3 2022-11-26 22:11:49 -05:00
tildearrow
85cb64b227 chip sample selection, part 2
add functions to retrieve whether a sample was loaded in chip memory
eventually I'll put warning feedback on the sample list
2022-11-26 18:44:04 -05:00
tildearrow
684b5a928b VGM export: prepare for "direct stream mode"
this will eventually allow for DualPCM and MSM6258 export

DO NOT USE YET
2022-10-17 04:17:00 -05:00
tildearrow
c3e2e902af prepare for possible DualPCM and MSM6258 VGM xprt 2022-10-16 21:35:25 -05:00
tildearrow
48db9a1d0c chip flags rewrite, part 4 - DO NOT USE
the next part is to drop systemFlagsOld completely
and then to fix the GUI
2022-09-29 20:13:40 -05:00
Natt Akuma
7c42453422
Rewrite per-system effect handling (#548)
* Rewrite per-system effect handling

* fix build

* C64: fix fine cutoff regression

* fix some more crashes

Co-authored-by: tildearrow <tildearrow@protonmail.com>
2022-08-18 01:26:22 -05:00
tildearrow
52c3b10373 add getWantPreNote()
currently only C64 system requires this
2022-08-03 16:21:30 -05:00
Laurens Holst
7f0074511c Move renderSamples() to DivDispatch implementations.
To prevent rendering samples for systems that are not in use.

Additionally, it gives the systems more flexibility to render the samples
according to their specific configuration.
2022-05-01 23:23:38 +02:00
tildearrow
4197fa44fb GUI: prepare for a per-channel oscilloscope?
currently supported systems:
- Amiga
- AY-3-8910
- Dummy System
- OPLL
- SegaPCM

no trigger supported yet!
2022-04-30 03:58:30 -05:00
tildearrow
e8f29cf122 prepare for macroInt preview in instrument editor 2022-04-26 15:24:45 -05:00
tildearrow
fd3d57b1cb even more improvements to low-latency mode 2022-04-15 15:01:11 -05:00
tildearrow
38ca437190 DC offset improvements 2022-04-09 18:25:25 -05:00
tildearrow
8f957baa3e dispatch: add function to notify playback stopped
for the PC Speaker real driver
2022-03-07 01:48:48 -05:00
Ian Karlsson
b3908216f8 Implement QSound support 2022-02-22 11:36:12 +01:00
tildearrow
df35b8fb45 add register view
supported chips only.
2022-02-21 22:31:27 -05:00
tildearrow
b9832abbeb license clarification, part 3 2022-02-14 22:12:20 -05:00
tildearrow
584b8426ff GUI: improve debug menu 2022-02-03 18:38:57 -05:00