MSX: finish up SCC, set to released.
This commit is contained in:
parent
2a67ad625f
commit
fd02c872a9
Assets
libHawk/MSXHawk/MSXHawk
src/BizHawk.Emulation.Cores/Computers/MSX
Binary file not shown.
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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>
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue