Commit graph

1177 commits

Author SHA1 Message Date
tildearrow
456db22f9d fix wrong include path 2022-02-17 04:26:23 -05:00
tildearrow
647f2f96b0 dear tildearrow are you drunk or what? 2022-02-15 17:22:09 -05:00
tildearrow
b24c572632 prevent division by zero, part 1 2022-02-15 15:19:36 -05:00
tildearrow
853ade2416 improve the status bar
issue #39
2022-02-15 01:46:03 -05:00
tildearrow
b9832abbeb license clarification, part 3 2022-02-14 22:12:20 -05:00
tildearrow
1c3074bb43 PCE: also fix issue here (i think) 2022-02-14 02:45:20 -05:00
tildearrow
939416791b Amiga: don't replay samples on set order 2022-02-14 02:32:37 -05:00
tildearrow
bfb902f649 fix #172 2022-02-13 23:49:01 -05:00
tildearrow
d2d60c4f1a what 2022-02-13 18:13:29 -05:00
tildearrow
9ea510c351 SAA1099: implement SAASound core option 2022-02-13 17:49:24 -05:00
tildearrow
2f766553e8 add SAASound as an alternate SAA1099 core
DOES NOT WORK YET
2022-02-13 17:02:49 -05:00
tildearrow
7c80a88bbf GUI: fix debug menu a bit 2022-02-13 15:03:07 -05:00
tildearrow
271c0dc08b SMS: fix channel 3 muting at the beginning of song 2022-02-12 22:50:31 -05:00
tildearrow
6bcd3df691 oopsie 2022-02-12 21:19:38 -05:00
tildearrow
423d9fa45d Amiga: early bus limits emulation
it appears that if the period is lower than 124, the positions start
to desync

this is emulated by UAE, but i am not sure whether this happens on a real machine
and this isn't emulated properly here either
2022-02-12 17:43:30 -05:00
tildearrow
91cbf9947b NOTICE: ADPCM-B DOES NOT WORK YET
it's selectable now but the channel is useless (for now)
2022-02-10 03:35:08 -05:00
tildearrow
73dd66b439 GB: fix wave orientation 2022-02-10 02:56:36 -05:00
tildearrow
569de9d81a add preliminary ymfm OPZ code 2022-02-09 23:19:02 -05:00
tildearrow
62f2f67b9d add two more compatibility flags
for songs that relied upon pre-0.5.5 broken behavior
2022-02-09 22:07:32 -05:00
tildearrow
788ccfb334 unscrew alg + volume 2022-02-09 12:43:27 -05:00
tildearrow
5b7240bb4f and fix it again 2022-02-08 22:49:52 -05:00
tildearrow
f1730baefa fix artificial intelligence bomb
and a couple of songs that used 02xx after note off
2022-02-08 22:46:58 -05:00
tildearrow
23dc509524 implement reset macro on porta flag 2022-02-08 17:02:27 -05:00
tildearrow
bf537881ce possibly implement envelope release points
no way to set them yet tho other than the MML string
2022-02-08 13:11:04 -05:00
tildearrow
8d45236cce SMS: add option to disable noise phase reset
issue #83
2022-02-07 23:05:50 -05:00
tildearrow
e6201b8390 SMS: prepare for don't reset phase flag 2022-02-07 18:34:04 -05:00
tildearrow
1bb81394aa NES: enable duty and'ing on properNoiseLayout 2022-02-07 00:49:01 -05:00
tildearrow
76beedae0c i mean HAPPENING and the slide NOT HAPPENING 2022-02-07 00:30:37 -05:00
tildearrow
e25f5b229c fix arpeggio not happening during slide on SMS 2022-02-07 00:30:15 -05:00
tildearrow
d0457a2e1b VGM export: improvements
- use shorthand command for waiting at 50/60Hz
- don't write stream rate change if DAC is off
2022-02-06 16:47:12 -05:00
tildearrow
20ac87d256 C64: add ring/sync macro 2022-02-06 15:56:10 -05:00
tildearrow
e2c2e8140b C64 filter mode macro i think 2022-02-06 15:44:06 -05:00
tildearrow
2ea35ef734 Arcade: add LFO wave macro 2022-02-06 02:25:32 -05:00
tildearrow
e06e316e10 add two new compatibility flags
proper noise range and duty macro is wave volume
2022-02-06 01:56:50 -05:00
tildearrow
9091081b9f oh... 2022-02-05 23:53:30 -05:00
tildearrow
faed39843e PCE: fix channel 2 being mute?!
another discovery towards LFO fix?
fixes #141
2022-02-05 23:51:29 -05:00
tildearrow
12d4cd6467 add LFO speed macro 2022-02-05 16:40:03 -05:00
tildearrow
026b232c02 more LFO fix code 2022-02-05 16:19:22 -05:00
tildearrow
59cbfdcad9 PCE: partial fix to LFO
issue #88
2022-02-05 15:15:27 -05:00
tildearrow
cb430fc169 Genesis: fix bus overload when using ymfm core 2022-02-05 04:31:20 -05:00
tildearrow
bbd174498e Arcade: fix wrong sample pitch on diff clock rate 2022-02-04 21:40:48 -05:00
tildearrow
6b040084e0 Genesis: add alternate clock speed 2022-02-04 21:35:24 -05:00
tildearrow
acdf4d6503 Amiga: add stereo separation setting 2022-02-04 17:59:55 -05:00
tildearrow
4e1c6d78c2 fix Neo Geo detuning 2022-02-04 16:21:18 -05:00
tildearrow
902febe298 actually implement pitch of C-4 2022-02-04 03:29:40 -05:00
tildearrow
c1864849a0 PCE: oh yes another sample fix 2022-02-04 01:53:43 -05:00
tildearrow
584b8426ff GUI: improve debug menu 2022-02-03 18:38:57 -05:00
tildearrow
4dd935bbcc Genesis/Neo Geo ext.: fix possible TL bug 2022-02-03 16:17:30 -05:00
tildearrow
c682c921a1 fix compatible-style retrigger 2022-02-03 15:43:41 -05:00
tildearrow
0ceec182a0 SAA: fix negative octaves 2022-02-03 02:46:49 -05:00
tildearrow
9b83c304e5 AY8930: fix negative octaves 2022-02-03 02:46:42 -05:00
tildearrow
35e39d2c32 arcade limits 2022-02-03 02:30:21 -05:00
tildearrow
5086bc1097 implement the linear pitch flag 2022-02-03 02:24:11 -05:00
tildearrow
ccfe3bdd97 Genesis: add ability to use ymfm instead of Nuked 2022-02-02 23:08:45 -05:00
tildearrow
545f3ffdf4 Genesis: add DAC distortion flag 2022-02-02 03:06:30 -05:00
tildearrow
ec9cc0e254 remove some debug messages 2022-02-02 02:49:39 -05:00
tildearrow
9c33abaa19 Genesis: fix extended channel 3 muting 2022-02-02 02:46:29 -05:00
tildearrow
cbf66b1e62 prepare to add register cheat sheets 2022-02-02 02:14:42 -05:00
tildearrow
f03ed7c833 NES: add hardware sweep effect 2022-02-01 18:28:48 -05:00
tildearrow
d691ec6d76 add a chip playground
in debug menu
2022-02-01 18:08:19 -05:00
tildearrow
f29d4bce1b implement 11xx effect on FM platforms
please no ch 3
2022-02-01 15:12:06 -05:00
tildearrow
5f918a7d18 SAA: add envelope macro 2022-02-01 03:44:02 -05:00
tildearrow
4f5d37d415 VGM export: fix Genesis samples wrongly pitched 2022-02-01 03:23:29 -05:00
tildearrow
f75803c3b2 C64: fix filter reset not working well 2022-02-01 03:16:03 -05:00
tildearrow
72c548394f now add noise and/or mask macro for real
upcoming is auto-PWM
2022-01-31 17:45:02 -05:00
tildearrow
e95258ad91 AEGJDSKADFGIOGSHBJSFKAL;FS 2022-01-31 17:28:17 -05:00
tildearrow
d4858f0d40 fqwhjdgl;f'a\?SFG 2022-01-31 17:02:44 -05:00
tildearrow
afe318c402 seemingly fix it 2022-01-31 17:00:52 -05:00
tildearrow
23ff23f7e7 again 2022-01-31 16:40:47 -05:00
tildearrow
9492edcdab prepare to fix AY8930 emulation 2022-01-31 16:33:45 -05:00
tildearrow
de4875676f PCE: fix samples being one octave higher 2022-01-31 02:28:51 -05:00
tildearrow
237ad1f517 SMS: possibly fix noise pitch issue
hoping this causes no regressions. fixes #56
2022-01-30 17:10:15 -05:00
tildearrow
bf9eb8b0a4 fix two possible pitch slide regressions
now let's fix blue crow
2022-01-30 15:55:31 -05:00
tildearrow
822d542350 limit volume macro to system maximum
fixes #71
2022-01-30 12:31:50 -05:00
tildearrow
fbb5455292 add PM/AM depth macro 2022-01-29 04:37:53 -05:00
tildearrow
b6da7871d4 make the flags option actually work 2022-01-29 00:20:27 -05:00
tildearrow
44649e3ce4 update ymfm readme 2022-01-28 22:33:42 -05:00
tildearrow
3b95baa60e Neo Geo: fix an ymfm bug... 2022-01-28 22:28:08 -05:00
tildearrow
bfed0b3209 change setPAL to setFlags 2022-01-28 12:59:53 -05:00
tildearrow
ec66b7a21b add song tuning
soon: system clock settings
2022-01-28 00:55:51 -05:00
tildearrow
b812fc4041 prepare for sample C-4 freq
issue #70
2022-01-27 16:52:06 -05:00
tildearrow
c4163699b6 Arcade: add noise freq macro
issue #16
2022-01-27 15:42:31 -05:00
tildearrow
30b553e87e AY: add envelope and auto-envelope macros 2022-01-27 15:31:48 -05:00
tildearrow
3ed738dd6a Arcade: fix arpeggio macro 2022-01-27 02:35:16 -05:00
tildearrow
3cf71c4ccb Neo Geo: implement FM macros 2022-01-27 02:32:34 -05:00
tildearrow
5eb974456d Arcade: implement FM macros 2022-01-27 02:17:09 -05:00
tildearrow
0e633ea69b GUI: add a debug window 2022-01-27 00:29:16 -05:00
tildearrow
30b012cc5e Game Boy: initialize uninitialized variable 2022-01-26 18:03:25 -05:00
tildearrow
1347d16da4 Genesis: fully implement volume macro 2022-01-26 18:03:08 -05:00
tildearrow
a895cb9c5e NES: fix issue for real 2022-01-26 16:07:55 -05:00
tildearrow
bf19feab89 NES: actually set chip type to 2A07 if PAL
fixes #72
see also #27
2022-01-26 15:55:37 -05:00
tildearrow
f86838df99 no longer shift arpeggio macro by 12 2022-01-26 15:53:52 -05:00
tildearrow
d882fd33f8 GB: lower volume
somehow a fix brought in a bug
2022-01-26 03:00:49 -05:00
tildearrow
8bcab6e139 VGM export: write resets and GD3 tag
may be non-standard compliant (yet)
also it crashes foobar2000 for some reason but this will be fixed
2022-01-25 18:46:27 -05:00
tildearrow
c7ee0ce642 save my register writes 2022-01-25 16:52:55 -05:00
tildearrow
b6c536c907 VGM export: fix PC Engine samples 2022-01-25 02:38:46 -05:00
tildearrow
511b6ba0be VGM export: PCE samples (kinda) 2022-01-24 18:04:09 -05:00
tildearrow
cda191afee VGM export: NES samples 2022-01-24 17:48:58 -05:00
tildearrow
92b5620497 VGM export: fix sample glitch if length&255==0 2022-01-24 17:19:34 -05:00
tildearrow
9d2032d627 VGM export: Arcade sample looping 2022-01-24 17:13:47 -05:00
tildearrow
d945e5299a Merge commit 'bd8c06bbb786df086d478e1574c6fe11ee6651b6' 2022-01-24 15:53:02 -05:00
tildearrow
bd8c06bbb7 prevent crash when playing empty sample
fixes #62
2022-01-24 15:47:39 -05:00
tildearrow
50a0f1f360 VGM export: fix up SegaPCM
turns out it is capable of arbitrary loop position!
2022-01-24 15:23:42 -05:00
tildearrow
fedc045909 add SegaPCM commands
let's hope it works
2022-01-24 13:06:06 -05:00
tildearrow
e221bcb023 VGM export: bake SegaPCM samples
after this, the following has to be done:
- PCM playback
- PCM playback on PCE and NES (let's hope this is possible)
2022-01-24 12:39:05 -05:00
tildearrow
ea796c2d6b VGM export: fix noise in Neo Geo 2022-01-24 02:57:49 -05:00
tildearrow
a3a2e3ff47 add more chips to VGM export
missing:
- Sega PCM
- Neo Geo ADPCM
2022-01-24 02:09:03 -05:00
tildearrow
858d5343b8 earliest VGM export!
only supports single-chip Genesis for now
the other systems will be added shortly
2022-01-24 01:01:08 -05:00
tildearrow
524f8c312e Genesis: implement arp macros 2022-01-23 15:55:12 -05:00
tildearrow
45d9bef2a8 Genesis: restore LFO value when changing order 2022-01-23 15:15:46 -05:00
tildearrow
cd2854d027 it works 2022-01-23 15:12:00 -05:00
tildearrow
b39b1c0a25 Genesis: implement FM macros (partial, untested) 2022-01-23 13:19:19 -05:00
tildearrow
a45c697004 now Neo Geo 2022-01-23 00:57:47 -05:00
tildearrow
f286e65dc1 fix it! 2022-01-22 18:06:18 -05:00
tildearrow
d62b111c78 Genesis: separate channel state from instrument
paves way for FM macros
with this change, extended channel 3 mode breaks! do not use
until I diagnose the problem.
2022-01-22 17:43:57 -05:00
tildearrow
c64c1c1c2d Amiga: tune it a bit 2022-01-22 02:54:46 -05:00
tildearrow
413fbd985a NES: same thing 2022-01-22 02:38:01 -05:00
tildearrow
371c23a7ee Genesis: fix sample desync when muting DAC channel 2022-01-22 02:36:58 -05:00
tildearrow
4cffcc01e5 ffffiiiiixxxx #47 2022-01-21 04:35:25 -05:00
tildearrow
bc32809ecb fix #46 2022-01-21 04:27:00 -05:00
tildearrow
e06911258e TIA: fix mute being ignored at times 2022-01-20 23:14:18 -05:00
tildearrow
ff0e48679b arcade: fix PCM channels not muting when Nuked-OPM 2022-01-20 22:13:56 -05:00
tildearrow
730561d3a3 arcade: add effects to control AMD/PMD 2022-01-20 17:54:11 -05:00
tildearrow
4b43694db0 fix negative notes 2022-01-20 16:56:35 -05:00
tildearrow
05bbfaced2 get rid of a debug message 2022-01-20 16:41:18 -05:00
tildearrow
917c9cf2e3 Genesis: allow sample preview 2022-01-20 16:40:18 -05:00
tildearrow
0b7772e76c PCE: allow sample preview 2022-01-20 16:33:20 -05:00
tildearrow
0f28ae0fee implement Furnace-style PCM on Arcade/Gen/NES/PCE 2022-01-20 16:09:05 -05:00
tildearrow
751f6d025a prepare to add effect descriptions 2022-01-20 13:48:20 -05:00
tildearrow
1ee23ac198 AY8930: fix first channel envelope reset at random 2022-01-20 03:25:57 -05:00
tildearrow
75ce5f4e2a add auto-envelope mode (29xy effect)
this closes #32
2022-01-20 03:23:03 -05:00
tildearrow
4ee17d35cd implement sample loop on the rest of systems 2022-01-20 02:46:28 -05:00
tildearrow
e394b5ca5a C64: solve one ADSR bug
set decay to 0 if sustain is 15
2022-01-19 22:58:37 -05:00
tildearrow
f98662d329 slide accuracy fixes 2022-01-19 01:27:32 -05:00
tildearrow
e87239f8ce fix retrigger implementation
no longer broken
2022-01-19 00:01:34 -05:00
tildearrow
5a7cf57aa2 AY8930: implement noise and/or mask
cannot confirm whether this behavior is accurate to hardware though...
thanks Eulous for details on this!
2022-01-18 18:21:27 -05:00
tildearrow
488bd45907 lower PCE volume a bit
see issue #16
2022-01-18 17:35:41 -05:00
tildearrow
a956f37f1b Genesis/Neo Geo: fix extended channel mode volume 2022-01-18 17:18:07 -05:00
tildearrow
64745648a0 allow negative octaves 2022-01-18 16:55:32 -05:00
tildearrow
05fd372728 AY: fix wave macro and effect 2022-01-18 15:48:40 -05:00
tildearrow
0356cf2c7a TIA: add 10xx effect for selecting shape 2022-01-18 15:12:36 -05:00
tildearrow
345962092e add notifyWaveChange
fixes #8
2022-01-18 00:25:10 -05:00
tildearrow
6d9f5db6a4 add notifyInsChange
see issue #8
2022-01-17 23:59:52 -05:00
tildearrow
7165d39105 Neo Geo/AY: implement 20xx command 2022-01-17 21:14:35 -05:00
tildearrow
d73c0512eb fix Microsoft C compiler build... again 2022-01-17 18:15:47 -05:00
tildearrow
ce027d99f6 force insChanged on note input
partially solves issue #8
2022-01-17 18:01:40 -05:00
tildearrow
f3a61f3222 fix build in old compiler 2022-01-17 17:12:24 -05:00
tildearrow
69be47b419 PCE: no abort 2022-01-17 16:59:34 -05:00
tildearrow
6884494b5c fix issue with volume macro+slide 2022-01-17 16:23:47 -05:00
tildearrow
8b89f1b516 prepare for writing register dumps 2022-01-17 13:29:35 -05:00
tildearrow
12236248dd prepare for eventual export 2022-01-16 23:21:27 -05:00
tildearrow
8c80af4a46 SAA1099: fix octave not being set in last 2 chans 2022-01-16 01:55:54 -05:00
tildearrow
85c7612194 TIA: one more mute refinement 2022-01-16 01:43:55 -05:00
tildearrow
c09ce1892b Amiga: limit sample length 2022-01-15 22:49:53 -05:00
tildearrow
93f82637ad Amiga: respect max period 2022-01-15 22:49:09 -05:00
tildearrow
31f8378cef Amiga: take loop pos into account 2022-01-15 18:03:37 -05:00
tildearrow
755042a8fe Amiga: fix max volume 2022-01-15 17:54:09 -05:00
tildearrow
79b86da98b Amiga: get rid of a debug message 2022-01-15 17:32:39 -05:00
tildearrow
113a1577b6 do the Amiga 2022-01-15 17:28:33 -05:00
tildearrow
a06a82ca89 prepare for amiga system 2022-01-15 15:50:53 -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
3afb0f815d lower the volume of TIA by half 2022-01-14 14:12:49 -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
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
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
9ff852d1db PCE: reduce CPU usage 2022-01-12 22:14:20 -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
5637639950 waveform width/height controls 2022-01-11 03:16:32 -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
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
e961cf79ca NES: add NESAPU struct
to allow multi-chip support
2022-01-08 17:44:17 -05:00
tildearrow
121a9b2cb8 prepare for multiple chip support 2022-01-08 01:57:37 -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
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
772aac5806 fix crash when muting in ext ch mode 2021-12-27 16:47:37 -05:00
tildearrow
65444d4a99 el diego 2 finally plays back correctly
ALMOST
2021-12-27 16:31:16 -05:00
tildearrow
1605f4f3c0 better global pitch effect
still work in progress
2021-12-27 16:15:11 -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
7b360b55a7 PCE: aaand fix another bug 2021-12-21 17:21:27 -05:00
tildearrow
726b457ae7 another uninitialized variable 2021-12-21 16:02:31 -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
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
b3b66ecbdb channel mute/solo! 2021-12-18 03:25:42 -05:00
tildearrow
289dd3e565 arcade: fix crash on high sample 2021-12-17 03:33:26 -05:00
tildearrow
c54df74df1 GUI: rate change and new window title 2021-12-15 17:32:08 -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
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
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
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
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
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
2dcf5f890e PCE: note off disables PCM mode 2021-12-09 02:54:14 -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
9362cfa481 add clock drift for exact tempo 2021-12-08 02:57:41 -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
65ab3a2b5d keyOffAffectsArp is now per-channel 2021-12-08 00:33:00 -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
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
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
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
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
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
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
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
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
09ed99f0b0 genesis extended channel 3 support.
as of today Furnace is able to play most Genesis songs without trouble.
bugs are expected, and fixes will arrive.

are you ready?
2021-05-18 16:02:49 -05:00
tildearrow
c766f98719 implement arp speed and arp tick 2021-05-18 02:53:59 -05:00
tildearrow
c0f7f12c89 misc fixes and new effects
- fix 8-bit samples
- 0C effect
- E3 effect
2021-05-18 02:29:17 -05:00
tildearrow
b2908413fe FM: better pitch slide accuracy
so... it appears that pitch slides in Genesis system aren't truly linear
instead, they are "kind of linear". the frequency isn't linear, and when
it overflows the range of an octave, the high bit changes and the
frequency is shifted right
2021-05-18 01:20:38 -05:00
tildearrow
b34321b556 fix a tiny TL misbehavior 2021-05-18 00:43:00 -05:00
tildearrow
cf7aa9139c TL change on out op fix 2021-05-17 16:32:56 -05:00
tildearrow
98180c3d23 now fix the volume slides in FM as well 2021-05-17 15:51:12 -05:00
tildearrow
ceda9a8058 the final volume fix i think
all 5 test cases pass
2021-05-17 15:36:14 -05:00
tildearrow
9736b77401 better volume slide accuracy
volume slide seems to be kind of quirky:
- sliding all the way down and then up suddenly sets the vol to max
- apparently there is an overflow and the slide stops when it reaches
  its boundaries (instead of continuing)
2021-05-17 15:06:11 -05:00
tildearrow
67847d79cf attempt to fix the volume slide mess
also a fix to noise arps in basic mode in SMS

the volume slides will be an adventure as the behavior seems to be hard
to determine
2021-05-17 03:06:45 -05:00
tildearrow
53975349e5 more. SMS. fixes. 2021-05-17 01:51:14 -05:00
tildearrow
0caaa1629c are you kidding me? 2021-05-17 00:36:09 -05:00
tildearrow
bbd175e8f6 a 2021-05-16 20:49:56 -05:00
tildearrow
3a1019a08c more fixes and tweaks
memory management party
2021-05-16 20:49:54 -05:00
tildearrow
fbc29e1106 A#7 SMS oddity 2021-05-16 20:10:52 -05:00
tildearrow
2532401265 prepare for ch3 mode 2021-05-16 17:43:10 -05:00
tildearrow
5a8e20fcd1 arp fixed mode 2021-05-16 12:47:05 -05:00
tildearrow
dbc2e6285f a lot of work
- round to nearest instead of round to zero in SMS period calc
- implement arpeggio
- implement arp macro (kinda)
- polish the SMS platform
- correct the DIV_CMD_PITCH range to 1 semitone
- fix PSG volume in Genesis
- use a better register write strat in Genesis
- fix a bug caused by legacy code
- implement ECxx command
- implement EDxx command
- implement SN noise mode command
- vibrato table is now 64 positions long (instead of 60)
2021-05-16 03:03:23 -05:00
tildearrow
f2c70df4a8 bind SMS platform to Genesis one 2021-05-15 16:59:57 -05:00
tildearrow
3172fd37ed more SMS work
it is able to play some modules... the next step is to bind this to the
Genesis platform
2021-05-15 16:42:48 -05:00
tildearrow
d9f076ef64 prepare to add SMS platform
plays but no macro yet
2021-05-15 14:18:16 -05:00
tildearrow
9a97c38cc6 implement more effects and bugfixes
enough to play time trax intro near flawless
2021-05-15 03:13:21 -05:00
tildearrow
eb692ca9a9 implement several effects
volume slides, vibrato, slides and portamento
2021-05-14 14:16:48 -05:00
tildearrow
775b88dae2 more playback work 2021-05-14 03:23:40 -05:00
tildearrow
5b002ca1d5 add SN chip ported from MAME 2021-05-14 03:23:12 -05:00
tildearrow
d57a30e717 optimize by 0% 2021-05-13 13:22:44 -05:00
tildearrow
c5fa0a3d6d it doesn't... 2021-05-13 03:18:54 -05:00
tildearrow
cb1c96ff1d add a register write cache
improves quality and... wait!
2021-05-13 03:09:56 -05:00
tildearrow
45a6d70479 massive improvements to genesis playback 2021-05-13 02:39:26 -05:00
tildearrow
ea5c28829e or 2021-05-12 19:18:48 -05:00
tildearrow
062a9837c0 G E N E S I S
without SN
2021-05-12 17:19:18 -05:00
tildearrow
a68f8d0dec add some basic playback code!
here it begins
2021-05-12 05:22:01 -05:00
tildearrow
f810fc0c3c earliest playback
no sound, just terminal output
2021-05-12 03:58:55 -05:00
tildearrow
783d56c72a initial commit
took me a day to make the base...
...and ~12 hours to write a reader that reads 100% of all demo songs in
1.0
2021-05-11 15:08:08 -05:00