修改为全局指针读取,mainrom, audiorom, mainram

This commit is contained in:
sin365 2025-01-19 17:32:23 +08:00
parent 86b352c1f2
commit 703a726953
50 changed files with 1413 additions and 1257 deletions

View File

@ -5,7 +5,7 @@ using System.Collections.Generic;
namespace MAME.Core
{
public partial class CheatMotion
public unsafe partial class CheatMotion
{
public enum LockState
{
@ -41,8 +41,8 @@ namespace MAME.Core
case "Taito B":
case "Konami 68000":
case "Capcom":
CheatReadByte = (int i1) => { return Memory.mainram[i1]; };
CheatWriteByte = (int i1, byte b1) => { Memory.mainram[i1] = b1; };
CheatReadByte = (int i1) => { return Memory.mainram_Ptr[i1]; };
CheatWriteByte = (int i1, byte b1) => { Memory.mainram_Ptr[i1] = b1; };
break;
case "Namco System 1":
CheatReadByte = (int i1) => { return Namcos1.N0ReadMemory((ushort)i1); };

View File

@ -179,7 +179,7 @@ namespace MAME.Core
// }
// if (iStatus == 0)
// {
// /*if(Memory.mainram[0xd1b]==0x05)
// /*if(Memory.mainram_Ptr[0xd1b]==0x05)
// {
// iStatus = 1;
// GetData();

View File

@ -1,8 +1,15 @@
namespace MAME.Core
using System;
using System.IO;
using System.Runtime.InteropServices;
namespace MAME.Core
{
public class Memory
public unsafe class Memory
{
public static byte[] mainrom, audiorom, mainram, audioram;
//public static byte[] mainrom, audiorom, mainram, audioram;
public static byte[] audioram;
static byte[] mainrom, audiorom, mainram;
public static void memory_reset()
{
switch (Machine.sBoard)
@ -322,5 +329,101 @@
break;
}
}
static GCHandle mainrom_handle;
public static byte* mainrom_Ptr;
public static int mainrom_Lenght;
public static bool mainrom_IsNull => mainrom == null;
public static void Set_mainrom(byte[] data)
{
Release_mainrom();
mainrom = data;
mainrom_handle = GCHandle.Alloc(mainrom, GCHandleType.Pinned);
mainrom_Ptr = (byte*)mainrom_handle.AddrOfPinnedObject();
mainrom_Lenght = data.Length;
}
static void Release_mainrom()
{
if (mainrom != null)
{
if (mainrom_handle.IsAllocated)
mainrom_handle.Free();
}
mainrom = null;
mainrom_handle = default;
mainrom_Ptr = null;
mainrom_Lenght = default;
}
static GCHandle audiorom_handle;
public static byte* audiorom_Ptr;
public static bool audiorom_IsNull => audiorom == null;
public static void Set_audiorom(byte[] data)
{
Release_audiorom();
audiorom = data;
audiorom_handle = GCHandle.Alloc(audiorom, GCHandleType.Pinned);
audiorom_Ptr = (byte*)audiorom_handle.AddrOfPinnedObject();
}
static void Release_audiorom()
{
if (audiorom != null)
{
if (audiorom_handle.IsAllocated)
audiorom_handle.Free();
}
audiorom = null;
audiorom_handle = default;
audiorom_Ptr = null;
}
static GCHandle mainram_handle;
public static byte* mainram_Ptr;
public static int mainram_Lenght;
public static bool mainram_IsNull => mainram == null;
public static void Set_mainram(byte[] data)
{
Release_mainram();
mainram = data;
mainram_handle = GCHandle.Alloc(mainram, GCHandleType.Pinned);
mainram_Ptr = (byte*)mainram_handle.AddrOfPinnedObject();
mainram_Lenght = data.Length;
}
static void Release_mainram()
{
if (mainram != null)
{
if (mainram_handle.IsAllocated)
mainram_handle.Free();
}
mainram = null;
mainram_handle = default;
mainram_Ptr = null;
mainram_Lenght = default;
}
}
public unsafe static class MemoryEx
{
// 创建一个临时数组来存储从指针指向的数据中复制的内容
static byte[] tempBuffer = new byte[0x20000];
public static void Write(this BinaryWriter bw, byte* buffer, int index, int count)
{
fixed (byte* pTempBuffer = tempBuffer)
{
// 使用指针复制数据到临时数组
Buffer.MemoryCopy(buffer + index, pTempBuffer, count, count);
}
// 使用BinaryWriter写入临时数组
bw.Write(tempBuffer, 0, count);
}
}
}

View File

@ -631,6 +631,8 @@ namespace MAME.Core
bitmapbase_Ptrs = null;
}
if (bitmapbase != null)
{
bitmapbase_handles = new GCHandle[bitmapbase.Length];
bitmapbase_Ptrs = new IntPtr[bitmapbase.Length];
for (int i = 0; i < bitmapbase.Length; i++)
@ -638,6 +640,8 @@ namespace MAME.Core
bitmapbase_handles[i] = GCHandle.Alloc(bitmapbase[i], GCHandleType.Pinned);
bitmapbase_Ptrs[i] = bitmapbase_handles[i].AddrOfPinnedObject();
}
}
/** end **/

View File

@ -30,8 +30,9 @@ namespace MAME.Core
case "diamond":
Generic.spriteram = new byte[0x200];
Generic.buffered_spriteram = new byte[0x200];
Memory.mainrom = Machine.GetRom("maincpu.rom");
Memory.audiorom = Machine.GetRom("audiocpu.rom");
Memory.Set_mainrom(Machine.GetRom("maincpu.rom"));
//Memory.Set_audiorom(Machine.GetRom("audiocpu.rom"));
Memory.Set_audiorom(Machine.GetRom("audiocpu.rom"));
gfx12rom = Machine.GetRom("gfx1.rom");
n = gfx12rom.Length;
gfx1rom = new byte[n * 2];
@ -56,11 +57,11 @@ namespace MAME.Core
gfx3rom[i * 2] = (byte)(gfx32rom[i] >> 4);
gfx3rom[i * 2 + 1] = (byte)(gfx32rom[i] & 0x0f);
}
Memory.mainram = new byte[0x1e00];
Memory.Set_mainram(new byte[0x1e00]);
Memory.audioram = new byte[0x800];
Generic.paletteram = new byte[0x100];
Generic.paletteram_2 = new byte[0x100];
if (Memory.mainrom == null || Memory.audiorom == null || gfx12rom == null || gfx22rom == null || gfx32rom == null)
if (Memory.mainrom_IsNull|| Memory.audiorom_IsNull || gfx12rom == null || gfx22rom == null || gfx32rom == null)
{
Machine.bRom = false;
}
@ -74,8 +75,9 @@ namespace MAME.Core
sf_objectram = new ushort[0x1000];
sf_videoram = new ushort[0x800];
Generic.paletteram16 = new ushort[0x400];
Memory.mainrom = Machine.GetRom("maincpu.rom");
Memory.audiorom = Machine.GetRom("audiocpu.rom");
Memory.Set_mainrom(Machine.GetRom("maincpu.rom"));
//Memory.Set_audiorom(Machine.GetRom("audiocpu.rom"));
Memory.Set_audiorom(Machine.GetRom("audiocpu.rom"));
audiorom2 = Machine.GetRom("audio2.rom");
gfx12rom = Machine.GetRom("gfx1.rom");
n = gfx12rom.Length;
@ -110,9 +112,9 @@ namespace MAME.Core
gfx4rom[i * 2 + 1] = (byte)(gfx42rom[i] & 0x0f);
}
gfx5rom = Machine.GetRom("gfx5.rom");
Memory.mainram = new byte[0x6000];
Memory.Set_mainram(new byte[0x6000]);
Memory.audioram = new byte[0x800];
if (Memory.mainrom == null || Memory.audiorom == null || gfx12rom == null || gfx22rom == null || gfx32rom == null || gfx42rom == null || gfx5rom == null)
if (Memory.mainrom_IsNull || Memory.audiorom_IsNull || gfx12rom == null || gfx22rom == null || gfx32rom == null || gfx42rom == null || gfx5rom == null)
{
Machine.bRom = false;
}

View File

@ -2,7 +2,7 @@
namespace MAME.Core
{
public partial class Capcom
public unsafe partial class Capcom
{
public static sbyte sbyte1, sbyte2, sbyte3, sbyte4;
public static sbyte sbyte1_old, sbyte2_old, sbyte3_old, sbyte4_old;
@ -15,16 +15,16 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x1dff)
{
result = Memory.mainram[address];
result = Memory.mainram_Ptr[address];
}
else if (address >= 0x4000 && address <= 0x5fff)
{
int offset = address - 0x4000;
result = Memory.mainrom[basebankmain + offset];
result = Memory.mainrom_Ptr[basebankmain + offset];
}
else if (address >= 0x6000 && address <= 0xffff)
{
result = Memory.mainrom[address];
result = Memory.mainrom_Ptr[address];
}
else
{
@ -37,7 +37,7 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x1dff)
{
result = Memory.mainram[address];
result = Memory.mainram_Ptr[address];
}
else if (address >= 0x1e00 && address <= 0x1fff)
{
@ -85,11 +85,11 @@ namespace MAME.Core
else if (address >= 0x4000 && address <= 0x5fff)
{
int offset = address - 0x4000;
result = Memory.mainrom[basebankmain + offset];
result = Memory.mainrom_Ptr[basebankmain + offset];
}
else if (address >= 0x6000 && address <= 0xffff)
{
result = Memory.mainrom[address];
result = Memory.mainrom_Ptr[address];
}
return result;
}
@ -98,7 +98,7 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x1dff)
{
result = Memory.mainram[address];
result = Memory.mainram_Ptr[address];
}
else if (address >= 0x1e00 && address <= 0x1fff)
{
@ -146,7 +146,7 @@ namespace MAME.Core
else if (address >= 0x4000 && address <= 0x5fff)
{
int offset = address - 0x4000;
result = Memory.mainrom[basebankmain + offset];
result = Memory.mainrom_Ptr[basebankmain + offset];
}
else if (address == 0x6000)
{
@ -154,7 +154,7 @@ namespace MAME.Core
}
else if (address >= 0x6001 && address <= 0xffff)
{
result = Memory.mainrom[address];
result = Memory.mainrom_Ptr[address];
}
return result;
}
@ -162,7 +162,7 @@ namespace MAME.Core
{
if (address <= 0x1dff)
{
Memory.mainram[address] = value;
Memory.mainram_Ptr[address] = value;
}
else if (address >= 0x1e00 && address <= 0x1fff)
{
@ -222,7 +222,7 @@ namespace MAME.Core
}
else if (address >= 0x4000 && address <= 0xffff)
{
Memory.mainrom[address] = value;
Memory.mainrom_Ptr[address] = value;
}
}
public static byte ZReadOp_gng(ushort address)
@ -230,7 +230,7 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x7fff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0xc000 && address <= 0xc7ff)
{
@ -248,7 +248,7 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x7fff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0xc000 && address <= 0xc7ff)
{
@ -269,7 +269,7 @@ namespace MAME.Core
{
if (address >= 0x0000 && address <= 0x7fff)
{
Memory.audiorom[address] = value;
Memory.audiorom_Ptr[address] = value;
}
else if (address >= 0xc000 && address <= 0xc7ff)
{
@ -299,9 +299,9 @@ namespace MAME.Core
sbyte result = 0;
if (address <= 0x04ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -316,9 +316,9 @@ namespace MAME.Core
sbyte result = 0;
if (address <= 0x04ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -428,7 +428,7 @@ namespace MAME.Core
else if (address >= 0xff8000 && address <= 0xffdfff)
{
int offset = address - 0xff8000;
result = (sbyte)Memory.mainram[offset];
result = (sbyte)Memory.mainram_Ptr[offset];
}
else if (address >= 0xffe000 && address <= 0xffffff)
{
@ -450,9 +450,9 @@ namespace MAME.Core
sbyte result = 0;
if (address <= 0x04ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -562,7 +562,7 @@ namespace MAME.Core
else if (address >= 0xff8000 && address <= 0xffdfff)
{
int offset = address - 0xff8000;
result = (sbyte)Memory.mainram[offset];
result = (sbyte)Memory.mainram_Ptr[offset];
}
else if (address >= 0xffe000 && address <= 0xffffff)
{
@ -584,9 +584,9 @@ namespace MAME.Core
sbyte result = 0;
if (address <= 0x04ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -696,7 +696,7 @@ namespace MAME.Core
else if (address >= 0xff8000 && address <= 0xffdfff)
{
int offset = address - 0xff8000;
result = (sbyte)Memory.mainram[offset];
result = (sbyte)Memory.mainram_Ptr[offset];
}
else if (address >= 0xffe000 && address <= 0xffffff)
{
@ -718,9 +718,9 @@ namespace MAME.Core
short result = 0;
if (address <= 0x04ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -735,9 +735,9 @@ namespace MAME.Core
short result = 0;
if (address <= 0x04ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -784,7 +784,7 @@ namespace MAME.Core
else if (address >= 0xff8000 && address + 1 <= 0xffdfff)
{
int offset = address - 0xff8000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (short)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
else if (address >= 0xffe000 && address + 1 <= 0xffffff)
{
@ -799,9 +799,9 @@ namespace MAME.Core
short result = 0;
if (address <= 0x04ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -848,7 +848,7 @@ namespace MAME.Core
else if (address >= 0xff8000 && address + 1 <= 0xffdfff)
{
int offset = address - 0xff8000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (short)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
else if (address >= 0xffe000 && address + 1 <= 0xffffff)
{
@ -863,9 +863,9 @@ namespace MAME.Core
short result = 0;
if (address <= 0x04ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -912,7 +912,7 @@ namespace MAME.Core
else if (address >= 0xff8000 && address + 1 <= 0xffdfff)
{
int offset = address - 0xff8000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (short)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
else if (address >= 0xffe000 && address + 1 <= 0xffffff)
{
@ -927,9 +927,9 @@ namespace MAME.Core
int result = 0;
if (address <= 0x04ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -944,9 +944,9 @@ namespace MAME.Core
int result = 0;
if (address <= 0x04ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -961,7 +961,7 @@ namespace MAME.Core
else if (address >= 0xff8000 && address + 3 <= 0xffdfff)
{
int offset = address - 0xff8000;
result = (int)(Memory.mainram[offset] * 0x1000000 + Memory.mainram[offset + 1] * 0x10000 + Memory.mainram[offset + 2] * 0x100 + Memory.mainram[offset + 3]);
result = (int)(Memory.mainram_Ptr[offset] * 0x1000000 + Memory.mainram_Ptr[offset + 1] * 0x10000 + Memory.mainram_Ptr[offset + 2] * 0x100 + Memory.mainram_Ptr[offset + 3]);
}
else if (address >= 0xffe000 && address + 3 <= 0xffffff)
{
@ -975,9 +975,9 @@ namespace MAME.Core
address &= 0xffffff;
if (address >= 0x000000 && address <= 0x04ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
Memory.mainrom[address] = (byte)value;
Memory.mainrom_Ptr[address] = (byte)value;
}
}
else if (address >= 0x800000 && address <= 0x800fff)
@ -1073,7 +1073,7 @@ namespace MAME.Core
else if (address >= 0xff8000 && address <= 0xffdfff)
{
int offset = address - 0xff8000;
Memory.mainram[offset] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)value;
}
else if (address >= 0xffe000 && address <= 0xffffff)
{
@ -1093,10 +1093,10 @@ namespace MAME.Core
address &= 0xffffff;
if (address >= 0x000000 && address + 1 <= 0x04ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
Memory.mainrom[address] = (byte)(value >> 8);
Memory.mainrom[address + 1] = (byte)value;
Memory.mainrom_Ptr[address] = (byte)(value >> 8);
Memory.mainrom_Ptr[address + 1] = (byte)value;
}
}
else if (address >= 0x800000 && address + 1 <= 0x800fff)
@ -1136,8 +1136,8 @@ namespace MAME.Core
else if (address >= 0xff8000 && address + 1 <= 0xffdfff)
{
int offset = address - 0xff8000;
Memory.mainram[offset] = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 1] = (byte)value;
}
else if (address >= 0xffe000 && address + 1 <= 0xffffff)
{
@ -1150,12 +1150,12 @@ namespace MAME.Core
address &= 0xffffff;
if (address >= 0x000000 && address + 3 <= 0x04ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
Memory.mainrom[address] = (byte)(value >> 24);
Memory.mainrom[address + 1] = (byte)(value >> 16);
Memory.mainrom[address + 2] = (byte)(value >> 8);
Memory.mainrom[address + 3] = (byte)value;
Memory.mainrom_Ptr[address] = (byte)(value >> 24);
Memory.mainrom_Ptr[address + 1] = (byte)(value >> 16);
Memory.mainrom_Ptr[address + 2] = (byte)(value >> 8);
Memory.mainrom_Ptr[address + 3] = (byte)value;
}
}
else if (address >= 0x800000 && address + 3 <= 0x800fff)
@ -1173,10 +1173,10 @@ namespace MAME.Core
else if (address >= 0xff8000 && address + 3 <= 0xffdfff)
{
int offset = address - 0xff8000;
Memory.mainram[offset] = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 24);
Memory.mainram_Ptr[offset + 1] = (byte)(value >> 16);
Memory.mainram_Ptr[offset + 2] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 3] = (byte)value;
}
else if (address >= 0xffe000 && address + 3 <= 0xffffff)
{
@ -1190,7 +1190,7 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x7fff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0xc000 && address <= 0xc7ff)
{
@ -1208,7 +1208,7 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x7fff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0xc000 && address <= 0xc7ff)
{
@ -1233,7 +1233,7 @@ namespace MAME.Core
{
if (address >= 0x0000 && address <= 0x7fff)
{
Memory.audiorom[address] = value;
Memory.audiorom_Ptr[address] = value;
}
else if (address >= 0xc000 && address <= 0xc7ff)
{

View File

@ -5,7 +5,7 @@ using System.IO;
namespace MAME.Core
{
public partial class Capcom
public unsafe partial class Capcom
{
public static void SaveStateBinary_gng(BinaryWriter writer)
{
@ -25,7 +25,7 @@ namespace MAME.Core
{
writer.Write(Palette.entry_color[i]);
}
writer.Write(Memory.mainram, 0, 0x1e00);
writer.Write(Memory.mainram_Ptr, 0, 0x1e00);
M6809.mm1[0].SaveStateBinary(writer);
writer.Write(Memory.audioram, 0, 0x800);
Z80A.zz1[0].SaveStateBinary(writer);
@ -71,7 +71,7 @@ namespace MAME.Core
{
Palette.entry_color[i] = reader.ReadUInt32();
}
Memory.mainram = reader.ReadBytes(0x1e00);
Memory.Set_mainram(reader.ReadBytes(0x1e00));
M6809.mm1[0].LoadStateBinary(reader);
Memory.audioram = reader.ReadBytes(0x800);
Z80A.zz1[0].LoadStateBinary(reader);
@ -124,7 +124,7 @@ namespace MAME.Core
{
writer.Write(Palette.entry_color[i]);
}
writer.Write(Memory.mainram, 0, 0x6000);
writer.Write(Memory.mainram_Ptr, 0, 0x6000);
MC68000.m1.SaveStateBinary(writer);
writer.Write(Memory.audioram, 0, 0x800);
Z80A.zz1[0].SaveStateBinary(writer);
@ -173,7 +173,7 @@ namespace MAME.Core
{
Palette.entry_color[i] = reader.ReadUInt32();
}
Memory.mainram = reader.ReadBytes(0x6000);
Memory.Set_mainram(reader.ReadBytes(0x6000));
MC68000.m1.LoadStateBinary(reader);
Memory.audioram = reader.ReadBytes(0x800);
Z80A.zz1[0].LoadStateBinary(reader);

View File

@ -49,10 +49,10 @@ namespace MAME.Core
cps_a_regs = new ushort[0x20];
cps_b_regs = new ushort[0x20];
gfxram = new byte[0x30000];
Memory.mainram = new byte[0x10000];
Memory.Set_mainram(new byte[0x10000]);
Memory.audioram = new byte[0x800];
Machine.bRom = true;
Memory.mainrom = Machine.GetRom("maincpu.rom");
Memory.Set_mainrom(Machine.GetRom("maincpu.rom"));
gfxrom = Machine.GetRom("gfx.rom");
n = gfxrom.Length;
gfx1rom = new byte[n * 2];
@ -62,14 +62,15 @@ namespace MAME.Core
gfx1rom[i * 2 + 1] = (byte)(gfxrom[i] >> 4);
}
total_elements = n / 0x80;
Memory.audiorom = Machine.GetRom("audiocpu.rom");
//Memory.Set_audiorom(Machine.GetRom("audiocpu.rom"));
Memory.Set_audiorom(Machine.GetRom("audiocpu.rom"));
switch (Machine.sBoard)
{
case "CPS-1":
cps_version = 1;
starsrom = Machine.GetRom("stars.rom");
OKI6295.okirom = Machine.GetRom("oki.rom");
if (Memory.mainrom == null || gfxrom == null || Memory.audiorom == null || OKI6295.okirom == null)
if (Memory.mainrom_IsNull || gfxrom == null || Memory.audiorom_IsNull || OKI6295.okirom == null)
{
Machine.bRom = false;
}
@ -81,7 +82,7 @@ namespace MAME.Core
audioromop = Machine.GetRom("audiocpuop.rom");
user1rom = Machine.GetRom("user1.rom");
QSound.qsoundrom = ByteToSbyte(Machine.GetRom("qsound.rom"));
if (Memory.mainrom == null || audioromop == null || gfxrom == null || Memory.audiorom == null || QSound.qsoundrom == null)
if (Memory.mainrom_IsNull || audioromop == null || gfxrom == null || Memory.audiorom_IsNull || QSound.qsoundrom == null)
{
Machine.bRom = false;
}
@ -105,7 +106,7 @@ namespace MAME.Core
}
audioromop = Machine.GetRom("audiocpu.rom");
QSound.qsoundrom = ByteToSbyte(Machine.GetRom("qsound.rom"));
if (Memory.mainrom == null || (Machine.sManufacturer != "bootleg" && mainromop == null) || audioromop == null || gfxrom == null || Memory.audiorom == null || QSound.qsoundrom == null)
if (Memory.mainrom_IsNull || (Machine.sManufacturer != "bootleg" && mainromop == null) || audioromop == null || gfxrom == null || Memory.audiorom_IsNull || QSound.qsoundrom == null)
{
Machine.bRom = false;
}

View File

@ -2,7 +2,7 @@
namespace MAME.Core
{
public partial class CPS
public unsafe partial class CPS
{
public static short short0, short1, short2;
public static sbyte sbyte0, sbyte3;
@ -14,9 +14,9 @@ namespace MAME.Core
sbyte result = 0;
if (address <= 0x3fffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -31,9 +31,9 @@ namespace MAME.Core
sbyte result = 0;
if (address <= 0x3fffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)Memory.mainrom[address];
result = (sbyte)Memory.mainrom_Ptr[address];
}
else
{
@ -82,7 +82,7 @@ namespace MAME.Core
}
else if (address >= 0xff0000 && address <= 0xffffff)
{
result = (sbyte)Memory.mainram[address & 0xffff];
result = (sbyte)Memory.mainram_Ptr[address & 0xffff];
}
return result;
}
@ -92,9 +92,9 @@ namespace MAME.Core
short result = 0;
if (address <= 0x3fffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -107,7 +107,7 @@ namespace MAME.Core
}
else if (address >= 0xff0000 && address + 1 <= 0xffffff)
{
result = (short)(Memory.mainram[(address & 0xffff)] * 0x100 + Memory.mainram[(address & 0xffff) + 1]);
result = (short)(Memory.mainram_Ptr[(address & 0xffff)] * 0x100 + Memory.mainram_Ptr[(address & 0xffff) + 1]);
}
return result;
}
@ -117,9 +117,9 @@ namespace MAME.Core
short result = 0;
if (address <= 0x3fffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -150,7 +150,7 @@ namespace MAME.Core
}
else if (address >= 0xff0000 && address + 1 <= 0xffffff)
{
result = (short)(Memory.mainram[(address & 0xffff)] * 0x100 + Memory.mainram[(address & 0xffff) + 1]);
result = (short)(Memory.mainram_Ptr[(address & 0xffff)] * 0x100 + Memory.mainram_Ptr[(address & 0xffff) + 1]);
}
return result;
}
@ -160,9 +160,9 @@ namespace MAME.Core
int result = 0;
if (address <= 0x3fffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -175,7 +175,7 @@ namespace MAME.Core
}
else if (address >= 0xff0000 && address + 3 <= 0xffffff)
{
result = (int)(Memory.mainram[(address & 0xffff)] * 0x1000000 + Memory.mainram[(address & 0xffff) + 1] * 0x10000 + Memory.mainram[(address & 0xffff) + 2] * 0x100 + Memory.mainram[(address & 0xffff) + 3]);
result = (int)(Memory.mainram_Ptr[(address & 0xffff)] * 0x1000000 + Memory.mainram_Ptr[(address & 0xffff) + 1] * 0x10000 + Memory.mainram_Ptr[(address & 0xffff) + 2] * 0x100 + Memory.mainram_Ptr[(address & 0xffff) + 3]);
}
return result;
}
@ -185,9 +185,9 @@ namespace MAME.Core
int result = 0;
if (address <= 0x3fffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -217,7 +217,7 @@ namespace MAME.Core
}
else if (address >= 0xff0000 && address + 3 <= 0xffffff)
{
result = (int)(Memory.mainram[(address & 0xffff)] * 0x1000000 + Memory.mainram[(address & 0xffff) + 1] * 0x10000 + Memory.mainram[(address & 0xffff) + 2] * 0x100 + Memory.mainram[(address & 0xffff) + 3]);
result = (int)(Memory.mainram_Ptr[(address & 0xffff)] * 0x1000000 + Memory.mainram_Ptr[(address & 0xffff) + 1] * 0x10000 + Memory.mainram_Ptr[(address & 0xffff) + 2] * 0x100 + Memory.mainram_Ptr[(address & 0xffff) + 3]);
}
return result;
}
@ -258,7 +258,7 @@ namespace MAME.Core
}
else if (address >= 0xff0000 && address <= 0xffffff)
{
Memory.mainram[(address & 0xffff)] = (byte)(value);
Memory.mainram_Ptr[(address & 0xffff)] = (byte)(value);
}
else
{
@ -296,8 +296,8 @@ namespace MAME.Core
}
else if (address >= 0xff0000 && address + 1 <= 0xffffff)
{
Memory.mainram[(address & 0xffff)] = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 1] = (byte)(value);
Memory.mainram_Ptr[(address & 0xffff)] = (byte)(value >> 8);
Memory.mainram_Ptr[(address & 0xffff) + 1] = (byte)(value);
}
else
{
@ -340,22 +340,22 @@ namespace MAME.Core
}
else if (address >= 0xff0000 && address + 3 <= 0xffffff)
{
Memory.mainram[(address & 0xffff)] = (byte)(value >> 24);
Memory.mainram[(address & 0xffff) + 1] = (byte)(value >> 16);
Memory.mainram[(address & 0xffff) + 2] = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 3] = (byte)(value);
Memory.mainram_Ptr[(address & 0xffff)] = (byte)(value >> 24);
Memory.mainram_Ptr[(address & 0xffff) + 1] = (byte)(value >> 16);
Memory.mainram_Ptr[(address & 0xffff) + 2] = (byte)(value >> 8);
Memory.mainram_Ptr[(address & 0xffff) + 3] = (byte)(value);
}
else
{
int i1 = 1;
}
}
public static byte ZCReadOp(ushort address)
public unsafe static byte ZCReadOp(ushort address)
{
byte result = 0;
if (address <= 0x7fff)
{
result = Memory.audiorom[address & 0x7fff];
result = Memory.audiorom_Ptr[address & 0x7fff];
}
else
{
@ -363,16 +363,16 @@ namespace MAME.Core
}
return result;
}
public static byte ZCReadMemory(ushort address)
public unsafe static byte ZCReadMemory(ushort address)
{
byte result = 0;
if (address < 0x8000)
{
result = Memory.audiorom[address & 0x7fff];
result = Memory.audiorom_Ptr[address & 0x7fff];
}
else if (address >= 0x8000 && address <= 0xbfff)
{
result = Memory.audiorom[basebanksnd + (address & 0x3fff)];
result = Memory.audiorom_Ptr[basebanksnd + (address & 0x3fff)];
}
else if (address >= 0xd000 && address <= 0xd7ff)
{
@ -437,9 +437,9 @@ namespace MAME.Core
sbyte result = 0;
if (address <= 0x3fffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -458,9 +458,9 @@ namespace MAME.Core
sbyte result = 0;
if (address <= 0x3fffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)Memory.mainrom[address];
result = (sbyte)Memory.mainrom_Ptr[address];
}
else
{
@ -532,7 +532,7 @@ namespace MAME.Core
}
else if (address >= 0xff0000 && address <= 0xffffff)
{
result = (sbyte)Memory.mainram[address & 0xffff];
result = (sbyte)Memory.mainram_Ptr[address & 0xffff];
}
return result;
}
@ -542,9 +542,9 @@ namespace MAME.Core
short result = 0;
if (address <= 0x3fffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -557,7 +557,7 @@ namespace MAME.Core
}
else if (address >= 0xff0000 && address + 1 <= 0xffffff)
{
result = (short)(Memory.mainram[(address & 0xffff)] * 0x100 + Memory.mainram[(address & 0xffff) + 1]);
result = (short)(Memory.mainram_Ptr[(address & 0xffff)] * 0x100 + Memory.mainram_Ptr[(address & 0xffff) + 1]);
}
return result;
}
@ -567,9 +567,9 @@ namespace MAME.Core
short result = 0;
if (address <= 0x3fffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -623,7 +623,7 @@ namespace MAME.Core
}
else if (address >= 0xff0000 && address + 1 <= 0xffffff)
{
result = (short)(Memory.mainram[(address & 0xffff)] * 0x100 + Memory.mainram[(address & 0xffff) + 1]);
result = (short)(Memory.mainram_Ptr[(address & 0xffff)] * 0x100 + Memory.mainram_Ptr[(address & 0xffff) + 1]);
}
return result;
}
@ -633,9 +633,9 @@ namespace MAME.Core
int result = 0;
if (address <= 0x3fffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -648,7 +648,7 @@ namespace MAME.Core
}
else if (address >= 0xff0000 && address + 3 <= 0xffffff)
{
result = (int)(Memory.mainram[(address & 0xffff)] * 0x1000000 + Memory.mainram[(address & 0xffff) + 1] * 0x10000 + Memory.mainram[(address & 0xffff) + 2] * 0x100 + Memory.mainram[(address & 0xffff) + 3]);
result = (int)(Memory.mainram_Ptr[(address & 0xffff)] * 0x1000000 + Memory.mainram_Ptr[(address & 0xffff) + 1] * 0x10000 + Memory.mainram_Ptr[(address & 0xffff) + 2] * 0x100 + Memory.mainram_Ptr[(address & 0xffff) + 3]);
}
return result;
}
@ -658,9 +658,9 @@ namespace MAME.Core
int result = 0;
if (address <= 0x3fffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -709,7 +709,7 @@ namespace MAME.Core
}
else if (address >= 0xff0000 && address + 3 <= 0xffffff)
{
result = (int)(Memory.mainram[(address & 0xffff)] * 0x1000000 + Memory.mainram[(address & 0xffff) + 1] * 0x10000 + Memory.mainram[(address & 0xffff) + 2] * 0x100 + Memory.mainram[(address & 0xffff) + 3]);
result = (int)(Memory.mainram_Ptr[(address & 0xffff)] * 0x1000000 + Memory.mainram_Ptr[(address & 0xffff) + 1] * 0x10000 + Memory.mainram_Ptr[(address & 0xffff) + 2] * 0x100 + Memory.mainram_Ptr[(address & 0xffff) + 3]);
}
return result;
}
@ -777,7 +777,7 @@ namespace MAME.Core
}
else if (address >= 0xff0000 && address <= 0xffffff)
{
Memory.mainram[(address & 0xffff)] = (byte)(value);
Memory.mainram_Ptr[(address & 0xffff)] = (byte)(value);
}
else
{
@ -830,8 +830,8 @@ namespace MAME.Core
}
else if (address >= 0xff0000 && address + 1 <= 0xffffff)
{
Memory.mainram[(address & 0xffff)] = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 1] = (byte)(value);
Memory.mainram_Ptr[(address & 0xffff)] = (byte)(value >> 8);
Memory.mainram_Ptr[(address & 0xffff) + 1] = (byte)(value);
}
else
{
@ -889,10 +889,10 @@ namespace MAME.Core
}
else if (address >= 0xff0000 && address + 3 <= 0xffffff)
{
Memory.mainram[(address & 0xffff)] = (byte)(value >> 24);
Memory.mainram[(address & 0xffff) + 1] = (byte)(value >> 16);
Memory.mainram[(address & 0xffff) + 2] = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 3] = (byte)(value);
Memory.mainram_Ptr[(address & 0xffff)] = (byte)(value >> 24);
Memory.mainram_Ptr[(address & 0xffff) + 1] = (byte)(value >> 16);
Memory.mainram_Ptr[(address & 0xffff) + 2] = (byte)(value >> 8);
Memory.mainram_Ptr[(address & 0xffff) + 3] = (byte)(value);
}
else
{
@ -944,9 +944,9 @@ namespace MAME.Core
sbyte result = 0;
if (address <= 0x3fffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)Memory.mainrom[address];
result = (sbyte)Memory.mainrom_Ptr[address];
}
else
{
@ -1060,7 +1060,7 @@ namespace MAME.Core
}
else if (address >= 0xff0000 && address <= 0xffffff)
{
result = (sbyte)Memory.mainram[address & 0xffff];
result = (sbyte)Memory.mainram_Ptr[address & 0xffff];
}
return result;
}
@ -1108,9 +1108,9 @@ namespace MAME.Core
short result = 0;
if (address <= 0x3fffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -1203,7 +1203,7 @@ namespace MAME.Core
}
else if (address >= 0xff0000 && address + 1 <= 0xffffff)
{
result = (short)(Memory.mainram[(address & 0xffff)] * 0x100 + Memory.mainram[(address & 0xffff) + 1]);
result = (short)(Memory.mainram_Ptr[(address & 0xffff)] * 0x100 + Memory.mainram_Ptr[(address & 0xffff) + 1]);
}
return result;
}
@ -1251,9 +1251,9 @@ namespace MAME.Core
int result = 0;
if (address <= 0x3fffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -1354,7 +1354,7 @@ namespace MAME.Core
}
else if (address >= 0xff0000 && address + 3 <= 0xffffff)
{
result = (int)(Memory.mainram[(address & 0xffff)] * 0x1000000 + Memory.mainram[(address & 0xffff) + 1] * 0x10000 + Memory.mainram[(address & 0xffff) + 2] * 0x100 + Memory.mainram[(address & 0xffff) + 3]);
result = (int)(Memory.mainram_Ptr[(address & 0xffff)] * 0x1000000 + Memory.mainram_Ptr[(address & 0xffff) + 1] * 0x10000 + Memory.mainram_Ptr[(address & 0xffff) + 2] * 0x100 + Memory.mainram_Ptr[(address & 0xffff) + 3]);
}
return result;
}
@ -1465,7 +1465,7 @@ namespace MAME.Core
}
else if (address >= 0xff0000 && address <= 0xffffff)
{
Memory.mainram[(address & 0xffff)] = (byte)(value);
Memory.mainram_Ptr[(address & 0xffff)] = (byte)(value);
}
else
{
@ -1570,8 +1570,8 @@ namespace MAME.Core
}
else if (address >= 0xff0000 && address + 1 <= 0xffffff)
{
Memory.mainram[address & 0xffff] = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 1] = (byte)value;
Memory.mainram_Ptr[address & 0xffff] = (byte)(value >> 8);
Memory.mainram_Ptr[(address & 0xffff) + 1] = (byte)value;
}
else
{
@ -1694,10 +1694,10 @@ namespace MAME.Core
}
else if (address >= 0xff0000 && address + 3 <= 0xffffff)
{
Memory.mainram[(address & 0xffff)] = (byte)(value >> 24);
Memory.mainram[(address & 0xffff) + 1] = (byte)(value >> 16);
Memory.mainram[(address & 0xffff) + 2] = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 3] = (byte)(value);
Memory.mainram_Ptr[(address & 0xffff)] = (byte)(value >> 24);
Memory.mainram_Ptr[(address & 0xffff) + 1] = (byte)(value >> 16);
Memory.mainram_Ptr[(address & 0xffff) + 2] = (byte)(value >> 8);
Memory.mainram_Ptr[(address & 0xffff) + 3] = (byte)(value);
}
else
{
@ -1717,16 +1717,16 @@ namespace MAME.Core
}
return result;
}
public static byte ZQReadMemory(ushort address)
public unsafe static byte ZQReadMemory(ushort address)
{
byte result = 0;
if (address <= 0x7fff)
{
result = Memory.audiorom[address & 0x7fff];
result = Memory.audiorom_Ptr[address & 0x7fff];
}
else if (address >= 0x8000 && address <= 0xbfff)
{
result = Memory.audiorom[basebanksnd + (address & 0x3fff)];
result = Memory.audiorom_Ptr[basebanksnd + (address & 0x3fff)];
}
else if (address >= 0xc000 && address <= 0xcfff)
{

View File

@ -1,6 +1,6 @@
namespace MAME.Core
{
public partial class CPS
public unsafe partial class CPS
{
public static sbyte MCReadByte_forgottn(int address)
{
@ -193,9 +193,9 @@
sbyte result = 0;
if (address <= 0x3fffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)Memory.mainrom[address];
result = (sbyte)Memory.mainrom_Ptr[address];
}
else
{
@ -233,7 +233,7 @@
}
else if (address >= 0xff0000 && address <= 0xffffff)
{
result = (sbyte)Memory.mainram[address & 0xffff];
result = (sbyte)Memory.mainram_Ptr[address & 0xffff];
}
return result;
}
@ -243,9 +243,9 @@
short result = 0;
if (address <= 0x3fffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -276,7 +276,7 @@
}
else if (address >= 0xff0000 && address + 1 <= 0xffffff)
{
result = (short)(Memory.mainram[(address & 0xffff)] * 0x100 + Memory.mainram[(address & 0xffff) + 1]);
result = (short)(Memory.mainram_Ptr[(address & 0xffff)] * 0x100 + Memory.mainram_Ptr[(address & 0xffff) + 1]);
}
return result;
}
@ -286,9 +286,9 @@
int result = 0;
if (address <= 0x3fffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -318,7 +318,7 @@
}
else if (address >= 0xff0000 && address + 3 <= 0xffffff)
{
result = (int)(Memory.mainram[(address & 0xffff)] * 0x1000000 + Memory.mainram[(address & 0xffff) + 1] * 0x10000 + Memory.mainram[(address & 0xffff) + 2] * 0x100 + Memory.mainram[(address & 0xffff) + 3]);
result = (int)(Memory.mainram_Ptr[(address & 0xffff)] * 0x1000000 + Memory.mainram_Ptr[(address & 0xffff) + 1] * 0x10000 + Memory.mainram_Ptr[(address & 0xffff) + 2] * 0x100 + Memory.mainram_Ptr[(address & 0xffff) + 3]);
}
return result;
}
@ -367,7 +367,7 @@
}
else if (address >= 0xff0000 && address <= 0xffffff)
{
Memory.mainram[(address & 0xffff)] = (byte)(value);
Memory.mainram_Ptr[(address & 0xffff)] = (byte)(value);
}
else
{
@ -413,8 +413,8 @@
}
else if (address >= 0xff0000 && address + 1 <= 0xffffff)
{
Memory.mainram[(address & 0xffff)] = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 1] = (byte)(value);
Memory.mainram_Ptr[(address & 0xffff)] = (byte)(value >> 8);
Memory.mainram_Ptr[(address & 0xffff) + 1] = (byte)(value);
}
else
{
@ -466,10 +466,10 @@
}
else if (address >= 0xff0000 && address + 3 <= 0xffffff)
{
Memory.mainram[(address & 0xffff)] = (byte)(value >> 24);
Memory.mainram[(address & 0xffff) + 1] = (byte)(value >> 16);
Memory.mainram[(address & 0xffff) + 2] = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 3] = (byte)(value);
Memory.mainram_Ptr[(address & 0xffff)] = (byte)(value >> 24);
Memory.mainram_Ptr[(address & 0xffff) + 1] = (byte)(value >> 16);
Memory.mainram_Ptr[(address & 0xffff) + 2] = (byte)(value >> 8);
Memory.mainram_Ptr[(address & 0xffff) + 3] = (byte)(value);
}
else
{
@ -482,9 +482,9 @@
sbyte result = 0;
if (address <= 0x3fffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)Memory.mainrom[address];
result = (sbyte)Memory.mainrom_Ptr[address];
}
else
{
@ -538,7 +538,7 @@
}
else if (address >= 0xff0000 && address <= 0xffffff)
{
result = (sbyte)Memory.mainram[address & 0xffff];
result = (sbyte)Memory.mainram_Ptr[address & 0xffff];
}
return result;
}
@ -548,9 +548,9 @@
short result = 0;
if (address <= 0x3fffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -593,7 +593,7 @@
}
else if (address >= 0xff0000 && address + 1 <= 0xffffff)
{
result = (short)(Memory.mainram[(address & 0xffff)] * 0x100 + Memory.mainram[(address & 0xffff) + 1]);
result = (short)(Memory.mainram_Ptr[(address & 0xffff)] * 0x100 + Memory.mainram_Ptr[(address & 0xffff) + 1]);
}
return result;
}
@ -603,9 +603,9 @@
int result = 0;
if (address <= 0x3fffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -647,7 +647,7 @@
}
else if (address >= 0xff0000 && address + 3 <= 0xffffff)
{
result = (int)(Memory.mainram[(address & 0xffff)] * 0x1000000 + Memory.mainram[(address & 0xffff) + 1] * 0x10000 + Memory.mainram[(address & 0xffff) + 2] * 0x100 + Memory.mainram[(address & 0xffff) + 3]);
result = (int)(Memory.mainram_Ptr[(address & 0xffff)] * 0x1000000 + Memory.mainram_Ptr[(address & 0xffff) + 1] * 0x10000 + Memory.mainram_Ptr[(address & 0xffff) + 2] * 0x100 + Memory.mainram_Ptr[(address & 0xffff) + 3]);
}
return result;
}
@ -704,7 +704,7 @@
}
else if (address >= 0xff0000 && address <= 0xffffff)
{
Memory.mainram[(address & 0xffff)] = (byte)(value);
Memory.mainram_Ptr[(address & 0xffff)] = (byte)(value);
}
else
{
@ -760,8 +760,8 @@
}
else if (address >= 0xff0000 && address + 1 <= 0xffffff)
{
Memory.mainram[(address & 0xffff)] = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 1] = (byte)(value);
Memory.mainram_Ptr[(address & 0xffff)] = (byte)(value >> 8);
Memory.mainram_Ptr[(address & 0xffff) + 1] = (byte)(value);
}
else
{
@ -827,10 +827,10 @@
}
else if (address >= 0xff0000 && address + 3 <= 0xffffff)
{
Memory.mainram[(address & 0xffff)] = (byte)(value >> 24);
Memory.mainram[(address & 0xffff) + 1] = (byte)(value >> 16);
Memory.mainram[(address & 0xffff) + 2] = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 3] = (byte)(value);
Memory.mainram_Ptr[(address & 0xffff)] = (byte)(value >> 24);
Memory.mainram_Ptr[(address & 0xffff) + 1] = (byte)(value >> 16);
Memory.mainram_Ptr[(address & 0xffff) + 2] = (byte)(value >> 8);
Memory.mainram_Ptr[(address & 0xffff) + 3] = (byte)(value);
}
else
{
@ -958,9 +958,9 @@
sbyte result = 0;
if (address <= 0x3fffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -975,9 +975,9 @@
sbyte result = 0;
if (address <= 0x3fffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)Memory.mainrom[address];
result = (sbyte)Memory.mainrom_Ptr[address];
}
else
{
@ -1091,7 +1091,7 @@
}
else if (address >= 0xff0000 && address <= 0xffffef)
{
result = (sbyte)Memory.mainram[address & 0xffff];
result = (sbyte)Memory.mainram_Ptr[address & 0xffff];
}
else if (address >= 0xfffff0 && address <= 0xfffffb)
{
@ -1110,9 +1110,9 @@
short result = 0;
if (address <= 0x3fffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -1127,9 +1127,9 @@
short result = 0;
if (address <= 0x3fffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -1222,7 +1222,7 @@
}
else if (address >= 0xff0000 && address + 1 <= 0xffffef)
{
return (short)(Memory.mainram[(address & 0xffff)] * 0x100 + Memory.mainram[(address & 0xffff) + 1]);
return (short)(Memory.mainram_Ptr[(address & 0xffff)] * 0x100 + Memory.mainram_Ptr[(address & 0xffff) + 1]);
}
else if (address >= 0xfffff0 && address + 1 <= 0xfffffb)
{
@ -1241,9 +1241,9 @@
int result = 0;
if (address <= 0x3fffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -1258,9 +1258,9 @@
int result = 0;
if (address <= 0x3fffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -1362,7 +1362,7 @@
}
else if (address >= 0xff0000 && address + 3 <= 0xffffef)
{
result = (int)(Memory.mainram[(address & 0xffff)] * 0x1000000 + Memory.mainram[(address & 0xffff) + 1] * 0x10000 + Memory.mainram[(address & 0xffff) + 2] * 0x100 + Memory.mainram[(address & 0xffff) + 3]);
result = (int)(Memory.mainram_Ptr[(address & 0xffff)] * 0x1000000 + Memory.mainram_Ptr[(address & 0xffff) + 1] * 0x10000 + Memory.mainram_Ptr[(address & 0xffff) + 2] * 0x100 + Memory.mainram_Ptr[(address & 0xffff) + 3]);
}
else if (address >= 0xfffff0 && address + 3 <= 0xfffffb)
{
@ -1483,7 +1483,7 @@
}
else if (address >= 0xff0000 && address <= 0xffffef)
{
Memory.mainram[(address & 0xffff)] = (byte)(value);
Memory.mainram_Ptr[(address & 0xffff)] = (byte)(value);
}
else if (address >= 0xfffff0 && address <= 0xfffffb)
{
@ -1599,8 +1599,8 @@
}
else if (address >= 0xff0000 && address + 1 <= 0xffffef)
{
Memory.mainram[address & 0xffff] = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 1] = (byte)value;
Memory.mainram_Ptr[address & 0xffff] = (byte)(value >> 8);
Memory.mainram_Ptr[(address & 0xffff) + 1] = (byte)value;
}
else if (address >= 0xfffff0 && address + 1 <= 0xfffffb)
{
@ -1732,10 +1732,10 @@
}
else if (address >= 0xff0000 && address + 3 <= 0xffffef)
{
Memory.mainram[(address & 0xffff)] = (byte)(value >> 24);
Memory.mainram[(address & 0xffff) + 1] = (byte)(value >> 16);
Memory.mainram[(address & 0xffff) + 2] = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 3] = (byte)(value);
Memory.mainram_Ptr[(address & 0xffff)] = (byte)(value >> 24);
Memory.mainram_Ptr[(address & 0xffff) + 1] = (byte)(value >> 16);
Memory.mainram_Ptr[(address & 0xffff) + 2] = (byte)(value >> 8);
Memory.mainram_Ptr[(address & 0xffff) + 3] = (byte)(value);
}
else if (address >= 0xfffff0 && address + 3 <= 0xfffffb)
{

View File

@ -4,7 +4,7 @@ using System.IO;
namespace MAME.Core
{
public partial class CPS
public unsafe partial class CPS
{
public static void SaveStateBinaryC(BinaryWriter writer)
{
@ -25,7 +25,7 @@ namespace MAME.Core
{
writer.Write(Palette.entry_color[i]);
}
writer.Write(Memory.mainram, 0, 0x10000);
writer.Write(Memory.mainram_Ptr, 0, 0x10000);
writer.Write(gfxram, 0, 0x30000);
MC68000.m1.SaveStateBinary(writer);
writer.Write(Memory.audioram, 0, 0x800);
@ -95,7 +95,7 @@ namespace MAME.Core
{
writer.Write(Palette.entry_color[i]);
}
writer.Write(Memory.mainram, 0, 0x10000);
writer.Write(Memory.mainram_Ptr, 0, 0x10000);
writer.Write(gfxram, 0, 0x30000);
MC68000.m1.SaveStateBinary(writer);
writer.Write(Memory.audioram, 0, 0x800);
@ -158,7 +158,7 @@ namespace MAME.Core
{
writer.Write(Palette.entry_color[i]);
}
writer.Write(Memory.mainram, 0, 0x10000);
writer.Write(Memory.mainram_Ptr, 0, 0x10000);
writer.Write(gfxram, 0, 0x30000);
MC68000.m1.SaveStateBinary(writer);
writer.Write(Memory.audioram, 0, 0x800);
@ -206,7 +206,7 @@ namespace MAME.Core
{
Palette.entry_color[i] = reader.ReadUInt32();
}
Memory.mainram = reader.ReadBytes(0x10000);
Memory.Set_mainram(reader.ReadBytes(0x10000));
gfxram = reader.ReadBytes(0x30000);
MC68000.m1.LoadStateBinary(reader);
Memory.audioram = reader.ReadBytes(0x800);
@ -276,7 +276,7 @@ namespace MAME.Core
{
Palette.entry_color[i] = reader.ReadUInt32();
}
Memory.mainram = reader.ReadBytes(0x10000);
Memory.Set_mainram(reader.ReadBytes(0x10000));
gfxram = reader.ReadBytes(0x30000);
MC68000.m1.LoadStateBinary(reader);
Memory.audioram = reader.ReadBytes(0x800);
@ -339,7 +339,7 @@ namespace MAME.Core
{
Palette.entry_color[i] = reader.ReadUInt32();
}
Memory.mainram = reader.ReadBytes(0x10000);
Memory.Set_mainram(reader.ReadBytes(0x10000));
gfxram = reader.ReadBytes(0x30000);
MC68000.m1.LoadStateBinary(reader);
Memory.audioram = reader.ReadBytes(0x800);

View File

@ -1,6 +1,6 @@
namespace MAME.Core
{
public partial class Dataeast
public unsafe partial class Dataeast
{
public static byte byte1, byte2;
public static byte byte1_old, byte2_old;
@ -9,21 +9,21 @@
byte result = 0;
if (address <= 0x7ff)
{
result = Memory.mainram[address];
result = Memory.mainram_Ptr[address];
}
else if (address >= 0x4000 && address <= 0x5fff)
{
int offset = address - 0x4000;
result = Memory.mainrom[basebankmain1 + offset];
result = Memory.mainrom_Ptr[basebankmain1 + offset];
}
else if (address >= 0x6000 && address <= 0x7fff)
{
int offset = address - 0x6000;
result = Memory.mainrom[basebankmain2 + offset];
result = Memory.mainrom_Ptr[basebankmain2 + offset];
}
else if (address >= 0x8000 && address <= 0xffff)
{
result = Memory.mainrom[address];
result = Memory.mainrom_Ptr[address];
}
return result;
}
@ -32,21 +32,21 @@
byte result = 0;
if (address <= 0x7ff)
{
result = Memory.mainram[address];
result = Memory.mainram_Ptr[address];
}
else if (address >= 0x4000 && address <= 0x5fff)
{
int offset = address - 0x4000;
result = Memory.mainrom[basebankmain1 + offset];
result = Memory.mainrom_Ptr[basebankmain1 + offset];
}
else if (address >= 0x6000 && address <= 0x7fff)
{
int offset = address - 0x6000;
result = Memory.mainrom[basebankmain2 + offset];
result = Memory.mainrom_Ptr[basebankmain2 + offset];
}
else if (address >= 0x8000 && address <= 0xffff)
{
result = Memory.mainrom[address];
result = Memory.mainrom_Ptr[address];
}
return result;
}
@ -55,7 +55,7 @@
byte result = 0;
if (address <= 0x7ff)
{
result = Memory.mainram[address];
result = Memory.mainram_Ptr[address];
}
else if (address == 0x1800)
{
@ -72,16 +72,16 @@
else if (address >= 0x4000 && address <= 0x5fff)
{
int offset = address - 0x4000;
result = Memory.mainrom[basebankmain1 + offset];
result = Memory.mainrom_Ptr[basebankmain1 + offset];
}
else if (address >= 0x6000 && address <= 0x7fff)
{
int offset = address - 0x6000;
result = Memory.mainrom[basebankmain2 + offset];
result = Memory.mainrom_Ptr[basebankmain2 + offset];
}
else if (address >= 0x8000 && address <= 0xffff)
{
result = Memory.mainrom[address];
result = Memory.mainrom_Ptr[address];
}
return result;
}
@ -89,7 +89,7 @@
{
if (address <= 0x7ff)
{
Memory.mainram[address] = data;
Memory.mainram_Ptr[address] = data;
}
else if (address >= 0x800 && address <= 0xfff)
{
@ -115,7 +115,7 @@
}
else if (address >= 0x4000 && address <= 0xffff)
{
Memory.mainrom[address] = data;
Memory.mainrom_Ptr[address] = data;
}
}
public static byte D1ReadOp(ushort address)
@ -147,11 +147,11 @@
else if (address >= 0x4000 && address <= 0x7fff)
{
int offset = address - 0x4000;
result = Memory.audiorom[basebanksnd + offset];
result = Memory.audiorom_Ptr[basebanksnd + offset];
}
else if (address >= 0x8000 && address <= 0xffff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
return result;
}
@ -165,11 +165,11 @@
else if (address >= 0x4000 && address <= 0x7fff)
{
int offset = address - 0x4000;
result = Memory.audiorom[basebanksnd + offset];
result = Memory.audiorom_Ptr[basebanksnd + offset];
}
else if (address >= 0x8000 && address <= 0xffff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
return result;
}
@ -191,11 +191,11 @@
else if (address >= 0x4000 && address <= 0x7fff)
{
int offset = address - 0x4000;
result = Memory.audiorom[basebanksnd + offset];
result = Memory.audiorom_Ptr[basebanksnd + offset];
}
else if (address >= 0x8000 && address <= 0xffff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
return result;
}
@ -231,7 +231,7 @@
}
else if (address >= 0x4000 && address <= 0xffff)
{
Memory.audiorom[address] = data;
Memory.audiorom_Ptr[address] = data;
}
}
}

View File

@ -9,7 +9,7 @@
{
int i, n;
Machine.bRom = true;
Memory.mainram = new byte[0x800];
Memory.Set_mainram(new byte[0x800]);
Memory.audioram = new byte[0x800];
Generic.spriteram = new byte[0x200];
Generic.videoram = new byte[0x800];
@ -17,13 +17,14 @@
{
case "pcktgal":
case "pcktgalb":
Memory.mainrom = Machine.GetRom("maincpu.rom");
Memory.audiorom = Machine.GetRom("audiocpu.rom");
Memory.Set_mainrom(Machine.GetRom("maincpu.rom"));
//Memory.Set_audiorom(Machine.GetRom("audiocpu.rom"));
Memory.Set_audiorom(Machine.GetRom("audiocpu.rom"));
audioromop = Machine.GetRom("audiocpuop.rom");
gfx1rom = Machine.GetRom("gfx1.rom");
gfx2rom = Machine.GetRom("gfx2.rom");
prom = Machine.GetRom("proms.rom");
if (Memory.mainrom == null || Memory.audiorom == null || audioromop == null || gfx1rom == null || gfx2rom == null || prom == null)
if (Memory.mainrom_IsNull || Memory.audiorom_IsNull || audioromop == null || gfx1rom == null || gfx2rom == null || prom == null)
{
Machine.bRom = false;
}
@ -32,12 +33,13 @@
case "pcktgal2j":
case "spool3":
case "spool3i":
Memory.mainrom = Machine.GetRom("maincpu.rom");
Memory.audiorom = Machine.GetRom("audiocpu.rom");
Memory.Set_mainrom(Machine.GetRom("maincpu.rom"));
//Memory.Set_audiorom(Machine.GetRom("audiocpu.rom"));
Memory.Set_audiorom(Machine.GetRom("audiocpu.rom"));
gfx1rom = Machine.GetRom("gfx1.rom");
gfx2rom = Machine.GetRom("gfx2.rom");
prom = Machine.GetRom("proms.rom");
if (Memory.mainrom == null || Memory.audiorom == null || gfx1rom == null || gfx2rom == null || prom == null)
if (Memory.mainrom_IsNull || Memory.audiorom_IsNull || gfx1rom == null || gfx2rom == null || prom == null)
{
Machine.bRom = false;
}

View File

@ -3,7 +3,7 @@ using System.IO;
namespace MAME.Core
{
public partial class Dataeast
public unsafe partial class Dataeast
{
public static void SaveStateBinary_pcktgal(BinaryWriter writer)
{
@ -18,7 +18,7 @@ namespace MAME.Core
{
writer.Write(Palette.entry_color[i]);
}
writer.Write(Memory.mainram, 0, 0x800);
writer.Write(Memory.mainram_Ptr, 0, 0x800);
writer.Write(Generic.videoram, 0, 0x800);
writer.Write(Generic.spriteram, 0, 0x200);
writer.Write(Memory.audioram, 0, 0x800);
@ -61,7 +61,7 @@ namespace MAME.Core
{
Palette.entry_color[i] = reader.ReadUInt32();
}
Memory.mainram = reader.ReadBytes(0x800);
Memory.Set_mainram(reader.ReadBytes(0x800));
Generic.videoram = reader.ReadBytes(0x800);
Generic.spriteram = reader.ReadBytes(0x200);
Memory.audioram = reader.ReadBytes(0x800);

View File

@ -29,13 +29,13 @@
case "drgnwrldv10c":
case "drgnwrldv11h":
case "drgnwrldv40k":
Memory.mainrom = Machine.GetRom("maincpu.rom");
Memory.Set_mainrom(Machine.GetRom("maincpu.rom"));
gfx1rom = Machine.GetRom("gfx1.rom");
OKI6295.okirom = Machine.GetRom("oki.rom");
dsw1 = 0xff;
dsw2 = 0xff;
dsw3 = 0xff;
if (Memory.mainrom == null || gfx1rom == null || OKI6295.okirom == null)
if (Memory.mainrom_IsNull || gfx1rom == null || OKI6295.okirom == null)
{
Machine.bRom = false;
}
@ -44,7 +44,7 @@
case "lhbv33c":
case "dbc":
case "ryukobou":
Memory.mainrom = Machine.GetRom("maincpu.rom");
Memory.Set_mainrom(Machine.GetRom("maincpu.rom"));
gfx1rom = Machine.GetRom("gfx1.rom");
OKI6295.okirom = Machine.GetRom("oki.rom");
dsw1 = 0xf7;
@ -52,13 +52,13 @@
dsw3 = 0xff;
dsw4 = 0xf0;
dsw5 = 0xff;
if (Memory.mainrom == null || gfx1rom == null || OKI6295.okirom == null)
if (Memory.mainrom_IsNull || gfx1rom == null || OKI6295.okirom == null)
{
Machine.bRom = false;
}
break;
case "lhb2":
Memory.mainrom = Machine.GetRom("maincpu.rom");
Memory.Set_mainrom(Machine.GetRom("maincpu.rom"));
gfx1rom = Machine.GetRom("gfx1.rom");
gfx2rom = Machine.GetRom("gfx2.rom");

View File

@ -1,6 +1,6 @@
namespace MAME.Core
{
public partial class IGS011
public unsafe partial class IGS011
{
public static byte bkey0, bkey1, bkey2, bkey3, bkey4;
public static byte bkey0_old, bkey1_old, bkey2_old, bkey3_old, bkey4_old;
@ -23,7 +23,7 @@
}
else if (address >= 0 && address <= 0x7ffff)
{
result = (sbyte)Memory.mainrom[address];
result = (sbyte)Memory.mainrom_Ptr[address];
}
return result;
}
@ -44,7 +44,7 @@
}
else if (address >= 0 && address <= 0x7ffff)
{
result = (sbyte)Memory.mainrom[address];
result = (sbyte)Memory.mainrom_Ptr[address];
}
else if (address >= 0x100000 && address <= 0x103fff)
{
@ -117,7 +117,7 @@
}
else if (address >= 0 && address + 1 <= 0x7ffff)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
return result;
}
@ -131,7 +131,7 @@
}
else if (address >= 0 && address + 1 <= 0x7ffff)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else if (address >= 0x100000 && address + 1 <= 0x103fff)
{
@ -179,7 +179,7 @@
int result = 0;
if (address >= 0 && address + 3 <= 0x7ffff)
{
result = Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3];
result = Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3];
}
return result;
}
@ -189,7 +189,7 @@
int result = 0;
if (address >= 0 && address + 3 <= 0x7ffff)
{
result = Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3];
result = Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3];
}
else if (address >= 0x100000 && address + 3 <= 0x103fff)
{

View File

@ -1,6 +1,6 @@
namespace MAME.Core
{
public partial class IGS011
public unsafe partial class IGS011
{
public static sbyte MReadByte_drgnwrld_igs012(int address)
{
@ -352,7 +352,7 @@
}
else if (address >= 0x000000 && address <= 0x07ffff)
{
result = (sbyte)Memory.mainrom[address];
result = (sbyte)Memory.mainrom_Ptr[address];
}
else if (address >= 0x100000 && address <= 0x103fff)
{
@ -436,7 +436,7 @@
}
else if (address >= 0 && address + 1 <= 0x7ffff)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
return result;
}
@ -454,7 +454,7 @@
}
else if (address >= 0x000000 && address + 1 <= 0x07ffff)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else if (address >= 0x100000 && address + 1 <= 0x103fff)
{
@ -496,7 +496,7 @@
int result = 0;
if (address >= 0x000000 && address + 3 <= 0x07ffff)
{
result = Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3];
result = Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3];
}
else if (address >= 0x100000 && address + 3 <= 0x103fff)
{
@ -790,7 +790,7 @@
}
else if (address >= 0x000000 && address + 1 <= 0x07ffff)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else if (address >= 0x100000 && address + 1 <= 0x103fff)
{
@ -840,7 +840,7 @@
}
else if (address >= 0x000000 && address + 1 <= 0x07ffff)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else if (address >= 0x100000 && address + 1 <= 0x103fff)
{
@ -900,9 +900,9 @@
}
else if (address >= 0x000000 && address <= 0x07ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -935,9 +935,9 @@
}
else if (address >= 0x000000 && address <= 0x07ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -1023,9 +1023,9 @@
}
else if (address >= 0x000000 && address + 1 <= 0x07ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -1048,9 +1048,9 @@
}
else if (address >= 0x000000 && address + 1 <= 0x07ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -1101,9 +1101,9 @@
int result = 0;
if (address >= 0x000000 && address + 3 <= 0x07ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -1118,9 +1118,9 @@
int result = 0;
if (address >= 0x000000 && address + 3 <= 0x07ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -1435,9 +1435,9 @@
}
else if (address >= 0x000000 && address <= 0x07ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -1474,9 +1474,9 @@
}
else if (address >= 0x000000 && address <= 0x07ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -1486,7 +1486,7 @@
else if (address >= 0x100000 && address <= 0x103fff)
{
int offset = address - 0x100000;
result = (sbyte)Memory.mainram[offset];
result = (sbyte)Memory.mainram_Ptr[offset];
}
else if (address >= 0x1f0000 && address <= 0x1f3fff)
{
@ -1553,9 +1553,9 @@
}
else if (address >= 0x000000 && address + 1 <= 0x07ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -1578,9 +1578,9 @@
}
else if (address >= 0x000000 && address + 1 <= 0x07ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -1590,7 +1590,7 @@
else if (address >= 0x100000 && address + 1 <= 0x103fff)
{
int offset = address - 0x100000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (short)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
else if (address >= 0x1f0000 && address + 1 <= 0x1f3fff)
{
@ -1632,9 +1632,9 @@
int result = 0;
if (address <= 0x010001)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -1644,7 +1644,7 @@
else if (address >= 0x100000 && address + 3 <= 0x103fff)
{
int offset = address - 0x100000;
result = (int)(Memory.mainram[offset] * 0x1000000 + Memory.mainram[offset + 1] * 0x10000 + Memory.mainram[offset + 2] * 0x100 + Memory.mainram[offset + 3]);
result = (int)(Memory.mainram_Ptr[offset] * 0x1000000 + Memory.mainram_Ptr[offset + 1] * 0x10000 + Memory.mainram_Ptr[offset + 2] * 0x100 + Memory.mainram_Ptr[offset + 3]);
}
return result;
}
@ -1654,10 +1654,10 @@
int result = 0;
if (address >= 0x000000 && address + 3 <= 0x07ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
int offset = (address - 0x010000) / 2;
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -1667,7 +1667,7 @@
else if (address >= 0x100000 && address + 3 <= 0x103fff)
{
int offset = address - 0x100000;
result = (int)(Memory.mainram[offset] * 0x1000000 + Memory.mainram[offset + 1] * 0x10000 + Memory.mainram[offset + 2] * 0x100 + Memory.mainram[offset + 3]);
result = (int)(Memory.mainram_Ptr[offset] * 0x1000000 + Memory.mainram_Ptr[offset + 1] * 0x10000 + Memory.mainram_Ptr[offset + 2] * 0x100 + Memory.mainram_Ptr[offset + 3]);
}
else if (address >= 0x1f0000 && address + 3 <= 0x1f3fff)
{
@ -1718,7 +1718,7 @@
else if (address >= 0x100000 && address <= 0x103fff)
{
int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value);
Memory.mainram_Ptr[offset] = (byte)(value);
}
else if (address >= 0x1f0000 && address <= 0x1f3fff)
{
@ -1841,8 +1841,8 @@
else if (address >= 0x100000 && address + 1 <= 0x103fff)
{
int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 1] = (byte)value;
}
else if (address >= 0x1f0000 && address + 1 <= 0x1f3fff)
{
@ -1929,10 +1929,10 @@
if (address >= 0x100000 && address + 3 <= 0x103fff)
{
int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 24);
Memory.mainram_Ptr[offset + 1] = (byte)(value >> 16);
Memory.mainram_Ptr[offset + 2] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 3] = (byte)value;
}
else if (address >= 0x1f0000 && address + 3 <= 0x1f3fff)
{
@ -1978,9 +1978,9 @@
}
else if (address >= 0x000000 && address <= 0x07ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -2021,9 +2021,9 @@
}
else if (address >= 0x000000 && address <= 0x07ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -2105,9 +2105,9 @@
}
else if (address >= 0x000000 && address + 1 <= 0x07ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -2130,9 +2130,9 @@
}
else if (address >= 0x000000 && address + 1 <= 0x07ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -2187,9 +2187,9 @@
int result = 0;
if (address >= 0x000000 && address + 3 <= 0x07ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -2204,10 +2204,10 @@
int result = 0;
if (address >= 0x000000 && address + 3 <= 0x07ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
int offset = (address - 0x000000) / 2;
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -2501,9 +2501,9 @@
}
else if (address >= 0x000000 && address <= 0x07ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -2562,9 +2562,9 @@
}
else if (address >= 0x000000 && address <= 0x07ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -2682,9 +2682,9 @@
}
else if (address >= 0x000000 && address + 1 <= 0x07ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -2723,9 +2723,9 @@
}
else if (address >= 0x000000 && address + 1 <= 0x07ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -2799,9 +2799,9 @@
int result = 0;
if (address >= 0x000000 && address + 3 <= 0x07ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -2816,10 +2816,10 @@
int result = 0;
if (address >= 0x000000 && address + 3 <= 0x07ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
int offset = (address - 0x000000) / 2;
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -3265,9 +3265,9 @@
}
else if (address >= 0x000000 && address <= 0x07ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -3297,9 +3297,9 @@
}
else if (address >= 0x000000 && address <= 0x07ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -3381,9 +3381,9 @@
}
else if (address >= 0x000000 && address + 1 <= 0x07ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -3406,9 +3406,9 @@
}
else if (address >= 0x000000 && address + 1 <= 0x07ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -3459,9 +3459,9 @@
int result = 0;
if (address >= 0x000000 && address + 3 <= 0x07ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -3476,10 +3476,10 @@
int result = 0;
if (address >= 0x000000 && address + 3 <= 0x07ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
int offset = (address - 0x023000) / 2;
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{

View File

@ -21,7 +21,7 @@ namespace MAME.Core
Generic.spriteram16 = new ushort[0x2000];
init_eeprom_count = 10;
toggle = 0;
Memory.mainram = new byte[0x4000];
Memory.Set_mainram(new byte[0x4000]);
Memory.audioram = new byte[0x2000];//0x800 prmrsocr_0x2000
mainram2 = new byte[0x4000];//0x4000 tmnt2_ssriders_0x80
layer_colorbase = new int[3];
@ -60,8 +60,8 @@ namespace MAME.Core
layerpri = new int[3];
sorted_layer = new int[3];
Machine.bRom = true;
Memory.mainrom = Machine.GetRom("maincpu.rom");
Memory.audiorom = Machine.GetRom("audiocpu.rom");
Memory.Set_mainrom(Machine.GetRom("maincpu.rom"));
Memory.Set_audiorom(Machine.GetRom("audiocpu.rom"));
gfx1rom = Machine.GetRom("gfx1.rom");
n1 = gfx1rom.Length;
gfx12rom = new byte[n1 * 2];
@ -84,7 +84,7 @@ namespace MAME.Core
case "cuebrick":
K052109_memory_region = Machine.GetRom("k052109.rom");
K051960_memory_region = Machine.GetRom("k051960.rom");
if (Memory.mainrom == null || gfx1rom == null || gfx2rom == null || K052109_memory_region == null || K051960_memory_region == null)
if (Memory.mainrom_IsNull || gfx1rom == null || gfx2rom == null || K052109_memory_region == null || K051960_memory_region == null)
{
Machine.bRom = false;
}
@ -94,7 +94,7 @@ namespace MAME.Core
K052109_memory_region = Machine.GetRom("k052109.rom");
K051960_memory_region = Machine.GetRom("k051960.rom");
K007232.k007232rom = Machine.GetRom("k007232.rom");
if (Memory.mainrom == null || gfx1rom == null || gfx2rom == null || K052109_memory_region == null || K051960_memory_region == null || Memory.audiorom == null || K007232.k007232rom == null)
if (Memory.mainrom_IsNull || gfx1rom == null || gfx2rom == null || K052109_memory_region == null || K051960_memory_region == null || Memory.audiorom_IsNull || K007232.k007232rom == null)
{
Machine.bRom = false;
}
@ -117,7 +117,7 @@ namespace MAME.Core
K007232.k007232rom = Machine.GetRom("k007232.rom");
Upd7759.updrom = Machine.GetRom("upd.rom");
titlerom = Machine.GetRom("title.rom");
if (Memory.mainrom == null || gfx1rom == null || gfx2rom == null || K052109_memory_region == null || K051960_memory_region == null || Memory.audiorom == null || K007232.k007232rom == null || Upd7759.updrom == null || titlerom == null)
if (Memory.mainrom_IsNull || gfx1rom == null || gfx2rom == null || K052109_memory_region == null || K051960_memory_region == null || Memory.audiorom_IsNull || K007232.k007232rom == null || Upd7759.updrom == null || titlerom == null)
{
Machine.bRom = false;
}
@ -131,7 +131,7 @@ namespace MAME.Core
K052109_memory_region = Machine.GetRom("k052109.rom");
K051960_memory_region = Machine.GetRom("k051960.rom");
K053260.k053260rom = Machine.GetRom("k053260.rom");
if (Memory.mainrom == null || gfx1rom == null || gfx2rom == null || K052109_memory_region == null || K051960_memory_region == null || Memory.audiorom == null || K053260.k053260rom == null)
if (Memory.mainrom_IsNull || gfx1rom == null || gfx2rom == null || K052109_memory_region == null || K051960_memory_region == null || Memory.audiorom_IsNull || K053260.k053260rom == null)
{
Machine.bRom = false;
}
@ -165,7 +165,7 @@ namespace MAME.Core
K052109_memory_region = Machine.GetRom("k052109.rom");
K053245_memory_region[0] = Machine.GetRom("k053245.rom");
K053260.k053260rom = Machine.GetRom("k053260.rom");
if (Memory.mainrom == null || gfx1rom == null || gfx2rom == null || K052109_memory_region == null || K053245_memory_region[0] == null || Memory.audiorom == null || K053260.k053260rom == null)
if (Memory.mainrom_IsNull || gfx1rom == null || gfx2rom == null || K052109_memory_region == null || K053245_memory_region[0] == null || Memory.audiorom_IsNull || K053260.k053260rom == null)
{
Machine.bRom = false;
}
@ -177,7 +177,7 @@ namespace MAME.Core
zoomrom = Machine.GetRom("zoom.rom");
user1rom = Machine.GetRom("user1.rom");
K053260.k053260rom = Machine.GetRom("k053260.rom");
if (Memory.mainrom == null || gfx1rom == null || gfx2rom == null || K052109_memory_region == null || K053245_memory_region[0] == null || zoomrom == null || user1rom == null || Memory.audiorom == null || K053260.k053260rom == null)
if (Memory.mainrom_IsNull || gfx1rom == null || gfx2rom == null || K052109_memory_region == null || K053245_memory_region[0] == null || zoomrom == null || user1rom == null || Memory.audiorom_IsNull || K053260.k053260rom == null)
{
Machine.bRom = false;
}
@ -189,7 +189,7 @@ namespace MAME.Core
zoomrom = Machine.GetRom("zoom.rom");
user1rom = Machine.GetRom("user1.rom");
K054539.k054539rom = Machine.GetRom("k054539.rom");
if (Memory.mainrom == null || gfx1rom == null || gfx2rom == null || K052109_memory_region == null || K053245_memory_region[0] == null || zoomrom == null || user1rom == null || Memory.audiorom == null || K054539.k054539rom == null)
if (Memory.mainrom_IsNull || gfx1rom == null || gfx2rom == null || K052109_memory_region == null || K053245_memory_region[0] == null || zoomrom == null || user1rom == null || Memory.audiorom_IsNull || K054539.k054539rom == null)
{
Machine.bRom = false;
}
@ -920,17 +920,17 @@ namespace MAME.Core
{
Cpuint.cpunum_set_input_line(1, 0, LineState.HOLD_LINE);
}
public static byte tmnt2_get_byte(int addr)
public unsafe static byte tmnt2_get_byte(int addr)
{
byte result = 0;
if (addr <= 0x07ffff)
{
result = Memory.mainrom[addr];
result = Memory.mainrom_Ptr[addr];
}
else if (addr >= 0x104000 && addr <= 0x107fff)
{
int offset = addr - 0x104000;
result = Memory.mainram[offset];
result = Memory.mainram_Ptr[offset];
}
else if (addr >= 0x180000 && addr <= 0x183fff)
{
@ -946,18 +946,18 @@ namespace MAME.Core
}
return result;
}
public static ushort tmnt2_get_word(int addr)
public unsafe static ushort tmnt2_get_word(int addr)
{
ushort result = 0;
addr *= 2;
if (addr <= 0x07ffff)
{
result = (ushort)(Memory.mainrom[addr] * 0x100 + Memory.mainrom[addr + 1]);
result = (ushort)(Memory.mainrom_Ptr[addr] * 0x100 + Memory.mainrom_Ptr[addr + 1]);
}
else if (addr >= 0x104000 && addr <= 0x107fff)
{
int offset = addr - 0x104000;
result = (ushort)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (ushort)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
else if (addr >= 0x180000 && addr <= 0x183fff)
{
@ -966,7 +966,7 @@ namespace MAME.Core
}
return result;
}
public static void tmnt2_put_word(int addr, ushort data)
public unsafe static void tmnt2_put_word(int addr, ushort data)
{
addr *= 2;
if (addr >= 0x180000 && addr <= 0x183fff)
@ -987,8 +987,8 @@ namespace MAME.Core
else if (addr >= 0x104000 && addr <= 0x107fff)
{
int offset = (addr - 0x104000) / 2;
Memory.mainram[offset] = (byte)(data >> 8);
Memory.mainram[offset + 1] = (byte)data;
Memory.mainram_Ptr[offset] = (byte)(data >> 8);
Memory.mainram_Ptr[offset + 1] = (byte)data;
}
}
public static void tmnt2_1c0800_w(int offset, ushort data)

View File

@ -2,7 +2,7 @@
namespace MAME.Core
{
public partial class Konami68000
public unsafe partial class Konami68000
{
public static sbyte sbyte0, sbyte1, sbyte2, sbyte3, sbyte4;
public static sbyte sbyte0_old, sbyte1_old, sbyte2_old, sbyte3_old, sbyte4_old;
@ -13,9 +13,9 @@ namespace MAME.Core
sbyte result = 0;
if (address <= 0x01ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -25,7 +25,7 @@ namespace MAME.Core
else if (address >= 0x040000 && address <= 0x043fff)
{
int offset = address - 0x040000;
result = (sbyte)Memory.mainram[offset];
result = (sbyte)Memory.mainram_Ptr[offset];
}
else if (address >= 0x060000 && address <= 0x063fff)
{
@ -40,9 +40,9 @@ namespace MAME.Core
sbyte result = 0;
if (address <= 0x01ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -52,7 +52,7 @@ namespace MAME.Core
else if (address >= 0x040000 && address <= 0x043fff)
{
int offset = address - 0x040000;
result = (sbyte)Memory.mainram[offset];
result = (sbyte)Memory.mainram_Ptr[offset];
}
else if (address >= 0x060000 && address <= 0x063fff)
{
@ -190,9 +190,9 @@ namespace MAME.Core
short result = 0;
if (address <= 0x01ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -202,7 +202,7 @@ namespace MAME.Core
else if (address >= 0x040000 && address + 1 <= 0x043fff)
{
int offset = address - 0x040000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (short)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
else if (address >= 0x060000 && address + 1 <= 0x063fff)
{
@ -217,9 +217,9 @@ namespace MAME.Core
short result = 0;
if (address <= 0x01ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -229,7 +229,7 @@ namespace MAME.Core
else if (address >= 0x040000 && address + 1 <= 0x043fff)
{
int offset = address - 0x040000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (short)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
else if (address >= 0x060000 && address + 1 <= 0x063fff)
{
@ -297,9 +297,9 @@ namespace MAME.Core
int result = 0;
if (address <= 0x01ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -309,7 +309,7 @@ namespace MAME.Core
else if (address >= 0x040000 && address + 3 <= 0x043fff)
{
int offset = address - 0x040000;
result = (int)(Memory.mainram[offset] * 0x1000000 + Memory.mainram[offset + 1] * 0x10000 + Memory.mainram[offset + 2] * 0x100 + Memory.mainram[offset + 3]);
result = (int)(Memory.mainram_Ptr[offset] * 0x1000000 + Memory.mainram_Ptr[offset + 1] * 0x10000 + Memory.mainram_Ptr[offset + 2] * 0x100 + Memory.mainram_Ptr[offset + 3]);
}
else if (address >= 0x060000 && address + 3 <= 0x063fff)
{
@ -324,9 +324,9 @@ namespace MAME.Core
int result = 0;
if (address <= 0x01ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -336,7 +336,7 @@ namespace MAME.Core
else if (address >= 0x040000 && address + 3 <= 0x043fff)
{
int offset = address - 0x040000;
result = (int)(Memory.mainram[offset] * 0x1000000 + Memory.mainram[offset + 1] * 0x10000 + Memory.mainram[offset + 2] * 0x100 + Memory.mainram[offset + 3]);
result = (int)(Memory.mainram_Ptr[offset] * 0x1000000 + Memory.mainram_Ptr[offset + 1] * 0x10000 + Memory.mainram_Ptr[offset + 2] * 0x100 + Memory.mainram_Ptr[offset + 3]);
}
else if (address >= 0x060000 && address + 3 <= 0x063fff)
{
@ -380,7 +380,7 @@ namespace MAME.Core
if (address >= 0x040000 && address <= 0x043fff)
{
int offset = address - 0x040000;
Memory.mainram[offset] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)value;
}
else if (address >= 0x060000 && address <= 0x063fff)
{
@ -490,8 +490,8 @@ namespace MAME.Core
if (address >= 0x040000 && address + 1 <= 0x043fff)
{
int offset = address - 0x040000;
Memory.mainram[offset] = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 1] = (byte)value;
}
else if (address >= 0x060000 && address + 1 <= 0x063fff)
{
@ -555,10 +555,10 @@ namespace MAME.Core
if (address >= 0x040000 && address + 3 <= 0x043fff)
{
int offset = address - 0x040000;
Memory.mainram[offset] = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 24);
Memory.mainram_Ptr[offset + 1] = (byte)(value >> 16);
Memory.mainram_Ptr[offset + 2] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 3] = (byte)value;
}
else if (address >= 0x060000 && address + 3 <= 0x063fff)
{
@ -615,9 +615,9 @@ namespace MAME.Core
sbyte result = 0;
if (address <= 0x03ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -627,7 +627,7 @@ namespace MAME.Core
else if (address >= 0x040000 && address <= 0x043fff)
{
int offset = address - 0x040000;
result = (sbyte)Memory.mainram[offset];
result = (sbyte)Memory.mainram_Ptr[offset];
}
else if (address >= 0x060000 && address <= 0x063fff)
{
@ -642,9 +642,9 @@ namespace MAME.Core
sbyte result = 0;
if (address <= 0x03ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -654,7 +654,7 @@ namespace MAME.Core
else if (address >= 0x040000 && address <= 0x043fff)
{
int offset = address - 0x040000;
result = (sbyte)Memory.mainram[offset];
result = (sbyte)Memory.mainram_Ptr[offset];
}
else if (address >= 0x060000 && address <= 0x063fff)
{
@ -769,9 +769,9 @@ namespace MAME.Core
short result = 0;
if (address <= 0x03ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -781,7 +781,7 @@ namespace MAME.Core
else if (address >= 0x040000 && address + 1 <= 0x043fff)
{
int offset = address - 0x040000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (short)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
else if (address >= 0x060000 && address + 1 <= 0x063fff)
{
@ -796,9 +796,9 @@ namespace MAME.Core
short result = 0;
if (address <= 0x03ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -808,7 +808,7 @@ namespace MAME.Core
else if (address >= 0x040000 && address + 1 <= 0x043fff)
{
int offset = address - 0x040000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (short)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
else if (address >= 0x060000 && address + 1 <= 0x063fff)
{
@ -867,9 +867,9 @@ namespace MAME.Core
int result = 0;
if (address <= 0x03ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -879,7 +879,7 @@ namespace MAME.Core
else if (address >= 0x040000 && address + 3 <= 0x043fff)
{
int offset = address - 0x040000;
result = (int)(Memory.mainram[offset] * 0x1000000 + Memory.mainram[offset + 1] * 0x10000 + Memory.mainram[offset + 2] * 0x100 + Memory.mainram[offset + 3]);
result = (int)(Memory.mainram_Ptr[offset] * 0x1000000 + Memory.mainram_Ptr[offset + 1] * 0x10000 + Memory.mainram_Ptr[offset + 2] * 0x100 + Memory.mainram_Ptr[offset + 3]);
}
else if (address >= 0x060000 && address + 3 <= 0x063fff)
{
@ -894,10 +894,10 @@ namespace MAME.Core
int result = 0;
if (address <= 0x03ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
int offset = (address - 0x000000) / 2;
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -907,7 +907,7 @@ namespace MAME.Core
else if (address >= 0x040000 && address + 3 <= 0x043fff)
{
int offset = address - 0x040000;
result = (int)(Memory.mainram[offset] * 0x1000000 + Memory.mainram[offset + 1] * 0x10000 + Memory.mainram[offset + 2] * 0x100 + Memory.mainram[offset + 3]);
result = (int)(Memory.mainram_Ptr[offset] * 0x1000000 + Memory.mainram_Ptr[offset + 1] * 0x10000 + Memory.mainram_Ptr[offset + 2] * 0x100 + Memory.mainram_Ptr[offset + 3]);
}
else if (address >= 0x060000 && address + 3 <= 0x063fff)
{
@ -942,7 +942,7 @@ namespace MAME.Core
if (address >= 0x040000 && address <= 0x043fff)
{
int offset = address - 0x040000;
Memory.mainram[offset] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)value;
}
else if (address >= 0x060000 && address <= 0x063fff)
{
@ -1016,8 +1016,8 @@ namespace MAME.Core
if (address >= 0x040000 && address + 1 <= 0x043fff)
{
int offset = address - 0x040000;
Memory.mainram[offset] = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 1] = (byte)value;
}
else if (address >= 0x060000 && address + 1 <= 0x063fff)
{
@ -1066,10 +1066,10 @@ namespace MAME.Core
if (address >= 0x040000 && address + 3 <= 0x043fff)
{
int offset = address - 0x040000;
Memory.mainram[offset] = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 24);
Memory.mainram_Ptr[offset + 1] = (byte)(value >> 16);
Memory.mainram_Ptr[offset + 2] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 3] = (byte)value;
}
else if (address >= 0x060000 && address + 3 <= 0x063fff)
{
@ -1114,9 +1114,9 @@ namespace MAME.Core
sbyte result = 0;
if (address <= 0x05ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -1126,7 +1126,7 @@ namespace MAME.Core
else if (address >= 0x060000 && address <= 0x063fff)
{
int offset = address - 0x060000;
result = (sbyte)Memory.mainram[offset];
result = (sbyte)Memory.mainram_Ptr[offset];
}
return result;
}
@ -1136,9 +1136,9 @@ namespace MAME.Core
sbyte result = 0;
if (address <= 0x05ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -1148,7 +1148,7 @@ namespace MAME.Core
else if (address >= 0x060000 && address <= 0x063fff)
{
int offset = address - 0x060000;
result = (sbyte)Memory.mainram[offset];
result = (sbyte)Memory.mainram_Ptr[offset];
}
else if (address >= 0x080000 && address <= 0x080fff)
{
@ -1280,9 +1280,9 @@ namespace MAME.Core
short result = 0;
if (address <= 0x05ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -1292,7 +1292,7 @@ namespace MAME.Core
else if (address >= 0x060000 && address + 1 <= 0x063fff)
{
int offset = address - 0x060000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (short)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
return result;
}
@ -1302,9 +1302,9 @@ namespace MAME.Core
short result = 0;
if (address <= 0x05ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -1314,7 +1314,7 @@ namespace MAME.Core
else if (address >= 0x060000 && address + 1 <= 0x063fff)
{
int offset = address - 0x060000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (short)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
else if (address >= 0x080000 && address + 1 <= 0x080fff)
{
@ -1376,9 +1376,9 @@ namespace MAME.Core
int result = 0;
if (address <= 0x05ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -1388,7 +1388,7 @@ namespace MAME.Core
else if (address >= 0x060000 && address + 3 <= 0x063fff)
{
int offset = address - 0x060000;
result = (int)(Memory.mainram[offset] * 0x1000000 + Memory.mainram[offset + 1] * 0x10000 + Memory.mainram[offset + 2] * 0x100 + Memory.mainram[offset + 3]);
result = (int)(Memory.mainram_Ptr[offset] * 0x1000000 + Memory.mainram_Ptr[offset + 1] * 0x10000 + Memory.mainram_Ptr[offset + 2] * 0x100 + Memory.mainram_Ptr[offset + 3]);
}
return result;
}
@ -1398,9 +1398,9 @@ namespace MAME.Core
int result = 0;
if (address <= 0x05ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -1410,7 +1410,7 @@ namespace MAME.Core
else if (address >= 0x060000 && address + 3 <= 0x063fff)
{
int offset = address - 0x060000;
result = (int)(Memory.mainram[offset] * 0x1000000 + Memory.mainram[offset + 1] * 0x10000 + Memory.mainram[offset + 2] * 0x100 + Memory.mainram[offset + 3]);
result = (int)(Memory.mainram_Ptr[offset] * 0x1000000 + Memory.mainram_Ptr[offset + 1] * 0x10000 + Memory.mainram_Ptr[offset + 2] * 0x100 + Memory.mainram_Ptr[offset + 3]);
}
else if (address >= 0x080000 && address + 3 <= 0x080fff)
{
@ -1440,7 +1440,7 @@ namespace MAME.Core
if (address >= 0x060000 && address <= 0x063fff)
{
int offset = address - 0x060000;
Memory.mainram[offset] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)value;
}
else if (address >= 0x080000 && address <= 0x080fff)
{
@ -1513,8 +1513,8 @@ namespace MAME.Core
if (address >= 0x060000 && address + 1 <= 0x063fff)
{
int offset = address - 0x060000;
Memory.mainram[offset] = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 1] = (byte)value;
}
else if (address >= 0x080000 && address + 1 <= 0x080fff)
{
@ -1561,10 +1561,10 @@ namespace MAME.Core
if (address >= 0x060000 && address + 3 <= 0x063fff)
{
int offset = address - 0x060000;
Memory.mainram[offset] = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 24);
Memory.mainram_Ptr[offset + 1] = (byte)(value >> 16);
Memory.mainram_Ptr[offset + 2] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 3] = (byte)value;
}
else if (address >= 0x080000 && address + 3 <= 0x080fff)
{
@ -1601,9 +1601,9 @@ namespace MAME.Core
sbyte result = 0;
if (address <= 0x03ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -1613,7 +1613,7 @@ namespace MAME.Core
else if (address >= 0x080000 && address <= 0x083fff)
{
int offset = address - 0x080000;
result = (sbyte)Memory.mainram[offset];
result = (sbyte)Memory.mainram_Ptr[offset];
}
return result;
}
@ -1623,9 +1623,9 @@ namespace MAME.Core
sbyte result = 0;
if (address <= 0x03ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -1635,7 +1635,7 @@ namespace MAME.Core
else if (address >= 0x080000 && address <= 0x083fff)
{
int offset = address - 0x080000;
result = (sbyte)Memory.mainram[offset];
result = (sbyte)Memory.mainram_Ptr[offset];
}
else if (address >= 0x090000 && address <= 0x090fff)
{
@ -1739,9 +1739,9 @@ namespace MAME.Core
short result = 0;
if (address <= 0x03ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -1751,7 +1751,7 @@ namespace MAME.Core
else if (address >= 0x080000 && address + 1 <= 0x083fff)
{
int offset = address - 0x080000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (short)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
return result;
}
@ -1761,9 +1761,9 @@ namespace MAME.Core
short result = 0;
if (address <= 0x03ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -1773,7 +1773,7 @@ namespace MAME.Core
else if (address >= 0x080000 && address + 1 <= 0x083fff)
{
int offset = address - 0x080000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (short)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
else if (address >= 0x090000 && address + 1 <= 0x090fff)
{
@ -1828,9 +1828,9 @@ namespace MAME.Core
int result = 0;
if (address <= 0x03ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -1840,7 +1840,7 @@ namespace MAME.Core
else if (address >= 0x080000 && address + 3 <= 0x083fff)
{
int offset = address - 0x080000;
result = (int)(Memory.mainram[offset] * 0x1000000 + Memory.mainram[offset + 1] * 0x10000 + Memory.mainram[offset + 2] * 0x100 + Memory.mainram[offset + 3]);
result = (int)(Memory.mainram_Ptr[offset] * 0x1000000 + Memory.mainram_Ptr[offset + 1] * 0x10000 + Memory.mainram_Ptr[offset + 2] * 0x100 + Memory.mainram_Ptr[offset + 3]);
}
return result;
}
@ -1850,10 +1850,10 @@ namespace MAME.Core
int result = 0;
if (address <= 0x03ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
int offset = (address - 0x000000) / 2;
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -1863,7 +1863,7 @@ namespace MAME.Core
else if (address >= 0x080000 && address + 3 <= 0x083fff)
{
int offset = address - 0x080000;
result = (int)(Memory.mainram[offset] * 0x1000000 + Memory.mainram[offset + 1] * 0x10000 + Memory.mainram[offset + 2] * 0x100 + Memory.mainram[offset + 3]);
result = (int)(Memory.mainram_Ptr[offset] * 0x1000000 + Memory.mainram_Ptr[offset + 1] * 0x10000 + Memory.mainram_Ptr[offset + 2] * 0x100 + Memory.mainram_Ptr[offset + 3]);
}
else if (address >= 0x090000 && address + 3 <= 0x090fff)
{
@ -1902,7 +1902,7 @@ namespace MAME.Core
if (address >= 0x080000 && address <= 0x083fff)
{
int offset = address - 0x080000;
Memory.mainram[offset] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)value;
}
else if (address >= 0x090000 && address <= 0x090fff)
{
@ -1983,8 +1983,8 @@ namespace MAME.Core
if (address >= 0x080000 && address + 1 <= 0x083fff)
{
int offset = address - 0x080000;
Memory.mainram[offset] = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 1] = (byte)value;
}
else if (address >= 0x090000 && address + 1 <= 0x090fff)
{
@ -2032,10 +2032,10 @@ namespace MAME.Core
if (address >= 0x080000 && address + 3 <= 0x083fff)
{
int offset = address - 0x080000;
Memory.mainram[offset] = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 24);
Memory.mainram_Ptr[offset + 1] = (byte)(value >> 16);
Memory.mainram_Ptr[offset + 2] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 3] = (byte)value;
}
else if (address >= 0x090000 && address + 3 <= 0x090fff)
{
@ -2078,9 +2078,9 @@ namespace MAME.Core
sbyte result = 0;
if (address <= 0x03ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -2090,7 +2090,7 @@ namespace MAME.Core
else if (address >= 0x090000 && address <= 0x093fff)
{
int offset = address - 0x090000;
result = (sbyte)Memory.mainram[offset];
result = (sbyte)Memory.mainram_Ptr[offset];
}
return result;
}
@ -2100,9 +2100,9 @@ namespace MAME.Core
sbyte result = 0;
if (address <= 0x03ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -2124,7 +2124,7 @@ namespace MAME.Core
else if (address >= 0x090000 && address <= 0x093fff)
{
int offset = address - 0x090000;
result = (sbyte)Memory.mainram[offset];
result = (sbyte)Memory.mainram_Ptr[offset];
}
else if (address >= 0x0a0000 && address <= 0x0a0001)
{
@ -2248,9 +2248,9 @@ namespace MAME.Core
short result = 0;
if (address <= 0x03ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -2260,7 +2260,7 @@ namespace MAME.Core
else if (address >= 0x090000 && address + 1 <= 0x093fff)
{
int offset = address - 0x090000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (short)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
return result;
}
@ -2270,9 +2270,9 @@ namespace MAME.Core
short result = 0;
if (address <= 0x03ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -2287,7 +2287,7 @@ namespace MAME.Core
else if (address >= 0x090000 && address + 1 <= 0x093fff)
{
int offset = address - 0x090000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (short)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
else if (address >= 0x0a0000 && address + 1 <= 0x0a0001)
{
@ -2347,9 +2347,9 @@ namespace MAME.Core
int result = 0;
if (address <= 0x03ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -2359,7 +2359,7 @@ namespace MAME.Core
else if (address >= 0x090000 && address + 3 <= 0x093fff)
{
int offset = address - 0x090000;
result = (int)(Memory.mainram[offset] * 0x1000000 + Memory.mainram[offset + 1] * 0x10000 + Memory.mainram[offset + 2] * 0x100 + Memory.mainram[offset + 3]);
result = (int)(Memory.mainram_Ptr[offset] * 0x1000000 + Memory.mainram_Ptr[offset + 1] * 0x10000 + Memory.mainram_Ptr[offset + 2] * 0x100 + Memory.mainram_Ptr[offset + 3]);
}
return result;
}
@ -2369,10 +2369,10 @@ namespace MAME.Core
int result = 0;
if (address <= 0x03ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
int offset = (address - 0x000000) / 2;
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -2387,7 +2387,7 @@ namespace MAME.Core
else if (address >= 0x090000 && address + 3 <= 0x093fff)
{
int offset = address - 0x090000;
result = (int)(Memory.mainram[offset] * 0x1000000 + Memory.mainram[offset + 1] * 0x10000 + Memory.mainram[offset + 2] * 0x100 + Memory.mainram[offset + 3]);
result = (int)(Memory.mainram_Ptr[offset] * 0x1000000 + Memory.mainram_Ptr[offset + 1] * 0x10000 + Memory.mainram_Ptr[offset + 2] * 0x100 + Memory.mainram_Ptr[offset + 3]);
}
else if (address >= 0x0a0020 && address + 3 <= 0x0a0023)
{
@ -2429,7 +2429,7 @@ namespace MAME.Core
else if (address >= 0x090000 && address <= 0x093fff)
{
int offset = address - 0x090000;
Memory.mainram[offset] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)value;
}
else if (address >= 0x0a0018 && address <= 0x0a0019)
{
@ -2517,8 +2517,8 @@ namespace MAME.Core
else if (address >= 0x090000 && address + 1 <= 0x093fff)
{
int offset = address - 0x090000;
Memory.mainram[offset] = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 1] = (byte)value;
}
else if (address >= 0x0a0018 && address + 1 <= 0x0a0019)
{
@ -2565,10 +2565,10 @@ namespace MAME.Core
else if (address >= 0x090000 && address + 3 <= 0x093fff)
{
int offset = address - 0x090000;
Memory.mainram[offset] = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 24);
Memory.mainram_Ptr[offset + 1] = (byte)(value >> 16);
Memory.mainram_Ptr[offset + 2] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 3] = (byte)value;
}
else if (address >= 0x0b0000 && address + 3 <= 0x0b3fff)
{
@ -2601,11 +2601,11 @@ namespace MAME.Core
sbyte result = 0;
if (address <= 0x0bffff)
{
result = (sbyte)Memory.mainrom[address];
result = (sbyte)Memory.mainrom_Ptr[address];
}
else if (address >= 0x104000 && address <= 0x107fff)
{
result = (sbyte)Memory.mainram[address - 0x104000];
result = (sbyte)Memory.mainram_Ptr[address - 0x104000];
}
return result;
}
@ -2615,11 +2615,11 @@ namespace MAME.Core
sbyte result = 0;
if (address <= 0x0bffff)
{
result = (sbyte)Memory.mainrom[address];
result = (sbyte)Memory.mainrom_Ptr[address];
}
else if (address >= 0x104000 && address <= 0x107fff)
{
result = (sbyte)Memory.mainram[address - 0x104000];
result = (sbyte)Memory.mainram_Ptr[address - 0x104000];
}
else if (address >= 0x140000 && address <= 0x140fff)
{
@ -2774,9 +2774,9 @@ namespace MAME.Core
short result = 0;
if (address <= 0x0bffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -2785,7 +2785,7 @@ namespace MAME.Core
}
else if (address >= 0x104000 && address + 1 <= 0x107fff)
{
result = (short)(Memory.mainram[address - 0x104000] * 0x100 + Memory.mainram[address - 0x104000 + 1]);
result = (short)(Memory.mainram_Ptr[address - 0x104000] * 0x100 + Memory.mainram_Ptr[address - 0x104000 + 1]);
}
return result;
}
@ -2795,9 +2795,9 @@ namespace MAME.Core
short result = 0;
if (address <= 0x0bffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -2806,7 +2806,7 @@ namespace MAME.Core
}
else if (address >= 0x104000 && address + 1 <= 0x107fff)
{
result = (short)(Memory.mainram[address - 0x104000] * 0x100 + Memory.mainram[address - 0x104000 + 1]);
result = (short)(Memory.mainram_Ptr[address - 0x104000] * 0x100 + Memory.mainram_Ptr[address - 0x104000 + 1]);
}
else if (address >= 0x140000 && address + 1 <= 0x140fff)
{
@ -2877,9 +2877,9 @@ namespace MAME.Core
int result = 0;
if (address <= 0x0bffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -2888,7 +2888,7 @@ namespace MAME.Core
}
else if (address >= 0x104000 && address + 3 <= 0x107fff)
{
result = (int)(Memory.mainram[address - 0x104000] * 0x1000000 + Memory.mainram[address - 0x104000 + 1] * 0x10000 + Memory.mainram[address - 0x104000 + 2] * 0x100 + Memory.mainram[address - 0x104000 + 3]);
result = (int)(Memory.mainram_Ptr[address - 0x104000] * 0x1000000 + Memory.mainram_Ptr[address - 0x104000 + 1] * 0x10000 + Memory.mainram_Ptr[address - 0x104000 + 2] * 0x100 + Memory.mainram_Ptr[address - 0x104000 + 3]);
}
return result;
}
@ -2898,9 +2898,9 @@ namespace MAME.Core
int result = 0;
if (address <= 0x0bffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -2909,7 +2909,7 @@ namespace MAME.Core
}
else if (address >= 0x104000 && address + 3 <= 0x107fff)
{
result = (int)(Memory.mainram[address - 0x104000] * 0x1000000 + Memory.mainram[address - 0x104000 + 1] * 0x10000 + Memory.mainram[address - 0x104000 + 2] * 0x100 + Memory.mainram[address - 0x104000 + 3]);
result = (int)(Memory.mainram_Ptr[address - 0x104000] * 0x1000000 + Memory.mainram_Ptr[address - 0x104000 + 1] * 0x10000 + Memory.mainram_Ptr[address - 0x104000 + 2] * 0x100 + Memory.mainram_Ptr[address - 0x104000 + 3]);
}
else if (address >= 0x140000 && address + 3 <= 0x140fff)
{
@ -2948,7 +2948,7 @@ namespace MAME.Core
if (address >= 0x104000 && address <= 0x107fff)
{
int offset = address - 0x104000;
Memory.mainram[offset] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)value;
}
else if (address >= 0x140000 && address <= 0x140fff)
{
@ -3071,8 +3071,8 @@ namespace MAME.Core
if (address >= 0x104000 && address + 1 <= 0x107fff)
{
int offset = address - 0x104000;
Memory.mainram[offset] = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 1] = (byte)value;
}
else if (address >= 0x140000 && address + 1 <= 0x140fff)
{
@ -3141,10 +3141,10 @@ namespace MAME.Core
if (address >= 0x104000 && address + 3 <= 0x107fff)
{
int offset = address - 0x104000;
Memory.mainram[offset] = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 24);
Memory.mainram_Ptr[offset + 1] = (byte)(value >> 16);
Memory.mainram_Ptr[offset + 2] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 3] = (byte)value;
}
else if (address >= 0x140000 && address + 3 <= 0x140fff)
{
@ -3196,7 +3196,7 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x7fff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0x8000 && address <= 0x87ff)
{
@ -3214,7 +3214,7 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x7fff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0x8000 && address <= 0x87ff)
{
@ -3262,7 +3262,7 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x7fff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0x8000 && address <= 0x87ff)
{
@ -3280,7 +3280,7 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x7fff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0x8000 && address <= 0x87ff)
{
@ -3348,7 +3348,7 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x7fff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0xf000 && address <= 0xf7ff)
{
@ -3366,7 +3366,7 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x7fff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0xf000 && address <= 0xf7ff)
{
@ -3414,7 +3414,7 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x7fff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0x8000 && address <= 0x87ff)
{
@ -3432,7 +3432,7 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x7fff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0x8000 && address <= 0x87ff)
{
@ -3476,7 +3476,7 @@ namespace MAME.Core
byte result = 0;
if (address <= 0xefff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0xf000 && address <= 0xf7ff)
{
@ -3494,7 +3494,7 @@ namespace MAME.Core
byte result = 0;
if (address <= 0xefff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0xf000 && address <= 0xf7ff)
{

View File

@ -1,6 +1,6 @@
namespace MAME.Core
{
public partial class Konami68000
public unsafe partial class Konami68000
{
public static sbyte MReadOpByte_blswhstl(int address)
{
@ -8,9 +8,9 @@
sbyte result = 0;
if (address <= 0x07ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -20,7 +20,7 @@
else if (address >= 0x204000 && address <= 0x207fff)
{
int offset = address - 0x204000;
result = (sbyte)Memory.mainram[offset];
result = (sbyte)Memory.mainram_Ptr[offset];
}
return result;
}
@ -30,9 +30,9 @@
sbyte result = 0;
if (address <= 0x07ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -54,7 +54,7 @@
else if (address >= 0x204000 && address <= 0x207fff)
{
int offset = address - 0x204000;
result = (sbyte)Memory.mainram[offset];
result = (sbyte)Memory.mainram_Ptr[offset];
}
else if (address >= 0x300000 && address <= 0x303fff)
{
@ -170,9 +170,9 @@
short result = 0;
if (address <= 0x07ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -182,7 +182,7 @@
else if (address >= 0x204000 && address + 1 <= 0x207fff)
{
int offset = address - 0x204000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (short)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
return result;
}
@ -192,9 +192,9 @@
short result = 0;
if (address <= 0x07ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -209,7 +209,7 @@
else if (address >= 0x204000 && address + 1 <= 0x207fff)
{
int offset = address - 0x204000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (short)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
else if (address >= 0x300000 && address + 1 <= 0x303fff)
{
@ -264,9 +264,9 @@
int result = 0;
if (address <= 0x07ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -276,7 +276,7 @@
else if (address >= 0x204000 && address + 3 <= 0x207fff)
{
int offset = address - 0x204000;
result = (int)(Memory.mainram[offset] * 0x1000000 + Memory.mainram[offset + 1] * 0x10000 + Memory.mainram[offset + 2] * 0x100 + Memory.mainram[offset + 3]);
result = (int)(Memory.mainram_Ptr[offset] * 0x1000000 + Memory.mainram_Ptr[offset + 1] * 0x10000 + Memory.mainram_Ptr[offset + 2] * 0x100 + Memory.mainram_Ptr[offset + 3]);
}
return result;
}
@ -286,10 +286,10 @@
int result = 0;
if (address <= 0x07ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
int offset = (address - 0x000000) / 2;
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -304,7 +304,7 @@
else if (address >= 0x204000 && address + 3 <= 0x207fff)
{
int offset = address - 0x204000;
result = (int)(Memory.mainram[offset] * 0x1000000 + Memory.mainram[offset + 1] * 0x10000 + Memory.mainram[offset + 2] * 0x100 + Memory.mainram[offset + 3]);
result = (int)(Memory.mainram_Ptr[offset] * 0x1000000 + Memory.mainram_Ptr[offset + 1] * 0x10000 + Memory.mainram_Ptr[offset + 2] * 0x100 + Memory.mainram_Ptr[offset + 3]);
}
else if (address >= 0x300000 && address + 3 <= 0x303fff)
{
@ -356,7 +356,7 @@
else if (address >= 0x204000 && address <= 0x207fff)
{
int offset = address - 0x204000;
Memory.mainram[offset] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)value;
}
else if (address >= 0x300000 && address <= 0x303fff)
{
@ -472,8 +472,8 @@
else if (address >= 0x204000 && address + 1 <= 0x207fff)
{
int offset = address - 0x204000;
Memory.mainram[offset] = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 1] = (byte)value;
}
else if (address >= 0x300000 && address + 1 <= 0x303fff)
{
@ -534,10 +534,10 @@
else if (address >= 0x204000 && address + 3 <= 0x207fff)
{
int offset = address - 0x204000;
Memory.mainram[offset] = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 24);
Memory.mainram_Ptr[offset + 1] = (byte)(value >> 16);
Memory.mainram_Ptr[offset + 2] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 3] = (byte)value;
}
else if (address >= 0x300000 && address + 3 <= 0x303fff)
{
@ -576,9 +576,9 @@
sbyte result = 0;
if (address <= 0x03ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -588,7 +588,7 @@
else if (address >= 0x100000 && address <= 0x103fff)
{
int offset = address - 0x100000;
result = (sbyte)Memory.mainram[offset];
result = (sbyte)Memory.mainram_Ptr[offset];
}
return result;
}
@ -598,9 +598,9 @@
sbyte result = 0;
if (address <= 0x03ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -610,7 +610,7 @@
else if (address >= 0x100000 && address <= 0x103fff)
{
int offset = address - 0x100000;
result = (sbyte)Memory.mainram[offset];
result = (sbyte)Memory.mainram_Ptr[offset];
}
else if (address >= 0x104000 && address <= 0x107fff)
{
@ -760,9 +760,9 @@
short result = 0;
if (address <= 0x03ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -772,7 +772,7 @@
else if (address >= 0x100000 && address + 1 <= 0x103fff)
{
int offset = address - 0x100000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (short)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
return result;
}
@ -782,9 +782,9 @@
short result = 0;
if (address <= 0x03ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -794,7 +794,7 @@
else if (address >= 0x100000 && address + 1 <= 0x103fff)
{
int offset = address - 0x100000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (short)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
else if (address >= 0x104000 && address + 1 <= 0x107fff)
{
@ -864,9 +864,9 @@
int result = 0;
if (address <= 0x03ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -876,7 +876,7 @@
else if (address >= 0x100000 && address + 3 <= 0x103fff)
{
int offset = address - 0x100000;
result = (int)(Memory.mainram[offset] * 0x1000000 + Memory.mainram[offset + 1] * 0x10000 + Memory.mainram[offset + 2] * 0x100 + Memory.mainram[offset + 3]);
result = (int)(Memory.mainram_Ptr[offset] * 0x1000000 + Memory.mainram_Ptr[offset + 1] * 0x10000 + Memory.mainram_Ptr[offset + 2] * 0x100 + Memory.mainram_Ptr[offset + 3]);
}
return result;
}
@ -886,10 +886,10 @@
int result = 0;
if (address <= 0x03ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
int offset = (address - 0x000000) / 2;
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -899,7 +899,7 @@
else if (address >= 0x100000 && address + 3 <= 0x103fff)
{
int offset = address - 0x100000;
result = (int)(Memory.mainram[offset] * 0x1000000 + Memory.mainram[offset + 1] * 0x10000 + Memory.mainram[offset + 2] * 0x100 + Memory.mainram[offset + 3]);
result = (int)(Memory.mainram_Ptr[offset] * 0x1000000 + Memory.mainram_Ptr[offset + 1] * 0x10000 + Memory.mainram_Ptr[offset + 2] * 0x100 + Memory.mainram_Ptr[offset + 3]);
}
else if (address >= 0x104000 && address + 3 <= 0x107fff)
{
@ -944,7 +944,7 @@
if (address >= 0x100000 && address <= 0x103fff)
{
int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value);
Memory.mainram_Ptr[offset] = (byte)(value);
}
else if (address >= 0x104000 && address <= 0x107fff)
{
@ -1077,8 +1077,8 @@
if (address >= 0x100000 && address + 1 <= 0x103fff)
{
int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 1] = (byte)value;
}
else if (address >= 0x104000 && address + 1 <= 0x107fff)
{
@ -1141,10 +1141,10 @@
if (address >= 0x100000 && address + 3 <= 0x103fff)
{
int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 24);
Memory.mainram_Ptr[offset + 1] = (byte)(value >> 16);
Memory.mainram_Ptr[offset + 2] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 3] = (byte)value;
}
else if (address >= 0x104000 && address + 3 <= 0x107fff)
{
@ -1207,9 +1207,9 @@
sbyte result = 0;
if (address <= 0x0fffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -1219,7 +1219,7 @@
else if (address >= 0x104000 && address <= 0x107fff)
{
int offset = address - 0x104000;
result = (sbyte)Memory.mainram[offset];
result = (sbyte)Memory.mainram_Ptr[offset];
}
return result;
}
@ -1229,9 +1229,9 @@
sbyte result = 0;
if (address <= 0x0fffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -1241,7 +1241,7 @@
else if (address >= 0x104000 && address <= 0x107fff)
{
int offset = address - 0x104000;
result = (sbyte)Memory.mainram[offset];
result = (sbyte)Memory.mainram_Ptr[offset];
}
else if (address >= 0x140000 && address <= 0x140fff)
{
@ -1386,9 +1386,9 @@
short result = 0;
if (address <= 0x0fffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -1398,7 +1398,7 @@
else if (address >= 0x104000 && address + 1 <= 0x107fff)
{
int offset = address - 0x104000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (short)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
return result;
}
@ -1408,9 +1408,9 @@
short result = 0;
if (address <= 0x0fffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -1420,7 +1420,7 @@
else if (address >= 0x104000 && address + 1 <= 0x107fff)
{
int offset = address - 0x104000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (short)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
else if (address >= 0x140000 && address + 1 <= 0x140fff)
{
@ -1494,9 +1494,9 @@
int result = 0;
if (address <= 0x0fffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -1506,7 +1506,7 @@
else if (address >= 0x104000 && address + 3 <= 0x107fff)
{
int offset = address - 0x104000;
result = (int)(Memory.mainram[offset] * 0x1000000 + Memory.mainram[offset + 1] * 0x10000 + Memory.mainram[offset + 2] * 0x100 + Memory.mainram[offset + 3]);
result = (int)(Memory.mainram_Ptr[offset] * 0x1000000 + Memory.mainram_Ptr[offset + 1] * 0x10000 + Memory.mainram_Ptr[offset + 2] * 0x100 + Memory.mainram_Ptr[offset + 3]);
}
return result;
}
@ -1516,10 +1516,10 @@
int result = 0;
if (address <= 0x0fffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
int offset = (address - 0x000000) / 2;
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -1529,7 +1529,7 @@
else if (address >= 0x104000 && address + 3 <= 0x107fff)
{
int offset = address - 0x104000;
result = (int)(Memory.mainram[offset] * 0x1000000 + Memory.mainram[offset + 1] * 0x10000 + Memory.mainram[offset + 2] * 0x100 + Memory.mainram[offset + 3]);
result = (int)(Memory.mainram_Ptr[offset] * 0x1000000 + Memory.mainram_Ptr[offset + 1] * 0x10000 + Memory.mainram_Ptr[offset + 2] * 0x100 + Memory.mainram_Ptr[offset + 3]);
}
else if (address >= 0x140000 && address + 3 <= 0x140fff)
{
@ -1569,7 +1569,7 @@
if (address >= 0x104000 && address <= 0x107fff)
{
int offset = address - 0x104000;
Memory.mainram[offset] = (byte)(value);
Memory.mainram_Ptr[offset] = (byte)(value);
}
else if (address >= 0x140000 && address <= 0x140fff)
{
@ -1699,8 +1699,8 @@
if (address >= 0x104000 && address + 1 <= 0x107fff)
{
int offset = address - 0x104000;
Memory.mainram[offset] = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 1] = (byte)value;
}
else if (address >= 0x140000 && address + 1 <= 0x140fff)
{
@ -1768,10 +1768,10 @@
if (address >= 0x104000 && address + 3 <= 0x107fff)
{
int offset = address - 0x104000;
Memory.mainram[offset] = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 24);
Memory.mainram_Ptr[offset + 1] = (byte)(value >> 16);
Memory.mainram_Ptr[offset + 2] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 3] = (byte)value;
}
else if (address >= 0x140000 && address + 3 <= 0x140fff)
{
@ -1824,9 +1824,9 @@
sbyte result = 0;
if (address <= 0x03ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -1836,7 +1836,7 @@
else if (address >= 0x100000 && address <= 0x103fff)
{
int offset = address - 0x100000;
result = (sbyte)Memory.mainram[offset];
result = (sbyte)Memory.mainram_Ptr[offset];
}
return result;
}
@ -1846,9 +1846,9 @@
sbyte result = 0;
if (address <= 0x03ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -1858,7 +1858,7 @@
else if (address >= 0x100000 && address <= 0x103fff)
{
int offset = address - 0x100000;
result = (sbyte)Memory.mainram[offset];
result = (sbyte)Memory.mainram_Ptr[offset];
}
else if (address >= 0x200000 && address <= 0x200fff)
{
@ -1948,9 +1948,9 @@
short result = 0;
if (address <= 0x03ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -1960,7 +1960,7 @@
else if (address >= 0x100000 && address + 1 <= 0x103fff)
{
int offset = address - 0x100000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (short)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
return result;
}
@ -1970,9 +1970,9 @@
short result = 0;
if (address <= 0x03ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -1982,7 +1982,7 @@
else if (address >= 0x100000 && address + 1 <= 0x103fff)
{
int offset = address - 0x100000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (short)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
else if (address >= 0x200000 && address + 1 <= 0x200fff)
{
@ -2030,9 +2030,9 @@
int result = 0;
if (address <= 0x03ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -2042,7 +2042,7 @@
else if (address >= 0x100000 && address + 3 <= 0x103fff)
{
int offset = address - 0x100000;
result = (int)(Memory.mainram[offset] * 0x1000000 + Memory.mainram[offset + 1] * 0x10000 + Memory.mainram[offset + 2] * 0x100 + Memory.mainram[offset + 3]);
result = (int)(Memory.mainram_Ptr[offset] * 0x1000000 + Memory.mainram_Ptr[offset + 1] * 0x10000 + Memory.mainram_Ptr[offset + 2] * 0x100 + Memory.mainram_Ptr[offset + 3]);
}
return result;
}
@ -2052,10 +2052,10 @@
int result = 0;
if (address <= 0x03ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
int offset = (address - 0x000000) / 2;
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -2065,7 +2065,7 @@
else if (address >= 0x100000 && address + 3 <= 0x103fff)
{
int offset = address - 0x100000;
result = (int)(Memory.mainram[offset] * 0x1000000 + Memory.mainram[offset + 1] * 0x10000 + Memory.mainram[offset + 2] * 0x100 + Memory.mainram[offset + 3]);
result = (int)(Memory.mainram_Ptr[offset] * 0x1000000 + Memory.mainram_Ptr[offset + 1] * 0x10000 + Memory.mainram_Ptr[offset + 2] * 0x100 + Memory.mainram_Ptr[offset + 3]);
}
else if (address >= 0x200000 && address + 3 <= 0x200fff)
{
@ -2105,7 +2105,7 @@
if (address >= 0x100000 && address <= 0x103fff)
{
int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value);
Memory.mainram_Ptr[offset] = (byte)(value);
}
else if (address >= 0x200000 && address <= 0x200fff)
{
@ -2199,8 +2199,8 @@
if (address >= 0x100000 && address + 1 <= 0x103fff)
{
int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 1] = (byte)value;
}
else if (address >= 0x200000 && address + 1 <= 0x200fff)
{
@ -2255,10 +2255,10 @@
if (address >= 0x100000 && address + 3 <= 0x103fff)
{
int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 24);
Memory.mainram_Ptr[offset + 1] = (byte)(value >> 16);
Memory.mainram_Ptr[offset + 2] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 3] = (byte)value;
}
else if (address >= 0x200000 && address + 3 <= 0x200fff)
{
@ -2307,9 +2307,9 @@
sbyte result = 0;
if (address <= 0x07ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -2319,7 +2319,7 @@
else if (address >= 0x100000 && address <= 0x103fff)
{
int offset = address - 0x100000;
result = (sbyte)Memory.mainram[offset];
result = (sbyte)Memory.mainram_Ptr[offset];
}
return result;
}
@ -2329,9 +2329,9 @@
sbyte result = 0;
if (address <= 0x07ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -2341,7 +2341,7 @@
else if (address >= 0x100000 && address <= 0x103fff)
{
int offset = address - 0x100000;
result = (sbyte)Memory.mainram[offset];
result = (sbyte)Memory.mainram_Ptr[offset];
}
else if (address >= 0x104000 && address <= 0x107fff)
{
@ -2456,9 +2456,9 @@
short result = 0;
if (address <= 0x07ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -2468,7 +2468,7 @@
else if (address >= 0x100000 && address + 1 <= 0x103fff)
{
int offset = address - 0x100000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (short)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
return result;
}
@ -2478,9 +2478,9 @@
short result = 0;
if (address <= 0x07ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -2490,7 +2490,7 @@
else if (address >= 0x100000 && address + 1 <= 0x103fff)
{
int offset = address - 0x100000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (short)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
else if (address >= 0x104000 && address + 1 <= 0x107fff)
{
@ -2545,9 +2545,9 @@
int result = 0;
if (address <= 0x07ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -2557,7 +2557,7 @@
else if (address >= 0x100000 && address + 3 <= 0x103fff)
{
int offset = address - 0x100000;
result = (int)(Memory.mainram[offset] * 0x1000000 + Memory.mainram[offset + 1] * 0x10000 + Memory.mainram[offset + 2] * 0x100 + Memory.mainram[offset + 3]);
result = (int)(Memory.mainram_Ptr[offset] * 0x1000000 + Memory.mainram_Ptr[offset + 1] * 0x10000 + Memory.mainram_Ptr[offset + 2] * 0x100 + Memory.mainram_Ptr[offset + 3]);
}
return result;
}
@ -2567,10 +2567,10 @@
int result = 0;
if (address <= 0x07ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
int offset = (address - 0x000000) / 2;
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -2580,7 +2580,7 @@
else if (address >= 0x100000 && address + 3 <= 0x103fff)
{
int offset = address - 0x100000;
result = (int)(Memory.mainram[offset] * 0x1000000 + Memory.mainram[offset + 1] * 0x10000 + Memory.mainram[offset + 2] * 0x100 + Memory.mainram[offset + 3]);
result = (int)(Memory.mainram_Ptr[offset] * 0x1000000 + Memory.mainram_Ptr[offset + 1] * 0x10000 + Memory.mainram_Ptr[offset + 2] * 0x100 + Memory.mainram_Ptr[offset + 3]);
}
else if (address >= 0x104000 && address + 3 <= 0x107fff)
{
@ -2620,7 +2620,7 @@
if (address >= 0x100000 && address <= 0x103fff)
{
int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value);
Memory.mainram_Ptr[offset] = (byte)(value);
}
else if (address >= 0x104000 && address <= 0x107fff)
{
@ -2756,8 +2756,8 @@
if (address >= 0x100000 && address + 1 <= 0x103fff)
{
int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 1] = (byte)value;
}
else if (address >= 0x104000 && address + 1 <= 0x107fff)
{
@ -2823,10 +2823,10 @@
if (address >= 0x100000 && address + 3 <= 0x103fff)
{
int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 24);
Memory.mainram_Ptr[offset + 1] = (byte)(value >> 16);
Memory.mainram_Ptr[offset + 2] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 3] = (byte)value;
}
else if (address >= 0x104000 && address + 3 <= 0x107fff)
{
@ -2888,7 +2888,7 @@
byte result = 0;
if (address <= 0xefff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0xf000 && address <= 0xf7ff)
{
@ -2906,7 +2906,7 @@
byte result = 0;
if (address <= 0xefff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0xf000 && address <= 0xf7ff)
{
@ -2942,7 +2942,7 @@
byte result = 0;
if (address <= 0xefff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0xf000 && address <= 0xf7ff)
{
@ -2960,7 +2960,7 @@
byte result = 0;
if (address <= 0xefff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0xf000 && address <= 0xf7ff)
{
@ -3008,12 +3008,12 @@
byte result = 0;
if (address <= 0x7fff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0x8000 && address <= 0xbfff)
{
int offset = address - 0x8000;
result = Memory.audiorom[basebanksnd + offset];
result = Memory.audiorom_Ptr[basebanksnd + offset];
}
else if (address >= 0xc000 && address <= 0xdfff)
{
@ -3031,12 +3031,12 @@
byte result = 0;
if (address <= 0x7fff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0x8000 && address <= 0xbfff)
{
int offset = address - 0x8000;
result = Memory.audiorom[basebanksnd + offset];
result = Memory.audiorom_Ptr[basebanksnd + offset];
}
else if (address >= 0xc000 && address <= 0xdfff)
{
@ -3068,7 +3068,7 @@
if (address >= 0x8000 && address <= 0xbfff)
{
int offset = address - 0x8000;
Memory.audiorom[basebanksnd + offset] = value;
Memory.audiorom_Ptr[basebanksnd + offset] = value;
}
else if (address >= 0xc000 && address <= 0xdfff)
{

View File

@ -4,7 +4,7 @@ using System.IO;
namespace MAME.Core
{
public partial class Konami68000
public unsafe partial class Konami68000
{
public static void SaveStateBinary_cuebrick(BinaryWriter writer)
{
@ -45,7 +45,7 @@ namespace MAME.Core
{
writer.Write(Palette.entry_color[i]);
}
writer.Write(Memory.mainram, 0, 0x4000);
writer.Write(Memory.mainram_Ptr, 0, 0x4000);
writer.Write(mainram2, 0, 0x4000);
MC68000.m1.SaveStateBinary(writer);
writer.Write(Memory.audioram, 0, 0x800);
@ -101,7 +101,7 @@ namespace MAME.Core
{
Palette.entry_color[i] = reader.ReadUInt32();
}
Memory.mainram = reader.ReadBytes(0x4000);
Memory.Set_mainram(reader.ReadBytes(0x4000));
mainram2 = reader.ReadBytes(0x4000);
MC68000.m1.LoadStateBinary(reader);
Memory.audioram = reader.ReadBytes(0x800);
@ -151,7 +151,7 @@ namespace MAME.Core
{
writer.Write(Palette.entry_color[i]);
}
writer.Write(Memory.mainram, 0, 0x4000);
writer.Write(Memory.mainram_Ptr, 0, 0x4000);
writer.Write(mainram2, 0, 0x4000);
MC68000.m1.SaveStateBinary(writer);
writer.Write(Memory.audioram, 0, 0x800);
@ -213,7 +213,7 @@ namespace MAME.Core
{
Palette.entry_color[i] = reader.ReadUInt32();
}
Memory.mainram = reader.ReadBytes(0x4000);
Memory.Set_mainram(reader.ReadBytes(0x4000));
mainram2 = reader.ReadBytes(0x4000);
MC68000.m1.LoadStateBinary(reader);
Memory.audioram = reader.ReadBytes(0x800);
@ -280,7 +280,7 @@ namespace MAME.Core
{
writer.Write(Palette.entry_color[i]);
}
writer.Write(Memory.mainram, 0, 0x4000);
writer.Write(Memory.mainram_Ptr, 0, 0x4000);
MC68000.m1.SaveStateBinary(writer);
writer.Write(Memory.audioram, 0, 0x800);
Z80A.zz1[0].SaveStateBinary(writer);
@ -352,7 +352,7 @@ namespace MAME.Core
{
Palette.entry_color[i] = reader.ReadUInt32();
}
Memory.mainram = reader.ReadBytes(0x4000);
Memory.Set_mainram(reader.ReadBytes(0x4000));
MC68000.m1.LoadStateBinary(reader);
Memory.audioram = reader.ReadBytes(0x800);
Z80A.zz1[0].LoadStateBinary(reader);
@ -419,7 +419,7 @@ namespace MAME.Core
{
writer.Write(Palette.entry_color[i]);
}
writer.Write(Memory.mainram, 0, 0x4000);
writer.Write(Memory.mainram_Ptr, 0, 0x4000);
MC68000.m1.SaveStateBinary(writer);
writer.Write(Memory.audioram, 0, 0x800);
Z80A.zz1[0].SaveStateBinary(writer);
@ -472,7 +472,7 @@ namespace MAME.Core
{
Palette.entry_color[i] = reader.ReadUInt32();
}
Memory.mainram = reader.ReadBytes(0x4000);
Memory.Set_mainram(reader.ReadBytes(0x4000));
MC68000.m1.LoadStateBinary(reader);
Memory.audioram = reader.ReadBytes(0x800);
Z80A.zz1[0].LoadStateBinary(reader);
@ -525,7 +525,7 @@ namespace MAME.Core
{
writer.Write(Palette.entry_color[i]);
}
writer.Write(Memory.mainram, 0, 0x4000);
writer.Write(Memory.mainram_Ptr, 0, 0x4000);
MC68000.m1.SaveStateBinary(writer);
writer.Write(Memory.audioram, 0, 0x800);
Z80A.zz1[0].SaveStateBinary(writer);
@ -578,7 +578,7 @@ namespace MAME.Core
{
Palette.entry_color[i] = reader.ReadUInt32();
}
Memory.mainram = reader.ReadBytes(0x4000);
Memory.Set_mainram(reader.ReadBytes(0x4000));
MC68000.m1.LoadStateBinary(reader);
Memory.audioram = reader.ReadBytes(0x800);
Z80A.zz1[0].LoadStateBinary(reader);
@ -629,7 +629,7 @@ namespace MAME.Core
{
writer.Write(Palette.entry_color[i]);
}
writer.Write(Memory.mainram, 0, 0x4000);
writer.Write(Memory.mainram_Ptr, 0, 0x4000);
MC68000.m1.SaveStateBinary(writer);
writer.Write(Memory.audioram, 0, 0x800);
Z80A.zz1[0].SaveStateBinary(writer);
@ -681,7 +681,7 @@ namespace MAME.Core
{
Palette.entry_color[i] = reader.ReadUInt32();
}
Memory.mainram = reader.ReadBytes(0x4000);
Memory.Set_mainram(reader.ReadBytes(0x4000));
MC68000.m1.LoadStateBinary(reader);
Memory.audioram = reader.ReadBytes(0x800);
Z80A.zz1[0].LoadStateBinary(reader);
@ -736,7 +736,7 @@ namespace MAME.Core
{
writer.Write(Palette.entry_color[i]);
}
writer.Write(Memory.mainram, 0, 0x4000);
writer.Write(Memory.mainram_Ptr, 0, 0x4000);
MC68000.m1.SaveStateBinary(writer);
writer.Write(Memory.audioram, 0, 0x800);
Z80A.zz1[0].SaveStateBinary(writer);
@ -787,7 +787,7 @@ namespace MAME.Core
{
Palette.entry_color[i] = reader.ReadUInt32();
}
Memory.mainram = reader.ReadBytes(0x4000);
Memory.Set_mainram(reader.ReadBytes(0x4000));
MC68000.m1.LoadStateBinary(reader);
Memory.audioram = reader.ReadBytes(0x800);
Z80A.zz1[0].LoadStateBinary(reader);
@ -838,7 +838,7 @@ namespace MAME.Core
{
writer.Write(Palette.entry_color[i]);
}
writer.Write(Memory.mainram, 0, 0x4000);
writer.Write(Memory.mainram_Ptr, 0, 0x4000);
writer.Write(mainram2, 0, 0x80);
MC68000.m1.SaveStateBinary(writer);
writer.Write(Memory.audioram, 0, 0x800);
@ -894,7 +894,7 @@ namespace MAME.Core
{
Palette.entry_color[i] = reader.ReadUInt32();
}
Memory.mainram = reader.ReadBytes(0x4000);
Memory.Set_mainram(reader.ReadBytes(0x4000));
mainram2 = reader.ReadBytes(0x80);
MC68000.m1.LoadStateBinary(reader);
Memory.audioram = reader.ReadBytes(0x800);
@ -946,7 +946,7 @@ namespace MAME.Core
{
writer.Write(Palette.entry_color[i]);
}
writer.Write(Memory.mainram, 0, 0x4000);
writer.Write(Memory.mainram_Ptr, 0, 0x4000);
writer.Write(mainram2, 0, 0x80);
MC68000.m1.SaveStateBinary(writer);
writer.Write(Memory.audioram, 0, 0x800);
@ -998,7 +998,7 @@ namespace MAME.Core
{
Palette.entry_color[i] = reader.ReadUInt32();
}
Memory.mainram = reader.ReadBytes(0x4000);
Memory.Set_mainram(reader.ReadBytes(0x4000));
mainram2 = reader.ReadBytes(0x80);
MC68000.m1.LoadStateBinary(reader);
Memory.audioram = reader.ReadBytes(0x800);
@ -1051,7 +1051,7 @@ namespace MAME.Core
{
writer.Write(Palette.entry_color[i]);
}
writer.Write(Memory.mainram, 0, 0x4000);
writer.Write(Memory.mainram_Ptr, 0, 0x4000);
MC68000.m1.SaveStateBinary(writer);
writer.Write(Memory.audioram, 0, 0x800);
Z80A.zz1[0].SaveStateBinary(writer);
@ -1103,7 +1103,7 @@ namespace MAME.Core
{
Palette.entry_color[i] = reader.ReadUInt32();
}
Memory.mainram = reader.ReadBytes(0x4000);
Memory.Set_mainram(reader.ReadBytes(0x4000));
MC68000.m1.LoadStateBinary(reader);
Memory.audioram = reader.ReadBytes(0x800);
Z80A.zz1[0].LoadStateBinary(reader);
@ -1156,7 +1156,7 @@ namespace MAME.Core
{
writer.Write(Palette.entry_color[i]);
}
writer.Write(Memory.mainram, 0, 0x4000);
writer.Write(Memory.mainram_Ptr, 0, 0x4000);
MC68000.m1.SaveStateBinary(writer);
writer.Write(Memory.audioram, 0, 0x2000);
Z80A.zz1[0].SaveStateBinary(writer);
@ -1214,7 +1214,7 @@ namespace MAME.Core
{
Palette.entry_color[i] = reader.ReadUInt32();
}
Memory.mainram = reader.ReadBytes(0x4000);
Memory.Set_mainram(reader.ReadBytes(0x4000));
MC68000.m1.LoadStateBinary(reader);
Memory.audioram = reader.ReadBytes(0x2000);
Z80A.zz1[0].LoadStateBinary(reader);

View File

@ -46,8 +46,8 @@ namespace MAME.Core
Machine.bRom = true;
EmuTimer.setvector = setvector_callback;
protection_ram = new byte[0x1000];
Memory.mainrom = Machine.GetRom("maincpu.rom");
Memory.audiorom = Machine.GetRom("soundcpu.rom");
Memory.Set_mainrom(Machine.GetRom("maincpu.rom"));
Memory.Set_audiorom(Machine.GetRom("soundcpu.rom"));
//Memory.audiorom = new byte[0x10000];
spritesrom = Machine.GetRom("sprites.rom");
n1 = spritesrom.Length;
@ -77,10 +77,10 @@ namespace MAME.Core
}
}
samplesrom = Machine.GetRom("samples.rom");
Memory.mainram = new byte[0x4000];
Memory.Set_mainram(new byte[0x4000]);
Memory.audioram = new byte[0x10000];
dsw = 0xffbf;
if (Memory.mainrom == null || Memory.audiorom == null || sprites1rom == null || gfx21rom == null || samplesrom == null)
if (Memory.mainrom_IsNull || Memory.audiorom_IsNull || sprites1rom == null || gfx21rom == null || samplesrom == null)
{
Machine.bRom = false;
}

View File

@ -1,6 +1,6 @@
namespace MAME.Core
{
public partial class M72
public unsafe partial class M72
{
public static ushort ushort0, ushort1, dsw;
public static ushort ushort0_old, ushort1_old;
@ -10,7 +10,7 @@
byte result = 0;
if (address >= 0 && address <= 0xfffff)
{
result = Memory.mainrom[address];
result = Memory.mainrom_Ptr[address];
}
return result;
}
@ -20,11 +20,11 @@
byte result = 0;
if (address >= 0 && address <= 0x7ffff)
{
result = Memory.mainrom[address];
result = Memory.mainrom_Ptr[address];
}
else if (address >= 0xa0000 && address <= 0xa3fff)
{
result = Memory.mainram[address - 0xa0000];
result = Memory.mainram_Ptr[address - 0xa0000];
}
else if (address >= 0xc0000 && address <= 0xc03ff)
{
@ -58,7 +58,7 @@
}
else if (address >= 0xffff0 && address <= 0xfffff)
{
result = Memory.mainrom[address & 0xfffff];
result = Memory.mainrom_Ptr[address & 0xfffff];
}
return result;
}
@ -68,11 +68,11 @@
ushort result = 0;
if (address >= 0 && address + 1 <= 0x7ffff)
{
result = (ushort)(Memory.mainrom[address] + Memory.mainrom[address + 1] * 0x100);
result = (ushort)(Memory.mainrom_Ptr[address] + Memory.mainrom_Ptr[address + 1] * 0x100);
}
else if (address >= 0xa0000 && address + 1 <= 0xa3fff)
{
result = (ushort)(Memory.mainram[address - 0xa0000] + Memory.mainram[address - 0xa0000 + 1] * 0x100);
result = (ushort)(Memory.mainram_Ptr[address - 0xa0000] + Memory.mainram_Ptr[address - 0xa0000 + 1] * 0x100);
}
else if (address >= 0xc0000 && address + 1 <= 0xc03ff)
{
@ -106,7 +106,7 @@
}
else if (address >= 0xffff0 && address + 1 <= 0xfffff)
{
result = (ushort)(Memory.mainrom[address] + Memory.mainrom[address + 1] * 0x100);
result = (ushort)(Memory.mainrom_Ptr[address] + Memory.mainrom_Ptr[address + 1] * 0x100);
}
return result;
}
@ -115,7 +115,7 @@
address &= 0xfffff;
if (address >= 0xa0000 && address <= 0xa3fff)
{
Memory.mainram[address - 0xa0000] = value;
Memory.mainram_Ptr[address - 0xa0000] = value;
}
else if (address >= 0xc0000 && address <= 0xc03ff)
{
@ -153,8 +153,8 @@
address &= 0xfffff;
if (address >= 0xa0000 && address + 1 <= 0xa3fff)
{
Memory.mainram[address - 0xa0000] = (byte)value;
Memory.mainram[address - 0xa0000 + 1] = (byte)(value >> 8);
Memory.mainram_Ptr[address - 0xa0000] = (byte)value;
Memory.mainram_Ptr[address - 0xa0000 + 1] = (byte)(value >> 8);
}
else if (address >= 0xc0000 && address + 1 <= 0xc03ff)
{
@ -305,7 +305,7 @@
byte result = 0;
if (address >= 0 && address <= 0x7ffff)
{
result = Memory.mainrom[address];
result = Memory.mainrom_Ptr[address];
}
else if (address >= 0x80000 && address <= 0x83fff)
{
@ -334,11 +334,11 @@
}
else if (address >= 0xe0000 && address <= 0xe3fff)
{
result = Memory.mainram[address - 0xe0000];
result = Memory.mainram_Ptr[address - 0xe0000];
}
else if (address >= 0xffff0 && address <= 0xfffff)
{
result = Memory.mainrom[address & 0xfffff];
result = Memory.mainrom_Ptr[address & 0xfffff];
}
return result;
}
@ -348,7 +348,7 @@
ushort result = 0;
if (address >= 0 && address + 1 <= 0x7ffff)
{
result = (ushort)(Memory.mainrom[address] + Memory.mainrom[address + 1] * 0x100);
result = (ushort)(Memory.mainrom_Ptr[address] + Memory.mainrom_Ptr[address + 1] * 0x100);
}
else if (address >= 0x80000 && address + 1 <= 0x83fff)
{
@ -377,11 +377,11 @@
}
else if (address >= 0xe0000 && address + 1 <= 0xe3fff)
{
result = (ushort)(Memory.mainram[address - 0xe0000] + Memory.mainram[address - 0xe0000 + 1] * 0x100);
result = (ushort)(Memory.mainram_Ptr[address - 0xe0000] + Memory.mainram_Ptr[address - 0xe0000 + 1] * 0x100);
}
else if (address >= 0xffff0 && address + 1 <= 0xfffff)
{
result = (ushort)(Memory.mainrom[address] + Memory.mainrom[address + 1] * 0x100);
result = (ushort)(Memory.mainrom_Ptr[address] + Memory.mainrom_Ptr[address + 1] * 0x100);
}
return result;
}
@ -423,7 +423,7 @@
}
else if (address >= 0xe0000 && address <= 0xe3fff)
{
Memory.mainram[address - 0xe0000] = value;
Memory.mainram_Ptr[address - 0xe0000] = value;
}
}
public static void NWriteWord_kengo(int address, ushort value)
@ -464,8 +464,8 @@
}
else if (address >= 0xe0000 && address + 1 <= 0xe3fff)
{
Memory.mainram[address - 0xe0000] = (byte)value;
Memory.mainram[address - 0xe0000 + 1] = (byte)(value >> 8);
Memory.mainram_Ptr[address - 0xe0000] = (byte)value;
Memory.mainram_Ptr[address - 0xe0000 + 1] = (byte)(value >> 8);
}
}
public static void NWriteIOByte_kengo(int address, byte value)
@ -535,7 +535,7 @@
byte result = 0;
if (address >= 0 && address <= 0xffff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
return result;
}
@ -553,7 +553,7 @@
byte result = 0;
if (address >= 0 && address <= 0xefff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0xf000 && address <= 0xffff)
{

View File

@ -2,7 +2,7 @@
namespace MAME.Core
{
public partial class M72
public unsafe partial class M72
{
public static byte NReadOpByte_airduel(int address)
{
@ -15,7 +15,7 @@ namespace MAME.Core
}
else
{
result = Memory.mainrom[address];
result = Memory.mainrom_Ptr[address];
}
return result;
}

View File

@ -4,7 +4,7 @@ using System.IO;
namespace MAME.Core
{
public partial class M72
public unsafe partial class M72
{
public static void SaveStateBinary(BinaryWriter writer)
{
@ -45,7 +45,7 @@ namespace MAME.Core
{
writer.Write(Palette.entry_color[i]);
}
writer.Write(Memory.mainram, 0, 0x4000);
writer.Write(Memory.mainram_Ptr, 0, 0x4000);
Nec.nn1[0].SaveStateBinary(writer);
writer.Write(Memory.audioram, 0, 0x10000);
Z80A.zz1[0].SaveStateBinary(writer);
@ -106,7 +106,7 @@ namespace MAME.Core
{
Palette.entry_color[i] = reader.ReadUInt32();
}
Memory.mainram = reader.ReadBytes(0x4000);
Memory.Set_mainram(reader.ReadBytes(0x4000));
Nec.nn1[0].LoadStateBinary(reader);
Memory.audioram = reader.ReadBytes(0x10000);
Z80A.zz1[0].LoadStateBinary(reader);

View File

@ -231,11 +231,15 @@ namespace MAME.Core
m92_vram_data = new ushort[0x8000];
m92_spritecontrol = new ushort[8];
bb1 = Machine.GetRom("maincpu.rom");
Memory.mainrom = new byte[0x190000];
Array.Copy(bb1, Memory.mainrom, bb1.Length);
Memory.audiorom = Machine.GetRom("soundcpu.rom");
//Memory.mainrom = new byte[0x190000];
//Array.Copy(bb1, Memory.mainrom, bb1.Length);
byte[] temp_mainrom = new byte[0x190000];
Array.Copy(bb1, temp_mainrom, bb1.Length);
Memory.Set_mainrom(temp_mainrom);
Memory.Set_audiorom(Machine.GetRom("soundcpu.rom"));
Iremga20.iremrom = Machine.GetRom("irem.rom");
Memory.mainram = new byte[0x10000];
Memory.Set_mainram(new byte[0x10000]);
Memory.audioram = new byte[0x4000];
gfx1rom = Machine.GetRom("gfx1.rom");
n1 = gfx1rom.Length;
@ -292,7 +296,7 @@ namespace MAME.Core
m92_irq_vectorbase = 0x20;
break;
}
if (Memory.mainrom == null || Memory.audiorom == null || gfx11rom == null || gfx21rom == null)
if (Memory.mainrom_IsNull || Memory.audiorom_IsNull || gfx11rom == null || gfx21rom == null)
{
Machine.bRom = false;
}

View File

@ -1,6 +1,6 @@
namespace MAME.Core
{
public partial class M92
public unsafe partial class M92
{
public static ushort ushort0, ushort1, ushort2, dsw;
public static ushort ushort0_old, ushort1_old, ushort2_old;
@ -10,7 +10,7 @@
byte result = 0;
if (address >= 0 && address <= 0xfffff)
{
result = Memory.mainrom[address];
result = Memory.mainrom_Ptr[address];
}
return result;
}
@ -20,16 +20,16 @@
byte result = 0;
if (address >= 0 && address <= 0x9ffff)
{
result = Memory.mainrom[address];
result = Memory.mainrom_Ptr[address];
}
else if (address >= 0xa0000 && address <= 0xbffff)
{
int offset = address - 0xa0000;
result = Memory.mainrom[bankaddress + offset];
result = Memory.mainrom_Ptr[bankaddress + offset];
}
else if (address >= 0xc0000 && address <= 0xcffff)
{
result = Memory.mainrom[address];
result = Memory.mainrom_Ptr[address];
}
else if (address >= 0xd0000 && address <= 0xdffff)
{
@ -46,7 +46,7 @@
else if (address >= 0xe0000 && address <= 0xeffff)
{
int offset = address - 0xe0000;
result = Memory.mainram[offset];
result = Memory.mainram_Ptr[offset];
}
else if (address >= 0xf8000 && address <= 0xf87ff)
{
@ -60,7 +60,7 @@
}
else if (address >= 0xffff0 && address <= 0xfffff)
{
result = Memory.mainrom[address];
result = Memory.mainrom_Ptr[address];
}
return result;
}
@ -70,16 +70,16 @@
ushort result = 0;
if (address >= 0 && address + 1 <= 0x9ffff)
{
result = (ushort)(Memory.mainrom[address] + Memory.mainrom[address + 1] * 0x100);
result = (ushort)(Memory.mainrom_Ptr[address] + Memory.mainrom_Ptr[address + 1] * 0x100);
}
else if (address >= 0xa0000 && address + 1 <= 0xbffff)
{
int offset = address - 0xa0000;
result = (ushort)(Memory.mainrom[bankaddress + offset] + Memory.mainrom[bankaddress + offset + 1] * 0x100);
result = (ushort)(Memory.mainrom_Ptr[bankaddress + offset] + Memory.mainrom_Ptr[bankaddress + offset + 1] * 0x100);
}
else if (address >= 0xc0000 && address + 1 <= 0xcffff)
{
result = (ushort)(Memory.mainrom[address] + Memory.mainrom[address + 1] * 0x100);
result = (ushort)(Memory.mainrom_Ptr[address] + Memory.mainrom_Ptr[address + 1] * 0x100);
}
else if (address >= 0xd0000 && address + 1 <= 0xdffff)
{
@ -89,7 +89,7 @@
else if (address >= 0xe0000 && address + 1 <= 0xeffff)
{
int offset = address - 0xe0000;
result = (ushort)(Memory.mainram[offset] + Memory.mainram[offset + 1] * 0x100);
result = (ushort)(Memory.mainram_Ptr[offset] + Memory.mainram_Ptr[offset + 1] * 0x100);
}
else if (address >= 0xf8000 && address + 1 <= 0xf87ff)
{
@ -103,7 +103,7 @@
}
else if (address >= 0xffff0 && address + 1 <= 0xfffff)
{
result = (ushort)(Memory.mainrom[address] + Memory.mainrom[address + 1] * 0x100);
result = (ushort)(Memory.mainrom_Ptr[address] + Memory.mainrom_Ptr[address + 1] * 0x100);
}
return result;
}
@ -126,7 +126,7 @@
else if (address >= 0xe0000 && address <= 0xeffff)
{
int offset = address - 0xe0000;
Memory.mainram[offset] = value;
Memory.mainram_Ptr[offset] = value;
}
else if (address >= 0xf8000 && address <= 0xf87ff)
{
@ -170,8 +170,8 @@
else if (address >= 0xe0000 && address + 1 <= 0xeffff)
{
int offset = address - 0xe0000;
Memory.mainram[offset] = (byte)value;
Memory.mainram[offset + 1] = (byte)(value >> 8);
Memory.mainram_Ptr[offset] = (byte)value;
Memory.mainram_Ptr[offset + 1] = (byte)(value >> 8);
}
else if (address >= 0xf8000 && address + 1 <= 0xf87ff)
{
@ -363,12 +363,12 @@
byte result = 0;
if (address >= 0 && address <= 0x1ffff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0xffff0 && address <= 0xfffff)
{
int offset = address - 0xe0000;
result = Memory.audiorom[offset];
result = Memory.audiorom_Ptr[offset];
}
return result;
}
@ -378,7 +378,7 @@
byte result = 0;
if (address >= 0 && address <= 0x1ffff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0xa0000 && address <= 0xa3fff)
{
@ -401,7 +401,7 @@
else if (address >= 0xffff0 && address <= 0xfffff)
{
int offset = address - 0xe0000;
result = Memory.mainrom[offset];
result = Memory.mainrom_Ptr[offset];
}
return result;
}
@ -411,7 +411,7 @@
ushort result = 0;
if (address >= 0 && address + 1 <= 0x1ffff)
{
result = (ushort)(Memory.audiorom[address] + Memory.audiorom[address + 1] * 0x100);
result = (ushort)(Memory.audiorom_Ptr[address] + Memory.audiorom_Ptr[address + 1] * 0x100);
}
else if (address >= 0xa0000 && address + 1 <= 0xa3fff)
{
@ -434,7 +434,7 @@
else if (address >= 0xffff0 && address + 1 <= 0xfffff)
{
int offset = address - 0xe0000;
result = (ushort)(Memory.mainrom[offset] + Memory.mainrom[offset + 1] * 0x100);
result = (ushort)(Memory.mainrom_Ptr[offset] + Memory.mainrom_Ptr[offset + 1] * 0x100);
}
return result;
}

View File

@ -1,6 +1,6 @@
namespace MAME.Core
{
public partial class M92
public unsafe partial class M92
{
public static byte N0ReadByte_lethalth(int address)
{
@ -8,7 +8,7 @@
byte result = 0;
if (address >= 0 && address <= 0x7ffff)
{
result = Memory.mainrom[address];
result = Memory.mainrom_Ptr[address];
}
else if (address >= 0x80000 && address <= 0x8ffff)
{
@ -25,7 +25,7 @@
else if (address >= 0xe0000 && address <= 0xeffff)
{
int offset = address - 0xe0000;
result = Memory.mainram[offset];
result = Memory.mainram_Ptr[offset];
}
else if (address >= 0xf8000 && address <= 0xf87ff)
{
@ -39,7 +39,7 @@
}
else if (address >= 0xffff0 && address <= 0xfffff)
{
result = Memory.mainrom[address];
result = Memory.mainrom_Ptr[address];
}
return result;
}
@ -49,7 +49,7 @@
ushort result = 0;
if (address >= 0 && address + 1 <= 0x7ffff)
{
result = (ushort)(Memory.mainrom[address] + Memory.mainrom[address + 1] * 0x100);
result = (ushort)(Memory.mainrom_Ptr[address] + Memory.mainrom_Ptr[address + 1] * 0x100);
}
else if (address >= 0x80000 && address + 1 <= 0x8ffff)
{
@ -59,7 +59,7 @@
else if (address >= 0xe0000 && address + 1 <= 0xeffff)
{
int offset = address - 0xe0000;
result = (ushort)(Memory.mainram[offset] + Memory.mainram[offset + 1] * 0x100);
result = (ushort)(Memory.mainram_Ptr[offset] + Memory.mainram_Ptr[offset + 1] * 0x100);
}
else if (address >= 0xf8000 && address + 1 <= 0xf87ff)
{
@ -73,7 +73,7 @@
}
else if (address >= 0xffff0 && address + 1 <= 0xfffff)
{
result = (ushort)(Memory.mainrom[address] + Memory.mainrom[address + 1] * 0x100);
result = (ushort)(Memory.mainrom_Ptr[address] + Memory.mainrom_Ptr[address + 1] * 0x100);
}
return result;
}
@ -96,7 +96,7 @@
else if (address >= 0xe0000 && address <= 0xeffff)
{
int offset = address - 0xe0000;
Memory.mainram[offset] = value;
Memory.mainram_Ptr[offset] = value;
}
else if (address >= 0xf8000 && address <= 0xf87ff)
{
@ -140,8 +140,8 @@
else if (address >= 0xe0000 && address + 1 <= 0xeffff)
{
int offset = address - 0xe0000;
Memory.mainram[offset] = (byte)value;
Memory.mainram[offset + 1] = (byte)(value >> 8);
Memory.mainram_Ptr[offset] = (byte)value;
Memory.mainram_Ptr[offset + 1] = (byte)(value >> 8);
}
else if (address >= 0xf8000 && address + 1 <= 0xf87ff)
{

View File

@ -3,7 +3,7 @@ using System.IO;
namespace MAME.Core
{
public partial class M92
public unsafe partial class M92
{
public static void SaveStateBinary(BinaryWriter writer)
{
@ -59,7 +59,7 @@ namespace MAME.Core
{
writer.Write(Palette.entry_color[i]);
}
writer.Write(Memory.mainram, 0, 0x10000);
writer.Write(Memory.mainram_Ptr, 0, 0x10000);
Nec.nn1[0].SaveStateBinary(writer);
writer.Write(Memory.audioram, 0, 0x4000);
Nec.nn1[1].SaveStateBinary(writer);
@ -136,7 +136,7 @@ namespace MAME.Core
{
Palette.entry_color[i] = reader.ReadUInt32();
}
Memory.mainram = reader.ReadBytes(0x10000);
Memory.Set_mainram(reader.ReadBytes(0x10000));
Nec.nn1[0].LoadStateBinary(reader);
Memory.audioram = reader.ReadBytes(0x4000);
Nec.nn1[1].LoadStateBinary(reader);

View File

@ -2,7 +2,7 @@
namespace MAME.Core
{
public partial class Neogeo
public unsafe partial class Neogeo
{
public static short short0, short1, short2, short3, short4, short5, short6;
public static short short0_old, short1_old, short2_old, short3_old, short4_old, short5_old, short6_old;
@ -18,20 +18,20 @@ namespace MAME.Core
}
else if (main_cpu_vector_table_source == 1)
{
result = (sbyte)Memory.mainrom[address];
result = (sbyte)Memory.mainrom_Ptr[address];
}
}
else if (address >= 0x000080 && address <= 0x0fffff)
{
result = (sbyte)Memory.mainrom[address];
result = (sbyte)Memory.mainrom_Ptr[address];
}
else if (address >= 0x100000 && address <= 0x1fffff)
{
result = (sbyte)Memory.mainram[address & 0xffff];
result = (sbyte)Memory.mainram_Ptr[address & 0xffff];
}
else if (address >= 0x200000 && address <= 0x2fffff)
{
result = (sbyte)Memory.mainrom[main_cpu_bank_address + (address - 0x200000)];
result = (sbyte)Memory.mainrom_Ptr[main_cpu_bank_address + (address - 0x200000)];
}
else if (address >= 0xc00000 && address <= 0xcfffff)
{
@ -55,20 +55,20 @@ namespace MAME.Core
}
else if (main_cpu_vector_table_source == 1)
{
result = (sbyte)Memory.mainrom[address];
result = (sbyte)Memory.mainrom_Ptr[address];
}
}
else if (address >= 0x000080 && address <= 0x0fffff)
{
result = (sbyte)Memory.mainrom[address];
result = (sbyte)Memory.mainrom_Ptr[address];
}
else if (address >= 0x100000 && address <= 0x1fffff)
{
result = (sbyte)Memory.mainram[address & 0xffff];
result = (sbyte)Memory.mainram_Ptr[address & 0xffff];
}
else if (address >= 0x200000 && address <= 0x2fffff)
{
result = (sbyte)Memory.mainrom[main_cpu_bank_address + (address - 0x200000)];
result = (sbyte)Memory.mainrom_Ptr[main_cpu_bank_address + (address - 0x200000)];
}
/*else if (address >= 0x300000 && address <= 0x300001)
{
@ -187,7 +187,7 @@ namespace MAME.Core
}
else if (main_cpu_vector_table_source == 1)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
}
else if (address >= 0x000080 && address + 1 <= 0x0fffff)
@ -196,15 +196,15 @@ namespace MAME.Core
{
//m68000Form.iStatus = 1;
}
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else if (address >= 0x100000 && address + 1 <= 0x1fffff)
{
result = (short)(Memory.mainram[address & 0xffff] * 0x100 + Memory.mainram[(address & 0xffff) + 1]);
result = (short)(Memory.mainram_Ptr[address & 0xffff] * 0x100 + Memory.mainram_Ptr[(address & 0xffff) + 1]);
}
else if (address >= 0x200000 && address + 1 <= 0x2fffff)
{
result = (short)(Memory.mainrom[main_cpu_bank_address + (address & 0xfffff)] * 0x100 + Memory.mainrom[main_cpu_bank_address + (address & 0xfffff) + 1]);
result = (short)(Memory.mainrom_Ptr[main_cpu_bank_address + (address & 0xfffff)] * 0x100 + Memory.mainrom_Ptr[main_cpu_bank_address + (address & 0xfffff) + 1]);
}
else if (address >= 0xc00000 && address + 1 <= 0xcfffff)
{
@ -228,7 +228,7 @@ namespace MAME.Core
}
else if (main_cpu_vector_table_source == 1)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
}
else if (address >= 0x000080 && address + 1 <= 0x0fffff)
@ -237,7 +237,7 @@ namespace MAME.Core
{
//m68000Form.iStatus = 1;
}
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else if (address >= 0x100000 && address + 1 <= 0x1fffff)
{
@ -245,11 +245,11 @@ namespace MAME.Core
{
int i1 = 1;
}
result = (short)(Memory.mainram[address & 0xffff] * 0x100 + Memory.mainram[(address & 0xffff) + 1]);
result = (short)(Memory.mainram_Ptr[address & 0xffff] * 0x100 + Memory.mainram_Ptr[(address & 0xffff) + 1]);
}
else if (address >= 0x200000 && address <= 0x2fffff)
{
result = (short)(Memory.mainrom[main_cpu_bank_address + (address & 0xfffff)] * 0x100 + Memory.mainrom[main_cpu_bank_address + (address & 0xfffff) + 1]);
result = (short)(Memory.mainrom_Ptr[main_cpu_bank_address + (address & 0xfffff)] * 0x100 + Memory.mainrom_Ptr[main_cpu_bank_address + (address & 0xfffff) + 1]);
}
/*else if (address >= 0x300000 && address <= 0x300001)
{
@ -317,7 +317,7 @@ namespace MAME.Core
}
else if (main_cpu_vector_table_source == 1)
{
result = Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3];
result = Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3];
}
}
else if (address >= 0x000080 && address + 3 <= 0x0fffff)
@ -326,15 +326,15 @@ namespace MAME.Core
{
//m68000Form.iStatus = 1;
}
result = Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3];
result = Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3];
}
else if (address >= 0x100000 && address + 3 <= 0x1fffff)
{
result = Memory.mainram[address & 0xffff] * 0x1000000 + Memory.mainram[(address & 0xffff) + 1] * 0x10000 + Memory.mainram[(address & 0xffff) + 2] * 0x100 + Memory.mainram[(address & 0xffff) + 3];
result = Memory.mainram_Ptr[address & 0xffff] * 0x1000000 + Memory.mainram_Ptr[(address & 0xffff) + 1] * 0x10000 + Memory.mainram_Ptr[(address & 0xffff) + 2] * 0x100 + Memory.mainram_Ptr[(address & 0xffff) + 3];
}
else if (address >= 0x200000 && address + 3 <= 0x2fffff)
{
result = Memory.mainrom[main_cpu_bank_address + (address & 0xfffff)] * 0x1000000 + Memory.mainrom[main_cpu_bank_address + (address & 0xfffff) + 1] * 0x10000 + Memory.mainrom[main_cpu_bank_address + (address & 0xfffff) + 2] * 0x100 + Memory.mainrom[main_cpu_bank_address + (address & 0xfffff) + 3];
result = Memory.mainrom_Ptr[main_cpu_bank_address + (address & 0xfffff)] * 0x1000000 + Memory.mainrom_Ptr[main_cpu_bank_address + (address & 0xfffff) + 1] * 0x10000 + Memory.mainrom_Ptr[main_cpu_bank_address + (address & 0xfffff) + 2] * 0x100 + Memory.mainrom_Ptr[main_cpu_bank_address + (address & 0xfffff) + 3];
}
else if (address >= 0xc00000 && address + 3 <= 0xcfffff)
{
@ -358,7 +358,7 @@ namespace MAME.Core
}
else if (main_cpu_vector_table_source == 1)
{
result = Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3];
result = Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3];
}
}
else if (address >= 0x000080 && address + 3 <= 0x0fffff)
@ -367,15 +367,15 @@ namespace MAME.Core
{
//m68000Form.iStatus = 1;
}
result = Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3];
result = Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3];
}
else if (address >= 0x100000 && address + 3 <= 0x1fffff)
{
result = Memory.mainram[address & 0xffff] * 0x1000000 + Memory.mainram[(address & 0xffff) + 1] * 0x10000 + Memory.mainram[(address & 0xffff) + 2] * 0x100 + Memory.mainram[(address & 0xffff) + 3];
result = Memory.mainram_Ptr[address & 0xffff] * 0x1000000 + Memory.mainram_Ptr[(address & 0xffff) + 1] * 0x10000 + Memory.mainram_Ptr[(address & 0xffff) + 2] * 0x100 + Memory.mainram_Ptr[(address & 0xffff) + 3];
}
else if (address >= 0x200000 && address + 3 <= 0x2fffff)
{
result = Memory.mainrom[main_cpu_bank_address + (address & 0xfffff)] * 0x1000000 + Memory.mainrom[main_cpu_bank_address + (address & 0xfffff) + 1] * 0x10000 + Memory.mainrom[main_cpu_bank_address + (address & 0xfffff) + 2] * 0x100 + Memory.mainrom[main_cpu_bank_address + (address & 0xfffff) + 3];
result = Memory.mainrom_Ptr[main_cpu_bank_address + (address & 0xfffff)] * 0x1000000 + Memory.mainrom_Ptr[main_cpu_bank_address + (address & 0xfffff) + 1] * 0x10000 + Memory.mainrom_Ptr[main_cpu_bank_address + (address & 0xfffff) + 2] * 0x100 + Memory.mainrom_Ptr[main_cpu_bank_address + (address & 0xfffff) + 3];
}
else if (address >= 0x300000 && address <= 0x31ffff)
{
@ -429,7 +429,7 @@ namespace MAME.Core
int i2 = 1;
//m68000Form.iStatus = 1;
}
Memory.mainram[address & 0xffff] = (byte)value;
Memory.mainram_Ptr[address & 0xffff] = (byte)value;
}
else if (address >= 0x2ffff0 && address <= 0x2fffff)
{
@ -504,8 +504,8 @@ namespace MAME.Core
{
int i1 = 1;
}
Memory.mainram[address & 0xffff] = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 1] = (byte)value;
Memory.mainram_Ptr[address & 0xffff] = (byte)(value >> 8);
Memory.mainram_Ptr[(address & 0xffff) + 1] = (byte)value;
}
else if (address >= 0x2ffff0 && address <= 0x2fffff)
{
@ -557,10 +557,10 @@ namespace MAME.Core
{
int i1 = 1;
}
Memory.mainram[address & 0xffff] = (byte)(value >> 24);
Memory.mainram[(address & 0xffff) + 1] = (byte)(value >> 16);
Memory.mainram[(address & 0xffff) + 2] = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 3] = (byte)value;
Memory.mainram_Ptr[address & 0xffff] = (byte)(value >> 24);
Memory.mainram_Ptr[(address & 0xffff) + 1] = (byte)(value >> 16);
Memory.mainram_Ptr[(address & 0xffff) + 2] = (byte)(value >> 8);
Memory.mainram_Ptr[(address & 0xffff) + 3] = (byte)value;
}
else if (address >= 0x2ffff0 && address <= 0x2fffff)
{
@ -1981,23 +1981,23 @@ namespace MAME.Core
byte result = 0;
if (address >= 0x0000 && address <= 0x7fff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0x8000 && address <= 0xbfff)
{
result = Memory.audiorom[audio_cpu_banks[3] * 0x4000 + address - 0x8000];
result = Memory.audiorom_Ptr[audio_cpu_banks[3] * 0x4000 + address - 0x8000];
}
else if (address >= 0xc000 && address <= 0xdfff)
{
result = Memory.audiorom[audio_cpu_banks[2] * 0x2000 + address - 0xc000];
result = Memory.audiorom_Ptr[audio_cpu_banks[2] * 0x2000 + address - 0xc000];
}
else if (address >= 0xe000 && address <= 0xefff)
{
result = Memory.audiorom[audio_cpu_banks[1] * 0x1000 + address - 0xe000];
result = Memory.audiorom_Ptr[audio_cpu_banks[1] * 0x1000 + address - 0xe000];
}
else if (address >= 0xf000 && address <= 0xf7ff)
{
result = Memory.audiorom[audio_cpu_banks[0] * 0x800 + address - 0xf000];
result = Memory.audiorom_Ptr[audio_cpu_banks[0] * 0x800 + address - 0xf000];
}
else if (address >= 0xf800 && address <= 0xffff)
{
@ -2010,23 +2010,23 @@ namespace MAME.Core
byte result = 0;
if (address >= 0x0000 && address <= 0x7fff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0x8000 && address <= 0xbfff)
{
result = Memory.audiorom[audio_cpu_banks[3] * 0x4000 + address - 0x8000];
result = Memory.audiorom_Ptr[audio_cpu_banks[3] * 0x4000 + address - 0x8000];
}
else if (address >= 0xc000 && address <= 0xdfff)
{
result = Memory.audiorom[audio_cpu_banks[2] * 0x2000 + address - 0xc000];
result = Memory.audiorom_Ptr[audio_cpu_banks[2] * 0x2000 + address - 0xc000];
}
else if (address >= 0xe000 && address <= 0xefff)
{
result = Memory.audiorom[audio_cpu_banks[1] * 0x1000 + address - 0xe000];
result = Memory.audiorom_Ptr[audio_cpu_banks[1] * 0x1000 + address - 0xe000];
}
else if (address >= 0xf000 && address <= 0xf7ff)
{
result = Memory.audiorom[audio_cpu_banks[0] * 0x800 + address - 0xf000];
result = Memory.audiorom_Ptr[audio_cpu_banks[0] * 0x800 + address - 0xf000];
}
else if (address >= 0xf800 && address <= 0xffff)
{

View File

@ -35,7 +35,7 @@ namespace MAME.Core
{
audio_cpu_banks = new byte[4];
pvc_cartridge_ram = new byte[0x2000];
Memory.mainram = new byte[0x10000];
Memory.Set_mainram(new byte[0x10000]);
mainram2 = new byte[0x10000];
Memory.audioram = new byte[0x800];
Machine.bRom = true;
@ -44,13 +44,13 @@ namespace MAME.Core
zoomyrom = MameMainMotion.resource._000_lo;
audiobiosrom = MameMainMotion.resource.sm1;
mainbiosrom = MameMainMotion.resource.mainbios;
Memory.mainrom = Machine.GetRom("maincpu.rom");
Memory.audiorom = Machine.GetRom("audiocpu.rom");
Memory.Set_mainrom(Machine.GetRom("maincpu.rom"));
Memory.Set_audiorom(Machine.GetRom("audiocpu.rom"));
fixedrom = Machine.GetRom("fixed.rom");
FM.ymsndrom = Machine.GetRom("ymsnd.rom");
YMDeltat.ymsnddeltatrom = Machine.GetRom("ymsnddeltat.rom");
spritesrom = Machine.GetRom("sprites.rom");
if (fixedbiosrom == null || zoomyrom == null || audiobiosrom == null || mainbiosrom == null || Memory.mainrom == null || Memory.audiorom == null || fixedrom == null || FM.ymsndrom == null || spritesrom == null)
if (fixedbiosrom == null || zoomyrom == null || audiobiosrom == null || mainbiosrom == null || Memory.mainrom_IsNull || Memory.audiorom_IsNull || fixedrom == null || FM.ymsndrom == null || spritesrom == null)
{
Machine.bRom = false;
}
@ -262,7 +262,7 @@ namespace MAME.Core
public static void main_cpu_bank_select_w(int data)
{
int bank_address;
int len = Memory.mainrom.Length;
int len = Memory.mainrom_Lenght;
if ((len <= 0x100000) && ((data & 0x07) != 0))
{
int i1 = 1;
@ -313,7 +313,7 @@ namespace MAME.Core
}
public static void machine_start_neogeo()
{
if (Memory.mainrom.Length > 0x100000)
if (Memory.mainrom_Lenght > 0x100000)
{
main_cpu_bank_address = 0x100000;
}

View File

@ -2,7 +2,7 @@
namespace MAME.Core
{
public partial class Neogeo
public unsafe partial class Neogeo
{
public static ushort fatfury2_protection_16_r(int offset)
{
@ -63,16 +63,16 @@ namespace MAME.Core
switch (value)
{
case 0x0090:
Memory.mainrom[0x100] = 0x00;
Memory.mainrom[0x101] = 0xc2;
Memory.mainrom[0x102] = 0x00;
Memory.mainrom[0x103] = 0xfd;
Memory.mainrom_Ptr[0x100] = 0x00;
Memory.mainrom_Ptr[0x101] = 0xc2;
Memory.mainrom_Ptr[0x102] = 0x00;
Memory.mainrom_Ptr[0x103] = 0xfd;
break;
case 0x00f0:
Memory.mainrom[0x100] = 0x4e;
Memory.mainrom[0x101] = 0x45;
Memory.mainrom[0x102] = 0x4f;
Memory.mainrom[0x103] = 0x2d;
Memory.mainrom_Ptr[0x100] = 0x4e;
Memory.mainrom_Ptr[0x101] = 0x45;
Memory.mainrom_Ptr[0x102] = 0x4f;
Memory.mainrom_Ptr[0x103] = 0x2d;
break;
default:
break;
@ -305,7 +305,7 @@ namespace MAME.Core
extra_ram[0x1ff1] = 0xa0;
extra_ram[0x1ff2] &= 0x7f;
main_cpu_bank_address = address + 0x100000;
Memory.mainrom[0x58197] = prt;
Memory.mainrom_Ptr[0x58197] = prt;
}
}
public static void kof2003p_w(int offset)
@ -317,12 +317,12 @@ namespace MAME.Core
extra_ram[0x1ff1] &= 0xfe;
extra_ram[0x1ff2] &= 0x7f;
main_cpu_bank_address = address + 0x100000;
Memory.mainrom[0x58197] = prt;
Memory.mainrom_Ptr[0x58197] = prt;
}
}
public static byte sbp_protection_r(int offset)
{
byte origdata = Memory.mainrom[offset + 0x200];
byte origdata = Memory.mainrom_Ptr[offset + 0x200];
byte data = (byte)BITSWAP8(origdata, 3, 2, 1, 0, 7, 6, 5, 4);
int realoffset = 0x200 + offset;
if (realoffset == 0xd5e || realoffset == 0xd5f)
@ -348,7 +348,7 @@ namespace MAME.Core
{
if (extra_ram[0x1ffc] == 0 && extra_ram[0x1ffd] == 0)
{
Memory.mainrom[0xe0000 + offset] = (byte)data;
Memory.mainrom_Ptr[0xe0000 + offset] = (byte)data;
}
else
{
@ -359,8 +359,8 @@ namespace MAME.Core
{
if (extra_ram[0x1ffc] == 0 && extra_ram[0x1ffd] == 0)
{
Memory.mainrom[0xe0000 + offset] = (byte)(data >> 8);
Memory.mainrom[0xe0000 + offset + 1] = (byte)data;
Memory.mainrom_Ptr[0xe0000 + offset] = (byte)(data >> 8);
Memory.mainrom_Ptr[0xe0000 + offset + 1] = (byte)data;
}
else
{
@ -380,7 +380,13 @@ namespace MAME.Core
}
else if (offset == 0xbfff8 && (extra_ram[0x1ff8] * 0x100 + extra_ram[0x1ff9] != data))
{
Array.Copy(Memory.mainrom, ((data & 1) != 0) ? 0x810000 : 0x710000, Memory.mainrom, 0x10000, 0xcffff);
//Array.Copy(Memory.mainrom, ((data & 1) != 0) ? 0x810000 : 0x710000, Memory.mainrom, 0x10000, 0xcffff);
//TODO 验证拷贝可靠性
byte* source = Memory.mainrom_Ptr + ((data & 1) != 0 ? 0x810000 : 0x710000);
byte* destination = Memory.mainrom_Ptr + 0x10000;
int length = 0xcffff; // 注意:这个长度是否正确取决于你的实际需求
Buffer.MemoryCopy(source, destination, length, length);
}
extra_ram[(offset - 0xbe000) & 0x1fff] = (byte)data;
}
@ -398,7 +404,14 @@ namespace MAME.Core
}
else if (offset == 0xbfff8 && (extra_ram[0x1ff8] * 0x100 + extra_ram[0x1ff9] != data))
{
Array.Copy(Memory.mainrom, ((data & 1) != 0) ? 0x810000 : 0x710000, Memory.mainrom, 0x10000, 0xcffff);
//Array.Copy(Memory.mainrom, ((data & 1) != 0) ? 0x810000 : 0x710000, Memory.mainrom, 0x10000, 0xcffff);
//TODO 验证拷贝可靠性
byte* source = Memory.mainrom_Ptr + ((data & 1) != 0 ? 0x810000 : 0x710000);
byte* destination = Memory.mainrom_Ptr + 0x10000;
int length = 0xcffff; // 注意:这个长度是否正确取决于你的实际需求
Buffer.MemoryCopy(source, destination, length, length);
}
extra_ram[(offset - 0xbe000) & 0x1fff] = (byte)(data >> 8);
extra_ram[((offset - 0xbe000) & 0x1fff) + 1] = (byte)data;

View File

@ -4,7 +4,7 @@ using System.IO;
namespace MAME.Core
{
public partial class Neogeo
public unsafe partial class Neogeo
{
public static void SaveStateBinary(BinaryWriter writer)
{
@ -46,7 +46,7 @@ namespace MAME.Core
writer.Write(auto_animation_disabled);
writer.Write(auto_animation_counter);
writer.Write(auto_animation_frame_counter);
writer.Write(Memory.mainram, 0, 0x10000);
writer.Write(Memory.mainram_Ptr, 0, 0x10000);
MC68000.m1.SaveStateBinary(writer);
writer.Write(Memory.audioram, 0, 0x800);
Z80A.zz1[0].SaveStateBinary(writer);
@ -117,7 +117,7 @@ namespace MAME.Core
auto_animation_disabled = reader.ReadByte();
auto_animation_counter = reader.ReadInt32();
auto_animation_frame_counter = reader.ReadInt32();
Memory.mainram = reader.ReadBytes(0x10000);
Memory.Set_mainram(reader.ReadBytes(0x10000));
MC68000.m1.LoadStateBinary(reader);
Memory.audioram = reader.ReadBytes(0x800);
Z80A.zz1[0].LoadStateBinary(reader);

View File

@ -1,6 +1,6 @@
namespace MAME.Core
{
public partial class PGM
public unsafe partial class PGM
{
public static short short0, short1, short2, short3, short4, short5, short6;
public static short short0_old, short1_old, short2_old, short3_old, short4_old, short5_old, short6_old;
@ -14,9 +14,9 @@
}
else if (address >= 0x100000 && address <= 0x3fffff)
{
if (address < 0x100000 + Memory.mainrom.Length)
if (address < 0x100000 + Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address - 0x100000]);
result = (sbyte)(Memory.mainrom_Ptr[address - 0x100000]);
}
else
{
@ -25,7 +25,7 @@
}
/*else if (address >= 0x800000 && address <= 0x81ffff)
{
result = (sbyte)Memory.mainram[address - 0x800000];
result = (sbyte)Memory.mainram_Ptr[address - 0x800000];
}*/
return result;
}
@ -39,9 +39,9 @@
}
else if (address >= 0x100000 && address <= 0x3fffff)
{
if (address < 0x100000 + Memory.mainrom.Length)
if (address < 0x100000 + Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address - 0x100000]);
result = (sbyte)(Memory.mainrom_Ptr[address - 0x100000]);
}
else
{
@ -50,7 +50,7 @@
}
else if (address >= 0x800000 && address <= 0x81ffff)
{
result = (sbyte)Memory.mainram[address - 0x800000];
result = (sbyte)Memory.mainram_Ptr[address - 0x800000];
}
else if (address >= 0x900000 && address <= 0x903fff)
{
@ -128,9 +128,9 @@
}
else if (address >= 0x100000 && address + 1 <= 0x3fffff)
{
if (address + 1 < 0x100000 + Memory.mainrom.Length)
if (address + 1 < 0x100000 + Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address - 0x100000] * 0x100 + Memory.mainrom[address - 0x100000 + 1]);
result = (short)(Memory.mainrom_Ptr[address - 0x100000] * 0x100 + Memory.mainrom_Ptr[address - 0x100000 + 1]);
}
else
{
@ -139,7 +139,7 @@
}
else if (address >= 0x800000 && address + 1 <= 0x81ffff)
{
result = (short)(Memory.mainram[address - 0x800000] * 0x100 + Memory.mainram[address - 0x800000 + 1]);
result = (short)(Memory.mainram_Ptr[address - 0x800000] * 0x100 + Memory.mainram_Ptr[address - 0x800000 + 1]);
}
return result;
}
@ -153,9 +153,9 @@
}
else if (address >= 0x100000 && address + 1 <= 0x3fffff)
{
if (address + 1 < 0x100000 + Memory.mainrom.Length)
if (address + 1 < 0x100000 + Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address - 0x100000] * 0x100 + Memory.mainrom[address - 0x100000 + 1]);
result = (short)(Memory.mainrom_Ptr[address - 0x100000] * 0x100 + Memory.mainrom_Ptr[address - 0x100000 + 1]);
}
else
{
@ -164,7 +164,7 @@
}
else if (address >= 0x800000 && address + 1 <= 0x81ffff)
{
result = (short)(Memory.mainram[address - 0x800000] * 0x100 + Memory.mainram[address - 0x800000 + 1]);
result = (short)(Memory.mainram_Ptr[address - 0x800000] * 0x100 + Memory.mainram_Ptr[address - 0x800000 + 1]);
}
else if (address >= 0x900000 && address + 1 <= 0x903fff)
{
@ -235,9 +235,9 @@
}
else if (address >= 0x100000 && address + 3 <= 0x3fffff)
{
if (address + 3 < 0x100000 + Memory.mainrom.Length)
if (address + 3 < 0x100000 + Memory.mainrom_Lenght)
{
result = Memory.mainrom[address - 0x100000] * 0x1000000 + Memory.mainrom[address - 0x100000 + 1] * 0x10000 + Memory.mainrom[address - 0x100000 + 2] * 0x100 + Memory.mainrom[address - 0x100000 + 3];
result = Memory.mainrom_Ptr[address - 0x100000] * 0x1000000 + Memory.mainrom_Ptr[address - 0x100000 + 1] * 0x10000 + Memory.mainrom_Ptr[address - 0x100000 + 2] * 0x100 + Memory.mainrom_Ptr[address - 0x100000 + 3];
}
else
{
@ -246,7 +246,7 @@
}
else if (address >= 0x800000 && address + 3 <= 0x81ffff)
{
result = Memory.mainram[address - 0x800000] * 0x1000000 + Memory.mainram[address - 0x800000 + 1] * 0x10000 + Memory.mainram[address - 0x800000 + 2] * 0x100 + Memory.mainram[address - 0x800000 + 3];
result = Memory.mainram_Ptr[address - 0x800000] * 0x1000000 + Memory.mainram_Ptr[address - 0x800000 + 1] * 0x10000 + Memory.mainram_Ptr[address - 0x800000 + 2] * 0x100 + Memory.mainram_Ptr[address - 0x800000 + 3];
}
return result;
}
@ -260,9 +260,9 @@
}
else if (address >= 0x100000 && address + 3 <= 0x3fffff)
{
if (address + 3 < 0x100000 + Memory.mainrom.Length)
if (address + 3 < 0x100000 + Memory.mainrom_Lenght)
{
result = Memory.mainrom[address - 0x100000] * 0x1000000 + Memory.mainrom[address - 0x100000 + 1] * 0x10000 + Memory.mainrom[address - 0x100000 + 2] * 0x100 + Memory.mainrom[address - 0x100000 + 3];
result = Memory.mainrom_Ptr[address - 0x100000] * 0x1000000 + Memory.mainrom_Ptr[address - 0x100000 + 1] * 0x10000 + Memory.mainrom_Ptr[address - 0x100000 + 2] * 0x100 + Memory.mainrom_Ptr[address - 0x100000 + 3];
}
else
{
@ -271,7 +271,7 @@
}
else if (address >= 0x800000 && address + 3 <= 0x81ffff)
{
result = Memory.mainram[address - 0x800000] * 0x1000000 + Memory.mainram[address - 0x800000 + 1] * 0x10000 + Memory.mainram[address - 0x800000 + 2] * 0x100 + Memory.mainram[address - 0x800000 + 3];
result = Memory.mainram_Ptr[address - 0x800000] * 0x1000000 + Memory.mainram_Ptr[address - 0x800000 + 1] * 0x10000 + Memory.mainram_Ptr[address - 0x800000 + 2] * 0x100 + Memory.mainram_Ptr[address - 0x800000 + 3];
}
else if (address >= 0x900000 && address + 3 <= 0x903fff)
{
@ -342,7 +342,7 @@
else if (address >= 0x800000 && address <= 0x81ffff)
{
int offset = address - 0x800000;
Memory.mainram[offset] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)value;
}
else if (address >= 0x900000 && address <= 0x903fff)
{
@ -431,8 +431,8 @@
else if (address >= 0x800000 && address + 1 <= 0x81ffff)
{
int offset = address - 0x800000;
Memory.mainram[offset] = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 1] = (byte)value;
}
else if (address >= 0x900000 && address + 1 <= 0x903fff)
{
@ -507,10 +507,10 @@
else if (address >= 0x800000 && address + 3 <= 0x81ffff)
{
int offset = address - 0x800000;
Memory.mainram[offset] = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 24);
Memory.mainram_Ptr[offset + 1] = (byte)(value >> 16);
Memory.mainram_Ptr[offset + 2] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 3] = (byte)value;
}
else if (address >= 0x900000 && address + 3 <= 0x903fff)
{

View File

@ -41,19 +41,19 @@ namespace MAME.Core
tiles1rom[i3 * 2] = (byte)(tilesrom[i3] & 0x0f);
tiles1rom[i3 * 2 + 1] = (byte)(tilesrom[i3] >> 4);
}
Memory.mainrom = Machine.GetRom("maincpu.rom");
Memory.Set_mainrom(Machine.GetRom("maincpu.rom"));
sprmaskrom = Machine.GetRom("sprmask.rom");
sprcolrom = Machine.GetRom("sprcol.rom");
expand_32x32x5bpp();
expand_colourdata();
Memory.mainram = new byte[0x20000];
Memory.Set_mainram(new byte[0x20000]);
pgm_bg_videoram = new byte[0x4000];
pgm_tx_videoram = new byte[0x2000];
pgm_rowscrollram = new byte[0x800];
Generic.paletteram16 = new ushort[0x900];
pgm_videoregs = new byte[0x10000];
Memory.audioram = new byte[0x10000];
if (Memory.mainrom == null || sprmaskrom == null || pgm_sprite_a_region == null)
if (Memory.mainrom_IsNull || sprmaskrom == null || pgm_sprite_a_region == null)
{
Machine.bRom = false;
}

View File

@ -6,7 +6,7 @@ namespace MAME.Core
{
public partial class PGM
{
public static void SaveStateBinary(BinaryWriter writer)
public unsafe static void SaveStateBinary(BinaryWriter writer)
{
int i, j;
writer.Write(pgm_tx_videoram, 0, 0x2000);
@ -33,7 +33,7 @@ namespace MAME.Core
{
writer.Write(Palette.entry_color[i]);
}
writer.Write(Memory.mainram, 0, 0x20000);
writer.Write(Memory.mainram_Ptr, 0, 0x20000);
MC68000.m1.SaveStateBinary(writer);
writer.Write(Memory.audioram, 0, 0x10000);
Z80A.zz1[0].SaveStateBinary(writer);
@ -85,7 +85,7 @@ namespace MAME.Core
{
Palette.entry_color[i] = reader.ReadUInt32();
}
Memory.mainram = reader.ReadBytes(0x20000);
Memory.Set_mainram(reader.ReadBytes(0x20000));
MC68000.m1.LoadStateBinary(reader);
Memory.audioram = reader.ReadBytes(0x10000);
Z80A.zz1[0].LoadStateBinary(reader);

View File

@ -393,12 +393,12 @@ namespace MAME.Core
pgm_tx_tilemap.tilemap_set_scrollx(0, pgm_videoregs[0x6000] * 0x100 + pgm_videoregs[0x6000 + 1]);
pgm_tx_tilemap.tilemap_draw_primask(new_clip, 0x10, 0);
}
public static void video_eof_pgm()
public unsafe static void video_eof_pgm()
{
int i;
for (i = 0; i < 0x500; i++)
{
pgm_spritebufferram[i] = (ushort)(Memory.mainram[i * 2] * 0x100 + Memory.mainram[i * 2 + 1]);
pgm_spritebufferram[i] = (ushort)(Memory.mainram_Ptr[i * 2] * 0x100 + Memory.mainram_Ptr[i * 2 + 1]);
}
}
}

View File

@ -2,7 +2,7 @@
namespace MAME.Core
{
public partial class SunA8
public unsafe partial class SunA8
{
public static byte byte1, byte2;
public static byte byte1_old, byte2_old;
@ -16,7 +16,7 @@ namespace MAME.Core
else if (address >= 0x8000 && address <= 0xbfff)
{
int offset = address - 0x8000;
result = Memory.mainrom[basebankmain + offset];
result = Memory.mainrom_Ptr[basebankmain + offset];
}
else
{
@ -29,12 +29,12 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x7fff)
{
result = Memory.mainrom[address];
result = Memory.mainrom_Ptr[address];
}
else if (address >= 0x8000 && address <= 0xbfff)
{
int offset = address - 0x8000;
result = Memory.mainrom[basebankmain + offset];
result = Memory.mainrom_Ptr[basebankmain + offset];
}
else if (address == 0xc000)
{
@ -64,7 +64,7 @@ namespace MAME.Core
else if (address >= 0xc800 && address <= 0xdfff)
{
int offset = address - 0xc800;
result = Memory.mainram[offset];
result = Memory.mainram_Ptr[offset];
}
else if (address >= 0xe000 && address <= 0xffff)
{
@ -77,12 +77,12 @@ namespace MAME.Core
{
if (address <= 0x7fff)
{
Memory.mainrom[address] = value;
Memory.mainrom_Ptr[address] = value;
}
else if (address >= 0x8000 && address <= 0xbfff)
{
int offset = address - 0x8000;
Memory.mainrom[basebankmain + offset] = value;
Memory.mainrom_Ptr[basebankmain + offset] = value;
}
else if (address == 0xc200)
{
@ -116,7 +116,7 @@ namespace MAME.Core
else if (address >= 0xc800 && address <= 0xdfff)
{
int offset = address - 0xc800;
Memory.mainram[offset] = value;
Memory.mainram_Ptr[offset] = value;
}
else if (address >= 0xe000 && address <= 0xffff)
{
@ -141,7 +141,7 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x7fff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
return result;
}
@ -150,7 +150,7 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x7fff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0xc000 && address <= 0xc7ff)
{
@ -171,7 +171,7 @@ namespace MAME.Core
{
if (address <= 0x7fff)
{
Memory.audiorom[address] = value;
Memory.audiorom_Ptr[address] = value;
}
else if (address >= 0xa000 && address <= 0xa001)
{

View File

@ -25,8 +25,8 @@ namespace MAME.Core
case "starfigh":
Generic.spriteram = new byte[0x4000];
mainromop = Machine.GetRom("maincpuop.rom");
Memory.mainrom = Machine.GetRom("maincpu.rom");
Memory.audiorom = Machine.GetRom("audiocpu.rom");
Memory.Set_mainrom(Machine.GetRom("maincpu.rom"));
Memory.Set_audiorom(Machine.GetRom("audiocpu.rom"));
samplesrom = Machine.GetRom("samples.rom");
gfx12rom = Machine.GetRom("gfx1.rom");
n = gfx12rom.Length;
@ -36,10 +36,10 @@ namespace MAME.Core
gfx1rom[i * 2] = (byte)(gfx12rom[i] >> 4);
gfx1rom[i * 2 + 1] = (byte)(gfx12rom[i] & 0x0f);
}
Memory.mainram = new byte[0x1800];
Memory.Set_mainram(new byte[0x1800]);
Memory.audioram = new byte[0x800];
Generic.paletteram = new byte[0x200];
if (mainromop == null || Memory.mainrom == null || Memory.audiorom == null || samplesrom == null || gfx12rom == null)
if (mainromop == null || Memory.mainrom_IsNull || Memory.audiorom_IsNull || samplesrom == null || gfx12rom == null)
{
Machine.bRom = false;
}

View File

@ -2,7 +2,7 @@
namespace MAME.Core
{
public partial class Taito
public unsafe partial class Taito
{
public static sbyte sbyte0, sbyte1, sbyte2, sbyte3, sbyte4, sbyte5;
public static sbyte sbyte0_old, sbyte1_old, sbyte2_old, sbyte3_old, sbyte4_old, sbyte5_old;
@ -12,12 +12,12 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x7fff)
{
result = Memory.mainrom[address];
result = Memory.mainrom_Ptr[address];
}
else if (address >= 0x8000 && address <= 0xbfff)
{
int offset = address - 0x8000;
result = Memory.mainrom[basebankmain + offset];
result = Memory.mainrom_Ptr[basebankmain + offset];
}
else if (address >= 0xc000 && address <= 0xdcff)
{
@ -32,7 +32,7 @@ namespace MAME.Core
else if (address >= 0xe000 && address <= 0xf7ff)
{
int offset = address - 0xe000;
result = Memory.mainram[offset];
result = Memory.mainram_Ptr[offset];
}
else if (address == 0xfa03)
{
@ -73,12 +73,12 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x7fff)
{
result = Memory.mainrom[address];
result = Memory.mainrom_Ptr[address];
}
else if (address >= 0x8000 && address <= 0xbfff)
{
int offset = address - 0x8000;
result = Memory.mainrom[basebankmain + offset];
result = Memory.mainrom_Ptr[basebankmain + offset];
}
else if (address >= 0xc000 && address <= 0xdcff)
{
@ -93,7 +93,7 @@ namespace MAME.Core
else if (address >= 0xe000 && address <= 0xf7ff)
{
int offset = address - 0xe000;
result = Memory.mainram[offset];
result = Memory.mainram_Ptr[offset];
}
else if (address == 0xfa03)
{
@ -134,12 +134,12 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x7fff)
{
result = Memory.mainrom[address];
result = Memory.mainrom_Ptr[address];
}
else if (address >= 0x8000 && address <= 0xbfff)
{
int offset = address - 0x8000;
result = Memory.mainrom[basebankmain + offset];
result = Memory.mainrom_Ptr[basebankmain + offset];
}
else if (address >= 0xc000 && address <= 0xdcff)
{
@ -154,7 +154,7 @@ namespace MAME.Core
else if (address >= 0xe000 && address <= 0xf7ff)
{
int offset = address - 0xe000;
result = Memory.mainram[offset];
result = Memory.mainram_Ptr[offset];
}
else if (address >= 0xfc00 && address <= 0xfcff)
{
@ -202,12 +202,12 @@ namespace MAME.Core
{
if (address >= 0x0000 && address <= 0x7fff)
{
Memory.audiorom[address] = value;
Memory.audiorom_Ptr[address] = value;
}
else if (address >= 0x8000 && address <= 0xbfff)
{
int offset = address - 0x8000;
Memory.mainrom[basebankmain + offset] = value;
Memory.mainrom_Ptr[basebankmain + offset] = value;
}
else if (address >= 0xc000 && address <= 0xdcff)
{
@ -222,7 +222,7 @@ namespace MAME.Core
else if (address >= 0xe000 && address <= 0xf7ff)
{
int offset = address - 0xe000;
Memory.mainram[offset] = value;
Memory.mainram_Ptr[offset] = value;
}
else if (address >= 0xf800 && address <= 0xf9ff)
{
@ -258,12 +258,12 @@ namespace MAME.Core
{
if (address >= 0x0000 && address <= 0x7fff)
{
Memory.audiorom[address] = value;
Memory.audiorom_Ptr[address] = value;
}
else if (address >= 0x8000 && address <= 0xbfff)
{
int offset = address - 0x8000;
Memory.mainrom[basebankmain + offset] = value;
Memory.mainrom_Ptr[basebankmain + offset] = value;
}
else if (address >= 0xc000 && address <= 0xdcff)
{
@ -278,7 +278,7 @@ namespace MAME.Core
else if (address >= 0xe000 && address <= 0xf7ff)
{
int offset = address - 0xe000;
Memory.mainram[offset] = value;
Memory.mainram_Ptr[offset] = value;
}
else if (address >= 0xf800 && address <= 0xf9ff)
{
@ -340,7 +340,7 @@ namespace MAME.Core
else if (address >= 0x8000 && address <= 0x97ff)
{
int offset = address - 0x8000;
result = Memory.mainram[offset];
result = Memory.mainram_Ptr[offset];
}
return result;
}
@ -354,7 +354,7 @@ namespace MAME.Core
else if (address >= 0x8000 && address <= 0x97ff)
{
int offset = address - 0x8000;
result = Memory.mainram[offset];
result = Memory.mainram_Ptr[offset];
}
return result;
}
@ -367,7 +367,7 @@ namespace MAME.Core
else if (address >= 0x8000 && address <= 0x97ff)
{
int offset = address - 0x8000;
Memory.mainram[offset] = value;
Memory.mainram_Ptr[offset] = value;
}
}
public static byte Z2ReadMemory_tokio(ushort address)
@ -375,7 +375,7 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x7fff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0x8000 && address <= 0x8fff)
{
@ -400,7 +400,7 @@ namespace MAME.Core
}
else if (address >= 0xe000 && address <= 0xffff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
return result;
}
@ -408,7 +408,7 @@ namespace MAME.Core
{
if (address <= 0x7fff)
{
Memory.audiorom[address] = value;
Memory.audiorom_Ptr[address] = value;
}
else if (address >= 0x8000 && address <= 0x8fff)
{
@ -437,7 +437,7 @@ namespace MAME.Core
}
else if (address >= 0xe000 && address <= 0xffff)
{
Memory.audiorom[address] = value;
Memory.audiorom_Ptr[address] = value;
}
}
public static byte Z0ReadOp_bublbobl(ushort address)
@ -445,12 +445,12 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x7fff)
{
result = Memory.mainrom[address];
result = Memory.mainrom_Ptr[address];
}
else if (address >= 0x8000 && address <= 0xbfff)
{
int offset = address - 0x8000;
result = Memory.mainrom[basebankmain + offset];
result = Memory.mainrom_Ptr[basebankmain + offset];
}
else
{
@ -463,12 +463,12 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x7fff)
{
result = Memory.mainrom[address];
result = Memory.mainrom_Ptr[address];
}
else if (address >= 0x8000 && address <= 0xbfff)
{
int offset = address - 0x8000;
result = Memory.mainrom[basebankmain + offset];
result = Memory.mainrom_Ptr[basebankmain + offset];
}
else if (address >= 0xc000 && address <= 0xdcff)
{
@ -483,7 +483,7 @@ namespace MAME.Core
else if (address >= 0xe000 && address <= 0xf7ff)
{
int offset = address - 0xe000;
result = Memory.mainram[offset];
result = Memory.mainram_Ptr[offset];
}
else if (address >= 0xfc00 && address <= 0xffff)
{
@ -500,12 +500,12 @@ namespace MAME.Core
{
if (address >= 0x0000 && address <= 0x7fff)
{
Memory.audiorom[address] = value;
Memory.audiorom_Ptr[address] = value;
}
else if (address >= 0x8000 && address <= 0xbfff)
{
int offset = address - 0x8000;
Memory.mainrom[basebankmain + offset] = value;
Memory.mainrom_Ptr[basebankmain + offset] = value;
}
else if (address >= 0xc000 && address <= 0xdcff)
{
@ -520,7 +520,7 @@ namespace MAME.Core
else if (address >= 0xe000 && address <= 0xf7ff)
{
int offset = address - 0xe000;
Memory.mainram[offset] = value;
Memory.mainram_Ptr[offset] = value;
}
else if (address >= 0xf800 && address <= 0xf9ff)
{
@ -567,7 +567,7 @@ namespace MAME.Core
else if (address >= 0xe000 && address <= 0xf7ff)
{
int offset = address - 0xe000;
result = Memory.mainram[offset];
result = Memory.mainram_Ptr[offset];
}
return result;
}
@ -581,7 +581,7 @@ namespace MAME.Core
else if (address >= 0xe000 && address <= 0xf7ff)
{
int offset = address - 0xe000;
result = Memory.mainram[offset];
result = Memory.mainram_Ptr[offset];
}
return result;
}
@ -594,7 +594,7 @@ namespace MAME.Core
else if (address >= 0xe000 && address <= 0xf7ff)
{
int offset = address - 0xe000;
Memory.mainram[offset] = value;
Memory.mainram_Ptr[offset] = value;
}
}
public static byte Z1ReadHardware(ushort address)
@ -617,7 +617,7 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x7fff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0x8000 && address <= 0x8fff)
{
@ -631,7 +631,7 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x7fff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0x8000 && address <= 0x8fff)
{
@ -656,7 +656,7 @@ namespace MAME.Core
}
else if (address >= 0xe000 && address <= 0xffff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
return result;
}
@ -664,7 +664,7 @@ namespace MAME.Core
{
if (address <= 0x7fff)
{
Memory.audiorom[address] = value;
Memory.audiorom_Ptr[address] = value;
}
else if (address >= 0x8000 && address <= 0x8fff)
{
@ -697,7 +697,7 @@ namespace MAME.Core
}
else if (address >= 0xe000 && address <= 0xffff)
{
Memory.audiorom[address] = value;
Memory.audiorom_Ptr[address] = value;
}
}
public static byte Z2ReadHardware(ushort address)
@ -896,9 +896,9 @@ namespace MAME.Core
sbyte result = 0;
if (address <= 0x03ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -914,9 +914,9 @@ namespace MAME.Core
int add1;
if (address <= 0x03ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -953,7 +953,7 @@ namespace MAME.Core
else if (address >= 0x100000 && address <= 0x107fff)
{
int offset = address - 0x100000;
result = (sbyte)Memory.mainram[offset];
result = (sbyte)Memory.mainram_Ptr[offset];
}
else if (address >= 0x200000 && address <= 0x200fff)
{
@ -1038,9 +1038,9 @@ namespace MAME.Core
short result = 0;
if (address <= 0x03ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -1056,9 +1056,9 @@ namespace MAME.Core
int add1;
if (address <= 0x03ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -1081,7 +1081,7 @@ namespace MAME.Core
else if (address >= 0x100000 && address + 1 <= 0x107fff)
{
int offset = address - 0x100000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (short)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
else if (address >= 0x200000 && address + 1 <= 0x200fff)
{
@ -1124,9 +1124,9 @@ namespace MAME.Core
int result = 0;
if (address <= 0x03ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -1142,10 +1142,10 @@ namespace MAME.Core
int add1;
if (address <= 0x03ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
int offset = (address - 0x000000) / 2;
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -1164,7 +1164,7 @@ namespace MAME.Core
else if (address >= 0x100000 && address + 3 <= 0x107fff)
{
int offset = address - 0x100000;
result = (int)(Memory.mainram[offset] * 0x1000000 + Memory.mainram[offset + 1] * 0x10000 + Memory.mainram[offset + 2] * 0x100 + Memory.mainram[offset + 3]);
result = (int)(Memory.mainram_Ptr[offset] * 0x1000000 + Memory.mainram_Ptr[offset + 1] * 0x10000 + Memory.mainram_Ptr[offset + 2] * 0x100 + Memory.mainram_Ptr[offset + 3]);
}
else if (address >= 0x200000 && address + 3 <= 0x200fff)
{
@ -1198,9 +1198,9 @@ namespace MAME.Core
address &= 0xffffff;
if (address >= 0x000000 && address <= 0x03ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
Memory.mainrom[address] = (byte)value;
Memory.mainrom_Ptr[address] = (byte)value;
}
}
else if (address >= 0x0ff000 && address <= 0x0ff7ff)
@ -1229,7 +1229,7 @@ namespace MAME.Core
else if (address >= 0x100000 && address <= 0x107fff)
{
int offset = address - 0x100000;
Memory.mainram[offset] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)value;
}
else if (address >= 0x200000 && address <= 0x200fff)
{
@ -1340,10 +1340,10 @@ namespace MAME.Core
address &= 0xffffff;
if (address >= 0x000000 && address + 1 <= 0x03ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
Memory.mainrom[address] = (byte)(value >> 8);
Memory.mainrom[address + 1] = (byte)value;
Memory.mainrom_Ptr[address] = (byte)(value >> 8);
Memory.mainrom_Ptr[address + 1] = (byte)value;
}
}
else if (address >= 0x0ff000 && address + 1 <= 0x0ff7ff)
@ -1362,8 +1362,8 @@ namespace MAME.Core
else if (address >= 0x100000 && address + 1 <= 0x107fff)
{
int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 1] = (byte)value;
}
else if (address >= 0x200000 && address + 1 <= 0x200fff)
{
@ -1424,12 +1424,12 @@ namespace MAME.Core
address &= 0xffffff;
if (address >= 0x000000 && address + 3 <= 0x03ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
Memory.mainrom[address] = (byte)(value >> 24);
Memory.mainrom[address + 1] = (byte)(value >> 16);
Memory.mainrom[address + 2] = (byte)(value >> 8);
Memory.mainrom[address + 3] = (byte)value;
Memory.mainrom_Ptr[address] = (byte)(value >> 24);
Memory.mainrom_Ptr[address + 1] = (byte)(value >> 16);
Memory.mainrom_Ptr[address + 2] = (byte)(value >> 8);
Memory.mainrom_Ptr[address + 3] = (byte)value;
}
}
else if (address >= 0x0ff000 && address + 3 <= 0x0ff7ff)
@ -1441,10 +1441,10 @@ namespace MAME.Core
else if (address >= 0x100000 && address + 3 <= 0x107fff)
{
int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 24);
Memory.mainram_Ptr[offset + 1] = (byte)(value >> 16);
Memory.mainram_Ptr[offset + 2] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 3] = (byte)value;
}
else if (address >= 0x200000 && address + 3 <= 0x200fff)
{
@ -1483,9 +1483,9 @@ namespace MAME.Core
sbyte result = 0;
if (address <= 0x03ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -1519,7 +1519,7 @@ namespace MAME.Core
else if (address >= 0x100000 && address <= 0x107fff)
{
int offset = address - 0x100000;
result = (sbyte)Memory.mainram[offset];
result = (sbyte)Memory.mainram_Ptr[offset];
}
else if (address >= 0x200000 && address <= 0x200fff)
{
@ -1604,9 +1604,9 @@ namespace MAME.Core
short result = 0;
if (address <= 0x03ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -1621,9 +1621,9 @@ namespace MAME.Core
short result = 0;
if (address <= 0x03ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -1643,7 +1643,7 @@ namespace MAME.Core
else if (address >= 0x100000 && address + 1 <= 0x107fff)
{
int offset = address - 0x100000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (short)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
else if (address >= 0x200000 && address + 1 <= 0x200fff)
{
@ -1686,9 +1686,9 @@ namespace MAME.Core
int result = 0;
if (address <= 0x03ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -1703,10 +1703,10 @@ namespace MAME.Core
int result = 0;
if (address <= 0x03ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
int offset = (address - 0x000000) / 2;
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -1726,7 +1726,7 @@ namespace MAME.Core
else if (address >= 0x100000 && address + 3 <= 0x107fff)
{
int offset = address - 0x100000;
result = (int)(Memory.mainram[offset] * 0x1000000 + Memory.mainram[offset + 1] * 0x10000 + Memory.mainram[offset + 2] * 0x100 + Memory.mainram[offset + 3]);
result = (int)(Memory.mainram_Ptr[offset] * 0x1000000 + Memory.mainram_Ptr[offset + 1] * 0x10000 + Memory.mainram_Ptr[offset + 2] * 0x100 + Memory.mainram_Ptr[offset + 3]);
}
else if (address >= 0x200000 && address + 3 <= 0x200fff)
{
@ -1760,9 +1760,9 @@ namespace MAME.Core
address &= 0xffffff;
if (address >= 0x000000 && address <= 0x03ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
Memory.mainrom[address] = (byte)value;
Memory.mainrom_Ptr[address] = (byte)value;
}
}
else if (address >= 0x0ff000 && address <= 0x0fffff)
@ -1780,7 +1780,7 @@ namespace MAME.Core
else if (address >= 0x100000 && address <= 0x107fff)
{
int offset = address - 0x100000;
Memory.mainram[offset] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)value;
}
else if (address >= 0x200000 && address <= 0x200fff)
{
@ -1891,10 +1891,10 @@ namespace MAME.Core
address &= 0xffffff;
if (address >= 0x000000 && address + 1 <= 0x03ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
Memory.mainrom[address] = (byte)(value >> 8);
Memory.mainrom[address + 1] = (byte)value;
Memory.mainrom_Ptr[address] = (byte)(value >> 8);
Memory.mainrom_Ptr[address + 1] = (byte)value;
}
}
else if (address >= 0x0ff000 && address + 1 <= 0x0fffff)
@ -1905,8 +1905,8 @@ namespace MAME.Core
else if (address >= 0x100000 && address + 1 <= 0x107fff)
{
int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 1] = (byte)value;
}
else if (address >= 0x200000 && address + 1 <= 0x200fff)
{
@ -1967,12 +1967,12 @@ namespace MAME.Core
address &= 0xffffff;
if (address >= 0x000000 && address + 3 <= 0x03ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
Memory.mainrom[address] = (byte)(value >> 24);
Memory.mainrom[address + 1] = (byte)(value >> 16);
Memory.mainrom[address + 2] = (byte)(value >> 8);
Memory.mainrom[address + 3] = (byte)value;
Memory.mainrom_Ptr[address] = (byte)(value >> 24);
Memory.mainrom_Ptr[address + 1] = (byte)(value >> 16);
Memory.mainrom_Ptr[address + 2] = (byte)(value >> 8);
Memory.mainrom_Ptr[address + 3] = (byte)value;
}
}
else if (address >= 0x0ff000 && address + 3 <= 0x0fffff)
@ -1984,10 +1984,10 @@ namespace MAME.Core
else if (address >= 0x100000 && address + 3 <= 0x107fff)
{
int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 24);
Memory.mainram_Ptr[offset + 1] = (byte)(value >> 16);
Memory.mainram_Ptr[offset + 2] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 3] = (byte)value;
}
else if (address >= 0x200000 && address + 3 <= 0x200fff)
{
@ -2026,9 +2026,9 @@ namespace MAME.Core
sbyte result = 0;
if (address <= 0x03ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else
{
@ -2038,7 +2038,7 @@ namespace MAME.Core
else if (address >= 0x100000 && address <= 0x107fff)
{
int offset = address - 0x100000;
result = (sbyte)Memory.mainram[offset];
result = (sbyte)Memory.mainram_Ptr[offset];
}
else if (address >= 0x200000 && address <= 0x200fff)
{
@ -2123,9 +2123,9 @@ namespace MAME.Core
short result = 0;
if (address <= 0x03ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -2135,7 +2135,7 @@ namespace MAME.Core
else if (address >= 0x100000 && address + 1 <= 0x107fff)
{
int offset = address - 0x100000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]);
result = (short)(Memory.mainram_Ptr[offset] * 0x100 + Memory.mainram_Ptr[offset + 1]);
}
else if (address >= 0x200000 && address + 1 <= 0x200fff)
{
@ -2178,10 +2178,10 @@ namespace MAME.Core
int result = 0;
if (address <= 0x03ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
int offset = (address - 0x000000) / 2;
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -2191,7 +2191,7 @@ namespace MAME.Core
else if (address >= 0x100000 && address + 3 <= 0x107fff)
{
int offset = address - 0x100000;
result = (int)(Memory.mainram[offset] * 0x1000000 + Memory.mainram[offset + 1] * 0x10000 + Memory.mainram[offset + 2] * 0x100 + Memory.mainram[offset + 3]);
result = (int)(Memory.mainram_Ptr[offset] * 0x1000000 + Memory.mainram_Ptr[offset + 1] * 0x10000 + Memory.mainram_Ptr[offset + 2] * 0x100 + Memory.mainram_Ptr[offset + 3]);
}
else if (address >= 0x200000 && address + 3 <= 0x200fff)
{
@ -2225,15 +2225,15 @@ namespace MAME.Core
address &= 0xffffff;
if (address >= 0x000000 && address <= 0x03ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
Memory.mainrom[address] = (byte)value;
Memory.mainrom_Ptr[address] = (byte)value;
}
}
else if (address >= 0x100000 && address <= 0x107fff)
{
int offset = address - 0x100000;
Memory.mainram[offset] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)value;
}
else if (address >= 0x200000 && address <= 0x200fff)
{
@ -2344,17 +2344,17 @@ namespace MAME.Core
address &= 0xffffff;
if (address >= 0x000000 && address + 1 <= 0x03ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
Memory.mainrom[address] = (byte)(value >> 8);
Memory.mainrom[address + 1] = (byte)value;
Memory.mainrom_Ptr[address] = (byte)(value >> 8);
Memory.mainrom_Ptr[address + 1] = (byte)value;
}
}
else if (address >= 0x100000 && address + 1 <= 0x107fff)
{
int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 1] = (byte)value;
}
else if (address >= 0x200000 && address + 1 <= 0x200fff)
{
@ -2415,21 +2415,21 @@ namespace MAME.Core
address &= 0xffffff;
if (address >= 0x000000 && address + 3 <= 0x03ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
Memory.mainrom[address] = (byte)(value >> 24);
Memory.mainrom[address + 1] = (byte)(value >> 16);
Memory.mainrom[address + 2] = (byte)(value >> 8);
Memory.mainrom[address + 3] = (byte)value;
Memory.mainrom_Ptr[address] = (byte)(value >> 24);
Memory.mainrom_Ptr[address + 1] = (byte)(value >> 16);
Memory.mainrom_Ptr[address + 2] = (byte)(value >> 8);
Memory.mainrom_Ptr[address + 3] = (byte)value;
}
}
else if (address >= 0x100000 && address + 3 <= 0x107fff)
{
int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 24);
Memory.mainram_Ptr[offset + 1] = (byte)(value >> 16);
Memory.mainram_Ptr[offset + 2] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 3] = (byte)value;
}
else if (address >= 0x200000 && address + 3 <= 0x200fff)
{
@ -2467,12 +2467,12 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x3fff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0x4000 && address <= 0x7fff)
{
int offset = address - 0x4000;
result = Memory.audiorom[basebanksnd + offset];
result = Memory.audiorom_Ptr[basebanksnd + offset];
}
return result;
}
@ -2481,12 +2481,12 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x3fff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0x4000 && address <= 0x7fff)
{
int offset = address - 0x4000;
result = Memory.audiorom[basebanksnd + offset];
result = Memory.audiorom_Ptr[basebanksnd + offset];
}
else if (address >= 0x8000 && address <= 0x8fff)
{
@ -2512,12 +2512,12 @@ namespace MAME.Core
{
if (address <= 0x3fff)
{
Memory.audiorom[address] = value;
Memory.audiorom_Ptr[address] = value;
}
else if (address >= 0x4000 && address <= 0x7fff)
{
int offset = address - 0x4000;
Memory.audiorom[basebanksnd + offset] = value;
Memory.audiorom_Ptr[basebanksnd + offset] = value;
}
else if (address >= 0x8000 && address <= 0x8fff)
{

View File

@ -2,7 +2,7 @@
namespace MAME.Core
{
public partial class Taito
public unsafe partial class Taito
{
public static int opwolf_region;
public static byte[] cchip_ram, adpcmrom;
@ -700,8 +700,8 @@ namespace MAME.Core
{
if (coin_table[slot] != 0)
{
cchip_coins_for_credit[slot] = (byte)((Memory.mainrom[(coin_table[slot] + coin_offset[slot] + 0) / 2 * 2] * 0x100 + Memory.mainrom[(coin_table[slot] + coin_offset[slot] + 0) / 2 * 2 + 1]) & 0xff);
cchip_credits_for_coin[slot] = (byte)((Memory.mainrom[(coin_table[slot] + coin_offset[slot] + 2) / 2 * 2] * 0x100 + Memory.mainrom[(coin_table[slot] + coin_offset[slot] + 2) / 2 * 2 + 1]) & 0xff);
cchip_coins_for_credit[slot] = (byte)((Memory.mainrom_Ptr[(coin_table[slot] + coin_offset[slot] + 0) / 2 * 2] * 0x100 + Memory.mainrom_Ptr[(coin_table[slot] + coin_offset[slot] + 0) / 2 * 2 + 1]) & 0xff);
cchip_credits_for_coin[slot] = (byte)((Memory.mainrom_Ptr[(coin_table[slot] + coin_offset[slot] + 2) / 2 * 2] * 0x100 + Memory.mainrom_Ptr[(coin_table[slot] + coin_offset[slot] + 2) / 2 * 2 + 1]) & 0xff);
}
}
}
@ -741,8 +741,8 @@ namespace MAME.Core
{
if (coin_table[slot] != 0)
{
cchip_coins_for_credit[slot] = (byte)((Memory.mainrom[(coin_table[slot] + coin_offset[slot] + 0) / 2 * 2] * 0x100 + Memory.mainrom[(coin_table[slot] + coin_offset[slot] + 0) / 2 * 2 + 1]) & 0xff);
cchip_credits_for_coin[slot] = (byte)((Memory.mainrom[(coin_table[slot] + coin_offset[slot] + 2) / 2 * 2] * 0x100 + Memory.mainrom[(coin_table[slot] + coin_offset[slot] + 2) / 2 * 2 + 1]) & 0xff);
cchip_coins_for_credit[slot] = (byte)((Memory.mainrom_Ptr[(coin_table[slot] + coin_offset[slot] + 0) / 2 * 2] * 0x100 + Memory.mainrom_Ptr[(coin_table[slot] + coin_offset[slot] + 0) / 2 * 2 + 1]) & 0xff);
cchip_credits_for_coin[slot] = (byte)((Memory.mainrom_Ptr[(coin_table[slot] + coin_offset[slot] + 2) / 2 * 2] * 0x100 + Memory.mainrom_Ptr[(coin_table[slot] + coin_offset[slot] + 2) / 2 * 2 + 1]) & 0xff);
}
}
}

View File

@ -6,7 +6,7 @@ using System.IO;
namespace MAME.Core
{
public partial class Taito
public unsafe partial class Taito
{
public static void SaveStateBinary_tokio(BinaryWriter writer)
{
@ -25,7 +25,7 @@ namespace MAME.Core
{
writer.Write(Palette.entry_color[i]);
}
writer.Write(Memory.mainram, 0, 0x1800);
writer.Write(Memory.mainram_Ptr, 0, 0x1800);
writer.Write(Memory.audioram, 0, 0x1000);
for (i = 0; i < 3; i++)
{
@ -74,7 +74,7 @@ namespace MAME.Core
{
Palette.entry_color[i] = reader.ReadUInt32();
}
Memory.mainram = reader.ReadBytes(0x1800);
Memory.Set_mainram(reader.ReadBytes(0x1800));
Memory.audioram = reader.ReadBytes(0x1000);
for (i = 0; i < 3; i++)
{
@ -133,7 +133,7 @@ namespace MAME.Core
{
writer.Write(Palette.entry_color[i]);
}
writer.Write(Memory.mainram, 0, 0x1800);
writer.Write(Memory.mainram_Ptr, 0, 0x1800);
writer.Write(Memory.audioram, 0, 0x1000);
writer.Write(mcuram, 0, 0xc0);
for (i = 0; i < 3; i++)
@ -197,7 +197,7 @@ namespace MAME.Core
{
Palette.entry_color[i] = reader.ReadUInt32();
}
Memory.mainram = reader.ReadBytes(0x1800);
Memory.Set_mainram(reader.ReadBytes(0x1800));
Memory.audioram = reader.ReadBytes(0x1000);
mcuram = reader.ReadBytes(0xc0);
for (i = 0; i < 3; i++)
@ -250,7 +250,7 @@ namespace MAME.Core
{
writer.Write(Palette.entry_color[i]);
}
writer.Write(Memory.mainram, 0, 0x1800);
writer.Write(Memory.mainram_Ptr, 0, 0x1800);
writer.Write(mainram2, 0, 0x100);
writer.Write(mainram3, 0, 0x100);
writer.Write(Memory.audioram, 0, 0x1000);
@ -304,7 +304,7 @@ namespace MAME.Core
{
Palette.entry_color[i] = reader.ReadUInt32();
}
Memory.mainram = reader.ReadBytes(0x1800);
Memory.Set_mainram(reader.ReadBytes(0x1800));
mainram2 = reader.ReadBytes(0x100);
mainram3 = reader.ReadBytes(0x100);
Memory.audioram = reader.ReadBytes(0x1000);
@ -362,7 +362,7 @@ namespace MAME.Core
{
writer.Write(Palette.entry_color[i]);
}
writer.Write(Memory.mainram, 0, 0x1800);
writer.Write(Memory.mainram_Ptr, 0, 0x1800);
writer.Write(Memory.audioram, 0, 0x1000);
writer.Write(mcuram, 0, 0xc0);
for (i = 0; i < 3; i++)
@ -420,7 +420,7 @@ namespace MAME.Core
{
Palette.entry_color[i] = reader.ReadUInt32();
}
Memory.mainram = reader.ReadBytes(0x1800);
Memory.Set_mainram(reader.ReadBytes(0x1800));
Memory.audioram = reader.ReadBytes(0x1000);
mcuram = reader.ReadBytes(0xc0);
for (i = 0; i < 3; i++)
@ -565,7 +565,7 @@ namespace MAME.Core
{
writer.Write(Palette.entry_color[i]);
}
writer.Write(Memory.mainram, 0, 0x8000);
writer.Write(Memory.mainram_Ptr, 0, 0x8000);
writer.Write(mainram2, 0, 0x10000);
MC68000.m1.SaveStateBinary(writer);
writer.Write(Memory.audioram, 0, 0x1000);
@ -702,7 +702,7 @@ namespace MAME.Core
{
Palette.entry_color[i] = reader.ReadUInt32();
}
Memory.mainram = reader.ReadBytes(0x8000);
Memory.Set_mainram(reader.ReadBytes(0x8000));
mainram2 = reader.ReadBytes(0x10000);
MC68000.m1.LoadStateBinary(reader);
Memory.audioram = reader.ReadBytes(0x1000);

View File

@ -18,13 +18,14 @@ namespace MAME.Core
case "tokiob":
videoram = new byte[0x1d00];
bublbobl_objectram = new byte[0x300];
Memory.mainram = new byte[0x1800];
Memory.Set_mainram(new byte[0x1800]);
Memory.audioram = new byte[0x1000];
Generic.paletteram = new byte[0x200];
//bublbobl_mcu_sharedram = new byte[0x400];
Memory.mainrom = Machine.GetRom("maincpu.rom");
Memory.Set_mainrom(Machine.GetRom("maincpu.rom"));
slaverom = Machine.GetRom("slave.rom");
Memory.audiorom = Machine.GetRom("audiocpu.rom");
Memory.Set_audiorom(Machine.GetRom("audiocpu.rom"));
//Memory.Set_audiorom(Machine.GetRom("audiocpu.rom"));
gfx12rom = Machine.GetRom("gfx1.rom");
n = gfx12rom.Length;
gfx1rom = new byte[n * 2];
@ -35,7 +36,7 @@ namespace MAME.Core
}
prom = Machine.GetRom("proms.rom");
bublbobl_video_enable = 1;
if (Memory.mainrom == null || slaverom == null || Memory.audiorom == null || gfx1rom == null || prom == null)
if (Memory.mainrom_IsNull || slaverom == null || Memory.audiorom_IsNull || gfx1rom == null || prom == null)
{
Machine.bRom = false;
}
@ -55,14 +56,15 @@ namespace MAME.Core
case "bublcave10":
videoram = new byte[0x1d00];
bublbobl_objectram = new byte[0x300];
Memory.mainram = new byte[0x1800];
Memory.Set_mainram(new byte[0x1800]);
Memory.audioram = new byte[0x1000];
mcuram = new byte[0xc0];
Generic.paletteram = new byte[0x200];
bublbobl_mcu_sharedram = new byte[0x400];
Memory.mainrom = Machine.GetRom("maincpu.rom");
Memory.Set_mainrom(Machine.GetRom("maincpu.rom"));
slaverom = Machine.GetRom("slave.rom");
Memory.audiorom = Machine.GetRom("audiocpu.rom");
//Memory.Set_audiorom(Machine.GetRom("audiocpu.rom"));
Memory.Set_audiorom(Machine.GetRom("audiocpu.rom"));
mcurom = Machine.GetRom("mcu.rom");
gfx12rom = Machine.GetRom("gfx1.rom");
n = gfx12rom.Length;
@ -74,7 +76,7 @@ namespace MAME.Core
}
prom = Machine.GetRom("proms.rom");
bublbobl_video_enable = 0;
if (Memory.mainrom == null || slaverom == null || Memory.audiorom == null || mcurom == null || gfx1rom == null || prom == null)
if (Memory.mainrom_IsNull || slaverom == null || Memory.audiorom_IsNull || mcurom == null || gfx1rom == null || prom == null)
{
Machine.bRom = false;
}
@ -96,12 +98,13 @@ namespace MAME.Core
mainram3 = new byte[0x100];
videoram = new byte[0x1d00];
bublbobl_objectram = new byte[0x300];
Memory.mainram = new byte[0x1800];
Memory.Set_mainram(new byte[0x1800]);
Memory.audioram = new byte[0x1000];
Generic.paletteram = new byte[0x200];
Memory.mainrom = Machine.GetRom("maincpu.rom");
Memory.Set_mainrom(Machine.GetRom("maincpu.rom"));
slaverom = Machine.GetRom("slave.rom");
Memory.audiorom = Machine.GetRom("audiocpu.rom");
//Memory.Set_audiorom(Machine.GetRom("audiocpu.rom"));
Memory.Set_audiorom(Machine.GetRom("audiocpu.rom"));
gfx12rom = Machine.GetRom("gfx1.rom");
n = gfx12rom.Length;
gfx1rom = new byte[n * 2];
@ -112,7 +115,7 @@ namespace MAME.Core
}
prom = Machine.GetRom("proms.rom");
bublbobl_video_enable = 0;
if (Memory.mainrom == null || slaverom == null || Memory.audiorom == null || gfx1rom == null || prom == null)
if (Memory.mainrom_IsNull || slaverom == null || Memory.audiorom_IsNull || gfx1rom == null || prom == null)
{
Machine.bRom = false;
}
@ -128,12 +131,13 @@ namespace MAME.Core
mainram3 = new byte[0x100];
videoram = new byte[0x1d00];
bublbobl_objectram = new byte[0x300];
Memory.mainram = new byte[0x1800];
Memory.Set_mainram(new byte[0x1800]);
Memory.audioram = new byte[0x1000];
Generic.paletteram = new byte[0x200];
Memory.mainrom = Machine.GetRom("maincpu.rom");
Memory.Set_mainrom(Machine.GetRom("maincpu.rom"));
slaverom = Machine.GetRom("slave.rom");
Memory.audiorom = Machine.GetRom("audiocpu.rom");
//Memory.Set_audiorom(Machine.GetRom("audiocpu.rom"));
Memory.Set_audiorom(Machine.GetRom("audiocpu.rom"));
gfx12rom = Machine.GetRom("gfx1.rom");
n = gfx12rom.Length;
gfx1rom = new byte[n * 2];
@ -144,7 +148,7 @@ namespace MAME.Core
}
prom = Machine.GetRom("proms.rom");
bublbobl_video_enable = 0;
if (Memory.mainrom == null || slaverom == null || Memory.audiorom == null || gfx1rom == null || prom == null)
if (Memory.mainrom_IsNull || slaverom == null || Memory.audiorom_IsNull || gfx1rom == null || prom == null)
{
Machine.bRom = false;
}
@ -158,15 +162,20 @@ namespace MAME.Core
case "opwolfa":
case "opwolfj":
case "opwolfu":
{
mainram2 = new byte[0x10000];
cchip_ram = new byte[0x2000];
Generic.paletteram16 = new ushort[0x800];
Memory.mainram = new byte[0x8000];
Memory.Set_mainram(new byte[0x8000]);
Memory.audioram = new byte[0x1000];
Memory.mainrom = Machine.GetRom("maincpu.rom");
Memory.Set_mainrom(Machine.GetRom("maincpu.rom"));
bb1 = Machine.GetRom("audiocpu.rom");
Memory.audiorom = new byte[0x20000];
Array.Copy(bb1, 0, Memory.audiorom, 0, 0x10000);
//Memory.audiorom = new byte[0x20000];
//Array.Copy(bb1, 0, Memory.audiorom, 0, 0x10000);
byte[] temprom = new byte[0x20000];
Array.Copy(bb1, 0, temprom, 0, 0x10000);
Memory.Set_audiorom(temprom);
gfx12rom = Machine.GetRom("gfx1.rom");
n = gfx12rom.Length;
gfx1rom = new byte[n * 2];
@ -185,7 +194,7 @@ namespace MAME.Core
}
adpcmrom = Machine.GetRom("adpcm.rom");
Taitosnd.taitosnd_start();
if (Memory.mainrom == null || Memory.audiorom == null || gfx1rom == null || gfx2rom == null || adpcmrom == null)
if (Memory.mainrom_IsNull || Memory.audiorom_IsNull || gfx1rom == null || gfx2rom == null || adpcmrom == null)
{
Machine.bRom = false;
}
@ -194,17 +203,23 @@ namespace MAME.Core
dswa = 0xff;
dswb = 0x7f;
}
}
break;
case "opwolfb":
{
mainram2 = new byte[0x10000];
cchip_ram = new byte[0x2000];
Generic.paletteram16 = new ushort[0x800];
Memory.mainram = new byte[0x8000];
Memory.Set_mainram(new byte[0x8000]);
Memory.audioram = new byte[0x1000];
Memory.mainrom = Machine.GetRom("maincpu.rom");
Memory.Set_mainrom(Machine.GetRom("maincpu.rom"));
bb1 = Machine.GetRom("audiocpu.rom");
Memory.audiorom = new byte[0x20000];
Array.Copy(bb1, 0, Memory.audiorom, 0, 0x10000);
//Memory.audiorom = new byte[0x20000];
//Array.Copy(bb1, 0, Memory.audiorom, 0, 0x10000);
byte[] temprom = new byte[0x20000];
Array.Copy(bb1, 0, temprom, 0, 0x10000);
Memory.Set_audiorom(temprom);
subrom = Machine.GetRom("sub.rom");
gfx12rom = Machine.GetRom("gfx1.rom");
n = gfx12rom.Length;
@ -224,7 +239,7 @@ namespace MAME.Core
}
adpcmrom = Machine.GetRom("adpcm.rom");
Taitosnd.taitosnd_start();
if (Memory.mainrom == null || Memory.audiorom == null || subrom == null || gfx1rom == null || gfx2rom == null || adpcmrom == null)
if (Memory.mainrom_IsNull || Memory.audiorom_IsNull || subrom == null || gfx1rom == null || gfx2rom == null || adpcmrom == null)
{
Machine.bRom = false;
}
@ -233,17 +248,24 @@ namespace MAME.Core
dswa = 0xff;
dswb = 0xff;
}
}
break;
case "opwolfp":
{
mainram2 = new byte[0x10000];
cchip_ram = new byte[0x2000];
Generic.paletteram16 = new ushort[0x800];
Memory.mainram = new byte[0x8000];
Memory.Set_mainram(new byte[0x8000]);
Memory.audioram = new byte[0x1000];
Memory.mainrom = Machine.GetRom("maincpu.rom");
Memory.Set_mainrom(Machine.GetRom("maincpu.rom"));
bb1 = Machine.GetRom("audiocpu.rom");
Memory.audiorom = new byte[0x20000];
Array.Copy(bb1, 0, Memory.audiorom, 0, 0x10000);
//Memory.audiorom = new byte[0x20000];
//Array.Copy(bb1, 0, Memory.audiorom, 0, 0x10000);
byte[] temprom = new byte[0x20000];
Array.Copy(bb1, 0, temprom, 0, 0x10000);
Memory.Set_audiorom(temprom);
gfx12rom = Machine.GetRom("gfx1.rom");
n = gfx12rom.Length;
gfx1rom = new byte[n * 2];
@ -262,7 +284,7 @@ namespace MAME.Core
}
adpcmrom = Machine.GetRom("adpcm.rom");
Taitosnd.taitosnd_start();
if (Memory.mainrom == null || Memory.audiorom == null || gfx1rom == null || gfx2rom == null || adpcmrom == null)
if (Memory.mainrom_IsNull || Memory.audiorom_IsNull || gfx1rom == null || gfx2rom == null || adpcmrom == null)
{
Machine.bRom = false;
}
@ -271,6 +293,7 @@ namespace MAME.Core
dswa = 0xff;
dswb = 0xff;
}
}
break;
}
}
@ -282,24 +305,24 @@ namespace MAME.Core
{
Cpuint.cpunum_set_input_line(2, 0, irq != 0 ? LineState.ASSERT_LINE : LineState.CLEAR_LINE);
}
public static void driver_init_opwolf()
public unsafe static void driver_init_opwolf()
{
opwolf_region = Memory.mainrom[0x03ffff];
opwolf_region = Memory.mainrom_Ptr[0x03ffff];
opwolf_cchip_init();
opwolf_gun_xoffs = 0xec - Memory.mainrom[0x03ffb1];
opwolf_gun_yoffs = 0x1c - Memory.mainrom[0x03ffaf];
opwolf_gun_xoffs = 0xec - Memory.mainrom_Ptr[0x03ffb1];
opwolf_gun_yoffs = 0x1c - Memory.mainrom_Ptr[0x03ffaf];
basebanksnd = 0x10000;
}
public static void driver_init_opwolfb()
public unsafe static void driver_init_opwolfb()
{
opwolf_region = Memory.mainrom[0x03ffff];
opwolf_region = Memory.mainrom_Ptr[0x03ffff];
opwolf_gun_xoffs = -2;
opwolf_gun_yoffs = 17;
basebanksnd = 0x10000;
}
public static void driver_init_opwolfp()
public unsafe static void driver_init_opwolfp()
{
opwolf_region = Memory.mainrom[0x03ffff];
opwolf_region = Memory.mainrom_Ptr[0x03ffff];
opwolf_gun_xoffs = 5;
opwolf_gun_yoffs = 30;
basebanksnd = 0x10000;

View File

@ -2,7 +2,7 @@
namespace MAME.Core
{
public partial class Taitob
public unsafe partial class Taitob
{
public static sbyte sbyte0, sbyte1, sbyte2, sbyte3, sbyte4, sbyte5;
public static sbyte sbyte0_old, sbyte1_old, sbyte2_old, sbyte3_old, sbyte4_old, sbyte5_old;
@ -12,7 +12,7 @@ namespace MAME.Core
sbyte result = 0;
if (address <= 0x07ffff)
{
result = (sbyte)(Memory.mainrom[address]);
result = (sbyte)(Memory.mainrom_Ptr[address]);
}
else if (address >= 0x800000 && address <= 0x801fff)
{
@ -28,7 +28,7 @@ namespace MAME.Core
}
else if (address >= 0x900000 && address <= 0x90ffff)
{
result = (sbyte)Memory.mainram[address - 0x900000];
result = (sbyte)Memory.mainram_Ptr[address - 0x900000];
}
return result;
}
@ -38,9 +38,9 @@ namespace MAME.Core
sbyte result = 0;
if (address <= 0x07ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)Memory.mainrom[address];
result = (sbyte)Memory.mainrom_Ptr[address];
}
else
{
@ -185,7 +185,7 @@ namespace MAME.Core
}
else if (address >= 0x900000 && address <= 0x90ffff)
{
result = (sbyte)Memory.mainram[address - 0x900000];
result = (sbyte)Memory.mainram_Ptr[address - 0x900000];
}
return result;
}
@ -195,9 +195,9 @@ namespace MAME.Core
short result = 0;
if (address <= 0x07ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -211,7 +211,7 @@ namespace MAME.Core
}
else if (address >= 0x900000 && address + 1 <= 0x90ffff)
{
result = (short)(Memory.mainram[address - 0x900000] * 0x100 + Memory.mainram[address - 0x900000 + 1]);
result = (short)(Memory.mainram_Ptr[address - 0x900000] * 0x100 + Memory.mainram_Ptr[address - 0x900000 + 1]);
}
return result;
}
@ -221,9 +221,9 @@ namespace MAME.Core
short result = 0;
if (address <= 0x07ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -292,7 +292,7 @@ namespace MAME.Core
}
else if (address >= 0x900000 && address + 1 <= 0x90ffff)
{
result = (short)(Memory.mainram[address - 0x900000] * 0x100 + Memory.mainram[address - 0x900000 + 1]);
result = (short)(Memory.mainram_Ptr[address - 0x900000] * 0x100 + Memory.mainram_Ptr[address - 0x900000 + 1]);
}
return result;
}
@ -302,9 +302,9 @@ namespace MAME.Core
int result = 0;
if (address <= 0x07ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -318,7 +318,7 @@ namespace MAME.Core
}
else if (address >= 0x900000 && address + 3 <= 0x90ffff)
{
result = (int)(Memory.mainram[address - 0x900000] * 0x1000000 + Memory.mainram[address - 0x900000 + 1] * 0x10000 + Memory.mainram[address - 0x900000 + 2] * 0x100 + Memory.mainram[address - 0x900000 + 3]);
result = (int)(Memory.mainram_Ptr[address - 0x900000] * 0x1000000 + Memory.mainram_Ptr[address - 0x900000 + 1] * 0x10000 + Memory.mainram_Ptr[address - 0x900000 + 2] * 0x100 + Memory.mainram_Ptr[address - 0x900000 + 3]);
}
return result;
}
@ -328,9 +328,9 @@ namespace MAME.Core
int result = 0;
if (address <= 0x07ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -379,7 +379,7 @@ namespace MAME.Core
}
else if (address >= 0x900000 && address + 3 <= 0x90ffff)
{
result = (int)(Memory.mainram[address - 0x900000] * 0x1000000 + Memory.mainram[address - 0x900000 + 1] * 0x10000 + Memory.mainram[address - 0x900000 + 2] * 0x100 + Memory.mainram[address - 0x900000 + 3]);
result = (int)(Memory.mainram_Ptr[address - 0x900000] * 0x1000000 + Memory.mainram_Ptr[address - 0x900000 + 1] * 0x10000 + Memory.mainram_Ptr[address - 0x900000 + 2] * 0x100 + Memory.mainram_Ptr[address - 0x900000 + 3]);
}
return result;
}
@ -388,9 +388,9 @@ namespace MAME.Core
address &= 0xffffff;
if (address >= 0x000000 && address <= 0x07ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
Memory.mainrom[address] = (byte)value;
Memory.mainrom_Ptr[address] = (byte)value;
}
}
else if (address >= 0x400000 && address <= 0x40ffff)
@ -515,7 +515,7 @@ namespace MAME.Core
else if (address >= 0x900000 && address <= 0x90ffff)
{
int offset = address - 0x900000;
Memory.mainram[offset] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)value;
}
}
public static void MWriteWord_pbobble(int address, short value)
@ -523,10 +523,10 @@ namespace MAME.Core
address &= 0xffffff;
if (address >= 0x000000 && address + 1 <= 0x07ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
Memory.mainrom[address] = (byte)(value >> 8);
Memory.mainrom[address + 1] = (byte)value;
Memory.mainrom_Ptr[address] = (byte)(value >> 8);
Memory.mainrom_Ptr[address + 1] = (byte)value;
}
}
else if (address >= 0x400000 && address + 1 <= 0x40ffff)
@ -594,8 +594,8 @@ namespace MAME.Core
else if (address >= 0x900000 && address + 1 <= 0x90ffff)
{
int offset = address - 0x900000;
Memory.mainram[offset] = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 1] = (byte)value;
}
}
public static void MWriteLong_pbobble(int address, int value)
@ -603,12 +603,12 @@ namespace MAME.Core
address &= 0xffffff;
if (address >= 0x000000 && address + 3 <= 0x07ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
Memory.mainrom[address] = (byte)(value >> 24);
Memory.mainrom[address + 1] = (byte)(value >> 16);
Memory.mainrom[address + 2] = (byte)(value >> 8);
Memory.mainrom[address + 3] = (byte)value;
Memory.mainrom_Ptr[address] = (byte)(value >> 24);
Memory.mainrom_Ptr[address + 1] = (byte)(value >> 16);
Memory.mainrom_Ptr[address + 2] = (byte)(value >> 8);
Memory.mainrom_Ptr[address + 3] = (byte)value;
}
}
else if (address >= 0x400000 && address + 3 <= 0x40ffff)
@ -670,10 +670,10 @@ namespace MAME.Core
else if (address >= 0x900000 && address + 3 <= 0x90ffff)
{
int offset = address - 0x900000;
Memory.mainram[offset] = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 24);
Memory.mainram_Ptr[offset + 1] = (byte)(value >> 16);
Memory.mainram_Ptr[offset + 2] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 3] = (byte)value;
}
}
public static byte ZReadOp(ushort address)
@ -681,7 +681,7 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x3fff)
{
result = Memory.audiorom[address & 0x7fff];
result = Memory.audiorom_Ptr[address & 0x7fff];
}
else
{
@ -694,11 +694,11 @@ namespace MAME.Core
byte result = 0;
if (address <= 0x3fff)
{
result = Memory.audiorom[address & 0x7fff];
result = Memory.audiorom_Ptr[address & 0x7fff];
}
else if (address >= 0x4000 && address <= 0x7fff)
{
result = Memory.audiorom[basebanksnd + (address & 0x3fff)];
result = Memory.audiorom_Ptr[basebanksnd + (address & 0x3fff)];
}
else if (address >= 0xc000 && address <= 0xdfff)
{
@ -734,7 +734,7 @@ namespace MAME.Core
{
if (address <= 0x7fff)
{
Memory.audiorom[address] = value;
Memory.audiorom_Ptr[address] = value;
}
else if (address >= 0xc000 && address <= 0xdfff)
{

View File

@ -1,6 +1,6 @@
namespace MAME.Core
{
public partial class Taitob
public unsafe partial class Taitob
{
public static sbyte MReadOpByte_silentd(int address)
{
@ -8,9 +8,9 @@
sbyte result = 0;
if (address <= 0x07ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)Memory.mainrom[address];
result = (sbyte)Memory.mainrom_Ptr[address];
}
else
{
@ -31,7 +31,7 @@
}
else if (address >= 0x400000 && address <= 0x403fff)
{
result = (sbyte)Memory.mainram[address - 0x400000];
result = (sbyte)Memory.mainram_Ptr[address - 0x400000];
}
return result;
}
@ -41,9 +41,9 @@
sbyte result = 0;
if (address <= 0x07ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
result = (sbyte)Memory.mainrom[address];
result = (sbyte)Memory.mainrom_Ptr[address];
}
else
{
@ -124,7 +124,7 @@
}
else if (address >= 0x400000 && address <= 0x403fff)
{
result = (sbyte)Memory.mainram[address - 0x400000];
result = (sbyte)Memory.mainram_Ptr[address - 0x400000];
}
else if (address >= 0x500000 && address <= 0x50ffff)
{
@ -198,9 +198,9 @@
short result = 0;
if (address <= 0x07ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -214,7 +214,7 @@
}
else if (address >= 0x400000 && address + 1 <= 0x403fff)
{
result = (short)(Memory.mainram[address - 0x400000] * 0x100 + Memory.mainram[address - 0x400000 + 1]);
result = (short)(Memory.mainram_Ptr[address - 0x400000] * 0x100 + Memory.mainram_Ptr[address - 0x400000 + 1]);
}
return result;
}
@ -224,9 +224,9 @@
short result = 0;
if (address <= 0x07ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
result = (short)(Memory.mainrom[address] * 0x100 + Memory.mainrom[address + 1]);
result = (short)(Memory.mainrom_Ptr[address] * 0x100 + Memory.mainrom_Ptr[address + 1]);
}
else
{
@ -265,7 +265,7 @@
}
else if (address >= 0x400000 && address + 1 <= 0x403fff)
{
result = (short)(Memory.mainram[address - 0x400000] * 0x100 + Memory.mainram[address - 0x400000 + 1]);
result = (short)(Memory.mainram_Ptr[address - 0x400000] * 0x100 + Memory.mainram_Ptr[address - 0x400000 + 1]);
}
else if (address >= 0x500000 && address + 1 <= 0x50ffff)
{
@ -304,9 +304,9 @@
int result = 0;
if (address <= 0x07ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -320,7 +320,7 @@
}
else if (address >= 0x400000 && address + 3 <= 0x403fff)
{
result = (int)(Memory.mainram[address - 0x400000] * 0x1000000 + Memory.mainram[address - 0x400000 + 1] * 0x10000 + Memory.mainram[address - 0x400000 + 2] * 0x100 + Memory.mainram[address - 0x400000 + 3]);
result = (int)(Memory.mainram_Ptr[address - 0x400000] * 0x1000000 + Memory.mainram_Ptr[address - 0x400000 + 1] * 0x10000 + Memory.mainram_Ptr[address - 0x400000 + 2] * 0x100 + Memory.mainram_Ptr[address - 0x400000 + 3]);
}
return result;
}
@ -330,9 +330,9 @@
int result = 0;
if (address <= 0x07ffff)
{
if (address + 3 < Memory.mainrom.Length)
if (address + 3 < Memory.mainrom_Lenght)
{
result = (int)(Memory.mainrom[address] * 0x1000000 + Memory.mainrom[address + 1] * 0x10000 + Memory.mainrom[address + 2] * 0x100 + Memory.mainrom[address + 3]);
result = (int)(Memory.mainrom_Ptr[address] * 0x1000000 + Memory.mainrom_Ptr[address + 1] * 0x10000 + Memory.mainrom_Ptr[address + 2] * 0x100 + Memory.mainrom_Ptr[address + 3]);
}
else
{
@ -351,7 +351,7 @@
}
else if (address >= 0x400000 && address + 1 <= 0x403fff)
{
result = (int)(Memory.mainram[address - 0x400000] * 0x1000000 + Memory.mainram[address - 0x400000 + 1] * 0x10000 + Memory.mainram[address - 0x400000 + 2] * 0x100 + Memory.mainram[address - 0x400000 + 3]);
result = (int)(Memory.mainram_Ptr[address - 0x400000] * 0x1000000 + Memory.mainram_Ptr[address - 0x400000 + 1] * 0x10000 + Memory.mainram_Ptr[address - 0x400000 + 2] * 0x100 + Memory.mainram_Ptr[address - 0x400000 + 3]);
}
else if (address >= 0x500000 && address + 1 <= 0x50ffff)
{
@ -389,9 +389,9 @@
address &= 0xffffff;
if (address >= 0x000000 && address <= 0x07ffff)
{
if (address < Memory.mainrom.Length)
if (address < Memory.mainrom_Lenght)
{
Memory.mainrom[address] = (byte)value;
Memory.mainrom_Ptr[address] = (byte)value;
}
}
else if (address >= 0x100000 && address <= 0x100001)
@ -432,7 +432,7 @@
else if (address >= 0x400000 && address <= 0x403fff)
{
int offset = address - 0x400000;
Memory.mainram[offset] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)value;
}
else if (address >= 0x500000 && address <= 0x50ffff)
{
@ -505,10 +505,10 @@
address &= 0xffffff;
if (address >= 0x000000 && address + 1 <= 0x07ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
Memory.mainrom[address] = (byte)(value >> 8);
Memory.mainrom[address + 1] = (byte)value;
Memory.mainrom_Ptr[address] = (byte)(value >> 8);
Memory.mainrom_Ptr[address + 1] = (byte)value;
}
}
else if (address >= 0x100000 && address + 1 <= 0x100001)
@ -536,8 +536,8 @@
else if (address >= 0x400000 && address + 1 <= 0x403fff)
{
int offset = address - 0x400000;
Memory.mainram[offset] = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 1] = (byte)value;
}
else if (address >= 0x500000 && address + 1 <= 0x50ffff)
{
@ -576,12 +576,12 @@
address &= 0xffffff;
if (address >= 0x000000 && address + 3 <= 0x07ffff)
{
if (address + 1 < Memory.mainrom.Length)
if (address + 1 < Memory.mainrom_Lenght)
{
Memory.mainrom[address] = (byte)(value >> 24);
Memory.mainrom[address + 1] = (byte)(value >> 16);
Memory.mainrom[address + 2] = (byte)(value >> 8);
Memory.mainrom[address + 3] = (byte)value;
Memory.mainrom_Ptr[address] = (byte)(value >> 24);
Memory.mainrom_Ptr[address + 1] = (byte)(value >> 16);
Memory.mainrom_Ptr[address + 2] = (byte)(value >> 8);
Memory.mainrom_Ptr[address + 3] = (byte)value;
}
}
else if (address >= 0x200000 && address + 3 <= 0x20000f)
@ -599,10 +599,10 @@
else if (address >= 0x400000 && address + 3 <= 0x403fff)
{
int offset = address - 0x400000;
Memory.mainram[offset] = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value;
Memory.mainram_Ptr[offset] = (byte)(value >> 24);
Memory.mainram_Ptr[offset + 1] = (byte)(value >> 16);
Memory.mainram_Ptr[offset + 2] = (byte)(value >> 8);
Memory.mainram_Ptr[offset + 3] = (byte)value;
}
else if (address >= 0x500000 && address + 3 <= 0x50ffff)
{

View File

@ -1,10 +1,11 @@
using cpu.m68000;
using cpu.z80;
using System;
using System.IO;
namespace MAME.Core
{
public partial class Taitob
public unsafe partial class Taitob
{
public static void SaveStateBinary(BinaryWriter writer)
{
@ -52,7 +53,7 @@ namespace MAME.Core
{
writer.Write(Palette.entry_color[i]);
}
writer.Write(Memory.mainram, 0, 0x10000);
writer.Write(Memory.mainram_Ptr, 0, 0x10000);
writer.Write(mainram2, 0, 0x1e80);
MC68000.m1.SaveStateBinary(writer);
writer.Write(Memory.audioram, 0, 0x2000);
@ -141,7 +142,7 @@ namespace MAME.Core
{
Palette.entry_color[i] = reader.ReadUInt32();
}
Memory.mainram = reader.ReadBytes(0x10000);
Memory.Set_mainram(reader.ReadBytes(0x10000));
mainram2 = reader.ReadBytes(0x1e80);
MC68000.m1.LoadStateBinary(reader);
Memory.audioram = reader.ReadBytes(0x2000);

View File

@ -19,7 +19,7 @@ namespace MAME.Core
TC0220IOC_port = 0;
TC0640FIO_regs = new byte[8];
taitob_scroll = new ushort[0x400];
Memory.mainram = new byte[0x10000];
Memory.Set_mainram(new byte[0x10000]);
mainram2 = new byte[0x1e80];
mainram3 = new byte[0x2000];
Memory.audioram = new byte[0x2000];
@ -39,8 +39,9 @@ namespace MAME.Core
TC0180VCU_ctrl[i] = 0;
}
Machine.bRom = true;
Memory.mainrom = Machine.GetRom("maincpu.rom");
Memory.audiorom = Machine.GetRom("audiocpu.rom");
Memory.Set_mainrom(Machine.GetRom("maincpu.rom"));
//Memory.Set_audiorom(Machine.GetRom("audiocpu.rom"));
Memory.Set_audiorom(Machine.GetRom("audiocpu.rom"));
gfxrom = Machine.GetRom("gfx1.rom");
n = gfxrom.Length;
gfx0rom = new byte[n * 2];
@ -56,7 +57,7 @@ namespace MAME.Core
}
FM.ymsndrom = Machine.GetRom("ymsnd.rom");
YMDeltat.ymsnddeltatrom = Machine.GetRom("ymsnddeltat.rom");
if (Memory.mainrom == null || gfxrom == null || Memory.audiorom == null || FM.ymsndrom == null)
if (Memory.mainrom_IsNull || gfxrom == null || Memory.audiorom_IsNull || FM.ymsndrom == null)
{
Machine.bRom = false;
}

View File

@ -2,7 +2,7 @@
namespace MAME.Core
{
public partial class Tehkan
public unsafe partial class Tehkan
{
public static byte byte0, byte1, byte2;
public static byte byte0_old, byte1_old, byte2_old;
@ -11,11 +11,11 @@ namespace MAME.Core
byte result = 0;
if (address >= 0 && address <= 0x7fff)
{
result = Memory.mainrom[address];
result = Memory.mainrom_Ptr[address];
}
else if (address >= 0x8000 && address <= 0xbfff)
{
result = Memory.mainrom[address];
result = Memory.mainrom_Ptr[address];
}
return result;
}
@ -28,7 +28,7 @@ namespace MAME.Core
}
else if (address >= 0x8000 && address <= 0xbfff)
{
result = Memory.mainrom[address];
result = Memory.mainrom_Ptr[address];
}
return result;
}
@ -37,16 +37,16 @@ namespace MAME.Core
byte result = 0;
if (address >= 0 && address <= 0x7fff)
{
result = Memory.mainrom[address];
result = Memory.mainrom_Ptr[address];
}
else if (address >= 0x8000 && address <= 0xbfff)
{
result = Memory.mainrom[address];
result = Memory.mainrom_Ptr[address];
}
else if (address >= 0xc000 && address <= 0xcfff)
{
int offset = address - 0xc000;
result = Memory.mainram[offset];
result = Memory.mainram_Ptr[offset];
}
else if (address >= 0xd000 && address <= 0xd3ff)
{
@ -121,16 +121,16 @@ namespace MAME.Core
{
if (address >= 0x0000 && address <= 0x7fff)
{
Memory.mainrom[address] = value;
Memory.mainrom_Ptr[address] = value;
}
else if (address >= 0x8000 && address <= 0xbfff)
{
Memory.mainrom[address] = value;
Memory.mainrom_Ptr[address] = value;
}
else if (address >= 0xc000 && address <= 0xcfff)
{
int offset = address - 0xc000;
Memory.mainram[offset] = value;
Memory.mainram_Ptr[offset] = value;
}
else if (address >= 0xd000 && address <= 0xd3ff)
{
@ -196,7 +196,7 @@ namespace MAME.Core
byte result = 0;
if (address >= 0 && address <= 0x1fff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
return result;
}
@ -205,7 +205,7 @@ namespace MAME.Core
byte result = 0;
if (address >= 0 && address <= 0x1fff)
{
result = Memory.audiorom[address];
result = Memory.audiorom_Ptr[address];
}
else if (address >= 0x4000 && address <= 0x47ff)
{
@ -222,7 +222,7 @@ namespace MAME.Core
{
if (address >= 0 && address <= 0x1fff)
{
Memory.audiorom[address] = value;
Memory.audiorom_Ptr[address] = value;
}
else if (address >= 0x4000 && address <= 0x47ff)
{

View File

@ -14,13 +14,14 @@ namespace MAME.Core
{
case "pbaction":
case "pbaction2":
Memory.mainrom = Machine.GetRom("maincpu.rom");
Memory.audiorom = Machine.GetRom("audiocpu.rom");
Memory.Set_mainrom(Machine.GetRom("maincpu.rom"));
//Memory.Set_audiorom(Machine.GetRom("audiocpu.rom"));
Memory.Set_audiorom(Machine.GetRom("audiocpu.rom"));
gfx1rom = Machine.GetRom("gfx1.rom");
gfx2rom = Machine.GetRom("gfx2.rom");
gfx3rom = Machine.GetRom("gfx3.rom");
gfx32rom = Machine.GetRom("gfx32.rom");
Memory.mainram = new byte[0x1000];
Memory.Set_mainram(new byte[0x1000]);
Memory.audioram = new byte[0x800];
Generic.videoram = new byte[0x400];
pbaction_videoram2 = new byte[0x400];
@ -28,7 +29,7 @@ namespace MAME.Core
pbaction_colorram2 = new byte[0x400];
Generic.spriteram = new byte[0x80];
Generic.paletteram = new byte[0x200];
if (Memory.mainrom == null || Memory.audiorom == null || gfx1rom == null || gfx2rom == null || gfx3rom == null || gfx32rom == null)
if (Memory.mainrom_IsNull || Memory.audiorom_IsNull || gfx1rom == null || gfx2rom == null || gfx3rom == null || gfx32rom == null)
{
Machine.bRom = false;
}
@ -36,14 +37,15 @@ namespace MAME.Core
case "pbaction3":
case "pbaction4":
case "pbaction5":
Memory.mainrom = Machine.GetRom("maincpu.rom");
Memory.Set_mainrom(Machine.GetRom("maincpu.rom"));
mainromop = Machine.GetRom("maincpuop.rom");
Memory.audiorom = Machine.GetRom("audiocpu.rom");
//Memory.Set_audiorom(Machine.GetRom("audiocpu.rom"));
Memory.Set_audiorom(Machine.GetRom("audiocpu.rom"));
gfx1rom = Machine.GetRom("gfx1.rom");
gfx2rom = Machine.GetRom("gfx2.rom");
gfx3rom = Machine.GetRom("gfx3.rom");
gfx32rom = Machine.GetRom("gfx32.rom");
Memory.mainram = new byte[0x1000];
Memory.Set_mainram(new byte[0x1000]);
Memory.audioram = new byte[0x800];
Generic.videoram = new byte[0x400];
pbaction_videoram2 = new byte[0x400];
@ -51,7 +53,7 @@ namespace MAME.Core
pbaction_colorram2 = new byte[0x400];
Generic.spriteram = new byte[0x80];
Generic.paletteram = new byte[0x200];
if (Memory.mainrom == null || mainromop == null || Memory.audiorom == null || gfx1rom == null || gfx2rom == null || gfx3rom == null || gfx32rom == null)
if (Memory.mainrom_IsNull || mainromop == null || Memory.audiorom_IsNull || gfx1rom == null || gfx2rom == null || gfx3rom == null || gfx32rom == null)
{
Machine.bRom = false;
}
@ -81,7 +83,7 @@ namespace MAME.Core
{
Cpuint.cpunum_set_input_line_and_vector2(1, 0, LineState.HOLD_LINE, 0x02);
}
public static byte pbaction3_prot_kludge_r()
public unsafe static byte pbaction3_prot_kludge_r()
{
byte result;
if (Z80A.zz1[0].PC == 0xab80)
@ -90,7 +92,7 @@ namespace MAME.Core
}
else
{
result = Memory.mainram[0];
result = Memory.mainram_Ptr[0];
}
return result;
}

View File

@ -5,7 +5,7 @@ namespace MAME.Core
{
public partial class Tehkan
{
public static void SaveStateBinary_pbaction(BinaryWriter writer)
public unsafe static void SaveStateBinary_pbaction(BinaryWriter writer)
{
int i;
writer.Write(dsw1);
@ -15,7 +15,7 @@ namespace MAME.Core
{
writer.Write(Palette.entry_color[i]);
}
writer.Write(Memory.mainram, 0, 0x1000);
writer.Write(Memory.mainram_Ptr, 0, 0x1000);
writer.Write(Generic.videoram, 0, 0x400);
writer.Write(pbaction_videoram2, 0, 0x400);
writer.Write(Generic.colorram, 0, 0x400);
@ -56,7 +56,7 @@ namespace MAME.Core
{
Palette.entry_color[i] = reader.ReadUInt32();
}
Memory.mainram = reader.ReadBytes(0x1000);
Memory.Set_mainram(reader.ReadBytes(0x1000));
Generic.videoram = reader.ReadBytes(0x400);
pbaction_videoram2 = reader.ReadBytes(0x400);
Generic.colorram = reader.ReadBytes(0x400);