326 lines
12 KiB
C#
326 lines
12 KiB
C#
namespace mame
|
|
{
|
|
public class Memory
|
|
{
|
|
public static byte[] mainrom, audiorom, mainram, audioram;
|
|
public static void memory_reset()
|
|
{
|
|
switch (Machine.sBoard)
|
|
{
|
|
case "CPS-1":
|
|
case "CPS-1(QSound)":
|
|
CPS.sbyte0 = -1;
|
|
CPS.short1 = -1;
|
|
CPS.short2 = -1;
|
|
CPS.sbyte3 = -1;
|
|
break;
|
|
case "CPS2":
|
|
CPS.short0 = -1;
|
|
CPS.short1 = -1;
|
|
CPS.short2 = -1;
|
|
break;
|
|
case "Data East":
|
|
Dataeast.byte1 = 0xff;
|
|
Dataeast.byte2 = 0xff;
|
|
break;
|
|
case "Tehkan":
|
|
Tehkan.byte0 = 0;
|
|
Tehkan.byte1 = 0;
|
|
Tehkan.byte2 = 0;
|
|
break;
|
|
case "Neo Geo":
|
|
Neogeo.short0 = unchecked((short)0xff00);
|
|
Neogeo.short1 = -1;
|
|
Neogeo.short2 = -1;
|
|
Neogeo.short3 = 0x3f;
|
|
Neogeo.short4 = unchecked((short)0xffc0);
|
|
Neogeo.short5 = unchecked((short)0xffff);
|
|
Neogeo.short6 = 0x03;
|
|
break;
|
|
case "Namco System 1":
|
|
Namcos1.byte0 = 0xff;
|
|
Namcos1.byte1 = 0xff;
|
|
Namcos1.byte2 = 0xff;
|
|
switch (Machine.sName)
|
|
{
|
|
case "faceoff":
|
|
Namcos1.byte00 = 0xff;
|
|
Namcos1.byte01 = 0xff;
|
|
Namcos1.byte02 = 0xff;
|
|
Namcos1.byte03 = 0xff;
|
|
break;
|
|
}
|
|
break;
|
|
case "IGS011":
|
|
switch (Machine.sName)
|
|
{
|
|
case "drgnwrld":
|
|
case "drgnwrldv30":
|
|
case "drgnwrldv21":
|
|
case "drgnwrldv21j":
|
|
case "drgnwrldv20j":
|
|
case "drgnwrldv10c":
|
|
case "drgnwrldv11h":
|
|
case "drgnwrldv40k":
|
|
IGS011.sbyte0 = -1;
|
|
IGS011.sbyte1 = -1;
|
|
IGS011.sbyte2 = -1;
|
|
IGS011.sbytec = -1;
|
|
break;
|
|
case "lhb":
|
|
case "lhbv33c":
|
|
case "dbc":
|
|
case "ryukobou":
|
|
IGS011.bkey0 = 0xff;
|
|
IGS011.bkey1 = 0xff;
|
|
IGS011.bkey2 = 0xff;
|
|
IGS011.bkey3 = 0xff;
|
|
IGS011.bkey4 = 0xff;
|
|
IGS011.sbytec = -1;
|
|
break;
|
|
}
|
|
break;
|
|
case "PGM":
|
|
PGM.short0 = -1;
|
|
PGM.short1 = -1;
|
|
PGM.short2 = -1;
|
|
PGM.short3 = 0xff;
|
|
PGM.short4 = 0;
|
|
break;
|
|
case "M72":
|
|
M72.ushort0 = 0xffff;
|
|
M72.ushort1 = 0xffff;
|
|
break;
|
|
case "M92":
|
|
M92.ushort0 = 0xffff;
|
|
M92.ushort1 = 0xff7f;
|
|
M92.ushort2 = 0xffff;
|
|
break;
|
|
case "Taito":
|
|
Taito.sbyte0 = unchecked((sbyte)0xf3);
|
|
Taito.sbyte1 = -1;
|
|
Taito.sbyte2 = -1;
|
|
switch (Machine.sName)
|
|
{
|
|
case "tokio":
|
|
case "tokioo":
|
|
case "tokiou":
|
|
case "tokiob":
|
|
Taito.sbyte0 = unchecked((sbyte)0xd3);
|
|
break;
|
|
case "sboblbobl":
|
|
Taito.sbyte0 = unchecked((sbyte)0x73);
|
|
break;
|
|
case "opwolf":
|
|
Taito.sbyte0 = unchecked((sbyte)0xfc);
|
|
break;
|
|
case "opwolfp":
|
|
Taito.sbyte2 = 0x3e;
|
|
Taito.sbyte3 = 0;
|
|
break;
|
|
}
|
|
break;
|
|
case "Taito B":
|
|
Taitob.sbyte0 = -1;
|
|
Taitob.sbyte1 = -1;
|
|
Taitob.sbyte2 = -1;
|
|
Taitob.sbyte3 = -1;
|
|
Taitob.sbyte4 = -1;
|
|
Taitob.sbyte5 = -1;
|
|
break;
|
|
case "Konami 68000":
|
|
Konami68000.sbyte0 = -1;
|
|
Konami68000.sbyte1 = -1;
|
|
Konami68000.sbyte2 = -1;
|
|
Konami68000.sbyte3 = -1;
|
|
Konami68000.sbyte4 = -1;
|
|
switch (Machine.sName)
|
|
{
|
|
case "lgtnfght":
|
|
case "lgtnfghta":
|
|
case "lgtnfghtu":
|
|
case "trigon":
|
|
Konami68000.sbyte0 = unchecked((sbyte)0xfb);
|
|
break;
|
|
case "prmrsocr":
|
|
case "prmrsocrj":
|
|
Konami68000.sbyte0 = unchecked((sbyte)0xef);
|
|
Konami68000.bytee = 0xfe;
|
|
break;
|
|
}
|
|
break;
|
|
case "Capcom":
|
|
switch (Machine.sName)
|
|
{
|
|
case "gng":
|
|
case "gnga":
|
|
case "gngbl":
|
|
case "gngprot":
|
|
case "gngblita":
|
|
case "gngc":
|
|
case "gngt":
|
|
case "makaimur":
|
|
case "makaimurc":
|
|
case "makaimurg":
|
|
case "diamond":
|
|
Capcom.bytes = 0xff;
|
|
Capcom.byte1 = 0xff;
|
|
Capcom.byte2 = 0xff;
|
|
break;
|
|
case "sf":
|
|
Capcom.short0 = -1;
|
|
Capcom.short1 = -1;
|
|
break;
|
|
case "sfua":
|
|
case "sfj":
|
|
Capcom.short1 = -1;
|
|
Capcom.short2 = -1;
|
|
Capcom.shortc = -1;
|
|
break;
|
|
case "sfjan":
|
|
case "sfan":
|
|
case "sfp":
|
|
Capcom.short0 = -1;
|
|
Capcom.shortc = -1;
|
|
Capcom.sbyte1 = 0;
|
|
Capcom.sbyte2 = 0;
|
|
Capcom.sbyte3 = 0;
|
|
Capcom.sbyte4 = 0;
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
public static void memory_reset2()
|
|
{
|
|
switch (Machine.sBoard)
|
|
{
|
|
case "CPS-1":
|
|
case "CPS-1(QSound)":
|
|
CPS.sbyte0_old = 0;
|
|
CPS.short1_old = 0;
|
|
CPS.short2_old = 0;
|
|
CPS.sbyte3_old = 0;
|
|
break;
|
|
case "CPS2":
|
|
CPS.short0_old = 0;
|
|
CPS.short1_old = 0;
|
|
CPS.short2_old = 0;
|
|
break;
|
|
case "Data East":
|
|
Dataeast.byte1_old = 0;
|
|
Dataeast.byte2_old = 0;
|
|
break;
|
|
case "Tehkan":
|
|
Tehkan.byte0_old = 0;
|
|
Tehkan.byte1_old = 0;
|
|
Tehkan.byte2_old = 0;
|
|
break;
|
|
case "Neo Geo":
|
|
Neogeo.short0_old = 0;
|
|
Neogeo.short1_old = 0;
|
|
Neogeo.short2_old = 0;
|
|
Neogeo.short3_old = 0;
|
|
Neogeo.short4_old = 0;
|
|
break;
|
|
case "Namco System 1":
|
|
Namcos1.byte0_old = 0;
|
|
Namcos1.byte1_old = 0;
|
|
Namcos1.byte2_old = 0;
|
|
break;
|
|
case "IGS011":
|
|
IGS011.sbyte0_old = 0;
|
|
IGS011.sbyte1_old = 0;
|
|
IGS011.sbyte2_old = 0;
|
|
IGS011.sbytec_old = 0;
|
|
break;
|
|
case "PGM":
|
|
PGM.short0_old = 0;
|
|
PGM.short1_old = 0;
|
|
PGM.short2_old = 0;
|
|
PGM.short3_old = 0;
|
|
PGM.short4_old = 0;
|
|
break;
|
|
case "M72":
|
|
M72.ushort0_old = 0;
|
|
M72.ushort1_old = 0;
|
|
break;
|
|
case "M92":
|
|
M92.ushort0_old = 0;
|
|
M92.ushort1_old = 0;
|
|
M92.ushort2_old = 0;
|
|
break;
|
|
case "Taito":
|
|
Taito.sbyte0_old = 0;
|
|
Taito.sbyte1_old = 0;
|
|
Taito.sbyte2_old = 0;
|
|
Taito.sbyte3_old = 0;
|
|
break;
|
|
case "Taito B":
|
|
Taitob.dswb_old = 0;
|
|
Taitob.sbyte0_old = 0;
|
|
Taitob.sbyte1_old = 0;
|
|
Taitob.sbyte2_old = 0;
|
|
Taitob.sbyte3_old = 0;
|
|
Taitob.sbyte4_old = 0;
|
|
Taitob.sbyte5_old = 0;
|
|
break;
|
|
case "Konami 68000":
|
|
Konami68000.sbyte0_old = 0;
|
|
Konami68000.sbyte1_old = 0;
|
|
Konami68000.sbyte2_old = 0;
|
|
Konami68000.sbyte3_old = 0;
|
|
Konami68000.sbyte4_old = 0;
|
|
switch (Machine.sName)
|
|
{
|
|
case "prmrsocr":
|
|
case "prmrsocrj":
|
|
Konami68000.bytee = 0;
|
|
break;
|
|
}
|
|
break;
|
|
case "Capcom":
|
|
switch (Machine.sName)
|
|
{
|
|
case "gng":
|
|
case "gnga":
|
|
case "gngbl":
|
|
case "gngprot":
|
|
case "gngblita":
|
|
case "gngc":
|
|
case "gngt":
|
|
case "makaimur":
|
|
case "makaimurc":
|
|
case "makaimurg":
|
|
case "diamond":
|
|
Capcom.bytes_old = 0;
|
|
Capcom.byte1_old = 0;
|
|
Capcom.byte2_old = 0;
|
|
break;
|
|
case "sf":
|
|
Capcom.short0_old = 0;
|
|
Capcom.short1_old = 0;
|
|
Capcom.shorts_old = 0;
|
|
break;
|
|
case "sfua":
|
|
case "sfj":
|
|
Capcom.short1_old = 0;
|
|
Capcom.short2_old = 0;
|
|
Capcom.shortc_old = 0;
|
|
break;
|
|
case "sfjan":
|
|
case "sfan":
|
|
case "sfp":
|
|
Capcom.short0_old = 0;
|
|
Capcom.shortc_old = 0;
|
|
Capcom.sbyte1_old = 0;
|
|
Capcom.sbyte2_old = 0;
|
|
Capcom.sbyte3_old = 0;
|
|
Capcom.sbyte4_old = 0;
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
} |