Commit Graph

1853 Commits

Author SHA1 Message Date
tildearrow 51db06298b Game Boy: fix volume regression 2022-08-10 23:53:47 -05:00
tildearrow 4b18d0920b Game Boy: software envelopes, part 2 2022-08-10 17:02:45 -05:00
tildearrow bccecc4c07 Game Boy: software envelopes, part 1 2022-08-10 16:27:29 -05:00
tildearrow 28698beaf3 dev106 - Game Boy: implement hw seq
and prepare for software envelope maybe
2022-08-10 01:55:44 -05:00
tildearrow da8f7dabd5 i guess
to anybody who bothers reading the contents of this commit:
who cares? you promised me C163 would become the name
but nobody has bothered to call it C163 for an entire week.

there's no point on pushing a dead idea forward!
2022-08-09 14:53:31 -05:00
tildearrow 1c92d23d27 commands view now only displays useful commands 2022-08-07 17:40:01 -05:00
tildearrow b8012344e7 fix possible crash when closing Furnace 2022-08-07 17:37:07 -05:00
tildearrow f80488d9b0 minimize allocations in nextBuf 2022-08-07 17:32:39 -05:00
tildearrow 829db187df Y8950: fix ADPCM per-chan osc I think 2022-08-07 06:24:48 -05:00
tildearrow 45196daf95 Game Boy: fix serious typo 2022-08-07 01:32:28 -05:00
tildearrow 1721e1d03e Game Boy: re-enable wave corruption bug emulation 2022-08-07 00:40:26 -05:00
tildearrow 7dad9098b6 Game Boy: fix wave channel 2022-08-07 00:37:35 -05:00
tildearrow ab013291d4 Game Boy: make channel state independent of instru 2022-08-07 00:22:03 -05:00
tildearrow 9f8c96d45b dev105 - prepare for Game Boy hardware sequences
issue #27
2022-08-07 00:03:27 -05:00
tildearrow 47ea8132b2 QSound: limit max frequency to $EFFF
it appears $F000 and beyond cause glitches (#256)
2022-08-06 23:05:54 -05:00
tildearrow 17dba66fa0 MMC5: finally fix PCM linear pitch mode issues 2022-08-06 22:52:39 -05:00
tildearrow 6934a499c1 SoundUnit: actually finish it 2022-08-06 18:23:11 -05:00
tildearrow e0c5029769 Merge branch 'master' of github.com:tildearrow/furnace 2022-08-06 16:24:11 -05:00
tildearrow f03123fd75 SoundUnit: implement missing input line emulation 2022-08-06 16:22:57 -05:00
tildearrow fa66fb1c9a
Merge pull request #622 from djtuBIG-MaliceX/hotfix/opm-loading-discrepancy
Fix OPM load bug relating to AM-ENA values above 1
2022-08-06 14:57:34 -05:00
freq-mod a841296219
Y8950: PCM -> ADPCM
also where the f is my write access
2022-08-06 17:50:15 +02:00
tildearrow 5534f55f7a dev104 - add "is sample" flag to Sound Unit ins 2022-08-06 04:04:18 -05:00
tildearrow 0946d23883 Game Boy: fix phase reset macro when anti-click is 2022-08-06 00:39:09 -05:00
tildearrow 8a7d352ec6 PCE: fix phase reset macro when anti-click is on 2022-08-06 00:38:24 -05:00
tildearrow 6ec9cceb09 PCE: remove some sample playback clicking 2022-08-06 00:34:28 -05:00
tildearrow 049ab06544 PCE: add option to pick A/non-A revision of chip 2022-08-04 23:37:28 -05:00
tildearrow 3a18e1e6fc partially implement command stream binary mode 2022-08-04 18:50:52 -05:00
tildearrow 2e41d117d7 fix some of these command hints 2022-08-04 17:47:59 -05:00
tildearrow 09e32c7050 finish command dump hints 2022-08-04 15:14:29 -05:00
James Alan Nguyen 810eabca99 derp limits 2022-08-04 17:50:33 +10:00
James Alan Nguyen edb0f51131 stdint required 2022-08-04 17:43:42 +10:00
James Alan Nguyen b030f8285d Bugfix for OPM file load - correctly handle AM-ENA where value is arbitrarily nonzero 2022-08-04 17:33:36 +10:00
tildearrow d54d853ff8 add a command stream dump option 2022-08-04 00:51:47 -05:00
tildearrow a0d10aa60b Game Boy: implement anti-click 2022-08-03 19:17:18 -05:00
tildearrow 7ec4f7cb9e VGM export: add option to insert pattern change hi
nts
2022-08-03 18:44:45 -05:00
tildearrow fce0371756 add "hint" commands 2022-08-03 17:21:47 -05:00
tildearrow 52c3b10373 add getWantPreNote()
currently only C64 system requires this
2022-08-03 16:21:30 -05:00
tildearrow 53120edd99 disable MIDI clock 2022-08-03 14:41:53 -05:00
tildearrow 46425655ad YM2612: fix possible ExtCh DualPCM muting issue 2022-08-03 14:41:53 -05:00
cam900 89042f61eb Fix link for vgsound_emu (moved into https://gitlab.com/cam900/vgsound_emu) 2022-08-03 21:56:22 +09:00
tildearrow 0d4f20b7a6 SoundUnit: add 64K chip revision 2022-08-03 00:05:58 -05:00
Waldemar Pawlaszek 5feba3a716 More robust popcnt 2022-07-31 22:26:59 +02:00
tildearrow a9afcf873c fix ARM build 2022-07-31 14:05:23 -05:00
Waldemar Pawlaszek 6ff51ce8f3 #511 Added dynamic popcnt dispatcher 2022-07-31 11:33:38 +02:00
tildearrow 1921fd1759 PCE: implement anti-click technology 2022-07-30 01:00:51 -05:00
tildearrow 2b4b320a74 fix noMultiSystem setting being inverted 2022-07-27 02:36:48 -05:00
tildearrow 173e9b0df9 **Namco C163** 2022-07-26 18:23:01 -05:00
tildearrow 280592cf33 fix build 2022-07-26 01:42:34 -05:00
tildearrow 8d17500315 jlhafasjkhdgkdhjasfd 2022-07-25 19:45:49 -05:00
tildearrow 3ff8f3d860 FC loader: read slides 2022-07-25 19:09:42 -05:00
tildearrow 09e457003b add option for soft-clipping 2022-07-25 18:41:47 -05:00
tildearrow 83386d082d add a proper CLI
featuring skip order (left/right) and pause (space)!
currently available on macOS and Linux only.
2022-07-25 17:23:56 -05:00
tildearrow 9a0609ae1a fix build... 2022-07-24 02:24:57 -05:00
tildearrow 1dbdf8558c Merge branch 'master' of github.com:tildearrow/furnace 2022-07-24 01:57:21 -05:00
tildearrow 588f3f737c preliminary Future Composer module loading
only loads patterns and doesn't deduplicate
conversion required to fit in the Furnace format (no transpose ins/note)
even the pattern loader itself isn't complete due to how different the
format is
2022-07-24 01:57:10 -05:00
cam900 b48b7c8bc5 Apply loop end position for generic DAC 2022-07-24 12:23:38 +09:00
Christoph Neidahl e08399156a
Haiku support (#596)
* Don't apply Wayland videodriver workaround on Haiku

* dirent.d_type-less type detecting in IGFD

The Dumb Way(tm). `stat`'s `st_mode` should be nicer?

* CMake check for dirent.d_type, stat-based fallback

* Move config dir setup to separate function

Nicer to work with than macro kerfuffle.

* Default sysFileDialog to off on Haiku

* Logging stuff

* Honour CMAKE_INSTALL_BINDIR

* Use find_directory on Haiku

Includes forgotten configPath line when home==NULL.

* Address PR review notes
2022-07-23 22:11:30 -05:00
Aleksi Knutsi 8011e7adc7
Implement Phase Reset Timer macro for Sound Unit (#573)
* Implement Phase Reset Timer Macro

* And make the macro actually work

* Delete ex4Max variable
2022-07-23 19:13:30 -05:00
tildearrow 623c0efbba
Merge pull request #578 from tildearrow/ngp
Add generic PCM DAC system
2022-07-23 19:12:51 -05:00
tildearrow 8d88ac766c dev103 - store system name and other info in song 2022-07-23 17:02:03 -05:00
tildearrow d004629a58 dev102 - new sample storage format 2022-07-22 02:29:01 -05:00
tildearrow 7bc3166ed5 YMZ280B: frequency precision improvement
frequency is now multiplied by 256 and then fed to the chip divided by
256 to increase freq precision
2022-07-22 00:01:29 -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
tildearrow f6b45d3d9b GUI: add Namco C163 chip name option 2022-07-21 15:21:29 -05:00
cam900 a5959ae7b9 Struct-ize sample map variable 2022-07-20 23:01:06 +09:00
tildearrow cd7b333b2d introduce a benchmark mode 2022-07-19 17:01:19 -05:00
tildearrow a4741861ce fix audio output being reset on cmd line export 2022-07-19 15:57:06 -05:00
tildearrow 707dc30f15
Revert "Fix issue #567: LFO disable/enable behavior for YM2151." 2022-07-17 00:05:56 -05:00
Natt Akuma e334fdddb8
Merge pull request #572 from ZeroByteOrg/opmlfo
Fix issue #567: LFO disable/enable behavior for YM2151.
2022-07-17 12:04:38 +07:00
tildearrow 15ab8cc49b YM2612: fix a CSM issue with key off 2022-07-12 18:45:54 -05:00
tildearrow c85b67b1da NES + chip -> Famicom + chip 2022-07-09 15:55:27 -05:00
tildearrow c2f1385703 MSM6258: fix position not being reset in furnace s
ample mode
2022-07-08 02:25:25 -05:00
cam900 fe94ea8e04
Fix typo 2022-07-07 04:10:32 +09:00
tildearrow b39924c9d6 AY: TODO fix wtr_envelope.dmf 2022-07-05 01:16:25 -05:00
tildearrow f4a85bebff dev101 - fix SMSFM_intro.dmf 2022-07-04 01:43:59 -05:00
tildearrow 949e293053 SMS: aaaand more .dmf compatibility 2022-07-03 23:43:13 -05:00
tildearrow 0ec28f168e more .dmf compatibility stuff 2022-07-03 23:31:35 -05:00
Natt Akuma f8425b817f Fix GCC errors 2022-07-03 20:11:04 +07:00
Natt Akuma d3cd7bbb81 Add generic PCM DAC system
For use with NGP DAC and some arcade system combos
2022-07-03 01:42:47 +07:00
Natt Akuma fac415c8e8 Prepare for NGP system
Also add PCM DAC as system format 0xc0
2022-07-02 08:19:25 +07:00
Natt Akuma 59bcd9599f OPL: Missed changes from last commit 2022-07-01 17:55:33 +07:00
Natt Akuma 02b28e6e7d OPL: Correct CHIP_FREQBASE to match clock ratio
This changes from 9440540 to 9437184
2022-07-01 17:33:33 +07:00
ZeroByteOrg 807848cfee Fix LFO disable/enable behavior for YM2151. 2022-06-29 16:59:47 -05:00
tildearrow a8a38dce2b 0.6pre1 - introduce the final changes
- implement E1xy/E2xy Defle bug when using same note twice
- add SNK Touchdown Fever preset
- update README.md and to-do list
- update credits

thank you for your patience!

see you in 0.6pre1.5 coming soon...
2022-06-29 04:57:05 -05:00
tildearrow 0a055ff85b OPL: fix crash 2022-06-29 02:11:25 -05:00
tildearrow b99dce5362
Merge pull request #499 from superctr/220527_blocksize
Save the size of each block in a Furnace module
2022-06-29 01:54:05 -05:00
tildearrow 4a0bb1fa38 OPLL: one more chan osc fix 2022-06-29 01:50:20 -05:00
tildearrow 0b70902dbe OPLL: fix per-channel osc, part 2 2022-06-29 01:40:03 -05:00
tildearrow 9fee9fa363 GUI: run per-chan osc on instrument preview 2022-06-29 01:37:12 -05:00
tildearrow 4dfd413ead OPLL: fix per-channel osc, part 1 2022-06-29 01:32:52 -05:00
tildearrow 90481cc460 OPL: fix drums mode per-channel osc 2022-06-29 01:06:31 -05: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 3ea0ad1e0a OPL: fix pitch macro
fixes #535
2022-06-28 23:32:36 -05:00
tildearrow 8c8ad7f5ab fix audio saving being totally wrong 2022-06-28 22:08:24 -05:00
tildearrow 13f14b6854 SoundUnit: fix copy-paste blunder 2022-06-28 12:55:14 -05:00
tildearrow be7d7002e2 fix opening/saving audio files with non-ASCII char
s on Windows

this required making a wrapper...
2022-06-28 02:00:08 -05:00
tildearrow f483292a88 OPN[A/B/2]?: implement 18xx effect 2022-06-28 01:16:46 -05:00
Natt Akuma e2449d91f1 VERA: Run noise generation in each channel update 2022-06-27 19:37:45 +07:00
tildearrow b04743d045 SMS: implement Game Gear stereo in Nuked core 2022-06-27 04:09:24 -05:00
tildearrow fef09fb00d fix major per-channel audio export issue in ExtCh 2022-06-27 03:55:55 -05:00
tildearrow 869fe23036 fix .y12 TL loading 2022-06-27 03:44:09 -05:00
tildearrow 7ea49d7e84 what? 2022-06-27 03:39:42 -05:00
tildearrow e39a923b23 C64: fix per-channel osc for 6581 2022-06-24 03:26:00 -05:00
tildearrow 951db12e6a Namco WSG: fix C15/C30 high notes 2022-06-23 22:59:06 -05:00
tildearrow a717c67f3d change IDs of null/dummy audio backends
for eventual alternate audio backend support
2022-06-23 22:53:21 -05:00
tildearrow b66cc81fc6 fix loading 24-bit samples 2022-06-23 22:33:25 -05:00
tildearrow 7586db9a1b fix Termux build again 2022-06-23 16:25:51 -05:00
tildearrow b90552dfb1 fix Termux build 2022-06-23 16:23:46 -05:00
Natt Akuma 142b8b2bb0 safeReader: Copy a value instead of direct casting
This fix crashes on architectures with forced alignments such as ARM
2022-06-23 09:03:20 +07:00
Natt Akuma 8dc143af7b PET: Support full 16-bit period range
Fix #500
2022-06-23 02:42:11 +07:00
Natt Akuma 4bf4be1ea2 Fix 16-bit samples in YMZ280B VGM export 2022-06-22 21:55:31 +07:00
tildearrow e3686c2e34 fix song playing from begin if stopped on last row 2022-06-20 22:14:16 -05:00
cam900 69ea1d0227 Fix AY8930 unmuting 2022-06-21 11:06:26 +09:00
tildearrow 5a1a583ab0 AY: finally fix unmuting 2022-06-20 18:53:39 -05:00
tildearrow fd61e0e9f8 ZX beeper: per-"channel" osc
there's only one
2022-06-20 18:48:10 -05:00
tildearrow ee709b85c2 Namco WSG: per-channel oscilloscope 2022-06-20 18:20:49 -05:00
tildearrow 6772159d5f one more GCC < 8 fix 2022-06-20 04:58:03 -05:00
cam900 9cad907773 Fix potential register related issue 2022-06-18 11:07:36 +09:00
tildearrow 39fa3d7d85 Merge branch 'master' into preset1 2022-06-17 20:40:09 -05:00
cam900 6dc81c7af1 Pitch correction (again), Fix compatibility issue 2022-06-18 10:38:48 +09:00
tildearrow 753458f898 LOL 2022-06-17 04:51:39 -05:00
cam900 25af023dc6 Various corrections and fixes
Fix SN PSG pitch corrections
Revive YM2612 from dead
Add Game Gear stereo function finally
Add OPN/A prescaler config
2022-06-17 14:30:18 +09:00
tildearrow ad5072dad6 more MIDI debugging messages 2022-06-16 23:55:17 -05:00
tildearrow b7d8f3c17a harden sample movement 2022-06-16 23:39:38 -05:00
tildearrow 4d44c577e7 support saving 8-bit samples as-is 2022-06-16 23:22:40 -05:00
tildearrow cdbcf7fcd3 fix loading 8-bit samples 2022-06-16 22:10:57 -05:00
tildearrow 327952f3f4 finally support loading floating-point samples 2022-06-16 22:07:12 -05:00
tildearrow ed6a110d44 initialize SF_INFO before loading sample 2022-06-16 21:25:21 -05:00
cam900 0c1a8bc001 Merge branch 'master' into preset1 2022-06-17 09:19:17 +09:00
Natt Akuma c44ca95b92 Make volume command handling consistent
For WonderSwan and VIC-20
2022-06-17 03:06:07 +07:00
tildearrow dc9f1112d1 MSM6258: fix rate being twice
#541
2022-06-14 23:00:20 -05:00
tildearrow d48801cfde GUI: slight visualizer tweaks 2022-06-14 04:41:57 -05:00
tildearrow da756bef7f OPL: fix 4-op channel muting 2022-06-12 23:22:45 -05:00
tildearrow dd05429c0e WaveSynth: initialize wave to 0 on SCC/Bubble Syst 2022-06-09 18:16:51 -05:00
cam900 6aa88b0770 Move on .cpp, prepare for variable rate support 2022-06-08 10:10:55 +09:00
cam900 7bbfe3af7c Fix per-channel osc 2022-06-07 23:59:50 +09:00
cam900 dd93f6d18e Merge branch 'master' into preset1 2022-06-07 13:04:17 +09:00
cam900 3e953f57b3 Prepare for TI-99/4A support
only works on MAME core only for now.
2022-06-07 12:57:09 +09:00
tildearrow 6dc408d99c SAA1099: remove MAME core
closes #529

the MAME core is inaccurate.
it doesn't emulate envelope too well.
2022-06-06 15:05:08 -05:00
tildearrow d3a3473f19 commit requested changes 2022-06-06 13:32:57 -05:00
cam900 74e3892fd9 Finally fixed 2022-06-06 23:26:22 +09:00
cam900 8bc545c8ab Fix compile (again) 2022-06-06 22:45:16 +09:00
cam900 5473b8722d Fix compile, Remove unused include 2022-06-06 19:52:13 +09:00
cam900 ebbd9784e6 Reduce more FM codes 2022-06-06 19:40:37 +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 64fa5f804b finish fade out on audio export option 2022-06-06 04:00:56 -05:00
tildearrow b6ea8ede86 fade out experiments - DO NOT COMPILE 2022-06-06 03:05:55 -05:00