Commit graph

499 commits

Author SHA1 Message Date
cam900
32152fd89b Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace: (53 commits)
  prepare for better backward writing
  VGM export: fix oops
  GUI: drag-and-drop ins/wave/sample loading
  GUI: add "set loop" to sample editor
  MSM6295: VGM export!
  oops
  MSM6295: add rate select effect (20xx)
  update meteor shower
  MSVC is better than GCC right?
  update to-do list
  door into summer
  GUI: implement input for touch events
  GUI: update SDL hints
  fix Termux build
  add another demo song
  add demos/ecolove.fur
  update to-do list
  update demos/README.md
  add new demo songs
  dev99 - major Fractal system change
  ...

# Conflicts:
#	src/engine/dispatch.h
#	src/engine/platform/genesis.cpp
#	src/engine/playback.cpp
#	src/engine/song.h
#	src/engine/vgmOps.cpp
2022-05-29 13:47:39 +09:00
tildearrow
0b7d27dc29 YM2612: add reverse sample playback 2022-05-27 02:47:44 -05:00
cam900
cbf20c6320 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace: (58 commits)
  SMS: early Nuked-PSG modding
  SMS: add modified Nuked-PSG core
  build release and don't strip
  strip MinGW builds
  FDS: a bit more
  FDS: set a post-amp value
  FDS: fix NSFplay core low pass filter precision
  fix .dmf saving
  fix compilation on GCC 12
  Fix multithreading on CI
  Lynx: why did I not commit this
  Lynx: more sample improvements
  Lynx: sample improvements
  Lynx: add sample support!
  GUI: fix wavetable list oversight
  WaveSynth: fix phase modulation - again
  GUI: fix possible wave editor crash
  WaveSynth: fix phase modulation
  Lynx: add phase reset macro
  fix another fucking IGFD crash bug
  ...

# Conflicts:
#	src/gui/insEdit.cpp
#	src/gui/presets.cpp
2022-05-27 13:01:06 +09:00
cam900
17881837ab Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace: (64 commits)
  finish wave synth!
  update contributing guidelines
  Namco WSG: make non-linear slides faster
  wave synth work
  SoundUnit: fix order of filter bits
  GUI: add Namco arcade presets
  implement some dual wave synth effects
  Y8950: fix ADPCM VGM export
  Namco WSG: finish it up
  Namco WSG: 8 channel WSG (CUS30) now works
  Namco WSG: muting
  Namco WSG: 8 channel WSG (15xx) now works
  Namco WSG: 3 channel WSG now works
  YM2612: change key on/off strategy
  GUI: fix scrollbars not working
  Please enter the commit message for your changes.
  shhhhhhhhhhhh
  update to-do list
  Whoops
  it doesn't work (yet)
  ...

# Conflicts:
#	src/engine/dispatch.h
#	src/engine/platform/su.cpp
#	src/engine/playback.cpp
#	src/engine/sample.cpp
#	src/engine/sample.h
#	src/engine/song.h
#	src/engine/vgmOps.cpp
#	src/gui/presets.cpp
2022-05-25 00:52:00 +09:00
tildearrow
3aa8ea3625 fix Cxxx/F0xx being delayed in low-latency mode 2022-05-22 22:36:48 -05:00
tildearrow
e17c99dcdf allow building Furnace without SDL2 and libsndfile
for eventual libfurnace
2022-05-22 19:01:50 -05:00
tildearrow
6ec8674072 SoundUnit: many fixes. implement effects 2022-05-19 04:36:26 -05:00
tildearrow
cfa05143ab dev96 - add virtual tempo 2022-05-18 00:05:25 -05:00
cam900
028adf2c8e Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace: (70 commits)
  whoops
  GUI: AY8930 credits
  GUI: fix inability to close subsongs
  BANK
  OPN: wire up ExtCh system
  fix build failure
  dev95 - multiple songs in a single file (READ)
  DO NOT USE - THIS FAILS - WORK IN PROGRESS
  enforce asset limits
  old .dmf loading improvements
  add AICA and YMZ ADPCM formats
  allocate ID for YMZ280B
  harden .fur file saver
  Fix AY VGM output, Fix presets
  preparations for UI improvements
  GUI: add more presets
  prepare for ExtCh OPN/OPNA
  GUI: clarify that lock layout doesn't work yet
  GUI: remember last state of order edit mode
  GUI: store edit/followOrders/followPattern state
  ...

# Conflicts:
#	src/engine/fileOps.cpp
#	src/engine/platform/ym2610.cpp
#	src/engine/platform/ym2610b.cpp
#	src/engine/sample.cpp
#	src/engine/sample.h
#	src/engine/sysDef.cpp
#	src/gui/doAction.cpp
#	src/gui/sysConf.cpp
2022-05-18 03:09:55 +09:00
tildearrow
c5786b61fb dev95 - multiple songs in a single file (READ)
experimental feature! proceed with caution.
if you experience song corruption or crashes, report issue immediately!

files with multiple songs will be readable in older versions of Furnace,
but only the first song will be read in those versions.

issue #199
2022-05-15 01:42:49 -05:00
tildearrow
431b6b5957 fix 09xx, 0Bxx, 0Dxx and 0Fxx being ignored on ED 2022-05-11 02:42:05 -05:00
cam900
54e78699a7 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace:
  dev94 - add a full linear pitch mode, part 1
  YM2610(B): use f-num/block baseFreq calculation
  GUI: remove insLoadAlwaysReplace setting
  GUI: right click menu for open instrument
  GUI: add a threshold for macro right click
  OPZ: remove debug printf
  GUI: add macro right click menu
  GUI: prepare for macro right click menu
  update gitignore
  add something
  prepare for something
  did i fix macOS build?
  GUI: macro edit improvements
2022-05-11 00:55:03 +09:00
tildearrow
8784fe5664 dev94 - add a full linear pitch mode, part 1 2022-05-10 03:51:18 -05:00
cam900
0ab1f69c7c Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace:
  fix sample saving
  add extra FM effects to effect post handler
  dev91 - it's a breaking change
  aaaaaa
  AY8930: Fix tone and noise period in expanded mode.
  OPL: fix possible crash
2022-05-04 10:31:15 +09:00
cam900
4595e18aea Oops 2022-05-04 10:28:30 +09:00
tildearrow
30e60f643c add extra FM effects to effect post handler
see #38
the last thing left to do is to put these effects on the dispatch code
2022-05-03 17:37:17 -05:00
cam900
4021abe495 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace:
  YM2610: optimize oscilloscope fetch CPU usage
  GUI: add audio load meter to statistics
  GUI: put "OK" and "Cancel" buttons in the bottom
  better FM chip names
  sysDef refactor, part 3 - PLEASE READ
  NO
  Reduce unnecessary line
  Debug improvements
  AY8930: Fix VGM output.

# Conflicts:
#	.gitignore
#	src/engine/playback.cpp
#	src/gui/debugWindow.cpp
2022-05-04 03:32:26 +09:00
tildearrow
b8a2c90b61 GUI: add audio load meter to statistics 2022-05-03 02:29:12 -05:00
tildearrow
e40e7c0fef sysDef refactor, part 3 - PLEASE READ
to cam900 and grauw: I have moved the per-system effect processing code
to sysDef.cpp as lambdas
you may want to do the same when you pull this commit.
2022-05-03 01:23:38 -05:00
cam900
e136db6d7a Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace: (26 commits)
  prepare for #38
  NES: DPCM work!
  fix bug caused by new renderSamples approach
  NES: prepare for DPCM
  OPZ: more fixed frequency mode fixes
  OPZ: possibly fix fixed freq emulation
  OPZ: fix muting
  OPL: fix panning
  damn it
  per-channel oscilloscope, part 10
  NES: NSFPlay per-channel osc
  NES: NSFPlay muting
  NES: now fix tri_mute
  NES: finally
  fix typo in playback engine
  NES: wire up NSFplay
  now fix it damn it
  now move these files
  add readme
  convertir de Shift-JIS a UTF-8
  ...

# Conflicts:
#	src/engine/engine.cpp
#	src/engine/engine.h
#	src/engine/platform/nes.cpp
#	src/engine/vgmOps.cpp
#	src/gui/stats.cpp
2022-05-03 11:07:50 +09:00
tildearrow
66f6ab4307 prepare for #38 2022-05-02 03:52:45 -05:00
tildearrow
dbe9bf25e7 fix bug caused by new renderSamples approach
when doing switchMaster
2022-05-02 02:54:23 -05:00
tildearrow
9479a8aa0f fix typo in playback engine
possible memory leak
2022-05-01 23:29:00 -05:00
cam900
5414213710 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace:
  maybe uninitialized
  GUI: prepare for a per-channel oscilloscope?
  GUI: add backdrop if system file picker is open
  GUI: add ability to customize startup system
  GUI: finally implement "don't scroll when moving c ursor" setting
  new panning effects (80/81/82)
  GUI: fix sample paste crash
  GUI: implement sample scroll with mouse wheel
  sysDef oopsie

# Conflicts:
#	src/gui/guiConst.cpp
2022-05-01 00:25:21 +09:00
tildearrow
2e8634626d new panning effects (80/81/82) 2022-04-29 23:41:14 -05:00
cam900
72e8bb89a7 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace:
  GUI: sample/macro zoom with ctrl-wheel
  GUI: prevent division by zero
  GUI: possibly fix an instrument saving issue
  GUI: add chip randomizer button
  update to-do list
  oops
  NES: add DMC write effect
  SoundUnit: implement panning
  QSound: implement panning macro - PLEASE READ
  further improve channel allocation
  update format.md for eventual ExtCh extra systems
  improvements to swap/stomp channel

# Conflicts:
#	src/gui/insEdit.cpp
2022-04-30 02:32:55 +09:00
tildearrow
8500fa4c4c NES: add DMC write effect 2022-04-29 00:18:51 -05:00
tildearrow
5567746e0b QSound: implement panning macro - PLEASE READ
the panning strategy for QSound has changed!
it's now 08xy where x is left and y is right (muting is not possible though!)
this makes it consistent with other chips, plus QSound's pan range was
32 anyway

in order to toggle the QSound effect use effect 12xx
2022-04-28 23:58:11 -05:00
cam900
3956b2cd30 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace:
  dev90 - linear pitch macro option
  dev89 - C64: add test/gate macro
  YMU759: update system definition
  more changes to autoNoteOn
  SoundUnit: ring modulation
  GUI: improve the maximize auto-detection a bit
  GUI: possibly remember maximized state
  NES: fix audio resolution being too low
  update to-do list
  SoundUnit: more stuff
  SoundUnit: max cutoff 16383
  effectRows -> effectCols
  GUI: rename Amiga/Sample to Sample
  This is not a sample properties table
  Define the compact wave editor
  Menu option, settings file

# Conflicts:
#	src/gui/insEdit.cpp
2022-04-28 16:05:01 +09:00
tildearrow
3306e853d1 effectRows -> effectCols
i don't know why did I call it "rows"
2022-04-27 17:53:55 -05:00
cam900
0209ebda03 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace:
  sysDef refactor, part 2
  sysDef refactor, part 1 - PLEASE READ NOTE
  prepare for macroInt preview in instrument editor
  GUI: fix #400
  fix metronome in low-latency mode

# Conflicts:
#	src/engine/dispatch.h
#	src/engine/dispatchContainer.cpp
#	src/engine/instrument.h
#	src/engine/song.h
#	src/engine/sysDef.cpp
#	src/gui/dataList.cpp
#	src/gui/gui.h
#	src/gui/guiConst.cpp
2022-04-27 19:52:04 +09:00
cam900
482dbf8dd5 Checkpoint
Addressing reviews, Fix GCC/Clang builds, Core updates
2022-04-27 14:29:53 +09:00
tildearrow
28af57c4f0 fix metronome in low-latency mode 2022-04-26 00:22:49 -05:00
cam900
49a41ff862 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace: (77 commits)
  GUI: use pattern font for input latch
  GUI: partially implement note input latch UI
  GUI: transpose value does not transpose effect ID
  GUI: prepare for note input latch UI
  GUI: min ins selector width fix
  GUI: separate operation masks
  GUI: add missing FDS preset
  GUI: prepare for separate operation mask
  GUI: "none" instrument should not remove inscolumn
  GUI: fix ins 0 being inserted on blank song
  GUI: add a "none" option to instrument list
  update to-do list
  GUI: add "absorb" instrument input mode
  use good default instrument when adding ins
  better default instrument for OPL/OPLL
  GUI: fix selection being visible in dummy row area
  Further fix looped sample preview
  GUI: fix about screen in power saving mode
  VRC6: saw volume 63
  GUI: add an effect list window
  ...

# Conflicts:
#	src/engine/platform/amiga.cpp
#	src/engine/vgmOps.cpp
#	src/gui/dataList.cpp
#	src/gui/guiConst.cpp
#	src/gui/insEdit.cpp
#	src/gui/sampleEdit.cpp
2022-04-26 12:04:23 +09:00
cam900
29ea6dc360 Partially ES5506 support (not working yet!)
Add sample related enums
Add support for backward/pingpong loop, loop end position
Structize Notemap in sample instrument
2022-04-21 01:52:37 +09:00
tildearrow
6b294933bc VGM export: fix it under low-latency mode 2022-04-15 22:27:44 -05:00
tildearrow
b48a2368be more low-latency mode work
playSub() runs at normal tick rate
2022-04-15 22:22:47 -05:00
tildearrow
98b9bd32b9 static_assert() on cmdName 2022-04-15 16:10:57 -05:00
tildearrow
fd3d57b1cb even more improvements to low-latency mode 2022-04-15 15:01:11 -05:00
tildearrow
45460df96d improve low-latency mode strategy 2022-04-15 14:38:25 -05:00
tildearrow
96715ed88c add experimental low-latency mode
do not use (yet)!
2022-04-15 05:37:23 -05:00
tildearrow
2e2fafd878 GUI: add metronome volume setting 2022-04-13 02:29:07 -05:00
tildearrow
fbf7f9304e dev83 - yet another E1xy/E2xy fix
and 17xx fix in ExtCh
2022-04-13 00:34:00 -05:00
tildearrow
fddd05dc1a improve logging facility
we have a log viewer within the program now
2022-04-10 22:12:02 -05:00
tildearrow
f42855f170 add 30xx effect to hard reset envelope
currently only for 2612!
2022-04-10 02:11:36 -05:00
tildearrow
38ca437190 DC offset improvements 2022-04-09 18:25:25 -05:00
tildearrow
46bf69769b
Merge pull request #331 from OPNA2608/msvc/sane_warning_level
Resolve/Mute MSVC warnings, enable WAE for MSVC
2022-04-09 15:26:58 -05:00
OPNA2608
b6fb3820da Remove unneeded includes
Some are harmless, some screw with SDL's standard includes due to preceeding `_USE_MATH_DEFINES`.
2022-04-09 21:10:15 +02:00
tildearrow
785ac8d1a7 small oscBuf fix 2022-04-09 02:45:06 -05:00
tildearrow
7bf2a3ea1a GUI: prepare for oscilloscope improvements 2022-04-09 02:42:58 -05:00
tildearrow
320250b831 MIDI out improvements 2022-04-09 01:50:44 -05:00
tildearrow
dd6229a6b9 OPZ: more work 2022-04-07 01:44:27 -05:00
tildearrow
9345576fc3 MMC5: fix 12xx not working 2022-04-06 22:55:24 -05:00
tildearrow
ac3772c024 initial FDS bring-up 2022-04-03 22:37:16 -05:00
tildearrow
13d08b3cb6 maybe fix another audio export crash 2022-04-01 16:31:06 -05:00
tildearrow
ffb01dd19c Revert "release 0.6pre0"
This reverts commit f7566455c2.
2022-04-01 05:20:00 -05:00
tildearrow
f7566455c2 release 0.6pre0 2022-04-01 04:45:06 -05:00
tildearrow
4b436ef1fc and more MIDI input refinements 2022-04-01 02:21:10 -05:00
tildearrow
6d1d91ca68 AY8930: add TEST register effect 2022-03-31 17:14:45 -05:00
tildearrow
f689409f02 kind of MIDI output 2022-03-31 03:33:05 -05:00
tildearrow
45ce940d66 better MIDI and note input handling
closes #147
2022-03-31 01:51:57 -05:00
tildearrow
7e34c7746e change the porta logic a bit 2022-03-30 00:08:04 -05:00
tildearrow
964039c8db fix file export crash
closes #323
2022-03-29 00:25:28 -05:00
tildearrow
4825fe7adb more work 2022-03-28 18:19:47 -05:00
tildearrow
08910d37b2 oh yes more MIDI work 2022-03-28 15:24:09 -05:00
tildearrow
5360cd73f4 earliest MIDI input! (no note input tho) 2022-03-28 03:46:50 -05:00
tildearrow
4422ff7695 Merge branch 'vrc6' of https://github.com/cam900/furnace into cam900-vrc6 2022-03-27 22:16:04 -05:00
tildearrow
c4fc797578
Merge #304 - DO NOT COMPILE
Add Namco 163 Support
Not final - changes needed
2022-03-27 21:35:58 -05:00
cam900
ef104ce0b0 Add VRC6 support
2 Pulse channels:
- 8 level pulse duty cycle, DAC mode(just ignores duty cycle)/pulse wave mode, 4 bit volume.
- Furnace support PCM playback in pulse channels with duty cycle ignore mode.

Sawtooth:
- nothing but 6 bit volume (8 bit accumulator in technically) and 12 bit frequency (periodic).

VRC6 instrument:
- 6 bit Volume macro for finer sawtooth volume handling, also 3 bit Duty cycle macro for pulse channels.

Duty, PCM mode command and Duty macro affects for pulse channel only.
2022-03-28 01:06:56 +09:00
tildearrow
08dd693fa0 Amiga: add AM/PM effects 2022-03-27 00:02:17 -05:00
tildearrow
154ef3f9a3 Amiga: filter emulation 2022-03-26 23:39:20 -05:00
tildearrow
9b6e582f8d dev72 - two more compat flags 2022-03-26 22:15:15 -05:00
tildearrow
5c11150b87 T O D O 2022-03-26 21:43:15 -05:00
tildearrow
73536c0691 AY: add effects to write to I/O ports 2022-03-26 20:55:43 -05:00
tildearrow
0687a6f217 this stupid effect 2022-03-25 03:18:44 -05:00
tildearrow
7f39ec723a SMS: overdrive 2 fixes
nice
2022-03-24 01:27:53 -05:00
tildearrow
bd36a4ffdc dev71 - more compatibility flags for .mod 2022-03-23 23:57:10 -05:00
cam900
39654bfa86 Merge branch 'master' of https://github.com/tildearrow/furnace into n163 2022-03-24 13:11:22 +09:00
tildearrow
47d7722f6e add a new log level (trace) 2022-03-23 22:05:09 -05:00
tildearrow
711b60d454 improved mutex locking - less xruns when seeking
especially in JACK and macOS
2022-03-23 21:38:28 -05:00
cam900
e8d567d3df Merge branch 'master' of https://github.com/tildearrow/furnace into n163 2022-03-24 03:22:33 +09:00
tildearrow
ac79e7d6af add broken speed alternation flag - dev70 2022-03-23 01:35:57 -05:00
cam900
73267444fc
Merge branch 'master' into n163 2022-03-23 03:26:09 +09:00
cam900
2eaa6ed0ce Merge branch 'master' of https://github.com/tildearrow/furnace into n163
# Conflicts:
#	CMakeLists.txt
#	papers/doc/7-systems/README.md
#	src/engine/dispatchContainer.cpp
#	src/gui/gui.cpp
#	src/gui/insEdit.cpp
2022-03-23 02:44:13 +09:00
cam900
5fdce33b11 Add Namco 163 Support 2022-03-23 01:48:45 +09:00
Natt Akuma
feb138cefc Add VIC-20 support 2022-03-22 14:48:48 +07:00
Natt Akuma
47c5c34e1c Add PET support 2022-03-21 21:02:51 +07:00
tildearrow
b04e1f2870 GUI: implement sample draw 2022-03-20 18:25:48 -05:00
tildearrow
6c5e6c2a0f
Merge pull request #294 from cam900/bubsys
Reduce naming confusion in Bubble System Wavetable Sound
2022-03-17 22:03:24 -05:00
tildearrow
d63f3d311b fix arpeggio not resetting note to base on 0000 2022-03-17 16:37:49 -05:00
cam900
234c5e9295 Reduce naming confusion in Bubble System Wavetable Sound
It means Custom wavetable sound generator logic on Bubble System.
It's wavetable select and volume is controlled by single AY-3-8910 IO for both channels, Another AY-3-8910 IO is used for reading sound status.

Schematics: http://pdf.textfiles.com/manuals/ARCADE/K-R/Nemesis%20[Schematics]%20[English].pdf (Nemesis, derivative of Bubble system)
2022-03-17 10:11:48 +09:00
tildearrow
cbd5414eee increase playback tempo precision
thanks akumanatt
2022-03-16 02:35:33 -05:00
tildearrow
592cbb56aa OPL: implement effects 2022-03-16 01:53:46 -05:00
tildearrow
02e9edbad9 unlock the power of DECIMAL HZ! 2022-03-15 23:30:15 -05:00
Natt Akuma
54da047b5a Apply requested changes
- Use sample->init() instead
- Implement set Hz by tempo effect and move from C4xx to F0xx
- Add "SAMPLE_POS" to cmdName
2022-03-15 03:59:42 +07:00
Natt Akuma
91e856c61e Merge branch 'master' of https://github.com/tildearrow/furnace into mod-import 2022-03-15 03:08:37 +07:00
Natt Akuma
c7fb5df206 Merge branch 'master' of https://github.com/tildearrow/furnace into mod-import 2022-03-14 21:57:54 +07:00
Natt Akuma
87f225074c .mod import 2022-03-14 21:50:52 +07:00
cam900
2c6267bd6b Merge branch 'master' of https://github.com/tildearrow/furnace into scc 2022-03-14 19:22:31 +09:00
cam900
69aeb7dd58 Add Bubble System Support
Bubble System 2 channel Wavetable sound generator logic is configuration with K005289, 4 bit PROM and DAC.
K005289 controls pitch and 5 bit address generator per channel, Waveform select and Volume control is tied to AY-3-8910 ports. (each port for per channels)
these configuration is better known as K005289, the part of logic.
furnace emulates this configurations as single system, waveform format is 15 level and 32 width.
2022-03-14 19:22:12 +09:00
tildearrow
e009fc64f2 allow instrument change during slides 2022-03-14 01:23:31 -05:00
tildearrow
cf07e1861e add "auto-insert one tick gap" option 2022-03-11 23:01:18 -05:00
tildearrow
2103f249fb C64: fix note/env release cutting note 2022-03-11 22:33:22 -05:00
tildearrow
c6fda7a156 Merge branch 'x1_010' of https://github.com/cam900/furnace into cam900-x1_010 2022-03-10 18:24:52 -05:00
Natt Akuma
43cfb09acf Merge branch 'master' of https://github.com/tildearrow/furnace into x16 2022-03-08 17:53:00 +07:00
cam900
2e6cc9fc7c Merge branch 'master' of https://github.com/tildearrow/furnace into x1_010
# Conflicts:
#	CMakeLists.txt
#	papers/doc/7-systems/README.md
#	src/engine/dispatch.h
#	src/engine/dispatchContainer.cpp
#	src/engine/playback.cpp
#	src/engine/sysDef.cpp
#	src/gui/gui.cpp
2022-03-08 13:38:24 +09:00
cam900
65149a466f Fix accidently auto-generated spaces 2022-03-08 00:15:21 +09:00
Natt Akuma
3b88786ffb Merge branch 'master' of https://github.com/tildearrow/furnace into x16 2022-03-07 16:46:32 +07:00
Natt Akuma
840a6fa306 Add WonderSwan support 2022-03-07 15:44:59 +07:00
cam900
bc26fbaa3d
Add cmdName for X1-010 commands 2022-03-07 13:34:13 +09:00
cam900
13e586fab2 Merge branch 'master' of https://github.com/tildearrow/furnace into x1_010 2022-03-07 13:05:05 +09:00
tildearrow
177c409e19 add more notes when working with new systems 2022-03-06 22:36:32 -05:00
cam900
6c897722db Compile fix Take 3 2022-03-07 04:03:45 +09:00
cam900
d0c32a56be Fix panning 2022-03-07 03:06:01 +09:00
cam900
4a83c7c5a7 Add Seta/Allumer X1-010 Support
its 16 channel wavetable/PCM chip, with (optional) stereo support.
Its also has envelope, this feature has similar as AY PSG's one but its shape is also stored at RAM, and each nibble in envelope data is for each output: so i decided to added some feature for more stereo-ish envelope.
Split: Envelope shape will be splitted to Left and Right half for each output.
HInv, Vinv: Envelope shape will be Horizontally/Vertically mirrored the left one.

Max sample length is sample bank size of Seta 2 arcade hardware (currently not emulated yet, nor it doesn't support on VGM).

Chip id is temporary, it can be changed with to suggestions.
2022-03-07 02:31:03 +09:00
tildearrow
6ce2a6743c lynx: fix 3xxx effect not working 2022-03-05 04:59:05 -05:00
Natt Akuma
9abf872ff3 Add VERA support for Commander X16 2022-03-04 18:20:38 +07:00
tildearrow
8e5b3abab8 add two more compatibility flags
issue #167 and #249:
- stop porta on note off
- continuous vibrato
2022-03-03 23:14:38 -05:00
tildearrow
742e813e98 E1xx and E2xx should not stop when Key OFF comes
in

indeed
2022-03-03 23:05:07 -05:00
tildearrow
acc9b0aa57
Merge pull request #225 from cam900/ym2610b
Prepare to experimental support YM2610B and with Extended channel 3 mode, Some additions
2022-03-01 23:21:46 -05:00
tildearrow
ceb1cd0181 OPLL: more drum fixes! 2022-03-01 22:10:03 -05:00
cam900
1631af8f8e Merge branch 'master' of https://github.com/tildearrow/furnace into ym2610b 2022-03-02 01:18:36 +09:00
tildearrow
68db27bdb8 VRC7 as well 2022-02-28 04:59:25 -05:00
tildearrow
98c04e4dfd OPLL: actually care about effects 2022-02-28 04:58:44 -05:00
cam900
cd4c876c5e Merge branch 'master' of https://github.com/tildearrow/furnace into ym2610b
# Conflicts:
#	src/engine/engine.cpp
#	src/engine/playback.cpp
2022-02-25 23:47:28 +09:00
tildearrow
bd96bf484b fix 8-bit samples not loading correctly 2022-02-25 00:31:09 -05:00
tildearrow
35e459d9e5 Neo Geo: implement ADPCM-B 2022-02-25 00:11:27 -05:00
cam900
d831a522a4 Merge branch 'master' of https://github.com/tildearrow/furnace into ym2610b
# Conflicts:
#	src/engine/engine.cpp
#	src/engine/platform/ym2610Interface.cpp
2022-02-25 12:20:00 +09:00
tildearrow
4b6d9adcb9 volume changes
as of now the master volume is 1.0x (it was 2.0x before)
NES has also been amplified.
these changes should not affect older songs.
2022-02-24 17:56:19 -05:00
cam900
1e2d5694b9 Prepare to support YM2610B and with Extended channel 3 mode
Allow 8 bit volume for YM2610 ADPCM-B
Remove sample mode macro in YM2610, it's always enabled and seperated channels.

TODO: ADPCM-B is still not implemented, FM Channel 2 is silenced in extended channel 3 configuration
2022-02-25 01:02:35 +09:00
tildearrow
1e98f0c4a1 sample system rewrite! **PLEASE READ**
this commit mostly rewrites the sample system.
as of now samples can be ADPCM, 8-bit, BRR or 16-bit
or something...

consider this VERY EXPERIMENTAL.
if you find any issues REPORT THEM immediately.

it's nearly 4am...
2022-02-24 03:57:45 -05:00
tildearrow
e4b9a6d1d9 compound system flattening, part 1
as of now compound systems (Genesis and Arcade) are translated to
separate chips.

this improves audio quality and makes things easier.

it also allows you to change the volume of each chip on a Genesis.

also adds SegaPCM system with 16 channels!
2022-02-23 02:52:30 -05:00
tildearrow
a5561f1899 tabs to spaces 2022-02-22 22:13:17 -05:00
tildearrow
e6ee28ce0d Merge branch 'cps2' of https://github.com/superctr/furnace into superctr-cps2 2022-02-22 18:21:57 -05:00
tildearrow
278536489f lynx micro-fix 2022-02-22 17:40:29 -05:00
Ian Karlsson
e32ef2d881 Add 3xxx effect to set echo delay buffer length. Add documentation 2022-02-22 21:16:46 +01:00
Ian Karlsson
b3908216f8 Implement QSound support 2022-02-22 11:36:12 +01:00
Waldemar Pawlaszek
6e79e84e53 Added panning and load LFSR commands. 2022-02-21 19:59:09 +01:00
tildearrow
339959fc23 :< 2022-02-18 02:21:01 -05:00
tildearrow
ce2af4303e yay for more compatibility flags
ignore duplicate slides on .dmf
2022-02-18 02:03:31 -05:00
tildearrow
86e5b77981 fix E000 being treated too literally 2022-02-18 01:53:46 -05:00
tildearrow
fbed03dd0c fix E1xy/E2xy behaving wrong with arps 2022-02-18 01:27:26 -05:00
tildearrow
79fe54d4b6 fix some glitches 2022-02-17 03:20:08 -05:00
tildearrow
bacf57bb65 add stop song effect! finally! 2022-02-17 03:15:51 -05:00
tildearrow
810ee33d11 GUI: prepare for drawing prev/next pat content 2022-02-16 16:11:15 -05:00
tildearrow
b9832abbeb license clarification, part 3 2022-02-14 22:12:20 -05:00
tildearrow
6dfd1e4d17 don't tick metronome if step playing/freelance
issue #162
2022-02-12 23:15:06 -05:00
tildearrow
d1e166a34e add a little visual to channel names 2022-02-10 03:15:39 -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
70a993aacb treat slide up as well 2022-02-08 23:01:39 -05:00
tildearrow
5b7240bb4f and fix it again 2022-02-08 22:49:52 -05:00
tildearrow
4756599df0 fix timer ticking during row play 2022-02-08 17:43:26 -05:00
tildearrow
a64f8f7a29 implement target resets slides flag 2022-02-08 17:24:24 -05:00
tildearrow
e0b0da2072 implement note off resets slides flag 2022-02-08 17:17:01 -05:00
tildearrow
43c9c58034 implement legacy volume slides flag 2022-02-08 17:05:18 -05:00
tildearrow
6fb5ca0f78 implement compatible arpeggio flag 2022-02-08 16:48:19 -05:00
tildearrow
dea79c2adb inhibit note on if user has edited pattern
issue #82
untested
2022-02-08 13:31:57 -05:00
tildearrow
4ce116ca0a prepare for macro release points
issue #142
2022-02-08 03:50:42 -05:00
tildearrow
632f17862e better blip_buf excess strategy
fixes #133
2022-02-07 21:31:58 -05:00
tildearrow
e25f5b229c fix arpeggio not happening during slide on SMS 2022-02-07 00:30:15 -05:00
tildearrow
8772439d3e add ability to play by one row 2022-02-06 00:42:07 -05:00
tildearrow
6000d702aa fix urgent bug regarding note slides 2022-02-05 16:33:06 -05:00
tildearrow
a93a9c19f3 add "force mono audio" option and fix flags not be
ing set after a dispatch reset
2022-02-04 17:04:36 -05:00
tildearrow
b57e85134e prepare for end of song effect 2022-02-04 14:43:57 -05:00
tildearrow
584b8426ff GUI: improve debug menu 2022-02-03 18:38:57 -05:00
tildearrow
c8f57afda4 consider loop in sample preview
fixes #120
2022-02-03 16:52:27 -05:00
tildearrow
5086bc1097 implement the linear pitch flag 2022-02-03 02:24:11 -05:00
tildearrow
d638af2017 fix E1xx and E2xx effects 2022-02-03 01:30:03 -05:00
tildearrow
2a15673610 implement loop modality and pitch control flags
issue #113
2022-02-03 00:52:50 -05:00
tildearrow
f03ed7c833 NES: add hardware sweep effect 2022-02-01 18:28:48 -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
ec66b7a21b add song tuning
soon: system clock settings
2022-01-28 00:55:51 -05:00
tildearrow
0071894471 GUI: add a preliminary oscilloscope 2022-01-27 17:49:00 -05:00
tildearrow
8edcbc8d39 fix 0Bxx and 0Dxx commands
now wiz lab and sixeight-v2 play correctly
TODO: fix walkSong
2022-01-27 00:29:37 -05:00
tildearrow
35ee06d6cf fix ECxx effect
fixes #57
2022-01-23 22:00:46 -05:00
tildearrow
bc32809ecb fix #46 2022-01-21 04:27:00 -05:00
tildearrow
730561d3a3 arcade: add effects to control AMD/PMD 2022-01-20 17:54:11 -05:00
tildearrow
75ce5f4e2a add auto-envelope mode (29xy effect)
this closes #32
2022-01-20 03:23:03 -05:00
tildearrow
85dd6c3579 add ability to preview wavetables
issue #16
2022-01-20 00:07:53 -05:00
tildearrow
85bb081f3b prevent clock drift when previewing samples 2022-01-19 23:23:47 -05:00
tildearrow
51a89adb3d more headache 2022-01-19 22:05:39 -05:00
tildearrow
fee174a65a fix ECxx accuracy 2022-01-19 21:53:09 -05:00
tildearrow
efee5c3d7a now remove debug messages 2022-01-19 01:36:47 -05:00
tildearrow
aa1a3f8aab oh yes more fixes 2022-01-19 01:36:20 -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
64745648a0 allow negative octaves 2022-01-18 16:55:32 -05:00
tildearrow
a148a04e2c disable delay locking bug emulation entirely
so it appears the bug emulation caused an actual bug
2022-01-18 15:24:42 -05:00
tildearrow
0356cf2c7a TIA: add 10xx effect for selecting shape 2022-01-18 15:12:36 -05:00
tildearrow
8d4d47950c rewrite audio export
now it is possible to export audio from the GUI!
multiple export coming soon
2022-01-17 23:34:29 -05:00
tildearrow
df3ae12278 fix furnace for 32-bit 2022-01-17 21:08:14 -05:00
tildearrow
a0896f949c and againnnnn 2022-01-17 18:18:28 -05:00
tildearrow
cba4385607 ignore speed change if speed is 0
fixes #9
2022-01-17 18:05:29 -05:00
tildearrow
ce027d99f6 force insChanged on note input
partially solves issue #8
2022-01-17 18:01:40 -05:00
tildearrow
2f1cdab36b fix mixing being done wrongly 2022-01-15 00:24:06 -05:00
tildearrow
0e2230d036 hopefully finish the SAA1099 platform 2022-01-14 23:26:22 -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
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
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
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
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
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
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
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
be3b4da834 add note preview feature 2021-12-28 18:23:57 -05:00
tildearrow
d766c4aaf0 finally do EFxx right
took a while to figure out...
2021-12-28 00:51:38 -05:00
tildearrow
eb28f7f7f1 whaaaaaaaaa 2021-12-27 17:05:03 -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
1605f4f3c0 better global pitch effect
still work in progress
2021-12-27 16:15:11 -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
c2669f208e fix wiz lab AGAIN and implement repeat pat
0x0b + 0x0d = broken
2021-12-21 17:42: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
7f3885d2b1 GUI: ability to add/del effect cols and EExx value 2021-12-20 19:46:49 -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
beceefd34b only output playback status in console mode 2021-12-18 04:26:17 -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
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
285cc9b766 allow running GUI without loaded module 2021-12-13 14:40:03 -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
442180956c neo geo: more work 2021-12-09 17:06:28 -05:00
tildearrow
e2a41974ff PCM sample bank support 2021-12-09 03:13:37 -05:00
tildearrow
d395abe47f actually obey the orders 2021-12-09 01:44:40 -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
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
0ca761d7fd aaaaagain 2021-12-08 00:37:23 -05:00