Commit graph

143 commits

Author SHA1 Message Date
cam900 4efa711a2b Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace: (44 commits)
  GUI: now add ability to load VMEM
  Update sysDef.cpp
  GUI: add an option for it
  add preliminary TX81Z SysEx response
  OPL: drum volume
  OPL: implement hard reset
  GUI: add icon size setting
  GUI: macro UI refactor, part 4
  Fix WIN32 define timing in IGFD
  Fix outdated calling convention in SAASound (maybe fix MinGW)
  GUI: macro UI refactor, part 3
  GUI: macro UI refactor, part 2
  Masochism Volatile Compiler
  GUI: is the macro UI back yet
  OPL: fix 4-op muting (I think)
  GUI: macro UI refactor, part 1 - PLEASE READ
  GUI: remove classic macro view
  Maybe just enforce for C++
  Forbid standard extensions
  .ftm loading progress (incomplete, not working)
  ...

# Conflicts:
#	src/engine/instrument.h
#	src/gui/insEdit.cpp

Transwave Checkpoint
2022-05-11 00:16:20 +09:00
tildearrow 5e14177e4e YM2610(B): use f-num/block baseFreq calculation
also allow for different octave boundary f-nums depending on chip clock
2022-05-10 02:22:08 -05:00
tildearrow 6e7b4d7e7f the final part of extra FM effects 2022-05-04 17:39:22 -05:00
tildearrow 467036df2a implement extra FM effects (OPN, OPM and OPZ)
issue #38
2022-05-04 14:09:43 -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 4c9b172b50 YM2610: optimize oscilloscope fetch CPU usage 2022-05-03 02:52: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
Laurens Holst 7f0074511c Move renderSamples() to DivDispatch implementations.
To prevent rendering samples for systems that are not in use.

Additionally, it gives the systems more flexibility to render the samples
according to their specific configuration.
2022-05-01 23:23:38 +02:00
cam900 329048bf6c Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace:
  Clang you are so arrogant
  ok so screw you
  let's hope this works
  attempt to fix CI
  per-channel oscilloscope, part 8
  per-channel oscilloscope, part 7
  per-channel oscilloscope, part 6
  per-channel oscilloscope, part 5
  but PCE supports samples!
  per-channel oscilloscope, part 4
  YM2612: fix Furnace DAC mode glitching slides
  per-channel oscilloscope, part 3
  GUI: add missing actions to settings
  per-channel oscilloscope, part 2
  Revert PC speaker presets
  Have host sound chip appear before expansions
2022-05-01 19:59:03 +09:00
tildearrow 05ae774617 let's hope this works 2022-05-01 04:49:41 -05:00
tildearrow e1a02f64de attempt to fix CI 2022-05-01 04:30:04 -05:00
tildearrow 47f83c0472 per-channel oscilloscope, part 7
YM2610 and YM2610B
only TIA is left
2022-05-01 03:47:04 -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 cdb3a51766 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace:
  implement channel swapping
  implement relative pitch macro mode
  prepare for relative pitch macro

# Conflicts:
#	src/gui/insEdit.cpp
2022-04-28 23:30:50 +09: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 d211170e86 implement relative pitch macro mode 2022-04-28 01:31:16 -05:00
tildearrow 66f5b2117f dev90 - linear pitch macro option 2022-04-28 00:26:21 -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
tildearrow 79fa8f1d02 better default instrument for OPL/OPLL
no longer silence
2022-04-21 02:24:06 -05: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 fc8a130c71 implement panning macro
except for QSound
2022-04-17 14:15:57 -05:00
tildearrow b4ac5c7e6a implement pitch macro 2022-04-16 01:39:40 -05:00
tildearrow fd3d57b1cb even more improvements to low-latency mode 2022-04-15 15:01:11 -05:00
tildearrow 96715ed88c add experimental low-latency mode
do not use (yet)!
2022-04-15 05:37:23 -05:00
tildearrow d47a59f5f0 implement pitch macro
TODO: test!
2022-04-15 03:37:16 -05:00
tildearrow c743a9e96a implement phase reset macro on supported systems 2022-04-15 03:16:14 -05:00
cam900 b167034e06 Merge remote-tracking branch 'upstream/master' into macro 2022-04-10 17:29:36 +09:00
tildearrow e23dcd6e1b implement hard reset on OPM/OPZ/OPNB 2022-04-10 03:04:31 -05:00
cam900 d3e5efe834 Prepare for macro refactoring 2022-04-10 14:01:55 +09:00
tildearrow 2e327953e8 YM2610(B): AY unification
as of now the SSG part of these chips is handled by a DivPlatformAY8910
within the DivPlatformYM2610.
this means less code duplication and therefore prepares for
OPN/OPNA support.
2022-04-06 18:03:30 -05:00
tildearrow a43034f559 OPN: fix portaPause not resetting on new note 2022-03-29 23:58:50 -05:00
cam900 36b336c7f4 A && B 2022-03-11 04:11:23 +09:00
cam900 f3e4810dda Make some pitch command work in ADPCM-B, still partially and 01xx command is broken
Fix sample check routine
Remove dac* variables, No way to enable DAC mode in YM2610*
2022-03-11 03:47:36 +09:00
tildearrow 3b8388d90c YM2151/2610/2612/Game Boy: fix panning - UNTESTED 2022-03-06 14:39:20 -05:00
cam900 ddf341dfc0 Add support YM2610* ADPCM-B Repeat flag, Add YM2610 ADPCM notes in GUI 2022-03-01 01:11:27 +09:00
cam900 ac1c65fd62 Add register sheet for YM2610* 2022-02-28 04:45:55 +09:00
tildearrow 9ea26da44e ADPCM-B fixes 2022-02-25 01:04:07 -05:00
tildearrow 35e459d9e5 Neo Geo: implement ADPCM-B 2022-02-25 00:11:27 -05:00
tildearrow 19c4f5559a bring crash fix from 0.5.8 2022-02-24 22:52:20 -05: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 df35b8fb45 add register view
supported chips only.
2022-02-21 22:31:27 -05:00
tildearrow e697c055b6 replay keyOn in active channels during forceIns
fixes an issue when playing orders
2022-02-20 21:39:14 -05:00
tildearrow 36eaea0fa7 OPN: apply max freq limit 2022-02-17 22:07:20 -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 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 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 5086bc1097 implement the linear pitch flag 2022-02-03 02:24:11 -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 822d542350 limit volume macro to system maximum
fixes #71
2022-01-30 12:31:50 -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 30b553e87e AY: add envelope and auto-envelope macros 2022-01-27 15:31:48 -05:00
tildearrow 3cf71c4ccb Neo Geo: implement FM macros 2022-01-27 02:32:34 -05:00
tildearrow 0e633ea69b GUI: add a debug window 2022-01-27 00:29:16 -05:00
tildearrow f86838df99 no longer shift arpeggio macro by 12 2022-01-26 15:53:52 -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 ea796c2d6b VGM export: fix noise in Neo Geo 2022-01-24 02:57:49 -05:00
tildearrow a45c697004 now Neo Geo 2022-01-23 00:57:47 -05:00
tildearrow 75ce5f4e2a add auto-envelope mode (29xy effect)
this closes #32
2022-01-20 03:23:03 -05:00
tildearrow e87239f8ce fix retrigger implementation
no longer broken
2022-01-19 00:01:34 -05:00
tildearrow 05fd372728 AY: fix wave macro and effect 2022-01-18 15:48:40 -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 ce027d99f6 force insChanged on note input
partially solves issue #8
2022-01-17 18:01:40 -05:00
tildearrow 6884494b5c fix issue with volume macro+slide 2022-01-17 16:23:47 -05:00
tildearrow 12236248dd prepare for eventual export 2022-01-16 23:21:27 -05:00
tildearrow 91e8ff01cf add notifyInsDeletion
prevent invalid memory access when deleting instruments
2022-01-13 19:36:02 -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 3e34c60b32 fix volume after note off 2021-12-29 00:52:20 -05:00
tildearrow d766c4aaf0 finally do EFxx right
took a while to figure out...
2021-12-28 00:51:38 -05:00
tildearrow 65444d4a99 el diego 2 finally plays back correctly
ALMOST
2021-12-27 16:31:16 -05:00
tildearrow 726b457ae7 another uninitialized variable 2021-12-21 16:02:31 -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 b3b66ecbdb channel mute/solo! 2021-12-18 03:25:42 -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 bde8a7f79d warning-free compilation 2021-12-14 12:33:26 -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