Commit graph

4729 commits

Author SHA1 Message Date
Natt Akuma 1755e5b371 Kurumitsu-8L: add echo and PCM sample 2025-09-18 00:29:39 +07:00
Natt Akuma 8817ebbac3 Kurumitsu-8L: change channel volume handling
In order to keep the same modulation output, it now scales with pan instead of envelope
2025-09-18 00:27:06 +07:00
Natt Akuma 3831bc249c Add Kurumitsu-8L support
No sample playback yet
2025-09-18 00:27:06 +07: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
Eknous-P c9f3e95add 4 bit pcm: requseted changes 2025-07-24 13:08:28 +04:00
tildearrow c60948be9e add stdint.h to ymf278.h
issue #2610
2025-07-24 01:04:25 -05:00
tildearrow ccd4ece09c text export: fix wrong operator count
issue #2602
2025-07-19 03:24:45 -05:00
tildearrow 1a68d0efe7 fix loading of 64-bit float samples 2025-07-16 02:45:29 -05:00
tildearrow ab27e6090e ES5506: fix channel count with Amiga pitch 2025-06-25 18:05:03 -05:00
tildearrow c592c44c37 SM8521: "improve" noise
unconfirmed

issue #2567
2025-06-25 17:13:12 -05:00