Commit graph

2644 commits

Author SHA1 Message Date
tildearrow
3183400019 it appears SDL2 takes over interrupt in console
mode
2022-07-25 16:21:39 -05:00
tildearrow
542a46e89b remove log spam (hopefully) 2022-07-24 03:41:01 -05:00
tildearrow
1d77719640 prevent exception in MIDI in/out from crashing 2022-07-24 02:45:21 -05:00
tildearrow
9a0609ae1a fix build... 2022-07-24 02:24:57 -05:00
tildearrow
ffe06013d7 GUI: fix preset typo 2022-07-24 01:58:14 -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
6697be4d95
Add/Update more presets
Williams/Midway ADPCM Sound board
Used for conjunction with their Y/T unit, it has ordinary de facto standard OPM+MSM6295 on this era with software controlled DAC from predecessors.

Konami Battlantis
Used at Battlantis arcade hardware, It is early SB Pro but mono configuration.

Sega System 24
This Sega's early arcade system featured to floppy disk and high resolution graphics. Sound hardware is similar as their System 16, but ADPCM is replaced to software controlled DAC.

Namco System 86
Predecessor of System 1(a.k.a. System 87), It features similar sound hardware and optional ROM and DAC expansion.

Namco Thunder Ceptor
Used at Thunder Ceptor, their Front view arcade machine. Namco system 86 and System 1 sound system is directly derived from this machine's sound system.

Irem M72
Irem's first arcade system with FM sound system, All released game except R-Type is featured also LOUD software controlled DAC, inherited from their predecessors sound system.
2022-07-24 13:28:26 +09:00
cam900
49cb216594 Merge branch 'master' of https://github.com/tildearrow/furnace 2022-07-24 12:25:17 +09:00
cam900
b48b7c8bc5 Apply loop end position for generic DAC 2022-07-24 12:23:38 +09:00
tildearrow
84c955058b GUI: Z280 whoops
issue #576
2022-07-23 22:22:05 -05: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
tildearrow
de77d51d7a GUI: update credits 2022-07-23 21:19:43 -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
78b5419004 GUI: fix effect list hotkey 2022-07-23 19:08:39 -05:00
tildearrow
26d60dd107 GUI: fix per-chan osc debug crash
fixes #600
2022-07-23 19:01:30 -05:00
tildearrow
984d61d081 GUI: update song information 2022-07-23 18:53:49 -05:00
tildearrow
dfcb9551e7 GUI: update credits 2022-07-23 18:53:42 -05:00
tildearrow
efa75a4480 GUI: sub-song info experiment 2022-07-23 18:40:48 -05:00
tildearrow
6051f92e68 GUI: add setting to customize initial system name 2022-07-23 18:22:42 -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
a137eefd20 GUI: refine the Namco [C]163 chip name option 2022-07-21 19:00:32 -05:00
tildearrow
f6b45d3d9b GUI: add Namco C163 chip name option 2022-07-21 15:21:29 -05:00
tildearrow
09b47fafe3 update demo songs 2022-07-21 14:49:42 -05:00
tildearrow
191a0dedf9 GUI: improve wavetable editor, part 2 2022-07-21 03:14:52 -05:00
tildearrow
962dab012c GUI: improve wavetable editor, part 1 2022-07-21 02:49:19 -05:00
cam900
4e8d71fc22
Fix sample map struct
Structize sample map variable is for easily extend features.
2022-07-21 13:42:20 +09:00
cam900
a5959ae7b9 Struct-ize sample map variable 2022-07-20 23:01:06 +09:00
tildearrow
dff7c61b79 GUI: add option to disable threaded input 2022-07-20 00:32:06 -05: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
96b7e5d353 GUI: implement multi sel on NFD and IGFD 2022-07-16 01:52:15 -05:00
tildearrow
666b0d581a GUI: add multi-selection capability to file dialog 2022-07-15 02:23:16 -05:00
tildearrow
d085f76c7f issue #588, part 3
add check for the existence of inb() and outb()
2022-07-14 22:29:04 -05:00
tildearrow
bad11bc21e whoops 2022-07-14 02:00:51 -05:00
tildearrow
28a2db7a57 GUI: system file picker error feedback 2022-07-14 01:59:55 -05:00
tildearrow
2f98da5675 GUI: sample editor icon improvements 2022-07-12 19:15:10 -05: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
cam900
9898d824c0
Fix typo 2022-07-07 04:09:50 +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
tildearrow
4b1db78a0b GUI: remove debug message 2022-07-03 23:02:45 -05:00
tildearrow
c3a693e804 GUI: possibly fix replace crashes 2022-07-03 23:02:25 -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
cam900
364c7c4104
Add Sega System E Preset
It is Sega System C/2 but Master system; but this system has 2 SMS VDPs (One for foreground and another for background) and they has they own PSG output.
FM addon is unofficial, but System E release of Fantasy zone II support that.

MAME driver: https://github.com/mamedev/mame/blob/master/src/mame/sega/segae.cpp
FM Addon example (Fantasy Zone II): https://www.youtube.com/watch?v=7dLc9UZ81CI
2022-07-02 11:59:27 +09: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
57c0f8bdc7 error feedback on Windows
see #540
2022-06-28 23:42:34 -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
96bc63470f GUI: add unsigned detune option
closes #559
2022-06-28 15:06:22 -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
fc489239c2 tildearrow Sound Unit no longer a secret 2022-06-27 05:04:23 -05:00
tildearrow
32ca9e6b0f remember last dir when using NFD 2022-06-27 04:58:25 -05: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
f8347ac50f GUI: fix several things in OPL drums ins editor
- alternate layout being wrong
- macros being wrong
2022-06-27 03:30:57 -05:00
tildearrow
fa29c6c00a GUI: update credits 2022-06-24 14:23:57 -05:00
tildearrow
e39a923b23 C64: fix per-channel osc for 6581 2022-06-24 03:26:00 -05:00
tildearrow
522fecc635 GUI: gradient whoops 2022-06-24 03:17:40 -05:00
tildearrow
deffd99503 pass filter to NFD - DOES NOT BUILD
I am so lazy to adapt the macOS part
2022-06-24 03:11:36 -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
96b126fd42 GUI: fix gradient color byte order 2022-06-23 20:58:48 -05:00
tildearrow
aa511d2718 GUI: implement Gradient2D::fromString()
WE ARE CLOSE
2022-06-23 18:18:33 -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
tildearrow
1b5396e814 GUI: save per-chan osc state 2022-06-23 04:02:41 -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
tildearrow
4731dad917 GUI: colors 2022-06-22 15:10:53 -05: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
Natt Akuma
22dd22ca33 Allow accessing all 256 waves in macros 2022-06-22 19:38:29 +07:00
tildearrow
e0bccc8c14 GUI: prepare for colors in the per-chan osc 2022-06-21 18:01:53 -05:00
tildearrow
e3686c2e34 fix song playing from begin if stopped on last row 2022-06-20 22:14:16 -05:00
tildearrow
af4a359801 GUI: make spoiler actually visible 2022-06-20 21:11:40 -05:00
cam900
69ea1d0227 Fix AY8930 unmuting 2022-06-21 11:06:26 +09:00
tildearrow
4ca64cc66c GUI: hide hidden channels in per-chan osc 2022-06-20 18:56:20 -05: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
b697694c0d GUI: per-channel osc DC offset centering 2022-06-20 18:41:23 -05:00
tildearrow
a4167a7dd8 Nothing 2022-06-20 18:36:05 -05:00
tildearrow
ee709b85c2 Namco WSG: per-channel oscilloscope 2022-06-20 18:20:49 -05:00
cam900
b3201853bc
Fix YM2151 clock in CPS-1 2022-06-21 06:54:18 +09:00
cam900
df21621ce7
Add drums mode in here, too 2022-06-21 06:36:41 +09:00
cam900
41135f4a95
Add extended channel 3 preset for here 2022-06-21 06:35:11 +09:00
tildearrow
57fab16269 GUI: add ability to drag to move when holding Ctrl 2022-06-20 16:24:14 -05:00
tildearrow
60334fb03c GUI: add spoiler window 2022-06-20 15:20:02 -05:00
tildearrow
6772159d5f one more GCC < 8 fix 2022-06-20 04:58:03 -05:00
tildearrow
d66ff353ba GUI: more fixes to drag to move 2022-06-19 19:07:38 -05:00
tildearrow
35bc757adf GUI: fix macOS system file picker crash 2022-06-19 18:51:51 -05:00
tildearrow
d47c50edaf GUI: fix drag to move 2022-06-19 18:23:44 -05:00
tildearrow
2313e4fcc3 GUI: temporarily remove freqs in sample map 2022-06-19 14:03:36 -05:00
tildearrow
52328df8c3 GUI: system file picker ins preview! (Windows) 2022-06-19 01:36:36 -05:00
tildearrow
8a1f544eef GUI: add ability to move selection by dragging 2022-06-18 23:18:34 -05:00
tildearrow
ea082b255c GUI: prepare for drag selection to move 2022-06-18 03:52:03 -05:00
tildearrow
0e163baffc GUI: update credits 2022-06-18 02:00:10 -05:00
cam900
33046c8e19 More presets
Dynax/Nakanihon 3rd generation hardware:
Naming reference is MAME source (https://github.com/mamedev/mame/blob/master/src/mame/drivers/ddenlovr.cpp), It's sound system combined with AY PSG(optional), OPLL, MSM6295 and mostly used in their mahjong, hanafuda, and something else.

Dynax/Nakanihon Real Break:
This sound system is used in Billard Academy Real Break (MAME source: https://github.com/mamedev/mame/blob/master/src/mame/drivers/realbrk.cpp), MSM6295 is replaced to YMZ280B but entire music is still drived in OPLL.
2022-06-18 11:42:14 +09: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
ab7c2acd56 GUI: try 2022-06-17 04:51:45 -05:00
tildearrow
753458f898 LOL 2022-06-17 04:51:39 -05:00
tildearrow
d911c8eeab GUI: remove pointless comment in find/replace 2022-06-17 02:42:55 -05:00
tildearrow
56b56ebdde GUI: fix cursor moving on undo replace 2022-06-17 02:41:40 -05:00
tildearrow
a8ae8f6e54 address the final find and replace issue 2022-06-17 02:40:34 -05:00
tildearrow
02d4712e9c implement undo in find and replace 2022-06-17 02:21:07 -05:00
tildearrow
d8513e0856 GUI: use Native File Dialog on Windows/macOS
latter is untested
2022-06-17 01:28:22 -05:00
cam900
66f3f0e678 Input clock is too high for these chips 2022-06-17 14:34:00 +09: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
7875ca4ac3 fix build 2022-06-16 02:09:57 -05:00
tildearrow
bdbebc99f1 GUI: prepare for replace undo 2022-06-16 01:26:19 -05:00