Commit graph

148 commits

Author SHA1 Message Date
tildearrow c74d7fab37 dev108 - add SN period range compat flag
there's room for possible improvement
2022-08-19 18:46:19 -05:00
Natt Akuma 7c42453422
Rewrite per-system effect handling (#548)
* Rewrite per-system effect handling

* fix build

* C64: fix fine cutoff regression

* fix some more crashes

Co-authored-by: tildearrow <tildearrow@protonmail.com>
2022-08-18 01:26:22 -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 b04743d045 SMS: implement Game Gear stereo in Nuked core 2022-06-27 04:09:24 -05:00
cam900 9cad907773 Fix potential register related issue 2022-06-18 11:07:36 +09:00
cam900 6dc81c7af1 Pitch correction (again), Fix compatibility issue 2022-06-18 10:38:48 +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
cam900 7bbfe3af7c Fix per-channel osc 2022-06-07 23:59:50 +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
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 2932a7281d implement getChanMacroInt() on supported systems 2022-06-05 18:17:00 -05:00
tildearrow 131bef2689 SMS: fix per-channel osc when using Nuked core 2022-06-02 02:01:48 -05:00
tildearrow 140318f8d3 SMS: prepare for an arp+porta fix 2022-06-01 15:15:32 -05:00
tildearrow a298ec2177 oops 2022-05-31 19:03:31 -05:00
tildearrow 061b312943 SMS: volume table is now non-float 2022-05-26 23:46:42 -05:00
tildearrow 905aa1b1a1 SMS: add TI PSG volume table 2022-05-26 23:19:27 -05:00
tildearrow 0577aa3569 SMS: early Nuked-PSG modding 2022-05-26 19:00:14 -05:00
tildearrow e3ebe0cb92 SMS: add modified Nuked-PSG core 2022-05-26 18:46:20 -05:00
tildearrow 82eaa45f5d increase range of relative pitch macro
-32768 to 32767 should be enough
2022-05-22 22:47:40 -05:00
tildearrow 8784fe5664 dev94 - add a full linear pitch mode, part 1 2022-05-10 03:51:18 -05:00
tildearrow e1fd16637c per-channel oscilloscope, part 4
OPM, OPN2, OPLL and SN
plus hide unimplemented channels
2022-04-30 22:59:26 -05:00
tildearrow d211170e86 implement relative pitch macro mode 2022-04-28 01:31:16 -05:00
tildearrow 66f5b2117f dev90 - linear pitch macro option 2022-04-28 00:26:21 -05:00
tildearrow bd68ef5cc3 dev86 - SN duty macro phase reset fix 2022-04-24 18:12:18 -05:00
tildearrow 79fa8f1d02 better default instrument for OPL/OPLL
no longer silence
2022-04-21 02:24:06 -05:00
tildearrow b6026e76c5 SMS: fix noise pitch being odd on linear pitch off
issue #379
2022-04-19 18:10:43 -05:00
tildearrow b4ac5c7e6a implement pitch macro 2022-04-16 01:39:40 -05:00
tildearrow fd3d57b1cb even more improvements to low-latency mode 2022-04-15 15:01:11 -05:00
tildearrow 96715ed88c add experimental low-latency mode
do not use (yet)!
2022-04-15 05:37:23 -05:00
tildearrow d47a59f5f0 implement pitch macro
TODO: test!
2022-04-15 03:37:16 -05:00
tildearrow c743a9e96a implement phase reset macro on supported systems 2022-04-15 03:16:14 -05:00
tildearrow 9bd8aef538 SMS: fix note slides on upper notes
hopefully this doesn't break anything
2022-04-12 21:30:35 -05:00
cam900 d3e5efe834 Prepare for macro refactoring 2022-04-10 14:01:55 +09:00
tildearrow 7f39ec723a SMS: overdrive 2 fixes
nice
2022-03-24 01:27:53 -05:00
tildearrow 28254d4b24 SMS: add 1.79MHz option 2022-02-24 18:00:19 -05:00
tildearrow 853ade2416 improve the status bar
issue #39
2022-02-15 01:46:03 -05:00
tildearrow b9832abbeb license clarification, part 3 2022-02-14 22:12:20 -05:00
tildearrow bfb902f649 fix #172 2022-02-13 23:49:01 -05:00
tildearrow d2d60c4f1a what 2022-02-13 18:13:29 -05:00
tildearrow 271c0dc08b SMS: fix channel 3 muting at the beginning of song 2022-02-12 22:50:31 -05:00
tildearrow 5b7240bb4f and fix it again 2022-02-08 22:49:52 -05:00
tildearrow f1730baefa fix artificial intelligence bomb
and a couple of songs that used 02xx after note off
2022-02-08 22:46:58 -05:00
tildearrow 23dc509524 implement reset macro on porta flag 2022-02-08 17:02:27 -05:00
tildearrow bf537881ce possibly implement envelope release points
no way to set them yet tho other than the MML string
2022-02-08 13:11:04 -05:00
tildearrow 8d45236cce SMS: add option to disable noise phase reset
issue #83
2022-02-07 23:05:50 -05:00
tildearrow e6201b8390 SMS: prepare for don't reset phase flag 2022-02-07 18:34:04 -05:00
tildearrow e25f5b229c fix arpeggio not happening during slide on SMS 2022-02-07 00:30:15 -05:00
tildearrow 584b8426ff GUI: improve debug menu 2022-02-03 18:38:57 -05:00
tildearrow cbf66b1e62 prepare to add register cheat sheets 2022-02-02 02:14:42 -05:00
tildearrow d691ec6d76 add a chip playground
in debug menu
2022-02-01 18:08:19 -05:00
tildearrow 237ad1f517 SMS: possibly fix noise pitch issue
hoping this causes no regressions. fixes #56
2022-01-30 17:10:15 -05:00
tildearrow 822d542350 limit volume macro to system maximum
fixes #71
2022-01-30 12:31:50 -05:00
tildearrow b6da7871d4 make the flags option actually work 2022-01-29 00:20:27 -05:00
tildearrow bfed0b3209 change setPAL to setFlags 2022-01-28 12:59:53 -05:00
tildearrow ec66b7a21b add song tuning
soon: system clock settings
2022-01-28 00:55:51 -05:00
tildearrow 0e633ea69b GUI: add a debug window 2022-01-27 00:29:16 -05:00
tildearrow f86838df99 no longer shift arpeggio macro by 12 2022-01-26 15:53:52 -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 c7ee0ce642 save my register writes 2022-01-25 16:52:55 -05:00
tildearrow 858d5343b8 earliest VGM export!
only supports single-chip Genesis for now
the other systems will be added shortly
2022-01-24 01:01:08 -05:00
tildearrow 4cffcc01e5 ffffiiiiixxxx #47 2022-01-21 04:35:25 -05:00
tildearrow e87239f8ce fix retrigger implementation
no longer broken
2022-01-19 00:01:34 -05:00
tildearrow 6884494b5c fix issue with volume macro+slide 2022-01-17 16:23:47 -05:00
tildearrow 8b89f1b516 prepare for writing register dumps 2022-01-17 13:29:35 -05:00
tildearrow 12236248dd prepare for eventual export 2022-01-16 23:21:27 -05:00
tildearrow 91e8ff01cf add notifyInsDeletion
prevent invalid memory access when deleting instruments
2022-01-13 19:36:02 -05:00
tildearrow dc5990a37e a lot of master system fixes!
fixes forest frolick, professional tracker, YZYX, Monday (kinda),
MasterTracker and Ice Fields
2021-12-29 02:08:50 -05:00
tildearrow 3e34c60b32 fix volume after note off 2021-12-29 00:52:20 -05:00
tildearrow d766c4aaf0 finally do EFxx right
took a while to figure out...
2021-12-28 00:51:38 -05:00
tildearrow 65444d4a99 el diego 2 finally plays back correctly
ALMOST
2021-12-27 16:31:16 -05:00
tildearrow 726b457ae7 another uninitialized variable 2021-12-21 16:02:31 -05:00
tildearrow b3b66ecbdb channel mute/solo! 2021-12-18 03:25:42 -05:00
tildearrow c54df74df1 GUI: rate change and new window title 2021-12-15 17:32:08 -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 a17e91955a add reset() for every platform 2021-12-11 13:14:38 -05:00
tildearrow 6a02754996 add PAL flag to dispatch
now platforms run at their correct clock speed when in PAL mode

also fix clipping in Genesis
2021-12-08 01:56:40 -05:00
tildearrow 4eec990ec1 when the fix breaks something 2021-12-08 01:16:29 -05:00
tildearrow db46dd79d2 honor arpeggio macro during legato 2021-12-08 00:56:46 -05:00
tildearrow 65ab3a2b5d keyOffAffectsArp is now per-channel 2021-12-08 00:33:00 -05:00
tildearrow 3ee761fc87 C64: finish it all
all modules play correctly, bar:
- motherfunksignal (almost)
- filters are a bit weird
2021-12-07 01:23:57 -05:00
tildearrow d6fb6b0bb3 more optimization
as of now non-stereo sound chips are only processed once
2021-12-06 16:51:18 -05:00
tildearrow 6efcfc2e8a prepare for possible major optimization
by just forwarding an output buffer to the dispatch and begin/length,
the number of calls may be reduced which improves performance.
2021-12-06 05:21:42 -05:00
tildearrow 83ce4f0ebe game boy progress, part 5
now with almost accurate arpeggios.
2021-05-28 00:36:40 -05:00
tildearrow 892ea33e77 game boy progress, part 3 2021-05-27 23:03:10 -05:00
tildearrow ceda9a8058 the final volume fix i think
all 5 test cases pass
2021-05-17 15:36:14 -05:00
tildearrow 9736b77401 better volume slide accuracy
volume slide seems to be kind of quirky:
- sliding all the way down and then up suddenly sets the vol to max
- apparently there is an overflow and the slide stops when it reaches
  its boundaries (instead of continuing)
2021-05-17 15:06:11 -05:00
tildearrow 67847d79cf attempt to fix the volume slide mess
also a fix to noise arps in basic mode in SMS

the volume slides will be an adventure as the behavior seems to be hard
to determine
2021-05-17 03:06:45 -05:00
tildearrow 53975349e5 more. SMS. fixes. 2021-05-17 01:51:14 -05:00
tildearrow 0caaa1629c are you kidding me? 2021-05-17 00:36:09 -05:00
tildearrow 3a1019a08c more fixes and tweaks
memory management party
2021-05-16 20:49:54 -05:00
tildearrow fbc29e1106 A#7 SMS oddity 2021-05-16 20:10:52 -05:00
tildearrow 5a8e20fcd1 arp fixed mode 2021-05-16 12:47:05 -05:00
tildearrow dbc2e6285f a lot of work
- round to nearest instead of round to zero in SMS period calc
- implement arpeggio
- implement arp macro (kinda)
- polish the SMS platform
- correct the DIV_CMD_PITCH range to 1 semitone
- fix PSG volume in Genesis
- use a better register write strat in Genesis
- fix a bug caused by legacy code
- implement ECxx command
- implement EDxx command
- implement SN noise mode command
- vibrato table is now 64 positions long (instead of 60)
2021-05-16 03:03:23 -05:00
tildearrow f2c70df4a8 bind SMS platform to Genesis one 2021-05-15 16:59:57 -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