diff --git a/demos/misc/biffy_bifurcator.fur b/demos/misc/biffy_bifurcator.fur index bc36b5aef..b77187e7e 100644 Binary files a/demos/misc/biffy_bifurcator.fur and b/demos/misc/biffy_bifurcator.fur differ diff --git a/papers/format.md b/papers/format.md index 58e30b441..5b05d7add 100644 --- a/papers/format.md +++ b/papers/format.md @@ -243,8 +243,10 @@ size | description | - 0xd6: NDS - 16 channels | - 0xd7: Game Boy Advance (direct) - 2 channels | - 0xd8: Game Boy Advance (MinMod) - 16 channels + | - 0xd9: Bifurcator - 4 channels | - 0xde: YM2610B extended - 19 channels | - 0xe0: QSound - 19 channels + | - 0xf0: SID2 - 3 channels | - 0xf1: 5E01 - 5 channels | - 0xfc: Pong - 1 channel | - 0xfd: Dummy System - 8 channels diff --git a/src/engine/platform/bifurcator.cpp b/src/engine/platform/bifurcator.cpp index 800f2b8f9..fbe10020a 100644 --- a/src/engine/platform/bifurcator.cpp +++ b/src/engine/platform/bifurcator.cpp @@ -54,7 +54,7 @@ void DivPlatformBifurcator::acquire(short** buf, size_t len) { for (int i=0; i<4; i++) { chan[i].audSub+=chan[i].freq; if (chan[i].audSub>=65536) { - long long newx=(long long)chan[i].curx*(chan[i].param+65536)/32768; + int64_t newx=(int64_t)chan[i].curx*(chan[i].param+65536)/32768; newx*=65536-chan[i].curx; chan[i].curx=(int)(newx/65536); chan[i].audSub&=65535; diff --git a/src/engine/sysDef.cpp b/src/engine/sysDef.cpp index b7c62a9cf..af775e108 100644 --- a/src/engine/sysDef.cpp +++ b/src/engine/sysDef.cpp @@ -2092,7 +2092,7 @@ void DivEngine::registerSystems() { ); sysDefs[DIV_SYSTEM_BIFURCATOR]=new DivSysDef( - "Bifurcator", NULL, 0xf2, 0, 4, false, true, 0, false, 0, 0, 0, + "Bifurcator", NULL, 0xd9, 0, 4, false, true, 0, false, 0, 0, 0, "a fantasy sound chip using logistic map iterations to generate sound.", {"Channel 1", "Channel 2", "Channel 3", "Channel 4"}, {"CH1", "CH2", "CH3", "CH4"},