MSX: finish up SCC, set to released.

This commit is contained in:
alyosha-tas 2021-11-25 16:34:36 -05:00
parent 2a67ad625f
commit fd02c872a9
4 changed files with 81 additions and 54 deletions
Assets
libHawk/MSXHawk/MSXHawk
src/BizHawk.Emulation.Cores/Computers/MSX

Binary file not shown.

View File

@ -748,10 +748,10 @@ E8519FC1F9A4AF0115A8ABB450B32BD6 Exerion II - Zorni (1984)(Jaleco)(JP)[a] MSX
67EECAE6CBB4A1FBB5F6F549DD614C1D Exoide-Z (1986)(Casio)(JP)[a] MSX JP
1BB9D2437C2304088D36EBBC655FE2C1 Exoide-Z (1986)(Casio)(JP)[a2] MSX JP
1C7C29B7F4527BBA7160641616FCB6A3 Exoide-Z Area 5 (1986)(Casio)(JP) MSX JP
603D4C819A51D0C20FF9FA9F902D3FFD F-1 Spirit - The Way to Formula 1 (1987)(Konami)(JP)[a][RC-752] MSX JP
910CC3718C00C9AF6A808E277F0E7586 F-1 Spirit - The Way to Formula 1 (1987)(Konami)(JP)[RC-752] MSX JP
298CCA1F79A4494C41CFB9EB1E586A50 F-1 Spirit - The Way to Formula 1 (1987)(Konami)(JP)[SCC][RC-752] MSX JP
FCF0F1CA4AB651512E27BAA397AE774F F-1 Spirit - The Way to Formula 1 (1987)(Zemina)(KR)[RC-752] MSX KR
603D4C819A51D0C20FF9FA9F902D3FFD F-1 Spirit - The Way to Formula 1 (1987)(Konami)(JP)[a][RC-752] MSX mapper=2 JP
910CC3718C00C9AF6A808E277F0E7586 F-1 Spirit - The Way to Formula 1 (1987)(Konami)(JP)[RC-752] MSX mapper=2 JP
298CCA1F79A4494C41CFB9EB1E586A50 F-1 Spirit - The Way to Formula 1 (1987)(Konami)(JP)[SCC][RC-752] MSX mapper=2 JP
FCF0F1CA4AB651512E27BAA397AE774F F-1 Spirit - The Way to Formula 1 (1987)(Zemina)(KR)[RC-752] MSX mapper=2 KR
C7C38266C0778D3E3669CD3A8DE313FE F16 Fighting Falcon (1985)(ASCII)(JP) MSX JP
9926D3629D71A880FAF8BD14F6488288 Fa Tetris (1989)(Fa Soft)(KR) MSX KR
DF328B3806F98F0045253C50C21A9B33 Factory Infection (2004)(Karoshi)[RK705] MSX
@ -815,10 +815,10 @@ C5FA1C8C6676FAA382DB530EEAB349B6 Gall Force - Defense of Chaos (1986)(Sony)(JP)
AC2E61850414F7B528C8753A3D804394 Glider (1985)(ASCII)(JP) MSX JP
A9E41CB3920EC0CE6348325C638A19AD Glider (1985)(ASCII)(JP)[a] MSX JP
EC1A568F12FA3303804216F35E1CD841 Gniffel v2 (2004)(Dioniso) MSX
DC31287CED6E601EA7FDF2AF9759C58F Gofer no Yabou Episode II. Nemesis 3 - The Eve of Destruction (1988)(Konami)(JP)[a][RC-764] MSX JP
FF9FEDE25893DC32F6A7DB275173B2B9 Gofer no Yabou Episode II. Nemesis 3 - The Eve of Destruction (1988)(Konami)(JP)[a2][RC-764] MSX JP
55C020211EDCFC4C5A5D66BDD48F7D16 Gofer no Yabou Episode II. Nemesis 3 - The Eve of Destruction (1988)(Konami)(JP)[RC-764] MSX JP
AAA5EB619E90C1A3D1C2F5714BCCC0EA Gofer no Yabou Episode II. Nemesis 3 - The Eve of Destruction (1988)(Konami)(JP)[SCC][RC-764] MSX JP
DC31287CED6E601EA7FDF2AF9759C58F Gofer no Yabou Episode II. Nemesis 3 - The Eve of Destruction (1988)(Konami)(JP)[a][RC-764] MSX mapper=2 JP
FF9FEDE25893DC32F6A7DB275173B2B9 Gofer no Yabou Episode II. Nemesis 3 - The Eve of Destruction (1988)(Konami)(JP)[a2][RC-764] MSX mapper=2 JP
55C020211EDCFC4C5A5D66BDD48F7D16 Gofer no Yabou Episode II. Nemesis 3 - The Eve of Destruction (1988)(Konami)(JP)[RC-764] MSX mapper=2 JP
AAA5EB619E90C1A3D1C2F5714BCCC0EA Gofer no Yabou Episode II. Nemesis 3 - The Eve of Destruction (1988)(Konami)(JP)[SCC][RC-764] MSX mapper=2 JP
B56500EBB55C2E5FB20DE542EF739D5B Gokiburi Daisakusen. Bug Bomb (1983)(Magic Software)(JP) MSX JP
277B93F5F1A7EF399479FFDF98844922 Golf Game (1983)(ASCII)(JP) MSX JP
AE65C3CEB17FD6187AAD36DCFB3B9858 Golf Kyou. Hudson 3D Golf. Golf Crazy (1984)(Hudson Soft)(JP) MSX JP
@ -834,12 +834,12 @@ E25E87AECC04F4E5047B9AF12135CDE1 Goonies, The (1986)(Konami)(JP)[a][RC-734] MSX
8A7C8149F1F3B7A5FC93CD66A7FB2AD5 Gozira 3D. Godzilla vs 3 Major Monsters (1984)(Bandai)(JP) MSX JP
4724699F410FA266A6BCB223EE8C99FC Gozira Kun. Godzilla (1985)(Toho)(JP) MSX JP
B197C822F012647A5C30EEA2BA009FC5 Gozira Kun. Godzilla (1985)(Toho)(JP)[a] MSX JP
FF98B021526417A0422DF2A1D7E9ECDF Gradius 2. Nemesis 2 (1987)(Konami)(beta)[a][RC-751] MSX
76D211421642FE6CFCD56AF525B0D877 Gradius 2. Nemesis 2 (1987)(Konami)(beta)[RC-751] MSX
ABBCFC00F71051434E0E82E29B6EA1EF Gradius 2. Nemesis 2 (1987)(Konami)(JP)[a][RC-751] MSX JP
648E923715E4B54CBECE186F098E0956 Gradius 2. Nemesis 2 (1987)(Konami)(JP)[penguin version][RC-751] MSX JP
EE3E6A50E3DE131D217E5DAB55519011 Gradius 2. Nemesis 2 (1987)(Konami)(JP)[RC-751] MSX JP
C1EAEAF5F0B432D2C6A53735B6F53B6D Gradius 2. Nemesis 2 (1987)(Konami)(JP)[SCC][RC-751] MSX JP
FF98B021526417A0422DF2A1D7E9ECDF Gradius 2. Nemesis 2 (1987)(Konami)(beta)[a][RC-751] MSX mapper=2 JP
76D211421642FE6CFCD56AF525B0D877 Gradius 2. Nemesis 2 (1987)(Konami)(beta)[RC-751] MSX mapper=2 JP
ABBCFC00F71051434E0E82E29B6EA1EF Gradius 2. Nemesis 2 (1987)(Konami)(JP)[a][RC-751] MSX mapper=2 JP
648E923715E4B54CBECE186F098E0956 Gradius 2. Nemesis 2 (1987)(Konami)(JP)[penguin version][RC-751] MSX mapper=2 JP
EE3E6A50E3DE131D217E5DAB55519011 Gradius 2. Nemesis 2 (1987)(Konami)(JP)[RC-751] MSX mapper=2 JP
C1EAEAF5F0B432D2C6A53735B6F53B6D Gradius 2. Nemesis 2 (1987)(Konami)(JP)[SCC][RC-751] MSX mapper=2 JP
797016FDBF2B23138C543FEE5C8CC34B Gradius. Nemesis (1986)(Konami)(JP)[a][RC-742] MSX JP
1D19E90B3DF492F0F1956747279FBBAC Gradius. Nemesis (1986)(Konami)(JP)[a][SCC][RC-742] MSX JP
25C0349164616A7540FAA04DCC90237A Gradius. Nemesis (1986)(Konami)(JP)[SCC][RC-742] MSX JP
@ -973,8 +973,8 @@ DC990D182C3EC2B053E9BBE5B3FBF488 King's Valley (1985)(Konami)(JP)[a][RC-727] MS
DCD8D9508BE4FD38FDB4C8F50B16DBE3 King's Valley (1985)(Konami)(JP)[a3][RC-727] MSX JP
B1E77E416CDBE46E31A50D6412A0A7BD King's Valley (1985)(Konami)(JP)[a4][RC-727] MSX JP
F485D4C28102F3C5E7FB1EBA8520382C King's Valley (1985)(Konami)(JP)[RC-727] MSX JP
2F8A812F46E09E39DD3D0DA8524EE96C King's Valley II - The Seal of El Giza (1988)(Konami)(JP)[RC-760] MSX JP
7C002653A7D54C8404EACE7B0694B70D King's Valley II - The Seal of El Giza (1988)(Konami)(JP)[SCC][RC-760] MSX JP
2F8A812F46E09E39DD3D0DA8524EE96C King's Valley II - The Seal of El Giza (1988)(Konami)(JP)[RC-760] MSX mapper=2 JP
7C002653A7D54C8404EACE7B0694B70D King's Valley II - The Seal of El Giza (1988)(Konami)(JP)[SCC][RC-760] MSX mapper=2 JP
46051F8A0AAEFAA012B8783ADA3DA4FD Kinnikuman. Muscle Man (1985)(Bandai)(JP) MSX JP
1CD39F900EDF496A967E4FC8E48D1451 Kinnikuman. Muscle Man (1985)(Bandai)(JP)[a] MSX JP
489075D5E2F3B9B60C41FBF8AD27AC7E Knight Lore (1985)(Nippon Dexter)(JP) MSX JP
@ -1159,10 +1159,10 @@ DA801620C9472CB14C31EA9F3C1DC196 Pai Panic (1983)(ASCII)(JP) MSX JP
63D4E4360BF187C3BF8CE789D4CFB116 Pairs (1983)(ASCII)(JP)[a2] MSX JP
629F18292B2F7A7D3862678A7C221A95 Panther (1986)(IREM)(JP) MSX JP
BC250F705C0285E3040E633E698D81B3 Parachuteless Joe (2005)(Paxanga Soft) MSX
E753BB6637DD811F1E9B41747A1D3C58 Parodius - Tako Saves Earth (1988)(Konami)(JP)[a][RC-759] MSX JP
55ADF3B4576B370DD2680D80C333EBDE Parodius - Tako Saves Earth (1988)(Konami)(JP)[a][SCC][RC-759] MSX JP
790972D4E53FCBC2EE46317A583FB52E Parodius - Tako Saves Earth (1988)(Konami)(JP)[RC-759] MSX JP
9548807E96BF5FA2688EA24BF9ED62AF Parodius - Tako Saves Earth (1988)(Konami)(JP)[SCC][RC-759] MSX JP
E753BB6637DD811F1E9B41747A1D3C58 Parodius - Tako Saves Earth (1988)(Konami)(JP)[a][RC-759] MSX mapper=2 JP
55ADF3B4576B370DD2680D80C333EBDE Parodius - Tako Saves Earth (1988)(Konami)(JP)[a][SCC][RC-759] MSX mapper=2 JP
790972D4E53FCBC2EE46317A583FB52E Parodius - Tako Saves Earth (1988)(Konami)(JP)[RC-759] MSX mapper=2 JP
9548807E96BF5FA2688EA24BF9ED62AF Parodius - Tako Saves Earth (1988)(Konami)(JP)[SCC][RC-759] MSX mapper=2 JP
455DF4D49FF8300C702CE961919AC61C Pass Ball (1983)(ASCII)(JP) MSX JP
7224FA4AADD5A2614AFF3BBC339B1CE1 Pastfinder (1984)(Pony Canyon)(JP) MSX JP
8CCCA56B46815714DC5C79A616DE60A0 Payload (1985)(Sony)(JP) MSX JP
@ -1247,8 +1247,8 @@ D2560E3B7D4E137BDBBA8426030D2F44 Rotors (1984)(ASCII)(JP) MSX JP
0F03B2306E11C5182351DB3B7AA30533 Saimazoom (2005)(Karoshi)[RK708] MSX
B0D4FB9A9A88FB65C12D2B567B567171 Saimazoom (2005)(Karoshi)[RK708EN] MSX
EC869B375D7517A7BA6161B10F5DEE06 Salamander - Operation X (1987)(Konami)(JP)[RC-758] MSX mapper=2 JP
59767E46E226F5C69469694817839189 Salamander - Operation X (1987)(Konami)(JP)[SCC][RC-758] MSX JP
0DA25C28FCE818D6FA7231CB6A914783 Salamander - Operation X (1988)(Zemina)(KR)[RC-758] MSX KR
59767E46E226F5C69469694817839189 Salamander - Operation X (1987)(Konami)(JP)[SCC][RC-758] MSX mapper=2 JP
0DA25C28FCE818D6FA7231CB6A914783 Salamander - Operation X (1988)(Zemina)(KR)[RC-758] MSX mapper=2 KR
305BF5B78B03D28B92DEF20AD89A4E4B Sangokushi. Romance of Three Kingdoms (1986)(Koei)(JP) MSX JP
C39692644983104279C32F0E2538C773 Sangokushi. Romance of Three Kingdoms (1986)(Koei)(JP)[a] MSX JP
740A3E9D6A90AE40E37D9DADF94CF10E Sangokushi. Romance of Three Kingdoms (1986)(Koei)(JP)[a2] MSX JP

View File

@ -22,6 +22,9 @@ namespace MSXHawk
uint8_t ch_1_cnt, ch_2_cnt, ch_3_cnt, ch_4_cnt, ch_5_cnt;
uint8_t ch_1_vol, ch_2_vol, ch_3_vol, ch_4_vol, ch_5_vol;
uint8_t ch_1_frl, ch_2_frl, ch_3_frl, ch_4_frl, ch_5_frl;
uint8_t ch_1_frh, ch_2_frh, ch_3_frh, ch_4_frh, ch_5_frh;
uint16_t ch_1_frq, ch_2_frq, ch_3_frq, ch_4_frq, ch_5_frq;
uint16_t ch_1_clk, ch_2_clk, ch_3_clk, ch_4_clk, ch_5_clk;
@ -41,7 +44,7 @@ namespace MSXHawk
const uint32_t VolumeTable[16] =
{
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30
};
void Reset()
@ -85,16 +88,16 @@ namespace MSXHawk
else if (addr < 0x90)
{
// frequencies, volumes, enable
if (addr == 0x80) { ch_1_frq = (uint16_t)((ch_1_frq & 0xFF00) | value); }
else if (addr == 0x81) { ch_1_frq = (uint16_t)((ch_1_frq & 0x00FF) | ((value & 0xF) << 8)); }
else if (addr == 0x82) { ch_2_frq = (uint16_t)((ch_2_frq & 0xFF00) | value); }
else if (addr == 0x83) { ch_2_frq = (uint16_t)((ch_2_frq & 0x00FF) | ((value & 0xF) << 8)); }
else if (addr == 0x84) { ch_3_frq = (uint16_t)((ch_3_frq & 0xFF00) | value); }
else if (addr == 0x85) { ch_3_frq = (uint16_t)((ch_3_frq & 0x00FF) | ((value & 0xF) << 8)); }
else if (addr == 0x86) { ch_4_frq = (uint16_t)((ch_4_frq & 0xFF00) | value); }
else if (addr == 0x87) { ch_4_frq = (uint16_t)((ch_4_frq & 0x00FF) | ((value & 0xF) << 8)); }
else if (addr == 0x88) { ch_5_frq = (uint16_t)((ch_5_frq & 0xFF00) | value); }
else if (addr == 0x89) { ch_5_frq = (uint16_t)((ch_5_frq & 0x00FF) | ((value & 0xF) << 8)); }
if (addr == 0x80) { ch_1_frl = value; }
else if (addr == 0x81) { ch_1_frh = (value & 0xF); }
else if (addr == 0x82) { ch_2_frl = value; }
else if (addr == 0x83) { ch_2_frh = (value & 0xF); }
else if (addr == 0x84) { ch_3_frl = value; }
else if (addr == 0x85) { ch_3_frh = (value & 0xF); }
else if (addr == 0x86) { ch_4_frl = value; }
else if (addr == 0x87) { ch_4_frh = (value & 0xF); }
else if (addr == 0x88) { ch_5_frl = value; }
else if (addr == 0x89) { ch_5_frh = (value & 0xF); }
else if (addr == 0x8A) { ch_1_vol = value; }
else if (addr == 0x8B) { ch_2_vol = value; }
else if (addr == 0x8C) { ch_3_vol = value; }
@ -109,17 +112,17 @@ namespace MSXHawk
ch_5_en = (value & 16) == 16;
}
if (ch_1_frq == 0) { ch_1_frq = 0x1000; }
if (ch_2_frq == 0) { ch_2_frq = 0x1000; }
if (ch_3_frq == 0) { ch_3_frq = 0x1000; }
if (ch_4_frq == 0) { ch_4_frq = 0x1000; }
if (ch_5_frq == 0) { ch_5_frq = 0x1000; }
ch_1_frq = (ch_1_frl | (ch_1_frh << 8)) + 1;
ch_2_frq = (ch_2_frl | (ch_2_frh << 8)) + 1;
ch_3_frq = (ch_3_frl | (ch_3_frh << 8)) + 1;
ch_4_frq = (ch_4_frl | (ch_4_frh << 8)) + 1;
ch_5_frq = (ch_5_frl | (ch_5_frh << 8)) + 1;
if (ch_1_en) { ch_1_out = (int32_t)page_pntr[ch_1_cnt] * VolumeTable[ch_1_vol]; } else { ch_1_out = 0; }
if (ch_2_en) { ch_2_out = (int32_t)page_pntr[ch_2_cnt + 0x20] * VolumeTable[ch_2_vol]; } else { ch_2_out = 0; }
if (ch_3_en) { ch_3_out = (int32_t)page_pntr[ch_3_cnt + 0x40] * VolumeTable[ch_3_vol]; } else { ch_3_out = 0; }
if (ch_4_en) { ch_4_out = (int32_t)page_pntr[ch_4_cnt + 0x60] * VolumeTable[ch_4_vol]; } else { ch_4_out = 0; }
if (ch_5_en) { ch_5_out = (int32_t)page_pntr[ch_5_cnt + 0x60] * VolumeTable[ch_5_vol]; } else { ch_5_out = 0; }
if (ch_1_en) { ch_1_out = (int32_t)((int8_t)page_pntr[ch_1_cnt]) * VolumeTable[ch_1_vol]; } else { ch_1_out = 0; }
if (ch_2_en) { ch_2_out = (int32_t)((int8_t)page_pntr[ch_2_cnt + 0x20]) * VolumeTable[ch_2_vol]; } else { ch_2_out = 0; }
if (ch_3_en) { ch_3_out = (int32_t)((int8_t)page_pntr[ch_3_cnt + 0x40]) * VolumeTable[ch_3_vol]; } else { ch_3_out = 0; }
if (ch_4_en) { ch_4_out = (int32_t)((int8_t)page_pntr[ch_4_cnt + 0x60]) * VolumeTable[ch_4_vol]; } else { ch_4_out = 0; }
if (ch_5_en) { ch_5_out = (int32_t)((int8_t)page_pntr[ch_5_cnt + 0x60]) * VolumeTable[ch_5_vol]; } else { ch_5_out = 0; }
}
else
{
@ -141,7 +144,7 @@ namespace MSXHawk
ch_1_cnt++;
ch_1_cnt &= 0x1F;
ch_1_out = (int32_t)page_pntr[ch_1_cnt] * VolumeTable[ch_1_vol];
ch_1_out = (int32_t)((int8_t)page_pntr[ch_1_cnt]) * VolumeTable[ch_1_vol];
}
}
@ -155,7 +158,7 @@ namespace MSXHawk
ch_2_cnt++;
ch_2_cnt &= 0x1F;
ch_2_out = (int32_t)page_pntr[ch_2_cnt + 0x20] * VolumeTable[ch_2_vol];
ch_2_out = (int32_t)((int8_t)page_pntr[ch_2_cnt + 0x20]) * VolumeTable[ch_2_vol];
}
}
@ -169,7 +172,7 @@ namespace MSXHawk
ch_3_cnt++;
ch_3_cnt &= 0x1F;
ch_3_out = (int32_t)page_pntr[ch_3_cnt + 0x40] * VolumeTable[ch_3_vol];
ch_3_out = (int32_t)((int8_t)page_pntr[ch_3_cnt + 0x40]) * VolumeTable[ch_3_vol];
}
}
@ -183,7 +186,7 @@ namespace MSXHawk
ch_4_cnt++;
ch_4_cnt &= 0x1F;
ch_4_out = (int32_t)page_pntr[ch_4_cnt + 0x60] * VolumeTable[ch_4_vol];
ch_4_out = (int32_t)((int8_t)page_pntr[ch_4_cnt + 0x60]) * VolumeTable[ch_4_vol];
}
}
@ -197,7 +200,7 @@ namespace MSXHawk
ch_5_cnt++;
ch_5_cnt &= 0x1F;
ch_5_out = (int32_t)page_pntr[ch_5_cnt + 0x60] * VolumeTable[ch_5_vol];
ch_5_out = (int32_t)((int8_t)page_pntr[ch_5_cnt + 0x60]) * VolumeTable[ch_5_vol];
}
}
}
@ -233,6 +236,18 @@ namespace MSXHawk
*saver = ch_4_vol; saver++;
*saver = ch_5_vol; saver++;
*saver = ch_1_frl; saver++;
*saver = ch_2_frl; saver++;
*saver = ch_3_frl; saver++;
*saver = ch_4_frl; saver++;
*saver = ch_5_frl; saver++;
*saver = ch_1_frh; saver++;
*saver = ch_2_frh; saver++;
*saver = ch_3_frh; saver++;
*saver = ch_4_frh; saver++;
*saver = ch_5_frh; saver++;
*saver = (uint8_t)(ch_1_frq & 0xFF); saver++; *saver = (uint8_t)((ch_1_frq >> 8) & 0xFF); saver++;
*saver = (uint8_t)(ch_2_frq & 0xFF); saver++; *saver = (uint8_t)((ch_2_frq >> 8) & 0xFF); saver++;
*saver = (uint8_t)(ch_3_frq & 0xFF); saver++; *saver = (uint8_t)((ch_3_frq >> 8) & 0xFF); saver++;
@ -271,6 +286,18 @@ namespace MSXHawk
ch_4_vol = *loader; loader++;
ch_5_vol = *loader; loader++;
ch_1_frl = *loader; loader++;
ch_2_frl = *loader; loader++;
ch_3_frl = *loader; loader++;
ch_4_frl = *loader; loader++;
ch_5_frl = *loader; loader++;
ch_1_frh = *loader; loader++;
ch_2_frh = *loader; loader++;
ch_3_frh = *loader; loader++;
ch_4_frh = *loader; loader++;
ch_5_frh = *loader; loader++;
ch_1_frq = *loader; loader++; ch_1_frq |= (*loader << 8); loader++;
ch_2_frq = *loader; loader++; ch_2_frq |= (*loader << 8); loader++;
ch_3_frq = *loader; loader++; ch_3_frq |= (*loader << 8); loader++;
@ -286,11 +313,11 @@ namespace MSXHawk
old_sample = *loader; loader++; old_sample |= (*loader << 8); loader++;
old_sample |= (*loader << 16); loader++; old_sample |= (*loader << 24); loader++;
if (ch_1_en) { ch_1_out = (int32_t)page_pntr[ch_1_cnt] * VolumeTable[ch_1_vol]; } else { ch_1_out = 0; }
if (ch_2_en) { ch_2_out = (int32_t)page_pntr[ch_2_cnt + 0x20] * VolumeTable[ch_2_vol]; } else { ch_2_out = 0; }
if (ch_3_en) { ch_3_out = (int32_t)page_pntr[ch_3_cnt + 0x40] * VolumeTable[ch_3_vol]; } else { ch_3_out = 0; }
if (ch_4_en) { ch_4_out = (int32_t)page_pntr[ch_4_cnt + 0x60] * VolumeTable[ch_4_vol]; } else { ch_4_out = 0; }
if (ch_5_en) { ch_5_out = (int32_t)page_pntr[ch_5_cnt + 0x60] * VolumeTable[ch_5_vol]; } else { ch_5_out = 0; }
if (ch_1_en) { ch_1_out = (int32_t)((int8_t)page_pntr[ch_1_cnt]) * VolumeTable[ch_1_vol]; } else { ch_1_out = 0; }
if (ch_2_en) { ch_2_out = (int32_t)((int8_t)page_pntr[ch_2_cnt + 0x20]) * VolumeTable[ch_2_vol]; } else { ch_2_out = 0; }
if (ch_3_en) { ch_3_out = (int32_t)((int8_t)page_pntr[ch_3_cnt + 0x40]) * VolumeTable[ch_3_vol]; } else { ch_3_out = 0; }
if (ch_4_en) { ch_4_out = (int32_t)((int8_t)page_pntr[ch_4_cnt + 0x60]) * VolumeTable[ch_4_vol]; } else { ch_4_out = 0; }
if (ch_5_en) { ch_5_out = (int32_t)((int8_t)page_pntr[ch_5_cnt + 0x60]) * VolumeTable[ch_5_vol]; } else { ch_5_out = 0; }
return loader;
}

View File

@ -5,7 +5,7 @@ using BizHawk.Emulation.Common;
namespace BizHawk.Emulation.Cores.Computers.MSX
{
[Core(CoreNames.MSXHawk, "", isReleased: false)]
[Core(CoreNames.MSXHawk, "", isReleased: true)]
[ServiceNotApplicable(new[] { typeof(IDriveLight) })]
public partial class MSX : IEmulator, IVideoProvider, ISoundProvider, ISaveRam, IInputPollable, IRegionable, ISettable<MSX.MSXSettings, MSX.MSXSyncSettings>
{