Commit graph

7792 commits

Author SHA1 Message Date
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
7a7d381889 restore scroll text debug 2025-09-08 18:13:33 -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
7cf66b56ee GUI: load fallback fonts in header font
issue #2400
2025-09-07 18:22:14 -05:00
tildearrow
fb35e6f993 GUI: add a compressed font cache
reduce memory usage by not loading the same font twice
2025-09-07 18:13:57 -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
7709640aa0 GUI: possibly fix crash on audio export
issue #2672
2025-09-05 18:50:28 -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
15d47cfe03 actually fix stage 20
comparison always was false
2025-09-04 16:00:33 -05:00
tildearrow
24e7338dc5 GUI: add visualizer to cmd stream player 2025-09-04 05:01:48 -05:00
tildearrow
dcf5f3f0c7 fix stage 20 not being purple tanks 2025-09-03 04:01:47 -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
8110c378c0 Merge branch 'master' of https://github.com/tildearrow/furnace into hasSampleHeader 2025-08-30 08:15:33 +09:00
cam900
ffc681b8fa Fix MultiPCM sample OOB issue 2025-08-30 08:15:13 +09:00
cam900
779a8d8810 Add loop end hints for NDS in ADPCM, 8bit PCM 2025-08-29 16:55:53 +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
dcfd365cca Minor NDS warning fixes (more) 2025-08-20 17:57:40 -05:00
cam900
39b6eb9a70 Minor NDS warning fixes 2025-08-20 17:57:40 -05: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
e9924aeb4b GUI: change resample target limit to 384000 2025-08-19 04:18:26 -05:00
tildearrow
7d9df63a39 GUI: prevent resampling under 100Hz 2025-08-19 04:15:20 -05:00
Eknous-P
cfb47d8b06 fix (possible) zero division error and resample hang when resampleTarget<1 2025-08-19 03:36:40 -05:00
Eknous-P
fa56ea10bc resample to size 2025-08-19 03:36:40 -05:00
cam900
70d0be5bfe Add sample warnings and loop hints related to sample format
Add/Fix missing warnings in:
YMZ280B: start/loop/end address are byte aligned in any sample format, Sample frequency limit is different at ADPCM and PCM
NDS: start/loop/length are 32 bit word aligned, loop length = loop start + sample length (see https://problemkaputt.de/gbatek.htm#dssound)
ES5506: each sample bank is 4MiB (2Misamples), excluding padding for looping
K007232: each sample bank is 128KiB
ADPCM-B: max sample rate is ((output rate * 65535) / 65536)
X1-010: Sample limit is only for with bankswitch (128KiB in Seta 2 hardware)
MSM6295: Sample frequency is only determined by input clock and frequency divider select pin (sample frequency = input clock / 33 / (4 or 5, determined at frequency divider select pin)).

Add loop point hints for NDS, YMZ280B(ADPCM)
2025-08-18 05:09:50 -05:00
tildearrow
a6173e7ee2 GUI: localize more ImGui strings 2025-08-17 19:42:27 -05:00
tildearrow
0dff606d67 GUI: loop start/end hints, part 3
fix loop region display being off by one
2025-08-17 19:42:08 -05:00
tildearrow
9ce9a84dde GUI: loop start/end hints, part 2 2025-08-17 15:26:53 -05:00
Kagamiin~
ef958ada2f pt_BR locale brought up to 70% completion 2025-08-17 09:58:19 -03:00
tildearrow
4af768d280 GUI: loop start/end hints, part 1 2025-08-17 05:38:38 -05:00
tildearrow
72247f93fb GUI: prepare to display loop start/end hints
valid loop start/end positions, that is (for SNES, NES, Amiga and other
chips/systems with loop position restrictions)
2025-08-16 23:55:28 -05:00
tildearrow
b52aed25dd GUI: optimize sample tex render
optimize background drawing
2025-08-16 17:19:54 -05:00
tildearrow
7b5167880f Revert "fix sample list right-click only working on name"
This reverts commit 43b369495b.
2025-08-16 16:35:39 -05:00
tildearrow
4cd105c6b2 GUI: add new ImGui colors 2025-08-15 04:10:18 -05:00
tildearrow
e32a3369f2 GUI: fix pattern cell ID conflict
Co-authored-by: Eknous-P <ehovakimyan053@gmail.com>
2025-08-14 15:25:57 -05:00
Eknous-P
43b369495b fix sample list right-click only working on name
by moving the context item code to the selectable
2025-08-14 05:25:28 -05:00
tildearrow
aa7ab87b21 fix memory corruption when deleting unused samples 2025-08-14 04:03:16 -05:00
tildearrow
08764e0e88 update Dear ImGui to 1.92.2
the upgrade process is done, but a lot of fixes need to be worked on
2025-08-13 15:08:45 -05:00
tildearrow
ce2cf14eed fix macro scrollbars sharing the same ID 2025-08-12 16:09:00 -05:00
tildearrow
ee7087b7a5 update Dear ImGui to 1.92.0, part 2
TODO:
- testing
- testing
- testing
- additional testing
- extra testing

and of course:
- testing
2025-08-12 02:22:26 -05:00