Commit graph

4735 commits

Author SHA1 Message Date
Eknous-P
52eac7e3c6 sample import detune load setting 2025-10-01 23:08:38 +04:00
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
M374LX
a4b9442cc8 Small consistency fix 2025-09-29 23:45:42 -05:00
M374LX
cb42641200 Add missing parameters 2025-09-29 05:07:42 -05:00
M374LX
7458c7b912 Code style fix 2025-09-29 05:07:42 -05:00
M374LX
146e7baed4 Update EIF loading 2025-09-29 05:07:42 -05:00
M374LX
d4470aa42b Start implementing EIF instrument support 2025-09-29 05:07:42 -05:00
Eknous-P
2785625475 fix dmf export "order out of range" error message 2025-09-23 14:24:45 +04:00
tildearrow
e357dd0372 FDS: mod effects should be post
issue #2691
2025-09-19 21:44:26 -05:00
tildearrow
70f512003e OPN: fix wrong getGain in ExtCh 2025-09-16 03:05:27 -05: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
c1b7a06a37 MultiPCM: add renderInstruments()
call it on instrument addition/removal/modification,
reset and/or renderSamples
2025-09-14 05:25:44 -05:00
tildearrow
684bebf202 MultiPCM: fix muting on reset 2025-09-13 14:14:11 -05:00
tildearrow
de1ab67d4a Merge branch 'master' into hasSampleHeader 2025-09-13 04:23:19 -05:00
tildearrow
551da762ee Merge branch 'master' into getSampleMemOffset 2025-09-13 04:13:27 -05:00
tildearrow
d16bad802d NDS: fix volume
it was twice as loud and global volume would clip
2025-09-12 05:10:17 -05:00
tildearrow
825039ec5a Lynx: write duty on forceIns()
issue #2674
2025-09-10 23:51:08 -05:00
KungFuFurby
0549acc1d9 Correct a typo where the wrong effect ID was used for vibrato waveform
E4x is the correct ID, not E3x, for MOD and XM.
Additionally, updated the coding style for MOD to be more consistent with the
pre-existing code, namely by not using hex for the effect IDs being checked.
2025-09-10 00:18:45 -05:00
KungFuFurby
6252843ade Add envelope enable/disable and high nibble sample offset for IT
Fine print:
- Enabling and disabling panning envelopes take up two effect columns instead of
  one due to the macro being split into left and right sides.
2025-09-09 22:29:05 -05:00
KungFuFurby
0660e25f06 Add vibrato waveform import support for S3M, XM, MOD and IT
Fine print:
- OpenMPT hacks are not implemented here for MOD and XM for random waveform
- Retrigger/Continuous setting is not handled for MOD, XM and S3M
-- For S3M, I can't confirm if the setting even existed:
   I'm pretty sure it got cut out of Impulse Tracker.
- Your waveform may sound different here than in the original player

If tremolo and panbrello waveforms are implemented in Furnace, then their
corresponding conversions can be implemented. For now, though, they can't make
the cut since there is no corresponding effect to change those waveforms from
the default setting.
2025-09-09 22:29:05 -05:00
KungFuFurby
3df67fb1b3 Add some commentary for special series of effects in S3M, XM and IT 2025-09-09 22:29:05 -05:00
tildearrow
17420d5d23 QSound: fix loop end being used as sample end
even if loop is disabled
2025-09-08 02:32:24 -05:00
tildearrow
c75f363453 XM import: actually consider pattern data size
issue #2681
2025-09-07 17:14:24 -05:00
tildearrow
3a66e0ceee T6W28: actually fix the phase reset issue
issue #2665
2025-09-07 04:34:59 -05:00
tildearrow
d0c4fb0b42 IT import: comments, channel names and pat names
the latter two are MPT extensions

this may not work on songs with MIDI macro setup info
2025-09-06 17:46:16 -05:00
tildearrow
0da42f18a6 T6W28: fix noise reset on all duty macro steps
issue #2665
2025-09-05 13:26:52 -05:00
tildearrow
aa67f78d36 MMC5: fix typo in comment 2025-09-05 02:10:58 -05:00
tildearrow
67c7afd4cd MMC5: fix env mode not set after reset/forceIns
issue #2675
2025-09-05 01:01:27 -05:00
tildearrow
24e7338dc5 GUI: add visualizer to cmd stream player 2025-09-04 05:01:48 -05:00
tildearrow
91965bca8c fix crash when converting to BRR with invalid loop end
issue #2671
2025-09-03 03:58:45 -05:00
cam900
d558798bbc Fix MultiPCM dummy instrument 2025-08-30 08:18:07 +09:00
cam900
ffc681b8fa Fix MultiPCM sample OOB issue 2025-08-30 08:15:13 +09: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
cam900
44b2d3d037 QSound: Fix ADPCM Address and code style,
Add QSound ADPCM sample warning:
Because QSound ADPCM has twice long max sample length but start/end addresses are byte aligned, doesn't have loop and pitch (fixed to output rate / 3).
2025-08-20 17:57:40 -05:00
tildearrow
ee64dd6a16 T6W28: fix noise emulation
thanks to Burnt Fishy and The Beesh-Spweesh! for information
2025-08-19 20:58:08 -05:00
tildearrow
3b37a5334a OPNA/B: fix SSG DAC/TFX not working with LLE core 2025-08-19 04:23:58 -05:00
tildearrow
7d9df63a39 GUI: prevent resampling under 100Hz 2025-08-19 04:15:20 -05:00
tildearrow
aa7ab87b21 fix memory corruption when deleting unused samples 2025-08-14 04:03:16 -05:00
Electric Keet
bf348efe24 VERA version number fix. 2025-08-11 05:05:25 -05:00
cam900
915805862f
msm6295.cpp: Add sample count limit when NMK112 banked
In this case, sample limit is expanded to 8192. (32 samples per bank * 256 banks)
2025-08-01 19:35:40 +09:00
tildearrow
1b40577585 MSM6295: mark samples after 126 as unloaded 2025-07-29 05:20:32 -05:00
tildearrow
c8d323d708 Supervision: fix crash 2025-07-28 05:25:17 -05: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
98030de8c7 dev233 - breaking the limit, part 1
now up to 32768 wavetables and 32768 samples

this is the first part and does not implement the new sample limit correctly
I have to adapt every dispatch to the new limit... see you in the next part

the format version had to be bumped because the WL and SL .fui features were limited to 256 entries
there are new LW and LS blocks with more space
howwver there's a new issue... we can have a feature larger than 65536, which is a limit imposed by the feature header :<
this will be addressed though
2025-07-26 18:48:23 -05:00
tildearrow
13ac388ae5 Merge remote-tracking branch 'Eknous-P/4bitpcm' (#2550) 2025-07-25 14:39:05 -05:00
Eknous-P
6d44ef5641 another break 2025-07-25 12:26:49 +04:00
Eknous-P
b6c49712d7 copy nibble and revert pps init length
pps sample length may be in bytes
2025-07-24 13:49:38 +04:00