Commit Graph

148 Commits

Author SHA1 Message Date
tildearrow b7302e0d98 POKEY: VGM export 2022-12-20 14:54:55 -05:00
cam900 429aed0ab1 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt 2022-12-17 15:00:44 +09:00
cam900 d7c35f0748 Add VGM support 2022-12-15 21:36:51 +09:00
cam900 37e83c0905 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt 2022-12-10 14:29:13 +09:00
cam900 2e85e47c48 Add and reorganize constant define includes 2022-12-09 14:30:27 +09:00
cam900 7867b59580 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt 2022-11-30 17:39:43 +09:00
tildearrow 8041173eb9 YMZ280B: fix VGM export 2022-11-21 16:12:29 -05:00
cam900 13b2a72a01 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt 2022-10-26 12:28:24 +09:00
tildearrow f5b0604d4a VGM export: fix direct stream mode buggy duration 2022-10-22 03:53:31 -05:00
cam900 487607b6ae Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt 2022-10-22 10:17:00 +09:00
tildearrow 206fb119aa VGM export: extended header length should be 12 2022-10-19 13:48:29 -05:00
tildearrow ed12ca5bd8 VGM export: get Fractal template export working 2022-10-17 14:31:37 -05:00
tildearrow 4dda45116e VGM export: fix stream command glitch in direct 2022-10-17 14:28:41 -05:00
tildearrow 4723ed3972 VGM: experimental direct stream mode for YM2612 2022-10-17 14:25:30 -05:00
tildearrow 684b5a928b VGM export: prepare for "direct stream mode"
this will eventually allow for DualPCM and MSM6258 export

DO NOT USE YET
2022-10-17 04:17:00 -05:00
tildearrow ecd5662d9b T6W28: whoops fix VGM export 2022-10-16 01:29:02 -05:00
tildearrow 285d81c716 T6W28: VGM export 2022-10-16 01:27:39 -05:00
cam900 081773b2da
Merge branch 'master' into es5506_alt 2022-10-12 15:31:38 +09:00
tildearrow 9f105d92a8 VGM export: why 2022-10-09 17:24:24 -05:00
cam900 f8c494e1dd
Merge branch 'master' into es5506_alt 2022-10-09 20:05:15 +09:00
tildearrow b53319354c Virtual Boy: VGM export 2022-10-09 00:00:00 -05:00
cam900 987cc113b4 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt 2022-09-30 20:01:21 +09:00
tildearrow 468f434b66 chip flags rewrite, part 5 - DO NOT USE
after fixing the GUI the last thing to do is upgrade all the presets to
the new format
but that will be SO boring
2022-09-30 00:26:54 -05:00
cam900 62f1ba73eb Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt 2022-09-29 22:05:41 +09:00
tildearrow 0acca7458d chip flags rewrite, part 2
move systemFlags to legacy status
2022-09-29 03:29:24 -05:00
cam900 013c7b92fb Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt 2022-09-27 00:01:10 +09:00
tildearrow a6e4345863 PLENTY OF TODO WHEN I COME BACK
CRASHES EVERYWHERE
2022-09-25 20:07:21 -05:00
cam900 0a49d4bfd0 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt 2022-09-25 18:32:06 +09:00
cam900 80c9b0c3f4 Fix compile 2022-08-27 18:26:56 +09:00
cam900 d44f5f0b2b Prepare for backward and bi-directional loop 2022-08-11 22:21:54 +09:00
tildearrow 7ec4f7cb9e VGM export: add option to insert pattern change hi
nts
2022-08-03 18:44:45 -05:00
tildearrow 8d88ac766c dev103 - store system name and other info in song 2022-07-23 17:02:03 -05:00
cam900 5127d5ef18
Implement sample loop end position, enum-ise sample depth (#557)
TODO: new sample format
2022-07-21 23:36:42 -05:00
cam900 5e72274c5c I forgot here 2022-06-26 09:29:35 +09:00
cam900 3119ed8cc5 Merge remote-tracking branch 'upstream/master' into es5506_alt 2022-06-26 00:47:34 +09:00
Natt Akuma 4bf4be1ea2 Fix 16-bit samples in YMZ280B VGM export 2022-06-22 21:55:31 +07:00
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 13ff89f962 VGM export: fix oops 2022-05-28 22:18:38 -05:00
tildearrow f8796f8ec9 MSM6295: VGM export! 2022-05-28 18:15:26 -05:00
tildearrow 0b7d27dc29 YM2612: add reverse sample playback 2022-05-27 02:47:44 -05:00
Laurens Holst a19090ab9b Correct VGM chip ID for Y8950 reset. 2022-05-24 22:08:01 +02: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
cam900 f7ba60bfa9 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace: (46 commits)
  PCE: fix two issues
  SegaPCM: fix samples bigger than 64KB
  SCC: implement VGM soft reset
  GUI: add option to clear orders
  GUI: implement "clear all subsongs"
  GUI: fix crash when deleting current subsong
  CI: only 1 core for MinGW
  Fix AY8910 envelope hangs
  OPL: fix fixed frequency drums
  pick nits: the sequel
  pick nits
  AY: fix possible hang
  hide .ftm format
  Add x2 icon variations as well
  Install more size variations on Linux
  OPLL: fix fixed drums freq
  GUI: make backupTimer atomic
  Have OPN* platforms set the correct YM2149 chip type.
  update to-do list
  ZX beeper: clarify effects (will be done later)
  ...

# Conflicts:
#	src/engine/platform/segapcm.cpp
2022-05-22 18:24:17 +09:00
Natt Akuma 5ed0efe961 Whoops 2022-05-21 03:36:11 +07:00
Natt Akuma 27a412c134 Merge branch 'master' of https://github.com/tildearrow/furnace into rf5c68 2022-05-21 03:02:08 +07:00
Natt Akuma 581f6d5d05 Merge branch 'master' of https://github.com/tildearrow/furnace into ymz280b 2022-05-21 02:34:51 +07:00
Natt Akuma b7a6bf5a0b Add RF5C68 and RF5C164 support 2022-05-21 01:45:26 +07:00
tildearrow 976c1d3c0d VGM export: implement OPNA and Y8950 (partially)
see #459
2022-05-19 18:09:46 -05:00
tildearrow b01ebb3487 OPN: VGM soft reset and ExtCh export 2022-05-19 17:46:41 -05:00
Natt Akuma 0ae0c6f703 Add YMZ280B support 2022-05-18 21:04:25 +07: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 d961f6f498 SegaPCM: fix samples bigger than 64KB 2022-05-17 02:38:13 -05:00
tildearrow 6438b28c11 SCC: implement VGM soft reset 2022-05-17 01:52:18 -05:00
cam900 f62f6ed77b Fix AY VGM output, Fix presets 2022-05-15 00:58:00 +09:00
tildearrow ff0319780e OPN: VGM export - good night 2022-05-11 03:41:02 -05:00
tildearrow 955cd48fcf SCC: SCC+ and dual-SCC VGM export 2022-05-11 02:32:08 -05:00
tildearrow 35ff5430d3 SCC: VGM export, forceIns bug fix and 10xx 2022-05-11 02:20:14 -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 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
Natt Akuma d16d1260cb VGM: Support ROM data in the second chip 2022-04-16 22:54:01 +07:00
tildearrow 6b294933bc VGM export: fix it under low-latency mode 2022-04-15 22:27:44 -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 ac3772c024 initial FDS bring-up 2022-04-03 22:37:16 -05:00
tildearrow 81c8bf4e59 add ability to select VGM version when exporting
by default it is 1.71 but please tell me if you want this to be changed
2022-04-01 21:40:32 -05:00
tildearrow cccf90d417 OPL: implement VGM export fake reset 2022-03-30 04:27:11 -05:00
tildearrow cc152bc3d0 OPL: partially enable VGM export
it works except for fake reset
2022-03-30 03:36:16 -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 c778251f26 Oops!
It's already exists
2022-03-12 23:39:38 +09:00
cam900 155e602e61 Fix X1-010 VGM logging
Register/RAM offset is Big endian
2022-03-12 10:22:21 +09:00
cam900 8b1e557b5c
Sync with master 2022-03-08 21:34:12 +09: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 25088d6032 Fix playback and VGM export 2022-03-07 15:44:59 +07:00
Natt Akuma 840a6fa306 Add WonderSwan support 2022-03-07 15:44:59 +07:00
Natt Akuma 2453426d03 Turn second chip checks into variables in vgmOps 2022-03-07 15:44:59 +07: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 8843315256 OPLL: 99.99%
VGM export
2022-03-02 00:58:49 -05:00
cam900 6d36a8fdd2 Merge branch 'master' of https://github.com/tildearrow/furnace into ym2610b 2022-02-28 03:04:28 +09:00
tildearrow cf668aa6d4 VGM export: lol 2022-02-27 00:41:27 -05:00
tildearrow 8d2129cadc VGM export: clean up compound systems 2022-02-27 00:39:16 -05:00
cam900 a132a28fcb
Fix VGM saving 2022-02-25 17:37:43 +09: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 f7bd06c4eb yay ADPCM-A and QSound work again! 2022-02-24 16:16:02 -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 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
Ian Karlsson b3908216f8 Implement QSound support 2022-02-22 11:36:12 +01:00
Waldemar Pawlaszek 79e53cfd10 Merge branch 'master' of git://github.com/tildearrow/furnace into tildearrow-master
# Conflicts:
#	src/gui/insEdit.cpp
2022-02-22 09:13:49 +01:00
tildearrow 4db91256b1 fix repeat pattern hanging audio/VGM export 2022-02-21 23:05:41 -05:00
Waldemar Pawlaszek de6cbba472 Fixed gcc errors 2022-02-21 19:59:09 +01:00
Waldemar Pawlaszek 6e79e84e53 Added panning and load LFSR commands. 2022-02-21 19:59:09 +01:00
Waldemar Pawlaszek 8a8c8406b7
Merge branch 'tildearrow:master' into master 2022-02-21 05:58:25 +01:00
tildearrow 1f6d44b29a VGM export: fix song end effect hang 2022-02-20 23:13:52 -05:00
Waldemar Pawlaszek 2e4c7ec60a Initial Atari Lynx Support 2022-02-20 18:15:15 +01:00
tildearrow 650beebe99 split VGM ops code 2022-02-18 12:58:36 -05:00