Commit graph

450 commits

Author SHA1 Message Date
tildearrow
2f1cdab36b fix mixing being done wrongly 2022-01-15 00:24:06 -05:00
tildearrow
29ca2033d9 AY: remove redundant break 2022-01-14 23:38:07 -05:00
tildearrow
10c78e3fd2 now actually finish SAA1099 2022-01-14 23:37:03 -05:00
tildearrow
0e2230d036 hopefully finish the SAA1099 platform 2022-01-14 23:26:22 -05:00
tildearrow
d2cef16adf WHAT?! 2022-01-14 20:34:15 -05:00
tildearrow
e05db17ce2 it plays notes 2022-01-14 18:19:52 -05:00
tildearrow
740521b469 AY: don't write to bufR 2022-01-14 16:35:19 -05:00
tildearrow
307665f531 prepare for SAA1099 2022-01-14 16:29:27 -05:00
tildearrow
390eb66647 TIA: absolute arp macros are now periodic 2022-01-14 15:34:54 -05:00
tildearrow
c23ba3b532 add TIA instrument type 2022-01-14 15:21:57 -05:00
tildearrow
3afb0f815d lower the volume of TIA by half 2022-01-14 14:12:49 -05:00
tildearrow
1d3429d568 C64: don't gate on legato 2022-01-14 13:55:19 -05:00
tildearrow
ad145a13e4 fix the desync 2022-01-14 04:41:32 -05:00
tildearrow
573ce69dc7 add TIA platform
currently there is a desync bug which remains to be fixed...
2022-01-14 03:37:36 -05:00
tildearrow
6d2aa8d23e change AY frequency 2022-01-14 00:26:10 -05:00
tildearrow
dce06d8ec4 add AY8930 platform 2022-01-14 00:02:10 -05:00
tildearrow
b26208f2c1 fix changing order if 0Bxx is present 2022-01-13 20:54:34 -05:00
tildearrow
805cf69c52 deprecate macro heights
now we do everything based on the ins type
2022-01-13 20:44:45 -05:00
tildearrow
91e8ff01cf add notifyInsDeletion
prevent invalid memory access when deleting instruments
2022-01-13 19:36:02 -05:00
tildearrow
0545775de6 prepare for better ins del safety 2022-01-13 17:40:29 -05:00
tildearrow
fea783eaac fix macOS build 2022-01-13 16:12:02 -05:00
tildearrow
943f88b306 add four more macros
they eventually will be used
2022-01-13 13:55:33 -05:00
tildearrow
11cf0dc560 prevent saving unsupported systems to .dmf 2022-01-13 03:05:36 -05:00
tildearrow
0b352ecd9a add AY-3-8910 platform!
this paves the way for eventual AY-3-8930 platform...
2022-01-13 02:52:19 -05:00
tildearrow
2fcb474544 stuff
implement two systems and system vol/pan
2022-01-13 01:03:57 -05:00
tildearrow
177fe0fbdd release 0.3.1
- added `25xx` and `26xx` effects in Neo Geo platform for
  envelope period slides
- added `3xxx` and `4xxx` effects in C64 for fine duty/cutoff control
- made home/end keys work
- deleting a single note will delete related instrument value as well
- fix instrument value input when there are less than 16 instruments
- added `Cxxx` effect for mid-song Hz change
- possibly fix a hang when using multiple sound chips
- reduce PC Engine CPU usage
2022-01-12 23:00:22 -05:00
tildearrow
9b40dd994b prepare for more platforms 2022-01-12 22:58:51 -05:00
tildearrow
9ff852d1db PCE: reduce CPU usage 2022-01-12 22:14:20 -05:00
tildearrow
cd739f5fde change master clock to sampleRate*256
this hopefully fixes the hang by doing all clock ops on a master clock
rather than one clock per system
2022-01-12 17:45:07 -05:00
tildearrow
fa5b99b46a add stuff for diagnosis of hang problem 2022-01-12 17:02:48 -05:00
tildearrow
6245b3af31 add Cxxx effect for mid-song Hz change
also add hang detection as I ran into one of them while test multi-chip
2022-01-12 02:45:26 -05:00
tildearrow
651db5784e implement more effects
- C64: set fine duty and filter
- Neo Geo: slide SSG envelope
2022-01-11 18:38:26 -05:00
tildearrow
69b56e6d4c prepare for adding wavetable from file 2022-01-11 16:25:55 -05:00
tildearrow
4c5fbc252b allow moving ins/wave/samples up or down 2022-01-11 03:52:11 -05:00
tildearrow
5637639950 waveform width/height controls 2022-01-11 03:16:32 -05:00
tildearrow
02b5b05e04 prepare for 0.3 2022-01-10 17:30:36 -05:00
tildearrow
5bcc3d5d6d absolute C64 filter macros!
exclusive to .fur format
2022-01-10 17:04:31 -05:00
tildearrow
9f6bb570c9 absolute C64 duty macros!
exclusive to .fur format
2022-01-10 16:54:58 -05:00
tildearrow
c36d19f495 not an oopsie 2022-01-10 03:35:29 -05:00
tildearrow
d0a2a0f902 auto-determine ins type when adding 2022-01-09 23:50:26 -05:00
tildearrow
7d336d61f7 how did I miss that!!!!!!!! 2022-01-09 22:17:03 -05:00
tildearrow
325478e37a GUI: revamp instrument editor 2022-01-09 17:48:09 -05:00
tildearrow
7568f1a1b9 better YMU759 support
time base now loaded as rate and timer no longer bugs out

also you can save YMU759 songs as .fur now, even if it is pointless
2022-01-09 17:08:14 -05:00
tildearrow
9b6db75d4f C64: use full cutoff/duty range
this means .dmf becomes a second-class citizen since it only supports a
range of 0-100 (yeah) for arbitrary reasons...

the last bit to do is add effect that allows you to use the full range
2022-01-09 17:00:52 -05:00
tildearrow
4bbfc22c2a GUI: add/remove options 2022-01-09 16:36:47 -05:00
tildearrow
925a29249b implement Furnace format loading 2022-01-09 14:54:28 -05:00
tildearrow
0b4ad13858 more work 2022-01-09 04:42:58 -05:00
tildearrow
8d9cddde37 implement Furnace format saving
experimental and no loading yet
2022-01-09 03:52:41 -05:00
tildearrow
c43cc0ae80 GUI: add option to add more systems 2022-01-08 18:18:23 -05:00
tildearrow
e961cf79ca NES: add NESAPU struct
to allow multi-chip support
2022-01-08 17:44:17 -05:00
tildearrow
06c7ac92a2 earliest multi-chip support
no saving, no adding chips yet...
only the beginning
2022-01-08 17:15:12 -05:00
tildearrow
7080434ed4 this does not compile 2022-01-08 16:03:32 -05:00
tildearrow
f47543ab98 prepare for multiple chip support, part 2 2022-01-08 03:02:04 -05:00
tildearrow
254bf18036 move the code a bit to load/save other formats 2022-01-08 02:22:04 -05:00
tildearrow
073703f8ba refuse to save YMU759 songs
the .dmf format no longer allows YMU759 songs...
2022-01-08 02:04:43 -05:00
tildearrow
121a9b2cb8 prepare for multiple chip support 2022-01-08 01:57:37 -05:00
tildearrow
28d3dc2691 release 0.2.2 2022-01-06 13:24:12 -05:00
tildearrow
e8dc1e3c8b turn the metronome into a sine 2022-01-04 00:29:59 -05:00
tildearrow
530a9bafc7 add a metronome 2022-01-04 00:02:41 -05:00
tildearrow
943e4e374f better compatibility with old GB modules 2022-01-03 23:22:39 -05:00
tildearrow
4c8ff2edb3 fix clicks on replay 2022-01-03 03:37:58 -05:00
tildearrow
7ed1777bdc fix 128 instrument song failing to read 2022-01-03 03:35:13 -05:00
tildearrow
cbc39909e4 release 0.2.1
several fixes and stuff
2022-01-01 12:45:21 -05:00
tildearrow
9a1853249b finally make the save option work 2021-12-30 18:25:55 -05:00
tildearrow
dc5990a37e a lot of master system fixes!
fixes forest frolick, professional tracker, YZYX, Monday (kinda),
MasterTracker and Ice Fields
2021-12-29 02:08:50 -05:00
tildearrow
3e34c60b32 fix volume after note off 2021-12-29 00:52:20 -05:00
tildearrow
6222e0933a prepare for more settings work 2021-12-29 00:50:00 -05:00
tildearrow
8f9f37f424 are you for real right now 2021-12-28 23:10:13 -05:00
tildearrow
be3b4da834 add note preview feature 2021-12-28 18:23:57 -05:00
tildearrow
0479650597 C64: fix volume not being set after skip 2021-12-28 01:20:48 -05:00
tildearrow
d766c4aaf0 finally do EFxx right
took a while to figure out...
2021-12-28 00:51:38 -05:00
tildearrow
b246000f0e better default FM instrument 2021-12-27 17:21:43 -05:00
tildearrow
eb28f7f7f1 whaaaaaaaaa 2021-12-27 17:05:03 -05:00
tildearrow
772aac5806 fix crash when muting in ext ch mode 2021-12-27 16:47:37 -05:00
tildearrow
0001af3f35 hmm... 2021-12-27 16:37:33 -05:00
tildearrow
65444d4a99 el diego 2 finally plays back correctly
ALMOST
2021-12-27 16:31:16 -05:00
tildearrow
4f2ce0f907 fix arpeggio macro if value<-12 2021-12-27 16:15:26 -05:00
tildearrow
1605f4f3c0 better global pitch effect
still work in progress
2021-12-27 16:15:11 -05:00
tildearrow
11478fbdfe prevent clipping in ADPCM samples 2021-12-27 15:22:57 -05:00
tildearrow
f32c2fa06b early implementation of global pitch
apparently this requires a rewrite of the pitch logic...
2021-12-27 15:22:01 -05:00
tildearrow
a0a27e91f3 better default wavetable 2021-12-27 15:21:38 -05:00
tildearrow
8428f7da32 GUI: make the new button work 2021-12-24 18:23:01 -05:00
tildearrow
7ba8607270 changes to sample rate storage
as of now we store and use the actual sample rate as opposed to an index
fo a fixed rate table.

this allows for more flexibility in a future file format...
2021-12-23 18:04:44 -05:00
tildearrow
830e880a57 GUI: colored channe names 2021-12-23 17:09:33 -05:00
tildearrow
bbb0a14946 GUI: finish order buttons 2021-12-22 17:39:16 -05:00
tildearrow
dbf0d3fd88 now remove debug info 2021-12-22 12:01:37 -05:00
tildearrow
d92e91c5d8 fix popping ADPCM samples in Neo Geo
finally!
2021-12-22 12:00:40 -05:00
tildearrow
00b42767de fix major memory corruption bug in the safeWriter 2021-12-22 11:51:09 -05:00
tildearrow
c2669f208e fix wiz lab AGAIN and implement repeat pat
0x0b + 0x0d = broken
2021-12-21 17:42:27 -05:00
tildearrow
7b360b55a7 PCE: aaand fix another bug 2021-12-21 17:21:27 -05:00
tildearrow
c6ae198283 fix export crash :< 2021-12-21 16:05:21 -05:00
tildearrow
726b457ae7 another uninitialized variable 2021-12-21 16:02:31 -05:00
tildearrow
48f4f5835b add a sample preview button (hopefully)
the next commit will be about normalizing sample rate
2021-12-21 13:06:14 -05:00
tildearrow
6ee4e33b89 GUI: add status bar 2021-12-21 02:30:09 -05:00
tildearrow
5523a43804 better loop tracking 2021-12-21 02:02:25 -05:00
tildearrow
8d8f26d4f7 PCE: fix pan reset on change order 2021-12-21 01:32:26 -05:00
tildearrow
997c460fc1 greatly improved playback resume
no more song weirding out when changing orders
2021-12-21 01:29:07 -05:00
tildearrow
1cc9b9fe20 GUI: more more more work
error dialog boxes and drawOrders improvements
2021-12-20 23:20:30 -05:00
tildearrow
7f3885d2b1 GUI: ability to add/del effect cols and EExx value 2021-12-20 19:46:49 -05:00
tildearrow
1234dcf2bc properly load unsigned 8-bit samples 2021-12-20 16:33:10 -05:00
tildearrow
548fa2ad73 don't stop the song until it has been loaded 2021-12-20 14:20:05 -05:00
tildearrow
498fa99c5a finally fix invalid module disrupting program 2021-12-19 21:11:23 -05:00
tildearrow
245e7acd10 prepare for config management 2021-12-19 16:52:04 -05:00
tildearrow
f42cfcbdc8 custom config directory 2021-12-19 03:16:24 -05:00
tildearrow
fbcc9ff4be U N I N I T I A L I Z E D
the bane of a C++ programmer
2021-12-19 02:16:16 -05:00
tildearrow
8551326800 arcade: properly set AM/PM depth
fixes sixeight-v2.dmf
2021-12-19 00:57:29 -05:00
tildearrow
3a0e94df5e genesis: fix muting the PCM channel 2021-12-19 00:51:10 -05:00
tildearrow
efd5e844ce genesis: fix massive bug when muting SN 2021-12-19 00:49:47 -05:00
tildearrow
e35f48b7a0 and MORE bug emulation
this time the volume DOES reset back to normal if you issue an off after
a 0Axx.
fixes pads.dmf
2021-12-19 00:42:20 -05:00
tildearrow
667526e414 further improve the accuracy of 03xx 2021-12-19 00:27:04 -05:00
tildearrow
97a00c7efd improve 03xx accuracy
portamento stops if same note
2021-12-19 00:02:48 -05:00
tildearrow
9d8a2f780b GUI: add a wavetable editor 2021-12-18 17:54:26 -05:00
tildearrow
beceefd34b only output playback status in console mode 2021-12-18 04:26:17 -05:00
tildearrow
b3b66ecbdb channel mute/solo! 2021-12-18 03:25:42 -05:00
tildearrow
c4c019e593 fix E5xx range in old modules 2021-12-18 01:09:43 -05:00
tildearrow
4de343eea7 add ability to save samples 2021-12-18 01:03:59 -05:00
tildearrow
8c57eb9696 add ability to change system 2021-12-17 22:14:41 -05:00
tildearrow
289dd3e565 arcade: fix crash on high sample 2021-12-17 03:33:26 -05:00
tildearrow
b6ca7e3dc7 ability to add/remove instruments/waves/samples 2021-12-17 03:33:12 -05:00
tildearrow
2baed0cff0 fix windows build... 2021-12-16 15:51:19 -05:00
tildearrow
07ab05798b remove an empty line 2021-12-16 03:09:00 -05:00
tildearrow
ce71c2e9ad fix memory leak 2021-12-16 02:21:43 -05:00
tildearrow
e13631b69b typooooo 2021-12-15 17:33:57 -05:00
tildearrow
c54df74df1 GUI: rate change and new window title 2021-12-15 17:32:08 -05:00
tildearrow
ebb28d912b untested saving code and memory leak fix 2021-12-15 14:15:44 -05:00
tildearrow
2879b5e4d0 arcade: add ymfm-based core
less CPU usage at the cost of some quality
2021-12-15 01:23:58 -05:00
tildearrow
8de60fe2a6 arcade pitch oddity 2021-12-15 00:50:32 -05:00
tildearrow
52087edceb lots of changes
- GUI: ability to load files
- GUI: arrow key navigation
- fix sample volumes
2021-12-15 00:37:27 -05:00
tildearrow
29d7be032a neo geo: remove debug spam 2021-12-14 21:47:44 -05:00
tildearrow
95e3a098d0 add Neo Geo extended channel 2 support 2021-12-14 14:31:57 -05:00
tildearrow
004e8341c2 reset on end of song 2021-12-14 13:16:35 -05:00
tildearrow
28a9d2c4a3 now the GUI 2021-12-14 12:40:26 -05:00
tildearrow
bde8a7f79d warning-free compilation 2021-12-14 12:33:26 -05:00
tildearrow
3af0a9feda set default time base of song to 0 2021-12-13 20:31:27 -05:00
tildearrow
9e2e02a12e GUI: colored pattern view 2021-12-13 17:09:46 -05:00
tildearrow
60f06d2908 fix build... 2021-12-13 14:51:35 -05:00
tildearrow
285cc9b766 allow running GUI without loaded module 2021-12-13 14:40:03 -05:00
tildearrow
6b499fbc79 GUI: channel namws 2021-12-13 13:10:56 -05:00
tildearrow
efde2c5798 earliest pattern view 2021-12-13 02:03:36 -05:00
tildearrow
9a1683bb45 GUI: C64 and game boy ins edit UI 2021-12-12 18:19:43 -05:00
tildearrow
63fe2e2c95 fix output to audio file 2021-12-12 15:22:27 -05:00
tildearrow
4b32599237 GUI: macro editor (kind of) and order view 2021-12-12 04:21:09 -05:00
tildearrow
93c88a093f fix volume regression 2021-12-11 16:51:34 -05:00
tildearrow
2f813c55e0 GUI: instrument selector 2021-12-11 16:44:02 -05:00
tildearrow
1bf64c4f4f NES; don't crash 2021-12-11 13:34:29 -05:00
tildearrow
a17e91955a add reset() for every platform 2021-12-11 13:14:38 -05:00
tildearrow
f39e2ea112 GUI: play/stop/change order 2021-12-11 03:34:43 -05:00
tildearrow
dec100b8aa YMU759: interpret time base correctly 2021-12-11 00:37:22 -05:00
tildearrow
6858742d7b fix sombras 2021-12-11 00:08:44 -05:00
tildearrow
20a9282efe neo geo: finish it up 2021-12-10 23:41:00 -05:00
tildearrow
fbd94bbce9 neo geo: ADPCM!! 2021-12-10 22:51:50 -05:00
tildearrow
a95ee7b7ba neo geo: found the problem 2021-12-10 15:16:58 -05:00
tildearrow
e365aa4bdb more neo geo stuff 2021-12-10 04:22:13 -05:00
tildearrow
442180956c neo geo: more work 2021-12-09 17:06:28 -05:00
tildearrow
d789ae759e neo geo let's goooooo 2021-12-09 13:25:02 -05:00
tildearrow
6cc0d58624 get things ready for neo geo 2021-12-09 03:37:31 -05:00
tildearrow
248cc6d37a properly handle note off in PCM 2021-12-09 03:25:00 -05:00
tildearrow
e2a41974ff PCM sample bank support 2021-12-09 03:13:37 -05:00
tildearrow
e3f14f3850 1-byte offset should be safe 2021-12-09 02:58:53 -05:00
tildearrow
2dcf5f890e PCE: note off disables PCM mode 2021-12-09 02:54:14 -05:00
tildearrow
daed339e07 add a save function
and it loads on DefleMask!
2021-12-09 02:38:55 -05:00
tildearrow
d395abe47f actually obey the orders 2021-12-09 01:44:40 -05:00
tildearrow
b358338613 arcade: minor optimization 2021-12-09 01:03:05 -05:00
tildearrow
defaf7397a arcade: finish it up
0.12 feature parityyyyyyyy!
2021-12-09 00:46:48 -05:00
tildearrow
7ac225e839 arcade: even more work
PCM tonight
2021-12-08 18:29:50 -05:00
tildearrow
6dcc3416ee arcade: a bit of extra work 2021-12-08 17:54:14 -05:00
tildearrow
aff0afa7d1 prepare for arcade platform! 2021-12-08 17:40:35 -05:00
tildearrow
f5a22c9d42 macroInt: reset will vars 2021-12-08 03:17:17 -05:00
tildearrow
9362cfa481 add clock drift for exact tempo 2021-12-08 02:57:41 -05:00
tildearrow
db2bfb8aa3 don't eat the last row in audio file out 2021-12-08 02:22:19 -05:00
tildearrow
6a02754996 add PAL flag to dispatch
now platforms run at their correct clock speed when in PAL mode

also fix clipping in Genesis
2021-12-08 01:56:40 -05:00
tildearrow
fe5f8afa05 uninitialized variables? oh my! 2021-12-08 01:31:35 -05:00
tildearrow
4eec990ec1 when the fix breaks something 2021-12-08 01:16:29 -05:00
tildearrow
db46dd79d2 honor arpeggio macro during legato 2021-12-08 00:56:46 -05:00
tildearrow
0ca761d7fd aaaaagain 2021-12-08 00:37:23 -05:00
tildearrow
65ab3a2b5d keyOffAffectsArp is now per-channel 2021-12-08 00:33:00 -05:00
tildearrow
5fbaf71105 one thing is fixing bugs
another is bugging fixes
2021-12-08 00:27:20 -05:00
tildearrow
50f6bb536f treat ED00 correctly 2021-12-07 16:58:23 -05:00
tildearrow
1d390b705b fix rael again
only count the first pattern jump command
2021-12-07 16:32:20 -05:00
tildearrow
3f5b0019dc C64: fix rael 2021-12-07 16:25:42 -05:00
tildearrow
655ad5139d PCE: remove clip clicks 2021-12-07 14:29:48 -05:00
tildearrow
b689d51ec9 audio file output stereo support 2021-12-07 12:33:55 -05:00
tildearrow
f71ee6b45d preliminary audio file output 2021-12-07 12:21:23 -05:00
tildearrow
7649b845aa prepare for file output 2021-12-07 04:39:52 -05:00
tildearrow
4cba677c04 i know a better way 2021-12-07 04:32:42 -05:00
tildearrow
7490ed89a1 Revert "Revert "prepare to add file out - does not compile!""
This reverts commit ada8e71884.
2021-12-07 04:22:36 -05:00
tildearrow
ada8e71884 Revert "prepare to add file out - does not compile!"
This reverts commit 45b202b85b.
2021-12-07 04:20:11 -05:00
tildearrow
45b202b85b prepare to add file out - does not compile! 2021-12-07 03:52:41 -05:00
tildearrow
3ee761fc87 C64: finish it all
all modules play correctly, bar:
- motherfunksignal (almost)
- filters are a bit weird
2021-12-07 01:23:57 -05:00
tildearrow
c26bb511d7 dispatch: fix small mistake 2021-12-06 21:12:16 -05:00
tildearrow
145403e7dd Merge branch 'master' of github.com:tildearrow/furnace 2021-12-06 16:52:03 -05:00
tildearrow
d6fb6b0bb3 more optimization
as of now non-stereo sound chips are only processed once
2021-12-06 16:51:18 -05:00
tildearrow
6efcfc2e8a prepare for possible major optimization
by just forwarding an output buffer to the dispatch and begin/length,
the number of calls may be reduced which improves performance.
2021-12-06 05:21:42 -05:00
tildearrow
18fb2a4b9f C64: more work! 2021-12-06 03:26:39 -05:00
tildearrow
ce4b6c7044 genesis: comment out two debug messages 2021-12-06 03:26:33 -05:00
tildearrow
055b4f9c26 genesis: fix delay bug 2021-12-06 03:07:29 -05:00
tildearrow
8478481466 hmmm 2021-12-06 02:59:12 -05:00
tildearrow
1ac45e27a2 delete several unneeded files 2021-12-05 17:16:30 -05:00
tildearrow
480b26c95c more C64 work 2021-12-05 16:45:29 -05:00
tildearrow
24956e8177 Merge branch 'master' of github.com:tildearrow/furnace 2021-12-05 16:21:28 -05:00