Commit graph

305 commits

Author SHA1 Message Date
cam900 dd79ae401b Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt 2023-02-05 10:00:27 +09:00
tildearrow d49850f67f YM2612: fix per-chan osc overflow on ymfm 2023-02-02 03:16:10 -05:00
cam900 3403e10b0b Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt 2023-01-24 08:14:29 +09:00
tildearrow c0d1fe9c65 OPM/OPZ: new hard reset strat
also fix weird envelope after hard reset
2023-01-20 04:28:18 -05:00
tildearrow 45faadd4c8 update copyright year 2023-01-19 19:18:40 -05:00
tildearrow b33ea8f0ac apply new hard reset strategy on all OPN chips 2023-01-19 18:22:48 -05:00
tildearrow 48a1e6a976 YM2612: new experimental hard reset strategy 2023-01-19 14:36:15 -05:00
cam900 7340d029ae Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt 2023-01-19 16:51:27 +09:00
tildearrow 1b05fe577d OPN/2/A/B: Seamless Legato Ins Change 2023-01-19 02:23:05 -05:00
tildearrow fa6badc865 YM2612: notifyInsDeletion 2023-01-18 17:17:27 -05:00
tildearrow 1d446bd56b dev137 - new mixing volumes
YM2612 is now twice as loud
SN76489 and OPLL are 1.5x loud
X1-010 is four times louder
2023-01-17 01:11:08 -05:00
tildearrow 0383b0c50f YM2612: fix one more click... 2023-01-16 23:59:34 -05:00
tildearrow 13b782c7b1 YM2612: yet another fix 2023-01-16 18:41:56 -05:00
tildearrow bf49b43e7b YM2612: fix another pop 2023-01-16 16:20:10 -05:00
tildearrow 2c528c9ca8 OPN: add LFO speed macro
issue #927
2023-01-16 16:10:34 -05:00
tildearrow 58f789b9eb YM2612: fix forceIns DAC clicking 2023-01-15 23:34:01 -05:00
cam900 46865b3adb Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt 2023-01-16 10:07:13 +09:00
tildearrow bf2ef2742a YM2612: fix forceIns after sample 2023-01-15 18:05:48 -05:00
cam900 536c345763 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt 2023-01-12 23:31:56 +09:00
tildearrow a29f36a5df new dispatch, part 1 2023-01-03 01:09:46 -05:00
tildearrow 3e0dcbb0ae aaaaaaaa 2023-01-02 04:53:37 -05:00
tildearrow 08d2f12dbd prepare new dispatch
will allow for more than 2 outputs
2023-01-01 19:46:08 -05:00
cam900 8a71a81ffb Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt 2023-01-02 09:26:05 +09:00
tildearrow f2fce2fab3 YM2612: phase reset for samples 2022-12-29 15:58:42 -05:00
tildearrow 7fa5fecd38 possibly fix retrigger with sample map 2022-12-29 03:12:00 -05:00
cam900 ff937604c7
Merge branch 'master' into es5506_alt 2022-12-29 16:18:24 +09:00
tildearrow a09ad00e48 prepare for 0.6pre3
OPN: add flag to make ExtCh op 1 be the only one controlling FB
GUI: move Arcade presets to top
GUI: fix YM2612 CSM not having flags
2022-12-28 18:11:30 -05:00
tildearrow 2c182334d7 OPN: increase range of pitch2 2022-12-28 14:47:50 -05:00
tildearrow 9e47468b53 YM2612: workaround 2022-12-26 13:49:59 -05:00
cam900 96c0bea63b Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt 2022-12-25 18:48:29 +09:00
tildearrow 6cce918c02 Nuked-OPN2 + ymfm combo option for all OPN chips
modified Nuked doing FM and ymfm doing SSG/ADPCM
2022-12-24 02:29:37 -05:00
cam900 a793bed56d
Merge branch 'master' into es5506_alt 2022-12-24 12:01:03 +09:00
tildearrow 37dbc52a68 YM2612: CSM without DualPCM 2022-12-23 19:26:42 -05:00
tildearrow dff3ddeb3a port ExtCh op macro code to OPN family, part 7 2022-12-23 19:06:10 -05:00
tildearrow 34f6a303a6 prepare for more CSM 2022-12-20 17:40:45 -05:00
cam900 80fd78dcdd Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt 2022-12-17 16:53:19 +09:00
tildearrow 6f22ade69a new arp strategy, part 1 2022-12-17 02:07:24 -05:00
tildearrow 3eb3d8a6f1 prepare for new arp strategy 2022-12-17 01:21:08 -05:00
cam900 429aed0ab1 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt 2022-12-17 15:00:44 +09:00
tildearrow 9da46ee8ba implement macro masking 2022-12-17 00:09:56 -05:00
cam900 8365d1c977
Merge branch 'master' into es5506_alt 2022-12-15 16:06:59 +09:00
tildearrow 2f8e2f9a5e YM2612: partial, buggy CSM on ymfm 2022-12-14 19:22:34 -05:00
tildearrow f132717502 YM2612: prepare to implement CSM on ymfm 2022-12-14 19:09:50 -05:00
cam900 2ec35d903f Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt 2022-12-04 16:53:54 +09:00
tildearrow c6604ff581 add ability to select custom clock rates 2022-12-04 02:04:42 -05:00
cam900 46880634b4 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt 2022-11-15 11:52:30 +09:00
tildearrow 3745e0935d YM2612: prototype of ExtCh macros 2022-11-08 18:33:01 -05:00
tildearrow 8d8bdfd1f7 dev125 - prepare for ExtCh FM macros 2022-11-07 18:39:04 -05:00
cam900 792beeb409 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt 2022-10-29 20:33:36 +09:00
cam900 90ed617cf6 Prepare for split volume scaling macro to 'log volume only' macro and 'log volume if compatibility flag set' macro 2022-10-28 22:36:50 +09:00
cam900 487607b6ae Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt 2022-10-22 10:17:00 +09:00
tildearrow 4723ed3972 VGM: experimental direct stream mode for YM2612 2022-10-17 14:25:30 -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 48db9a1d0c chip flags rewrite, part 4 - DO NOT USE
the next part is to drop systemFlagsOld completely
and then to fix the GUI
2022-09-29 20:13:40 -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 e00758d67c Merge branch 'master' of https://github.com/tildearrow/furnace into sample_macro 2022-09-22 23:02:01 +09:00
tildearrow ac68419b78 implement KVS on YM2612 2022-09-22 01:18:41 -05:00
cam900 0f5a400b29 Merge branch 'master' of https://github.com/tildearrow/furnace into sample_macro 2022-09-18 00:11:53 +09:00
tildearrow 6e1f54b777 YM2612: implement OpMask
will be done for OPM and the rest of the OPN chips later
2022-09-12 01:50:27 -05:00
tildearrow 7b1713758b dev114 - operator muting for OPN/OPM 2022-09-12 00:37:25 -05:00
cam900 3fcccb52ee Reduce performance issue 2022-08-28 10:50:57 +09:00
cam900 54dbd0690c Merge branch 'master' of https://github.com/tildearrow/furnace into sample_macro
# Conflicts:
#	src/engine/fileOps.cpp
#	src/engine/platform/lynx.cpp
#	src/engine/platform/rf5c68.cpp
#	src/engine/platform/su.cpp
#	src/engine/platform/x1_010.h
#	src/engine/platform/ym2610.cpp
#	src/engine/platform/ym2610.h
#	src/engine/platform/ym2610b.cpp
#	src/engine/platform/ym2610b.h
#	src/engine/sysDef.cpp
#	src/gui/insEdit.cpp

Add effect command for ADPCM-A global volume, X1-010 Sample bank slot
2022-08-27 17:25:48 +09:00
tildearrow c009cb3536 dev112 - prepare for advanced arp macro
this new advanced arp macro offers more flexibility and reduces code duplication
it allows you to set each step of the macro to either relative or fixed mode
(instead of just one mode for the entire macro)

the UI is still a work in progress and doesn't work well

this change is big and may break things! further fixes incoming
2022-08-22 15:59:45 -05:00
tildearrow b223bc80de YM2612: #581 2022-08-21 20:06:01 -05:00
tildearrow 05b5265bbb YM2612: #632 2022-08-21 19:46:48 -05:00
Natt Akuma 7c42453422
Rewrite per-system effect handling (#548)
* Rewrite per-system effect handling

* fix build

* C64: fix fine cutoff regression

* fix some more crashes

Co-authored-by: tildearrow <tildearrow@protonmail.com>
2022-08-18 01:26:22 -05:00
cam900 d44f5f0b2b Prepare for backward and bi-directional loop 2022-08-11 22:21:54 +09: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 f3b9c6dde6
Merge branch 'master' into es5506_alt 2022-07-02 13:28:49 +09:00
tildearrow 477674400c YM2612: whoops! 2022-06-29 00:55:05 -05:00
tildearrow aaf02103f6 YM2612: implement DualPCM macros 2022-06-29 00:49:11 -05:00
tildearrow f483292a88 OPN[A/B/2]?: implement 18xx effect 2022-06-28 01:16:46 -05:00
cam900 3119ed8cc5 Merge remote-tracking branch 'upstream/master' into es5506_alt 2022-06-26 00:47:34 +09:00
cam900 2b5bb91237 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace: (55 commits)
  GUI: get rid of these stupid icons
  update to-do list
  MSM6258: the final bits
  MSM6258: clock/rate selection
  MSM6258: prepare for rate changing
  Update n163.md
  YM2612: DualPCM per-channel osc
  YM2612: more DualPCM muting fixes
  YM2612: fix DualPCM muting
  GUI: finish the blank ins up
  GUI: add "blank new instrument" option
  GUI: add mono/poly note preview button
  PC speaker: don't use printf/perror
  YM2612: CSM arpeggio and slides
  YM2612: - C   S   M -
  YM2612: half-working CSM
  YM2612: earliest completely untested CSM work
  delay collapse/expand pattern/song feature :<
  GUI: much more stable osc view
  YM2612: fix DAC output not visible in per-chan osc
  ...

# Conflicts:
#	src/engine/platform/genesis.cpp
#	src/engine/platform/genesis.h
#	src/ta-utils.h
2022-06-26 00:36:36 +09:00
cam900 6aa88b0770 Move on .cpp, prepare for variable rate support 2022-06-08 10:10:55 +09:00
cam900 d1aeabe464 Fix compile 2022-06-06 19:26:34 +09:00
cam900 35caab6f82 Merge branch 'master' into preset1 2022-06-06 19:09:12 +09:00
cam900 e0e6a45000 Prepare for reducing duplicates for 4op FM related codes, Add and correct bunch of presets, Add various clock, type options for chips
Prepare for reducing duplicates for 4op FM related codes

Add and correct bunch of presets
- mostly based on MAME source.
- Neo Geo AES uses slightly difference clock for NTSC, PAL colorbust frequency.
- Turbosound FM + SAA: Some Turbosound FM has additional SAA1099, for additional sound channel and Plays SAM coupe tune?
- PC-98:
 - Sound Orchestra: OPN with hardpanned stereo, some model has with OPL family FM addons.
   V variation has Y8950 and supports ADPCM.
 - Sound Blaster 16 for PC-9800: This famous PC sound card is also exists for PC-98, with optional OPN PC-9801-26(K) compatibility on some models.
- IBM PCjr: PC with SN PSG sound, but less popular than previous models, and compatible Tandy 1000.
- Tandy 1000: PCjr and previous IBM PC compatible, also has SN PSG (later embedded in their ASIC, like Sega).
- Hexion: One of konami's budget arcade hardware with SCC + MSM6295 sound system, like their amusement hardware in this era.
- DJ Boy, Atari JSA IIIs, Skimaxx: How to panning sound or plays stereo sound on MSM6295 - just use MSM6295s per each output!
- Air Buster: One of arcade hardware with OPN + MSM6295 sound system, Used this configuration is also some hardwares.
- Tecmo system: One of arcade hardware with pretty unique sound system: OPL3, YMZ280B, MSM6295; first 2 entry is mostly used in music, last entry is mostly used in sound effect.
- Sunsoft Shanghai 3: Predecessor of Sunsoft Arcade is using YM2149 rather than FM, MSM6295 is still there.
- Atari Klax: example of arcade hardware sound system with single MSM6295 only.
- Ikari warriors: This early SNK Triple-Z80 hardware uses 2 OPL1s and no ADPCM supports.
- Coreland Cyber Tank: This rare arcade machine's stereo sound is like SB Pro, but it's actually produced in 2 Y8950s.
- Data East MLC: Latest arcade hardware from Data East, with single YMZ280B for sound.
- Kaneko Jackie Chan: Predecessor of Super Kaneko Nova System hardware, also with YMZ280B.
- Super Kaneko Nova System: Latest arcade hardware from Kaneko, with single YMZ280B for sound. this announced 3D acceleration addon, but finally cancelled.
- Toaplan 1: Home of Late 80-Early 90s Good ol' stuffs, Example of arcade sound system with single OPL2
- Namco Pac-Land: and this era, Namco start to change Custom 15 WSG to their Custom 30 WSG with featured RAM based waveform, and mailbox feature.
- Namco System 1: One of latest usage of Custom 30 WSG, with OPM FM hardware and 8 bit DAC and Stereo output.

Add various clock, type options for chips
- SN7: Prepare to add 17 bit noise variation, Game gear stereo extentsion, NCR PSG variation (MAME core only for now)
- OPN, OPNA: Add placeholder for prescaler option
- OPL: Prepare for OPL3L, OPL4 downscaled output rate option
2022-06-06 19:04:52 +09:00
tildearrow 2932a7281d implement getChanMacroInt() on supported systems 2022-06-05 18:17:00 -05:00
tildearrow 91621fe0f5 YM2612: DualPCM per-channel osc
fixes #516
2022-06-04 01:03:58 -05:00
tildearrow a550c4cb30 YM2612: more DualPCM muting fixes 2022-06-04 01:00:29 -05:00
tildearrow 641648ca0f YM2612: fix DualPCM muting
issue #516
2022-06-04 00:50:53 -05:00
tildearrow 71b4bf5fdd YM2612: CSM arpeggio and slides 2022-06-03 16:21:42 -05:00
tildearrow b4a7f0f5b7 YM2612: - C S M -
CSM only available with Nuked core
may not work on VGM export if you compress VGM (removes timer A writes)
2022-06-03 16:13:57 -05:00
tildearrow 59ba156cdf YM2612: half-working CSM 2022-06-03 15:54:49 -05:00
tildearrow 365e466611 YM2612: earliest completely untested CSM work 2022-06-03 14:10:28 -05:00
tildearrow 0895789539 YM2612: fix DAC output not visible in per-chan osc
issue #515
2022-06-03 01:47:31 -05:00
tildearrow e94d1b857f newVolumeScaling, part 2 2022-06-01 18:02:34 -05: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 a776129c3d dev98 - YM2612: add Fractal system
partially done
2022-05-27 04:02:53 -05: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 2fa51e482a OPN(A/B/2/B-B): fix absolutely everything 2022-05-22 23:47:41 -05:00
tildearrow 82eaa45f5d increase range of relative pitch macro
-32768 to 32767 should be enough
2022-05-22 22:47:40 -05:00
tildearrow 393d1c018d dev97 - add old octave boundary compat flag 2022-05-22 13:25:59 -05:00
tildearrow b40c95013a fix phase reset in FM chips after note off 2022-05-22 04:30:56 -05:00
tildearrow a9f9d6144a YM2612: change key on/off strategy 2022-05-20 23:54:19 -05:00
Natt Akuma b7a6bf5a0b Add RF5C68 and RF5C164 support 2022-05-21 01:45:26 +07:00
tildearrow 0ef0296b7d fix non-linear pitch 2022-05-19 23:18:18 -05:00