* '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
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
Reverting back to before 70ead337f3, and setting register 8 to 256Kbit RAM mode.
This is what MSX has natively, and allows for the most compact sample storage with
only 4 byte alignment.
Additionally, setting register 8 before writing the start / stop addresses.
Back story:
VGMPlay MSX only supports Y8950 256K DRAM mode and ROM mode (for the latter
it makes sure address writes are shifted). 64K DRAM mode is not supported because
it’s not used by anything and the addresses are specified weirdly with some middle
bits having to be masked out.
The original code in Furnace before the change 70ead337f3 was almost correct except
it needed to set register 8 to 0 to select the 256K DRAM mode. It was set to ROM mode
so the address shift did not match up.
After 70ead337f3 (address shift change) it was also more or less correct except in
“furnacePCM” direct-sample mode the shift was not updated accordingly.
In 1a446c1cdd it selected 64K RAM mode, but for this the addresses need to be specified
differently (see Y8950 manual page 18), and it’s not really the best choice anyway.
* '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
* '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
* '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
* '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
* 'master' of https://github.com/tildearrow/furnace: (24 commits)
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
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
...
* 'master' of https://github.com/tildearrow/furnace:
dev92 - GUI: customizable channel collapsing!
GUI: more improvements to instrument loading
GUI: implement instrument load replace
NES: fix duty effect not working at all
GUI: part 2 of previous commit
GUI: only use edit color when pat view is focused
GUI: fix more issues
here's the new OPLL default instrument
OPL: fix channel muting - PLEASE READ!
OPLL: fix compatible drum mode
the final part of extra FM effects
implement extra FM effects (OPLL and OPL)
update to-do list
prepare for possible .ftm import
implement extra FM effects (OPN, OPM and OPZ)
# Conflicts:
# src/engine/engine.h
**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
Fix AY PSG clock divider function when exists, Update emulation core (MAME AY PSG and compatibles - includes noise routine updates)
Fix configuration flag, Add MSX Darky sound expander to preset
Clock divider isn't affected to expanded mode's tone and noise generator?
* 'master' of https://github.com/tildearrow/furnace:
fix sample saving
add extra FM effects to effect post handler
dev91 - it's a breaking change
aaaaaa
AY8930: Fix tone and noise period in expanded mode.
OPL: fix possible crash
By doubling the internal clock frequency.
In expanded mode, the same tone period is an octave higher than in compat mode.
In expanded mode, the noise period is twice as fast as currently implemented.
See https://github.com/tildearrow/furnace/pull/416
* 'master' of https://github.com/tildearrow/furnace:
YM2610: optimize oscilloscope fetch CPU usage
GUI: add audio load meter to statistics
GUI: put "OK" and "Cancel" buttons in the bottom
better FM chip names
sysDef refactor, part 3 - PLEASE READ
NO
Reduce unnecessary line
Debug improvements
AY8930: Fix VGM output.
# Conflicts:
# .gitignore
# src/engine/playback.cpp
# src/gui/debugWindow.cpp
To prevent rendering samples for systems that are not in use.
Additionally, it gives the systems more flexibility to render the samples
according to their specific configuration.
* 'master' of https://github.com/tildearrow/furnace:
Clang you are so arrogant
ok so screw you
let's hope this works
attempt to fix CI
per-channel oscilloscope, part 8
per-channel oscilloscope, part 7
per-channel oscilloscope, part 6
per-channel oscilloscope, part 5
but PCE supports samples!
per-channel oscilloscope, part 4
YM2612: fix Furnace DAC mode glitching slides
per-channel oscilloscope, part 3
GUI: add missing actions to settings
per-channel oscilloscope, part 2
Revert PC speaker presets
Have host sound chip appear before expansions
* '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
Prepare for pcm changed flag, 8 bit panning command
Reduce register spamming in volume update routine
Progress report:
* Emulation core update, Dispatch update:
* Volume is unsigned like original chip, for reduce overflow.
* Add multi-mode macro support for radio button
the panning strategy for QSound has changed!
it's now 08xy where x is left and y is right (muting is not possible though!)
this makes it consistent with other chips, plus QSound's pan range was
32 anyway
in order to toggle the QSound effect use effect 12xx
* 'master' of https://github.com/tildearrow/furnace:
dev90 - linear pitch macro option
dev89 - C64: add test/gate macro
YMU759: update system definition
more changes to autoNoteOn
SoundUnit: ring modulation
GUI: improve the maximize auto-detection a bit
GUI: possibly remember maximized state
NES: fix audio resolution being too low
update to-do list
SoundUnit: more stuff
SoundUnit: max cutoff 16383
effectRows -> effectCols
GUI: rename Amiga/Sample to Sample
This is not a sample properties table
Define the compact wave editor
Menu option, settings file
# Conflicts:
# src/gui/insEdit.cpp
* '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
* '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