From 0102fcbda87399cae5721c86940808aa8fdc5a2f Mon Sep 17 00:00:00 2001 From: Postbox2 <53163105+host12prog@users.noreply.github.com> Date: Wed, 29 Jun 2022 18:42:33 +0700 Subject: [PATCH 01/34] Create soundunit.md --- papers/doc/7-systems/soundunit.md | 43 +++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 papers/doc/7-systems/soundunit.md diff --git a/papers/doc/7-systems/soundunit.md b/papers/doc/7-systems/soundunit.md new file mode 100644 index 000000000..ef1b1eda1 --- /dev/null +++ b/papers/doc/7-systems/soundunit.md @@ -0,0 +1,43 @@ +# TildeArrow Sound Unit +This is a fantasy sound chip, used in the specs2 fantasy console designed by tildearrow. It includes native support for sample playback, but with only 20K of sample data. Since 0.6pre1, this sound chip is no longer hidden by default and can be accessed through the module creation screen and can be added or removed. +# Effects +`10xx`: set waveform + - 0: pulse wave + - 1: sawtooth + - 2: sine wave + - 3: triangle wave + - 4: noise + - 5: periodic noise + - 6: TODO find name for waves 6, 7 + - 7: TODO find name for waves 6, 7 +`12xx`: set waveform (0 to 7F) +`13xx`: set resonance of filter (0 to FF) + - despite what the internal effects list says (0 to F), you can use a resonance value from 0 to FF (255) +`14xx`: set filter mode and ringmod + - bit 0: ring mod + - bit 1: low pass + - bit 2: high pass + - bit 3: band pass +`15xx`: set frequency sweep period low byte +`16xx`: set frequency sweep period high byte +`17xx`: set volume sweep period low byte +`18xx`: set volume sweep period high byte +`19xx`: set cutoff sweep period low byte +`1Axx`: set cutoff sweep period low byte +`1Bxx`: set frequency sweep boundary +`1Cxx`: set volume sweep boundary +`1Dxx`: set cutoff sweep boundary +`1Exx`: set phase reset period low byte +`1Fxx`: set phase reset period high byte +`20xx`: toggle frequency sweep + - bit 0-6: speed + - bit 7: up direction +`21xx`: toggle volume sweep + - bit 0-4: speed + - bit 5: up direction + - bit 6: loop + - bit 7: alternate +`22xx`: toggle cutoff sweep + - bit 0-6: speed + - bit 7: up direction +`4xxx`: set cutoff (0 to FFF) From 86aacd818b7922bab85855f742ef14b245ee26c2 Mon Sep 17 00:00:00 2001 From: Postbox2 <53163105+host12prog@users.noreply.github.com> Date: Wed, 29 Jun 2022 18:43:40 +0700 Subject: [PATCH 02/34] Fix formatting issues, i think --- papers/doc/7-systems/soundunit.md | 38 +++++++++++++++---------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/papers/doc/7-systems/soundunit.md b/papers/doc/7-systems/soundunit.md index ef1b1eda1..e6a676f65 100644 --- a/papers/doc/7-systems/soundunit.md +++ b/papers/doc/7-systems/soundunit.md @@ -1,7 +1,7 @@ # TildeArrow Sound Unit This is a fantasy sound chip, used in the specs2 fantasy console designed by tildearrow. It includes native support for sample playback, but with only 20K of sample data. Since 0.6pre1, this sound chip is no longer hidden by default and can be accessed through the module creation screen and can be added or removed. # Effects -`10xx`: set waveform +- `10xx`: set waveform - 0: pulse wave - 1: sawtooth - 2: sine wave @@ -10,34 +10,34 @@ This is a fantasy sound chip, used in the specs2 fantasy console designed by til - 5: periodic noise - 6: TODO find name for waves 6, 7 - 7: TODO find name for waves 6, 7 -`12xx`: set waveform (0 to 7F) -`13xx`: set resonance of filter (0 to FF) +- `12xx`: set waveform (0 to 7F) +- `13xx`: set resonance of filter (0 to FF) - despite what the internal effects list says (0 to F), you can use a resonance value from 0 to FF (255) -`14xx`: set filter mode and ringmod +- `14xx`: set filter mode and ringmod - bit 0: ring mod - bit 1: low pass - bit 2: high pass - bit 3: band pass -`15xx`: set frequency sweep period low byte -`16xx`: set frequency sweep period high byte -`17xx`: set volume sweep period low byte -`18xx`: set volume sweep period high byte -`19xx`: set cutoff sweep period low byte -`1Axx`: set cutoff sweep period low byte -`1Bxx`: set frequency sweep boundary -`1Cxx`: set volume sweep boundary -`1Dxx`: set cutoff sweep boundary -`1Exx`: set phase reset period low byte -`1Fxx`: set phase reset period high byte -`20xx`: toggle frequency sweep +- `15xx`: set frequency sweep period low byte +- `16xx`: set frequency sweep period high byte +- `17xx`: set volume sweep period low byte +- `18xx`: set volume sweep period high byte +- `19xx`: set cutoff sweep period low byte +- `1Axx`: set cutoff sweep period low byte +- `1Bxx`: set frequency sweep boundary +- `1Cxx`: set volume sweep boundary +- `1Dxx`: set cutoff sweep boundary +- `1Exx`: set phase reset period low byte +- `1Fxx`: set phase reset period high byte +- `20xx`: toggle frequency sweep - bit 0-6: speed - bit 7: up direction -`21xx`: toggle volume sweep +- `21xx`: toggle volume sweep - bit 0-4: speed - bit 5: up direction - bit 6: loop - bit 7: alternate -`22xx`: toggle cutoff sweep +- `22xx`: toggle cutoff sweep - bit 0-6: speed - bit 7: up direction -`4xxx`: set cutoff (0 to FFF) +- `4xxx`: set cutoff (0 to FFF) From 200cb34d18e1494b05677e97faee3512ac882f3a Mon Sep 17 00:00:00 2001 From: Postbox2 <53163105+host12prog@users.noreply.github.com> Date: Wed, 29 Jun 2022 18:44:36 +0700 Subject: [PATCH 03/34] ah the bitch! markdown you anger mee --- papers/doc/7-systems/soundunit.md | 42 +++++++++++++++---------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/papers/doc/7-systems/soundunit.md b/papers/doc/7-systems/soundunit.md index e6a676f65..a869b6e28 100644 --- a/papers/doc/7-systems/soundunit.md +++ b/papers/doc/7-systems/soundunit.md @@ -2,22 +2,22 @@ This is a fantasy sound chip, used in the specs2 fantasy console designed by tildearrow. It includes native support for sample playback, but with only 20K of sample data. Since 0.6pre1, this sound chip is no longer hidden by default and can be accessed through the module creation screen and can be added or removed. # Effects - `10xx`: set waveform - - 0: pulse wave - - 1: sawtooth - - 2: sine wave - - 3: triangle wave - - 4: noise - - 5: periodic noise - - 6: TODO find name for waves 6, 7 - - 7: TODO find name for waves 6, 7 + - 0: pulse wave + - 1: sawtooth + - 2: sine wave + - 3: triangle wave + - 4: noise + - 5: periodic noise + - 6: TODO find name for waves 6, 7 + - 7: TODO find name for waves 6, 7 - `12xx`: set waveform (0 to 7F) - `13xx`: set resonance of filter (0 to FF) - - despite what the internal effects list says (0 to F), you can use a resonance value from 0 to FF (255) + - despite what the internal effects list says (0 to F), you can use a resonance value from 0 to FF (255) - `14xx`: set filter mode and ringmod - - bit 0: ring mod - - bit 1: low pass - - bit 2: high pass - - bit 3: band pass + - bit 0: ring mod + - bit 1: low pass + - bit 2: high pass + - bit 3: band pass - `15xx`: set frequency sweep period low byte - `16xx`: set frequency sweep period high byte - `17xx`: set volume sweep period low byte @@ -30,14 +30,14 @@ This is a fantasy sound chip, used in the specs2 fantasy console designed by til - `1Exx`: set phase reset period low byte - `1Fxx`: set phase reset period high byte - `20xx`: toggle frequency sweep - - bit 0-6: speed - - bit 7: up direction + - bit 0-6: speed + - bit 7: up direction - `21xx`: toggle volume sweep - - bit 0-4: speed - - bit 5: up direction - - bit 6: loop - - bit 7: alternate + - bit 0-4: speed + - bit 5: up direction + - bit 6: loop + - bit 7: alternate - `22xx`: toggle cutoff sweep - - bit 0-6: speed - - bit 7: up direction + - bit 0-6: speed + - bit 7: up direction - `4xxx`: set cutoff (0 to FFF) From c21caa59915793b03fc56886e858eef4cf9e3123 Mon Sep 17 00:00:00 2001 From: Postbox2 <53163105+host12prog@users.noreply.github.com> Date: Wed, 29 Jun 2022 18:45:17 +0700 Subject: [PATCH 04/34] Update README.md --- papers/doc/7-systems/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/papers/doc/7-systems/README.md b/papers/doc/7-systems/README.md index fcf2e8860..439e64f64 100644 --- a/papers/doc/7-systems/README.md +++ b/papers/doc/7-systems/README.md @@ -22,6 +22,7 @@ this is a list of systems that Furnace supports, including each system's effects - [Philips SAA1099](saa1099.md) - [Microchip AY8930](ay8930.md) - [VERA](vera.md) +- [TildeArrow Sound Unit](soundunit.md) - [Seta/Allumer X1-010](x1-010.md) - [WonderSwan](wonderswan.md) - [Bubble System WSG](bubblesystem.md) From 0a07abe1535d9d3026a6afcd36faf21bacab626e Mon Sep 17 00:00:00 2001 From: LovelyA72 Date: Wed, 29 Jun 2022 12:09:15 -0400 Subject: [PATCH 05/34] Fix paper 404 link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 241249df4..b75db0d05 100644 --- a/README.md +++ b/README.md @@ -234,7 +234,7 @@ yup, it's real. > where's the manual? -see [papers/](papers/README.md). it's kind of incomplete, but at least the systems (sound chips) section is there. +see [papers/](papers/doc/README.md). it's kind of incomplete, but at least the systems (sound chips) section is there. > it doesn't open under macOS! From 15eebea7471a2e682adf22fee1185c842b2cbcc7 Mon Sep 17 00:00:00 2001 From: nicco1690 <78063037+nicco1690@users.noreply.github.com> Date: Wed, 29 Jun 2022 12:10:38 -0400 Subject: [PATCH 06/34] Add checknobankh (again) --- demos/Checknobankh.fur | Bin 0 -> 67357 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 demos/Checknobankh.fur diff --git a/demos/Checknobankh.fur b/demos/Checknobankh.fur new file mode 100644 index 0000000000000000000000000000000000000000..75c670e9fa401eba8a9a6b2ce7e5882ae7cd2f10 GIT binary patch literal 67357 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 D#iMkA literal 0 HcmV?d00001 From e26d6b94c990bd9f9e2ce1598fe45c469a3dda05 Mon Sep 17 00:00:00 2001 From: Emre Cakir <82211203+DeMOSic@users.noreply.github.com> Date: Wed, 29 Jun 2022 21:21:39 +0200 Subject: [PATCH 07/34] Add 5 AY instruments. The instruments are, Closed Hat, Open Hat, Hat+EnvBass, Kick, and last but not least, Snare. --- instruments/other/(AY) Closed Hat.fui | Bin 0 -> 1718 bytes instruments/other/(AY) Hat-EnvBass.fui | Bin 0 -> 1712 bytes instruments/other/(AY) Kick E-1.fui | Bin 0 -> 1880 bytes instruments/other/(AY) Open Hat.fui | Bin 0 -> 1800 bytes instruments/other/(AY) Snare A#3.fui | Bin 0 -> 1917 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 instruments/other/(AY) Closed Hat.fui create mode 100644 instruments/other/(AY) Hat-EnvBass.fui create mode 100644 instruments/other/(AY) Kick E-1.fui create mode 100644 instruments/other/(AY) Open Hat.fui create mode 100644 instruments/other/(AY) Snare A#3.fui diff --git a/instruments/other/(AY) Closed Hat.fui b/instruments/other/(AY) Closed Hat.fui new file mode 100644 index 0000000000000000000000000000000000000000..237c8610e195166867b5af549706137475a1f1d2 GIT binary patch literal 1718 zcmeHHK?=e!5S(bMR*`@oXwHJ-6BI%8B7$B#itRxVg;u}eoBWyXs*yHmf_hVj4%y9a zX4y1sYp_o?i)E}5RAd)m>na^+r3rR7t literal 0 HcmV?d00001 diff --git a/instruments/other/(AY) Hat-EnvBass.fui b/instruments/other/(AY) Hat-EnvBass.fui new file mode 100644 index 0000000000000000000000000000000000000000..00b661abeb1bd52c57c3794c79816521b139b4cc GIT binary patch literal 1712 zcmeHHOA5j;5Pf4?@dp7f(5!`uM^G1{8xeHlvRD^xT(o)zkLArYQ>`YESjC+>bei|( z^U?_=(P*D;I0nENm9dQoX4| ze$38J@@94jTb;kmXZPa=H=R8_&yT7J07txCT;1G`R)7h5IK6Y1)A6G_tB!$e@c?B% z@7hBk_g_T5%#0b1TJi&v*{$fKAS?@0*iNv~Tv~KaV7S+>p$n`G);M6WP4xO_if;*% zmaSQ*7i(m-W=JmvH3hx!t#OPHy&8>7aFh$W^g_J}^(kcgWS8s^ok0`ZBpXCM`94(N z*HkU9@AbHaJ>qp0hZc{((8ByO>sTule`tTNTuM96|AkudnSXnn`Zs@i{*=DY|JP|w iz|RG6`E~wkpfsGWx^`>IEFZP2r?RaVk>#Z;zOr{;J29gG literal 0 HcmV?d00001 diff --git a/instruments/other/(AY) Open Hat.fui b/instruments/other/(AY) Open Hat.fui new file mode 100644 index 0000000000000000000000000000000000000000..0466625b12f3012c4e52e2bdbbefba62b5a980e6 GIT binary patch literal 1800 zcmeH{O-{ow5QU$cpEgOUr5*r#T`7noluZR2s8lvAE7Ap<2({_`dK7L#XM!y`3B*u# z(5HMF+hdPCqiFKQep{}eH~OXARokn)0H6u0yZhDSTMQJ4ar2}fUN@z_T~|O@e}EcA zft&%6J<+l%6e7Fs@uwn`)7BwpsuGdNfwRyYN(|-@v^Fx3aip9vF3p6uGi|+l#QUXT zLYBE8#)gb6lNu7TjD6aW#tfCShD*j!DQg0<3}?%@@8m?j^JW3@*)}@umnZ#>`y=9M z*L8w<7XHIso)Y{yx9^YqZNk3z)_=aISpi!YKu62yAi!>DZcY7ahWYudKf2G`+lVAJ IZssc;0Y?ro^8f$< literal 0 HcmV?d00001 diff --git a/instruments/other/(AY) Snare A#3.fui b/instruments/other/(AY) Snare A#3.fui new file mode 100644 index 0000000000000000000000000000000000000000..238199de8704dbc9e1abac12939bb103158e71cf GIT binary patch literal 1917 zcmeH|zfQwI4934}lhU-n@mFF%4J{EuAUE7z7gj{k*P@t%LX-}Egq x_S5~h<=6Oso%#fHF7o?HZ_-y&y$HBv$Mok?TJl>?c4CGQT3GKv5I literal 0 HcmV?d00001 From f03f6bdb8d98dcc7f71982a26119d261683e8747 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 30 Jun 2022 03:44:03 -0500 Subject: [PATCH 08/34] possibly fix compilation under macOS? --- extern/rtmidi/RtMidi.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/extern/rtmidi/RtMidi.cpp b/extern/rtmidi/RtMidi.cpp index 8958e6cca..b54da7e1d 100644 --- a/extern/rtmidi/RtMidi.cpp +++ b/extern/rtmidi/RtMidi.cpp @@ -40,6 +40,7 @@ #include "RtMidi.h" #include +#ifdef TARGET_OS_IPHONE #if (TARGET_OS_IPHONE == 1) #define AudioGetCurrentHostTime CAHostTimeBase::GetCurrentTime @@ -66,6 +67,7 @@ #define EndianS32_BtoN(n) n #endif +#endif // Default for Windows is to add an identifier to the port names; this // flag can be defined (e.g. in your project file) to disable this behaviour. @@ -814,7 +816,7 @@ MidiOutApi :: ~MidiOutApi( void ) // time values. // These are not available on iOS. -#if (TARGET_OS_IPHONE == 0) +#ifdef TARGET_OS_IPHONE #include #include #endif From 5eb6c505bc03158e94e78d78d653343d8ebf691f Mon Sep 17 00:00:00 2001 From: Aleksi Knutsi <53163105+host12prog@users.noreply.github.com> Date: Thu, 30 Jun 2022 17:31:10 +0700 Subject: [PATCH 09/34] Update soundunit.md --- papers/doc/7-systems/soundunit.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/papers/doc/7-systems/soundunit.md b/papers/doc/7-systems/soundunit.md index a869b6e28..08a7676b1 100644 --- a/papers/doc/7-systems/soundunit.md +++ b/papers/doc/7-systems/soundunit.md @@ -1,5 +1,5 @@ -# TildeArrow Sound Unit -This is a fantasy sound chip, used in the specs2 fantasy console designed by tildearrow. It includes native support for sample playback, but with only 20K of sample data. Since 0.6pre1, this sound chip is no longer hidden by default and can be accessed through the module creation screen and can be added or removed. +# tildearrow Sound Unit +This is a fantasy sound chip, used in the specs2 fantasy computer designed by tildearrow. It includes native support for sample playback, but with only 20K of sample data. Since 0.6pre1, this sound chip is no longer hidden by default and can be accessed through the module creation screen and can be added or removed. # Effects - `10xx`: set waveform - 0: pulse wave @@ -8,8 +8,8 @@ This is a fantasy sound chip, used in the specs2 fantasy console designed by til - 3: triangle wave - 4: noise - 5: periodic noise - - 6: TODO find name for waves 6, 7 - - 7: TODO find name for waves 6, 7 + - 6: XOR sine + - 7: XOR triangle - `12xx`: set waveform (0 to 7F) - `13xx`: set resonance of filter (0 to FF) - despite what the internal effects list says (0 to F), you can use a resonance value from 0 to FF (255) From 6a4f0ee3d997ef32dd39dc7b58e481807ad5c7a0 Mon Sep 17 00:00:00 2001 From: Aleksi Knutsi <53163105+host12prog@users.noreply.github.com> Date: Thu, 30 Jun 2022 17:36:45 +0700 Subject: [PATCH 10/34] Update README.md --- papers/doc/7-systems/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/papers/doc/7-systems/README.md b/papers/doc/7-systems/README.md index 439e64f64..6d428f3eb 100644 --- a/papers/doc/7-systems/README.md +++ b/papers/doc/7-systems/README.md @@ -22,7 +22,7 @@ this is a list of systems that Furnace supports, including each system's effects - [Philips SAA1099](saa1099.md) - [Microchip AY8930](ay8930.md) - [VERA](vera.md) -- [TildeArrow Sound Unit](soundunit.md) +- [tildearrow Sound Unit](soundunit.md) - [Seta/Allumer X1-010](x1-010.md) - [WonderSwan](wonderswan.md) - [Bubble System WSG](bubblesystem.md) From 7725047de637bf0c5382fa39f10579f472fb2794 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Fri, 1 Jul 2022 01:11:51 -0500 Subject: [PATCH 11/34] doc: fix soundunit.md --- papers/doc/7-systems/soundunit.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/papers/doc/7-systems/soundunit.md b/papers/doc/7-systems/soundunit.md index 08a7676b1..d9d0abd70 100644 --- a/papers/doc/7-systems/soundunit.md +++ b/papers/doc/7-systems/soundunit.md @@ -1,6 +1,8 @@ # tildearrow Sound Unit -This is a fantasy sound chip, used in the specs2 fantasy computer designed by tildearrow. It includes native support for sample playback, but with only 20K of sample data. Since 0.6pre1, this sound chip is no longer hidden by default and can be accessed through the module creation screen and can be added or removed. -# Effects +This is a fantasy sound chip, used in the specs2 fantasy computer designed by tildearrow. It includes native support for sample playback, but with only 8KB of sample data. Since 0.6pre1, this sound chip is no longer hidden by default and can be accessed through the module creation screen and can be added or removed. + +# effects + - `10xx`: set waveform - 0: pulse wave - 1: sawtooth From e3a22ea7c19576d3447464df44f6c6e05aed9df2 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Fri, 1 Jul 2022 01:30:09 -0500 Subject: [PATCH 12/34] replace Checknobankh.fur --- demos/Checknobankh.fur | Bin 67357 -> 67930 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/demos/Checknobankh.fur b/demos/Checknobankh.fur index 75c670e9fa401eba8a9a6b2ce7e5882ae7cd2f10..ac465df985c6b2950ebf9028ae1fa94a57ec6d88 100644 GIT binary patch delta 63736 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 From 02b28e6e7dd18f512e522e10e1e9532fd234f5f9 Mon Sep 17 00:00:00 2001 From: Natt Akuma Date: Fri, 1 Jul 2022 17:33:33 +0700 Subject: [PATCH 13/34] OPL: Correct CHIP_FREQBASE to match clock ratio This changes from 9440540 to 9437184 --- src/engine/platform/opl.cpp | 34 +++++++++++++++++----------------- src/engine/platform/opl.h | 2 +- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/engine/platform/opl.cpp b/src/engine/platform/opl.cpp index 1d617355a..127632e06 100644 --- a/src/engine/platform/opl.cpp +++ b/src/engine/platform/opl.cpp @@ -1669,7 +1669,7 @@ void DivPlatformOPL::setOPLType(int type, bool drums) { slots=drums?slotsDrums:slotsNonDrums; chanMap=drums?chanMapOPL2Drums:chanMapOPL2; outChanMap=outChanMapOPL2; - chipFreqBase=9440540*0.25; + chipFreqBase=32768*72; chans=9; melodicChans=drums?6:9; totalChans=drums?11:9; @@ -1683,7 +1683,7 @@ void DivPlatformOPL::setOPLType(int type, bool drums) { slots=drums?slotsDrums:slotsNonDrums; chanMap=drums?chanMapOPL3Drums:chanMapOPL3; outChanMap=outChanMapOPL3; - chipFreqBase=9440540; + chipFreqBase=32768*288; chans=18; melodicChans=drums?15:18; totalChans=drums?20:18; @@ -1735,9 +1735,6 @@ void DivPlatformOPL::setFlags(unsigned int flags) { default: case 1: case 2: case 8950: switch (flags&0xff) { - case 0x00: - chipClock=COLOR_NTSC; - break; case 0x01: chipClock=COLOR_PAL*4.0/5.0; break; @@ -1753,15 +1750,15 @@ void DivPlatformOPL::setFlags(unsigned int flags) { case 0x05: chipClock=3500000.0; break; + default: + chipClock=COLOR_NTSC; + break; } rate=chipClock/72; chipRateBase=double(rate); break; case 3: switch (flags&0xff) { - case 0x00: - chipClock=COLOR_NTSC*4.0; - break; case 0x01: chipClock=COLOR_PAL*16.0/5.0; break; @@ -1774,28 +1771,31 @@ void DivPlatformOPL::setFlags(unsigned int flags) { case 0x04: chipClock=15000000.0; break; + default: + chipClock=COLOR_NTSC*4.0; + break; } rate=chipClock/288; - chipRateBase=double(rate); + chipRateBase=rate; break; case 4: switch (flags&0xff) { - case 0x02: - chipClock=33868800.0; - break; - case 0x00: - chipClock=COLOR_NTSC*8.0; - break; case 0x01: chipClock=COLOR_PAL*32.0/5.0; break; + case 0x02: + chipClock=33868800.0; + break; + default: + chipClock=COLOR_NTSC*8.0; + break; } - chipRateBase=double(chipClock)/684.0; rate=chipClock/768; + chipRateBase=chipClock/684; break; case 759: rate=48000; - chipRateBase=double(rate); + chipRateBase=rate; chipClock=rate*288; break; } diff --git a/src/engine/platform/opl.h b/src/engine/platform/opl.h index e949c47f2..3d6497367 100644 --- a/src/engine/platform/opl.h +++ b/src/engine/platform/opl.h @@ -95,7 +95,7 @@ class DivPlatformOPL: public DivDispatch { const unsigned char** slots; const unsigned short* chanMap; const unsigned char* outChanMap; - double chipFreqBase, chipRateBase; + int chipFreqBase, chipRateBase; int delay, chipType, oplType, chans, melodicChans, totalChans, adpcmChan, sampleBank; unsigned char lastBusy; unsigned char drumState; From 59bcd9599fd9bf969545355dcf3ac8ab73ef73b5 Mon Sep 17 00:00:00 2001 From: Natt Akuma Date: Fri, 1 Jul 2022 17:55:33 +0700 Subject: [PATCH 14/34] OPL: Missed changes from last commit --- src/engine/platform/opl.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/engine/platform/opl.cpp b/src/engine/platform/opl.cpp index 127632e06..9373d0cd8 100644 --- a/src/engine/platform/opl.cpp +++ b/src/engine/platform/opl.cpp @@ -1539,7 +1539,7 @@ void DivPlatformOPL::reset() { } */ if (downsample) { - const unsigned int downsampledRate=(unsigned int)(49716.0*(double(rate)/chipRateBase)); + const unsigned int downsampledRate=(unsigned int)((double)rate*rate/chipRateBase); OPL3_Reset(&fm,downsampledRate); } else { OPL3_Reset(&fm,rate); @@ -1755,7 +1755,7 @@ void DivPlatformOPL::setFlags(unsigned int flags) { break; } rate=chipClock/72; - chipRateBase=double(rate); + chipRateBase=rate; break; case 3: switch (flags&0xff) { From 1e2cafcf902a1fe3685b662566eba7d1186eb40e Mon Sep 17 00:00:00 2001 From: tildearrow Date: Fri, 1 Jul 2022 14:05:37 -0500 Subject: [PATCH 15/34] possibly fix system file picker filter on macOS --- extern/nfd-modified/src/nfd_cocoa.mm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/extern/nfd-modified/src/nfd_cocoa.mm b/extern/nfd-modified/src/nfd_cocoa.mm index 4e0f9e0bf..204d79f88 100644 --- a/extern/nfd-modified/src/nfd_cocoa.mm +++ b/extern/nfd-modified/src/nfd_cocoa.mm @@ -23,7 +23,12 @@ static NSArray *BuildAllowedFileTypes( const std::vector& filterLis NSMutableArray *buildFilterList = [[NSMutableArray alloc] init]; std::string typebuf; + int index=-1; for (const std::string& i: filterList) { + index++; + if (!(index&1)) { + continue; + } typebuf=""; for (const char& j: i) { if (j==' ' || j==',' || j ==';') { From fd5f1106bc80ef1285690ca7bba3e03e44e37ccd Mon Sep 17 00:00:00 2001 From: tildearrow Date: Fri, 1 Jul 2022 14:13:50 -0500 Subject: [PATCH 16/34] update format.md --- papers/format.md | 1 + 1 file changed, 1 insertion(+) diff --git a/papers/format.md b/papers/format.md index 04acc6182..d26ca41d5 100644 --- a/papers/format.md +++ b/papers/format.md @@ -235,6 +235,7 @@ size | description | - 0xbc: reserved - 8 channels | - 0xbd: YM2612 extra features extended - 11 channels | - 0xbe: YM2612 extra features - 7 channels + | - 0xbf: T6W28 - 4 channels | - 0xde: YM2610B extended - 19 channels | - 0xe0: QSound - 19 channels | - 0xfd: Dummy System - 8 channels From fac415c8e8fe26f20e1e90d19acf7eb64f1e7667 Mon Sep 17 00:00:00 2001 From: Natt Akuma Date: Sat, 2 Jul 2022 08:19:25 +0700 Subject: [PATCH 17/34] Prepare for NGP system Also add PCM DAC as system format 0xc0 --- papers/format.md | 1 + src/engine/song.h | 2 ++ src/engine/sysDef.cpp | 29 +++++++++++++++++++++++++++++ src/gui/sysConf.cpp | 22 ++++++++++++++++++++++ 4 files changed, 54 insertions(+) diff --git a/papers/format.md b/papers/format.md index d26ca41d5..bef8b1f81 100644 --- a/papers/format.md +++ b/papers/format.md @@ -236,6 +236,7 @@ size | description | - 0xbd: YM2612 extra features extended - 11 channels | - 0xbe: YM2612 extra features - 7 channels | - 0xbf: T6W28 - 4 channels + | - 0xc0: PCM DAC - 1 channel | - 0xde: YM2610B extended - 19 channels | - 0xe0: QSound - 19 channels | - 0xfd: Dummy System - 8 channels diff --git a/src/engine/song.h b/src/engine/song.h index 2248292e3..d06c57377 100644 --- a/src/engine/song.h +++ b/src/engine/song.h @@ -114,6 +114,8 @@ enum DivSystem { DIV_SYSTEM_YM2612_FRAC, DIV_SYSTEM_YM2612_FRAC_EXT, DIV_SYSTEM_RESERVED_8, + DIV_SYSTEM_T6W28, + DIV_SYSTEM_PCM_DAC, DIV_SYSTEM_DUMMY }; diff --git a/src/engine/sysDef.cpp b/src/engine/sysDef.cpp index e5a4888b9..04815866d 100644 --- a/src/engine/sysDef.cpp +++ b/src/engine/sysDef.cpp @@ -2082,6 +2082,35 @@ void DivEngine::registerSystems() { fmPostEffectHandler ); + sysDefs[DIV_SYSTEM_T6W28]=new DivSysDef( + "T6W28", NULL, 0xbf, 0, 4, false, true, 0, false, + "an SN76489 derivative used in Neo Geo Pocket, has independent stereo volume and noise channel frequency.", + {"Square 1", "Square 2", "Square 3", "Noise"}, + {"S1", "S2", "S3", "NO"}, + {DIV_CH_PULSE, DIV_CH_PULSE, DIV_CH_PULSE, DIV_CH_NOISE}, + {DIV_INS_STD, DIV_INS_STD, DIV_INS_STD, DIV_INS_STD}, + {}, + [this](int ch, unsigned char effect, unsigned char effectVal) -> bool { + switch (effect) { + case 0x20: // SN noise mode + dispatchCmd(DivCommand(DIV_CMD_STD_NOISE_MODE,ch,effectVal)); + break; + default: + return false; + } + return true; + } + ); + + sysDefs[DIV_SYSTEM_PCM_DAC]=new DivSysDef( + "Generic PCM DAC", NULL, 0xc0, 0, 1, false, true, 0, false, + "as generic sample playback as it gets.", + {"Sample"}, + {"PCM"}, + {DIV_CH_PCM}, + {DIV_INS_AMIGA} + ); + sysDefs[DIV_SYSTEM_DUMMY]=new DivSysDef( "Dummy System", NULL, 0xfd, 0, 8, false, true, 0, false, "this is a system designed for testing purposes.", diff --git a/src/gui/sysConf.cpp b/src/gui/sysConf.cpp index 21fef35d1..b34dd0b28 100644 --- a/src/gui/sysConf.cpp +++ b/src/gui/sysConf.cpp @@ -608,12 +608,34 @@ void FurnaceGUI::drawSysConf(int chan, DivSystem type, unsigned int& flags, bool } break; } + case DIV_SYSTEM_PCM_DAC: { + int sampRate=(flags&65535)+1; + int bitDepth=((flags>>16)&15)+1; + bool stereo=(flags>>20)&1; + ImGui::Text("Output rate:"); + if (CWSliderInt("##SampRate",&sampRate,1,65536)) { + if (sampRate<1) sampRate=1; + if (sampRate>65536) sampRate=65536; + copyOfFlags=(flags&(~65535))|(sampRate-1); + } rightClickable + ImGui::Text("Output depth:"); + if (CWSliderInt("##BitDepth",&bitDepth,1,16)) { + if (bitDepth<1) bitDepth=1; + if (bitDepth>16) bitDepth=16; + copyOfFlags=(flags&(~(15<<16)))|((bitDepth-1)<<16); + } rightClickable + if (ImGui::Checkbox("Stereo",&stereo)) { + copyOfFlags=(flags&(~(1<<20)))|(stereo<<20); + } + break; + } case DIV_SYSTEM_GB: case DIV_SYSTEM_SWAN: case DIV_SYSTEM_VERA: case DIV_SYSTEM_BUBSYS_WSG: case DIV_SYSTEM_YMU759: case DIV_SYSTEM_PET: + case DIV_SYSTEM_T6W28: ImGui::Text("nothing to configure"); break; default: From 364c7c410452695ac2a95066b0cef143caf6f7a1 Mon Sep 17 00:00:00 2001 From: cam900 Date: Sat, 2 Jul 2022 11:59:27 +0900 Subject: [PATCH 18/34] 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 --- src/gui/presets.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/gui/presets.cpp b/src/gui/presets.cpp index 154b44e07..a3a494963 100644 --- a/src/gui/presets.cpp +++ b/src/gui/presets.cpp @@ -1282,6 +1282,29 @@ void FurnaceGUI::initSystemPresets() { 0 } )); + cat.systems.push_back(FurnaceGUISysDef( + "Sega System E", { + DIV_SYSTEM_SMS, 64, 0, 0, + DIV_SYSTEM_SMS, 64, 0, 0, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "Sega System E (with FM expansion)", { + DIV_SYSTEM_SMS, 64, 0, 0, + DIV_SYSTEM_SMS, 64, 0, 0, + DIV_SYSTEM_OPLL, 64, 0, 0, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "Sega System E (with FM expansion in drums mode)", { + DIV_SYSTEM_SMS, 64, 0, 0, + DIV_SYSTEM_SMS, 64, 0, 0, + DIV_SYSTEM_OPLL_DRUMS, 64, 0, 0, + 0 + } + )); cat.systems.push_back(FurnaceGUISysDef( "Sega Hang-On", { DIV_SYSTEM_OPN, 64, 0, 2, // 4MHz From 97832c6c9a13d425d1d2a260d87f84c6ec4ac2f1 Mon Sep 17 00:00:00 2001 From: Eris Lund <38136789+0x5066@users.noreply.github.com> Date: Sat, 2 Jul 2022 17:25:22 +0200 Subject: [PATCH 19/34] Add The Cheetahmen --- demos/The Cheetahmen.fur | Bin 0 -> 2454 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 demos/The Cheetahmen.fur diff --git a/demos/The Cheetahmen.fur b/demos/The Cheetahmen.fur new file mode 100644 index 0000000000000000000000000000000000000000..105b64b11e6327f741bad1f658de1185735367e4 GIT binary patch literal 2454 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 UaoF3vLfBg-OOHJLKZtB$k0fXS2mk;8 literal 0 HcmV?d00001 From caa1c2c93daaf9d1b0aca321dd156b2f25f3ec73 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 3 Jul 2022 01:29:41 -0500 Subject: [PATCH 20/34] D E M O --- demos/massive_x_opz.fur | Bin 0 -> 5836 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 demos/massive_x_opz.fur diff --git a/demos/massive_x_opz.fur b/demos/massive_x_opz.fur new file mode 100644 index 0000000000000000000000000000000000000000..f32a1f26c6c6201f8d664037d5396a532135b79d GIT binary patch literal 5836 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 Date: Sun, 3 Jul 2022 23:02:25 -0500 Subject: [PATCH 21/34] GUI: possibly fix replace crashes --- src/gui/findReplace.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/findReplace.cpp b/src/gui/findReplace.cpp index 78abce7cb..69303c6f9 100644 --- a/src/gui/findReplace.cpp +++ b/src/gui/findReplace.cpp @@ -997,16 +997,16 @@ void FurnaceGUI::drawFindReplace() { ImGui::TableNextColumn(); ImGui::BeginDisabled(!queryReplaceEffectValDo[i]); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); - ImGui::Combo("##ERMode",&queryReplaceEffectValMode[i],queryReplaceModes,GUI_QUERY_REPLACE_MAX); + ImGui::Combo("##ERModeV",&queryReplaceEffectValMode[i],queryReplaceModes,GUI_QUERY_REPLACE_MAX); ImGui::TableNextColumn(); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); if (queryReplaceEffectValMode[i]==GUI_QUERY_REPLACE_SET) { - if (ImGui::InputScalar("##ERValueH",ImGuiDataType_S32,&queryReplaceEffectVal[i],&_ONE,&_SIXTEEN,"%.2X",ImGuiInputTextFlags_CharsHexadecimal)) { + if (ImGui::InputScalar("##ERValueVH",ImGuiDataType_S32,&queryReplaceEffectVal[i],&_ONE,&_SIXTEEN,"%.2X",ImGuiInputTextFlags_CharsHexadecimal)) { if (queryReplaceEffectVal[i]<0) queryReplaceEffectVal[i]=0; if (queryReplaceEffectVal[i]>255) queryReplaceEffectVal[i]=255; } } else if (queryReplaceEffectValMode[i]==GUI_QUERY_REPLACE_ADD || queryReplaceEffectValMode[i]==GUI_QUERY_REPLACE_ADD_OVERFLOW) { - if (ImGui::InputInt("##ERValue",&queryReplaceEffectVal[i],1,12)) { + if (ImGui::InputInt("##ERValueV",&queryReplaceEffectVal[i],1,12)) { if (queryReplaceEffectVal[i]<-255) queryReplaceEffectVal[i]=-255; if (queryReplaceEffectVal[i]>255) queryReplaceEffectVal[i]=255; } From 4b1db78a0ba115a6f287d223a612c992adc22f61 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 3 Jul 2022 23:02:45 -0500 Subject: [PATCH 22/34] GUI: remove debug message --- src/gui/findReplace.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/gui/findReplace.cpp b/src/gui/findReplace.cpp index 69303c6f9..e982882d4 100644 --- a/src/gui/findReplace.cpp +++ b/src/gui/findReplace.cpp @@ -447,7 +447,6 @@ void FurnaceGUI::doReplace() { } if (!us.pat.empty()) { - printf("pusher\n"); undoHist.push_back(us); redoHist.clear(); if (undoHist.size()>settings.maxUndoSteps) undoHist.pop_front(); From 0ec28f168ee64a3b66cc2d2fd1d902ee680d6284 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 3 Jul 2022 23:31:35 -0500 Subject: [PATCH 23/34] more .dmf compatibility stuff --- src/engine/playback.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/engine/playback.cpp b/src/engine/playback.cpp index d672c2d47..329c5b54d 100644 --- a/src/engine/playback.cpp +++ b/src/engine/playback.cpp @@ -334,6 +334,11 @@ void DivEngine::processRow(int i, bool afterDelay) { if (chan[i].lastIns!=pat->data[whatRow][2]) { chan[i].lastIns=pat->data[whatRow][2]; insChanged=true; + if (song.legacyVolumeSlides && chan[i].volume==chan[i].volMax+1) { + logV("forcing volume"); + chan[i].volume=chan[i].volMax; + dispatchCmd(DivCommand(DIV_CMD_VOLUME,i,chan[i].volume>>8)); + } } } // note From 949e29305390e5747bad7d7bd821568e6facc683 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 3 Jul 2022 23:43:13 -0500 Subject: [PATCH 24/34] SMS: aaaand more .dmf compatibility --- src/engine/platform/sms.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/platform/sms.cpp b/src/engine/platform/sms.cpp index f16d53351..28462027d 100644 --- a/src/engine/platform/sms.cpp +++ b/src/engine/platform/sms.cpp @@ -133,7 +133,7 @@ void DivPlatformSMS::tick(bool sysTick) { if (i==3) CHIP_DIVIDER=noiseDivider; chan[i].std.next(); if (chan[i].std.vol.had) { - chan[i].outVol=MIN(15,chan[i].std.vol.val)-(15-(chan[i].vol&15)); + chan[i].outVol=VOL_SCALE_LOG(chan[i].std.vol.val,chan[i].vol,15); if (chan[i].outVol<0) chan[i].outVol=0; // old formula // ((chan[i].vol&15)*MIN(15,chan[i].std.vol.val))>>4; From f4a85bebff2de4a3b3af5556a1d3ac6974ae6ca1 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Mon, 4 Jul 2022 01:43:59 -0500 Subject: [PATCH 25/34] dev101 - fix SMSFM_intro.dmf --- papers/format.md | 4 +++- src/engine/engine.h | 4 ++-- src/engine/fileOps.cpp | 14 ++++++++++++-- src/engine/platform/amiga.cpp | 1 + src/engine/platform/arcade.cpp | 1 + src/engine/platform/ay.cpp | 1 + src/engine/platform/ay8930.cpp | 1 + src/engine/platform/bubsyswsg.cpp | 1 + src/engine/platform/c64.cpp | 1 + src/engine/platform/fds.cpp | 1 + src/engine/platform/gb.cpp | 1 + src/engine/platform/lynx.cpp | 1 + src/engine/platform/mmc5.cpp | 1 + src/engine/platform/n163.cpp | 1 + src/engine/platform/namcowsg.cpp | 1 + src/engine/platform/nes.cpp | 1 + src/engine/platform/opl.cpp | 3 +++ src/engine/platform/opll.cpp | 1 + src/engine/platform/pce.cpp | 1 + src/engine/platform/pcspkr.cpp | 1 + src/engine/platform/pet.cpp | 1 + src/engine/platform/qsound.cpp | 1 + src/engine/platform/rf5c68.cpp | 1 + src/engine/platform/saa.cpp | 1 + src/engine/platform/scc.cpp | 1 + src/engine/platform/segapcm.cpp | 1 + src/engine/platform/sms.cpp | 3 +-- src/engine/platform/su.cpp | 1 + src/engine/platform/swan.cpp | 1 + src/engine/platform/tia.cpp | 1 + src/engine/platform/tx81z.cpp | 1 + src/engine/platform/vera.cpp | 1 + src/engine/platform/vic20.cpp | 1 + src/engine/platform/vrc6.cpp | 1 + src/engine/platform/x1_010.cpp | 1 + src/engine/platform/ymz280b.cpp | 1 + src/engine/platform/zxbeeper.cpp | 1 + src/engine/song.h | 4 +++- src/gui/compatFlags.cpp | 18 +++++++++++------- 39 files changed, 67 insertions(+), 15 deletions(-) diff --git a/papers/format.md b/papers/format.md index bef8b1f81..3e3583463 100644 --- a/papers/format.md +++ b/papers/format.md @@ -32,6 +32,7 @@ these fields are 0 in format versions prior to 100 (0.6pre1). the format versions are: +- 101: Furnace 0.6pre1 (dev101) - 100: Furnace 0.6pre1 - 99: Furnace dev99 - 98: Furnace dev98 @@ -318,7 +319,8 @@ size | description 1 | volume macro still applies after end (>=99) or reserved 1 | broken outVol (>=99) or reserved 1 | E1xy and E2xy stop on same note (>=100) or reserved - 8 | reserved + 1 | broken initial position of porta after arp (>=101) or reserved + 7 | reserved --- | **virtual tempo data** 2 | virtual tempo numerator of first song (>=96) or reserved 2 | virtual tempo denominator of first song (>=96) or reserved diff --git a/src/engine/engine.h b/src/engine/engine.h index 962e0fcca..5f5ab1a35 100644 --- a/src/engine/engine.h +++ b/src/engine/engine.h @@ -45,8 +45,8 @@ #define BUSY_BEGIN_SOFT softLocked=true; isBusy.lock(); #define BUSY_END isBusy.unlock(); softLocked=false; -#define DIV_VERSION "0.6pre1" -#define DIV_ENGINE_VERSION 100 +#define DIV_VERSION "0.6pre1 (dev101)" +#define DIV_ENGINE_VERSION 101 // for imports #define DIV_VERSION_MOD 0xff01 diff --git a/src/engine/fileOps.cpp b/src/engine/fileOps.cpp index d4c453239..ddc5edf6b 100644 --- a/src/engine/fileOps.cpp +++ b/src/engine/fileOps.cpp @@ -172,6 +172,7 @@ bool DivEngine::loadDMF(unsigned char* file, size_t len) { ds.volMacroLinger=false; ds.brokenOutVol=true; // ??? ds.e1e2StopOnSameNote=true; + ds.brokenPortaArp=false; // 1.1 compat flags if (ds.version>24) { @@ -1047,6 +1048,9 @@ bool DivEngine::loadFur(unsigned char* file, size_t len) { if (ds.version<100) { ds.e1e2StopOnSameNote=false; } + if (ds.version<101) { + ds.brokenPortaArp=true; + } ds.isDMF=false; reader.readS(); // reserved @@ -1448,7 +1452,12 @@ bool DivEngine::loadFur(unsigned char* file, size_t len) { } else { reader.readC(); } - for (int i=0; i<8; i++) { + if (ds.version>=101) { + ds.brokenPortaArp=reader.readC(); + } else { + reader.readC(); + } + for (int i=0; i<7; i++) { reader.readC(); } } @@ -2922,7 +2931,8 @@ SafeWriter* DivEngine::saveFur(bool notPrimary) { w->writeC(song.volMacroLinger); w->writeC(song.brokenOutVol); w->writeC(song.e1e2StopOnSameNote); - for (int i=0; i<8; i++) { + w->writeC(song.brokenPortaArp); + for (int i=0; i<7; i++) { w->writeC(0); } diff --git a/src/engine/platform/amiga.cpp b/src/engine/platform/amiga.cpp index 8037feafe..65b44136f 100644 --- a/src/engine/platform/amiga.cpp +++ b/src/engine/platform/amiga.cpp @@ -355,6 +355,7 @@ int DivPlatformAmiga::dispatch(DivCommand c) { if (chan[c.chan].active && c.value2) { if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_AMIGA)); } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NOTE_PERIODIC(chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_SAMPLE_POS: diff --git a/src/engine/platform/arcade.cpp b/src/engine/platform/arcade.cpp index 1be61fa23..41042cd5c 100644 --- a/src/engine/platform/arcade.cpp +++ b/src/engine/platform/arcade.cpp @@ -827,6 +827,7 @@ int DivPlatformArcade::dispatch(DivCommand c) { return 127; break; case DIV_CMD_PRE_PORTA: + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NOTE_LINEAR(chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_PRE_NOTE: diff --git a/src/engine/platform/ay.cpp b/src/engine/platform/ay.cpp index 073776105..7018824b9 100644 --- a/src/engine/platform/ay.cpp +++ b/src/engine/platform/ay.cpp @@ -474,6 +474,7 @@ int DivPlatformAY8910::dispatch(DivCommand c) { if (chan[c.chan].active && c.value2) { if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_AY)); } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NOTE_PERIODIC(chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_PRE_NOTE: diff --git a/src/engine/platform/ay8930.cpp b/src/engine/platform/ay8930.cpp index 0fad4025b..581ebb9e8 100644 --- a/src/engine/platform/ay8930.cpp +++ b/src/engine/platform/ay8930.cpp @@ -506,6 +506,7 @@ int DivPlatformAY8930::dispatch(DivCommand c) { if (chan[c.chan].active && c.value2) { if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_AY8930)); } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NOTE_PERIODIC(chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_PRE_NOTE: diff --git a/src/engine/platform/bubsyswsg.cpp b/src/engine/platform/bubsyswsg.cpp index 48a078803..5fe4462f4 100644 --- a/src/engine/platform/bubsyswsg.cpp +++ b/src/engine/platform/bubsyswsg.cpp @@ -250,6 +250,7 @@ int DivPlatformBubSysWSG::dispatch(DivCommand c) { if (chan[c.chan].active && c.value2) { if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_SCC)); } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NOTE_PERIODIC(chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_GET_VOLMAX: diff --git a/src/engine/platform/c64.cpp b/src/engine/platform/c64.cpp index a55b53906..640df54e6 100644 --- a/src/engine/platform/c64.cpp +++ b/src/engine/platform/c64.cpp @@ -369,6 +369,7 @@ int DivPlatformC64::dispatch(DivCommand c) { chan[c.chan].keyOn=true; } } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NOTE_FREQUENCY(chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_PRE_NOTE: diff --git a/src/engine/platform/fds.cpp b/src/engine/platform/fds.cpp index ea4b83e9d..f9fc5b50b 100644 --- a/src/engine/platform/fds.cpp +++ b/src/engine/platform/fds.cpp @@ -406,6 +406,7 @@ int DivPlatformFDS::dispatch(DivCommand c) { if (chan[c.chan].active && c.value2) { if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_FDS)); } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NOTE_FREQUENCY(chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_GET_VOLMAX: diff --git a/src/engine/platform/gb.cpp b/src/engine/platform/gb.cpp index 999d31b91..2b7dcf6df 100644 --- a/src/engine/platform/gb.cpp +++ b/src/engine/platform/gb.cpp @@ -393,6 +393,7 @@ int DivPlatformGB::dispatch(DivCommand c) { if (chan[c.chan].active && c.value2) { if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_GB)); } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NOTE_PERIODIC(chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_GB_SWEEP_DIR: diff --git a/src/engine/platform/lynx.cpp b/src/engine/platform/lynx.cpp index 4fd30db98..3f5e92c03 100644 --- a/src/engine/platform/lynx.cpp +++ b/src/engine/platform/lynx.cpp @@ -387,6 +387,7 @@ int DivPlatformLynx::dispatch(DivCommand c) { if (chan[c.chan].active && c.value2) { if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_MIKEY)); } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NOTE_PERIODIC(chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_GET_VOLMAX: diff --git a/src/engine/platform/mmc5.cpp b/src/engine/platform/mmc5.cpp index 2b97f46f6..dc9e5abad 100644 --- a/src/engine/platform/mmc5.cpp +++ b/src/engine/platform/mmc5.cpp @@ -324,6 +324,7 @@ int DivPlatformMMC5::dispatch(DivCommand c) { if (chan[c.chan].active && c.value2) { if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_STD)); } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NOTE_PERIODIC(chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_GET_VOLMAX: diff --git a/src/engine/platform/n163.cpp b/src/engine/platform/n163.cpp index 50f9d8363..b20b460e0 100644 --- a/src/engine/platform/n163.cpp +++ b/src/engine/platform/n163.cpp @@ -562,6 +562,7 @@ int DivPlatformN163::dispatch(DivCommand c) { chan[c.chan].keyOn=true; } } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NOTE_FREQUENCY(chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_GET_VOLMAX: diff --git a/src/engine/platform/namcowsg.cpp b/src/engine/platform/namcowsg.cpp index 6bcf43d27..00b127930 100644 --- a/src/engine/platform/namcowsg.cpp +++ b/src/engine/platform/namcowsg.cpp @@ -442,6 +442,7 @@ int DivPlatformNamcoWSG::dispatch(DivCommand c) { if (chan[c.chan].active && c.value2) { if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_PCE)); } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NOTE_FREQUENCY(chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_GET_VOLMAX: diff --git a/src/engine/platform/nes.cpp b/src/engine/platform/nes.cpp index 67ad28521..d801fe664 100644 --- a/src/engine/platform/nes.cpp +++ b/src/engine/platform/nes.cpp @@ -573,6 +573,7 @@ int DivPlatformNES::dispatch(DivCommand c) { if (chan[c.chan].active && c.value2) { if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_STD)); } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NOTE_PERIODIC(chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_GET_VOLMAX: diff --git a/src/engine/platform/opl.cpp b/src/engine/platform/opl.cpp index 9373d0cd8..823e764bc 100644 --- a/src/engine/platform/opl.cpp +++ b/src/engine/platform/opl.cpp @@ -1434,6 +1434,9 @@ int DivPlatformOPL::dispatch(DivCommand c) { return 63; break; case DIV_CMD_PRE_PORTA: + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) { + chan[c.chan].baseFreq=(c.chan==adpcmChan)?(NOTE_ADPCMB(chan[c.chan].note)):(NOTE_FREQUENCY(chan[c.chan].note)); + } chan[c.chan].inPorta=c.value; break; case DIV_CMD_PRE_NOTE: diff --git a/src/engine/platform/opll.cpp b/src/engine/platform/opll.cpp index 08292be68..5c9611b43 100644 --- a/src/engine/platform/opll.cpp +++ b/src/engine/platform/opll.cpp @@ -831,6 +831,7 @@ int DivPlatformOPLL::dispatch(DivCommand c) { break; case DIV_CMD_PRE_PORTA: if (c.chan>=9 && !properDrums) return 0; + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NOTE_FREQUENCY(chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_PRE_NOTE: diff --git a/src/engine/platform/pce.cpp b/src/engine/platform/pce.cpp index b8c580e51..9e1302a0f 100644 --- a/src/engine/platform/pce.cpp +++ b/src/engine/platform/pce.cpp @@ -445,6 +445,7 @@ int DivPlatformPCE::dispatch(DivCommand c) { if (chan[c.chan].active && c.value2) { if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_PCE)); } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NOTE_PERIODIC(chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_GET_VOLMAX: diff --git a/src/engine/platform/pcspkr.cpp b/src/engine/platform/pcspkr.cpp index 57c72b677..d40a297ae 100644 --- a/src/engine/platform/pcspkr.cpp +++ b/src/engine/platform/pcspkr.cpp @@ -471,6 +471,7 @@ int DivPlatformPCSpeaker::dispatch(DivCommand c) { if (chan[c.chan].active && c.value2) { if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_BEEPER)); } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NOTE_PERIODIC(chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_GET_VOLMAX: diff --git a/src/engine/platform/pet.cpp b/src/engine/platform/pet.cpp index 9b3c99886..493436271 100644 --- a/src/engine/platform/pet.cpp +++ b/src/engine/platform/pet.cpp @@ -239,6 +239,7 @@ int DivPlatformPET::dispatch(DivCommand c) { if (chan.active && c.value2) { if (parent->song.resetMacroOnPorta) chan.macroInit(parent->getIns(chan.ins,DIV_INS_PET)); } + if (!chan.inPorta && c.value && !parent->song.brokenPortaArp && chan.std.arp.will) chan.baseFreq=NOTE_PERIODIC(chan.note); chan.inPorta=c.value; break; case DIV_CMD_GET_VOLMAX: diff --git a/src/engine/platform/qsound.cpp b/src/engine/platform/qsound.cpp index 8af565df4..6eb14be7f 100644 --- a/src/engine/platform/qsound.cpp +++ b/src/engine/platform/qsound.cpp @@ -496,6 +496,7 @@ int DivPlatformQSound::dispatch(DivCommand c) { if (chan[c.chan].active && c.value2) { if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_AMIGA)); } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=QS_NOTE_FREQUENCY(chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_GET_VOLMAX: diff --git a/src/engine/platform/rf5c68.cpp b/src/engine/platform/rf5c68.cpp index 2106a5a72..176b6e7c7 100644 --- a/src/engine/platform/rf5c68.cpp +++ b/src/engine/platform/rf5c68.cpp @@ -265,6 +265,7 @@ int DivPlatformRF5C68::dispatch(DivCommand c) { if (chan[c.chan].active && c.value2) { if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_AMIGA)); } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NOTE_FREQUENCY(chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_SAMPLE_POS: diff --git a/src/engine/platform/saa.cpp b/src/engine/platform/saa.cpp index c562838a2..103c3348f 100644 --- a/src/engine/platform/saa.cpp +++ b/src/engine/platform/saa.cpp @@ -335,6 +335,7 @@ int DivPlatformSAA1099::dispatch(DivCommand c) { if (chan[c.chan].active && c.value2) { if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_SAA1099)); } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NOTE_PERIODIC(chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_PRE_NOTE: diff --git a/src/engine/platform/scc.cpp b/src/engine/platform/scc.cpp index 8175bc01b..485839bf1 100644 --- a/src/engine/platform/scc.cpp +++ b/src/engine/platform/scc.cpp @@ -267,6 +267,7 @@ int DivPlatformSCC::dispatch(DivCommand c) { if (chan[c.chan].active && c.value2) { if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_SCC)); } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NOTE_PERIODIC(chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_GET_VOLMAX: diff --git a/src/engine/platform/segapcm.cpp b/src/engine/platform/segapcm.cpp index 19b8eb82e..71d45298a 100644 --- a/src/engine/platform/segapcm.cpp +++ b/src/engine/platform/segapcm.cpp @@ -365,6 +365,7 @@ int DivPlatformSegaPCM::dispatch(DivCommand c) { return 127; break; case DIV_CMD_PRE_PORTA: + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=(chan[c.chan].note<<6); chan[c.chan].inPorta=c.value; break; case DIV_CMD_PRE_NOTE: diff --git a/src/engine/platform/sms.cpp b/src/engine/platform/sms.cpp index 28462027d..3d11a5ac9 100644 --- a/src/engine/platform/sms.cpp +++ b/src/engine/platform/sms.cpp @@ -353,9 +353,8 @@ int DivPlatformSMS::dispatch(DivCommand c) { if (chan[c.chan].active && c.value2) { if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_STD)); } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NOTE_PERIODIC(chan[c.chan].note); chan[c.chan].inPorta=c.value; - // TODO: pre porta cancel arp compat flag - //if (chan[c.chan].inPorta) chan[c.chan].baseFreq=NOTE_PERIODIC(chan[c.chan].note); break; case DIV_CMD_GET_VOLMAX: return 15; diff --git a/src/engine/platform/su.cpp b/src/engine/platform/su.cpp index c6860afbb..f3be01a78 100644 --- a/src/engine/platform/su.cpp +++ b/src/engine/platform/su.cpp @@ -454,6 +454,7 @@ int DivPlatformSoundUnit::dispatch(DivCommand c) { if (chan[c.chan].active && c.value2) { if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_SU)); } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NOTE_FREQUENCY(chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_GET_VOLMAX: diff --git a/src/engine/platform/swan.cpp b/src/engine/platform/swan.cpp index 905fa82a5..b3e833198 100644 --- a/src/engine/platform/swan.cpp +++ b/src/engine/platform/swan.cpp @@ -431,6 +431,7 @@ int DivPlatformSwan::dispatch(DivCommand c) { if (chan[c.chan].active && c.value2) { if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_SWAN)); } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NOTE_PERIODIC(chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_GET_VOLMAX: diff --git a/src/engine/platform/tia.cpp b/src/engine/platform/tia.cpp index da3472446..ddb380844 100644 --- a/src/engine/platform/tia.cpp +++ b/src/engine/platform/tia.cpp @@ -259,6 +259,7 @@ int DivPlatformTIA::dispatch(DivCommand c) { if (chan[c.chan].active && c.value2) { if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_TIA)); } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=(chan[c.chan].note<<8); chan[c.chan].inPorta=c.value; break; case DIV_CMD_PRE_NOTE: diff --git a/src/engine/platform/tx81z.cpp b/src/engine/platform/tx81z.cpp index 123d1193c..9d24e4db5 100644 --- a/src/engine/platform/tx81z.cpp +++ b/src/engine/platform/tx81z.cpp @@ -933,6 +933,7 @@ int DivPlatformTX81Z::dispatch(DivCommand c) { return 127; break; case DIV_CMD_PRE_PORTA: + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NOTE_LINEAR(chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_PRE_NOTE: diff --git a/src/engine/platform/vera.cpp b/src/engine/platform/vera.cpp index 62e1ea682..092bbb6ac 100644 --- a/src/engine/platform/vera.cpp +++ b/src/engine/platform/vera.cpp @@ -359,6 +359,7 @@ int DivPlatformVERA::dispatch(DivCommand c) { if (chan[c.chan].active && c.value2) { if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_VERA)); } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=calcNoteFreq(c.chan,chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_STD_NOISE_MODE: diff --git a/src/engine/platform/vic20.cpp b/src/engine/platform/vic20.cpp index 8475b0e53..771b87d1e 100644 --- a/src/engine/platform/vic20.cpp +++ b/src/engine/platform/vic20.cpp @@ -243,6 +243,7 @@ int DivPlatformVIC20::dispatch(DivCommand c) { if (chan[c.chan].active && c.value2) { if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_VIC)); } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NOTE_PERIODIC(chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_GET_VOLMAX: diff --git a/src/engine/platform/vrc6.cpp b/src/engine/platform/vrc6.cpp index 08c6d0538..88fcb37b4 100644 --- a/src/engine/platform/vrc6.cpp +++ b/src/engine/platform/vrc6.cpp @@ -399,6 +399,7 @@ int DivPlatformVRC6::dispatch(DivCommand c) { if (chan[c.chan].active && c.value2) { if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_VRC6)); } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NOTE_PERIODIC(chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_GET_VOLMAX: diff --git a/src/engine/platform/x1_010.cpp b/src/engine/platform/x1_010.cpp index dc5c7ed22..e2e360b1b 100644 --- a/src/engine/platform/x1_010.cpp +++ b/src/engine/platform/x1_010.cpp @@ -732,6 +732,7 @@ int DivPlatformX1_010::dispatch(DivCommand c) { if (chan[c.chan].active && c.value2) { if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_X1_010)); } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NoteX1_010(c.chan,chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_SAMPLE_FREQ: diff --git a/src/engine/platform/ymz280b.cpp b/src/engine/platform/ymz280b.cpp index 45631a940..d8d98478d 100644 --- a/src/engine/platform/ymz280b.cpp +++ b/src/engine/platform/ymz280b.cpp @@ -293,6 +293,7 @@ int DivPlatformYMZ280B::dispatch(DivCommand c) { if (chan[c.chan].active && c.value2) { if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_AMIGA)); } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NOTE_FREQUENCY(chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_SAMPLE_POS: diff --git a/src/engine/platform/zxbeeper.cpp b/src/engine/platform/zxbeeper.cpp index 524d3c117..01702dc5d 100644 --- a/src/engine/platform/zxbeeper.cpp +++ b/src/engine/platform/zxbeeper.cpp @@ -224,6 +224,7 @@ int DivPlatformZXBeeper::dispatch(DivCommand c) { if (chan[c.chan].active && c.value2) { if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_BEEPER)); } + if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will) chan[c.chan].baseFreq=NOTE_FREQUENCY(chan[c.chan].note); chan[c.chan].inPorta=c.value; break; case DIV_CMD_GET_VOLMAX: diff --git a/src/engine/song.h b/src/engine/song.h index d06c57377..185cac8a2 100644 --- a/src/engine/song.h +++ b/src/engine/song.h @@ -497,6 +497,7 @@ struct DivSong { bool volMacroLinger; bool brokenOutVol; bool e1e2StopOnSameNote; + bool brokenPortaArp; std::vector ins; std::vector wave; @@ -595,7 +596,8 @@ struct DivSong { newVolumeScaling(true), volMacroLinger(true), brokenOutVol(false), - e1e2StopOnSameNote(false) { + e1e2StopOnSameNote(false), + brokenPortaArp(false) { for (int i=0; i<32; i++) { system[i]=DIV_SYSTEM_NULL; systemVol[i]=64; diff --git a/src/gui/compatFlags.cpp b/src/gui/compatFlags.cpp index 8e5d75172..9024992e7 100644 --- a/src/gui/compatFlags.cpp +++ b/src/gui/compatFlags.cpp @@ -207,31 +207,35 @@ void FurnaceGUI::drawCompatFlags() { } ImGui::Checkbox("Stop portamento on note off",&e->song.stopPortaOnNoteOff); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("behavior changed in 0.6"); + ImGui::SetTooltip("behavior changed in 0.6pre1"); } ImGui::Checkbox("Allow instrument change during slides",&e->song.newInsTriggersInPorta); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("behavior changed in 0.6"); + ImGui::SetTooltip("behavior changed in 0.6pre1"); } ImGui::Checkbox("Reset note to base on arpeggio stop",&e->song.arp0Reset); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("behavior changed in 0.6"); + ImGui::SetTooltip("behavior changed in 0.6pre1"); } ImGui::Checkbox("ExtCh channel status is shared among operators",&e->song.sharedExtStat); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("behavior changed in 0.6"); + ImGui::SetTooltip("behavior changed in 0.6pre1"); } ImGui::Checkbox("New SegaPCM features (macros and better panning)",&e->song.newSegaPCM); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("behavior changed in 0.6"); + ImGui::SetTooltip("behavior changed in 0.6pre1"); } ImGui::Checkbox("Old FM octave boundary behavior",&e->song.oldOctaveBoundary); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("behavior changed in 0.6"); + ImGui::SetTooltip("behavior changed in 0.6pre1"); } ImGui::Checkbox("No OPN2 DAC volume control",&e->song.noOPN2Vol); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("behavior changed in 0.6"); + ImGui::SetTooltip("behavior changed in 0.6pre1"); + } + ImGui::Checkbox("Broken initial position of portamento after arpeggio",&e->song.brokenPortaArp); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("behavior changed in 0.6pre1.5"); } } if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_COMPAT_FLAGS; From b39924c9d6a7948013a69418f881ad54b0b8ff3b Mon Sep 17 00:00:00 2001 From: tildearrow Date: Mon, 4 Jul 2022 23:54:56 -0500 Subject: [PATCH 26/34] AY: TODO fix wtr_envelope.dmf --- src/engine/platform/ay.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/engine/platform/ay.cpp b/src/engine/platform/ay.cpp index 7018824b9..8df5bd4ce 100644 --- a/src/engine/platform/ay.cpp +++ b/src/engine/platform/ay.cpp @@ -471,6 +471,8 @@ int DivPlatformAY8910::dispatch(DivCommand c) { return 15; break; case DIV_CMD_PRE_PORTA: + // TODO: FIX wtr_envelope.dmf + // the brokenPortaArp update broke it if (chan[c.chan].active && c.value2) { if (parent->song.resetMacroOnPorta) chan[c.chan].macroInit(parent->getIns(chan[c.chan].ins,DIV_INS_AY)); } From 1ed6fdd405920830e5964d8d2c045e6b77b910ae Mon Sep 17 00:00:00 2001 From: tildearrow Date: Tue, 5 Jul 2022 14:02:40 -0500 Subject: [PATCH 27/34] and another demo song requested by Crisps --- .../Rise_against_the_ashes_to_the_new_dawn.fur | Bin 0 -> 29292 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 demos/Rise_against_the_ashes_to_the_new_dawn.fur diff --git a/demos/Rise_against_the_ashes_to_the_new_dawn.fur b/demos/Rise_against_the_ashes_to_the_new_dawn.fur new file mode 100644 index 0000000000000000000000000000000000000000..be28182fc422cc43fdf7c3eb57c53ac124fbc10d GIT binary patch literal 29292 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 MVJ`qkQa;ZA0_tTL Date: Thu, 7 Jul 2022 04:09:50 +0900 Subject: [PATCH 28/34] Fix typo --- src/gui/sysConf.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/sysConf.cpp b/src/gui/sysConf.cpp index b34dd0b28..9cd963cc3 100644 --- a/src/gui/sysConf.cpp +++ b/src/gui/sysConf.cpp @@ -569,7 +569,7 @@ void FurnaceGUI::drawSysConf(int chan, DivSystem type, unsigned int& flags, bool case DIV_SYSTEM_OPL3: case DIV_SYSTEM_OPL3_DRUMS: { ImGui::Text("Clock rate:"); - if (ImGui::RadioButton("14.32MHz (MTSC)",(flags&255)==0)) { + if (ImGui::RadioButton("14.32MHz (NTSC)",(flags&255)==0)) { copyOfFlags=(flags&(~255))|0; } if (ImGui::RadioButton("14.19MHz (PAL)",(flags&255)==1)) { @@ -591,7 +591,7 @@ void FurnaceGUI::drawSysConf(int chan, DivSystem type, unsigned int& flags, bool if (ImGui::RadioButton("16.9344MHz",(flags&255)==0)) { copyOfFlags=(flags&(~255))|0; } - if (ImGui::RadioButton("14.32MHz (MTSC)",(flags&255)==1)) { + if (ImGui::RadioButton("14.32MHz (NTSC)",(flags&255)==1)) { copyOfFlags=(flags&(~255))|1; } if (ImGui::RadioButton("14.19MHz (PAL)",(flags&255)==3)) { From fe94ea8e041d7c9662f999f6661fd8b453d1a387 Mon Sep 17 00:00:00 2001 From: cam900 Date: Thu, 7 Jul 2022 04:10:32 +0900 Subject: [PATCH 29/34] Fix typo --- src/engine/song.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/engine/song.h b/src/engine/song.h index 185cac8a2..26640fdd4 100644 --- a/src/engine/song.h +++ b/src/engine/song.h @@ -353,7 +353,7 @@ struct DivSong { // - 1: stereo // - YM2203: // - bit 0-4: clock rate - // - 0: 3.58MHz (MTSC) + // - 0: 3.58MHz (NTSC) // - 1: 3.55MHz (PAL) // - 2: 4MHz // - 3: 3MHz @@ -373,7 +373,7 @@ struct DivSong { // - 2: FM: clock / 48, SSG: clock / 8 // - YM3526, YM3812, Y8950: // - bit 0-7: clock rate - // - 0: 3.58MHz (MTSC) + // - 0: 3.58MHz (NTSC) // - 1: 3.55MHz (PAL) // - 2: 4MHz // - 3: 3MHz @@ -381,7 +381,7 @@ struct DivSong { // - 5: 3.5MHz // - YMF262: // - bit 0-7: clock rate - // - 0: 14.32MHz (MTSC) + // - 0: 14.32MHz (NTSC) // - 1: 14.19MHz (PAL) // - 2: 14MHz // - 3: 16MHz @@ -389,7 +389,7 @@ struct DivSong { // - YMF289B: (TODO) // - bit 0-7: clock rate // - 0: 33.8688MHz - // - 1: 28.64MHz (MTSC) + // - 1: 28.64MHz (NTSC) // - 2: 28.38MHz (PAL) // - MSM6295: // - bit 0-6: clock rate @@ -420,7 +420,7 @@ struct DivSong { // - YMZ280B: // - bit 0-7: clock rate // - 0: 16.9344MHz - // - 1: 14.32MHz (MTSC) + // - 1: 14.32MHz (NTSC) // - 2: 14.19MHz (PAL) // - 3: 16MHz // - 4: 16.67MHz From 899fa9e494037769a305adfd51ed5b74984a1ffa Mon Sep 17 00:00:00 2001 From: brickblock369 <59150779+brickblock369@users.noreply.github.com> Date: Thu, 7 Jul 2022 08:34:04 +0900 Subject: [PATCH 30/34] Made new FM presets to include in Furnace's repo. --- instruments/FM/bass/Acoustic Bass.dmp | Bin 0 -> 51 bytes instruments/FM/bass/Electric Finger Bass.dmp | Bin 0 -> 51 bytes instruments/FM/bass/Electric Fretless Bass.dmp | Bin 0 -> 51 bytes instruments/FM/bass/Electric Picked Bass.dmp | Bin 0 -> 51 bytes instruments/FM/bass/Electric Slap Bass.dmp | Bin 0 -> 51 bytes instruments/FM/bass/SC-55 Synth Bass 1.dmp | Bin 0 -> 51 bytes instruments/FM/bass/SC-55 SynthBass101.dmp | Bin 0 -> 51 bytes instruments/FM/bass/Yamaha MU Synth Bass 2.dmp | Bin 0 -> 51 bytes 8 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 instruments/FM/bass/Acoustic Bass.dmp create mode 100644 instruments/FM/bass/Electric Finger Bass.dmp create mode 100644 instruments/FM/bass/Electric Fretless Bass.dmp create mode 100644 instruments/FM/bass/Electric Picked Bass.dmp create mode 100644 instruments/FM/bass/Electric Slap Bass.dmp create mode 100644 instruments/FM/bass/SC-55 Synth Bass 1.dmp create mode 100644 instruments/FM/bass/SC-55 SynthBass101.dmp create mode 100644 instruments/FM/bass/Yamaha MU Synth Bass 2.dmp diff --git a/instruments/FM/bass/Acoustic Bass.dmp b/instruments/FM/bass/Acoustic Bass.dmp new file mode 100644 index 0000000000000000000000000000000000000000..fb37c096d2dbf510c129efa4704d151ee2a75d56 GIT binary patch literal 51 zcmd;PVq^dURvAelW;O-}Mm`2cQE7I5Ad>}%h1FaBccIm literal 0 HcmV?d00001 diff --git a/instruments/FM/bass/SC-55 Synth Bass 1.dmp b/instruments/FM/bass/SC-55 Synth Bass 1.dmp new file mode 100644 index 0000000000000000000000000000000000000000..9ac496227582b59815395d3b7d5b5939cad5f126 GIT binary patch literal 51 xcmW;ASqcCk2tdK7iO>Re1L>q)z2$G1u7WEvb3{QMWTheSxU+>pxg=}!zXvR~0l@$O literal 0 HcmV?d00001 diff --git a/instruments/FM/bass/SC-55 SynthBass101.dmp b/instruments/FM/bass/SC-55 SynthBass101.dmp new file mode 100644 index 0000000000000000000000000000000000000000..2feefab3fad45e906cdf4dc318a80bb5182350d9 GIT binary patch literal 51 wcmW;AISv3I2mrwa)I=$0>3FJN_vj|$Ds)A&JPaKmS%kpjt`!aJlA7Uv4=w!x$^ZZW literal 0 HcmV?d00001 diff --git a/instruments/FM/bass/Yamaha MU Synth Bass 2.dmp b/instruments/FM/bass/Yamaha MU Synth Bass 2.dmp new file mode 100644 index 0000000000000000000000000000000000000000..08f8faca499186c66b47d5adba4c61930dae1ffe GIT binary patch literal 51 zcmWm2I}!j83_!sbpD@VK&?wyhmgsi2Iw1yR?vg5^kv5lU#;YOz@D}YjJ3W66E+(=8 Ai2wiq literal 0 HcmV?d00001 From af33876caf4c01ee9370507828183e558ab96191 Mon Sep 17 00:00:00 2001 From: brickblock369 <59150779+brickblock369@users.noreply.github.com> Date: Thu, 7 Jul 2022 08:34:53 +0900 Subject: [PATCH 31/34] To be used with acoustic string instruments. --- instruments/FM/effect/Acoustic String Slap SFX.dmp | Bin 0 -> 51 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 instruments/FM/effect/Acoustic String Slap SFX.dmp diff --git a/instruments/FM/effect/Acoustic String Slap SFX.dmp b/instruments/FM/effect/Acoustic String Slap SFX.dmp new file mode 100644 index 0000000000000000000000000000000000000000..a60d21e9cee9d279fd6c9e9ef9f91f6d0aab69c3 GIT binary patch literal 51 ycmWlO%MJh#48S^s;4rVV{r_K@q=%;MK`0609@-!{!h%F60Regd literal 0 HcmV?d00001 From b2134472ebc6426b3ef26316cdc2e0aa86181324 Mon Sep 17 00:00:00 2001 From: brickblock369 <59150779+brickblock369@users.noreply.github.com> Date: Thu, 7 Jul 2022 08:35:34 +0900 Subject: [PATCH 32/34] Made new FM presets to include in Furnace's repo. --- instruments/FM/bass/Basses.opm | 87 ++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 instruments/FM/bass/Basses.opm diff --git a/instruments/FM/bass/Basses.opm b/instruments/FM/bass/Basses.opm new file mode 100644 index 000000000..0b308cbf8 --- /dev/null +++ b/instruments/FM/bass/Basses.opm @@ -0,0 +1,87 @@ +//LFO: LFRQ AMD PMD WF NFRQ +//@:[Num] [Name] +//CH: PAN FL CON AMS PMS SLOT NE +//OP: AR D1R D2R RR D1L TL KS MUL DT1 DT2 AMS-EN + +// vgm offset = 000001d3, channels used = 1------- +@:0 Acoustic Bass +LFO: 0 0 0 0 0 +CH: 64 0 0 0 0 120 0 +M1: 25 18 14 6 3 28 0 5 6 0 0 +C1: 28 26 8 6 7 31 0 4 2 0 0 +M2: 27 7 0 6 15 21 0 1 1 0 0 +C2: 29 11 10 8 2 0 0 1 3 0 0 + +// vgm offset = 0000024e, channels used = 12------ +@:1 StringSlapSFX +LFO: 0 0 0 0 0 +CH: 64 7 4 0 0 120 0 +M1: 19 16 0 10 15 3 0 0 5 0 0 +C1: 31 20 0 9 15 4 0 7 0 0 0 +M2: 31 18 0 1 15 16 0 2 3 0 0 +C2: 31 17 0 9 15 30 0 1 3 0 0 + +// vgm offset = 0000093e, channels used = 1------- +@:2 Finger Bass +LFO: 0 0 0 0 0 +CH: 64 0 0 0 0 120 0 +M1: 31 15 0 11 1 31 0 3 3 0 0 +C1: 31 13 0 10 1 46 0 2 3 0 0 +M2: 31 10 0 10 1 24 0 1 3 0 0 +C2: 31 4 0 11 15 0 0 1 3 0 0 + +// vgm offset = 00000b30, channels used = 1------- +@:3 Fretless Bass +LFO: 0 0 0 0 0 +CH: 64 0 0 0 0 120 0 +M1: 31 0 0 3 15 21 0 1 5 0 0 +C1: 31 0 0 6 15 54 0 1 0 0 0 +M2: 31 0 0 7 11 26 0 1 5 0 0 +C2: 31 4 0 12 15 2 0 1 0 0 0 + +// vgm offset = 00000d2b, channels used = 1------- +@:4 Picked Bass +LFO: 0 0 0 0 0 +CH: 64 0 0 0 0 120 0 +M1: 31 18 1 11 3 24 0 5 3 0 0 +C1: 31 18 2 10 1 33 0 3 3 0 0 +M2: 31 10 3 10 1 33 0 1 3 0 0 +C2: 31 4 0 11 15 0 0 1 3 0 0 + +// vgm offset = 00000f2c, channels used = 1------- +@:5 Slap Bass +LFO: 0 0 0 0 0 +CH: 64 0 2 0 0 120 0 +M1: 31 20 0 3 15 0 1 0 0 0 0 +C1: 31 23 0 4 0 43 0 15 3 0 0 +M2: 31 17 0 1 2 16 1 1 3 0 0 +C2: 31 9 0 10 15 2 0 1 3 0 0 + +// vgm offset = 00001444, channels used = 1------- +@:6 Synth Bass 1 +LFO: 0 0 0 0 0 +CH: 64 6 2 0 0 120 0 +M1: 31 12 0 3 15 16 2 1 3 0 0 +C1: 31 10 0 4 15 127 0 1 0 0 0 +M2: 31 4 0 1 0 33 0 1 3 0 0 +C2: 31 9 0 11 15 0 0 1 3 0 0 + +// vgm offset = 0000189b, channels used = 1------- +@:7 SynthBass101 +LFO: 0 0 0 0 0 +CH: 64 5 2 0 0 120 0 +M1: 31 11 0 3 15 24 2 2 3 0 0 +C1: 31 10 0 4 15 127 0 1 0 0 0 +M2: 31 0 0 1 15 24 0 1 3 0 0 +C2: 31 9 0 11 15 0 0 1 3 0 0 + +// vgm offset = 00001d22, channels used = 1------- +@:8 Synth Bass 2 +LFO: 0 0 0 0 0 +CH: 64 5 4 0 0 120 0 +M1: 27 10 5 11 7 21 1 1 3 0 0 +C1: 31 0 15 11 7 3 0 1 3 0 0 +M2: 22 13 13 8 6 21 3 12 3 0 0 +C2: 31 15 16 11 8 13 0 2 3 0 0 + + From c2f1385703c70dddd82f26dfc22d7ab09e3714d9 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Fri, 8 Jul 2022 02:25:25 -0500 Subject: [PATCH 33/34] MSM6258: fix position not being reset in furnace s ample mode --- src/engine/platform/msm6258.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/engine/platform/msm6258.cpp b/src/engine/platform/msm6258.cpp index 731bf8f28..dc81950ef 100644 --- a/src/engine/platform/msm6258.cpp +++ b/src/engine/platform/msm6258.cpp @@ -121,6 +121,7 @@ int DivPlatformMSM6258::dispatch(DivCommand c) { chan[c.chan].outVol=chan[c.chan].vol; } sample=ins->amiga.getSample(c.value); + samplePos=0; if (sample>=0 && samplesong.sampleLen) { //DivSample* s=parent->getSample(chan[c.chan].sample); if (c.value!=DIV_NOTE_NULL) { @@ -144,8 +145,8 @@ int DivPlatformMSM6258::dispatch(DivCommand c) { //DivSample* s=parent->getSample(12*sampleBank+c.value%12); sample=12*sampleBank+c.value%12; samplePos=0; - msm->ctrl_w(1); - msm->ctrl_w(2); + rWrite(0,1); + rWrite(0,2); } break; } From c85b67b1da57a282cef3191de38a61ef6c51ccd0 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 9 Jul 2022 15:55:27 -0500 Subject: [PATCH 34/34] NES + chip -> Famicom + chip --- src/engine/sysDef.cpp | 12 ++++++------ src/gui/presets.cpp | 16 ++++++++-------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/engine/sysDef.cpp b/src/engine/sysDef.cpp index 04815866d..a5b689b2b 100644 --- a/src/engine/sysDef.cpp +++ b/src/engine/sysDef.cpp @@ -165,25 +165,25 @@ String DivEngine::getSongSystemName(bool isMultiSystemAcceptable) { } if (song.system[0]==DIV_SYSTEM_NES && song.system[1]==DIV_SYSTEM_VRC6) { - return "NES + Konami VRC6"; + return "Famicom + Konami VRC6"; } if (song.system[0]==DIV_SYSTEM_NES && song.system[1]==DIV_SYSTEM_VRC7) { - return "NES + Konami VRC7"; + return "Famicom + Konami VRC7"; } if (song.system[0]==DIV_SYSTEM_NES && song.system[1]==DIV_SYSTEM_OPLL) { - return "NES + Yamaha OPLL"; + return "Family Noraebang"; } if (song.system[0]==DIV_SYSTEM_NES && song.system[1]==DIV_SYSTEM_FDS) { return "Famicom Disk System"; } if (song.system[0]==DIV_SYSTEM_NES && song.system[1]==DIV_SYSTEM_N163) { - return "NES + Namco C163"; + return "Famicom + Namco C163"; } if (song.system[0]==DIV_SYSTEM_NES && song.system[1]==DIV_SYSTEM_MMC5) { - return "NES + MMC5"; + return "Famicom + MMC5"; } if (song.system[0]==DIV_SYSTEM_NES && song.system[1]==DIV_SYSTEM_AY8910) { - return "NES + Sunsoft 5B"; + return "Famicom + Sunsoft 5B"; } if (song.system[0]==DIV_SYSTEM_AY8910 && song.system[1]==DIV_SYSTEM_AY8910) { diff --git a/src/gui/presets.cpp b/src/gui/presets.cpp index a3a494963..3774f232c 100644 --- a/src/gui/presets.cpp +++ b/src/gui/presets.cpp @@ -589,49 +589,49 @@ void FurnaceGUI::initSystemPresets() { } )); cat.systems.push_back(FurnaceGUISysDef( - "NES with Konami VRC6", { + "Famicom with Konami VRC6", { DIV_SYSTEM_NES, 64, 0, 0, DIV_SYSTEM_VRC6, 64, 0, 0, 0 } )); cat.systems.push_back(FurnaceGUISysDef( - "NES with Konami VRC7", { + "Famicom with Konami VRC7", { DIV_SYSTEM_NES, 64, 0, 0, DIV_SYSTEM_VRC7, 64, 0, 0, 0 } )); cat.systems.push_back(FurnaceGUISysDef( - "NES with MMC5", { + "Famicom with MMC5", { DIV_SYSTEM_NES, 64, 0, 0, DIV_SYSTEM_MMC5, 64, 0, 0, 0 } )); cat.systems.push_back(FurnaceGUISysDef( - "NES with Sunsoft 5B", { + "Famicom with Sunsoft 5B", { DIV_SYSTEM_NES, 64, 0, 0, DIV_SYSTEM_AY8910, 64, 0, 32, 0 } )); cat.systems.push_back(FurnaceGUISysDef( - "NES with Namco C163", { + "Famicom with Namco C163", { DIV_SYSTEM_NES, 64, 0, 0, DIV_SYSTEM_N163, 64, 0, 112, 0 } )); cat.systems.push_back(FurnaceGUISysDef( - "NES with Family Noraebang", { + "Comboy with Family Noraebang", { DIV_SYSTEM_NES, 64, 0, 0, DIV_SYSTEM_OPLL, 64, 0, 0, 0 } )); cat.systems.push_back(FurnaceGUISysDef( - "NES with Family Noraebang (drums mode)", { + "Comboy with Family Noraebang (drums mode)", { DIV_SYSTEM_NES, 64, 0, 0, DIV_SYSTEM_OPLL_DRUMS, 64, 0, 0, 0 @@ -2094,7 +2094,7 @@ void FurnaceGUI::initSystemPresets() { } )); cat.systems.push_back(FurnaceGUISysDef( - "NES with Konami VRC7", { + "Famicom with Konami VRC7", { DIV_SYSTEM_NES, 64, 0, 0, DIV_SYSTEM_VRC7, 64, 0, 0, 0