Commit graph

392 commits

Author SHA1 Message Date
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
tildearrow
0f3f173b6e rework some of the playback logic
paving the way for C64
2021-12-05 16:11:12 -05:00
tildearrow
e52f5c9147 wow 2021-12-05 01:30:33 -05:00
tildearrow
ff07a19405 kind of C64 2021-12-04 23:55:28 -05:00
tildearrow
2f7001681c prepare for C64 platform! 2021-12-04 02:42:22 -05:00
tildearrow
760fa43a4f fill in a blank line 2021-12-04 02:34:13 -05:00
tildearrow
796f9b0cf5 one more fix! 2021-12-04 02:28:15 -05:00
tildearrow
6599eb4f7e many fixes to NES system playback 2021-12-04 02:19:14 -05:00
tildearrow
3286c3c0c5 NES system! almost 2021-12-04 01:19:54 -05:00
tildearrow
c543553b0f prepare for NES platform 2021-12-03 16:04:07 -05:00
tildearrow
86131bf05e add a log level flag 2021-06-09 12:28:46 -05:00
tildearrow
f7080bb2c1 add parameter parsing 2021-06-09 03:33:03 -05:00
tildearrow
fa445d8614 GB: reduce CPU usage
SameBoy works faster if you do multiple runs in the acquire function
2021-06-09 02:17:04 -05:00
tildearrow
b30c5679ae genesis: reduce CPU usage
the chip uses TDM to output the channels one by one
so we just run the chip 6 times and output at 1/6th the rate, which
means less work for blip_buf and less C++ overhead
2021-06-09 01:57:12 -05:00
tildearrow
cf6b213d2c even more ancient version compatibility 2021-06-09 01:52:00 -05:00
tildearrow
5b707eeeec better ancient version sample support 2021-06-09 01:16:26 -05:00
tildearrow
99e59278ad PCE: kind of implement LFO 2021-06-09 01:08:42 -05:00
tildearrow
480ddf489a dummy: more work 2021-06-09 00:10:23 -05:00
tildearrow
1edd633422 PCE: now for 8-bit samples aaaaa 2021-06-08 23:17:38 -05:00
tildearrow
451c35f41b PCE: sample playback 2021-06-08 23:16:29 -05:00
tildearrow
5b2684b5e1 PCE: the adventures of missing wavetables 2021-06-08 22:21:05 -05:00
tildearrow
cd1851606e PCE: the adventures of arp fail 2021-06-08 21:49:24 -05:00
tildearrow
8f3b9e03da PCE: make the noise actually work 2021-06-08 21:25:07 -05:00
tildearrow
8b9da366e4 PCE: implement noise, wave and pan commands
TODO: actually implement noise mode very well
2021-06-08 20:45:38 -05:00
tildearrow
8dffdca25a PCE: more work 2021-06-08 16:46:27 -05:00
tildearrow
1379b4c935 PCE: now prepare for volume 2021-06-07 03:42:18 -05:00
tildearrow
c0e4e20b3e finally, episode 2
now we really output the wave
2021-06-07 03:05:42 -05:00
tildearrow
9e72d4580f FINALLY SOUND 2021-06-07 02:49:43 -05:00
tildearrow
d74fa698af prepare for PC Engine platform
using Mednafen core
2021-06-06 14:02:38 -05:00
tildearrow
0b8fcc6e8d genesis: implement 10xx command 2021-06-05 23:27:02 -05:00
tildearrow
2bff8ae753 what the?
panning 00 mutes channel in GB?
2021-05-28 19:59:42 -05:00
tildearrow
2d3580a05c fix windows build for once 2021-05-28 15:25:55 -05:00
tildearrow
acfd9fabd0 lower the game boy volume 2021-05-28 02:53:28 -05:00
tildearrow
fedb8cdd94 out of bounds 2021-05-28 02:49:01 -05:00
tildearrow
09371f9205 more game boy playback fixes
including fixing the arp+slide thing
2021-05-28 02:30:09 -05:00
tildearrow
23dc645ced out of bounds and non-determinism fixes
the soldiers play properly now
2021-05-28 02:02:54 -05:00
tildearrow
485c4bbadc micro fix 2021-05-28 01:30:18 -05:00
tildearrow
fc87899aa8 implement the final game boy bits 2021-05-28 01:26:57 -05:00
tildearrow
83ce4f0ebe game boy progress, part 5
now with almost accurate arpeggios.
2021-05-28 00:36:40 -05:00
tildearrow
c6e42739fc game boy: tune to 440Hz 2021-05-27 23:41:35 -05:00
tildearrow
f2af1c9a07 remove some debug messages 2021-05-27 23:34:54 -05:00
tildearrow
831d2c99fb game boy progress, part 4
waves are proper now
2021-05-27 23:33:04 -05:00
tildearrow
892ea33e77 game boy progress, part 3 2021-05-27 23:03:10 -05:00
tildearrow
d6398ac10e game boy progress, part 2 2021-05-27 16:47:09 -05:00
tildearrow
a1ab7c5d57 game boy progress, part 1
noise and wave channels don't play correctly yet
2021-05-27 13:30:37 -05:00
tildearrow
c78cc8c676 finally output envelopes
apparently emulating the timers was necessary after all...
2021-05-27 05:06:43 -05:00
tildearrow
fff64acf09 prepare for fix 2021-05-27 04:36:56 -05:00
tildearrow
a2e64606c0 wire up early GB support
TODO: check why are envelopes not working
2021-05-26 17:43:14 -05:00
tildearrow
c2b3d85f77 bind the game boy
TODO: sound
2021-05-26 03:17:12 -05:00
tildearrow
30692985dc more slide fixes
we are closer and closer
2021-05-26 02:34:40 -05:00
tildearrow
42cd300b46 remove unused things in gb.h 2021-05-26 02:09:31 -05:00
tildearrow
b499878c24 add a define for SN noise start value
some SN chips have the start value set to an Atari-like one
2021-05-26 02:09:18 -05:00
tildearrow
6c7383f39b fix mastertracker again
arpeggio broke
2021-05-26 02:06:40 -05:00
tildearrow
3c20bffd46 prepare for game boy platform
using SameBoy code (MIT License)
2021-05-22 21:10:25 -05:00
tildearrow
26463fd8d9 better pitch slides
now digital warmth doesn't choke at the toms
2021-05-19 14:39:39 -05:00
tildearrow
79f15fcbd8 fix a silly bug
TODO: apparently this song requires accurate porta...
2021-05-19 03:09:51 -05:00
tildearrow
f26307f11b more slide headache 2021-05-19 02:22:26 -05:00
tildearrow
ba2c4f46c6 oh come on OFF stops arpeggio?! 2021-05-19 02:06:13 -05:00
tildearrow
471cd2d68d add some view modes and fix a slide bug 2021-05-19 02:05:24 -05:00