MAME:mainram,audiorom,audioram 均改为纯指针访问,直接解引用,提高性能

This commit is contained in:
sin365 2025-12-09 22:28:15 +08:00
parent 502a4e20b5
commit d6cb0f4b72
22 changed files with 517 additions and 514 deletions

View File

@ -15,7 +15,7 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0x1dff) if (address <= 0x1dff)
{ {
result = Memory.mainram[address]; result = *(Memory.mainram + (address));
} }
else if (address >= 0x4000 && address <= 0x5fff) else if (address >= 0x4000 && address <= 0x5fff)
{ {
@ -37,7 +37,7 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0x1dff) if (address <= 0x1dff)
{ {
result = Memory.mainram[address]; result = *(Memory.mainram + (address));
} }
else if (address >= 0x1e00 && address <= 0x1fff) else if (address >= 0x1e00 && address <= 0x1fff)
{ {
@ -98,7 +98,7 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0x1dff) if (address <= 0x1dff)
{ {
result = Memory.mainram[address]; result = *(Memory.mainram + (address));
} }
else if (address >= 0x1e00 && address <= 0x1fff) else if (address >= 0x1e00 && address <= 0x1fff)
{ {
@ -162,7 +162,7 @@ namespace MAME.Core
{ {
if (address <= 0x1dff) if (address <= 0x1dff)
{ {
Memory.mainram[address] = value; *(Memory.mainram + (address)) = value;
} }
else if (address >= 0x1e00 && address <= 0x1fff) else if (address >= 0x1e00 && address <= 0x1fff)
{ {
@ -230,12 +230,12 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0x7fff) if (address <= 0x7fff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0xc000 && address <= 0xc7ff) else if (address >= 0xc000 && address <= 0xc7ff)
{ {
int offset = address - 0xc000; int offset = address - 0xc000;
result = Memory.audioram[offset]; result = *(Memory.audioram+offset);
} }
else else
{ {
@ -248,12 +248,12 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0x7fff) if (address <= 0x7fff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0xc000 && address <= 0xc7ff) else if (address >= 0xc000 && address <= 0xc7ff)
{ {
int offset = address - 0xc000; int offset = address - 0xc000;
result = Memory.audioram[offset]; result = *(Memory.audioram+offset);
} }
else if (address == 0xc800) else if (address == 0xc800)
{ {
@ -269,12 +269,12 @@ namespace MAME.Core
{ {
if (address >= 0x0000 && address <= 0x7fff) if (address >= 0x0000 && address <= 0x7fff)
{ {
Memory.audiorom[address] = value; *Memory.audiorom = value;
} }
else if (address >= 0xc000 && address <= 0xc7ff) else if (address >= 0xc000 && address <= 0xc7ff)
{ {
int offset = address - 0xc000; int offset = address - 0xc000;
Memory.audioram[offset] = value; *(Memory.audioram+offset) = value;
} }
else if (address == 0xe000) else if (address == 0xe000)
{ {
@ -428,7 +428,7 @@ namespace MAME.Core
else if (address >= 0xff8000 && address <= 0xffdfff) else if (address >= 0xff8000 && address <= 0xffdfff)
{ {
int offset = address - 0xff8000; int offset = address - 0xff8000;
result = (sbyte)Memory.mainram[offset]; result = (sbyte)*(Memory.mainram + offset);
} }
else if (address >= 0xffe000 && address <= 0xffffff) else if (address >= 0xffe000 && address <= 0xffffff)
{ {
@ -562,7 +562,7 @@ namespace MAME.Core
else if (address >= 0xff8000 && address <= 0xffdfff) else if (address >= 0xff8000 && address <= 0xffdfff)
{ {
int offset = address - 0xff8000; int offset = address - 0xff8000;
result = (sbyte)Memory.mainram[offset]; result = (sbyte)*(Memory.mainram + offset);
} }
else if (address >= 0xffe000 && address <= 0xffffff) else if (address >= 0xffe000 && address <= 0xffffff)
{ {
@ -696,7 +696,7 @@ namespace MAME.Core
else if (address >= 0xff8000 && address <= 0xffdfff) else if (address >= 0xff8000 && address <= 0xffdfff)
{ {
int offset = address - 0xff8000; int offset = address - 0xff8000;
result = (sbyte)Memory.mainram[offset]; result = (sbyte)*(Memory.mainram + offset);
} }
else if (address >= 0xffe000 && address <= 0xffffff) else if (address >= 0xffe000 && address <= 0xffffff)
{ {
@ -784,7 +784,7 @@ namespace MAME.Core
else if (address >= 0xff8000 && address + 1 <= 0xffdfff) else if (address >= 0xff8000 && address + 1 <= 0xffdfff)
{ {
int offset = address - 0xff8000; int offset = address - 0xff8000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (short)(*(Memory.mainram + offset) * 0x100 +*(Memory.mainram + (offset+1)));
} }
else if (address >= 0xffe000 && address + 1 <= 0xffffff) else if (address >= 0xffe000 && address + 1 <= 0xffffff)
{ {
@ -848,7 +848,7 @@ namespace MAME.Core
else if (address >= 0xff8000 && address + 1 <= 0xffdfff) else if (address >= 0xff8000 && address + 1 <= 0xffdfff)
{ {
int offset = address - 0xff8000; int offset = address - 0xff8000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (short)(*(Memory.mainram + offset) * 0x100 +*(Memory.mainram + (offset+1)));
} }
else if (address >= 0xffe000 && address + 1 <= 0xffffff) else if (address >= 0xffe000 && address + 1 <= 0xffffff)
{ {
@ -912,7 +912,7 @@ namespace MAME.Core
else if (address >= 0xff8000 && address + 1 <= 0xffdfff) else if (address >= 0xff8000 && address + 1 <= 0xffdfff)
{ {
int offset = address - 0xff8000; int offset = address - 0xff8000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (short)(*(Memory.mainram + offset) * 0x100 +*(Memory.mainram + (offset+1)));
} }
else if (address >= 0xffe000 && address + 1 <= 0xffffff) else if (address >= 0xffe000 && address + 1 <= 0xffffff)
{ {
@ -961,7 +961,7 @@ namespace MAME.Core
else if (address >= 0xff8000 && address + 3 <= 0xffdfff) else if (address >= 0xff8000 && address + 3 <= 0xffdfff)
{ {
int offset = address - 0xff8000; 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 + offset) * 0x1000000 +*(Memory.mainram + (offset+1)) * 0x10000 +*(Memory.mainram + (offset+2)) * 0x100 +*(Memory.mainram + (offset+3)));
} }
else if (address >= 0xffe000 && address + 3 <= 0xffffff) else if (address >= 0xffe000 && address + 3 <= 0xffffff)
{ {
@ -1073,7 +1073,7 @@ namespace MAME.Core
else if (address >= 0xff8000 && address <= 0xffdfff) else if (address >= 0xff8000 && address <= 0xffdfff)
{ {
int offset = address - 0xff8000; int offset = address - 0xff8000;
Memory.mainram[offset] = (byte)value; *(Memory.mainram + offset) = (byte)value;
} }
else if (address >= 0xffe000 && address <= 0xffffff) else if (address >= 0xffe000 && address <= 0xffffff)
{ {
@ -1136,8 +1136,8 @@ namespace MAME.Core
else if (address >= 0xff8000 && address + 1 <= 0xffdfff) else if (address >= 0xff8000 && address + 1 <= 0xffdfff)
{ {
int offset = address - 0xff8000; int offset = address - 0xff8000;
Memory.mainram[offset] = (byte)(value >> 8); *(Memory.mainram + offset) = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value; *(Memory.mainram + (offset+1)) = (byte)value;
} }
else if (address >= 0xffe000 && address + 1 <= 0xffffff) else if (address >= 0xffe000 && address + 1 <= 0xffffff)
{ {
@ -1173,10 +1173,10 @@ namespace MAME.Core
else if (address >= 0xff8000 && address + 3 <= 0xffdfff) else if (address >= 0xff8000 && address + 3 <= 0xffdfff)
{ {
int offset = address - 0xff8000; int offset = address - 0xff8000;
Memory.mainram[offset] = (byte)(value >> 24); *(Memory.mainram + offset) = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16); *(Memory.mainram + (offset+1)) = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8); *(Memory.mainram + (offset+2)) = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value; *(Memory.mainram + (offset+3)) = (byte)value;
} }
else if (address >= 0xffe000 && address + 3 <= 0xffffff) else if (address >= 0xffe000 && address + 3 <= 0xffffff)
{ {
@ -1190,12 +1190,12 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0x7fff) if (address <= 0x7fff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0xc000 && address <= 0xc7ff) else if (address >= 0xc000 && address <= 0xc7ff)
{ {
int offset = address - 0xc000; int offset = address - 0xc000;
result = Memory.audioram[offset]; result = *(Memory.audioram+offset);
} }
else else
{ {
@ -1208,12 +1208,12 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0x7fff) if (address <= 0x7fff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0xc000 && address <= 0xc7ff) else if (address >= 0xc000 && address <= 0xc7ff)
{ {
int offset = address - 0xc000; int offset = address - 0xc000;
result = Memory.audioram[offset]; result = *(Memory.audioram+offset);
} }
else if (address == 0xc800) else if (address == 0xc800)
{ {
@ -1233,12 +1233,12 @@ namespace MAME.Core
{ {
if (address >= 0x0000 && address <= 0x7fff) if (address >= 0x0000 && address <= 0x7fff)
{ {
Memory.audiorom[address] = value; *Memory.audiorom = value;
} }
else if (address >= 0xc000 && address <= 0xc7ff) else if (address >= 0xc000 && address <= 0xc7ff)
{ {
int offset = address - 0xc000; int offset = address - 0xc000;
Memory.audioram[offset] = value; *(Memory.audioram+offset) = value;
} }
else if (address == 0xe000) else if (address == 0xe000)
{ {

View File

@ -82,7 +82,7 @@ namespace MAME.Core
} }
else if (address >= 0xff0000 && address <= 0xffffff) else if (address >= 0xff0000 && address <= 0xffffff)
{ {
result = (sbyte)Memory.mainram[address & 0xffff]; result = (sbyte)*(Memory.mainram + (address & 0xffff) );
} }
return result; return result;
} }
@ -107,7 +107,7 @@ namespace MAME.Core
} }
else if (address >= 0xff0000 && address + 1 <= 0xffffff) else if (address >= 0xff0000 && address + 1 <= 0xffffff)
{ {
result = (short)(Memory.mainram[(address & 0xffff)] * 0x100 + Memory.mainram[(address & 0xffff) + 1]); result = (short)(*(Memory.mainram + (address & 0xffff)) * 0x100 + *(Memory.mainram + (address & 0xffff) + 1));
} }
return result; return result;
} }
@ -150,7 +150,7 @@ namespace MAME.Core
} }
else if (address >= 0xff0000 && address + 1 <= 0xffffff) else if (address >= 0xff0000 && address + 1 <= 0xffffff)
{ {
result = (short)(Memory.mainram[(address & 0xffff)] * 0x100 + Memory.mainram[(address & 0xffff) + 1]); result = (short)(*(Memory.mainram + (address & 0xffff)) * 0x100 + *(Memory.mainram + (address & 0xffff) + 1));
} }
return result; return result;
} }
@ -175,7 +175,7 @@ namespace MAME.Core
} }
else if (address >= 0xff0000 && address + 3 <= 0xffffff) 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 + (address & 0xffff)) * 0x1000000 + *(Memory.mainram + (address & 0xffff) + 1) * 0x10000 + *(Memory.mainram + (address & 0xffff) + 2) * 0x100 + *(Memory.mainram + (address & 0xffff) + 3));
} }
return result; return result;
} }
@ -217,7 +217,7 @@ namespace MAME.Core
} }
else if (address >= 0xff0000 && address + 3 <= 0xffffff) 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 + (address & 0xffff)) * 0x1000000 + *(Memory.mainram + (address & 0xffff) + 1) * 0x10000 + *(Memory.mainram + (address & 0xffff) + 2) * 0x100 + *(Memory.mainram + (address & 0xffff) + 3));
} }
return result; return result;
} }
@ -258,7 +258,7 @@ namespace MAME.Core
} }
else if (address >= 0xff0000 && address <= 0xffffff) else if (address >= 0xff0000 && address <= 0xffffff)
{ {
Memory.mainram[(address & 0xffff)] = (byte)(value); *(Memory.mainram + (address & 0xffff)) = (byte)(value);
} }
else else
{ {
@ -296,8 +296,8 @@ namespace MAME.Core
} }
else if (address >= 0xff0000 && address + 1 <= 0xffffff) else if (address >= 0xff0000 && address + 1 <= 0xffffff)
{ {
Memory.mainram[(address & 0xffff)] = (byte)(value >> 8); *(Memory.mainram + (address & 0xffff)) = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 1] = (byte)(value); *(Memory.mainram + (address & 0xffff) + 1) = (byte)(value);
} }
else else
{ {
@ -340,10 +340,10 @@ namespace MAME.Core
} }
else if (address >= 0xff0000 && address + 3 <= 0xffffff) else if (address >= 0xff0000 && address + 3 <= 0xffffff)
{ {
Memory.mainram[(address & 0xffff)] = (byte)(value >> 24); *(Memory.mainram + (address & 0xffff)) = (byte)(value >> 24);
Memory.mainram[(address & 0xffff) + 1] = (byte)(value >> 16); *(Memory.mainram + (address & 0xffff) + 1) = (byte)(value >> 16);
Memory.mainram[(address & 0xffff) + 2] = (byte)(value >> 8); *(Memory.mainram + (address & 0xffff) + 2) = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 3] = (byte)(value); *(Memory.mainram + (address & 0xffff) + 3) = (byte)(value);
} }
else else
{ {
@ -355,7 +355,7 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0x7fff) if (address <= 0x7fff)
{ {
result = Memory.audiorom[address & 0x7fff]; result = *(Memory.audiorom + (address & 0x7fff));
} }
else else
{ {
@ -368,15 +368,15 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address < 0x8000) if (address < 0x8000)
{ {
result = Memory.audiorom[address & 0x7fff]; result = *(Memory.audiorom + (address & 0x7fff));
} }
else if (address >= 0x8000 && address <= 0xbfff) else if (address >= 0x8000 && address <= 0xbfff)
{ {
result = Memory.audiorom[basebanksnd + (address & 0x3fff)]; result = *(Memory.audiorom + (basebanksnd + (address & 0x3fff)));
} }
else if (address >= 0xd000 && address <= 0xd7ff) else if (address >= 0xd000 && address <= 0xd7ff)
{ {
result = Memory.audioram[address & 0x7ff]; result = *(Memory.audioram + (address & 0x7ff));
} }
else if (address == 0xf001) else if (address == 0xf001)
{ {
@ -405,7 +405,7 @@ namespace MAME.Core
{ {
if (address >= 0xd000 && address <= 0xd7ff) if (address >= 0xd000 && address <= 0xd7ff)
{ {
Memory.audioram[address & 0x7ff] = value; *(Memory.audioram + (address & 0x7ff)) = value;
} }
else if (address == 0xf000) else if (address == 0xf000)
{ {
@ -533,7 +533,7 @@ namespace MAME.Core
} }
else if (address >= 0xff0000 && address <= 0xffffff) else if (address >= 0xff0000 && address <= 0xffffff)
{ {
result = (sbyte)Memory.mainram[address & 0xffff]; result = (sbyte)*(Memory.mainram + (address & 0xffff) );
} }
return result; return result;
} }
@ -558,7 +558,7 @@ namespace MAME.Core
} }
else if (address >= 0xff0000 && address + 1 <= 0xffffff) else if (address >= 0xff0000 && address + 1 <= 0xffffff)
{ {
result = (short)(Memory.mainram[(address & 0xffff)] * 0x100 + Memory.mainram[(address & 0xffff) + 1]); result = (short)(*(Memory.mainram + (address & 0xffff)) * 0x100 + *(Memory.mainram + (address & 0xffff) + 1));
} }
return result; return result;
} }
@ -624,7 +624,7 @@ namespace MAME.Core
} }
else if (address >= 0xff0000 && address + 1 <= 0xffffff) else if (address >= 0xff0000 && address + 1 <= 0xffffff)
{ {
result = (short)(Memory.mainram[(address & 0xffff)] * 0x100 + Memory.mainram[(address & 0xffff) + 1]); result = (short)(*(Memory.mainram + (address & 0xffff)) * 0x100 + *(Memory.mainram + (address & 0xffff) + 1));
} }
return result; return result;
} }
@ -649,7 +649,7 @@ namespace MAME.Core
} }
else if (address >= 0xff0000 && address + 3 <= 0xffffff) 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 + (address & 0xffff)) * 0x1000000 + *(Memory.mainram + (address & 0xffff) + 1) * 0x10000 + *(Memory.mainram + (address & 0xffff) + 2) * 0x100 + *(Memory.mainram + (address & 0xffff) + 3));
} }
return result; return result;
} }
@ -710,7 +710,7 @@ namespace MAME.Core
} }
else if (address >= 0xff0000 && address + 3 <= 0xffffff) 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 + (address & 0xffff)) * 0x1000000 + *(Memory.mainram + (address & 0xffff) + 1) * 0x10000 + *(Memory.mainram + (address & 0xffff) + 2) * 0x100 + *(Memory.mainram + (address & 0xffff) + 3));
} }
return result; return result;
} }
@ -778,7 +778,7 @@ namespace MAME.Core
} }
else if (address >= 0xff0000 && address <= 0xffffff) else if (address >= 0xff0000 && address <= 0xffffff)
{ {
Memory.mainram[(address & 0xffff)] = (byte)(value); *(Memory.mainram + (address & 0xffff)) = (byte)(value);
} }
else else
{ {
@ -831,8 +831,8 @@ namespace MAME.Core
} }
else if (address >= 0xff0000 && address + 1 <= 0xffffff) else if (address >= 0xff0000 && address + 1 <= 0xffffff)
{ {
Memory.mainram[(address & 0xffff)] = (byte)(value >> 8); *(Memory.mainram + (address & 0xffff)) = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 1] = (byte)(value); *(Memory.mainram + (address & 0xffff) + 1) = (byte)(value);
} }
else else
{ {
@ -890,10 +890,10 @@ namespace MAME.Core
} }
else if (address >= 0xff0000 && address + 3 <= 0xffffff) else if (address >= 0xff0000 && address + 3 <= 0xffffff)
{ {
Memory.mainram[(address & 0xffff)] = (byte)(value >> 24); *(Memory.mainram + (address & 0xffff)) = (byte)(value >> 24);
Memory.mainram[(address & 0xffff) + 1] = (byte)(value >> 16); *(Memory.mainram + (address & 0xffff) + 1) = (byte)(value >> 16);
Memory.mainram[(address & 0xffff) + 2] = (byte)(value >> 8); *(Memory.mainram + (address & 0xffff) + 2) = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 3] = (byte)(value); *(Memory.mainram + (address & 0xffff) + 3) = (byte)(value);
} }
else else
{ {
@ -1061,7 +1061,7 @@ namespace MAME.Core
} }
else if (address >= 0xff0000 && address <= 0xffffff) else if (address >= 0xff0000 && address <= 0xffffff)
{ {
result = (sbyte)Memory.mainram[address & 0xffff]; result = (sbyte)*(Memory.mainram + (address & 0xffff) );
} }
return result; return result;
} }
@ -1204,7 +1204,7 @@ namespace MAME.Core
} }
else if (address >= 0xff0000 && address + 1 <= 0xffffff) else if (address >= 0xff0000 && address + 1 <= 0xffffff)
{ {
result = (short)(Memory.mainram[(address & 0xffff)] * 0x100 + Memory.mainram[(address & 0xffff) + 1]); result = (short)(*(Memory.mainram + (address & 0xffff)) * 0x100 + *(Memory.mainram + (address & 0xffff) + 1));
} }
return result; return result;
} }
@ -1355,7 +1355,7 @@ namespace MAME.Core
} }
else if (address >= 0xff0000 && address + 3 <= 0xffffff) 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 + (address & 0xffff)) * 0x1000000 + *(Memory.mainram + (address & 0xffff) + 1) * 0x10000 + *(Memory.mainram + (address & 0xffff) + 2) * 0x100 + *(Memory.mainram + (address & 0xffff) + 3));
} }
return result; return result;
} }
@ -1466,7 +1466,7 @@ namespace MAME.Core
} }
else if (address >= 0xff0000 && address <= 0xffffff) else if (address >= 0xff0000 && address <= 0xffffff)
{ {
Memory.mainram[(address & 0xffff)] = (byte)(value); *(Memory.mainram + (address & 0xffff)) = (byte)(value);
} }
else else
{ {
@ -1571,8 +1571,8 @@ namespace MAME.Core
} }
else if (address >= 0xff0000 && address + 1 <= 0xffffff) else if (address >= 0xff0000 && address + 1 <= 0xffffff)
{ {
Memory.mainram[address & 0xffff] = (byte)(value >> 8); *(Memory.mainram + (address & 0xffff) ) = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 1] = (byte)value; *(Memory.mainram + (address & 0xffff) + 1) = (byte)value;
} }
else else
{ {
@ -1695,10 +1695,10 @@ namespace MAME.Core
} }
else if (address >= 0xff0000 && address + 3 <= 0xffffff) else if (address >= 0xff0000 && address + 3 <= 0xffffff)
{ {
Memory.mainram[(address & 0xffff)] = (byte)(value >> 24); *(Memory.mainram + (address & 0xffff)) = (byte)(value >> 24);
Memory.mainram[(address & 0xffff) + 1] = (byte)(value >> 16); *(Memory.mainram + (address & 0xffff) + 1) = (byte)(value >> 16);
Memory.mainram[(address & 0xffff) + 2] = (byte)(value >> 8); *(Memory.mainram + (address & 0xffff) + 2) = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 3] = (byte)(value); *(Memory.mainram + (address & 0xffff) + 3) = (byte)(value);
} }
else else
{ {
@ -1723,11 +1723,11 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0x7fff) if (address <= 0x7fff)
{ {
result = Memory.audiorom[address & 0x7fff]; result = *(Memory.audiorom + (address & 0x7fff));
} }
else if (address >= 0x8000 && address <= 0xbfff) else if (address >= 0x8000 && address <= 0xbfff)
{ {
result = Memory.audiorom[basebanksnd + (address & 0x3fff)]; result = *(Memory.audiorom + (basebanksnd + (address & 0x3fff)));
} }
else if (address >= 0xc000 && address <= 0xcfff) else if (address >= 0xc000 && address <= 0xcfff)
{ {

View File

@ -233,7 +233,7 @@
} }
else if (address >= 0xff0000 && address <= 0xffffff) else if (address >= 0xff0000 && address <= 0xffffff)
{ {
result = (sbyte)Memory.mainram[address & 0xffff]; result = (sbyte)*(Memory.mainram + (address & 0xffff) );
} }
return result; return result;
} }
@ -276,7 +276,7 @@
} }
else if (address >= 0xff0000 && address + 1 <= 0xffffff) else if (address >= 0xff0000 && address + 1 <= 0xffffff)
{ {
result = (short)(Memory.mainram[(address & 0xffff)] * 0x100 + Memory.mainram[(address & 0xffff) + 1]); result = (short)(*(Memory.mainram + (address & 0xffff)) * 0x100 + *(Memory.mainram + (address & 0xffff) + 1));
} }
return result; return result;
} }
@ -318,7 +318,7 @@
} }
else if (address >= 0xff0000 && address + 3 <= 0xffffff) 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 + (address & 0xffff)) * 0x1000000 + *(Memory.mainram + (address & 0xffff) + 1) * 0x10000 + *(Memory.mainram + (address & 0xffff) + 2) * 0x100 + *(Memory.mainram + (address & 0xffff) + 3));
} }
return result; return result;
} }
@ -367,7 +367,7 @@
} }
else if (address >= 0xff0000 && address <= 0xffffff) else if (address >= 0xff0000 && address <= 0xffffff)
{ {
Memory.mainram[(address & 0xffff)] = (byte)(value); *(Memory.mainram + (address & 0xffff)) = (byte)(value);
} }
else else
{ {
@ -413,8 +413,8 @@
} }
else if (address >= 0xff0000 && address + 1 <= 0xffffff) else if (address >= 0xff0000 && address + 1 <= 0xffffff)
{ {
Memory.mainram[(address & 0xffff)] = (byte)(value >> 8); *(Memory.mainram + (address & 0xffff)) = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 1] = (byte)(value); *(Memory.mainram + (address & 0xffff) + 1) = (byte)(value);
} }
else else
{ {
@ -466,10 +466,10 @@
} }
else if (address >= 0xff0000 && address + 3 <= 0xffffff) else if (address >= 0xff0000 && address + 3 <= 0xffffff)
{ {
Memory.mainram[(address & 0xffff)] = (byte)(value >> 24); *(Memory.mainram + (address & 0xffff)) = (byte)(value >> 24);
Memory.mainram[(address & 0xffff) + 1] = (byte)(value >> 16); *(Memory.mainram + (address & 0xffff) + 1) = (byte)(value >> 16);
Memory.mainram[(address & 0xffff) + 2] = (byte)(value >> 8); *(Memory.mainram + (address & 0xffff) + 2) = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 3] = (byte)(value); *(Memory.mainram + (address & 0xffff) + 3) = (byte)(value);
} }
else else
{ {
@ -538,7 +538,7 @@
} }
else if (address >= 0xff0000 && address <= 0xffffff) else if (address >= 0xff0000 && address <= 0xffffff)
{ {
result = (sbyte)Memory.mainram[address & 0xffff]; result = (sbyte)*(Memory.mainram + (address & 0xffff) );
} }
return result; return result;
} }
@ -593,7 +593,7 @@
} }
else if (address >= 0xff0000 && address + 1 <= 0xffffff) else if (address >= 0xff0000 && address + 1 <= 0xffffff)
{ {
result = (short)(Memory.mainram[(address & 0xffff)] * 0x100 + Memory.mainram[(address & 0xffff) + 1]); result = (short)(*(Memory.mainram + (address & 0xffff)) * 0x100 + *(Memory.mainram + (address & 0xffff) + 1));
} }
return result; return result;
} }
@ -647,7 +647,7 @@
} }
else if (address >= 0xff0000 && address + 3 <= 0xffffff) 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 + (address & 0xffff)) * 0x1000000 + *(Memory.mainram + (address & 0xffff) + 1) * 0x10000 + *(Memory.mainram + (address & 0xffff) + 2) * 0x100 + *(Memory.mainram + (address & 0xffff) + 3));
} }
return result; return result;
} }
@ -704,7 +704,7 @@
} }
else if (address >= 0xff0000 && address <= 0xffffff) else if (address >= 0xff0000 && address <= 0xffffff)
{ {
Memory.mainram[(address & 0xffff)] = (byte)(value); *(Memory.mainram + (address & 0xffff)) = (byte)(value);
} }
else else
{ {
@ -760,8 +760,8 @@
} }
else if (address >= 0xff0000 && address + 1 <= 0xffffff) else if (address >= 0xff0000 && address + 1 <= 0xffffff)
{ {
Memory.mainram[(address & 0xffff)] = (byte)(value >> 8); *(Memory.mainram + (address & 0xffff)) = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 1] = (byte)(value); *(Memory.mainram + (address & 0xffff) + 1) = (byte)(value);
} }
else else
{ {
@ -827,10 +827,10 @@
} }
else if (address >= 0xff0000 && address + 3 <= 0xffffff) else if (address >= 0xff0000 && address + 3 <= 0xffffff)
{ {
Memory.mainram[(address & 0xffff)] = (byte)(value >> 24); *(Memory.mainram + (address & 0xffff)) = (byte)(value >> 24);
Memory.mainram[(address & 0xffff) + 1] = (byte)(value >> 16); *(Memory.mainram + (address & 0xffff) + 1) = (byte)(value >> 16);
Memory.mainram[(address & 0xffff) + 2] = (byte)(value >> 8); *(Memory.mainram + (address & 0xffff) + 2) = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 3] = (byte)(value); *(Memory.mainram + (address & 0xffff) + 3) = (byte)(value);
} }
else else
{ {
@ -1091,7 +1091,7 @@
} }
else if (address >= 0xff0000 && address <= 0xffffef) else if (address >= 0xff0000 && address <= 0xffffef)
{ {
result = (sbyte)Memory.mainram[address & 0xffff]; result = (sbyte)*(Memory.mainram + (address & 0xffff) );
} }
else if (address >= 0xfffff0 && address <= 0xfffffb) else if (address >= 0xfffff0 && address <= 0xfffffb)
{ {
@ -1222,7 +1222,7 @@
} }
else if (address >= 0xff0000 && address + 1 <= 0xffffef) else if (address >= 0xff0000 && address + 1 <= 0xffffef)
{ {
return (short)(Memory.mainram[(address & 0xffff)] * 0x100 + Memory.mainram[(address & 0xffff) + 1]); return (short)(*(Memory.mainram + (address & 0xffff)) * 0x100 + *(Memory.mainram + (address & 0xffff) + 1));
} }
else if (address >= 0xfffff0 && address + 1 <= 0xfffffb) else if (address >= 0xfffff0 && address + 1 <= 0xfffffb)
{ {
@ -1362,7 +1362,7 @@
} }
else if (address >= 0xff0000 && address + 3 <= 0xffffef) 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 + (address & 0xffff)) * 0x1000000 + *(Memory.mainram + (address & 0xffff) + 1) * 0x10000 + *(Memory.mainram + (address & 0xffff) + 2) * 0x100 + *(Memory.mainram + (address & 0xffff) + 3));
} }
else if (address >= 0xfffff0 && address + 3 <= 0xfffffb) else if (address >= 0xfffff0 && address + 3 <= 0xfffffb)
{ {
@ -1483,7 +1483,7 @@
} }
else if (address >= 0xff0000 && address <= 0xffffef) else if (address >= 0xff0000 && address <= 0xffffef)
{ {
Memory.mainram[(address & 0xffff)] = (byte)(value); *(Memory.mainram + (address & 0xffff)) = (byte)(value);
} }
else if (address >= 0xfffff0 && address <= 0xfffffb) else if (address >= 0xfffff0 && address <= 0xfffffb)
{ {
@ -1599,8 +1599,8 @@
} }
else if (address >= 0xff0000 && address + 1 <= 0xffffef) else if (address >= 0xff0000 && address + 1 <= 0xffffef)
{ {
Memory.mainram[address & 0xffff] = (byte)(value >> 8); *(Memory.mainram + (address & 0xffff) ) = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 1] = (byte)value; *(Memory.mainram + (address & 0xffff) + 1) = (byte)value;
} }
else if (address >= 0xfffff0 && address + 1 <= 0xfffffb) else if (address >= 0xfffff0 && address + 1 <= 0xfffffb)
{ {
@ -1732,10 +1732,10 @@
} }
else if (address >= 0xff0000 && address + 3 <= 0xffffef) else if (address >= 0xff0000 && address + 3 <= 0xffffef)
{ {
Memory.mainram[(address & 0xffff)] = (byte)(value >> 24); *(Memory.mainram + (address & 0xffff)) = (byte)(value >> 24);
Memory.mainram[(address & 0xffff) + 1] = (byte)(value >> 16); *(Memory.mainram + (address & 0xffff) + 1) = (byte)(value >> 16);
Memory.mainram[(address & 0xffff) + 2] = (byte)(value >> 8); *(Memory.mainram + (address & 0xffff) + 2) = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 3] = (byte)(value); *(Memory.mainram + (address & 0xffff) + 3) = (byte)(value);
} }
else if (address >= 0xfffff0 && address + 3 <= 0xfffffb) else if (address >= 0xfffff0 && address + 3 <= 0xfffffb)
{ {

View File

@ -9,7 +9,7 @@
byte result = 0; byte result = 0;
if (address <= 0x7ff) if (address <= 0x7ff)
{ {
result = Memory.mainram[address]; result = *(Memory.mainram + (address));
} }
else if (address >= 0x4000 && address <= 0x5fff) else if (address >= 0x4000 && address <= 0x5fff)
{ {
@ -32,7 +32,7 @@
byte result = 0; byte result = 0;
if (address <= 0x7ff) if (address <= 0x7ff)
{ {
result = Memory.mainram[address]; result = *(Memory.mainram + (address));
} }
else if (address >= 0x4000 && address <= 0x5fff) else if (address >= 0x4000 && address <= 0x5fff)
{ {
@ -55,7 +55,7 @@
byte result = 0; byte result = 0;
if (address <= 0x7ff) if (address <= 0x7ff)
{ {
result = Memory.mainram[address]; result = *(Memory.mainram + (address));
} }
else if (address == 0x1800) else if (address == 0x1800)
{ {
@ -89,7 +89,7 @@
{ {
if (address <= 0x7ff) if (address <= 0x7ff)
{ {
Memory.mainram[address] = data; *(Memory.mainram + (address)) = data;
} }
else if (address >= 0x800 && address <= 0xfff) else if (address >= 0x800 && address <= 0xfff)
{ {
@ -123,7 +123,7 @@
byte result = 0; byte result = 0;
if (address <= 0x7ff) if (address <= 0x7ff)
{ {
result = Memory.audioram[address]; result = *(Memory.audioram+address);
} }
else if (address >= 0x4000 && address <= 0x7fff) else if (address >= 0x4000 && address <= 0x7fff)
{ {
@ -142,16 +142,16 @@
byte result = 0; byte result = 0;
if (address <= 0x7ff) if (address <= 0x7ff)
{ {
result = Memory.audioram[address]; result = *(Memory.audioram+address);
} }
else if (address >= 0x4000 && address <= 0x7fff) else if (address >= 0x4000 && address <= 0x7fff)
{ {
int offset = address - 0x4000; int offset = address - 0x4000;
result = Memory.audiorom[basebanksnd + offset]; result = *(Memory.audiorom + basebanksnd + offset);
} }
else if (address >= 0x8000 && address <= 0xffff) else if (address >= 0x8000 && address <= 0xffff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
return result; return result;
} }
@ -160,16 +160,16 @@
byte result = 0; byte result = 0;
if (address <= 0x7ff) if (address <= 0x7ff)
{ {
result = Memory.audioram[address]; result = *(Memory.audioram+address);
} }
else if (address >= 0x4000 && address <= 0x7fff) else if (address >= 0x4000 && address <= 0x7fff)
{ {
int offset = address - 0x4000; int offset = address - 0x4000;
result = Memory.audiorom[basebanksnd + offset]; result = *(Memory.audiorom + basebanksnd + offset);
} }
else if (address >= 0x8000 && address <= 0xffff) else if (address >= 0x8000 && address <= 0xffff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
return result; return result;
} }
@ -178,7 +178,7 @@
byte result = 0; byte result = 0;
if (address <= 0x7ff) if (address <= 0x7ff)
{ {
result = Memory.audioram[address]; result = *(Memory.audioram+address);
} }
else if (address == 0x3000) else if (address == 0x3000)
{ {
@ -191,11 +191,11 @@
else if (address >= 0x4000 && address <= 0x7fff) else if (address >= 0x4000 && address <= 0x7fff)
{ {
int offset = address - 0x4000; int offset = address - 0x4000;
result = Memory.audiorom[basebanksnd + offset]; result = *(Memory.audiorom + basebanksnd + offset);
} }
else if (address >= 0x8000 && address <= 0xffff) else if (address >= 0x8000 && address <= 0xffff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
return result; return result;
} }
@ -203,7 +203,7 @@
{ {
if (address <= 0x7ff) if (address <= 0x7ff)
{ {
Memory.audioram[address] = data; *(Memory.audioram+address) = data;
} }
else if (address == 0x0800) else if (address == 0x0800)
{ {
@ -231,7 +231,7 @@
} }
else if (address >= 0x4000 && address <= 0xffff) else if (address >= 0x4000 && address <= 0xffff)
{ {
Memory.audiorom[address] = data; *Memory.audiorom = data;
} }
} }
} }

View File

@ -1486,7 +1486,7 @@
else if (address >= 0x100000 && address <= 0x103fff) else if (address >= 0x100000 && address <= 0x103fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
result = (sbyte)Memory.mainram[offset]; result = (sbyte)*(Memory.mainram + offset);
} }
else if (address >= 0x1f0000 && address <= 0x1f3fff) else if (address >= 0x1f0000 && address <= 0x1f3fff)
{ {
@ -1590,7 +1590,7 @@
else if (address >= 0x100000 && address + 1 <= 0x103fff) else if (address >= 0x100000 && address + 1 <= 0x103fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (short)(*(Memory.mainram + offset) * 0x100 +*(Memory.mainram + (offset+1)));
} }
else if (address >= 0x1f0000 && address + 1 <= 0x1f3fff) else if (address >= 0x1f0000 && address + 1 <= 0x1f3fff)
{ {
@ -1644,7 +1644,7 @@
else if (address >= 0x100000 && address + 3 <= 0x103fff) else if (address >= 0x100000 && address + 3 <= 0x103fff)
{ {
int offset = address - 0x100000; 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 + offset) * 0x1000000 +*(Memory.mainram + (offset+1)) * 0x10000 +*(Memory.mainram + (offset+2)) * 0x100 +*(Memory.mainram + (offset+3)));
} }
return result; return result;
} }
@ -1667,7 +1667,7 @@
else if (address >= 0x100000 && address + 3 <= 0x103fff) else if (address >= 0x100000 && address + 3 <= 0x103fff)
{ {
int offset = address - 0x100000; 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 + offset) * 0x1000000 +*(Memory.mainram + (offset+1)) * 0x10000 +*(Memory.mainram + (offset+2)) * 0x100 +*(Memory.mainram + (offset+3)));
} }
else if (address >= 0x1f0000 && address + 3 <= 0x1f3fff) else if (address >= 0x1f0000 && address + 3 <= 0x1f3fff)
{ {
@ -1718,7 +1718,7 @@
else if (address >= 0x100000 && address <= 0x103fff) else if (address >= 0x100000 && address <= 0x103fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value); *(Memory.mainram + offset) = (byte)(value);
} }
else if (address >= 0x1f0000 && address <= 0x1f3fff) else if (address >= 0x1f0000 && address <= 0x1f3fff)
{ {
@ -1841,8 +1841,8 @@
else if (address >= 0x100000 && address + 1 <= 0x103fff) else if (address >= 0x100000 && address + 1 <= 0x103fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 8); *(Memory.mainram + offset) = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value; *(Memory.mainram + (offset+1)) = (byte)value;
} }
else if (address >= 0x1f0000 && address + 1 <= 0x1f3fff) else if (address >= 0x1f0000 && address + 1 <= 0x1f3fff)
{ {
@ -1929,10 +1929,10 @@
if (address >= 0x100000 && address + 3 <= 0x103fff) if (address >= 0x100000 && address + 3 <= 0x103fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 24); *(Memory.mainram + offset) = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16); *(Memory.mainram + (offset+1)) = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8); *(Memory.mainram + (offset+2)) = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value; *(Memory.mainram + (offset+3)) = (byte)value;
} }
else if (address >= 0x1f0000 && address + 3 <= 0x1f3fff) else if (address >= 0x1f0000 && address + 3 <= 0x1f3fff)
{ {

View File

@ -1141,7 +1141,7 @@ namespace MAME.Core
else if (addr >= 0x104000 && addr <= 0x107fff) else if (addr >= 0x104000 && addr <= 0x107fff)
{ {
int offset = addr - 0x104000; int offset = addr - 0x104000;
result = Memory.mainram[offset]; result = *(Memory.mainram + offset);
} }
else if (addr >= 0x180000 && addr <= 0x183fff) else if (addr >= 0x180000 && addr <= 0x183fff)
{ {
@ -1168,7 +1168,7 @@ namespace MAME.Core
else if (addr >= 0x104000 && addr <= 0x107fff) else if (addr >= 0x104000 && addr <= 0x107fff)
{ {
int offset = addr - 0x104000; int offset = addr - 0x104000;
result = (ushort)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (ushort)(*(Memory.mainram + offset) * 0x100 +*(Memory.mainram + (offset+1)));
} }
else if (addr >= 0x180000 && addr <= 0x183fff) else if (addr >= 0x180000 && addr <= 0x183fff)
{ {
@ -1198,8 +1198,8 @@ namespace MAME.Core
else if (addr >= 0x104000 && addr <= 0x107fff) else if (addr >= 0x104000 && addr <= 0x107fff)
{ {
int offset = (addr - 0x104000) / 2; int offset = (addr - 0x104000) / 2;
Memory.mainram[offset] = (byte)(data >> 8); *(Memory.mainram + offset) = (byte)(data >> 8);
Memory.mainram[offset + 1] = (byte)data; *(Memory.mainram + (offset+1)) = (byte)data;
} }
} }
public static void tmnt2_1c0800_w(int offset, ushort data) public static void tmnt2_1c0800_w(int offset, ushort data)

View File

@ -25,7 +25,7 @@ namespace MAME.Core
else if (address >= 0x040000 && address <= 0x043fff) else if (address >= 0x040000 && address <= 0x043fff)
{ {
int offset = address - 0x040000; int offset = address - 0x040000;
result = (sbyte)Memory.mainram[offset]; result = (sbyte)*(Memory.mainram + offset);
} }
else if (address >= 0x060000 && address <= 0x063fff) else if (address >= 0x060000 && address <= 0x063fff)
{ {
@ -52,7 +52,7 @@ namespace MAME.Core
else if (address >= 0x040000 && address <= 0x043fff) else if (address >= 0x040000 && address <= 0x043fff)
{ {
int offset = address - 0x040000; int offset = address - 0x040000;
result = (sbyte)Memory.mainram[offset]; result = (sbyte)*(Memory.mainram + offset);
} }
else if (address >= 0x060000 && address <= 0x063fff) else if (address >= 0x060000 && address <= 0x063fff)
{ {
@ -202,7 +202,7 @@ namespace MAME.Core
else if (address >= 0x040000 && address + 1 <= 0x043fff) else if (address >= 0x040000 && address + 1 <= 0x043fff)
{ {
int offset = address - 0x040000; int offset = address - 0x040000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (short)(*(Memory.mainram + offset) * 0x100 + *(Memory.mainram + (offset + 1)));
} }
else if (address >= 0x060000 && address + 1 <= 0x063fff) else if (address >= 0x060000 && address + 1 <= 0x063fff)
{ {
@ -229,7 +229,7 @@ namespace MAME.Core
else if (address >= 0x040000 && address + 1 <= 0x043fff) else if (address >= 0x040000 && address + 1 <= 0x043fff)
{ {
int offset = address - 0x040000; int offset = address - 0x040000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (short)(*(Memory.mainram + offset) * 0x100 + *(Memory.mainram + (offset + 1)));
} }
else if (address >= 0x060000 && address + 1 <= 0x063fff) else if (address >= 0x060000 && address + 1 <= 0x063fff)
{ {
@ -309,7 +309,7 @@ namespace MAME.Core
else if (address >= 0x040000 && address + 3 <= 0x043fff) else if (address >= 0x040000 && address + 3 <= 0x043fff)
{ {
int offset = address - 0x040000; 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 + offset) * 0x1000000 + *(Memory.mainram + (offset + 1)) * 0x10000 + *(Memory.mainram + (offset + 2)) * 0x100 + *(Memory.mainram + (offset + 3)));
} }
else if (address >= 0x060000 && address + 3 <= 0x063fff) else if (address >= 0x060000 && address + 3 <= 0x063fff)
{ {
@ -336,7 +336,7 @@ namespace MAME.Core
else if (address >= 0x040000 && address + 3 <= 0x043fff) else if (address >= 0x040000 && address + 3 <= 0x043fff)
{ {
int offset = address - 0x040000; 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 + offset) * 0x1000000 + *(Memory.mainram + (offset + 1)) * 0x10000 + *(Memory.mainram + (offset + 2)) * 0x100 + *(Memory.mainram + (offset + 3)));
} }
else if (address >= 0x060000 && address + 3 <= 0x063fff) else if (address >= 0x060000 && address + 3 <= 0x063fff)
{ {
@ -380,7 +380,7 @@ namespace MAME.Core
if (address >= 0x040000 && address <= 0x043fff) if (address >= 0x040000 && address <= 0x043fff)
{ {
int offset = address - 0x040000; int offset = address - 0x040000;
Memory.mainram[offset] = (byte)value; *(Memory.mainram + offset) = (byte)value;
} }
else if (address >= 0x060000 && address <= 0x063fff) else if (address >= 0x060000 && address <= 0x063fff)
{ {
@ -490,8 +490,8 @@ namespace MAME.Core
if (address >= 0x040000 && address + 1 <= 0x043fff) if (address >= 0x040000 && address + 1 <= 0x043fff)
{ {
int offset = address - 0x040000; int offset = address - 0x040000;
Memory.mainram[offset] = (byte)(value >> 8); *(Memory.mainram + offset) = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value; *(Memory.mainram + (offset + 1)) = (byte)value;
} }
else if (address >= 0x060000 && address + 1 <= 0x063fff) else if (address >= 0x060000 && address + 1 <= 0x063fff)
{ {
@ -555,10 +555,10 @@ namespace MAME.Core
if (address >= 0x040000 && address + 3 <= 0x043fff) if (address >= 0x040000 && address + 3 <= 0x043fff)
{ {
int offset = address - 0x040000; int offset = address - 0x040000;
Memory.mainram[offset] = (byte)(value >> 24); *(Memory.mainram + offset) = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16); *(Memory.mainram + (offset + 1)) = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8); *(Memory.mainram + (offset + 2)) = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value; *(Memory.mainram + (offset + 3)) = (byte)value;
} }
else if (address >= 0x060000 && address + 3 <= 0x063fff) else if (address >= 0x060000 && address + 3 <= 0x063fff)
{ {
@ -627,7 +627,7 @@ namespace MAME.Core
else if (address >= 0x040000 && address <= 0x043fff) else if (address >= 0x040000 && address <= 0x043fff)
{ {
int offset = address - 0x040000; int offset = address - 0x040000;
result = (sbyte)Memory.mainram[offset]; result = (sbyte)*(Memory.mainram + offset);
} }
else if (address >= 0x060000 && address <= 0x063fff) else if (address >= 0x060000 && address <= 0x063fff)
{ {
@ -654,7 +654,7 @@ namespace MAME.Core
else if (address >= 0x040000 && address <= 0x043fff) else if (address >= 0x040000 && address <= 0x043fff)
{ {
int offset = address - 0x040000; int offset = address - 0x040000;
result = (sbyte)Memory.mainram[offset]; result = (sbyte)*(Memory.mainram + offset);
} }
else if (address >= 0x060000 && address <= 0x063fff) else if (address >= 0x060000 && address <= 0x063fff)
{ {
@ -781,7 +781,7 @@ namespace MAME.Core
else if (address >= 0x040000 && address + 1 <= 0x043fff) else if (address >= 0x040000 && address + 1 <= 0x043fff)
{ {
int offset = address - 0x040000; int offset = address - 0x040000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (short)(*(Memory.mainram + offset) * 0x100 + *(Memory.mainram + (offset + 1)));
} }
else if (address >= 0x060000 && address + 1 <= 0x063fff) else if (address >= 0x060000 && address + 1 <= 0x063fff)
{ {
@ -808,7 +808,7 @@ namespace MAME.Core
else if (address >= 0x040000 && address + 1 <= 0x043fff) else if (address >= 0x040000 && address + 1 <= 0x043fff)
{ {
int offset = address - 0x040000; int offset = address - 0x040000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (short)(*(Memory.mainram + offset) * 0x100 + *(Memory.mainram + (offset + 1)));
} }
else if (address >= 0x060000 && address + 1 <= 0x063fff) else if (address >= 0x060000 && address + 1 <= 0x063fff)
{ {
@ -879,7 +879,7 @@ namespace MAME.Core
else if (address >= 0x040000 && address + 3 <= 0x043fff) else if (address >= 0x040000 && address + 3 <= 0x043fff)
{ {
int offset = address - 0x040000; 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 + offset) * 0x1000000 + *(Memory.mainram + (offset + 1)) * 0x10000 + *(Memory.mainram + (offset + 2)) * 0x100 + *(Memory.mainram + (offset + 3)));
} }
else if (address >= 0x060000 && address + 3 <= 0x063fff) else if (address >= 0x060000 && address + 3 <= 0x063fff)
{ {
@ -907,7 +907,7 @@ namespace MAME.Core
else if (address >= 0x040000 && address + 3 <= 0x043fff) else if (address >= 0x040000 && address + 3 <= 0x043fff)
{ {
int offset = address - 0x040000; 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 + offset) * 0x1000000 + *(Memory.mainram + (offset + 1)) * 0x10000 + *(Memory.mainram + (offset + 2)) * 0x100 + *(Memory.mainram + (offset + 3)));
} }
else if (address >= 0x060000 && address + 3 <= 0x063fff) else if (address >= 0x060000 && address + 3 <= 0x063fff)
{ {
@ -942,7 +942,7 @@ namespace MAME.Core
if (address >= 0x040000 && address <= 0x043fff) if (address >= 0x040000 && address <= 0x043fff)
{ {
int offset = address - 0x040000; int offset = address - 0x040000;
Memory.mainram[offset] = (byte)value; *(Memory.mainram + offset) = (byte)value;
} }
else if (address >= 0x060000 && address <= 0x063fff) else if (address >= 0x060000 && address <= 0x063fff)
{ {
@ -1016,8 +1016,8 @@ namespace MAME.Core
if (address >= 0x040000 && address + 1 <= 0x043fff) if (address >= 0x040000 && address + 1 <= 0x043fff)
{ {
int offset = address - 0x040000; int offset = address - 0x040000;
Memory.mainram[offset] = (byte)(value >> 8); *(Memory.mainram + offset) = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value; *(Memory.mainram + (offset + 1)) = (byte)value;
} }
else if (address >= 0x060000 && address + 1 <= 0x063fff) else if (address >= 0x060000 && address + 1 <= 0x063fff)
{ {
@ -1066,10 +1066,10 @@ namespace MAME.Core
if (address >= 0x040000 && address + 3 <= 0x043fff) if (address >= 0x040000 && address + 3 <= 0x043fff)
{ {
int offset = address - 0x040000; int offset = address - 0x040000;
Memory.mainram[offset] = (byte)(value >> 24); *(Memory.mainram + offset) = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16); *(Memory.mainram + (offset + 1)) = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8); *(Memory.mainram + (offset + 2)) = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value; *(Memory.mainram + (offset + 3)) = (byte)value;
} }
else if (address >= 0x060000 && address + 3 <= 0x063fff) else if (address >= 0x060000 && address + 3 <= 0x063fff)
{ {
@ -1126,7 +1126,7 @@ namespace MAME.Core
else if (address >= 0x060000 && address <= 0x063fff) else if (address >= 0x060000 && address <= 0x063fff)
{ {
int offset = address - 0x060000; int offset = address - 0x060000;
result = (sbyte)Memory.mainram[offset]; result = (sbyte)*(Memory.mainram + offset);
} }
return result; return result;
} }
@ -1148,7 +1148,7 @@ namespace MAME.Core
else if (address >= 0x060000 && address <= 0x063fff) else if (address >= 0x060000 && address <= 0x063fff)
{ {
int offset = address - 0x060000; int offset = address - 0x060000;
result = (sbyte)Memory.mainram[offset]; result = (sbyte)*(Memory.mainram + offset);
} }
else if (address >= 0x080000 && address <= 0x080fff) else if (address >= 0x080000 && address <= 0x080fff)
{ {
@ -1292,7 +1292,7 @@ namespace MAME.Core
else if (address >= 0x060000 && address + 1 <= 0x063fff) else if (address >= 0x060000 && address + 1 <= 0x063fff)
{ {
int offset = address - 0x060000; int offset = address - 0x060000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (short)(*(Memory.mainram + offset) * 0x100 + *(Memory.mainram + (offset + 1)));
} }
return result; return result;
} }
@ -1314,7 +1314,7 @@ namespace MAME.Core
else if (address >= 0x060000 && address + 1 <= 0x063fff) else if (address >= 0x060000 && address + 1 <= 0x063fff)
{ {
int offset = address - 0x060000; int offset = address - 0x060000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (short)(*(Memory.mainram + offset) * 0x100 + *(Memory.mainram + (offset + 1)));
} }
else if (address >= 0x080000 && address + 1 <= 0x080fff) else if (address >= 0x080000 && address + 1 <= 0x080fff)
{ {
@ -1388,7 +1388,7 @@ namespace MAME.Core
else if (address >= 0x060000 && address + 3 <= 0x063fff) else if (address >= 0x060000 && address + 3 <= 0x063fff)
{ {
int offset = address - 0x060000; 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 + offset) * 0x1000000 + *(Memory.mainram + (offset + 1)) * 0x10000 + *(Memory.mainram + (offset + 2)) * 0x100 + *(Memory.mainram + (offset + 3)));
} }
return result; return result;
} }
@ -1410,7 +1410,7 @@ namespace MAME.Core
else if (address >= 0x060000 && address + 3 <= 0x063fff) else if (address >= 0x060000 && address + 3 <= 0x063fff)
{ {
int offset = address - 0x060000; 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 + offset) * 0x1000000 + *(Memory.mainram + (offset + 1)) * 0x10000 + *(Memory.mainram + (offset + 2)) * 0x100 + *(Memory.mainram + (offset + 3)));
} }
else if (address >= 0x080000 && address + 3 <= 0x080fff) else if (address >= 0x080000 && address + 3 <= 0x080fff)
{ {
@ -1440,7 +1440,7 @@ namespace MAME.Core
if (address >= 0x060000 && address <= 0x063fff) if (address >= 0x060000 && address <= 0x063fff)
{ {
int offset = address - 0x060000; int offset = address - 0x060000;
Memory.mainram[offset] = (byte)value; *(Memory.mainram + offset) = (byte)value;
} }
else if (address >= 0x080000 && address <= 0x080fff) else if (address >= 0x080000 && address <= 0x080fff)
{ {
@ -1513,8 +1513,8 @@ namespace MAME.Core
if (address >= 0x060000 && address + 1 <= 0x063fff) if (address >= 0x060000 && address + 1 <= 0x063fff)
{ {
int offset = address - 0x060000; int offset = address - 0x060000;
Memory.mainram[offset] = (byte)(value >> 8); *(Memory.mainram + offset) = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value; *(Memory.mainram + (offset + 1)) = (byte)value;
} }
else if (address >= 0x080000 && address + 1 <= 0x080fff) else if (address >= 0x080000 && address + 1 <= 0x080fff)
{ {
@ -1561,10 +1561,10 @@ namespace MAME.Core
if (address >= 0x060000 && address + 3 <= 0x063fff) if (address >= 0x060000 && address + 3 <= 0x063fff)
{ {
int offset = address - 0x060000; int offset = address - 0x060000;
Memory.mainram[offset] = (byte)(value >> 24); *(Memory.mainram + offset) = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16); *(Memory.mainram + (offset + 1)) = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8); *(Memory.mainram + (offset + 2)) = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value; *(Memory.mainram + (offset + 3)) = (byte)value;
} }
else if (address >= 0x080000 && address + 3 <= 0x080fff) else if (address >= 0x080000 && address + 3 <= 0x080fff)
{ {
@ -1613,7 +1613,7 @@ namespace MAME.Core
else if (address >= 0x080000 && address <= 0x083fff) else if (address >= 0x080000 && address <= 0x083fff)
{ {
int offset = address - 0x080000; int offset = address - 0x080000;
result = (sbyte)Memory.mainram[offset]; result = (sbyte)*(Memory.mainram + offset);
} }
return result; return result;
} }
@ -1635,7 +1635,7 @@ namespace MAME.Core
else if (address >= 0x080000 && address <= 0x083fff) else if (address >= 0x080000 && address <= 0x083fff)
{ {
int offset = address - 0x080000; int offset = address - 0x080000;
result = (sbyte)Memory.mainram[offset]; result = (sbyte)*(Memory.mainram + offset);
} }
else if (address >= 0x090000 && address <= 0x090fff) else if (address >= 0x090000 && address <= 0x090fff)
{ {
@ -1751,7 +1751,7 @@ namespace MAME.Core
else if (address >= 0x080000 && address + 1 <= 0x083fff) else if (address >= 0x080000 && address + 1 <= 0x083fff)
{ {
int offset = address - 0x080000; int offset = address - 0x080000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (short)(*(Memory.mainram + offset) * 0x100 + *(Memory.mainram + (offset + 1)));
} }
return result; return result;
} }
@ -1773,7 +1773,7 @@ namespace MAME.Core
else if (address >= 0x080000 && address + 1 <= 0x083fff) else if (address >= 0x080000 && address + 1 <= 0x083fff)
{ {
int offset = address - 0x080000; int offset = address - 0x080000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (short)(*(Memory.mainram + offset) * 0x100 + *(Memory.mainram + (offset + 1)));
} }
else if (address >= 0x090000 && address + 1 <= 0x090fff) else if (address >= 0x090000 && address + 1 <= 0x090fff)
{ {
@ -1840,7 +1840,7 @@ namespace MAME.Core
else if (address >= 0x080000 && address + 3 <= 0x083fff) else if (address >= 0x080000 && address + 3 <= 0x083fff)
{ {
int offset = address - 0x080000; 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 + offset) * 0x1000000 + *(Memory.mainram + (offset + 1)) * 0x10000 + *(Memory.mainram + (offset + 2)) * 0x100 + *(Memory.mainram + (offset + 3)));
} }
return result; return result;
} }
@ -1863,7 +1863,7 @@ namespace MAME.Core
else if (address >= 0x080000 && address + 3 <= 0x083fff) else if (address >= 0x080000 && address + 3 <= 0x083fff)
{ {
int offset = address - 0x080000; 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 + offset) * 0x1000000 + *(Memory.mainram + (offset + 1)) * 0x10000 + *(Memory.mainram + (offset + 2)) * 0x100 + *(Memory.mainram + (offset + 3)));
} }
else if (address >= 0x090000 && address + 3 <= 0x090fff) else if (address >= 0x090000 && address + 3 <= 0x090fff)
{ {
@ -1902,7 +1902,7 @@ namespace MAME.Core
if (address >= 0x080000 && address <= 0x083fff) if (address >= 0x080000 && address <= 0x083fff)
{ {
int offset = address - 0x080000; int offset = address - 0x080000;
Memory.mainram[offset] = (byte)value; *(Memory.mainram + offset) = (byte)value;
} }
else if (address >= 0x090000 && address <= 0x090fff) else if (address >= 0x090000 && address <= 0x090fff)
{ {
@ -1983,8 +1983,8 @@ namespace MAME.Core
if (address >= 0x080000 && address + 1 <= 0x083fff) if (address >= 0x080000 && address + 1 <= 0x083fff)
{ {
int offset = address - 0x080000; int offset = address - 0x080000;
Memory.mainram[offset] = (byte)(value >> 8); *(Memory.mainram + offset) = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value; *(Memory.mainram + (offset + 1)) = (byte)value;
} }
else if (address >= 0x090000 && address + 1 <= 0x090fff) else if (address >= 0x090000 && address + 1 <= 0x090fff)
{ {
@ -2032,10 +2032,10 @@ namespace MAME.Core
if (address >= 0x080000 && address + 3 <= 0x083fff) if (address >= 0x080000 && address + 3 <= 0x083fff)
{ {
int offset = address - 0x080000; int offset = address - 0x080000;
Memory.mainram[offset] = (byte)(value >> 24); *(Memory.mainram + offset) = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16); *(Memory.mainram + (offset + 1)) = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8); *(Memory.mainram + (offset + 2)) = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value; *(Memory.mainram + (offset + 3)) = (byte)value;
} }
else if (address >= 0x090000 && address + 3 <= 0x090fff) else if (address >= 0x090000 && address + 3 <= 0x090fff)
{ {
@ -2090,7 +2090,7 @@ namespace MAME.Core
else if (address >= 0x090000 && address <= 0x093fff) else if (address >= 0x090000 && address <= 0x093fff)
{ {
int offset = address - 0x090000; int offset = address - 0x090000;
result = (sbyte)Memory.mainram[offset]; result = (sbyte)*(Memory.mainram + offset);
} }
return result; return result;
} }
@ -2124,7 +2124,7 @@ namespace MAME.Core
else if (address >= 0x090000 && address <= 0x093fff) else if (address >= 0x090000 && address <= 0x093fff)
{ {
int offset = address - 0x090000; int offset = address - 0x090000;
result = (sbyte)Memory.mainram[offset]; result = (sbyte)*(Memory.mainram + offset);
} }
else if (address >= 0x0a0000 && address <= 0x0a0001) else if (address >= 0x0a0000 && address <= 0x0a0001)
{ {
@ -2260,7 +2260,7 @@ namespace MAME.Core
else if (address >= 0x090000 && address + 1 <= 0x093fff) else if (address >= 0x090000 && address + 1 <= 0x093fff)
{ {
int offset = address - 0x090000; int offset = address - 0x090000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (short)(*(Memory.mainram + offset) * 0x100 + *(Memory.mainram + (offset + 1)));
} }
return result; return result;
} }
@ -2287,7 +2287,7 @@ namespace MAME.Core
else if (address >= 0x090000 && address + 1 <= 0x093fff) else if (address >= 0x090000 && address + 1 <= 0x093fff)
{ {
int offset = address - 0x090000; int offset = address - 0x090000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (short)(*(Memory.mainram + offset) * 0x100 + *(Memory.mainram + (offset + 1)));
} }
else if (address >= 0x0a0000 && address + 1 <= 0x0a0001) else if (address >= 0x0a0000 && address + 1 <= 0x0a0001)
{ {
@ -2359,7 +2359,7 @@ namespace MAME.Core
else if (address >= 0x090000 && address + 3 <= 0x093fff) else if (address >= 0x090000 && address + 3 <= 0x093fff)
{ {
int offset = address - 0x090000; 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 + offset) * 0x1000000 + *(Memory.mainram + (offset + 1)) * 0x10000 + *(Memory.mainram + (offset + 2)) * 0x100 + *(Memory.mainram + (offset + 3)));
} }
return result; return result;
} }
@ -2387,7 +2387,7 @@ namespace MAME.Core
else if (address >= 0x090000 && address + 3 <= 0x093fff) else if (address >= 0x090000 && address + 3 <= 0x093fff)
{ {
int offset = address - 0x090000; 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 + offset) * 0x1000000 + *(Memory.mainram + (offset + 1)) * 0x10000 + *(Memory.mainram + (offset + 2)) * 0x100 + *(Memory.mainram + (offset + 3)));
} }
else if (address >= 0x0a0020 && address + 3 <= 0x0a0023) else if (address >= 0x0a0020 && address + 3 <= 0x0a0023)
{ {
@ -2429,7 +2429,7 @@ namespace MAME.Core
else if (address >= 0x090000 && address <= 0x093fff) else if (address >= 0x090000 && address <= 0x093fff)
{ {
int offset = address - 0x090000; int offset = address - 0x090000;
Memory.mainram[offset] = (byte)value; *(Memory.mainram + offset) = (byte)value;
} }
else if (address >= 0x0a0018 && address <= 0x0a0019) else if (address >= 0x0a0018 && address <= 0x0a0019)
{ {
@ -2517,8 +2517,8 @@ namespace MAME.Core
else if (address >= 0x090000 && address + 1 <= 0x093fff) else if (address >= 0x090000 && address + 1 <= 0x093fff)
{ {
int offset = address - 0x090000; int offset = address - 0x090000;
Memory.mainram[offset] = (byte)(value >> 8); *(Memory.mainram + offset) = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value; *(Memory.mainram + (offset + 1)) = (byte)value;
} }
else if (address >= 0x0a0018 && address + 1 <= 0x0a0019) else if (address >= 0x0a0018 && address + 1 <= 0x0a0019)
{ {
@ -2565,10 +2565,10 @@ namespace MAME.Core
else if (address >= 0x090000 && address + 3 <= 0x093fff) else if (address >= 0x090000 && address + 3 <= 0x093fff)
{ {
int offset = address - 0x090000; int offset = address - 0x090000;
Memory.mainram[offset] = (byte)(value >> 24); *(Memory.mainram + offset) = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16); *(Memory.mainram + (offset + 1)) = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8); *(Memory.mainram + (offset + 2)) = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value; *(Memory.mainram + (offset + 3)) = (byte)value;
} }
else if (address >= 0x0b0000 && address + 3 <= 0x0b3fff) else if (address >= 0x0b0000 && address + 3 <= 0x0b3fff)
{ {
@ -2605,7 +2605,7 @@ namespace MAME.Core
} }
else if (address >= 0x104000 && address <= 0x107fff) else if (address >= 0x104000 && address <= 0x107fff)
{ {
result = (sbyte)Memory.mainram[address - 0x104000]; result = (sbyte)*(Memory.mainram + (address - 0x104000));
} }
return result; return result;
} }
@ -2619,7 +2619,7 @@ namespace MAME.Core
} }
else if (address >= 0x104000 && address <= 0x107fff) else if (address >= 0x104000 && address <= 0x107fff)
{ {
result = (sbyte)Memory.mainram[address - 0x104000]; result = (sbyte)*(Memory.mainram + (address - 0x104000));
} }
else if (address >= 0x140000 && address <= 0x140fff) else if (address >= 0x140000 && address <= 0x140fff)
{ {
@ -2785,7 +2785,7 @@ namespace MAME.Core
} }
else if (address >= 0x104000 && address + 1 <= 0x107fff) else if (address >= 0x104000 && address + 1 <= 0x107fff)
{ {
result = (short)(Memory.mainram[address - 0x104000] * 0x100 + Memory.mainram[address - 0x104000 + 1]); result = (short)(*(Memory.mainram + (address - 0x104000)) * 0x100 + *(Memory.mainram + (address - 0x104000 + 1)));
} }
return result; return result;
} }
@ -2806,7 +2806,7 @@ namespace MAME.Core
} }
else if (address >= 0x104000 && address + 1 <= 0x107fff) else if (address >= 0x104000 && address + 1 <= 0x107fff)
{ {
result = (short)(Memory.mainram[address - 0x104000] * 0x100 + Memory.mainram[address - 0x104000 + 1]); result = (short)(*(Memory.mainram + (address - 0x104000)) * 0x100 + *(Memory.mainram + (address - 0x104000 + 1)));
} }
else if (address >= 0x140000 && address + 1 <= 0x140fff) else if (address >= 0x140000 && address + 1 <= 0x140fff)
{ {
@ -2888,7 +2888,7 @@ namespace MAME.Core
} }
else if (address >= 0x104000 && address + 3 <= 0x107fff) 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 + (address - 0x104000)) * 0x1000000 + *(Memory.mainram + (address - 0x104000 + 1)) * 0x10000 + *(Memory.mainram + (address - 0x104000 + 2)) * 0x100 + *(Memory.mainram + (address - 0x104000 + 3)));
} }
return result; return result;
} }
@ -2909,7 +2909,7 @@ namespace MAME.Core
} }
else if (address >= 0x104000 && address + 3 <= 0x107fff) 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 + (address - 0x104000)) * 0x1000000 + *(Memory.mainram + (address - 0x104000 + 1)) * 0x10000 + *(Memory.mainram + (address - 0x104000 + 2)) * 0x100 + *(Memory.mainram + (address - 0x104000 + 3)));
} }
else if (address >= 0x140000 && address + 3 <= 0x140fff) else if (address >= 0x140000 && address + 3 <= 0x140fff)
{ {
@ -2948,7 +2948,7 @@ namespace MAME.Core
if (address >= 0x104000 && address <= 0x107fff) if (address >= 0x104000 && address <= 0x107fff)
{ {
int offset = address - 0x104000; int offset = address - 0x104000;
Memory.mainram[offset] = (byte)value; *(Memory.mainram + offset) = (byte)value;
} }
else if (address >= 0x140000 && address <= 0x140fff) else if (address >= 0x140000 && address <= 0x140fff)
{ {
@ -3071,8 +3071,8 @@ namespace MAME.Core
if (address >= 0x104000 && address + 1 <= 0x107fff) if (address >= 0x104000 && address + 1 <= 0x107fff)
{ {
int offset = address - 0x104000; int offset = address - 0x104000;
Memory.mainram[offset] = (byte)(value >> 8); *(Memory.mainram + offset) = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value; *(Memory.mainram + (offset + 1)) = (byte)value;
} }
else if (address >= 0x140000 && address + 1 <= 0x140fff) else if (address >= 0x140000 && address + 1 <= 0x140fff)
{ {
@ -3141,10 +3141,10 @@ namespace MAME.Core
if (address >= 0x104000 && address + 3 <= 0x107fff) if (address >= 0x104000 && address + 3 <= 0x107fff)
{ {
int offset = address - 0x104000; int offset = address - 0x104000;
Memory.mainram[offset] = (byte)(value >> 24); *(Memory.mainram + offset) = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16); *(Memory.mainram + (offset + 1)) = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8); *(Memory.mainram + (offset + 2)) = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value; *(Memory.mainram + (offset + 3)) = (byte)value;
} }
else if (address >= 0x140000 && address + 3 <= 0x140fff) else if (address >= 0x140000 && address + 3 <= 0x140fff)
{ {
@ -3196,12 +3196,12 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0x7fff) if (address <= 0x7fff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0x8000 && address <= 0x87ff) else if (address >= 0x8000 && address <= 0x87ff)
{ {
int offset = address - 0x8000; int offset = address - 0x8000;
result = Memory.audioram[offset]; result = *(Memory.audioram + offset);
} }
else else
{ {
@ -3214,12 +3214,12 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0x7fff) if (address <= 0x7fff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0x8000 && address <= 0x87ff) else if (address >= 0x8000 && address <= 0x87ff)
{ {
int offset = address - 0x8000; int offset = address - 0x8000;
result = Memory.audioram[offset]; result = *(Memory.audioram + offset);
} }
else if (address == 0xa000) else if (address == 0xa000)
{ {
@ -3241,7 +3241,7 @@ namespace MAME.Core
if (address >= 0x8000 && address <= 0x87ff) if (address >= 0x8000 && address <= 0x87ff)
{ {
int offset = address - 0x8000; int offset = address - 0x8000;
Memory.audioram[offset] = value; *(Memory.audioram + offset) = value;
} }
else if (address >= 0xb000 && address <= 0xb00d) else if (address >= 0xb000 && address <= 0xb00d)
{ {
@ -3262,12 +3262,12 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0x7fff) if (address <= 0x7fff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0x8000 && address <= 0x87ff) else if (address >= 0x8000 && address <= 0x87ff)
{ {
int offset = address - 0x8000; int offset = address - 0x8000;
result = Memory.audioram[offset]; result = *(Memory.audioram + offset);
} }
else else
{ {
@ -3280,12 +3280,12 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0x7fff) if (address <= 0x7fff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0x8000 && address <= 0x87ff) else if (address >= 0x8000 && address <= 0x87ff)
{ {
int offset = address - 0x8000; int offset = address - 0x8000;
result = Memory.audioram[offset]; result = *(Memory.audioram + offset);
} }
else if (address == 0x9000) else if (address == 0x9000)
{ {
@ -3315,7 +3315,7 @@ namespace MAME.Core
if (address >= 0x8000 && address <= 0x87ff) if (address >= 0x8000 && address <= 0x87ff)
{ {
int offset = address - 0x8000; int offset = address - 0x8000;
Memory.audioram[offset] = value; *(Memory.audioram + offset) = value;
} }
else if (address == 0x9000) else if (address == 0x9000)
{ {
@ -3348,12 +3348,12 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0x7fff) if (address <= 0x7fff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0xf000 && address <= 0xf7ff) else if (address >= 0xf000 && address <= 0xf7ff)
{ {
int offset = address - 0xf000; int offset = address - 0xf000;
result = Memory.audioram[offset]; result = *(Memory.audioram + offset);
} }
else else
{ {
@ -3366,12 +3366,12 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0x7fff) if (address <= 0x7fff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0xf000 && address <= 0xf7ff) else if (address >= 0xf000 && address <= 0xf7ff)
{ {
int offset = address - 0xf000; int offset = address - 0xf000;
result = Memory.audioram[offset]; result = *(Memory.audioram + offset);
} }
else if (address == 0xf801) else if (address == 0xf801)
{ {
@ -3389,7 +3389,7 @@ namespace MAME.Core
if (address >= 0xf000 && address <= 0xf7ff) if (address >= 0xf000 && address <= 0xf7ff)
{ {
int offset = address - 0xf000; int offset = address - 0xf000;
Memory.audioram[offset] = value; *(Memory.audioram + offset) = value;
} }
else if (address == 0xf800) else if (address == 0xf800)
{ {
@ -3414,12 +3414,12 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0x7fff) if (address <= 0x7fff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0x8000 && address <= 0x87ff) else if (address >= 0x8000 && address <= 0x87ff)
{ {
int offset = address - 0x8000; int offset = address - 0x8000;
result = Memory.audioram[offset]; result = *(Memory.audioram + offset);
} }
else else
{ {
@ -3432,12 +3432,12 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0x7fff) if (address <= 0x7fff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0x8000 && address <= 0x87ff) else if (address >= 0x8000 && address <= 0x87ff)
{ {
int offset = address - 0x8000; int offset = address - 0x8000;
result = Memory.audioram[offset]; result = *(Memory.audioram + offset);
} }
else if (address == 0xa001) else if (address == 0xa001)
{ {
@ -3455,7 +3455,7 @@ namespace MAME.Core
if (address >= 0x8000 && address <= 0x87ff) if (address >= 0x8000 && address <= 0x87ff)
{ {
int offset = address - 0x8000; int offset = address - 0x8000;
Memory.audioram[offset] = value; *(Memory.audioram + offset) = value;
} }
else if (address == 0xa000) else if (address == 0xa000)
{ {
@ -3476,12 +3476,12 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0xefff) if (address <= 0xefff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0xf000 && address <= 0xf7ff) else if (address >= 0xf000 && address <= 0xf7ff)
{ {
int offset = address - 0xf000; int offset = address - 0xf000;
result = Memory.audioram[offset]; result = *(Memory.audioram + offset);
} }
else else
{ {
@ -3494,12 +3494,12 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0xefff) if (address <= 0xefff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0xf000 && address <= 0xf7ff) else if (address >= 0xf000 && address <= 0xf7ff)
{ {
int offset = address - 0xf000; int offset = address - 0xf000;
result = Memory.audioram[offset]; result = *(Memory.audioram + offset);
} }
else if (address == 0xf801) else if (address == 0xf801)
{ {
@ -3517,7 +3517,7 @@ namespace MAME.Core
if (address >= 0xf000 && address <= 0xf7ff) if (address >= 0xf000 && address <= 0xf7ff)
{ {
int offset = address - 0xf000; int offset = address - 0xf000;
Memory.audioram[offset] = value; *(Memory.audioram + offset) = value;
} }
else if (address == 0xf800) else if (address == 0xf800)
{ {

View File

@ -20,7 +20,7 @@
else if (address >= 0x204000 && address <= 0x207fff) else if (address >= 0x204000 && address <= 0x207fff)
{ {
int offset = address - 0x204000; int offset = address - 0x204000;
result = (sbyte)Memory.mainram[offset]; result = (sbyte)*(Memory.mainram + offset);
} }
return result; return result;
} }
@ -54,7 +54,7 @@
else if (address >= 0x204000 && address <= 0x207fff) else if (address >= 0x204000 && address <= 0x207fff)
{ {
int offset = address - 0x204000; int offset = address - 0x204000;
result = (sbyte)Memory.mainram[offset]; result = (sbyte)*(Memory.mainram + offset);
} }
else if (address >= 0x300000 && address <= 0x303fff) else if (address >= 0x300000 && address <= 0x303fff)
{ {
@ -182,7 +182,7 @@
else if (address >= 0x204000 && address + 1 <= 0x207fff) else if (address >= 0x204000 && address + 1 <= 0x207fff)
{ {
int offset = address - 0x204000; int offset = address - 0x204000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (short)(*(Memory.mainram + offset) * 0x100 +*(Memory.mainram + (offset+1)));
} }
return result; return result;
} }
@ -209,7 +209,7 @@
else if (address >= 0x204000 && address + 1 <= 0x207fff) else if (address >= 0x204000 && address + 1 <= 0x207fff)
{ {
int offset = address - 0x204000; int offset = address - 0x204000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (short)(*(Memory.mainram + offset) * 0x100 +*(Memory.mainram + (offset+1)));
} }
else if (address >= 0x300000 && address + 1 <= 0x303fff) else if (address >= 0x300000 && address + 1 <= 0x303fff)
{ {
@ -276,7 +276,7 @@
else if (address >= 0x204000 && address + 3 <= 0x207fff) else if (address >= 0x204000 && address + 3 <= 0x207fff)
{ {
int offset = address - 0x204000; 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 + offset) * 0x1000000 +*(Memory.mainram + (offset+1)) * 0x10000 +*(Memory.mainram + (offset+2)) * 0x100 +*(Memory.mainram + (offset+3)));
} }
return result; return result;
} }
@ -304,7 +304,7 @@
else if (address >= 0x204000 && address + 3 <= 0x207fff) else if (address >= 0x204000 && address + 3 <= 0x207fff)
{ {
int offset = address - 0x204000; 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 + offset) * 0x1000000 +*(Memory.mainram + (offset+1)) * 0x10000 +*(Memory.mainram + (offset+2)) * 0x100 +*(Memory.mainram + (offset+3)));
} }
else if (address >= 0x300000 && address + 3 <= 0x303fff) else if (address >= 0x300000 && address + 3 <= 0x303fff)
{ {
@ -356,7 +356,7 @@
else if (address >= 0x204000 && address <= 0x207fff) else if (address >= 0x204000 && address <= 0x207fff)
{ {
int offset = address - 0x204000; int offset = address - 0x204000;
Memory.mainram[offset] = (byte)value; *(Memory.mainram + offset) = (byte)value;
} }
else if (address >= 0x300000 && address <= 0x303fff) else if (address >= 0x300000 && address <= 0x303fff)
{ {
@ -472,8 +472,8 @@
else if (address >= 0x204000 && address + 1 <= 0x207fff) else if (address >= 0x204000 && address + 1 <= 0x207fff)
{ {
int offset = address - 0x204000; int offset = address - 0x204000;
Memory.mainram[offset] = (byte)(value >> 8); *(Memory.mainram + offset) = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value; *(Memory.mainram + (offset+1)) = (byte)value;
} }
else if (address >= 0x300000 && address + 1 <= 0x303fff) else if (address >= 0x300000 && address + 1 <= 0x303fff)
{ {
@ -534,10 +534,10 @@
else if (address >= 0x204000 && address + 3 <= 0x207fff) else if (address >= 0x204000 && address + 3 <= 0x207fff)
{ {
int offset = address - 0x204000; int offset = address - 0x204000;
Memory.mainram[offset] = (byte)(value >> 24); *(Memory.mainram + offset) = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16); *(Memory.mainram + (offset+1)) = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8); *(Memory.mainram + (offset+2)) = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value; *(Memory.mainram + (offset+3)) = (byte)value;
} }
else if (address >= 0x300000 && address + 3 <= 0x303fff) else if (address >= 0x300000 && address + 3 <= 0x303fff)
{ {
@ -588,7 +588,7 @@
else if (address >= 0x100000 && address <= 0x103fff) else if (address >= 0x100000 && address <= 0x103fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
result = (sbyte)Memory.mainram[offset]; result = (sbyte)*(Memory.mainram + offset);
} }
return result; return result;
} }
@ -610,7 +610,7 @@
else if (address >= 0x100000 && address <= 0x103fff) else if (address >= 0x100000 && address <= 0x103fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
result = (sbyte)Memory.mainram[offset]; result = (sbyte)*(Memory.mainram + offset);
} }
else if (address >= 0x104000 && address <= 0x107fff) else if (address >= 0x104000 && address <= 0x107fff)
{ {
@ -772,7 +772,7 @@
else if (address >= 0x100000 && address + 1 <= 0x103fff) else if (address >= 0x100000 && address + 1 <= 0x103fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (short)(*(Memory.mainram + offset) * 0x100 +*(Memory.mainram + (offset+1)));
} }
return result; return result;
} }
@ -794,7 +794,7 @@
else if (address >= 0x100000 && address + 1 <= 0x103fff) else if (address >= 0x100000 && address + 1 <= 0x103fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (short)(*(Memory.mainram + offset) * 0x100 +*(Memory.mainram + (offset+1)));
} }
else if (address >= 0x104000 && address + 1 <= 0x107fff) else if (address >= 0x104000 && address + 1 <= 0x107fff)
{ {
@ -876,7 +876,7 @@
else if (address >= 0x100000 && address + 3 <= 0x103fff) else if (address >= 0x100000 && address + 3 <= 0x103fff)
{ {
int offset = address - 0x100000; 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 + offset) * 0x1000000 +*(Memory.mainram + (offset+1)) * 0x10000 +*(Memory.mainram + (offset+2)) * 0x100 +*(Memory.mainram + (offset+3)));
} }
return result; return result;
} }
@ -899,7 +899,7 @@
else if (address >= 0x100000 && address + 3 <= 0x103fff) else if (address >= 0x100000 && address + 3 <= 0x103fff)
{ {
int offset = address - 0x100000; 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 + offset) * 0x1000000 +*(Memory.mainram + (offset+1)) * 0x10000 +*(Memory.mainram + (offset+2)) * 0x100 +*(Memory.mainram + (offset+3)));
} }
else if (address >= 0x104000 && address + 3 <= 0x107fff) else if (address >= 0x104000 && address + 3 <= 0x107fff)
{ {
@ -944,7 +944,7 @@
if (address >= 0x100000 && address <= 0x103fff) if (address >= 0x100000 && address <= 0x103fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value); *(Memory.mainram + offset) = (byte)(value);
} }
else if (address >= 0x104000 && address <= 0x107fff) else if (address >= 0x104000 && address <= 0x107fff)
{ {
@ -1077,8 +1077,8 @@
if (address >= 0x100000 && address + 1 <= 0x103fff) if (address >= 0x100000 && address + 1 <= 0x103fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 8); *(Memory.mainram + offset) = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value; *(Memory.mainram + (offset+1)) = (byte)value;
} }
else if (address >= 0x104000 && address + 1 <= 0x107fff) else if (address >= 0x104000 && address + 1 <= 0x107fff)
{ {
@ -1141,10 +1141,10 @@
if (address >= 0x100000 && address + 3 <= 0x103fff) if (address >= 0x100000 && address + 3 <= 0x103fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 24); *(Memory.mainram + offset) = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16); *(Memory.mainram + (offset+1)) = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8); *(Memory.mainram + (offset+2)) = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value; *(Memory.mainram + (offset+3)) = (byte)value;
} }
else if (address >= 0x104000 && address + 3 <= 0x107fff) else if (address >= 0x104000 && address + 3 <= 0x107fff)
{ {
@ -1219,7 +1219,7 @@
else if (address >= 0x104000 && address <= 0x107fff) else if (address >= 0x104000 && address <= 0x107fff)
{ {
int offset = address - 0x104000; int offset = address - 0x104000;
result = (sbyte)Memory.mainram[offset]; result = (sbyte)*(Memory.mainram + offset);
} }
return result; return result;
} }
@ -1241,7 +1241,7 @@
else if (address >= 0x104000 && address <= 0x107fff) else if (address >= 0x104000 && address <= 0x107fff)
{ {
int offset = address - 0x104000; int offset = address - 0x104000;
result = (sbyte)Memory.mainram[offset]; result = (sbyte)*(Memory.mainram + offset);
} }
else if (address >= 0x140000 && address <= 0x140fff) else if (address >= 0x140000 && address <= 0x140fff)
{ {
@ -1398,7 +1398,7 @@
else if (address >= 0x104000 && address + 1 <= 0x107fff) else if (address >= 0x104000 && address + 1 <= 0x107fff)
{ {
int offset = address - 0x104000; int offset = address - 0x104000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (short)(*(Memory.mainram + offset) * 0x100 +*(Memory.mainram + (offset+1)));
} }
return result; return result;
} }
@ -1420,7 +1420,7 @@
else if (address >= 0x104000 && address + 1 <= 0x107fff) else if (address >= 0x104000 && address + 1 <= 0x107fff)
{ {
int offset = address - 0x104000; int offset = address - 0x104000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (short)(*(Memory.mainram + offset) * 0x100 +*(Memory.mainram + (offset+1)));
} }
else if (address >= 0x140000 && address + 1 <= 0x140fff) else if (address >= 0x140000 && address + 1 <= 0x140fff)
{ {
@ -1506,7 +1506,7 @@
else if (address >= 0x104000 && address + 3 <= 0x107fff) else if (address >= 0x104000 && address + 3 <= 0x107fff)
{ {
int offset = address - 0x104000; 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 + offset) * 0x1000000 +*(Memory.mainram + (offset+1)) * 0x10000 +*(Memory.mainram + (offset+2)) * 0x100 +*(Memory.mainram + (offset+3)));
} }
return result; return result;
} }
@ -1529,7 +1529,7 @@
else if (address >= 0x104000 && address + 3 <= 0x107fff) else if (address >= 0x104000 && address + 3 <= 0x107fff)
{ {
int offset = address - 0x104000; 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 + offset) * 0x1000000 +*(Memory.mainram + (offset+1)) * 0x10000 +*(Memory.mainram + (offset+2)) * 0x100 +*(Memory.mainram + (offset+3)));
} }
else if (address >= 0x140000 && address + 3 <= 0x140fff) else if (address >= 0x140000 && address + 3 <= 0x140fff)
{ {
@ -1569,7 +1569,7 @@
if (address >= 0x104000 && address <= 0x107fff) if (address >= 0x104000 && address <= 0x107fff)
{ {
int offset = address - 0x104000; int offset = address - 0x104000;
Memory.mainram[offset] = (byte)(value); *(Memory.mainram + offset) = (byte)(value);
} }
else if (address >= 0x140000 && address <= 0x140fff) else if (address >= 0x140000 && address <= 0x140fff)
{ {
@ -1699,8 +1699,8 @@
if (address >= 0x104000 && address + 1 <= 0x107fff) if (address >= 0x104000 && address + 1 <= 0x107fff)
{ {
int offset = address - 0x104000; int offset = address - 0x104000;
Memory.mainram[offset] = (byte)(value >> 8); *(Memory.mainram + offset) = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value; *(Memory.mainram + (offset+1)) = (byte)value;
} }
else if (address >= 0x140000 && address + 1 <= 0x140fff) else if (address >= 0x140000 && address + 1 <= 0x140fff)
{ {
@ -1768,10 +1768,10 @@
if (address >= 0x104000 && address + 3 <= 0x107fff) if (address >= 0x104000 && address + 3 <= 0x107fff)
{ {
int offset = address - 0x104000; int offset = address - 0x104000;
Memory.mainram[offset] = (byte)(value >> 24); *(Memory.mainram + offset) = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16); *(Memory.mainram + (offset+1)) = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8); *(Memory.mainram + (offset+2)) = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value; *(Memory.mainram + (offset+3)) = (byte)value;
} }
else if (address >= 0x140000 && address + 3 <= 0x140fff) else if (address >= 0x140000 && address + 3 <= 0x140fff)
{ {
@ -1836,7 +1836,7 @@
else if (address >= 0x100000 && address <= 0x103fff) else if (address >= 0x100000 && address <= 0x103fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
result = (sbyte)Memory.mainram[offset]; result = (sbyte)*(Memory.mainram + offset);
} }
return result; return result;
} }
@ -1858,7 +1858,7 @@
else if (address >= 0x100000 && address <= 0x103fff) else if (address >= 0x100000 && address <= 0x103fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
result = (sbyte)Memory.mainram[offset]; result = (sbyte)*(Memory.mainram + offset);
} }
else if (address >= 0x200000 && address <= 0x200fff) else if (address >= 0x200000 && address <= 0x200fff)
{ {
@ -1960,7 +1960,7 @@
else if (address >= 0x100000 && address + 1 <= 0x103fff) else if (address >= 0x100000 && address + 1 <= 0x103fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (short)(*(Memory.mainram + offset) * 0x100 +*(Memory.mainram + (offset+1)));
} }
return result; return result;
} }
@ -1982,7 +1982,7 @@
else if (address >= 0x100000 && address + 1 <= 0x103fff) else if (address >= 0x100000 && address + 1 <= 0x103fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (short)(*(Memory.mainram + offset) * 0x100 +*(Memory.mainram + (offset+1)));
} }
else if (address >= 0x200000 && address + 1 <= 0x200fff) else if (address >= 0x200000 && address + 1 <= 0x200fff)
{ {
@ -2042,7 +2042,7 @@
else if (address >= 0x100000 && address + 3 <= 0x103fff) else if (address >= 0x100000 && address + 3 <= 0x103fff)
{ {
int offset = address - 0x100000; 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 + offset) * 0x1000000 +*(Memory.mainram + (offset+1)) * 0x10000 +*(Memory.mainram + (offset+2)) * 0x100 +*(Memory.mainram + (offset+3)));
} }
return result; return result;
} }
@ -2065,7 +2065,7 @@
else if (address >= 0x100000 && address + 3 <= 0x103fff) else if (address >= 0x100000 && address + 3 <= 0x103fff)
{ {
int offset = address - 0x100000; 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 + offset) * 0x1000000 +*(Memory.mainram + (offset+1)) * 0x10000 +*(Memory.mainram + (offset+2)) * 0x100 +*(Memory.mainram + (offset+3)));
} }
else if (address >= 0x200000 && address + 3 <= 0x200fff) else if (address >= 0x200000 && address + 3 <= 0x200fff)
{ {
@ -2105,7 +2105,7 @@
if (address >= 0x100000 && address <= 0x103fff) if (address >= 0x100000 && address <= 0x103fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value); *(Memory.mainram + offset) = (byte)(value);
} }
else if (address >= 0x200000 && address <= 0x200fff) else if (address >= 0x200000 && address <= 0x200fff)
{ {
@ -2199,8 +2199,8 @@
if (address >= 0x100000 && address + 1 <= 0x103fff) if (address >= 0x100000 && address + 1 <= 0x103fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 8); *(Memory.mainram + offset) = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value; *(Memory.mainram + (offset+1)) = (byte)value;
} }
else if (address >= 0x200000 && address + 1 <= 0x200fff) else if (address >= 0x200000 && address + 1 <= 0x200fff)
{ {
@ -2255,10 +2255,10 @@
if (address >= 0x100000 && address + 3 <= 0x103fff) if (address >= 0x100000 && address + 3 <= 0x103fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 24); *(Memory.mainram + offset) = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16); *(Memory.mainram + (offset+1)) = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8); *(Memory.mainram + (offset+2)) = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value; *(Memory.mainram + (offset+3)) = (byte)value;
} }
else if (address >= 0x200000 && address + 3 <= 0x200fff) else if (address >= 0x200000 && address + 3 <= 0x200fff)
{ {
@ -2319,7 +2319,7 @@
else if (address >= 0x100000 && address <= 0x103fff) else if (address >= 0x100000 && address <= 0x103fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
result = (sbyte)Memory.mainram[offset]; result = (sbyte)*(Memory.mainram + offset);
} }
return result; return result;
} }
@ -2341,7 +2341,7 @@
else if (address >= 0x100000 && address <= 0x103fff) else if (address >= 0x100000 && address <= 0x103fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
result = (sbyte)Memory.mainram[offset]; result = (sbyte)*(Memory.mainram + offset);
} }
else if (address >= 0x104000 && address <= 0x107fff) else if (address >= 0x104000 && address <= 0x107fff)
{ {
@ -2468,7 +2468,7 @@
else if (address >= 0x100000 && address + 1 <= 0x103fff) else if (address >= 0x100000 && address + 1 <= 0x103fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (short)(*(Memory.mainram + offset) * 0x100 +*(Memory.mainram + (offset+1)));
} }
return result; return result;
} }
@ -2490,7 +2490,7 @@
else if (address >= 0x100000 && address + 1 <= 0x103fff) else if (address >= 0x100000 && address + 1 <= 0x103fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (short)(*(Memory.mainram + offset) * 0x100 +*(Memory.mainram + (offset+1)));
} }
else if (address >= 0x104000 && address + 1 <= 0x107fff) else if (address >= 0x104000 && address + 1 <= 0x107fff)
{ {
@ -2557,7 +2557,7 @@
else if (address >= 0x100000 && address + 3 <= 0x103fff) else if (address >= 0x100000 && address + 3 <= 0x103fff)
{ {
int offset = address - 0x100000; 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 + offset) * 0x1000000 +*(Memory.mainram + (offset+1)) * 0x10000 +*(Memory.mainram + (offset+2)) * 0x100 +*(Memory.mainram + (offset+3)));
} }
return result; return result;
} }
@ -2580,7 +2580,7 @@
else if (address >= 0x100000 && address + 3 <= 0x103fff) else if (address >= 0x100000 && address + 3 <= 0x103fff)
{ {
int offset = address - 0x100000; 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 + offset) * 0x1000000 +*(Memory.mainram + (offset+1)) * 0x10000 +*(Memory.mainram + (offset+2)) * 0x100 +*(Memory.mainram + (offset+3)));
} }
else if (address >= 0x104000 && address + 3 <= 0x107fff) else if (address >= 0x104000 && address + 3 <= 0x107fff)
{ {
@ -2620,7 +2620,7 @@
if (address >= 0x100000 && address <= 0x103fff) if (address >= 0x100000 && address <= 0x103fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value); *(Memory.mainram + offset) = (byte)(value);
} }
else if (address >= 0x104000 && address <= 0x107fff) else if (address >= 0x104000 && address <= 0x107fff)
{ {
@ -2756,8 +2756,8 @@
if (address >= 0x100000 && address + 1 <= 0x103fff) if (address >= 0x100000 && address + 1 <= 0x103fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 8); *(Memory.mainram + offset) = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value; *(Memory.mainram + (offset+1)) = (byte)value;
} }
else if (address >= 0x104000 && address + 1 <= 0x107fff) else if (address >= 0x104000 && address + 1 <= 0x107fff)
{ {
@ -2823,10 +2823,10 @@
if (address >= 0x100000 && address + 3 <= 0x103fff) if (address >= 0x100000 && address + 3 <= 0x103fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 24); *(Memory.mainram + offset) = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16); *(Memory.mainram + (offset+1)) = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8); *(Memory.mainram + (offset+2)) = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value; *(Memory.mainram + (offset+3)) = (byte)value;
} }
else if (address >= 0x104000 && address + 3 <= 0x107fff) else if (address >= 0x104000 && address + 3 <= 0x107fff)
{ {
@ -2888,12 +2888,12 @@
byte result = 0; byte result = 0;
if (address <= 0xefff) if (address <= 0xefff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0xf000 && address <= 0xf7ff) else if (address >= 0xf000 && address <= 0xf7ff)
{ {
int offset = address - 0xf000; int offset = address - 0xf000;
result = Memory.audioram[offset]; result = *(Memory.audioram+offset);
} }
else else
{ {
@ -2906,12 +2906,12 @@
byte result = 0; byte result = 0;
if (address <= 0xefff) if (address <= 0xefff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0xf000 && address <= 0xf7ff) else if (address >= 0xf000 && address <= 0xf7ff)
{ {
int offset = address - 0xf000; int offset = address - 0xf000;
result = Memory.audioram[offset]; result = *(Memory.audioram+offset);
} }
else if (address >= 0xf800 && address <= 0xf82f) else if (address >= 0xf800 && address <= 0xf82f)
{ {
@ -2925,7 +2925,7 @@
if (address >= 0xf000 && address <= 0xf7ff) if (address >= 0xf000 && address <= 0xf7ff)
{ {
int offset = address - 0xf000; int offset = address - 0xf000;
Memory.audioram[offset] = value; *(Memory.audioram+offset) = value;
} }
else if (address >= 0xf800 && address <= 0xf82f) else if (address >= 0xf800 && address <= 0xf82f)
{ {
@ -2942,12 +2942,12 @@
byte result = 0; byte result = 0;
if (address <= 0xefff) if (address <= 0xefff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0xf000 && address <= 0xf7ff) else if (address >= 0xf000 && address <= 0xf7ff)
{ {
int offset = address - 0xf000; int offset = address - 0xf000;
result = Memory.audioram[offset]; result = *(Memory.audioram+offset);
} }
else else
{ {
@ -2960,12 +2960,12 @@
byte result = 0; byte result = 0;
if (address <= 0xefff) if (address <= 0xefff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0xf000 && address <= 0xf7ff) else if (address >= 0xf000 && address <= 0xf7ff)
{ {
int offset = address - 0xf000; int offset = address - 0xf000;
result = Memory.audioram[offset]; result = *(Memory.audioram+offset);
} }
else if (address == 0xf801 || address == 0xf811) else if (address == 0xf801 || address == 0xf811)
{ {
@ -2983,7 +2983,7 @@
if (address >= 0xf000 && address <= 0xf7ff) if (address >= 0xf000 && address <= 0xf7ff)
{ {
int offset = address - 0xf000; int offset = address - 0xf000;
Memory.audioram[offset] = value; *(Memory.audioram+offset) = value;
} }
else if (address == 0xf800 || address == 0xf810) else if (address == 0xf800 || address == 0xf810)
{ {
@ -3008,17 +3008,17 @@
byte result = 0; byte result = 0;
if (address <= 0x7fff) if (address <= 0x7fff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0x8000 && address <= 0xbfff) else if (address >= 0x8000 && address <= 0xbfff)
{ {
int offset = address - 0x8000; int offset = address - 0x8000;
result = Memory.audiorom[basebanksnd + offset]; result = *(Memory.audiorom + basebanksnd + offset);
} }
else if (address >= 0xc000 && address <= 0xdfff) else if (address >= 0xc000 && address <= 0xdfff)
{ {
int offset = address - 0xc000; int offset = address - 0xc000;
result = Memory.audioram[offset]; result = *(Memory.audioram+offset);
} }
else else
{ {
@ -3031,17 +3031,17 @@
byte result = 0; byte result = 0;
if (address <= 0x7fff) if (address <= 0x7fff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0x8000 && address <= 0xbfff) else if (address >= 0x8000 && address <= 0xbfff)
{ {
int offset = address - 0x8000; int offset = address - 0x8000;
result = Memory.audiorom[basebanksnd + offset]; result = *(Memory.audiorom + basebanksnd + offset);
} }
else if (address >= 0xc000 && address <= 0xdfff) else if (address >= 0xc000 && address <= 0xdfff)
{ {
int offset = address - 0xc000; int offset = address - 0xc000;
result = Memory.audioram[offset]; result = *(Memory.audioram+offset);
} }
else if (address >= 0xe000 && address <= 0xe0ff) else if (address >= 0xe000 && address <= 0xe0ff)
{ {
@ -3068,12 +3068,12 @@
if (address >= 0x8000 && address <= 0xbfff) if (address >= 0x8000 && address <= 0xbfff)
{ {
int offset = address - 0x8000; int offset = address - 0x8000;
Memory.audiorom[basebanksnd + offset] = value; *(Memory.audiorom + basebanksnd + offset) = value;
} }
else if (address >= 0xc000 && address <= 0xdfff) else if (address >= 0xc000 && address <= 0xdfff)
{ {
int offset = address - 0xc000; int offset = address - 0xc000;
Memory.audioram[offset] = value; *(Memory.audioram+offset) = value;
} }
else if (address >= 0xe000 && address <= 0xe0ff) else if (address >= 0xe000 && address <= 0xe0ff)
{ {

View File

@ -280,20 +280,21 @@ namespace MAME.Core
} }
public static byte soundram_r(int offset) public static byte soundram_r(int offset)
{ {
return Memory.audioram[offset]; return *(Memory.audioram + offset);
} }
public static ushort soundram_r2(int offset) public static ushort soundram_r2(int offset)
{ {
return (ushort)(Memory.audioram[offset * 2 + 0] | (Memory.audioram[offset * 2 + 1] << 8)); return (ushort)(*(Memory.audioram+(offset * 2 + 0)) | (*(Memory.audioram+(offset * 2 + 1)) << 8));
} }
public static void soundram_w(int offset, byte data) public static void soundram_w(int offset, byte data)
{ {
Memory.audioram[offset] = data; *(Memory.audioram + offset) = data;
} }
public static void soundram_w(int offset, ushort data) public static void soundram_w(int offset, ushort data)
{ {
Memory.audioram[offset * 2] = (byte)data; //Memory.audioram[offset * 2] = (byte)data;
Memory.audioram[offset * 2 + 1] = (byte)(data >> 8); *(Memory.audioram + (offset * 2)) = (byte)data;
*(Memory.audioram+(offset * 2 + 1)) = (byte)(data >> 8);
} }
public static void machine_start_m72() public static void machine_start_m72()
{ {

View File

@ -24,7 +24,7 @@
} }
else if (address >= 0xa0000 && address <= 0xa3fff) else if (address >= 0xa0000 && address <= 0xa3fff)
{ {
result = Memory.mainram[address - 0xa0000]; result = *(Memory.mainram + (address - 0xa0000) );
} }
else if (address >= 0xc0000 && address <= 0xc03ff) else if (address >= 0xc0000 && address <= 0xc03ff)
{ {
@ -72,7 +72,7 @@
} }
else if (address >= 0xa0000 && address + 1 <= 0xa3fff) else if (address >= 0xa0000 && address + 1 <= 0xa3fff)
{ {
result = (ushort)(Memory.mainram[address - 0xa0000] + Memory.mainram[address - 0xa0000 + 1] * 0x100); result = (ushort)(*(Memory.mainram + (address - 0xa0000) ) + *(Memory.mainram + (address - 0xa0000 + 1) ) * 0x100);
} }
else if (address >= 0xc0000 && address + 1 <= 0xc03ff) else if (address >= 0xc0000 && address + 1 <= 0xc03ff)
{ {
@ -115,7 +115,7 @@
address &= 0xfffff; address &= 0xfffff;
if (address >= 0xa0000 && address <= 0xa3fff) if (address >= 0xa0000 && address <= 0xa3fff)
{ {
Memory.mainram[address - 0xa0000] = value; *(Memory.mainram + (address - 0xa0000) ) = value;
} }
else if (address >= 0xc0000 && address <= 0xc03ff) else if (address >= 0xc0000 && address <= 0xc03ff)
{ {
@ -153,8 +153,8 @@
address &= 0xfffff; address &= 0xfffff;
if (address >= 0xa0000 && address + 1 <= 0xa3fff) if (address >= 0xa0000 && address + 1 <= 0xa3fff)
{ {
Memory.mainram[address - 0xa0000] = (byte)value; *(Memory.mainram + (address - 0xa0000) ) = (byte)value;
Memory.mainram[address - 0xa0000 + 1] = (byte)(value >> 8); *(Memory.mainram + (address - 0xa0000 + 1) ) = (byte)(value >> 8);
} }
else if (address >= 0xc0000 && address + 1 <= 0xc03ff) else if (address >= 0xc0000 && address + 1 <= 0xc03ff)
{ {
@ -334,7 +334,7 @@
} }
else if (address >= 0xe0000 && address <= 0xe3fff) else if (address >= 0xe0000 && address <= 0xe3fff)
{ {
result = Memory.mainram[address - 0xe0000]; result = *(Memory.mainram + (address - 0xe0000) );
} }
else if (address >= 0xffff0 && address <= 0xfffff) else if (address >= 0xffff0 && address <= 0xfffff)
{ {
@ -377,7 +377,7 @@
} }
else if (address >= 0xe0000 && address + 1 <= 0xe3fff) else if (address >= 0xe0000 && address + 1 <= 0xe3fff)
{ {
result = (ushort)(Memory.mainram[address - 0xe0000] + Memory.mainram[address - 0xe0000 + 1] * 0x100); result = (ushort)(*(Memory.mainram + (address - 0xe0000) ) + *(Memory.mainram + (address - 0xe0000 + 1) ) * 0x100);
} }
else if (address >= 0xffff0 && address + 1 <= 0xfffff) else if (address >= 0xffff0 && address + 1 <= 0xfffff)
{ {
@ -423,7 +423,7 @@
} }
else if (address >= 0xe0000 && address <= 0xe3fff) else if (address >= 0xe0000 && address <= 0xe3fff)
{ {
Memory.mainram[address - 0xe0000] = value; *(Memory.mainram + (address - 0xe0000) ) = value;
} }
} }
public static void NWriteWord_kengo(int address, ushort value) public static void NWriteWord_kengo(int address, ushort value)
@ -464,8 +464,8 @@
} }
else if (address >= 0xe0000 && address + 1 <= 0xe3fff) else if (address >= 0xe0000 && address + 1 <= 0xe3fff)
{ {
Memory.mainram[address - 0xe0000] = (byte)value; *(Memory.mainram + (address - 0xe0000) ) = (byte)value;
Memory.mainram[address - 0xe0000 + 1] = (byte)(value >> 8); *(Memory.mainram + (address - 0xe0000 + 1) ) = (byte)(value >> 8);
} }
} }
public static void NWriteIOByte_kengo(int address, byte value) public static void NWriteIOByte_kengo(int address, byte value)
@ -535,7 +535,7 @@
byte result = 0; byte result = 0;
if (address >= 0 && address <= 0xffff) if (address >= 0 && address <= 0xffff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
return result; return result;
} }
@ -544,7 +544,7 @@
byte result = 0; byte result = 0;
if (address >= 0 && address <= 0xffff) if (address >= 0 && address <= 0xffff)
{ {
result = Memory.audioram[address]; result = *(Memory.audioram+address);
} }
return result; return result;
} }
@ -553,11 +553,11 @@
byte result = 0; byte result = 0;
if (address >= 0 && address <= 0xefff) if (address >= 0 && address <= 0xefff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0xf000 && address <= 0xffff) else if (address >= 0xf000 && address <= 0xffff)
{ {
result = Memory.audioram[address - 0xf000]; result = *(Memory.audioram+(address - 0xf000));
} }
return result; return result;
} }
@ -565,14 +565,14 @@
{ {
if (address >= 0x0000 && address <= 0xffff) if (address >= 0x0000 && address <= 0xffff)
{ {
Memory.audioram[address] = value; *(Memory.audioram+address) = value;
} }
} }
public static void ZWriteMemory_rom(ushort address, byte value) public static void ZWriteMemory_rom(ushort address, byte value)
{ {
if (address >= 0xf000 && address <= 0xffff) if (address >= 0xf000 && address <= 0xffff)
{ {
Memory.audioram[address - 0xf000] = value; *(Memory.audioram+(address - 0xf000)) = value;
} }
} }
public static byte ZReadHardware(ushort address) public static byte ZReadHardware(ushort address)

View File

@ -46,7 +46,7 @@
else if (address >= 0xe0000 && address <= 0xeffff) else if (address >= 0xe0000 && address <= 0xeffff)
{ {
int offset = address - 0xe0000; int offset = address - 0xe0000;
result = Memory.mainram[offset]; result = *(Memory.mainram + offset);
} }
else if (address >= 0xf8000 && address <= 0xf87ff) else if (address >= 0xf8000 && address <= 0xf87ff)
{ {
@ -89,7 +89,7 @@
else if (address >= 0xe0000 && address + 1 <= 0xeffff) else if (address >= 0xe0000 && address + 1 <= 0xeffff)
{ {
int offset = address - 0xe0000; int offset = address - 0xe0000;
result = (ushort)(Memory.mainram[offset] + Memory.mainram[offset + 1] * 0x100); result = (ushort)(*(Memory.mainram + offset) +*(Memory.mainram + (offset+1)) * 0x100);
} }
else if (address >= 0xf8000 && address + 1 <= 0xf87ff) else if (address >= 0xf8000 && address + 1 <= 0xf87ff)
{ {
@ -126,7 +126,7 @@
else if (address >= 0xe0000 && address <= 0xeffff) else if (address >= 0xe0000 && address <= 0xeffff)
{ {
int offset = address - 0xe0000; int offset = address - 0xe0000;
Memory.mainram[offset] = value; *(Memory.mainram + offset) = value;
} }
else if (address >= 0xf8000 && address <= 0xf87ff) else if (address >= 0xf8000 && address <= 0xf87ff)
{ {
@ -170,8 +170,8 @@
else if (address >= 0xe0000 && address + 1 <= 0xeffff) else if (address >= 0xe0000 && address + 1 <= 0xeffff)
{ {
int offset = address - 0xe0000; int offset = address - 0xe0000;
Memory.mainram[offset] = (byte)value; *(Memory.mainram + offset) = (byte)value;
Memory.mainram[offset + 1] = (byte)(value >> 8); *(Memory.mainram + (offset+1)) = (byte)(value >> 8);
} }
else if (address >= 0xf8000 && address + 1 <= 0xf87ff) else if (address >= 0xf8000 && address + 1 <= 0xf87ff)
{ {
@ -363,12 +363,13 @@
byte result = 0; byte result = 0;
if (address >= 0 && address <= 0x1ffff) if (address >= 0 && address <= 0x1ffff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0xffff0 && address <= 0xfffff) else if (address >= 0xffff0 && address <= 0xfffff)
{ {
int offset = address - 0xe0000; int offset = address - 0xe0000;
result = Memory.audiorom[offset]; //result = Memory.audiorom[offset];
result = *(Memory.audiorom + offset);
} }
return result; return result;
} }
@ -378,12 +379,12 @@
byte result = 0; byte result = 0;
if (address >= 0 && address <= 0x1ffff) if (address >= 0 && address <= 0x1ffff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0xa0000 && address <= 0xa3fff) else if (address >= 0xa0000 && address <= 0xa3fff)
{ {
int offset = address - 0xa0000; int offset = address - 0xa0000;
result = Memory.audioram[offset]; result = *(Memory.audioram + offset);
} }
else if (address >= 0xa8000 && address <= 0xa803f) else if (address >= 0xa8000 && address <= 0xa803f)
{ {
@ -411,12 +412,12 @@
ushort result = 0; ushort result = 0;
if (address >= 0 && address + 1 <= 0x1ffff) if (address >= 0 && address + 1 <= 0x1ffff)
{ {
result = (ushort)(Memory.audiorom[address] + Memory.audiorom[address + 1] * 0x100); result = (ushort)(*Memory.audiorom + *(Memory.audiorom + (address + 1)) * 0x100);
} }
else if (address >= 0xa0000 && address + 1 <= 0xa3fff) else if (address >= 0xa0000 && address + 1 <= 0xa3fff)
{ {
int offset = address - 0xa0000; int offset = address - 0xa0000;
result = (ushort)(Memory.audioram[offset] + Memory.audioram[offset + 1] * 0x100); result = (ushort)(*(Memory.audioram + offset) + *(Memory.audioram + offset + 1) * 0x100);
} }
else if (address >= 0xa8000 && address + 1 <= 0xa803f) else if (address >= 0xa8000 && address + 1 <= 0xa803f)
{ {
@ -448,7 +449,7 @@
else if (address >= 0xa0000 && address <= 0xa3fff) else if (address >= 0xa0000 && address <= 0xa3fff)
{ {
int offset = address - 0xa0000; int offset = address - 0xa0000;
Memory.audioram[offset] = value; *(Memory.audioram + offset) = value;
} }
else if (address >= 0xa8000 && address <= 0xa803f) else if (address >= 0xa8000 && address <= 0xa803f)
{ {
@ -482,8 +483,8 @@
else if (address >= 0xa0000 && address + 1 <= 0xa3fff) else if (address >= 0xa0000 && address + 1 <= 0xa3fff)
{ {
int offset = address - 0xa0000; int offset = address - 0xa0000;
Memory.audioram[offset] = (byte)value; *(Memory.audioram + offset) = (byte)value;
Memory.audioram[offset + 1] = (byte)(value >> 8); *(Memory.audioram + offset + 1) = (byte)value;
} }
else if (address >= 0xa8000 && address + 1 <= 0xa803f) else if (address >= 0xa8000 && address + 1 <= 0xa803f)
{ {

View File

@ -25,7 +25,7 @@
else if (address >= 0xe0000 && address <= 0xeffff) else if (address >= 0xe0000 && address <= 0xeffff)
{ {
int offset = address - 0xe0000; int offset = address - 0xe0000;
result = Memory.mainram[offset]; result = *(Memory.mainram + offset);
} }
else if (address >= 0xf8000 && address <= 0xf87ff) else if (address >= 0xf8000 && address <= 0xf87ff)
{ {
@ -59,7 +59,7 @@
else if (address >= 0xe0000 && address + 1 <= 0xeffff) else if (address >= 0xe0000 && address + 1 <= 0xeffff)
{ {
int offset = address - 0xe0000; int offset = address - 0xe0000;
result = (ushort)(Memory.mainram[offset] + Memory.mainram[offset + 1] * 0x100); result = (ushort)(*(Memory.mainram + offset) +*(Memory.mainram + (offset+1)) * 0x100);
} }
else if (address >= 0xf8000 && address + 1 <= 0xf87ff) else if (address >= 0xf8000 && address + 1 <= 0xf87ff)
{ {
@ -96,7 +96,7 @@
else if (address >= 0xe0000 && address <= 0xeffff) else if (address >= 0xe0000 && address <= 0xeffff)
{ {
int offset = address - 0xe0000; int offset = address - 0xe0000;
Memory.mainram[offset] = value; *(Memory.mainram + offset) = value;
} }
else if (address >= 0xf8000 && address <= 0xf87ff) else if (address >= 0xf8000 && address <= 0xf87ff)
{ {
@ -140,8 +140,8 @@
else if (address >= 0xe0000 && address + 1 <= 0xeffff) else if (address >= 0xe0000 && address + 1 <= 0xeffff)
{ {
int offset = address - 0xe0000; int offset = address - 0xe0000;
Memory.mainram[offset] = (byte)value; *(Memory.mainram + offset) = (byte)value;
Memory.mainram[offset + 1] = (byte)(value >> 8); *(Memory.mainram + (offset+1)) = (byte)(value >> 8);
} }
else if (address >= 0xf8000 && address + 1 <= 0xf87ff) else if (address >= 0xf8000 && address + 1 <= 0xf87ff)
{ {

View File

@ -27,7 +27,7 @@ namespace MAME.Core
} }
else if (address >= 0x100000 && address <= 0x1fffff) else if (address >= 0x100000 && address <= 0x1fffff)
{ {
result = (sbyte)Memory.mainram[address & 0xffff]; result = (sbyte)*(Memory.mainram + (address & 0xffff));
} }
else if (address >= 0x200000 && address <= 0x2fffff) else if (address >= 0x200000 && address <= 0x2fffff)
{ {
@ -64,7 +64,7 @@ namespace MAME.Core
} }
else if (address >= 0x100000 && address <= 0x1fffff) else if (address >= 0x100000 && address <= 0x1fffff)
{ {
result = (sbyte)Memory.mainram[address & 0xffff]; result = (sbyte)*(Memory.mainram + (address & 0xffff));
} }
else if (address >= 0x200000 && address <= 0x2fffff) else if (address >= 0x200000 && address <= 0x2fffff)
{ {
@ -200,7 +200,7 @@ namespace MAME.Core
// } // }
// else if (address >= 0x100000 && address + 1 <= 0x1fffff) // else if (address >= 0x100000 && address + 1 <= 0x1fffff)
// { // {
// result = (short)(Memory.mainram[address & 0xffff] * 0x100 + Memory.mainram[(address & 0xffff) + 1]); // result = (short)(*(Memory.mainram + (address & 0xffff) ) * 0x100 + *(Memory.mainram + (address & 0xffff) + 1));
// } // }
// else if (address >= 0x200000 && address + 1 <= 0x2fffff) // else if (address >= 0x200000 && address + 1 <= 0x2fffff)
// { // {
@ -247,9 +247,9 @@ namespace MAME.Core
} }
else if (address >= 0x100000 && address + 1 <= 0x1fffff) else if (address >= 0x100000 && address + 1 <= 0x1fffff)
{ {
byte* ptr_0 = &Memory.mainram[0]; byte* ptr_0 = Memory.mainram;
byte* ptr = ptr_0 + (address & 0xffff); byte* ptr = ptr_0 + (address & 0xffff);
//result = (short)(Memory.mainram[address & 0xffff] * 0x100 + Memory.mainram[(address & 0xffff) + 1]); //result = (short)(*(Memory.mainram + (address & 0xffff) ) * 0x100 + *(Memory.mainram + (address & 0xffff) + 1));
return (short)(*ptr * 0x100 + *(ptr + 1)); return (short)(*ptr * 0x100 + *(ptr + 1));
} }
else if (address >= 0x200000 && address + 1 <= 0x2fffff) else if (address >= 0x200000 && address + 1 <= 0x2fffff)
@ -299,7 +299,7 @@ namespace MAME.Core
// { // {
// int i1 = 1; // int i1 = 1;
// } // }
// result = (short)(Memory.mainram[address & 0xffff] * 0x100 + Memory.mainram[(address & 0xffff) + 1]); // result = (short)(*(Memory.mainram + (address & 0xffff) ) * 0x100 + *(Memory.mainram + (address & 0xffff) + 1));
// } // }
// else if (address >= 0x200000 && address <= 0x2fffff) // else if (address >= 0x200000 && address <= 0x2fffff)
// { // {
@ -401,9 +401,9 @@ namespace MAME.Core
// int i1 = 1; // int i1 = 1;
//} //}
byte* ptr_0 = &Memory.mainram[0]; byte* ptr_0 = Memory.mainram;
byte* ptr = ptr_0 + (address & 0xffff); byte* ptr = ptr_0 + (address & 0xffff);
//result = (short)(Memory.mainram[address & 0xffff] * 0x100 + Memory.mainram[(address & 0xffff) + 1]); //result = (short)(*(Memory.mainram + (address & 0xffff) ) * 0x100 + *(Memory.mainram + (address & 0xffff) + 1));
result = (short)(*ptr * 0x100 + *(ptr + 1)); result = (short)(*ptr * 0x100 + *(ptr + 1));
} }
else if (address >= 0x200000 && address <= 0x2fffff) else if (address >= 0x200000 && address <= 0x2fffff)
@ -498,7 +498,7 @@ namespace MAME.Core
} }
else if (address >= 0x100000 && address + 3 <= 0x1fffff) 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 + (address & 0xffff)) * 0x1000000 + *(Memory.mainram + (address & 0xffff) + 1) * 0x10000 + *(Memory.mainram + (address & 0xffff) + 2) * 0x100 + *(Memory.mainram + (address & 0xffff) + 3);
} }
else if (address >= 0x200000 && address + 3 <= 0x2fffff) else if (address >= 0x200000 && address + 3 <= 0x2fffff)
{ {
@ -539,7 +539,7 @@ namespace MAME.Core
} }
else if (address >= 0x100000 && address + 3 <= 0x1fffff) 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 + (address & 0xffff)) * 0x1000000 + *(Memory.mainram + (address & 0xffff) + 1) * 0x10000 + *(Memory.mainram + (address & 0xffff) + 2) * 0x100 + *(Memory.mainram + (address & 0xffff) + 3);
} }
else if (address >= 0x200000 && address + 3 <= 0x2fffff) else if (address >= 0x200000 && address + 3 <= 0x2fffff)
{ {
@ -595,7 +595,7 @@ namespace MAME.Core
// int i2 = 1; // int i2 = 1;
// //m68000Form.iStatus = 1; // //m68000Form.iStatus = 1;
// } // }
// Memory.mainram[address & 0xffff] = (byte)value; // *(Memory.mainram + (address & 0xffff) ) = (byte)value;
// } // }
// else if (address >= 0x2ffff0 && address <= 0x2fffff) // else if (address >= 0x2ffff0 && address <= 0x2fffff)
// { // {
@ -672,7 +672,7 @@ namespace MAME.Core
// int i2 = 1; // int i2 = 1;
// //m68000Form.iStatus = 1; // //m68000Form.iStatus = 1;
//} //}
Memory.mainram[address & 0xffff] = (byte)value; *(Memory.mainram + (address & 0xffff)) = (byte)value;
} }
else if (address >= 0x2ffff0 && address <= 0x2fffff) else if (address >= 0x2ffff0 && address <= 0x2fffff)
{ {
@ -753,8 +753,8 @@ namespace MAME.Core
{ {
int i1 = 1; int i1 = 1;
} }
Memory.mainram[address & 0xffff] = (byte)(value >> 8); *(Memory.mainram + (address & 0xffff)) = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 1] = (byte)value; *(Memory.mainram + (address & 0xffff) + 1) = (byte)value;
} }
else if (address >= 0x2ffff0 && address <= 0x2fffff) else if (address >= 0x2ffff0 && address <= 0x2fffff)
{ {
@ -804,10 +804,10 @@ namespace MAME.Core
{ {
int i1 = 1; int i1 = 1;
} }
Memory.mainram[address & 0xffff] = (byte)(value >> 24); *(Memory.mainram + (address & 0xffff)) = (byte)(value >> 24);
Memory.mainram[(address & 0xffff) + 1] = (byte)(value >> 16); *(Memory.mainram + (address & 0xffff) + 1) = (byte)(value >> 16);
Memory.mainram[(address & 0xffff) + 2] = (byte)(value >> 8); *(Memory.mainram + (address & 0xffff) + 2) = (byte)(value >> 8);
Memory.mainram[(address & 0xffff) + 3] = (byte)value; *(Memory.mainram + (address & 0xffff) + 3) = (byte)value;
} }
else if (address >= 0x2ffff0 && address <= 0x2fffff) else if (address >= 0x2ffff0 && address <= 0x2fffff)
{ {
@ -2229,7 +2229,7 @@ namespace MAME.Core
// byte result = 0; // byte result = 0;
// if (address >= 0x0000 && address <= 0x7fff) // if (address >= 0x0000 && address <= 0x7fff)
// { // {
// result = Memory.audiorom[address]; // result = *Memory.audiorom;
// } // }
// else if (address >= 0x8000 && address <= 0xbfff) // else if (address >= 0x8000 && address <= 0xbfff)
// { // {
@ -2288,7 +2288,7 @@ namespace MAME.Core
// byte result = 0; // byte result = 0;
// if (address >= 0x0000 && address <= 0x7fff) // if (address >= 0x0000 && address <= 0x7fff)
// { // {
// result = Memory.audiorom[address]; // result = *Memory.audiorom;
// } // }
// else if (address >= 0x8000 && address <= 0xbfff) // else if (address >= 0x8000 && address <= 0xbfff)
// { // {
@ -2346,7 +2346,8 @@ namespace MAME.Core
{ {
if (address >= 0xf800 && address <= 0xffff) if (address >= 0xf800 && address <= 0xffff)
{ {
Memory.audioram[address - 0xf800] = value; //Memory.audioram[address - 0xf800] = value;
*(Memory.audioram + address - 0xf800) = value;
} }
else else
{ {

View File

@ -25,7 +25,7 @@
} }
/*else if (address >= 0x800000 && address <= 0x81ffff) /*else if (address >= 0x800000 && address <= 0x81ffff)
{ {
result = (sbyte)Memory.mainram[address - 0x800000]; result = (sbyte)*(Memory.mainram + (address - 0x800000) );
}*/ }*/
return result; return result;
} }
@ -50,7 +50,7 @@
} }
else if (address >= 0x800000 && address <= 0x81ffff) else if (address >= 0x800000 && address <= 0x81ffff)
{ {
result = (sbyte)Memory.mainram[address - 0x800000]; result = (sbyte)*(Memory.mainram + (address - 0x800000));
} }
else if (address >= 0x900000 && address <= 0x903fff) else if (address >= 0x900000 && address <= 0x903fff)
{ {
@ -139,7 +139,7 @@
} }
else if (address >= 0x800000 && address + 1 <= 0x81ffff) else if (address >= 0x800000 && address + 1 <= 0x81ffff)
{ {
result = (short)(Memory.mainram[address - 0x800000] * 0x100 + Memory.mainram[address - 0x800000 + 1]); result = (short)(*(Memory.mainram + (address - 0x800000)) * 0x100 + *(Memory.mainram + (address - 0x800000 + 1) ));
} }
return result; return result;
} }
@ -164,7 +164,7 @@
} }
else if (address >= 0x800000 && address + 1 <= 0x81ffff) else if (address >= 0x800000 && address + 1 <= 0x81ffff)
{ {
result = (short)(Memory.mainram[address - 0x800000] * 0x100 + Memory.mainram[address - 0x800000 + 1]); result = (short)(*(Memory.mainram + (address - 0x800000)) * 0x100 + *(Memory.mainram + (address - 0x800000 + 1) ));
} }
else if (address >= 0x900000 && address + 1 <= 0x903fff) else if (address >= 0x900000 && address + 1 <= 0x903fff)
{ {
@ -246,7 +246,7 @@
} }
else if (address >= 0x800000 && address + 3 <= 0x81ffff) 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 + (address - 0x800000)) * 0x1000000 + *(Memory.mainram + (address - 0x800000 + 1) ) * 0x10000 + *(Memory.mainram + (address - 0x800000 + 2) ) * 0x100 + *(Memory.mainram + (address - 0x800000 + 3) );
} }
return result; return result;
} }
@ -271,7 +271,7 @@
} }
else if (address >= 0x800000 && address + 3 <= 0x81ffff) 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 + (address - 0x800000)) * 0x1000000 + *(Memory.mainram + (address - 0x800000 + 1) ) * 0x10000 + *(Memory.mainram + (address - 0x800000 + 2) ) * 0x100 + *(Memory.mainram + (address - 0x800000 + 3) );
} }
else if (address >= 0x900000 && address + 3 <= 0x903fff) else if (address >= 0x900000 && address + 3 <= 0x903fff)
{ {
@ -342,7 +342,7 @@
else if (address >= 0x800000 && address <= 0x81ffff) else if (address >= 0x800000 && address <= 0x81ffff)
{ {
int offset = address - 0x800000; int offset = address - 0x800000;
Memory.mainram[offset] = (byte)value; *(Memory.mainram + offset) = (byte)value;
} }
else if (address >= 0x900000 && address <= 0x903fff) else if (address >= 0x900000 && address <= 0x903fff)
{ {
@ -431,8 +431,8 @@
else if (address >= 0x800000 && address + 1 <= 0x81ffff) else if (address >= 0x800000 && address + 1 <= 0x81ffff)
{ {
int offset = address - 0x800000; int offset = address - 0x800000;
Memory.mainram[offset] = (byte)(value >> 8); *(Memory.mainram + offset) = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value; *(Memory.mainram + (offset + 1)) = (byte)value;
} }
else if (address >= 0x900000 && address + 1 <= 0x903fff) else if (address >= 0x900000 && address + 1 <= 0x903fff)
{ {
@ -507,10 +507,10 @@
else if (address >= 0x800000 && address + 3 <= 0x81ffff) else if (address >= 0x800000 && address + 3 <= 0x81ffff)
{ {
int offset = address - 0x800000; int offset = address - 0x800000;
Memory.mainram[offset] = (byte)(value >> 24); *(Memory.mainram + offset) = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16); *(Memory.mainram + (offset + 1)) = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8); *(Memory.mainram + (offset + 2)) = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value; *(Memory.mainram + (offset + 3)) = (byte)value;
} }
else if (address >= 0x900000 && address + 3 <= 0x903fff) else if (address >= 0x900000 && address + 3 <= 0x903fff)
{ {
@ -587,12 +587,12 @@
} }
public static byte ZReadMemory(ushort address) public static byte ZReadMemory(ushort address)
{ {
byte result = Memory.audioram[address]; byte result = *(Memory.audioram + address);
return result; return result;
} }
public static void ZWriteMemory(ushort address, byte value) public static void ZWriteMemory(ushort address, byte value)
{ {
Memory.audioram[address] = value; *(Memory.audioram + address) = value;
} }
public static byte ZReadHardware(ushort address) public static byte ZReadHardware(ushort address)
{ {

View File

@ -145,12 +145,12 @@ namespace MAME.Core
} }
public unsafe static byte z80_ram_r(int offset) public unsafe static byte z80_ram_r(int offset)
{ {
return Memory.audioram[offset]; return *(Memory.audioram+offset);
} }
public unsafe static void z80_ram_w(int offset, byte data) public unsafe static void z80_ram_w(int offset, byte data)
{ {
int pc = MC68000.m1.PC; int pc = MC68000.m1.PC;
Memory.audioram[offset] = data; *(Memory.audioram+offset) = data;
if (pc != 0xf12 && pc != 0xde2 && pc != 0x100c50 && pc != 0x100b20) if (pc != 0xf12 && pc != 0xde2 && pc != 0x100c50 && pc != 0x100b20)
{ {
//error //error

View File

@ -398,7 +398,7 @@ namespace MAME.Core
int i; int i;
for (i = 0; i < 0x500; 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 + (i * 2)) * 0x100 + *(Memory.mainram + (i * 2 + 1)));
} }
} }
} }

View File

@ -64,7 +64,7 @@ namespace MAME.Core
else if (address >= 0xc800 && address <= 0xdfff) else if (address >= 0xc800 && address <= 0xdfff)
{ {
int offset = address - 0xc800; int offset = address - 0xc800;
result = Memory.mainram[offset]; result = *(Memory.mainram + offset);
} }
else if (address >= 0xe000 && address <= 0xffff) else if (address >= 0xe000 && address <= 0xffff)
{ {
@ -116,7 +116,7 @@ namespace MAME.Core
else if (address >= 0xc800 && address <= 0xdfff) else if (address >= 0xc800 && address <= 0xdfff)
{ {
int offset = address - 0xc800; int offset = address - 0xc800;
Memory.mainram[offset] = value; *(Memory.mainram + offset) = value;
} }
else if (address >= 0xe000 && address <= 0xffff) else if (address >= 0xe000 && address <= 0xffff)
{ {
@ -141,7 +141,7 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0x7fff) if (address <= 0x7fff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
return result; return result;
} }
@ -150,12 +150,12 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0x7fff) if (address <= 0x7fff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0xc000 && address <= 0xc7ff) else if (address >= 0xc000 && address <= 0xc7ff)
{ {
int offset = address - 0xc000; int offset = address - 0xc000;
result = Memory.audioram[offset]; result = *(Memory.audioram+offset);
} }
else if (address == 0xc800) else if (address == 0xc800)
{ {
@ -171,7 +171,7 @@ namespace MAME.Core
{ {
if (address <= 0x7fff) if (address <= 0x7fff)
{ {
Memory.audiorom[address] = value; *Memory.audiorom = value;
} }
else if (address >= 0xa000 && address <= 0xa001) else if (address >= 0xa000 && address <= 0xa001)
{ {
@ -186,7 +186,7 @@ namespace MAME.Core
else if (address >= 0xc000 && address <= 0xc7ff) else if (address >= 0xc000 && address <= 0xc7ff)
{ {
int offset = address - 0xc000; int offset = address - 0xc000;
Memory.audioram[offset] = value; *(Memory.audioram+offset) = value;
} }
else if (address == 0xd000) else if (address == 0xd000)
{ {

View File

@ -32,7 +32,7 @@ namespace MAME.Core
else if (address >= 0xe000 && address <= 0xf7ff) else if (address >= 0xe000 && address <= 0xf7ff)
{ {
int offset = address - 0xe000; int offset = address - 0xe000;
result = Memory.mainram[offset]; result = *(Memory.mainram + offset);
} }
else if (address == 0xfa03) else if (address == 0xfa03)
{ {
@ -93,7 +93,7 @@ namespace MAME.Core
else if (address >= 0xe000 && address <= 0xf7ff) else if (address >= 0xe000 && address <= 0xf7ff)
{ {
int offset = address - 0xe000; int offset = address - 0xe000;
result = Memory.mainram[offset]; result = *(Memory.mainram + offset);
} }
else if (address == 0xfa03) else if (address == 0xfa03)
{ {
@ -154,7 +154,7 @@ namespace MAME.Core
else if (address >= 0xe000 && address <= 0xf7ff) else if (address >= 0xe000 && address <= 0xf7ff)
{ {
int offset = address - 0xe000; int offset = address - 0xe000;
result = Memory.mainram[offset]; result = *(Memory.mainram + offset);
} }
else if (address >= 0xfc00 && address <= 0xfcff) else if (address >= 0xfc00 && address <= 0xfcff)
{ {
@ -202,7 +202,7 @@ namespace MAME.Core
{ {
if (address >= 0x0000 && address <= 0x7fff) if (address >= 0x0000 && address <= 0x7fff)
{ {
Memory.audiorom[address] = value; *Memory.audiorom = value;
} }
else if (address >= 0x8000 && address <= 0xbfff) else if (address >= 0x8000 && address <= 0xbfff)
{ {
@ -222,7 +222,7 @@ namespace MAME.Core
else if (address >= 0xe000 && address <= 0xf7ff) else if (address >= 0xe000 && address <= 0xf7ff)
{ {
int offset = address - 0xe000; int offset = address - 0xe000;
Memory.mainram[offset] = value; *(Memory.mainram + offset) = value;
} }
else if (address >= 0xf800 && address <= 0xf9ff) else if (address >= 0xf800 && address <= 0xf9ff)
{ {
@ -258,7 +258,7 @@ namespace MAME.Core
{ {
if (address >= 0x0000 && address <= 0x7fff) if (address >= 0x0000 && address <= 0x7fff)
{ {
Memory.audiorom[address] = value; *Memory.audiorom = value;
} }
else if (address >= 0x8000 && address <= 0xbfff) else if (address >= 0x8000 && address <= 0xbfff)
{ {
@ -278,7 +278,7 @@ namespace MAME.Core
else if (address >= 0xe000 && address <= 0xf7ff) else if (address >= 0xe000 && address <= 0xf7ff)
{ {
int offset = address - 0xe000; int offset = address - 0xe000;
Memory.mainram[offset] = value; *(Memory.mainram + offset) = value;
} }
else if (address >= 0xf800 && address <= 0xf9ff) else if (address >= 0xf800 && address <= 0xf9ff)
{ {
@ -340,7 +340,7 @@ namespace MAME.Core
else if (address >= 0x8000 && address <= 0x97ff) else if (address >= 0x8000 && address <= 0x97ff)
{ {
int offset = address - 0x8000; int offset = address - 0x8000;
result = Memory.mainram[offset]; result = *(Memory.mainram + offset);
} }
return result; return result;
} }
@ -354,7 +354,7 @@ namespace MAME.Core
else if (address >= 0x8000 && address <= 0x97ff) else if (address >= 0x8000 && address <= 0x97ff)
{ {
int offset = address - 0x8000; int offset = address - 0x8000;
result = Memory.mainram[offset]; result = *(Memory.mainram + offset);
} }
return result; return result;
} }
@ -367,7 +367,7 @@ namespace MAME.Core
else if (address >= 0x8000 && address <= 0x97ff) else if (address >= 0x8000 && address <= 0x97ff)
{ {
int offset = address - 0x8000; int offset = address - 0x8000;
Memory.mainram[offset] = value; *(Memory.mainram + offset) = value;
} }
} }
public static byte Z2ReadMemory_tokio(ushort address) public static byte Z2ReadMemory_tokio(ushort address)
@ -375,12 +375,12 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0x7fff) if (address <= 0x7fff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0x8000 && address <= 0x8fff) else if (address >= 0x8000 && address <= 0x8fff)
{ {
int offset = address - 0x8000; int offset = address - 0x8000;
result = Memory.audioram[offset]; result = *(Memory.audioram+offset);
} }
else if (address == 0x9000) else if (address == 0x9000)
{ {
@ -400,7 +400,7 @@ namespace MAME.Core
} }
else if (address >= 0xe000 && address <= 0xffff) else if (address >= 0xe000 && address <= 0xffff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
return result; return result;
} }
@ -408,12 +408,12 @@ namespace MAME.Core
{ {
if (address <= 0x7fff) if (address <= 0x7fff)
{ {
Memory.audiorom[address] = value; *Memory.audiorom = value;
} }
else if (address >= 0x8000 && address <= 0x8fff) else if (address >= 0x8000 && address <= 0x8fff)
{ {
int offset = address - 0x8000; int offset = address - 0x8000;
Memory.audioram[offset] = value; *(Memory.audioram+offset) = value;
} }
else if (address == 0x9000) else if (address == 0x9000)
{ {
@ -437,7 +437,7 @@ namespace MAME.Core
} }
else if (address >= 0xe000 && address <= 0xffff) else if (address >= 0xe000 && address <= 0xffff)
{ {
Memory.audiorom[address] = value; *Memory.audiorom = value;
} }
} }
public static byte Z0ReadOp_bublbobl(ushort address) public static byte Z0ReadOp_bublbobl(ushort address)
@ -483,7 +483,7 @@ namespace MAME.Core
else if (address >= 0xe000 && address <= 0xf7ff) else if (address >= 0xe000 && address <= 0xf7ff)
{ {
int offset = address - 0xe000; int offset = address - 0xe000;
result = Memory.mainram[offset]; result = *(Memory.mainram + offset);
} }
else if (address >= 0xfc00 && address <= 0xffff) else if (address >= 0xfc00 && address <= 0xffff)
{ {
@ -500,7 +500,7 @@ namespace MAME.Core
{ {
if (address >= 0x0000 && address <= 0x7fff) if (address >= 0x0000 && address <= 0x7fff)
{ {
Memory.audiorom[address] = value; *Memory.audiorom = value;
} }
else if (address >= 0x8000 && address <= 0xbfff) else if (address >= 0x8000 && address <= 0xbfff)
{ {
@ -520,7 +520,7 @@ namespace MAME.Core
else if (address >= 0xe000 && address <= 0xf7ff) else if (address >= 0xe000 && address <= 0xf7ff)
{ {
int offset = address - 0xe000; int offset = address - 0xe000;
Memory.mainram[offset] = value; *(Memory.mainram + offset) = value;
} }
else if (address >= 0xf800 && address <= 0xf9ff) else if (address >= 0xf800 && address <= 0xf9ff)
{ {
@ -567,7 +567,7 @@ namespace MAME.Core
else if (address >= 0xe000 && address <= 0xf7ff) else if (address >= 0xe000 && address <= 0xf7ff)
{ {
int offset = address - 0xe000; int offset = address - 0xe000;
result = Memory.mainram[offset]; result = *(Memory.mainram + offset);
} }
return result; return result;
} }
@ -581,7 +581,7 @@ namespace MAME.Core
else if (address >= 0xe000 && address <= 0xf7ff) else if (address >= 0xe000 && address <= 0xf7ff)
{ {
int offset = address - 0xe000; int offset = address - 0xe000;
result = Memory.mainram[offset]; result = *(Memory.mainram + offset);
} }
return result; return result;
} }
@ -594,7 +594,7 @@ namespace MAME.Core
else if (address >= 0xe000 && address <= 0xf7ff) else if (address >= 0xe000 && address <= 0xf7ff)
{ {
int offset = address - 0xe000; int offset = address - 0xe000;
Memory.mainram[offset] = value; *(Memory.mainram + offset) = value;
} }
} }
public static byte Z1ReadHardware(ushort address) public static byte Z1ReadHardware(ushort address)
@ -617,12 +617,12 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0x7fff) if (address <= 0x7fff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0x8000 && address <= 0x8fff) else if (address >= 0x8000 && address <= 0x8fff)
{ {
int offset = address - 0x8000; int offset = address - 0x8000;
result = Memory.audioram[offset]; result = *(Memory.audioram+offset);
} }
return result; return result;
} }
@ -631,12 +631,12 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0x7fff) if (address <= 0x7fff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0x8000 && address <= 0x8fff) else if (address >= 0x8000 && address <= 0x8fff)
{ {
int offset = address - 0x8000; int offset = address - 0x8000;
result = Memory.audioram[offset]; result = *(Memory.audioram+offset);
} }
else if (address == 0x9000) else if (address == 0x9000)
{ {
@ -656,7 +656,7 @@ namespace MAME.Core
} }
else if (address >= 0xe000 && address <= 0xffff) else if (address >= 0xe000 && address <= 0xffff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
return result; return result;
} }
@ -664,12 +664,12 @@ namespace MAME.Core
{ {
if (address <= 0x7fff) if (address <= 0x7fff)
{ {
Memory.audiorom[address] = value; *Memory.audiorom = value;
} }
else if (address >= 0x8000 && address <= 0x8fff) else if (address >= 0x8000 && address <= 0x8fff)
{ {
int offset = address - 0x8000; int offset = address - 0x8000;
Memory.audioram[offset] = value; *(Memory.audioram+offset) = value;
} }
else if (address == 0x9000) else if (address == 0x9000)
{ {
@ -697,7 +697,7 @@ namespace MAME.Core
} }
else if (address >= 0xe000 && address <= 0xffff) else if (address >= 0xe000 && address <= 0xffff)
{ {
Memory.audiorom[address] = value; *Memory.audiorom = value;
} }
} }
public static byte Z2ReadHardware(ushort address) public static byte Z2ReadHardware(ushort address)
@ -953,7 +953,7 @@ namespace MAME.Core
else if (address >= 0x100000 && address <= 0x107fff) else if (address >= 0x100000 && address <= 0x107fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
result = (sbyte)Memory.mainram[offset]; result = (sbyte)*(Memory.mainram + offset);
} }
else if (address >= 0x200000 && address <= 0x200fff) else if (address >= 0x200000 && address <= 0x200fff)
{ {
@ -1081,7 +1081,7 @@ namespace MAME.Core
else if (address >= 0x100000 && address + 1 <= 0x107fff) else if (address >= 0x100000 && address + 1 <= 0x107fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (short)(*(Memory.mainram + offset) * 0x100 +*(Memory.mainram + (offset+1)));
} }
else if (address >= 0x200000 && address + 1 <= 0x200fff) else if (address >= 0x200000 && address + 1 <= 0x200fff)
{ {
@ -1164,7 +1164,7 @@ namespace MAME.Core
else if (address >= 0x100000 && address + 3 <= 0x107fff) else if (address >= 0x100000 && address + 3 <= 0x107fff)
{ {
int offset = address - 0x100000; 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 + offset) * 0x1000000 +*(Memory.mainram + (offset+1)) * 0x10000 +*(Memory.mainram + (offset+2)) * 0x100 +*(Memory.mainram + (offset+3)));
} }
else if (address >= 0x200000 && address + 3 <= 0x200fff) else if (address >= 0x200000 && address + 3 <= 0x200fff)
{ {
@ -1229,7 +1229,7 @@ namespace MAME.Core
else if (address >= 0x100000 && address <= 0x107fff) else if (address >= 0x100000 && address <= 0x107fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
Memory.mainram[offset] = (byte)value; *(Memory.mainram + offset) = (byte)value;
} }
else if (address >= 0x200000 && address <= 0x200fff) else if (address >= 0x200000 && address <= 0x200fff)
{ {
@ -1362,8 +1362,8 @@ namespace MAME.Core
else if (address >= 0x100000 && address + 1 <= 0x107fff) else if (address >= 0x100000 && address + 1 <= 0x107fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 8); *(Memory.mainram + offset) = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value; *(Memory.mainram + (offset+1)) = (byte)value;
} }
else if (address >= 0x200000 && address + 1 <= 0x200fff) else if (address >= 0x200000 && address + 1 <= 0x200fff)
{ {
@ -1441,10 +1441,10 @@ namespace MAME.Core
else if (address >= 0x100000 && address + 3 <= 0x107fff) else if (address >= 0x100000 && address + 3 <= 0x107fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 24); *(Memory.mainram + offset) = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16); *(Memory.mainram + (offset+1)) = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8); *(Memory.mainram + (offset+2)) = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value; *(Memory.mainram + (offset+3)) = (byte)value;
} }
else if (address >= 0x200000 && address + 3 <= 0x200fff) else if (address >= 0x200000 && address + 3 <= 0x200fff)
{ {
@ -1519,7 +1519,7 @@ namespace MAME.Core
else if (address >= 0x100000 && address <= 0x107fff) else if (address >= 0x100000 && address <= 0x107fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
result = (sbyte)Memory.mainram[offset]; result = (sbyte)*(Memory.mainram + offset);
} }
else if (address >= 0x200000 && address <= 0x200fff) else if (address >= 0x200000 && address <= 0x200fff)
{ {
@ -1643,7 +1643,7 @@ namespace MAME.Core
else if (address >= 0x100000 && address + 1 <= 0x107fff) else if (address >= 0x100000 && address + 1 <= 0x107fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (short)(*(Memory.mainram + offset) * 0x100 +*(Memory.mainram + (offset+1)));
} }
else if (address >= 0x200000 && address + 1 <= 0x200fff) else if (address >= 0x200000 && address + 1 <= 0x200fff)
{ {
@ -1726,7 +1726,7 @@ namespace MAME.Core
else if (address >= 0x100000 && address + 3 <= 0x107fff) else if (address >= 0x100000 && address + 3 <= 0x107fff)
{ {
int offset = address - 0x100000; 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 + offset) * 0x1000000 +*(Memory.mainram + (offset+1)) * 0x10000 +*(Memory.mainram + (offset+2)) * 0x100 +*(Memory.mainram + (offset+3)));
} }
else if (address >= 0x200000 && address + 3 <= 0x200fff) else if (address >= 0x200000 && address + 3 <= 0x200fff)
{ {
@ -1780,7 +1780,7 @@ namespace MAME.Core
else if (address >= 0x100000 && address <= 0x107fff) else if (address >= 0x100000 && address <= 0x107fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
Memory.mainram[offset] = (byte)value; *(Memory.mainram + offset) = (byte)value;
} }
else if (address >= 0x200000 && address <= 0x200fff) else if (address >= 0x200000 && address <= 0x200fff)
{ {
@ -1905,8 +1905,8 @@ namespace MAME.Core
else if (address >= 0x100000 && address + 1 <= 0x107fff) else if (address >= 0x100000 && address + 1 <= 0x107fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 8); *(Memory.mainram + offset) = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value; *(Memory.mainram + (offset+1)) = (byte)value;
} }
else if (address >= 0x200000 && address + 1 <= 0x200fff) else if (address >= 0x200000 && address + 1 <= 0x200fff)
{ {
@ -1984,10 +1984,10 @@ namespace MAME.Core
else if (address >= 0x100000 && address + 3 <= 0x107fff) else if (address >= 0x100000 && address + 3 <= 0x107fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 24); *(Memory.mainram + offset) = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16); *(Memory.mainram + (offset+1)) = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8); *(Memory.mainram + (offset+2)) = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value; *(Memory.mainram + (offset+3)) = (byte)value;
} }
else if (address >= 0x200000 && address + 3 <= 0x200fff) else if (address >= 0x200000 && address + 3 <= 0x200fff)
{ {
@ -2038,7 +2038,7 @@ namespace MAME.Core
else if (address >= 0x100000 && address <= 0x107fff) else if (address >= 0x100000 && address <= 0x107fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
result = (sbyte)Memory.mainram[offset]; result = (sbyte)*(Memory.mainram + offset);
} }
else if (address >= 0x200000 && address <= 0x200fff) else if (address >= 0x200000 && address <= 0x200fff)
{ {
@ -2135,7 +2135,7 @@ namespace MAME.Core
else if (address >= 0x100000 && address + 1 <= 0x107fff) else if (address >= 0x100000 && address + 1 <= 0x107fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
result = (short)(Memory.mainram[offset] * 0x100 + Memory.mainram[offset + 1]); result = (short)(*(Memory.mainram + offset) * 0x100 +*(Memory.mainram + (offset+1)));
} }
else if (address >= 0x200000 && address + 1 <= 0x200fff) else if (address >= 0x200000 && address + 1 <= 0x200fff)
{ {
@ -2191,7 +2191,7 @@ namespace MAME.Core
else if (address >= 0x100000 && address + 3 <= 0x107fff) else if (address >= 0x100000 && address + 3 <= 0x107fff)
{ {
int offset = address - 0x100000; 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 + offset) * 0x1000000 +*(Memory.mainram + (offset+1)) * 0x10000 +*(Memory.mainram + (offset+2)) * 0x100 +*(Memory.mainram + (offset+3)));
} }
else if (address >= 0x200000 && address + 3 <= 0x200fff) else if (address >= 0x200000 && address + 3 <= 0x200fff)
{ {
@ -2233,7 +2233,7 @@ namespace MAME.Core
else if (address >= 0x100000 && address <= 0x107fff) else if (address >= 0x100000 && address <= 0x107fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
Memory.mainram[offset] = (byte)value; *(Memory.mainram + offset) = (byte)value;
} }
else if (address >= 0x200000 && address <= 0x200fff) else if (address >= 0x200000 && address <= 0x200fff)
{ {
@ -2353,8 +2353,8 @@ namespace MAME.Core
else if (address >= 0x100000 && address + 1 <= 0x107fff) else if (address >= 0x100000 && address + 1 <= 0x107fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 8); *(Memory.mainram + offset) = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value; *(Memory.mainram + (offset+1)) = (byte)value;
} }
else if (address >= 0x200000 && address + 1 <= 0x200fff) else if (address >= 0x200000 && address + 1 <= 0x200fff)
{ {
@ -2426,10 +2426,10 @@ namespace MAME.Core
else if (address >= 0x100000 && address + 3 <= 0x107fff) else if (address >= 0x100000 && address + 3 <= 0x107fff)
{ {
int offset = address - 0x100000; int offset = address - 0x100000;
Memory.mainram[offset] = (byte)(value >> 24); *(Memory.mainram + offset) = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16); *(Memory.mainram + (offset+1)) = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8); *(Memory.mainram + (offset+2)) = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value; *(Memory.mainram + (offset+3)) = (byte)value;
} }
else if (address >= 0x200000 && address + 3 <= 0x200fff) else if (address >= 0x200000 && address + 3 <= 0x200fff)
{ {
@ -2467,12 +2467,12 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0x3fff) if (address <= 0x3fff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0x4000 && address <= 0x7fff) else if (address >= 0x4000 && address <= 0x7fff)
{ {
int offset = address - 0x4000; int offset = address - 0x4000;
result = Memory.audiorom[basebanksnd + offset]; result = *(Memory.audiorom + basebanksnd + offset);
} }
return result; return result;
} }
@ -2481,17 +2481,17 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0x3fff) if (address <= 0x3fff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0x4000 && address <= 0x7fff) else if (address >= 0x4000 && address <= 0x7fff)
{ {
int offset = address - 0x4000; int offset = address - 0x4000;
result = Memory.audiorom[basebanksnd + offset]; result = *(Memory.audiorom + basebanksnd + offset);
} }
else if (address >= 0x8000 && address <= 0x8fff) else if (address >= 0x8000 && address <= 0x8fff)
{ {
int offset = address - 0x8000; int offset = address - 0x8000;
result = Memory.audioram[offset]; result = *(Memory.audioram+offset);
} }
else if (address == 0x9001) else if (address == 0x9001)
{ {
@ -2500,7 +2500,7 @@ namespace MAME.Core
else if (address >= 0x9002 && address <= 0x9100) else if (address >= 0x9002 && address <= 0x9100)
{ {
int offset = address - 0x9002; int offset = address - 0x9002;
result = Memory.audioram[offset]; result = *(Memory.audioram+offset);
} }
else if (address == 0xa001) else if (address == 0xa001)
{ {
@ -2512,17 +2512,17 @@ namespace MAME.Core
{ {
if (address <= 0x3fff) if (address <= 0x3fff)
{ {
Memory.audiorom[address] = value; *Memory.audiorom = value;
} }
else if (address >= 0x4000 && address <= 0x7fff) else if (address >= 0x4000 && address <= 0x7fff)
{ {
int offset = address - 0x4000; int offset = address - 0x4000;
Memory.audiorom[basebanksnd + offset] = value; *(Memory.audiorom + basebanksnd + offset) = value;
} }
else if (address >= 0x8000 && address <= 0x8fff) else if (address >= 0x8000 && address <= 0x8fff)
{ {
int offset = address - 0x8000; int offset = address - 0x8000;
Memory.audioram[offset] = value; *(Memory.audioram+offset) = value;
} }
else if (address == 0x9000) else if (address == 0x9000)
{ {
@ -2599,7 +2599,7 @@ namespace MAME.Core
else if (address == 0x8000) else if (address == 0x8000)
{ {
int offset = address - 0x8000; int offset = address - 0x8000;
Memory.audioram[offset] = value; *(Memory.audioram+offset) = value;
} }
else if (address == 0x9000) else if (address == 0x9000)
{ {

View File

@ -28,7 +28,7 @@ namespace MAME.Core
} }
else if (address >= 0x900000 && address <= 0x90ffff) else if (address >= 0x900000 && address <= 0x90ffff)
{ {
result = (sbyte)Memory.mainram[address - 0x900000]; result = (sbyte)*(Memory.mainram + (address - 0x900000));
} }
return result; return result;
} }
@ -185,7 +185,7 @@ namespace MAME.Core
} }
else if (address >= 0x900000 && address <= 0x90ffff) else if (address >= 0x900000 && address <= 0x90ffff)
{ {
result = (sbyte)Memory.mainram[address - 0x900000]; result = (sbyte)*(Memory.mainram + (address - 0x900000));
} }
return result; return result;
} }
@ -211,7 +211,7 @@ namespace MAME.Core
} }
else if (address >= 0x900000 && address + 1 <= 0x90ffff) else if (address >= 0x900000 && address + 1 <= 0x90ffff)
{ {
result = (short)(Memory.mainram[address - 0x900000] * 0x100 + Memory.mainram[address - 0x900000 + 1]); result = (short)(*(Memory.mainram + (address - 0x900000)) * 0x100 + *(Memory.mainram + (address - 0x900000 + 1)));
} }
return result; return result;
} }
@ -292,7 +292,7 @@ namespace MAME.Core
} }
else if (address >= 0x900000 && address + 1 <= 0x90ffff) else if (address >= 0x900000 && address + 1 <= 0x90ffff)
{ {
result = (short)(Memory.mainram[address - 0x900000] * 0x100 + Memory.mainram[address - 0x900000 + 1]); result = (short)(*(Memory.mainram + (address - 0x900000)) * 0x100 + *(Memory.mainram + (address - 0x900000 + 1)));
} }
return result; return result;
} }
@ -318,7 +318,7 @@ namespace MAME.Core
} }
else if (address >= 0x900000 && address + 3 <= 0x90ffff) 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 + (address - 0x900000)) * 0x1000000 + *(Memory.mainram + (address - 0x900000 + 1)) * 0x10000 + *(Memory.mainram + (address - 0x900000 + 2)) * 0x100 + *(Memory.mainram + (address - 0x900000 + 3)));
} }
return result; return result;
} }
@ -379,7 +379,7 @@ namespace MAME.Core
} }
else if (address >= 0x900000 && address + 3 <= 0x90ffff) 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 + (address - 0x900000)) * 0x1000000 + *(Memory.mainram + (address - 0x900000 + 1)) * 0x10000 + *(Memory.mainram + (address - 0x900000 + 2)) * 0x100 + *(Memory.mainram + (address - 0x900000 + 3)));
} }
return result; return result;
} }
@ -515,7 +515,7 @@ namespace MAME.Core
else if (address >= 0x900000 && address <= 0x90ffff) else if (address >= 0x900000 && address <= 0x90ffff)
{ {
int offset = address - 0x900000; int offset = address - 0x900000;
Memory.mainram[offset] = (byte)value; *(Memory.mainram + offset) = (byte)value;
} }
} }
public static void MWriteWord_pbobble(int address, short value) public static void MWriteWord_pbobble(int address, short value)
@ -594,8 +594,8 @@ namespace MAME.Core
else if (address >= 0x900000 && address + 1 <= 0x90ffff) else if (address >= 0x900000 && address + 1 <= 0x90ffff)
{ {
int offset = address - 0x900000; int offset = address - 0x900000;
Memory.mainram[offset] = (byte)(value >> 8); *(Memory.mainram + offset) = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value; *(Memory.mainram + (offset + 1)) = (byte)value;
} }
} }
public static void MWriteLong_pbobble(int address, int value) public static void MWriteLong_pbobble(int address, int value)
@ -670,10 +670,10 @@ namespace MAME.Core
else if (address >= 0x900000 && address + 3 <= 0x90ffff) else if (address >= 0x900000 && address + 3 <= 0x90ffff)
{ {
int offset = address - 0x900000; int offset = address - 0x900000;
Memory.mainram[offset] = (byte)(value >> 24); *(Memory.mainram + offset) = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16); *(Memory.mainram + (offset + 1)) = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8); *(Memory.mainram + (offset + 2)) = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value; *(Memory.mainram + (offset + 3)) = (byte)value;
} }
} }
public static byte ZReadOp(ushort address) public static byte ZReadOp(ushort address)
@ -681,7 +681,7 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0x3fff) if (address <= 0x3fff)
{ {
result = Memory.audiorom[address & 0x7fff]; result = *(Memory.audiorom + (address & 0x7fff));
} }
else else
{ {
@ -694,15 +694,15 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address <= 0x3fff) if (address <= 0x3fff)
{ {
result = Memory.audiorom[address & 0x7fff]; result = *(Memory.audiorom + (address & 0x7fff));
} }
else if (address >= 0x4000 && address <= 0x7fff) else if (address >= 0x4000 && address <= 0x7fff)
{ {
result = Memory.audiorom[basebanksnd + (address & 0x3fff)]; result = *(Memory.audiorom + (basebanksnd + (address & 0x3fff)));
} }
else if (address >= 0xc000 && address <= 0xdfff) else if (address >= 0xc000 && address <= 0xdfff)
{ {
result = Memory.audioram[address - 0xc000]; result = *(Memory.audioram + (address - 0xc000));
} }
else if (address >= 0xe000 && address <= 0xe000) else if (address >= 0xe000 && address <= 0xe000)
{ {
@ -734,11 +734,11 @@ namespace MAME.Core
{ {
if (address <= 0x7fff) if (address <= 0x7fff)
{ {
Memory.audiorom[address] = value; *Memory.audiorom = value;
} }
else if (address >= 0xc000 && address <= 0xdfff) else if (address >= 0xc000 && address <= 0xdfff)
{ {
Memory.audioram[address - 0xc000] = value; *(Memory.audioram + (address - 0xc000)) = value;
} }
else if (address >= 0xe000 && address <= 0xe000) else if (address >= 0xe000 && address <= 0xe000)
{ {

View File

@ -31,7 +31,7 @@
} }
else if (address >= 0x400000 && address <= 0x403fff) else if (address >= 0x400000 && address <= 0x403fff)
{ {
result = (sbyte)Memory.mainram[address - 0x400000]; result = (sbyte)*(Memory.mainram + (address - 0x400000));
} }
return result; return result;
} }
@ -124,7 +124,7 @@
} }
else if (address >= 0x400000 && address <= 0x403fff) else if (address >= 0x400000 && address <= 0x403fff)
{ {
result = (sbyte)Memory.mainram[address - 0x400000]; result = (sbyte)*(Memory.mainram + (address - 0x400000));
} }
else if (address >= 0x500000 && address <= 0x50ffff) else if (address >= 0x500000 && address <= 0x50ffff)
{ {
@ -214,7 +214,7 @@
} }
else if (address >= 0x400000 && address + 1 <= 0x403fff) else if (address >= 0x400000 && address + 1 <= 0x403fff)
{ {
result = (short)(Memory.mainram[address - 0x400000] * 0x100 + Memory.mainram[address - 0x400000 + 1]); result = (short)(*(Memory.mainram + (address - 0x400000)) * 0x100 + *(Memory.mainram + (address - 0x400000 + 1)));
} }
return result; return result;
} }
@ -265,7 +265,7 @@
} }
else if (address >= 0x400000 && address + 1 <= 0x403fff) else if (address >= 0x400000 && address + 1 <= 0x403fff)
{ {
result = (short)(Memory.mainram[address - 0x400000] * 0x100 + Memory.mainram[address - 0x400000 + 1]); result = (short)(*(Memory.mainram + (address - 0x400000)) * 0x100 + *(Memory.mainram + (address - 0x400000 + 1)));
} }
else if (address >= 0x500000 && address + 1 <= 0x50ffff) else if (address >= 0x500000 && address + 1 <= 0x50ffff)
{ {
@ -320,7 +320,7 @@
} }
else if (address >= 0x400000 && address + 3 <= 0x403fff) 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 + (address - 0x400000)) * 0x1000000 + *(Memory.mainram + (address - 0x400000 + 1)) * 0x10000 + *(Memory.mainram + (address - 0x400000 + 2)) * 0x100 + *(Memory.mainram + (address - 0x400000 + 3)));
} }
return result; return result;
} }
@ -351,7 +351,7 @@
} }
else if (address >= 0x400000 && address + 1 <= 0x403fff) 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 + (address - 0x400000)) * 0x1000000 + *(Memory.mainram + (address - 0x400000 + 1)) * 0x10000 + *(Memory.mainram + (address - 0x400000 + 2)) * 0x100 + *(Memory.mainram + (address - 0x400000 + 3)));
} }
else if (address >= 0x500000 && address + 1 <= 0x50ffff) else if (address >= 0x500000 && address + 1 <= 0x50ffff)
{ {
@ -432,7 +432,7 @@
else if (address >= 0x400000 && address <= 0x403fff) else if (address >= 0x400000 && address <= 0x403fff)
{ {
int offset = address - 0x400000; int offset = address - 0x400000;
Memory.mainram[offset] = (byte)value; *(Memory.mainram + offset) = (byte)value;
} }
else if (address >= 0x500000 && address <= 0x50ffff) else if (address >= 0x500000 && address <= 0x50ffff)
{ {
@ -536,8 +536,8 @@
else if (address >= 0x400000 && address + 1 <= 0x403fff) else if (address >= 0x400000 && address + 1 <= 0x403fff)
{ {
int offset = address - 0x400000; int offset = address - 0x400000;
Memory.mainram[offset] = (byte)(value >> 8); *(Memory.mainram + offset) = (byte)(value >> 8);
Memory.mainram[offset + 1] = (byte)value; *(Memory.mainram + (offset + 1)) = (byte)value;
} }
else if (address >= 0x500000 && address + 1 <= 0x50ffff) else if (address >= 0x500000 && address + 1 <= 0x50ffff)
{ {
@ -599,10 +599,10 @@
else if (address >= 0x400000 && address + 3 <= 0x403fff) else if (address >= 0x400000 && address + 3 <= 0x403fff)
{ {
int offset = address - 0x400000; int offset = address - 0x400000;
Memory.mainram[offset] = (byte)(value >> 24); *(Memory.mainram + offset) = (byte)(value >> 24);
Memory.mainram[offset + 1] = (byte)(value >> 16); *(Memory.mainram + (offset + 1)) = (byte)(value >> 16);
Memory.mainram[offset + 2] = (byte)(value >> 8); *(Memory.mainram + (offset + 2)) = (byte)(value >> 8);
Memory.mainram[offset + 3] = (byte)value; *(Memory.mainram + (offset + 3)) = (byte)value;
} }
else if (address >= 0x500000 && address + 3 <= 0x50ffff) else if (address >= 0x500000 && address + 3 <= 0x50ffff)
{ {

View File

@ -46,7 +46,7 @@ namespace MAME.Core
else if (address >= 0xc000 && address <= 0xcfff) else if (address >= 0xc000 && address <= 0xcfff)
{ {
int offset = address - 0xc000; int offset = address - 0xc000;
result = Memory.mainram[offset]; result = *(Memory.mainram + offset);
} }
else if (address >= 0xd000 && address <= 0xd3ff) else if (address >= 0xd000 && address <= 0xd3ff)
{ {
@ -130,7 +130,7 @@ namespace MAME.Core
else if (address >= 0xc000 && address <= 0xcfff) else if (address >= 0xc000 && address <= 0xcfff)
{ {
int offset = address - 0xc000; int offset = address - 0xc000;
Memory.mainram[offset] = value; *(Memory.mainram + offset) = value;
} }
else if (address >= 0xd000 && address <= 0xd3ff) else if (address >= 0xd000 && address <= 0xd3ff)
{ {
@ -196,7 +196,7 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address >= 0 && address <= 0x1fff) if (address >= 0 && address <= 0x1fff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
return result; return result;
} }
@ -205,12 +205,12 @@ namespace MAME.Core
byte result = 0; byte result = 0;
if (address >= 0 && address <= 0x1fff) if (address >= 0 && address <= 0x1fff)
{ {
result = Memory.audiorom[address]; result = *Memory.audiorom;
} }
else if (address >= 0x4000 && address <= 0x47ff) else if (address >= 0x4000 && address <= 0x47ff)
{ {
int offset = address - 0x4000; int offset = address - 0x4000;
result = Memory.audioram[offset]; result = *(Memory.audioram+offset);
} }
else if (address == 0x8000) else if (address == 0x8000)
{ {
@ -222,12 +222,12 @@ namespace MAME.Core
{ {
if (address >= 0 && address <= 0x1fff) if (address >= 0 && address <= 0x1fff)
{ {
Memory.audiorom[address] = value; *Memory.audiorom = value;
} }
else if (address >= 0x4000 && address <= 0x47ff) else if (address >= 0x4000 && address <= 0x47ff)
{ {
int offset = address - 0x4000; int offset = address - 0x4000;
Memory.audioram[offset] = value; *(Memory.audioram+offset) = value;
} }
else if (address == 0xffff) else if (address == 0xffff)
{ {

View File

@ -187,7 +187,7 @@ namespace MAME.Core
} }
else else
{ {
result = Memory.mainram[0]; result = *Memory.mainram;
} }
return result; return result;
} }