MAME.Core/MAME.Core/emu/Memory.cs

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;
}
}
}
}