Commit Graph

235 Commits

Author SHA1 Message Date
Natt Akuma b8ea64b801 Rename WS to Swan 2022-03-07 19:04:20 +07:00
Natt Akuma 3b88786ffb Merge branch 'master' of https://github.com/tildearrow/furnace into x16 2022-03-07 16:46:32 +07:00
Natt Akuma 840a6fa306 Add WonderSwan support 2022-03-07 15:44:59 +07:00
cam900 fca4bdc1ee Merge branch 'master' of https://github.com/tildearrow/furnace into x1_010
# Conflicts:
#	.gitmodules
#	CMakeLists.txt
2022-03-07 02:35:14 +09: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 c34b8325c9 more OPL preparation
DOES NOT WORK YET - JUST A PLACEHOLDER
2022-03-05 18:18:08 -05:00
tildearrow 84ba63db24 add PC speaker system
haha
2022-03-04 18:18:43 -05:00
Natt Akuma 9abf872ff3 Add VERA support for Commander X16 2022-03-04 18:20:38 +07:00
tildearrow 63456a88d8 get rid of SDL1 check
see pull request #244
2022-03-02 16:10:18 -05:00
cam900 cd4c876c5e Merge branch 'master' of https://github.com/tildearrow/furnace into ym2610b
# Conflicts:
#	src/engine/engine.cpp
#	src/engine/playback.cpp
2022-02-25 23:47:28 +09:00
tildearrow 37f850c6c4 prepare for OPLL system - DOES NOT WORK 2022-02-25 04:26:01 -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 e4b9a6d1d9 compound system flattening, part 1
as of now compound systems (Genesis and Arcade) are translated to
separate chips.

this improves audio quality and makes things easier.

it also allows you to change the volume of each chip on a Genesis.

also adds SegaPCM system with 16 channels!
2022-02-23 02:52:30 -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 869f799299
Merge branch 'tildearrow:master' into master 2022-02-21 19:58:30 +01:00
tildearrow fd28d1aef0 add support for building without RtMidi 2022-02-21 13:47:49 -05:00
Waldemar Pawlaszek 1d5813aba3
Merge branch 'tildearrow:master' into master 2022-02-21 12:53:52 +01:00
tildearrow d0df796c12 release v0.5.7 2022-02-21 03:19:42 -05:00
Waldemar Pawlaszek 8a8c8406b7
Merge branch 'tildearrow:master' into master 2022-02-21 05:58:25 +01:00
tildearrow 197d3ab39d OR SYSTEM_RTMIDI 2022-02-20 17:58:12 -05:00
Waldemar Pawlaszek 2e4c7ec60a Initial Atari Lynx Support 2022-02-20 18:15:15 +01:00
tildearrow 840be64314 split config management 2022-02-18 13:11:04 -05:00
tildearrow 84cf4ec046
Merge pull request #187 from TheEssem/patch-1
Change LICENSE install location
2022-02-18 13:05:19 -05:00
tildearrow 1a95e18f13 split system definition code
engine.cpp is now shy of 2500 lines
2022-02-18 13:04:33 -05:00
tildearrow 650beebe99 split VGM ops code 2022-02-18 12:58:36 -05:00
Essem bc0814babd
Change LICENSE install location
Necessary for packaging on some distros
2022-02-18 11:57:46 -06:00
tildearrow c39d3898b4 split file ops code 2022-02-18 12:39:45 -05:00
tildearrow f735617ee3 GUI: code split, part 4
gui.cpp now 5600 lines
2022-02-17 22:59:11 -05:00
tildearrow dde2849a16 GUI: code split, part 3 2022-02-17 22:40:23 -05:00
tildearrow b3d26d3309 GUI: code split, part 2 2022-02-17 14:04:39 -05:00
tildearrow 0feba09de2 GUI: code split, part 1 2022-02-17 13:08:17 -05:00
tildearrow 7bc0f530a3 oh I forgot about CMake and Info.plist! 2022-02-17 03:38:54 -05:00
tildearrow 91579e09eb GUI: don't abort on font load failure
paving the way for custom fonts
2022-02-14 18:00:04 -05:00
tildearrow 2f766553e8 add SAASound as an alternate SAA1099 core
DOES NOT WORK YET
2022-02-13 17:02:49 -05:00
tildearrow aa0e318543 add RtMidi for eventual MIDI support 2022-02-13 15:02:43 -05:00
Plane dbed326a58 Tell MSVC source files are in UTF-8 format
On some locales (e.g. Japanese) MSVC will fail to build Furnace
because it makes an incorrect assumption about the encoding of
source files.  In particular, string literals in engine.cpp cause
compile errors.  This probably doesn't show up in CI because of
the difference in locale.

This patch adds the `/source-charset:utf-8` compiler flag for MSVC,
which tells it the encoding of the source files.

With this change, MSVC appears to build Furnace properly.  Tested
with Visual Studio Professional 2022.
2022-02-10 21:26:13 -05:00
OPNA2608 f56d771a4d Fix ObjC code linking 2022-02-10 21:25:23 -05:00
tildearrow 569de9d81a add preliminary ymfm OPZ code 2022-02-09 23:19:02 -05:00
tildearrow 589b887928 release v0.5.5 2022-02-09 03:44:48 -05:00
tildearrow 211208ed53 GUI: fix UI scaling on macOS
required patching ImGui D:
but hey, it mostly works! issue #35
2022-02-08 02:04:23 -05:00
tildearrow 045dfa679a release v0.5.4
sorry this doesn't include too many features as it is another critical
bug fix release
2022-02-05 16:47:22 -05:00
tildearrow 50516d86ae release v0.5.3 2022-02-05 04:42:10 -05:00
tildearrow 34ec189be5 release v0.5.2
FAST
2022-02-05 03:10:19 -05:00
tildearrow 26cd33bae6 fix windows build 2022-02-02 01:06:29 -05:00
tildearrow 09106f661f fix Termux build 2022-02-01 16:05:01 -05:00
Christoph Neidahl c83e146d11
Improve devendoring & other CMake stuff (#21)
* Improve devendoring

* Add warning flags for own C++ code

For https://github.com/tildearrow/furnace/pull/12#issuecomment-1017330467.

* Document new CMake options

* pkg-config stuff

* Warnings stuff for MSVC yay

* Use more specific linking vars & functions

* Fix Linux icon location

* DEPENDENCIES_LEGACY_LDFLAGS for JACK too
2022-02-01 15:50:25 -05:00
tildearrow 7c9beca93f release 0.5.1 2022-02-01 03:50:11 -05:00
tildearrow 82e24c0db0 useless change 2022-01-31 16:33:37 -05:00
tildearrow 0e633ea69b GUI: add a debug window 2022-01-27 00:29:16 -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 9d2032d627 VGM export: Arcade sample looping 2022-01-24 17:13:47 -05:00
OPNA2608 c061b36720 Fix MSVC linking 2022-01-21 13:47:09 +01:00
tildearrow 61639e5123 release v0.4.6
don't worry, this won't be the final release
2022-01-21 04:42:18 -05:00
tildearrow 8ab97a959c add ps_fopen to properly handle fopen on Windows
fixes #22
2022-01-20 05:04:03 -05:00
tildearrow b66918bf62 don't compile icon.c under Windows either
MSVC weirds out
2022-01-20 01:46:03 -05:00
tildearrow 068fb0f3ce release v0.4.5 2022-01-19 17:02:27 -05:00
tildearrow 379d90ae4d add more fonts
partially related to an issue when displaying non-Latin characters
however a true fix isn't coming yet as I haven't figured out a way
to load glyphs during run-time as needed
2022-01-19 16:58:01 -05:00
tildearrow 62a499644f add wavetable saving 2022-01-19 05:10:06 -05:00
tildearrow 7c40948680 release v0.4.4 2022-01-19 04:34:12 -05:00
tildearrow dce289a5a0 add early code for saving instruments 2022-01-19 03:28:29 -05:00
tildearrow fe757ac6e7 release 0.4.3
urgent release due to serious bug when removing systems
2022-01-19 01:40:15 -05:00
tildearrow 1d5277c27b more devendoring fixes 2022-01-18 02:56:12 -05:00
tildearrow f652d6c738 fix devendor again and prepare for 0.4.2 2022-01-18 02:09:47 -05:00
tildearrow a60eae00e5 add install directives for resource files
fixes #6
2022-01-18 01:00:08 -05:00
tildearrow 4419f72218 devendor libraries 2022-01-18 00:45:17 -05:00
tildearrow df3ae12278 fix furnace for 32-bit 2022-01-17 21:08:14 -05:00
tildearrow d828018500 release v0.4.1
fixes critical AppImage fail issue and some other things
2022-01-17 17:31:48 -05:00
tildearrow 1f4c721749 fix build in some cases
link against SDL2-static
2022-01-17 14:26:02 -05:00
tildearrow 35834a1116 release 0.4 2022-01-16 04:23:23 -05:00
tildearrow 113a1577b6 do the Amiga 2022-01-15 17:28:33 -05:00
tildearrow 307665f531 prepare for SAA1099 2022-01-14 16:29:27 -05:00
tildearrow 573ce69dc7 add TIA platform
currently there is a desync bug which remains to be fixed...
2022-01-14 03:37:36 -05:00
tildearrow dce06d8ec4 add AY8930 platform 2022-01-14 00:02:10 -05:00
tildearrow 0b352ecd9a add AY-3-8910 platform!
this paves the way for eventual AY-3-8930 platform...
2022-01-13 02:52:19 -05:00
tildearrow 177fe0fbdd release 0.3.1
- added `25xx` and `26xx` effects in Neo Geo platform for
  envelope period slides
- added `3xxx` and `4xxx` effects in C64 for fine duty/cutoff control
- made home/end keys work
- deleting a single note will delete related instrument value as well
- fix instrument value input when there are less than 16 instruments
- added `Cxxx` effect for mid-song Hz change
- possibly fix a hang when using multiple sound chips
- reduce PC Engine CPU usage
2022-01-12 23:00:22 -05:00
tildearrow 245a566806 release 0.3
- all-new Furnace file format
- ability to add multiple sound chips in a single song!
- made more buttons work
- revamped instrument editor
- revamped wavetable editor with custom width/height
- C64 duty/filter macros may now be absolute
- finally! an icon!

after this release, the focus will be on adding features, fixing bugs
and adding new platforms. enjoy!
2022-01-11 03:58:19 -05:00
tildearrow 7080434ed4 this does not compile 2022-01-08 16:03:32 -05:00
tildearrow 45d39b2483 add Windows icon 2022-01-07 17:41:47 -05:00
tildearrow c6f17f1360 use the new icon 2022-01-07 03:29:56 -05:00
tildearrow a10972df99 rename the macOS volume 2022-01-06 18:36:59 -05:00
tildearrow 28d3dc2691 release 0.2.2 2022-01-06 13:24:12 -05:00
tildearrow cbc39909e4 release 0.2.1
several fixes and stuff
2022-01-01 12:45:21 -05:00
tildearrow 217e42471b release 0.2
the first release ever with pre-built binaries
2021-12-30 18:58:51 -05:00
tildearrow e1a7c765fd yay AppImage build script 2021-12-30 17:31:08 -05:00
tildearrow 7c6c138007 FINALLY macOS build script works 2021-12-29 18:00:14 -05:00
tildearrow 51c9113ab4 add mac build script
DOES NOT WORK!!!
2021-12-29 17:47:17 -05:00
tildearrow 8e993e00c8 prepare for macOS bundle 2021-12-24 18:12:36 -05:00
tildearrow 84f36a8c66 icon fonttttttt 2021-12-21 00:30:55 -05:00
tildearrow ea19f133d6 prepare for eventual release 2021-12-19 13:05:09 -05:00
tildearrow f42cfcbdc8 custom config directory 2021-12-19 03:16:24 -05:00
tildearrow 9d8a2f780b GUI: add a wavetable editor 2021-12-18 17:54:26 -05:00
tildearrow 2baed0cff0 fix windows build... 2021-12-16 15:51:19 -05:00
tildearrow ebb28d912b untested saving code and memory leak fix 2021-12-15 14:15:44 -05:00
tildearrow 2879b5e4d0 arcade: add ymfm-based core
less CPU usage at the cost of some quality
2021-12-15 01:23:58 -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 95e3a098d0 add Neo Geo extended channel 2 support 2021-12-14 14:31:57 -05:00
tildearrow 1d2c129c01 GUI: a rough FM ins editor 2021-12-11 17:41:32 -05:00
tildearrow 2f813c55e0 GUI: instrument selector 2021-12-11 16:44:02 -05:00
tildearrow 9b850c1763 GUI: earliest ever GUI 2021-12-11 03:11:40 -05:00
tildearrow e8ac2947ab prepare for the GUI! 2021-12-11 02:10:09 -05:00
tildearrow 8c13774c21 reduce number of compilation steps 2021-12-10 15:16:40 -05:00
tildearrow d789ae759e neo geo let's goooooo 2021-12-09 13:25:02 -05:00
tildearrow 6cc0d58624 get things ready for neo geo 2021-12-09 03:37:31 -05:00
tildearrow d395abe47f actually obey the orders 2021-12-09 01:44:40 -05:00
tildearrow b358338613 arcade: minor optimization 2021-12-09 01:03:05 -05:00
tildearrow aff0afa7d1 prepare for arcade platform! 2021-12-08 17:40:35 -05:00
tildearrow 7e4370a880 i can't get it working 2021-12-07 16:09:00 -05:00
tildearrow 9fb02b5318 it compiles with MinGW 2021-12-07 13:48:21 -05:00
tildearrow f71ee6b45d preliminary audio file output 2021-12-07 12:21:23 -05:00
tildearrow 7490ed89a1 Revert "Revert "prepare to add file out - does not compile!""
This reverts commit ada8e71884.
2021-12-07 04:22:36 -05:00
tildearrow ada8e71884 Revert "prepare to add file out - does not compile!"
This reverts commit 45b202b85b.
2021-12-07 04:20:11 -05:00
tildearrow 45b202b85b prepare to add file out - does not compile! 2021-12-07 03:52:41 -05:00
tildearrow ff07a19405 kind of C64 2021-12-04 23:55:28 -05:00
tildearrow 2f7001681c prepare for C64 platform! 2021-12-04 02:42:22 -05:00
tildearrow 3286c3c0c5 NES system! almost 2021-12-04 01:19:54 -05:00
tildearrow c543553b0f prepare for NES platform 2021-12-03 16:04:07 -05:00
tildearrow f7080bb2c1 add parameter parsing 2021-06-09 03:33:03 -05:00
tildearrow d74fa698af prepare for PC Engine platform
using Mednafen core
2021-06-06 14:02:38 -05:00
tildearrow 1444752704 now fix macOS build 2021-05-28 16:06:57 -05:00
tildearrow 9a1f16757a fix Windows build on release config 2021-05-28 15:52:27 -05:00
tildearrow 2d3580a05c fix windows build for once 2021-05-28 15:25:55 -05:00
tildearrow c78cc8c676 finally output envelopes
apparently emulating the timers was necessary after all...
2021-05-27 05:06:43 -05:00
tildearrow c2b3d85f77 bind the game boy
TODO: sound
2021-05-26 03:17:12 -05:00
tildearrow 3c20bffd46 prepare for game boy platform
using SameBoy code (MIT License)
2021-05-22 21:10:25 -05:00
tildearrow 2532401265 prepare for ch3 mode 2021-05-16 17:43:10 -05:00
tildearrow 3172fd37ed more SMS work
it is able to play some modules... the next step is to bind this to the
Genesis platform
2021-05-15 16:42:48 -05:00
tildearrow d9f076ef64 prepare to add SMS platform
plays but no macro yet
2021-05-15 14:18:16 -05:00
tildearrow 775b88dae2 more playback work 2021-05-14 03:23:40 -05:00
tildearrow 76a345ef25 rebranding 2021-05-13 03:22:57 -05:00
tildearrow 062a9837c0 G E N E S I S
without SN
2021-05-12 17:19:18 -05:00
tildearrow f810fc0c3c earliest playback
no sound, just terminal output
2021-05-12 03:58:55 -05:00
tildearrow 8c014802c9 convert chars to signed/unsigned 2021-05-11 15:26:38 -05:00
tildearrow 783d56c72a initial commit
took me a day to make the base...
...and ~12 hours to write a reader that reads 100% of all demo songs in
1.0
2021-05-11 15:08:08 -05:00