Commit Graph

399 Commits

Author SHA1 Message Date
tildearrow 337e2183cd fix build on GCC < 8 2022-06-20 04:55:28 -05:00
tildearrow 03e31c441e prepare for ins preview in system file picker 2022-06-19 00:11:18 -05:00
tildearrow d8513e0856 GUI: use Native File Dialog on Windows/macOS
latter is untested
2022-06-17 01:28:22 -05:00
Natt Akuma f3a90d554c WIP SNES support, part 1 2022-06-10 03:19:31 +07:00
ZeroByteOrg d3717a5710 Merge branch 'master' into ZSMv1 2022-06-07 16:10:06 -05:00
tildearrow 507ad335b1 add instruments to make install 2022-06-06 18:18:45 -05:00
ZeroByteOrg 378f6a957b Merge branch 'master' into ZSMv1 2022-06-06 09:44:57 -05:00
tildearrow 9edc4818b5 prepare for find and replace window 2022-06-06 05:03:19 -05:00
tildearrow 74dcf69081 pass --with-our-malloc on MinGW 2022-05-31 12:42:47 -05:00
tildearrow 54e93db207 GUI: try using FFTW for per-chan osc wave center
not reliable yet
2022-05-31 03:24:29 -05:00
cam900 4f6f13e938 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace:
  GUI: improve unified data view
  GUI: sample editor preview in selection
  finally
  Revert "fudge and bread"
  Revert "fire!"
  Revert "temporarily kill MSVC"
  Revert "MSVC: ughh, f**k you, you d**khead."
  MSVC: ughh, f**k you, you d**khead.
  temporarily kill MSVC
  fire!

# Conflicts:
#	src/engine/engine.h
#	src/engine/playback.cpp
2022-05-30 08:13:27 +09:00
tildearrow cdcf87c773 Revert "fudge and bread"
This reverts commit 6afe29682d.
2022-05-29 00:44:21 -05:00
cam900 131081a030 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace:
  fudge and bread
  what?!
2022-05-29 13:50:09 +09: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 6afe29682d fudge and bread 2022-05-28 23:40:46 -05:00
tildearrow bf0b207a3d what?! 2022-05-28 23:12:22 -05:00
tildearrow 36c16467a5 fix Termux build 2022-05-27 15:51:57 -05:00
ZeroByteOrg b034e3c5da Commander X16 file export: ZSM format 2022-05-27 09:36:24 -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
tildearrow e3ebe0cb92 SMS: add modified Nuked-PSG core 2022-05-26 18:46:20 -05:00
tildearrow 0292f4d4c3 temporarily "fix" MinGW issue 2022-05-24 22:15:43 -05:00
tildearrow cad0eab9ca another fix 2022-05-24 13:40:38 -05:00
tildearrow 652edb18b7 fix it 2022-05-24 13:17:40 -05:00
tildearrow 914b5f7a88 experiment with backward-cpp again 2022-05-24 13:06:29 -05: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 8ea60f37c5 MSM6258: start work - DO NOT USE! 2022-05-23 19:01:10 -05:00
tildearrow f25cd17590 early OKI MSM6295 work 2022-05-23 01:46:58 -05:00
tildearrow e17c99dcdf allow building Furnace without SDL2 and libsndfile
for eventual libfurnace
2022-05-22 19:01:50 -05:00
tildearrow 43981eb59f bring up MSM6295 core
vgsound_emu by cam900
2022-05-22 18:06:56 -05:00
tildearrow 98e9a4b28d MSM6258 emulator de-MAMEfication 2022-05-22 17:49:41 -05: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 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 7b2237ffac we see it 2022-05-20 13:22:35 -05:00
tildearrow 251734bd04 prepare for the last chips for 0.6pre1
YMZ280B is counted. don't worry.
2022-05-20 02:43:39 -05:00
tildearrow dad1e71a33 OPNA: ExtCh system copy-paste 2022-05-18 22:49:21 -05:00
tildearrow e1bd5b03f3 de-submodule ImGui
allows for local modification which is necessary

see #442
2022-05-18 15:23:10 -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
OPNA2608 864e798686 Add x2 icon variations as well 2022-05-16 19:25:15 +02:00
OPNA2608 0851f1dffc Install more size variations on Linux 2022-05-16 19:16:55 +02:00
cam900 2a19834e14 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace:
  full linear pitch is now the default
  add a full linear pitch mode, part 7
  X1-010: implement linear pitch (part 6)
  VERA: implement full linear pitch (part 5)
  YM2610(B): implement full linear pitch (part 4)
  add a full linear pitch mode, part 3
  YM2612: implement full linear pitch (part 2)
  update readme
  re-enable warnings are errors on MSVC
  YM2612: early full linear pitch experiment
  GUI: window movement only by clicking on title bar
  Fix GCC errors 2
  Fix GCC errors
  Remove SCC from TODO.md
  SCC has no config flags currently
  Add SCC and SCC+ support

# Conflicts:
#	CMakeLists.txt
#	src/engine/dispatchContainer.cpp
#	src/gui/guiConst.cpp
2022-05-16 00:37:07 +09:00
tildearrow c5786b61fb dev95 - multiple songs in a single file (READ)
experimental feature! proceed with caution.
if you experience song corruption or crashes, report issue immediately!

files with multiple songs will be readable in older versions of Furnace,
but only the first song will be read in those versions.

issue #199
2022-05-15 01:42:49 -05:00
tildearrow 14053f70cb DO NOT USE - THIS FAILS - WORK IN PROGRESS 2022-05-14 18:19:07 -05:00
tildearrow 895765b68a and here's your ZX beeper
no real hardware yet
specs of this dispatch may change at any time to fit a driver
2022-05-14 00:22:23 -05:00
tildearrow 4a563a416e prepare for Y8950/YMU759 ADPCM 2022-05-13 14:59:36 -05:00
tildearrow f2db15b2ce add OPNA chip (work in progress) 2022-05-13 02:52:43 -05:00
tildearrow a58d49a831 GUI: more mobile-specific changes 2022-05-11 16:09:23 -05:00
tildearrow ab969c1da0 add OPN chip
pretty much copy-paste from YM2610B code

next up: even more blatant copy-paste in 2608
2022-05-11 03:29:03 -05:00
cam900 54e78699a7 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace:
  dev94 - add a full linear pitch mode, part 1
  YM2610(B): use f-num/block baseFreq calculation
  GUI: remove insLoadAlwaysReplace setting
  GUI: right click menu for open instrument
  GUI: add a threshold for macro right click
  OPZ: remove debug printf
  GUI: add macro right click menu
  GUI: prepare for macro right click menu
  update gitignore
  add something
  prepare for something
  did i fix macOS build?
  GUI: macro edit improvements
2022-05-11 00:55:03 +09:00
cam900 4efa711a2b Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace: (44 commits)
  GUI: now add ability to load VMEM
  Update sysDef.cpp
  GUI: add an option for it
  add preliminary TX81Z SysEx response
  OPL: drum volume
  OPL: implement hard reset
  GUI: add icon size setting
  GUI: macro UI refactor, part 4
  Fix WIN32 define timing in IGFD
  Fix outdated calling convention in SAASound (maybe fix MinGW)
  GUI: macro UI refactor, part 3
  GUI: macro UI refactor, part 2
  Masochism Volatile Compiler
  GUI: is the macro UI back yet
  OPL: fix 4-op muting (I think)
  GUI: macro UI refactor, part 1 - PLEASE READ
  GUI: remove classic macro view
  Maybe just enforce for C++
  Forbid standard extensions
  .ftm loading progress (incomplete, not working)
  ...

# Conflicts:
#	src/engine/instrument.h
#	src/gui/insEdit.cpp

Transwave Checkpoint
2022-05-11 00:16:20 +09:00
Natt Akuma a3fc76c984 Add SCC and SCC+ support 2022-05-10 11:25:10 +07:00
tildearrow 40e992cc6f prepare for something 2022-05-08 15:59:42 -05:00
tildearrow 2c643aca4c add preliminary TX81Z SysEx response
- load voice data
2022-05-08 02:01:32 -05:00
OPNA2608 b35701f938 Maybe just enforce for C++
We don't demand a specific standard for C anyway, maybe that'll trip it up less?
2022-05-06 12:52:50 +02:00
OPNA2608 d0524c025e Forbid standard extensions
Standard or bust.
2022-05-06 12:40:36 +02:00
tildearrow b75336bcb6 OPL: fix channel muting - PLEASE READ!
**SUBMODULES UPDATED** - Nuked-OPL3 is no longer a submodule as I
had to directly modify the core for this
if you mess up while removing Nuked-OPL3 from your repo, delete
everything and clone again

fixes #414
2022-05-04 18:06:32 -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
tildearrow 7b31f6a3e5 now fix it damn it 2022-05-01 22:52:22 -05:00
cam900 5414213710 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace:
  maybe uninitialized
  GUI: prepare for a per-channel oscilloscope?
  GUI: add backdrop if system file picker is open
  GUI: add ability to customize startup system
  GUI: finally implement "don't scroll when moving c ursor" setting
  new panning effects (80/81/82)
  GUI: fix sample paste crash
  GUI: implement sample scroll with mouse wheel
  sysDef oopsie

# Conflicts:
#	src/gui/guiConst.cpp
2022-05-01 00:25:21 +09:00
tildearrow 4197fa44fb GUI: prepare for a per-channel oscilloscope?
currently supported systems:
- Amiga
- AY-3-8910
- Dummy System
- OPLL
- SegaPCM

no trigger supported yet!
2022-04-30 03:58:30 -05:00
cam900 37216e323f Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace:
  fix MSVC oh my
  improvements to sysDef and UX changes

# Conflicts:
#	src/engine/dispatchContainer.cpp
#	src/gui/insEdit.cpp
2022-04-27 21:21:08 +09:00
tildearrow 78bdd98e0b improvements to sysDef and UX changes
- "no undo" in clear option
- only display instrument types depending on current systems
2022-04-27 04:48:56 -05: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
tildearrow d4380e1524 GUI: add an effect list window 2022-04-19 18:44:05 -05:00
tildearrow cc08dd895b get rid of backward completely for real 2022-04-18 03:17:11 -05:00
tildearrow eafbec6cfc really what the heck 2022-04-18 02:16:57 -05:00
tildearrow d4f58cb6ea the final take (hopefully) 2022-04-18 02:09:37 -05:00
tildearrow 70ff71af44 take 3 2022-04-18 01:49:28 -05:00
tildearrow 744c5982e1 bring on backward-cpp
cross your fingers
2022-04-18 01:31:03 -05:00
tildearrow 45f1c82779 sorry 2022-04-11 02:05:58 -05:00
tildearrow 9e0e725802 Sorry but I think I'd like to go now. 2022-04-11 00:12:24 -05:00
tildearrow 92b8703574 try fixing the build
if this doesn't work then goodbye Date
2022-04-10 23:20:25 -05:00
tildearrow 552967246d **SUBMODULE UPDATE - PLEASE READ!**
as of now I have added the Date library as a submodule in order to have
log messages in the correct time zone

please update your submodules by doing:
```
git submodule update --init --recursive
```
2022-04-10 23:01:55 -05:00
tildearrow fddd05dc1a improve logging facility
we have a log viewer within the program now
2022-04-10 22:12:02 -05:00
OPNA2608 ae4968318e Tell SDL headers in MSVC build that we have a libc 2022-04-09 21:10:00 +02:00
OPNA2608 43b12c1ca5 Ignore C4244, C4305 & C4309 2022-04-09 10:54:06 +02:00
OPNA2608 d4fbebf478 Lower MSVC warning level to 2 (significant), enable WAE on CI 2022-04-09 10:54:04 +02:00
OPNA2608 54a36c4950 Fix SDL static linking 2022-04-08 20:16:42 +02:00
tildearrow 4dfe9f97fb prepare for wavetable synth 2022-04-07 15:46:48 -05:00
tildearrow 530327383a initial OPZ bring-up
even emulation is incomplete and one thing is making me tired...
2022-04-06 22:56:06 -05:00
tildearrow 2da96a7e76 initial MMC5 bring-up 2022-04-06 00:34:12 -05:00
tildearrow ac3772c024 initial FDS bring-up 2022-04-03 22:37:16 -05:00
tildearrow 6567d29450 separate instrument file ops 2022-04-03 02:15:04 -05:00
tildearrow 251da3a9d0 dev75 - MIDI input improvements (mostly) 2022-04-01 05:24:35 -05:00
tildearrow ffb01dd19c Revert "release 0.6pre0"
This reverts commit f7566455c2.
2022-04-01 05:20:00 -05:00
tildearrow f7566455c2 release 0.6pre0 2022-04-01 04:45:06 -05:00
tildearrow 77798f6ed7 more MIDI work... still not there 2022-03-29 16:09:15 -05:00
tildearrow 5360cd73f4 earliest MIDI input! (no note input tho) 2022-03-28 03:46:50 -05:00
tildearrow 4422ff7695 Merge branch 'vrc6' of https://github.com/cam900/furnace into cam900-vrc6 2022-03-27 22:16:04 -05:00
cam900 ef104ce0b0 Add VRC6 support
2 Pulse channels:
- 8 level pulse duty cycle, DAC mode(just ignores duty cycle)/pulse wave mode, 4 bit volume.
- Furnace support PCM playback in pulse channels with duty cycle ignore mode.

Sawtooth:
- nothing but 6 bit volume (8 bit accumulator in technically) and 12 bit frequency (periodic).

VRC6 instrument:
- 6 bit Volume macro for finer sawtooth volume handling, also 3 bit Duty cycle macro for pulse channels.

Duty, PCM mode command and Duty macro affects for pulse channel only.
2022-03-28 01:06:56 +09:00
cam900 73267444fc
Merge branch 'master' into n163 2022-03-23 03:26:09 +09:00
cam900 2eaa6ed0ce Merge branch 'master' of https://github.com/tildearrow/furnace into n163
# Conflicts:
#	CMakeLists.txt
#	papers/doc/7-systems/README.md
#	src/engine/dispatchContainer.cpp
#	src/gui/gui.cpp
#	src/gui/insEdit.cpp
2022-03-23 02:44:13 +09:00
cam900 5fdce33b11 Add Namco 163 Support 2022-03-23 01:48:45 +09:00
Natt Akuma feb138cefc Add VIC-20 support 2022-03-22 14:48:48 +07:00
tildearrow 7e5c27c5b7 GUI: massive code split
gui.cpp now less than 3000 lines
2022-03-21 17:34:43 -05:00
tildearrow e62f9bffd3 GUI: re-organize code
ins/wave/sample lists now in dataList.cpp
wave editor now under its own file
2022-03-21 16:34:19 -05:00
Natt Akuma 47c5c34e1c Add PET support 2022-03-21 21:02:51 +07:00
tildearrow 03cb910e93 GUI: sample resampling 2022-03-20 03:14:00 -05:00
cam900 234c5e9295 Reduce naming confusion in Bubble System Wavetable Sound
It means Custom wavetable sound generator logic on Bubble System.
It's wavetable select and volume is controlled by single AY-3-8910 IO for both channels, Another AY-3-8910 IO is used for reading sound status.

Schematics: http://pdf.textfiles.com/manuals/ARCADE/K-R/Nemesis%20[Schematics]%20[English].pdf (Nemesis, derivative of Bubble system)
2022-03-17 10:11:48 +09:00
tildearrow d09aa778d9 prepare to rewrite sample editor - DO NOT USE! 2022-03-16 18:40:11 -05:00
cam900 2c6267bd6b Merge branch 'master' of https://github.com/tildearrow/furnace into scc 2022-03-14 19:22:31 +09:00
cam900 69aeb7dd58 Add Bubble System Support
Bubble System 2 channel Wavetable sound generator logic is configuration with K005289, 4 bit PROM and DAC.
K005289 controls pitch and 5 bit address generator per channel, Waveform select and Volume control is tied to AY-3-8910 ports. (each port for per channels)
these configuration is better known as K005289, the part of logic.
furnace emulates this configurations as single system, waveform format is 15 level and 32 width.
2022-03-14 19:22:12 +09:00
tildearrow 25eb3e4aae furnace II - the final fix 2022-03-13 22:21:01 -05:00
tildearrow 0874d58fb8 damn it 2022-03-13 22:02:50 -05:00
tildearrow 5e77b47467 system file picker anyone? DO NOT COMPILE! 2022-03-13 18:32:35 -05:00
tildearrow c6fda7a156 Merge branch 'x1_010' of https://github.com/cam900/furnace into cam900-x1_010 2022-03-10 18:24:52 -05:00
tildearrow 9bd15bd513 VERA: bring up actual emulation core 2022-03-10 15:51:27 -05:00
cam900 75b635229c Unnecessary changes 2022-03-09 01:01:40 +09:00
cam900 66eb40e55e Extract X1-010 core from submodule 2022-03-09 01:00:09 +09:00
Natt Akuma 43cfb09acf Merge branch 'master' of https://github.com/tildearrow/furnace into x16 2022-03-08 17:53:00 +07: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
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