diff --git a/AxibugEmuOnline.Client/Assets/Script/Manager/AppEmu.cs b/AxibugEmuOnline.Client/Assets/Script/Manager/AppEmu.cs
index 46f3d2c7..a9a26400 100644
--- a/AxibugEmuOnline.Client/Assets/Script/Manager/AppEmu.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/Manager/AppEmu.cs
@@ -1,10 +1,7 @@
-using System.IO;
-using UnityEngine;
-
-namespace AxibugEmuOnline.Client.Manager
+namespace AxibugEmuOnline.Client.Manager
{
- public class AppEmu
+ public class AppEmu
{
-
+
}
}
diff --git a/AxibugEmuOnline.Client/Assets/Script/Manager/AppLogin.cs b/AxibugEmuOnline.Client/Assets/Script/Manager/AppLogin.cs
index 4185a62f..2cbc4296 100644
--- a/AxibugEmuOnline.Client/Assets/Script/Manager/AppLogin.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/Manager/AppLogin.cs
@@ -17,7 +17,7 @@ namespace AxibugEmuOnline.Client.Manager
public void Login()
{
AppAxibugEmuOnline.log.Debug("-->Login");
- if(string.IsNullOrEmpty(LastLoginGuid))
+ if (string.IsNullOrEmpty(LastLoginGuid))
LastLoginGuid = Guid.NewGuid().ToString();
AppAxibugEmuOnline.user.userdata.Account = LastLoginGuid;
@@ -35,7 +35,7 @@ namespace AxibugEmuOnline.Client.Manager
if (msg.Status == LoginResultStatus.Ok)
{
AppAxibugEmuOnline.log.Info("登录成功");
- AppAxibugEmuOnline.user.InitMainUserData(AppAxibugEmuOnline.user.userdata.Account,msg.UID);
+ AppAxibugEmuOnline.user.InitMainUserData(AppAxibugEmuOnline.user.userdata.Account, msg.UID);
}
else
{
diff --git a/AxibugEmuOnline.Client/Assets/Script/Manager/LogManager.cs b/AxibugEmuOnline.Client/Assets/Script/Manager/LogManager.cs
index 63268871..26024cc5 100644
--- a/AxibugEmuOnline.Client/Assets/Script/Manager/LogManager.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/Manager/LogManager.cs
@@ -2,7 +2,7 @@
{
public class LogManager
{
- public enum E_LogType:byte
+ public enum E_LogType : byte
{
Info = 0,
Debug = 1,
@@ -13,7 +13,7 @@
/// 日志
///
///
- public delegate void OnLogHandler(int debuglv,string msg);
+ public delegate void OnLogHandler(int debuglv, string msg);
///
/// 内部输出
@@ -40,7 +40,7 @@
Log(E_LogType.Error, str);
}
- public void Log(E_LogType logtype,string str)
+ public void Log(E_LogType logtype, string str)
{
OnLog?.Invoke((int)logtype, str);
}
diff --git a/AxibugEmuOnline.Client/Assets/Script/Manager/RomLib/EnumPlatform.cs b/AxibugEmuOnline.Client/Assets/Script/Manager/RomLib/EnumPlatform.cs
index d2c8aa5e..ddbd5346 100644
--- a/AxibugEmuOnline.Client/Assets/Script/Manager/RomLib/EnumPlatform.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/Manager/RomLib/EnumPlatform.cs
@@ -1,10 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace AxibugEmuOnline.Client
+namespace AxibugEmuOnline.Client
{
public enum EnumPlatform
{
diff --git a/AxibugEmuOnline.Client/Assets/Script/Manager/RomLib/RomFile.cs b/AxibugEmuOnline.Client/Assets/Script/Manager/RomLib/RomFile.cs
index e334da0f..5c44b9d6 100644
--- a/AxibugEmuOnline.Client/Assets/Script/Manager/RomLib/RomFile.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/Manager/RomLib/RomFile.cs
@@ -3,7 +3,6 @@ using ICSharpCode.SharpZipLib.Zip;
using System;
using System.Collections;
using System.IO;
-using System.Linq;
using UnityEngine;
using UnityEngine.Networking;
diff --git a/AxibugEmuOnline.Client/Assets/Script/Manager/RomLib/RomLib.cs b/AxibugEmuOnline.Client/Assets/Script/Manager/RomLib/RomLib.cs
index 94047f2a..638dc028 100644
--- a/AxibugEmuOnline.Client/Assets/Script/Manager/RomLib/RomLib.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/Manager/RomLib/RomLib.cs
@@ -11,7 +11,8 @@ namespace AxibugEmuOnline.Client
public RomFile GetNesRomFile(string romFileName)
{
- nesRomFileNameMapper.TryGetValue(romFileName, out RomFile romFile);
+ RomFile romFile;
+ nesRomFileNameMapper.TryGetValue(romFileName, out romFile);
return romFile;
}
@@ -29,8 +30,8 @@ namespace AxibugEmuOnline.Client
for (int i = 0; i < romList.gameList.Count; i++)
{
var webData = romList.gameList[i];
-
- nesRomFileIdMapper.TryGetValue(webData.id, out var targetRomFile);
+ RomFile targetRomFile;
+ nesRomFileIdMapper.TryGetValue(webData.id, out targetRomFile);
if (targetRomFile == null)
{
targetRomFile = new RomFile(EnumPlatform.NES);
diff --git a/AxibugEmuOnline.Client/Assets/Script/Manager/UserDataManager.cs b/AxibugEmuOnline.Client/Assets/Script/Manager/UserDataManager.cs
index 68167392..a2d2bb60 100644
--- a/AxibugEmuOnline.Client/Assets/Script/Manager/UserDataManager.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/Manager/UserDataManager.cs
@@ -1,5 +1,4 @@
using AxibugEmuOnline.Client.ClientCore;
-using AxibugProtobuf;
namespace AxibugEmuOnline.Client.Manager
{
@@ -21,10 +20,10 @@ namespace AxibugEmuOnline.Client.Manager
//注册重连成功事件,以便后续自动登录
AppAxibugEmuOnline.networkHelper.OnReConnected += OnReConnected;
}
- public MainUserDataBase userdata { get;private set; } = new MainUserDataBase();
+ public MainUserDataBase userdata { get; private set; } = new MainUserDataBase();
public bool IsLoggedIn => userdata.IsLoggedIn;
- public void InitMainUserData(string UName,long UID)
+ public void InitMainUserData(string UName, long UID)
{
userdata.Account = UName;
userdata.IsLoggedIn = true;
diff --git a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/AudioProvider.cs b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/AudioProvider.cs
index eebb2c91..614eb64b 100644
--- a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/AudioProvider.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/AudioProvider.cs
@@ -33,7 +33,8 @@ namespace AxibugEmuOnline.Client
for (int i = 0; i < data.Length; i += step)
{
float rawFloat = 0;
- if (_buffer.TryRead(out byte rawData))
+ byte rawData;
+ if (_buffer.TryRead(out rawData))
rawFloat = rawData / 255f;
data[i] = rawFloat;
diff --git a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/CoreDebuger.cs b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/CoreDebuger.cs
index cdf1191b..86d827aa 100644
--- a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/CoreDebuger.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/CoreDebuger.cs
@@ -1,5 +1,3 @@
-using System.Collections;
-using System.Collections.Generic;
using UnityEngine;
using VirtualNes.Core.Debug;
diff --git a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/CoreSupporter.cs b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/CoreSupporter.cs
index 99e195b1..31c63cbd 100644
--- a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/CoreSupporter.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/CoreSupporter.cs
@@ -1,8 +1,6 @@
using AxibugEmuOnline.Client.ClientCore;
using System;
using System.IO;
-using System.Linq;
-using System.Xml.Linq;
using UnityEngine;
using VirtualNes.Core;
diff --git a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesEmulator.cs b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesEmulator.cs
index 5341fbb8..c5699c4d 100644
--- a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesEmulator.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesEmulator.cs
@@ -1,7 +1,6 @@
using AxibugEmuOnline.Client.ClientCore;
using System;
using System.IO;
-using System.Linq;
using System.Xml.Linq;
using UnityEngine;
using VirtualNes.Core;
diff --git a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/PaletteDefine.cs b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/PaletteDefine.cs
index 9a5a2f03..7a6a5a01 100644
--- a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/PaletteDefine.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/PaletteDefine.cs
@@ -1,11 +1,4 @@
-using Codice.CM.Client.Differences;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using UnityEngine;
-using VirtualNes.Core;
+using VirtualNes.Core;
namespace AxibugEmuOnline.Client
{
diff --git a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/RomDB.cs b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/RomDB.cs
index 600e76d6..2af7f26d 100644
--- a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/RomDB.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/RomDB.cs
@@ -31,8 +31,8 @@ namespace AxibugEmuOnline.Client.ClientCore
crc_Info_mapper[info.CRC] = info;
}
}
-
- if (crc_Info_mapper.TryGetValue(crc, out var romInfo))
+ RomInfo romInfo;
+ if (crc_Info_mapper.TryGetValue(crc, out romInfo))
{
mapperNo = romInfo.Mapper;
return true;
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/APU.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/APU.cs
index 51acc7b6..a95d338e 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/APU.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/APU.cs
@@ -1,9 +1,5 @@
-using Codice.CM.Client.Differences;
+
using System;
-using System.IO;
-using System.Security.Principal;
-using UnityEngine;
-using VirtualNes.Core;
using VirtualNes.Core.Debug;
namespace VirtualNes.Core
@@ -80,7 +76,7 @@ namespace VirtualNes.Core
int nBits = Supporter.Config.sound.nBits;
uint dwLength = (uint)(dwSize / (nBits / 8));
int output;
- QUEUEDATA q = default;
+ QUEUEDATA q = new QUEUEDATA();
uint writetime;
var pSoundBuf = m_SoundBuffer;
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/ApuEX/APU_FME7.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/ApuEX/APU_FME7.cs
index a7d59ed5..ae0b7e38 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/ApuEX/APU_FME7.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/ApuEX/APU_FME7.cs
@@ -1,6 +1,4 @@
using System;
-using static VirtualNes.Core.APU_INTERNAL;
-using System.Net;
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/ApuEX/APU_INTERFACE.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/ApuEX/APU_INTERFACE.cs
index b4ff65f5..391406c4 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/ApuEX/APU_INTERFACE.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/ApuEX/APU_INTERFACE.cs
@@ -22,7 +22,7 @@
public virtual int GetStateSize() { return 0; }
public virtual void SaveState(byte[] p) { }
public virtual void LoadState(byte[] p) { }
-
+
public static int INT2FIX(int x)
{
return x << 16;
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/ApuEX/APU_INTERNAL.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/ApuEX/APU_INTERNAL.cs
index 9ed23721..6942744a 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/ApuEX/APU_INTERNAL.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/ApuEX/APU_INTERNAL.cs
@@ -1,7 +1,5 @@
-using Codice.CM.Client.Differences;
+
using System;
-using System.Runtime.CompilerServices;
-using UnityEngine;
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/ApuEX/APU_MMC5.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/ApuEX/APU_MMC5.cs
index 7ba567fd..d1807d1a 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/ApuEX/APU_MMC5.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/ApuEX/APU_MMC5.cs
@@ -1,4 +1,4 @@
-using Codice.CM.Client.Differences;
+
using System;
namespace VirtualNes.Core
@@ -387,7 +387,7 @@ namespace VirtualNes.Core
Array.Clear(dummy, 0, dummy.Length);
vbl_length = 0;
}
- }
+ }
public class RECTANGLE
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/ApuEX/APU_VRC6.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/ApuEX/APU_VRC6.cs
index cfb7b75a..1b0845e7 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/ApuEX/APU_VRC6.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/ApuEX/APU_VRC6.cs
@@ -263,16 +263,16 @@ namespace VirtualNes.Core
public void ZeroMemory()
{
Array.Clear(reg, 0, reg.Length);
- enable = default;
- gate = default;
- volume = default;
+ enable = 0;
+ gate = 0;
+ volume = 0;
- phaseacc = default;
- freq = default;
- output_vol = default;
+ phaseacc = 0;
+ freq = 0;
+ output_vol = 0;
- adder = default;
- duty_pos = default;
+ adder = 0;
+ duty_pos = 0;
}
}
@@ -294,16 +294,16 @@ namespace VirtualNes.Core
public void ZeroMemory()
{
Array.Clear(reg, 0, reg.Length);
- enable = default;
- volume = default;
+ enable = 0;
+ volume = 0;
- phaseacc = default;
- freq = default;
- output_vol = default;
+ phaseacc = 0;
+ freq = 0;
+ output_vol = 0;
- adder = default;
- accum = default;
- phaseaccum = default;
+ adder = 0;
+ accum = 0;
+ phaseaccum = 0;
}
}
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/CPU.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/CPU.cs
index 26527e7f..edf83a56 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/CPU.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/CPU.cs
@@ -1,7 +1,6 @@
#undef DPCM_SYNCCLOCK
using System;
-using VirtualNes.Core.Debug;
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/CoreLibs/Emu2413/Emu2413.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/CoreLibs/Emu2413/Emu2413.cs
index bcea6fd2..377b9ea0 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/CoreLibs/Emu2413/Emu2413.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/CoreLibs/Emu2413/Emu2413.cs
@@ -1,6 +1,4 @@
using System;
-using System.Runtime.ConstrainedExecution;
-using System.Runtime.Remoting.Lifetime;
namespace VirtualNes.Core.Emu2413
{
public static class Emu2413API
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/CoreLibs/ISoundDataBuffer.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/CoreLibs/ISoundDataBuffer.cs
index 7994134a..fe405f9e 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/CoreLibs/ISoundDataBuffer.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/CoreLibs/ISoundDataBuffer.cs
@@ -1,10 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace VirtualNes.Core
+namespace VirtualNes.Core
{
public interface ISoundDataBuffer
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/CoreLibs/MemoryUtility.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/CoreLibs/MemoryUtility.cs
index eea81c1e..4f376fd8 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/CoreLibs/MemoryUtility.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/CoreLibs/MemoryUtility.cs
@@ -1,5 +1,4 @@
using System;
-using System.Runtime.CompilerServices;
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Debuger.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Debuger.cs
index 21ab49a4..8845558c 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Debuger.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Debuger.cs
@@ -1,6 +1,4 @@
-using System.Collections.Generic;
-
-namespace VirtualNes.Core.Debug
+namespace VirtualNes.Core.Debug
{
public static class Debuger
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/MMU.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/MMU.cs
index da7fe189..391254cb 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/MMU.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/MMU.cs
@@ -1,5 +1,4 @@
-using System;
-using VirtualNes.Core;
+using VirtualNes.Core;
namespace VirtualNes
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/EEPROM.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/EEPROM.cs
index 5a8ae766..e81a4105 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/EEPROM.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/EEPROM.cs
@@ -1,6 +1,4 @@
-using System;
-
-namespace VirtualNes.Core
+namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper.cs
index b34a0f0f..d0b32b40 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper.cs
@@ -81,23 +81,23 @@ namespace VirtualNes.Core
{
//todo : 实现加载mapper
switch (no)
- {
- case 0: return new Mapper000(parent);
- case 1: return new Mapper001(parent);
- case 2: return new Mapper002(parent);
- case 3: return new Mapper003(parent);
- case 4: return new Mapper004(parent);
- case 5: return new Mapper005(parent);
- case 6: return new Mapper006(parent);
- case 7: return new Mapper007(parent);
- case 8: return new Mapper008(parent);
- case 9: return new Mapper009(parent);
- case 10: return new Mapper010(parent);
- case 11: return new Mapper011(parent);
- case 12: return new Mapper012(parent);
- case 13: return new Mapper013(parent);
- case 15: return new Mapper015(parent);
- case 16: return new Mapper016(parent);
+ {
+ case 0: return new Mapper000(parent);
+ case 1: return new Mapper001(parent);
+ case 2: return new Mapper002(parent);
+ case 3: return new Mapper003(parent);
+ case 4: return new Mapper004(parent);
+ case 5: return new Mapper005(parent);
+ case 6: return new Mapper006(parent);
+ case 7: return new Mapper007(parent);
+ case 8: return new Mapper008(parent);
+ case 9: return new Mapper009(parent);
+ case 10: return new Mapper010(parent);
+ case 11: return new Mapper011(parent);
+ case 12: return new Mapper012(parent);
+ case 13: return new Mapper013(parent);
+ case 15: return new Mapper015(parent);
+ case 16: return new Mapper016(parent);
case 17: return new Mapper017(parent);
case 18: return new Mapper018(parent);
case 19: return new Mapper019(parent);
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper000.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper000.cs
index 049e0f0c..520f3f95 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper000.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper000.cs
@@ -2,46 +2,43 @@
// Mapper000 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper000 : Mapper
- {
+ public class Mapper000 : Mapper
+ {
- public Mapper000(NES parent) : base(parent) { }
+ public Mapper000(NES parent) : base(parent) { }
- public override void Reset()
- {
- switch (PROM_16K_SIZE)
- {
- default:
- case 1: // 16K only
- SetPROM_16K_Bank(4, 0);
- SetPROM_16K_Bank(6, 0);
- break;
- case 2: // 32K
- SetPROM_32K_Bank(0);
- break;
- }
+ public override void Reset()
+ {
+ switch (PROM_16K_SIZE)
+ {
+ default:
+ case 1: // 16K only
+ SetPROM_16K_Bank(4, 0);
+ SetPROM_16K_Bank(6, 0);
+ break;
+ case 2: // 32K
+ SetPROM_32K_Bank(0);
+ break;
+ }
- uint crc = nes.rom.GetPROM_CRC();
- if (crc == 0x4e7db5af)
- { // Circus Charlie(J)
- nes.SetRenderMethod(EnumRenderMethod.POST_RENDER);
- }
- if (crc == 0x57970078)
- { // F-1 Race(J)
- nes.SetRenderMethod(EnumRenderMethod.POST_RENDER);
- }
- if (crc == 0xaf2bbcbc // Mach Rider(JU)
- || crc == 0x3acd4bf1)
- { // Mach Rider(Alt)(JU)
- nes.SetRenderMethod(EnumRenderMethod.POST_RENDER);
- }
- }
- }
+ uint crc = nes.rom.GetPROM_CRC();
+ if (crc == 0x4e7db5af)
+ { // Circus Charlie(J)
+ nes.SetRenderMethod(EnumRenderMethod.POST_RENDER);
+ }
+ if (crc == 0x57970078)
+ { // F-1 Race(J)
+ nes.SetRenderMethod(EnumRenderMethod.POST_RENDER);
+ }
+ if (crc == 0xaf2bbcbc // Mach Rider(JU)
+ || crc == 0x3acd4bf1)
+ { // Mach Rider(Alt)(JU)
+ nes.SetRenderMethod(EnumRenderMethod.POST_RENDER);
+ }
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper001.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper001.cs
index fd0324a4..9447bb56 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper001.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper001.cs
@@ -2,10 +2,9 @@
// Mapper001 Nintendo MMC1 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper002.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper002.cs
index ece6fd47..2b18704b 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper002.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper002.cs
@@ -2,71 +2,69 @@
// Mapper002 UNROM //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper002 : Mapper
- {
+ public class Mapper002 : Mapper
+ {
- BYTE patch;
- public Mapper002(NES parent) : base(parent) { }
+ BYTE patch;
+ public Mapper002(NES parent) : base(parent) { }
- public override void Reset()
- {
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- patch = 0;
+ patch = 0;
- uint crc = nes.rom.GetPROM_CRC();
- // if( crc == 0x322c9b09 ) { // Metal Gear (Alt)(J)
- //// nes.SetFrameIRQmode( FALSE );
- // }
- // if( crc == 0xe7a3867b ) { // Dragon Quest 2(Alt)(J)
- // nes.SetFrameIRQmode( FALSE );
- // }
- //// if( crc == 0x9622fbd9 ) { // Ballblazer(J)
- //// patch = 0;
- //// }
- if (crc == 0x8c3d54e8 // Ikari(J)
- || crc == 0x655efeed // Ikari Warriors(U)
- || crc == 0x538218b2)
- { // Ikari Warriors(E)
- patch = 1;
- }
+ uint crc = nes.rom.GetPROM_CRC();
+ // if( crc == 0x322c9b09 ) { // Metal Gear (Alt)(J)
+ //// nes.SetFrameIRQmode( FALSE );
+ // }
+ // if( crc == 0xe7a3867b ) { // Dragon Quest 2(Alt)(J)
+ // nes.SetFrameIRQmode( FALSE );
+ // }
+ //// if( crc == 0x9622fbd9 ) { // Ballblazer(J)
+ //// patch = 0;
+ //// }
+ if (crc == 0x8c3d54e8 // Ikari(J)
+ || crc == 0x655efeed // Ikari Warriors(U)
+ || crc == 0x538218b2)
+ { // Ikari Warriors(E)
+ patch = 1;
+ }
- if (crc == 0xb20c1030)
- { // Shanghai(J)(original)
- patch = 2;
- }
- }
+ if (crc == 0xb20c1030)
+ { // Shanghai(J)(original)
+ patch = 2;
+ }
+ }
- //void Mapper002::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- if (!nes.rom.IsSAVERAM())
- {
- if (addr >= 0x5000 && patch == 1)
- SetPROM_16K_Bank(4, data);
- }
- else
- {
- base.WriteLow(addr, data);
- }
- }
+ //void Mapper002::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ if (!nes.rom.IsSAVERAM())
+ {
+ if (addr >= 0x5000 && patch == 1)
+ SetPROM_16K_Bank(4, data);
+ }
+ else
+ {
+ base.WriteLow(addr, data);
+ }
+ }
- //void Mapper002::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- if (patch != 2)
- SetPROM_16K_Bank(4, data);
- else
- SetPROM_16K_Bank(4, data >> 4);
- }
+ //void Mapper002::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ if (patch != 2)
+ SetPROM_16K_Bank(4, data);
+ else
+ SetPROM_16K_Bank(4, data >> 4);
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper003.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper003.cs
index 28501b19..f9579868 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper003.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper003.cs
@@ -2,10 +2,7 @@
// Mapper003 CNROM //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper004.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper004.cs
index 0106263f..59d786e3 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper004.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper004.cs
@@ -1,7 +1,4 @@
-using Codice.CM.Client.Differences;
-using System;
-
-namespace VirtualNes.Core
+namespace VirtualNes.Core
{
public class Mapper004 : Mapper
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper005.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper005.cs
index b5f15c17..9b786918 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper005.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper005.cs
@@ -1,7 +1,6 @@
//////////////////////////////////////////////////////////////////////////
// Mapper005 Nintendo MMC5 //
//////////////////////////////////////////////////////////////////////////
-using System;
using static VirtualNes.Core.CPU;
using static VirtualNes.Core.PPU;
using static VirtualNes.MMU;
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper006.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper006.cs
index d6cbedc2..81608819 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper006.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper006.cs
@@ -1,112 +1,112 @@
//////////////////////////////////////////////////////////////////////////
// Mapper006 FFE F4xxx //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper006 : Mapper
- {
- BYTE irq_enable;
- INT irq_counter;
- public Mapper006(NES parent) : base(parent) { }
+ public class Mapper006 : Mapper
+ {
+ BYTE irq_enable;
+ INT irq_counter;
+ public Mapper006(NES parent) : base(parent) { }
- public override void Reset()
- {
- SetPROM_32K_Bank(0, 1, 14, 15);
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0, 1, 14, 15);
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_8K_Bank(0);
- }
- else
- {
- SetCRAM_8K_Bank(0);
- }
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0);
+ }
+ else
+ {
+ SetCRAM_8K_Bank(0);
+ }
- irq_enable = 0;
- irq_counter = 0;
- }
+ irq_enable = 0;
+ irq_counter = 0;
+ }
- //void Mapper006::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- switch (addr)
- {
- case 0x42FE:
- if ((data & 0x10) != 0) SetVRAM_Mirror(VRAM_MIRROR4H);
- else SetVRAM_Mirror(VRAM_MIRROR4L);
- break;
- case 0x42FF:
- if ((data & 0x10) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
- else SetVRAM_Mirror(VRAM_VMIRROR);
- break;
+ //void Mapper006::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ switch (addr)
+ {
+ case 0x42FE:
+ if ((data & 0x10) != 0) SetVRAM_Mirror(VRAM_MIRROR4H);
+ else SetVRAM_Mirror(VRAM_MIRROR4L);
+ break;
+ case 0x42FF:
+ if ((data & 0x10) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
+ else SetVRAM_Mirror(VRAM_VMIRROR);
+ break;
- case 0x4501:
- irq_enable = 0;
+ case 0x4501:
+ irq_enable = 0;
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- case 0x4502:
- irq_counter = (irq_counter & 0xFF00) | data;
- break;
- case 0x4503:
- irq_counter = (irq_counter & 0x00FF) | ((INT)data << 8);
- irq_enable = 0xFF;
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ case 0x4502:
+ irq_counter = (irq_counter & 0xFF00) | data;
+ break;
+ case 0x4503:
+ irq_counter = (irq_counter & 0x00FF) | ((INT)data << 8);
+ irq_enable = 0xFF;
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- default:
- base.WriteLow(addr, data);
- break;
- }
- }
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ default:
+ base.WriteLow(addr, data);
+ break;
+ }
+ }
- //void Mapper006::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- SetPROM_16K_Bank(4, (data & 0x3C) >> 2);
- SetCRAM_8K_Bank(data & 0x03);
- }
+ //void Mapper006::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ SetPROM_16K_Bank(4, (data & 0x3C) >> 2);
+ SetCRAM_8K_Bank(data & 0x03);
+ }
- //void Mapper006::HSync(INT scanline)
- public override void HSync(int scanline)
- {
- if (irq_enable != 0)
- {
- irq_counter += 133;
- if (irq_counter >= 0xFFFF)
- {
- // nes.cpu.IRQ();
- irq_counter = 0;
+ //void Mapper006::HSync(INT scanline)
+ public override void HSync(int scanline)
+ {
+ if (irq_enable != 0)
+ {
+ irq_counter += 133;
+ if (irq_counter >= 0xFFFF)
+ {
+ // nes.cpu.IRQ();
+ irq_counter = 0;
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- }
- }
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ }
+ }
- //void Mapper006::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- //p[0] = irq_enable;
- //*(INT*)&p[1] = irq_counter;
- }
+ //void Mapper006::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ //p[0] = irq_enable;
+ //*(INT*)&p[1] = irq_counter;
+ }
- //void Mapper006::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- //irq_enable = p[0];
- //irq_counter = *(INT*)&p[1];
- }
+ //void Mapper006::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ //irq_enable = p[0];
+ //irq_counter = *(INT*)&p[1];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper007.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper007.cs
index cb29ea06..56316d3d 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper007.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper007.cs
@@ -2,58 +2,54 @@
// Mapper007 AOROM/AMROM //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
-using UnityEngine.UIElements;
namespace VirtualNes.Core
{
public class Mapper007 : Mapper
{
- BYTE patch;
- public Mapper007(NES parent) : base(parent) { }
+ BYTE patch;
+ public Mapper007(NES parent) : base(parent) { }
public override void Reset()
- {
- patch = 0;
+ {
+ patch = 0;
- SetPROM_32K_Bank(0);
- SetVRAM_Mirror(VRAM_MIRROR4L);
+ SetPROM_32K_Bank(0);
+ SetVRAM_Mirror(VRAM_MIRROR4L);
- uint crc = nes.rom.GetPROM_CRC();
- if (crc == 0x3c9fe649)
- { // WWF Wrestlemania Challenge(U)
- SetVRAM_Mirror(VRAM_VMIRROR);
- patch = 1;
- }
- if (crc == 0x09874777)
- { // Marble Madness(U)
- nes.SetRenderMethod( EnumRenderMethod.TILE_RENDER);
- }
+ uint crc = nes.rom.GetPROM_CRC();
+ if (crc == 0x3c9fe649)
+ { // WWF Wrestlemania Challenge(U)
+ SetVRAM_Mirror(VRAM_VMIRROR);
+ patch = 1;
+ }
+ if (crc == 0x09874777)
+ { // Marble Madness(U)
+ nes.SetRenderMethod(EnumRenderMethod.TILE_RENDER);
+ }
- if (crc == 0x279710DC // Battletoads (U)
- || crc == 0xCEB65B06)
- { // Battletoads Double Dragon (U)
- nes.SetRenderMethod( EnumRenderMethod.PRE_ALL_RENDER);
- //::memset(WRAM, 0, sizeof(WRAM));
- MemoryUtility.ZEROMEMORY(WRAM, WRAM.Length);
- }
- }
+ if (crc == 0x279710DC // Battletoads (U)
+ || crc == 0xCEB65B06)
+ { // Battletoads Double Dragon (U)
+ nes.SetRenderMethod(EnumRenderMethod.PRE_ALL_RENDER);
+ //::memset(WRAM, 0, sizeof(WRAM));
+ MemoryUtility.ZEROMEMORY(WRAM, WRAM.Length);
+ }
+ }
- //void Mapper007::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- SetPROM_32K_Bank(data & 0x07);
+ //void Mapper007::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ SetPROM_32K_Bank(data & 0x07);
- if (patch!=0)
- {
- if ((data & 0x10)!=0) SetVRAM_Mirror(VRAM_MIRROR4H);
- else SetVRAM_Mirror(VRAM_MIRROR4L);
- }
- }
+ if (patch != 0)
+ {
+ if ((data & 0x10) != 0) SetVRAM_Mirror(VRAM_MIRROR4H);
+ else SetVRAM_Mirror(VRAM_MIRROR4L);
+ }
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper008.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper008.cs
index 90834d66..4c532799 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper008.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper008.cs
@@ -2,31 +2,28 @@
// Mapper008 FFE F3xxx //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper008 : Mapper
- {
+ public class Mapper008 : Mapper
+ {
- public Mapper008(NES parent) : base(parent) { }
+ public Mapper008(NES parent) : base(parent) { }
- public override void Reset()
- {
- SetPROM_32K_Bank(0, 1, 2, 3);
- SetVROM_8K_Bank(0);
- }
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0, 1, 2, 3);
+ SetVROM_8K_Bank(0);
+ }
- //void Mapper008::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- SetPROM_16K_Bank(4, (data & 0xF8) >> 3);
- SetVROM_8K_Bank(data & 0x07);
- }
+ //void Mapper008::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ SetPROM_16K_Bank(4, (data & 0xF8) >> 3);
+ SetVROM_8K_Bank(data & 0x07);
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper009.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper009.cs
index 5dccb25d..ead96c69 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper009.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper009.cs
@@ -2,128 +2,126 @@
// Mapper009 Nintendo MMC2 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper009 : Mapper
- {
- BYTE[] reg = new byte[4];
- BYTE latch_a, latch_b;
+ public class Mapper009 : Mapper
+ {
+ BYTE[] reg = new byte[4];
+ BYTE latch_a, latch_b;
- public Mapper009(NES parent) : base(parent) { }
+ public Mapper009(NES parent) : base(parent) { }
- public override void Reset()
- {
- SetPROM_32K_Bank(0, PROM_8K_SIZE - 3, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0, PROM_8K_SIZE - 3, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- reg[0] = 0; reg[1] = 4;
- reg[2] = 0; reg[3] = 0;
+ reg[0] = 0; reg[1] = 4;
+ reg[2] = 0; reg[3] = 0;
- latch_a = 0xFE;
- latch_b = 0xFE;
- SetVROM_4K_Bank(0, 4);
- SetVROM_4K_Bank(4, 0);
+ latch_a = 0xFE;
+ latch_b = 0xFE;
+ SetVROM_4K_Bank(0, 4);
+ SetVROM_4K_Bank(4, 0);
- nes.ppu.SetChrLatchMode(true);
- }
+ nes.ppu.SetChrLatchMode(true);
+ }
- //void Mapper009::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr & 0xF000)
- {
- case 0xA000:
- SetPROM_8K_Bank(4, data);
- break;
- case 0xB000:
- reg[0] = data;
- if (latch_a == 0xFD)
- {
- SetVROM_4K_Bank(0, reg[0]);
- }
- break;
- case 0xC000:
- reg[1] = data;
- if (latch_a == 0xFE)
- {
- SetVROM_4K_Bank(0, reg[1]);
- }
- break;
- case 0xD000:
- reg[2] = data;
- if (latch_b == 0xFD)
- {
- SetVROM_4K_Bank(4, reg[2]);
- }
- break;
- case 0xE000:
- reg[3] = data;
- if (latch_b == 0xFE)
- {
- SetVROM_4K_Bank(4, reg[3]);
- }
- break;
- case 0xF000:
- if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
- else SetVRAM_Mirror(VRAM_VMIRROR);
- break;
- }
- }
+ //void Mapper009::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr & 0xF000)
+ {
+ case 0xA000:
+ SetPROM_8K_Bank(4, data);
+ break;
+ case 0xB000:
+ reg[0] = data;
+ if (latch_a == 0xFD)
+ {
+ SetVROM_4K_Bank(0, reg[0]);
+ }
+ break;
+ case 0xC000:
+ reg[1] = data;
+ if (latch_a == 0xFE)
+ {
+ SetVROM_4K_Bank(0, reg[1]);
+ }
+ break;
+ case 0xD000:
+ reg[2] = data;
+ if (latch_b == 0xFD)
+ {
+ SetVROM_4K_Bank(4, reg[2]);
+ }
+ break;
+ case 0xE000:
+ reg[3] = data;
+ if (latch_b == 0xFE)
+ {
+ SetVROM_4K_Bank(4, reg[3]);
+ }
+ break;
+ case 0xF000:
+ if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
+ else SetVRAM_Mirror(VRAM_VMIRROR);
+ break;
+ }
+ }
- //void Mapper009::PPU_ChrLatch(WORD addr)
- public override void PPU_ChrLatch(ushort addr)
- {
- if ((addr & 0x1FF0) == 0x0FD0 && latch_a != 0xFD)
- {
- latch_a = 0xFD;
- SetVROM_4K_Bank(0, reg[0]);
- }
- else if ((addr & 0x1FF0) == 0x0FE0 && latch_a != 0xFE)
- {
- latch_a = 0xFE;
- SetVROM_4K_Bank(0, reg[1]);
- }
- else if ((addr & 0x1FF0) == 0x1FD0 && latch_b != 0xFD)
- {
- latch_b = 0xFD;
- SetVROM_4K_Bank(4, reg[2]);
- }
- else if ((addr & 0x1FF0) == 0x1FE0 && latch_b != 0xFE)
- {
- latch_b = 0xFE;
- SetVROM_4K_Bank(4, reg[3]);
- }
- }
+ //void Mapper009::PPU_ChrLatch(WORD addr)
+ public override void PPU_ChrLatch(ushort addr)
+ {
+ if ((addr & 0x1FF0) == 0x0FD0 && latch_a != 0xFD)
+ {
+ latch_a = 0xFD;
+ SetVROM_4K_Bank(0, reg[0]);
+ }
+ else if ((addr & 0x1FF0) == 0x0FE0 && latch_a != 0xFE)
+ {
+ latch_a = 0xFE;
+ SetVROM_4K_Bank(0, reg[1]);
+ }
+ else if ((addr & 0x1FF0) == 0x1FD0 && latch_b != 0xFD)
+ {
+ latch_b = 0xFD;
+ SetVROM_4K_Bank(4, reg[2]);
+ }
+ else if ((addr & 0x1FF0) == 0x1FE0 && latch_b != 0xFE)
+ {
+ latch_b = 0xFE;
+ SetVROM_4K_Bank(4, reg[3]);
+ }
+ }
- //void Mapper009::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- p[0] = reg[0];
- p[1] = reg[1];
- p[2] = reg[2];
- p[3] = reg[3];
- p[4] = latch_a;
- p[5] = latch_b;
- }
+ //void Mapper009::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ p[0] = reg[0];
+ p[1] = reg[1];
+ p[2] = reg[2];
+ p[3] = reg[3];
+ p[4] = latch_a;
+ p[5] = latch_b;
+ }
- //void Mapper009::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- reg[0] = p[0];
- reg[1] = p[1];
- reg[2] = p[2];
- reg[3] = p[3];
- latch_a = p[4];
- latch_b = p[5];
- }
+ //void Mapper009::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ reg[0] = p[0];
+ reg[1] = p[1];
+ reg[2] = p[2];
+ reg[3] = p[3];
+ latch_a = p[4];
+ latch_b = p[5];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper010.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper010.cs
index aeb28332..62ab48ae 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper010.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper010.cs
@@ -2,128 +2,126 @@
// Mapper010 Nintendo MMC4 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper010 : Mapper
- {
- BYTE[] reg = new byte[4];
- BYTE latch_a, latch_b;
+ public class Mapper010 : Mapper
+ {
+ BYTE[] reg = new byte[4];
+ BYTE latch_a, latch_b;
- public Mapper010(NES parent) : base(parent) { }
+ public Mapper010(NES parent) : base(parent) { }
- public override void Reset()
- {
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- reg[0] = 0; reg[1] = 4;
- reg[2] = 0; reg[3] = 0;
+ reg[0] = 0; reg[1] = 4;
+ reg[2] = 0; reg[3] = 0;
- latch_a = 0xFE;
- latch_b = 0xFE;
- SetVROM_4K_Bank(0, 4);
- SetVROM_4K_Bank(4, 0);
+ latch_a = 0xFE;
+ latch_b = 0xFE;
+ SetVROM_4K_Bank(0, 4);
+ SetVROM_4K_Bank(4, 0);
- nes.ppu.SetChrLatchMode(true);
- }
+ nes.ppu.SetChrLatchMode(true);
+ }
- //void Mapper010::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr & 0xF000)
- {
- case 0xA000:
- SetPROM_16K_Bank(4, data);
- break;
- case 0xB000:
- reg[0] = data;
- if (latch_a == 0xFD)
- {
- SetVROM_4K_Bank(0, reg[0]);
- }
- break;
- case 0xC000:
- reg[1] = data;
- if (latch_a == 0xFE)
- {
- SetVROM_4K_Bank(0, reg[1]);
- }
- break;
- case 0xD000:
- reg[2] = data;
- if (latch_b == 0xFD)
- {
- SetVROM_4K_Bank(4, reg[2]);
- }
- break;
- case 0xE000:
- reg[3] = data;
- if (latch_b == 0xFE)
- {
- SetVROM_4K_Bank(4, reg[3]);
- }
- break;
- case 0xF000:
- if ((data & 0x01) != 0)
- SetVRAM_Mirror(VRAM_HMIRROR);
- else SetVRAM_Mirror(VRAM_VMIRROR);
- break;
- }
- }
+ //void Mapper010::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr & 0xF000)
+ {
+ case 0xA000:
+ SetPROM_16K_Bank(4, data);
+ break;
+ case 0xB000:
+ reg[0] = data;
+ if (latch_a == 0xFD)
+ {
+ SetVROM_4K_Bank(0, reg[0]);
+ }
+ break;
+ case 0xC000:
+ reg[1] = data;
+ if (latch_a == 0xFE)
+ {
+ SetVROM_4K_Bank(0, reg[1]);
+ }
+ break;
+ case 0xD000:
+ reg[2] = data;
+ if (latch_b == 0xFD)
+ {
+ SetVROM_4K_Bank(4, reg[2]);
+ }
+ break;
+ case 0xE000:
+ reg[3] = data;
+ if (latch_b == 0xFE)
+ {
+ SetVROM_4K_Bank(4, reg[3]);
+ }
+ break;
+ case 0xF000:
+ if ((data & 0x01) != 0)
+ SetVRAM_Mirror(VRAM_HMIRROR);
+ else SetVRAM_Mirror(VRAM_VMIRROR);
+ break;
+ }
+ }
- //void Mapper010::PPU_ChrLatch(WORD addr)
- public override void PPU_ChrLatch(ushort addr)
- {
- if ((addr & 0x1FF0) == 0x0FD0 && latch_a != 0xFD)
- {
- latch_a = 0xFD;
- SetVROM_4K_Bank(0, reg[0]);
- }
- else if ((addr & 0x1FF0) == 0x0FE0 && latch_a != 0xFE)
- {
- latch_a = 0xFE;
- SetVROM_4K_Bank(0, reg[1]);
- }
- else if ((addr & 0x1FF0) == 0x1FD0 && latch_b != 0xFD)
- {
- latch_b = 0xFD;
- SetVROM_4K_Bank(4, reg[2]);
- }
- else if ((addr & 0x1FF0) == 0x1FE0 && latch_b != 0xFE)
- {
- latch_b = 0xFE;
- SetVROM_4K_Bank(4, reg[3]);
- }
- }
+ //void Mapper010::PPU_ChrLatch(WORD addr)
+ public override void PPU_ChrLatch(ushort addr)
+ {
+ if ((addr & 0x1FF0) == 0x0FD0 && latch_a != 0xFD)
+ {
+ latch_a = 0xFD;
+ SetVROM_4K_Bank(0, reg[0]);
+ }
+ else if ((addr & 0x1FF0) == 0x0FE0 && latch_a != 0xFE)
+ {
+ latch_a = 0xFE;
+ SetVROM_4K_Bank(0, reg[1]);
+ }
+ else if ((addr & 0x1FF0) == 0x1FD0 && latch_b != 0xFD)
+ {
+ latch_b = 0xFD;
+ SetVROM_4K_Bank(4, reg[2]);
+ }
+ else if ((addr & 0x1FF0) == 0x1FE0 && latch_b != 0xFE)
+ {
+ latch_b = 0xFE;
+ SetVROM_4K_Bank(4, reg[3]);
+ }
+ }
- //void Mapper010::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- p[0] = reg[0];
- p[1] = reg[1];
- p[2] = reg[2];
- p[3] = reg[3];
- p[4] = latch_a;
- p[5] = latch_b;
- }
+ //void Mapper010::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ p[0] = reg[0];
+ p[1] = reg[1];
+ p[2] = reg[2];
+ p[3] = reg[3];
+ p[4] = latch_a;
+ p[5] = latch_b;
+ }
- //void Mapper010::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- reg[0] = p[0];
- reg[1] = p[1];
- reg[2] = p[2];
- reg[3] = p[3];
- latch_a = p[4];
- latch_b = p[5];
- }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ //void Mapper010::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ reg[0] = p[0];
+ reg[1] = p[1];
+ reg[2] = p[2];
+ reg[3] = p[3];
+ latch_a = p[4];
+ latch_b = p[5];
+ }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper011.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper011.cs
index 46188d1e..2ee819ae 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper011.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper011.cs
@@ -2,41 +2,38 @@
// Mapper011 Color Dreams //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper011 : Mapper
- {
+ public class Mapper011 : Mapper
+ {
- public Mapper011(NES parent) : base(parent) { }
+ public Mapper011(NES parent) : base(parent) { }
- public override void Reset()
- {
- SetPROM_32K_Bank(0);
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0);
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_8K_Bank(0);
- // SetVROM_8K_Bank( 1 );
- }
- SetVRAM_Mirror(VRAM_VMIRROR);
- }
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0);
+ // SetVROM_8K_Bank( 1 );
+ }
+ SetVRAM_Mirror(VRAM_VMIRROR);
+ }
- //void Mapper011::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- //DEBUGOUT("WR A:%04X D:%02X\n", addr, data);
- SetPROM_32K_Bank(data);
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_8K_Bank(data >> 4);
- }
- }
+ //void Mapper011::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ //DEBUGOUT("WR A:%04X D:%02X\n", addr, data);
+ SetPROM_32K_Bank(data);
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(data >> 4);
+ }
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper012.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper012.cs
index 51fcb4db..b6839ee8 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper012.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper012.cs
@@ -1,331 +1,331 @@
-using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.Core.CPU;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper012 : Mapper
- {
- uint vb0, vb1;
- BYTE[] reg = new byte[8];
- BYTE prg0, prg1;
- BYTE chr01, chr23, chr4, chr5, chr6, chr7;
- BYTE we_sram;
+ public class Mapper012 : Mapper
+ {
+ uint vb0, vb1;
+ BYTE[] reg = new byte[8];
+ BYTE prg0, prg1;
+ BYTE chr01, chr23, chr4, chr5, chr6, chr7;
+ BYTE we_sram;
- BYTE irq_enable;
- BYTE irq_counter;
- BYTE irq_latch;
- BYTE irq_request;
- BYTE irq_preset;
- BYTE irq_preset_vbl;
+ BYTE irq_enable;
+ BYTE irq_counter;
+ BYTE irq_latch;
+ BYTE irq_request;
+ BYTE irq_preset;
+ BYTE irq_preset_vbl;
- public Mapper012(NES parent) : base(parent) { }
+ public Mapper012(NES parent) : base(parent) { }
- public override void Reset()
- {
- for (INT i = 0; i < 8; i++)
- {
- reg[i] = 0x00;
- }
+ public override void Reset()
+ {
+ for (INT i = 0; i < 8; i++)
+ {
+ reg[i] = 0x00;
+ }
- prg0 = 0;
- prg1 = 1;
- SetBank_CPU();
+ prg0 = 0;
+ prg1 = 1;
+ SetBank_CPU();
- vb0 = 0;
- vb1 = 0;
- chr01 = 0;
- chr23 = 2;
- chr4 = 4;
- chr5 = 5;
- chr6 = 6;
- chr7 = 7;
- SetBank_PPU();
+ vb0 = 0;
+ vb1 = 0;
+ chr01 = 0;
+ chr23 = 2;
+ chr4 = 4;
+ chr5 = 5;
+ chr6 = 6;
+ chr7 = 7;
+ SetBank_PPU();
- we_sram = 0; // Disable
- irq_enable = 0; // Disable
- irq_counter = 0;
- irq_latch = 0xFF;
- irq_request = 0;
- irq_preset = 0;
- irq_preset_vbl = 0;
- }
+ we_sram = 0; // Disable
+ irq_enable = 0; // Disable
+ irq_counter = 0;
+ irq_latch = 0xFF;
+ irq_request = 0;
+ irq_preset = 0;
+ irq_preset_vbl = 0;
+ }
- //void Mapper012::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- if (addr > 0x4100 && addr < 0x6000)
- {
- vb0 = (byte)((data & 0x01) << 8);
- vb1 = (byte)((data & 0x10) << 4);
- SetBank_PPU();
- }
- else
- {
- base.WriteLow(addr, data);
- }
- }
+ //void Mapper012::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ if (addr > 0x4100 && addr < 0x6000)
+ {
+ vb0 = (byte)((data & 0x01) << 8);
+ vb1 = (byte)((data & 0x10) << 4);
+ SetBank_PPU();
+ }
+ else
+ {
+ base.WriteLow(addr, data);
+ }
+ }
- //BYTE Mapper012::ReadLow(WORD addr)
- public override byte ReadLow(ushort addr)
- {
- return 0x01;
- }
+ //BYTE Mapper012::ReadLow(WORD addr)
+ public override byte ReadLow(ushort addr)
+ {
+ return 0x01;
+ }
- //void Mapper012::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- //DEBUGOUT( "MPRWR A=%04X D=%02X L=%3d CYC=%d\n", addr&0xFFFF, data&0xFF, nes.GetScanline(), nes.cpu.GetTotalCycles() );
+ //void Mapper012::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ //DEBUGOUT( "MPRWR A=%04X D=%02X L=%3d CYC=%d\n", addr&0xFFFF, data&0xFF, nes.GetScanline(), nes.cpu.GetTotalCycles() );
- switch (addr & 0xE001)
- {
- case 0x8000:
- reg[0] = data;
- SetBank_CPU();
- SetBank_PPU();
- break;
- case 0x8001:
- reg[1] = data;
+ switch (addr & 0xE001)
+ {
+ case 0x8000:
+ reg[0] = data;
+ SetBank_CPU();
+ SetBank_PPU();
+ break;
+ case 0x8001:
+ reg[1] = data;
- switch (reg[0] & 0x07)
- {
- case 0x00:
- chr01 = (byte)(data & 0xFE);
- SetBank_PPU();
- break;
- case 0x01:
- chr23 = (byte)(data & 0xFE);
- SetBank_PPU();
- break;
- case 0x02:
- chr4 = data;
- SetBank_PPU();
- break;
- case 0x03:
- chr5 = data;
- SetBank_PPU();
- break;
- case 0x04:
- chr6 = data;
- SetBank_PPU();
- break;
- case 0x05:
- chr7 = data;
- SetBank_PPU();
- break;
- case 0x06:
- prg0 = data;
- SetBank_CPU();
- break;
- case 0x07:
- prg1 = data;
- SetBank_CPU();
- break;
- }
- break;
- case 0xA000:
- reg[2] = data;
- if (!nes.rom.Is4SCREEN())
- {
- if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
- else SetVRAM_Mirror(VRAM_VMIRROR);
- }
- break;
- case 0xA001:
- reg[3] = data;
- break;
- case 0xC000:
- reg[4] = data;
- irq_latch = data;
- break;
- case 0xC001:
- reg[5] = data;
- if (nes.GetScanline() < 240)
- {
- irq_counter |= 0x80;
- irq_preset = 0xFF;
- }
- else
- {
- irq_counter |= 0x80;
- irq_preset_vbl = 0xFF;
- irq_preset = 0;
- }
- break;
- case 0xE000:
- reg[6] = data;
- irq_enable = 0;
- irq_request = 0;
+ switch (reg[0] & 0x07)
+ {
+ case 0x00:
+ chr01 = (byte)(data & 0xFE);
+ SetBank_PPU();
+ break;
+ case 0x01:
+ chr23 = (byte)(data & 0xFE);
+ SetBank_PPU();
+ break;
+ case 0x02:
+ chr4 = data;
+ SetBank_PPU();
+ break;
+ case 0x03:
+ chr5 = data;
+ SetBank_PPU();
+ break;
+ case 0x04:
+ chr6 = data;
+ SetBank_PPU();
+ break;
+ case 0x05:
+ chr7 = data;
+ SetBank_PPU();
+ break;
+ case 0x06:
+ prg0 = data;
+ SetBank_CPU();
+ break;
+ case 0x07:
+ prg1 = data;
+ SetBank_CPU();
+ break;
+ }
+ break;
+ case 0xA000:
+ reg[2] = data;
+ if (!nes.rom.Is4SCREEN())
+ {
+ if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
+ else SetVRAM_Mirror(VRAM_VMIRROR);
+ }
+ break;
+ case 0xA001:
+ reg[3] = data;
+ break;
+ case 0xC000:
+ reg[4] = data;
+ irq_latch = data;
+ break;
+ case 0xC001:
+ reg[5] = data;
+ if (nes.GetScanline() < 240)
+ {
+ irq_counter |= 0x80;
+ irq_preset = 0xFF;
+ }
+ else
+ {
+ irq_counter |= 0x80;
+ irq_preset_vbl = 0xFF;
+ irq_preset = 0;
+ }
+ break;
+ case 0xE000:
+ reg[6] = data;
+ irq_enable = 0;
+ irq_request = 0;
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- case 0xE001:
- reg[7] = data;
- irq_enable = 1;
- irq_request = 0;
- break;
- }
- }
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ case 0xE001:
+ reg[7] = data;
+ irq_enable = 1;
+ irq_request = 0;
+ break;
+ }
+ }
- //void Mapper012::HSync(INT scanline)
- public override void HSync(int scanline)
- {
- if ((scanline >= 0 && scanline <= 239) && nes.ppu.IsDispON())
- {
- if (irq_preset_vbl != 0)
- {
- irq_counter = irq_latch;
- irq_preset_vbl = 0;
- }
- if (irq_preset != 0)
- {
- irq_counter = irq_latch;
- irq_preset = 0;
- }
- else if (irq_counter > 0)
- {
- irq_counter--;
- }
+ //void Mapper012::HSync(INT scanline)
+ public override void HSync(int scanline)
+ {
+ if ((scanline >= 0 && scanline <= 239) && nes.ppu.IsDispON())
+ {
+ if (irq_preset_vbl != 0)
+ {
+ irq_counter = irq_latch;
+ irq_preset_vbl = 0;
+ }
+ if (irq_preset != 0)
+ {
+ irq_counter = irq_latch;
+ irq_preset = 0;
+ }
+ else if (irq_counter > 0)
+ {
+ irq_counter--;
+ }
- if (irq_counter == 0)
- {
- // Some game set irq_latch to zero to disable irq. So check it here.
- if (irq_enable != 0 && irq_latch != 0)
- {
- irq_request = 0xFF;
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- irq_preset = 0xFF;
- }
- }
- }
+ if (irq_counter == 0)
+ {
+ // Some game set irq_latch to zero to disable irq. So check it here.
+ if (irq_enable != 0 && irq_latch != 0)
+ {
+ irq_request = 0xFF;
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ irq_preset = 0xFF;
+ }
+ }
+ }
- void SetBank_CPU()
- {
- if ((reg[0] & 0x40) != 0)
- {
- SetPROM_32K_Bank(PROM_8K_SIZE - 2, prg1, prg0, PROM_8K_SIZE - 1);
- }
- else
- {
- SetPROM_32K_Bank(prg0, prg1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- }
- }
+ void SetBank_CPU()
+ {
+ if ((reg[0] & 0x40) != 0)
+ {
+ SetPROM_32K_Bank(PROM_8K_SIZE - 2, prg1, prg0, PROM_8K_SIZE - 1);
+ }
+ else
+ {
+ SetPROM_32K_Bank(prg0, prg1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ }
+ }
- void SetBank_PPU()
- {
- if (VROM_1K_SIZE != 0)
- {
- if ((reg[0] & 0x80) != 0)
- {
- SetVROM_8K_Bank(
- (int)(vb0 + chr4),
- (int)(vb0 + chr5),
- (int)(vb0 + chr6),
- (int)(vb0 + chr7),
- (int)(vb1 + chr01),
- (int)(vb1 + chr01 + 1),
- (int)(vb1 + chr23),
- (int)(vb1 + chr23 + 1)
- );
- }
- else
- {
- SetVROM_8K_Bank(
- (int)(vb0 + chr01),
- (int)(vb0 + chr01 + 1),
- (int)(vb0 + chr23),
- (int)(vb0 + chr23 + 1),
- (int)(vb1 + chr4),
- (int)(vb1 + chr5),
- (int)(vb1 + chr6),
- (int)(vb1 + chr7))
- ;
- }
- }
- else
- {
- if ((reg[0] & 0x80) != 0)
- {
- SetCRAM_1K_Bank(4, (chr01 + 0) & 0x07);
- SetCRAM_1K_Bank(5, (chr01 + 1) & 0x07);
- SetCRAM_1K_Bank(6, (chr23 + 0) & 0x07);
- SetCRAM_1K_Bank(7, (chr23 + 1) & 0x07);
- SetCRAM_1K_Bank(0, chr4 & 0x07);
- SetCRAM_1K_Bank(1, chr5 & 0x07);
- SetCRAM_1K_Bank(2, chr6 & 0x07);
- SetCRAM_1K_Bank(3, chr7 & 0x07);
- }
- else
- {
- SetCRAM_1K_Bank(0, (chr01 + 0) & 0x07);
- SetCRAM_1K_Bank(1, (chr01 + 1) & 0x07);
- SetCRAM_1K_Bank(2, (chr23 + 0) & 0x07);
- SetCRAM_1K_Bank(3, (chr23 + 1) & 0x07);
- SetCRAM_1K_Bank(4, chr4 & 0x07);
- SetCRAM_1K_Bank(5, chr5 & 0x07);
- SetCRAM_1K_Bank(6, chr6 & 0x07);
- SetCRAM_1K_Bank(7, chr7 & 0x07);
- }
- }
- }
+ void SetBank_PPU()
+ {
+ if (VROM_1K_SIZE != 0)
+ {
+ if ((reg[0] & 0x80) != 0)
+ {
+ SetVROM_8K_Bank(
+ (int)(vb0 + chr4),
+ (int)(vb0 + chr5),
+ (int)(vb0 + chr6),
+ (int)(vb0 + chr7),
+ (int)(vb1 + chr01),
+ (int)(vb1 + chr01 + 1),
+ (int)(vb1 + chr23),
+ (int)(vb1 + chr23 + 1)
+ );
+ }
+ else
+ {
+ SetVROM_8K_Bank(
+ (int)(vb0 + chr01),
+ (int)(vb0 + chr01 + 1),
+ (int)(vb0 + chr23),
+ (int)(vb0 + chr23 + 1),
+ (int)(vb1 + chr4),
+ (int)(vb1 + chr5),
+ (int)(vb1 + chr6),
+ (int)(vb1 + chr7))
+ ;
+ }
+ }
+ else
+ {
+ if ((reg[0] & 0x80) != 0)
+ {
+ SetCRAM_1K_Bank(4, (chr01 + 0) & 0x07);
+ SetCRAM_1K_Bank(5, (chr01 + 1) & 0x07);
+ SetCRAM_1K_Bank(6, (chr23 + 0) & 0x07);
+ SetCRAM_1K_Bank(7, (chr23 + 1) & 0x07);
+ SetCRAM_1K_Bank(0, chr4 & 0x07);
+ SetCRAM_1K_Bank(1, chr5 & 0x07);
+ SetCRAM_1K_Bank(2, chr6 & 0x07);
+ SetCRAM_1K_Bank(3, chr7 & 0x07);
+ }
+ else
+ {
+ SetCRAM_1K_Bank(0, (chr01 + 0) & 0x07);
+ SetCRAM_1K_Bank(1, (chr01 + 1) & 0x07);
+ SetCRAM_1K_Bank(2, (chr23 + 0) & 0x07);
+ SetCRAM_1K_Bank(3, (chr23 + 1) & 0x07);
+ SetCRAM_1K_Bank(4, chr4 & 0x07);
+ SetCRAM_1K_Bank(5, chr5 & 0x07);
+ SetCRAM_1K_Bank(6, chr6 & 0x07);
+ SetCRAM_1K_Bank(7, chr7 & 0x07);
+ }
+ }
+ }
- //void Mapper012::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- //for (INT i = 0; i < 8; i++)
- //{
- // p[i] = reg[i];
- //}
- //p[8] = prg0;
- //p[9] = prg1;
- //p[10] = chr01;
- //p[11] = chr23;
- //p[12] = chr4;
- //p[13] = chr5;
- //p[14] = chr6;
- //p[15] = chr7;
- //p[16] = irq_enable;
- //p[17] = (BYTE)irq_counter;
- //p[18] = irq_latch;
- //p[19] = irq_request;
- //p[20] = irq_preset;
- //p[21] = irq_preset_vbl;
- //*((DWORD*)&p[22]) = vb0;
- //*((DWORD*)&p[26]) = vb1;
- }
+ //void Mapper012::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ //for (INT i = 0; i < 8; i++)
+ //{
+ // p[i] = reg[i];
+ //}
+ //p[8] = prg0;
+ //p[9] = prg1;
+ //p[10] = chr01;
+ //p[11] = chr23;
+ //p[12] = chr4;
+ //p[13] = chr5;
+ //p[14] = chr6;
+ //p[15] = chr7;
+ //p[16] = irq_enable;
+ //p[17] = (BYTE)irq_counter;
+ //p[18] = irq_latch;
+ //p[19] = irq_request;
+ //p[20] = irq_preset;
+ //p[21] = irq_preset_vbl;
+ //*((DWORD*)&p[22]) = vb0;
+ //*((DWORD*)&p[26]) = vb1;
+ }
- //void Mapper012::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- //for (INT i = 0; i < 8; i++)
- //{
- // reg[i] = p[i];
- //}
- //prg0 = p[8];
- //prg1 = p[9];
- //chr01 = p[10];
- //chr23 = p[11];
- //chr4 = p[12];
- //chr5 = p[13];
- //chr6 = p[14];
- //chr7 = p[15];
- //irq_enable = p[16];
- //irq_counter = (INT)p[17];
- //irq_latch = p[18];
- //irq_request = p[19];
- //irq_preset = p[20];
- //irq_preset_vbl = p[21];
- //vb0 = *((DWORD*)&p[22]);
- //vb1 = *((DWORD*)&p[26]);
- }
+ //void Mapper012::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ //for (INT i = 0; i < 8; i++)
+ //{
+ // reg[i] = p[i];
+ //}
+ //prg0 = p[8];
+ //prg1 = p[9];
+ //chr01 = p[10];
+ //chr23 = p[11];
+ //chr4 = p[12];
+ //chr5 = p[13];
+ //chr6 = p[14];
+ //chr7 = p[15];
+ //irq_enable = p[16];
+ //irq_counter = (INT)p[17];
+ //irq_latch = p[18];
+ //irq_request = p[19];
+ //irq_preset = p[20];
+ //irq_preset_vbl = p[21];
+ //vb0 = *((DWORD*)&p[22]);
+ //vb1 = *((DWORD*)&p[26]);
+ }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper013.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper013.cs
index 31d91230..e16779ca 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper013.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper013.cs
@@ -2,32 +2,29 @@
// Mapper013 CPROM //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper013 : Mapper
- {
+ public class Mapper013 : Mapper
+ {
- public Mapper013(NES parent) : base(parent) { }
+ public Mapper013(NES parent) : base(parent) { }
- public override void Reset()
- {
- SetPROM_32K_Bank(0, 1, 2, 3);
- SetCRAM_4K_Bank(0, 0);
- SetCRAM_4K_Bank(4, 0);
- }
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0, 1, 2, 3);
+ SetCRAM_4K_Bank(0, 0);
+ SetCRAM_4K_Bank(4, 0);
+ }
- //void Mapper013::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- SetPROM_32K_Bank((data & 0x30) >> 4);
- SetCRAM_4K_Bank(4, data & 0x03);
- }
+ //void Mapper013::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ SetPROM_32K_Bank((data & 0x30) >> 4);
+ SetCRAM_4K_Bank(4, data & 0x03);
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper015.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper015.cs
index 6b0336ee..3fca36cf 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper015.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper015.cs
@@ -2,92 +2,89 @@
// Mapper015 100-in-1 chip //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper015 : Mapper
- {
+ public class Mapper015 : Mapper
+ {
- public Mapper015(NES parent) : base(parent) { }
+ public Mapper015(NES parent) : base(parent) { }
- public override void Reset()
- {
- SetPROM_32K_Bank(0, 1, 2, 3);
- }
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0, 1, 2, 3);
+ }
- //void Mapper015::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr)
- {
- case 0x8000:
- if ((data & 0x80) != 0)
- {
- SetPROM_8K_Bank(4, (data & 0x3F) * 2 + 1);
- SetPROM_8K_Bank(5, (data & 0x3F) * 2 + 0);
- SetPROM_8K_Bank(6, (data & 0x3F) * 2 + 3);
- SetPROM_8K_Bank(7, (data & 0x3F) * 2 + 2);
- }
- else
- {
- SetPROM_8K_Bank(4, (data & 0x3F) * 2 + 0);
- SetPROM_8K_Bank(5, (data & 0x3F) * 2 + 1);
- SetPROM_8K_Bank(6, (data & 0x3F) * 2 + 2);
- SetPROM_8K_Bank(7, (data & 0x3F) * 2 + 3);
- }
- if ((data & 0x40) != 0)
- SetVRAM_Mirror(VRAM_HMIRROR);
- else SetVRAM_Mirror(VRAM_VMIRROR);
- break;
- case 0x8001:
- if ((data & 0x80) != 0)
- {
- SetPROM_8K_Bank(6, (data & 0x3F) * 2 + 1);
- SetPROM_8K_Bank(7, (data & 0x3F) * 2 + 0);
- }
- else
- {
- SetPROM_8K_Bank(6, (data & 0x3F) * 2 + 0);
- SetPROM_8K_Bank(7, (data & 0x3F) * 2 + 1);
- }
- break;
- case 0x8002:
- if ((data & 0x80) != 0)
- {
- SetPROM_8K_Bank(4, (data & 0x3F) * 2 + 1);
- SetPROM_8K_Bank(5, (data & 0x3F) * 2 + 1);
- SetPROM_8K_Bank(6, (data & 0x3F) * 2 + 1);
- SetPROM_8K_Bank(7, (data & 0x3F) * 2 + 1);
- }
- else
- {
- SetPROM_8K_Bank(4, (data & 0x3F) * 2 + 0);
- SetPROM_8K_Bank(5, (data & 0x3F) * 2 + 0);
- SetPROM_8K_Bank(6, (data & 0x3F) * 2 + 0);
- SetPROM_8K_Bank(7, (data & 0x3F) * 2 + 0);
- }
- break;
- case 0x8003:
- if ((data & 0x80) != 0)
- {
- SetPROM_8K_Bank(6, (data & 0x3F) * 2 + 1);
- SetPROM_8K_Bank(7, (data & 0x3F) * 2 + 0);
- }
- else
- {
- SetPROM_8K_Bank(6, (data & 0x3F) * 2 + 0);
- SetPROM_8K_Bank(7, (data & 0x3F) * 2 + 1);
- }
- if ((data & 0x40) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
- else SetVRAM_Mirror(VRAM_VMIRROR);
- break;
- }
- }
+ //void Mapper015::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr)
+ {
+ case 0x8000:
+ if ((data & 0x80) != 0)
+ {
+ SetPROM_8K_Bank(4, (data & 0x3F) * 2 + 1);
+ SetPROM_8K_Bank(5, (data & 0x3F) * 2 + 0);
+ SetPROM_8K_Bank(6, (data & 0x3F) * 2 + 3);
+ SetPROM_8K_Bank(7, (data & 0x3F) * 2 + 2);
+ }
+ else
+ {
+ SetPROM_8K_Bank(4, (data & 0x3F) * 2 + 0);
+ SetPROM_8K_Bank(5, (data & 0x3F) * 2 + 1);
+ SetPROM_8K_Bank(6, (data & 0x3F) * 2 + 2);
+ SetPROM_8K_Bank(7, (data & 0x3F) * 2 + 3);
+ }
+ if ((data & 0x40) != 0)
+ SetVRAM_Mirror(VRAM_HMIRROR);
+ else SetVRAM_Mirror(VRAM_VMIRROR);
+ break;
+ case 0x8001:
+ if ((data & 0x80) != 0)
+ {
+ SetPROM_8K_Bank(6, (data & 0x3F) * 2 + 1);
+ SetPROM_8K_Bank(7, (data & 0x3F) * 2 + 0);
+ }
+ else
+ {
+ SetPROM_8K_Bank(6, (data & 0x3F) * 2 + 0);
+ SetPROM_8K_Bank(7, (data & 0x3F) * 2 + 1);
+ }
+ break;
+ case 0x8002:
+ if ((data & 0x80) != 0)
+ {
+ SetPROM_8K_Bank(4, (data & 0x3F) * 2 + 1);
+ SetPROM_8K_Bank(5, (data & 0x3F) * 2 + 1);
+ SetPROM_8K_Bank(6, (data & 0x3F) * 2 + 1);
+ SetPROM_8K_Bank(7, (data & 0x3F) * 2 + 1);
+ }
+ else
+ {
+ SetPROM_8K_Bank(4, (data & 0x3F) * 2 + 0);
+ SetPROM_8K_Bank(5, (data & 0x3F) * 2 + 0);
+ SetPROM_8K_Bank(6, (data & 0x3F) * 2 + 0);
+ SetPROM_8K_Bank(7, (data & 0x3F) * 2 + 0);
+ }
+ break;
+ case 0x8003:
+ if ((data & 0x80) != 0)
+ {
+ SetPROM_8K_Bank(6, (data & 0x3F) * 2 + 1);
+ SetPROM_8K_Bank(7, (data & 0x3F) * 2 + 0);
+ }
+ else
+ {
+ SetPROM_8K_Bank(6, (data & 0x3F) * 2 + 0);
+ SetPROM_8K_Bank(7, (data & 0x3F) * 2 + 1);
+ }
+ if ((data & 0x40) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
+ else SetVRAM_Mirror(VRAM_VMIRROR);
+ break;
+ }
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper017.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper017.cs
index d1344c17..2d7c6d6d 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper017.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper017.cs
@@ -1,127 +1,127 @@
-using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.Core.CPU;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper017 : Mapper
- {
- BYTE irq_enable;
- INT irq_counter;
- INT irq_latch;
- public Mapper017(NES parent) : base(parent)
- {
- }
+ public class Mapper017 : Mapper
+ {
+ BYTE irq_enable;
+ INT irq_counter;
+ INT irq_latch;
+ public Mapper017(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_8K_Bank(0);
- }
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0);
+ }
- irq_enable = 0;
- irq_counter = 0;
- irq_latch = 0;
- }
+ irq_enable = 0;
+ irq_counter = 0;
+ irq_latch = 0;
+ }
- //void Mapper017::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- switch (addr)
- {
- case 0x42FE:
- if ((data & 0x10) != 0) SetVRAM_Mirror(VRAM_MIRROR4H);
- else SetVRAM_Mirror(VRAM_MIRROR4L);
- break;
- case 0x42FF:
- if ((data & 0x10) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
- else SetVRAM_Mirror(VRAM_VMIRROR);
- break;
+ //void Mapper017::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ switch (addr)
+ {
+ case 0x42FE:
+ if ((data & 0x10) != 0) SetVRAM_Mirror(VRAM_MIRROR4H);
+ else SetVRAM_Mirror(VRAM_MIRROR4L);
+ break;
+ case 0x42FF:
+ if ((data & 0x10) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
+ else SetVRAM_Mirror(VRAM_VMIRROR);
+ break;
- case 0x4501:
- irq_enable = 0;
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- case 0x4502:
- irq_latch = (irq_latch & 0xFF00) | data;
- break;
- case 0x4503:
- irq_latch = (irq_latch & 0x00FF) | ((INT)data << 8);
- irq_counter = irq_latch;
- irq_enable = 0xFF;
- break;
+ case 0x4501:
+ irq_enable = 0;
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ case 0x4502:
+ irq_latch = (irq_latch & 0xFF00) | data;
+ break;
+ case 0x4503:
+ irq_latch = (irq_latch & 0x00FF) | ((INT)data << 8);
+ irq_counter = irq_latch;
+ irq_enable = 0xFF;
+ break;
- case 0x4504:
- case 0x4505:
- case 0x4506:
- case 0x4507:
- SetPROM_8K_Bank((byte)(addr & 0x07), data);
- break;
+ case 0x4504:
+ case 0x4505:
+ case 0x4506:
+ case 0x4507:
+ SetPROM_8K_Bank((byte)(addr & 0x07), data);
+ break;
- case 0x4510:
- case 0x4511:
- case 0x4512:
- case 0x4513:
- case 0x4514:
- case 0x4515:
- case 0x4516:
- case 0x4517:
- SetVROM_1K_Bank((byte)(addr & 0x07), data);
- break;
+ case 0x4510:
+ case 0x4511:
+ case 0x4512:
+ case 0x4513:
+ case 0x4514:
+ case 0x4515:
+ case 0x4516:
+ case 0x4517:
+ SetVROM_1K_Bank((byte)(addr & 0x07), data);
+ break;
- default:
- base.WriteLow(addr, data);
- break;
- }
- }
+ default:
+ base.WriteLow(addr, data);
+ break;
+ }
+ }
- //void Mapper017::HSync(INT scanline)
- public override void HSync(int scanline)
- {
- if (irq_enable != 0)
- {
- if (irq_counter >= 0xFFFF - 113)
- {
- nes.cpu.SetIRQ(IRQ_MAPPER);
- // nes.cpu.IRQ();
- // irq_counter = 0;
- // irq_enable = 0;
- irq_counter &= 0xFFFF;
- }
- else
- {
- irq_counter += 113;
- }
- }
- }
+ //void Mapper017::HSync(INT scanline)
+ public override void HSync(int scanline)
+ {
+ if (irq_enable != 0)
+ {
+ if (irq_counter >= 0xFFFF - 113)
+ {
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ // nes.cpu.IRQ();
+ // irq_counter = 0;
+ // irq_enable = 0;
+ irq_counter &= 0xFFFF;
+ }
+ else
+ {
+ irq_counter += 113;
+ }
+ }
+ }
- //void Mapper017::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- //p[0] = irq_enable;
- //*(INT*)&p[1] = irq_counter;
- //*(INT*)&p[5] = irq_latch;
- }
+ //void Mapper017::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ //p[0] = irq_enable;
+ //*(INT*)&p[1] = irq_counter;
+ //*(INT*)&p[5] = irq_latch;
+ }
- //void Mapper017::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- //irq_enable = p[0];
- //irq_counter = *(INT*)&p[1];
- //irq_latch = *(INT*)&p[5];
- }
+ //void Mapper017::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ //irq_enable = p[0];
+ //irq_counter = *(INT*)&p[1];
+ //irq_latch = *(INT*)&p[5];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper018.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper018.cs
index c4766441..e3da95fa 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper018.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper018.cs
@@ -1,278 +1,278 @@
//////////////////////////////////////////////////////////////////////////
// Mapper018 Jaleco SS8806 //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper018 : Mapper
- {
- BYTE[] reg = new byte[11];
+ public class Mapper018 : Mapper
+ {
+ BYTE[] reg = new byte[11];
- BYTE irq_enable;
- BYTE irq_mode;
- INT irq_latch;
- INT irq_counter;
- public Mapper018(NES parent) : base(parent)
- {
- }
+ BYTE irq_enable;
+ BYTE irq_mode;
+ INT irq_latch;
+ INT irq_counter;
+ public Mapper018(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- for (INT i = 0; i < 11; i++)
- {
- reg[i] = 0;
- }
- reg[2] = (byte)(PROM_8K_SIZE - 2);
- reg[3] = (byte)(PROM_8K_SIZE - 1);
+ public override void Reset()
+ {
+ for (INT i = 0; i < 11; i++)
+ {
+ reg[i] = 0;
+ }
+ reg[2] = (byte)(PROM_8K_SIZE - 2);
+ reg[3] = (byte)(PROM_8K_SIZE - 1);
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- irq_enable = 0;
- irq_mode = 0;
- irq_counter = 0xFFFF;
- irq_latch = 0xFFFF;
+ irq_enable = 0;
+ irq_mode = 0;
+ irq_counter = 0xFFFF;
+ irq_latch = 0xFFFF;
- uint crc = nes.rom.GetPROM_CRC();
+ uint crc = nes.rom.GetPROM_CRC();
- if (crc == 0xefb1df9e)
- { // The Lord of King(J)
- nes.SetRenderMethod(EnumRenderMethod.PRE_ALL_RENDER);
- }
- if (crc == 0x3746f951)
- { // Pizza Pop!(J)
- nes.SetRenderMethod(EnumRenderMethod.PRE_ALL_RENDER);
- }
+ if (crc == 0xefb1df9e)
+ { // The Lord of King(J)
+ nes.SetRenderMethod(EnumRenderMethod.PRE_ALL_RENDER);
+ }
+ if (crc == 0x3746f951)
+ { // Pizza Pop!(J)
+ nes.SetRenderMethod(EnumRenderMethod.PRE_ALL_RENDER);
+ }
- // nes.SetRenderMethod( NES::PRE_ALL_RENDER );
- // nes.SetRenderMethod( NES::POST_ALL_RENDER );
- }
+ // nes.SetRenderMethod( NES::PRE_ALL_RENDER );
+ // nes.SetRenderMethod( NES::POST_ALL_RENDER );
+ }
- //void Mapper018::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr)
- {
- case 0x8000:
- reg[0] = (byte)((reg[0] & 0xF0) | (data & 0x0F));
- SetPROM_8K_Bank(4, reg[0]);
- break;
- case 0x8001:
- reg[0] = (byte)((reg[0] & 0x0F) | ((data & 0x0F) << 4));
- SetPROM_8K_Bank(4, reg[0]);
- break;
- case 0x8002:
- reg[1] = (byte)((reg[1] & 0xF0) | (data & 0x0F));
- SetPROM_8K_Bank(5, reg[1]);
- break;
- case 0x8003:
- reg[1] = (byte)((reg[1] & 0x0F) | ((data & 0x0F) << 4));
- SetPROM_8K_Bank(5, reg[1]);
- break;
- case 0x9000:
- reg[2] = (byte)((reg[2] & 0xF0) | (data & 0x0F));
- SetPROM_8K_Bank(6, reg[2]);
- break;
- case 0x9001:
- reg[2] = (byte)((reg[2] & 0x0F) | ((data & 0x0F) << 4));
- SetPROM_8K_Bank(6, reg[2]);
- break;
+ //void Mapper018::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr)
+ {
+ case 0x8000:
+ reg[0] = (byte)((reg[0] & 0xF0) | (data & 0x0F));
+ SetPROM_8K_Bank(4, reg[0]);
+ break;
+ case 0x8001:
+ reg[0] = (byte)((reg[0] & 0x0F) | ((data & 0x0F) << 4));
+ SetPROM_8K_Bank(4, reg[0]);
+ break;
+ case 0x8002:
+ reg[1] = (byte)((reg[1] & 0xF0) | (data & 0x0F));
+ SetPROM_8K_Bank(5, reg[1]);
+ break;
+ case 0x8003:
+ reg[1] = (byte)((reg[1] & 0x0F) | ((data & 0x0F) << 4));
+ SetPROM_8K_Bank(5, reg[1]);
+ break;
+ case 0x9000:
+ reg[2] = (byte)((reg[2] & 0xF0) | (data & 0x0F));
+ SetPROM_8K_Bank(6, reg[2]);
+ break;
+ case 0x9001:
+ reg[2] = (byte)((reg[2] & 0x0F) | ((data & 0x0F) << 4));
+ SetPROM_8K_Bank(6, reg[2]);
+ break;
- case 0xA000:
- reg[3] = (byte)((reg[3] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(0, reg[3]);
- break;
- case 0xA001:
- reg[3] = (byte)((reg[3] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(0, reg[3]);
- break;
- case 0xA002:
- reg[4] = (byte)((reg[4] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(1, reg[4]);
- break;
- case 0xA003:
- reg[4] = (byte)((reg[4] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(1, reg[4]);
- break;
+ case 0xA000:
+ reg[3] = (byte)((reg[3] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(0, reg[3]);
+ break;
+ case 0xA001:
+ reg[3] = (byte)((reg[3] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(0, reg[3]);
+ break;
+ case 0xA002:
+ reg[4] = (byte)((reg[4] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(1, reg[4]);
+ break;
+ case 0xA003:
+ reg[4] = (byte)((reg[4] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(1, reg[4]);
+ break;
- case 0xB000:
- reg[5] = (byte)((reg[5] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(2, reg[5]);
- break;
- case 0xB001:
- reg[5] = (byte)((reg[5] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(2, reg[5]);
- break;
- case 0xB002:
- reg[6] = (byte)((reg[6] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(3, reg[6]);
- break;
- case 0xB003:
- reg[6] = (byte)((reg[6] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(3, reg[6]);
- break;
+ case 0xB000:
+ reg[5] = (byte)((reg[5] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(2, reg[5]);
+ break;
+ case 0xB001:
+ reg[5] = (byte)((reg[5] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(2, reg[5]);
+ break;
+ case 0xB002:
+ reg[6] = (byte)((reg[6] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(3, reg[6]);
+ break;
+ case 0xB003:
+ reg[6] = (byte)((reg[6] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(3, reg[6]);
+ break;
- case 0xC000:
- reg[7] = (byte)((reg[7] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(4, reg[7]);
- break;
- case 0xC001:
- reg[7] = (byte)((reg[7] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(4, reg[7]);
- break;
- case 0xC002:
- reg[8] = (byte)((reg[8] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(5, reg[8]);
- break;
- case 0xC003:
- reg[8] = (byte)((reg[8] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(5, reg[8]);
- break;
+ case 0xC000:
+ reg[7] = (byte)((reg[7] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(4, reg[7]);
+ break;
+ case 0xC001:
+ reg[7] = (byte)((reg[7] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(4, reg[7]);
+ break;
+ case 0xC002:
+ reg[8] = (byte)((reg[8] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(5, reg[8]);
+ break;
+ case 0xC003:
+ reg[8] = (byte)((reg[8] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(5, reg[8]);
+ break;
- case 0xD000:
- reg[9] = (byte)((reg[9] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(6, reg[9]);
- break;
- case 0xD001:
- reg[9] = (byte)((reg[9] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(6, reg[9]);
- break;
- case 0xD002:
- reg[10] = (byte)((reg[10] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(7, reg[10]);
- break;
- case 0xD003:
- reg[10] = (byte)((reg[10] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(7, reg[10]);
- break;
+ case 0xD000:
+ reg[9] = (byte)((reg[9] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(6, reg[9]);
+ break;
+ case 0xD001:
+ reg[9] = (byte)((reg[9] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(6, reg[9]);
+ break;
+ case 0xD002:
+ reg[10] = (byte)((reg[10] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(7, reg[10]);
+ break;
+ case 0xD003:
+ reg[10] = (byte)((reg[10] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(7, reg[10]);
+ break;
- case 0xE000:
- irq_latch = (irq_latch & 0xFFF0) | (data & 0x0F);
- break;
- case 0xE001:
- irq_latch = (irq_latch & 0xFF0F) | ((data & 0x0F) << 4);
- break;
- case 0xE002:
- irq_latch = (irq_latch & 0xF0FF) | ((data & 0x0F) << 8);
- break;
- case 0xE003:
- irq_latch = (irq_latch & 0x0FFF) | ((data & 0x0F) << 12);
- break;
+ case 0xE000:
+ irq_latch = (irq_latch & 0xFFF0) | (data & 0x0F);
+ break;
+ case 0xE001:
+ irq_latch = (irq_latch & 0xFF0F) | ((data & 0x0F) << 4);
+ break;
+ case 0xE002:
+ irq_latch = (irq_latch & 0xF0FF) | ((data & 0x0F) << 8);
+ break;
+ case 0xE003:
+ irq_latch = (irq_latch & 0x0FFF) | ((data & 0x0F) << 12);
+ break;
- case 0xF000:
- // if( data & 0x01 ) {
- irq_counter = irq_latch;
- // } else {
- // irq_counter = 0;
- // }
- break;
- case 0xF001:
- irq_mode = (byte)((data >> 1) & 0x07);
- irq_enable = ((byte)(data & 0x01));
- // if( !irq_enable ) {
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- // }
- break;
+ case 0xF000:
+ // if( data & 0x01 ) {
+ irq_counter = irq_latch;
+ // } else {
+ // irq_counter = 0;
+ // }
+ break;
+ case 0xF001:
+ irq_mode = (byte)((data >> 1) & 0x07);
+ irq_enable = ((byte)(data & 0x01));
+ // if( !irq_enable ) {
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ // }
+ break;
- case 0xF002:
- data &= 0x03;
- if (data == 0) SetVRAM_Mirror(VRAM_HMIRROR);
- else if (data == 1) SetVRAM_Mirror(VRAM_VMIRROR);
- else SetVRAM_Mirror(VRAM_MIRROR4L);
- break;
- }
- }
+ case 0xF002:
+ data &= 0x03;
+ if (data == 0) SetVRAM_Mirror(VRAM_HMIRROR);
+ else if (data == 1) SetVRAM_Mirror(VRAM_VMIRROR);
+ else SetVRAM_Mirror(VRAM_MIRROR4L);
+ break;
+ }
+ }
- //void Mapper018::Clock(INT cycles)
- public override void Clock(int cycles)
- {
- bool bIRQ = false;
- INT irq_counter_old = irq_counter;
+ //void Mapper018::Clock(INT cycles)
+ public override void Clock(int cycles)
+ {
+ bool bIRQ = false;
+ INT irq_counter_old = irq_counter;
- if (irq_enable != 0 && irq_counter != 0)
- {
- irq_counter -= cycles;
+ if (irq_enable != 0 && irq_counter != 0)
+ {
+ irq_counter -= cycles;
- switch (irq_mode)
- {
- case 0:
- if (irq_counter <= 0)
- {
- bIRQ = true;
- }
- break;
- case 1:
- if ((irq_counter & 0xF000) != (irq_counter_old & 0xF000))
- {
- bIRQ = true;
- }
- break;
- case 2:
- case 3:
- if ((irq_counter & 0xFF00) != (irq_counter_old & 0xFF00))
- {
- bIRQ = true;
- }
- break;
- case 4:
- case 5:
- case 6:
- case 7:
- if ((irq_counter & 0xFFF0) != (irq_counter_old & 0xFFF0))
- {
- bIRQ = true;
- }
- break;
- }
+ switch (irq_mode)
+ {
+ case 0:
+ if (irq_counter <= 0)
+ {
+ bIRQ = true;
+ }
+ break;
+ case 1:
+ if ((irq_counter & 0xF000) != (irq_counter_old & 0xF000))
+ {
+ bIRQ = true;
+ }
+ break;
+ case 2:
+ case 3:
+ if ((irq_counter & 0xFF00) != (irq_counter_old & 0xFF00))
+ {
+ bIRQ = true;
+ }
+ break;
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ if ((irq_counter & 0xFFF0) != (irq_counter_old & 0xFFF0))
+ {
+ bIRQ = true;
+ }
+ break;
+ }
- if (bIRQ)
- {
- //// irq_enable = 0;
- // irq_counter = irq_latch;
- irq_counter = 0;
- irq_enable = 0;
- // nes.cpu.IRQ_NotPending();
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- }
- }
+ if (bIRQ)
+ {
+ //// irq_enable = 0;
+ // irq_counter = irq_latch;
+ irq_counter = 0;
+ irq_enable = 0;
+ // nes.cpu.IRQ_NotPending();
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ }
+ }
- //void Mapper018::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- //for (INT i = 0; i < 11; i++)
- //{
- // p[i] = reg[i];
- //}
- //p[11] = irq_enable;
- //p[12] = irq_mode;
- //*(INT*)&p[13] = irq_counter;
- //*(INT*)&p[17] = irq_latch;
- }
+ //void Mapper018::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ //for (INT i = 0; i < 11; i++)
+ //{
+ // p[i] = reg[i];
+ //}
+ //p[11] = irq_enable;
+ //p[12] = irq_mode;
+ //*(INT*)&p[13] = irq_counter;
+ //*(INT*)&p[17] = irq_latch;
+ }
- //void Mapper018::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- //for (INT i = 0; i < 11; i++)
- //{
- // p[i] = reg[i];
- //}
- //irq_enable = p[11];
- //irq_mode = p[12];
- //irq_counter = *(INT*)&p[13];
- //irq_latch = *(INT*)&p[17];
- }
+ //void Mapper018::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ //for (INT i = 0; i < 11; i++)
+ //{
+ // p[i] = reg[i];
+ //}
+ //irq_enable = p[11];
+ //irq_mode = p[12];
+ //irq_counter = *(INT*)&p[13];
+ //irq_latch = *(INT*)&p[17];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper019.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper019.cs
index 24bd3d08..7aff868a 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper019.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper019.cs
@@ -1,11 +1,10 @@
//////////////////////////////////////////////////////////////////////////
// Mapper019 Namcot 106 //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper021.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper021.cs
index 5e367f5c..1920b2d9 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper021.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper021.cs
@@ -1,255 +1,255 @@
//////////////////
// Mapper021 Konami VRC4 (Address mask $F006 or $F0C0) //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper021 : Mapper
- {
- BYTE[] reg = new byte[9];
+ public class Mapper021 : Mapper
+ {
+ BYTE[] reg = new byte[9];
- BYTE irq_enable;
- BYTE irq_counter;
- BYTE irq_latch;
- INT irq_clock;
- public Mapper021(NES parent) : base(parent)
- {
- }
+ BYTE irq_enable;
+ BYTE irq_counter;
+ BYTE irq_latch;
+ INT irq_clock;
+ public Mapper021(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- for (byte i = 0; i < 8; i++)
- {
- reg[i] = i;
- }
- reg[8] = 0;
+ public override void Reset()
+ {
+ for (byte i = 0; i < 8; i++)
+ {
+ reg[i] = i;
+ }
+ reg[8] = 0;
- irq_enable = 0;
- irq_counter = 0;
- irq_latch = 0;
- irq_clock = 0;
+ irq_enable = 0;
+ irq_counter = 0;
+ irq_latch = 0;
+ irq_clock = 0;
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- }
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ }
- //void Mapper021::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr & 0xF0CF)
- {
- case 0x8000:
- if ((reg[8] & 0x02) != 0)
- {
- SetPROM_8K_Bank(6, data);
- }
- else
- {
- SetPROM_8K_Bank(4, data);
- }
- break;
- case 0xA000:
- SetPROM_8K_Bank(5, data);
- break;
+ //void Mapper021::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr & 0xF0CF)
+ {
+ case 0x8000:
+ if ((reg[8] & 0x02) != 0)
+ {
+ SetPROM_8K_Bank(6, data);
+ }
+ else
+ {
+ SetPROM_8K_Bank(4, data);
+ }
+ break;
+ case 0xA000:
+ SetPROM_8K_Bank(5, data);
+ break;
- case 0x9000:
- data &= 0x03;
- if (data == 0) SetVRAM_Mirror(VRAM_VMIRROR);
- else if (data == 1) SetVRAM_Mirror(VRAM_HMIRROR);
- else if (data == 2) SetVRAM_Mirror(VRAM_MIRROR4L);
- else SetVRAM_Mirror(VRAM_MIRROR4H);
- break;
+ case 0x9000:
+ data &= 0x03;
+ if (data == 0) SetVRAM_Mirror(VRAM_VMIRROR);
+ else if (data == 1) SetVRAM_Mirror(VRAM_HMIRROR);
+ else if (data == 2) SetVRAM_Mirror(VRAM_MIRROR4L);
+ else SetVRAM_Mirror(VRAM_MIRROR4H);
+ break;
- case 0x9002:
- case 0x9080:
- reg[8] = data;
- break;
+ case 0x9002:
+ case 0x9080:
+ reg[8] = data;
+ break;
- case 0xB000:
- reg[0] = (byte)((reg[0] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(0, reg[0]);
- break;
- case 0xB002:
- case 0xB040:
- reg[0] = (byte)((reg[0] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(0, reg[0]);
- break;
+ case 0xB000:
+ reg[0] = (byte)((reg[0] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(0, reg[0]);
+ break;
+ case 0xB002:
+ case 0xB040:
+ reg[0] = (byte)((reg[0] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(0, reg[0]);
+ break;
- case 0xB001:
- case 0xB004:
- case 0xB080:
- reg[1] = (byte)((reg[1] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(1, reg[1]);
- break;
- case 0xB003:
- case 0xB006:
- case 0xB0C0:
- reg[1] = (byte)((reg[1] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(1, reg[1]);
- break;
+ case 0xB001:
+ case 0xB004:
+ case 0xB080:
+ reg[1] = (byte)((reg[1] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(1, reg[1]);
+ break;
+ case 0xB003:
+ case 0xB006:
+ case 0xB0C0:
+ reg[1] = (byte)((reg[1] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(1, reg[1]);
+ break;
- case 0xC000:
- reg[2] = (byte)((reg[2] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(2, reg[2]);
- break;
- case 0xC002:
- case 0xC040:
- reg[2] = (byte)((reg[2] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(2, reg[2]);
- break;
+ case 0xC000:
+ reg[2] = (byte)((reg[2] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(2, reg[2]);
+ break;
+ case 0xC002:
+ case 0xC040:
+ reg[2] = (byte)((reg[2] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(2, reg[2]);
+ break;
- case 0xC001:
- case 0xC004:
- case 0xC080:
- reg[3] = (byte)((reg[3] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(3, reg[3]);
- break;
- case 0xC003:
- case 0xC006:
- case 0xC0C0:
- reg[3] = (byte)((reg[3] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(3, reg[3]);
- break;
+ case 0xC001:
+ case 0xC004:
+ case 0xC080:
+ reg[3] = (byte)((reg[3] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(3, reg[3]);
+ break;
+ case 0xC003:
+ case 0xC006:
+ case 0xC0C0:
+ reg[3] = (byte)((reg[3] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(3, reg[3]);
+ break;
- case 0xD000:
- reg[4] = (byte)((reg[4] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(4, reg[4]);
- break;
- case 0xD002:
- case 0xD040:
- reg[4] = (byte)((reg[4] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(4, reg[4]);
- break;
+ case 0xD000:
+ reg[4] = (byte)((reg[4] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(4, reg[4]);
+ break;
+ case 0xD002:
+ case 0xD040:
+ reg[4] = (byte)((reg[4] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(4, reg[4]);
+ break;
- case 0xD001:
- case 0xD004:
- case 0xD080:
- reg[5] = (byte)((reg[5] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(5, reg[5]);
- break;
- case 0xD003:
- case 0xD006:
- case 0xD0C0:
- reg[5] = (byte)((reg[5] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(5, reg[5]);
- break;
+ case 0xD001:
+ case 0xD004:
+ case 0xD080:
+ reg[5] = (byte)((reg[5] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(5, reg[5]);
+ break;
+ case 0xD003:
+ case 0xD006:
+ case 0xD0C0:
+ reg[5] = (byte)((reg[5] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(5, reg[5]);
+ break;
- case 0xE000:
- reg[6] = (byte)((reg[6] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(6, reg[6]);
- break;
- case 0xE002:
- case 0xE040:
- reg[6] = (byte)((reg[6] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(6, reg[6]);
- break;
+ case 0xE000:
+ reg[6] = (byte)((reg[6] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(6, reg[6]);
+ break;
+ case 0xE002:
+ case 0xE040:
+ reg[6] = (byte)((reg[6] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(6, reg[6]);
+ break;
- case 0xE001:
- case 0xE004:
- case 0xE080:
- reg[7] = (byte)((reg[7] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(7, reg[7]);
- break;
- case 0xE003:
- case 0xE006:
- case 0xE0C0:
- reg[7] = (byte)((reg[7] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(7, reg[7]);
- break;
+ case 0xE001:
+ case 0xE004:
+ case 0xE080:
+ reg[7] = (byte)((reg[7] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(7, reg[7]);
+ break;
+ case 0xE003:
+ case 0xE006:
+ case 0xE0C0:
+ reg[7] = (byte)((reg[7] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(7, reg[7]);
+ break;
- case 0xF000:
- irq_latch = (byte)((irq_latch & 0xF0) | (data & 0x0F));
- break;
- case 0xF002:
- case 0xF040:
- irq_latch = (byte)((irq_latch & 0x0F) | ((data & 0x0F) << 4));
- break;
+ case 0xF000:
+ irq_latch = (byte)((irq_latch & 0xF0) | (data & 0x0F));
+ break;
+ case 0xF002:
+ case 0xF040:
+ irq_latch = (byte)((irq_latch & 0x0F) | ((data & 0x0F) << 4));
+ break;
- case 0xF003:
- case 0xF0C0:
- case 0xF006:
- irq_enable = (byte)((irq_enable & 0x01) * 3);
- irq_clock = 0;
+ case 0xF003:
+ case 0xF0C0:
+ case 0xF006:
+ irq_enable = (byte)((irq_enable & 0x01) * 3);
+ irq_clock = 0;
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
- case 0xF004:
- case 0xF080:
- irq_enable = (byte)(data & 0x03);
- if ((irq_enable & 0x02) != 0)
- {
- irq_counter = irq_latch;
- irq_clock = 0;
- }
+ case 0xF004:
+ case 0xF080:
+ irq_enable = (byte)(data & 0x03);
+ if ((irq_enable & 0x02) != 0)
+ {
+ irq_counter = irq_latch;
+ irq_clock = 0;
+ }
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
- // case 0xF006:
- // nes.cpu.ClrIRQ( IRQ_MAPPER );
- // break;
- }
- }
+ // case 0xF006:
+ // nes.cpu.ClrIRQ( IRQ_MAPPER );
+ // break;
+ }
+ }
- //void Mapper021::Clock(INT cycles)
- public override void Clock(int cycles)
- {
- if ((irq_enable & 0x02) != 0)
- {
- if ((irq_clock -= cycles) < 0)
- {
- irq_clock += 0x72;
- if (irq_counter == 0xFF)
- {
- irq_counter = irq_latch;
- // irq_enable = (irq_enable & 0x01) * 3;
- // nes.cpu.IRQ_NotPending();
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- else
- {
- irq_counter++;
- }
- }
- }
- }
+ //void Mapper021::Clock(INT cycles)
+ public override void Clock(int cycles)
+ {
+ if ((irq_enable & 0x02) != 0)
+ {
+ if ((irq_clock -= cycles) < 0)
+ {
+ irq_clock += 0x72;
+ if (irq_counter == 0xFF)
+ {
+ irq_counter = irq_latch;
+ // irq_enable = (irq_enable & 0x01) * 3;
+ // nes.cpu.IRQ_NotPending();
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ else
+ {
+ irq_counter++;
+ }
+ }
+ }
+ }
- //void Mapper021::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- //for (INT i = 0; i < 9; i++)
- //{
- // p[i] = reg[i];
- //}
- //p[9] = irq_enable;
- //p[10] = irq_counter;
- //p[11] = irq_latch;
- //*(INT*)&p[12] = irq_clock;
- }
+ //void Mapper021::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ //for (INT i = 0; i < 9; i++)
+ //{
+ // p[i] = reg[i];
+ //}
+ //p[9] = irq_enable;
+ //p[10] = irq_counter;
+ //p[11] = irq_latch;
+ //*(INT*)&p[12] = irq_clock;
+ }
- //void Mapper021::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- //for (INT i = 0; i < 9; i++)
- //{
- // reg[i] = p[i];
- //}
- //irq_enable = p[9];
- //irq_counter = p[10];
- //irq_latch = p[11];
- //irq_clock = *(INT*)&p[12];
- }
+ //void Mapper021::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ //for (INT i = 0; i < 9; i++)
+ //{
+ // reg[i] = p[i];
+ //}
+ //irq_enable = p[9];
+ //irq_counter = p[10];
+ //irq_latch = p[11];
+ //irq_clock = *(INT*)&p[12];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper022.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper022.cs
index 6b204205..eeb44391 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper022.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper022.cs
@@ -2,80 +2,77 @@
// Mapper022 Konami VRC2 type A //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper022 : Mapper
- {
- public Mapper022(NES parent) : base(parent)
- {
- }
+ public class Mapper022 : Mapper
+ {
+ public Mapper022(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- }
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ }
- //void Mapper022::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr)
- {
- case 0x8000:
- SetPROM_8K_Bank(4, data);
- break;
+ //void Mapper022::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr)
+ {
+ case 0x8000:
+ SetPROM_8K_Bank(4, data);
+ break;
- case 0x9000:
- data &= 0x03;
- if (data == 0) SetVRAM_Mirror(VRAM_VMIRROR);
- else if (data == 1) SetVRAM_Mirror(VRAM_HMIRROR);
- else if (data == 2) SetVRAM_Mirror(VRAM_MIRROR4H);
- else SetVRAM_Mirror(VRAM_MIRROR4L);
- break;
+ case 0x9000:
+ data &= 0x03;
+ if (data == 0) SetVRAM_Mirror(VRAM_VMIRROR);
+ else if (data == 1) SetVRAM_Mirror(VRAM_HMIRROR);
+ else if (data == 2) SetVRAM_Mirror(VRAM_MIRROR4H);
+ else SetVRAM_Mirror(VRAM_MIRROR4L);
+ break;
- case 0xA000:
- SetPROM_8K_Bank(5, data);
- break;
+ case 0xA000:
+ SetPROM_8K_Bank(5, data);
+ break;
- case 0xB000:
- SetVROM_1K_Bank(0, data >> 1);
- break;
+ case 0xB000:
+ SetVROM_1K_Bank(0, data >> 1);
+ break;
- case 0xB001:
- SetVROM_1K_Bank(1, data >> 1);
- break;
+ case 0xB001:
+ SetVROM_1K_Bank(1, data >> 1);
+ break;
- case 0xC000:
- SetVROM_1K_Bank(2, data >> 1);
- break;
+ case 0xC000:
+ SetVROM_1K_Bank(2, data >> 1);
+ break;
- case 0xC001:
- SetVROM_1K_Bank(3, data >> 1);
- break;
+ case 0xC001:
+ SetVROM_1K_Bank(3, data >> 1);
+ break;
- case 0xD000:
- SetVROM_1K_Bank(4, data >> 1);
- break;
+ case 0xD000:
+ SetVROM_1K_Bank(4, data >> 1);
+ break;
- case 0xD001:
- SetVROM_1K_Bank(5, data >> 1);
- break;
+ case 0xD001:
+ SetVROM_1K_Bank(5, data >> 1);
+ break;
- case 0xE000:
- SetVROM_1K_Bank(6, data >> 1);
- break;
+ case 0xE000:
+ SetVROM_1K_Bank(6, data >> 1);
+ break;
- case 0xE001:
- SetVROM_1K_Bank(7, data >> 1);
- break;
- }
- }
+ case 0xE001:
+ SetVROM_1K_Bank(7, data >> 1);
+ break;
+ }
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper023.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper023.cs
index 894259bf..570835af 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper023.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper023.cs
@@ -1,271 +1,271 @@
//////////////////////////////////////////////////////////////////////////
// Mapper023 Konami VRC2 type B //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper023 : Mapper
- {
+ public class Mapper023 : Mapper
+ {
- ushort addrmask;
+ ushort addrmask;
- BYTE[] reg = new byte[9];
- BYTE irq_enable;
- BYTE irq_counter;
- BYTE irq_latch;
- INT irq_clock;
- public Mapper023(NES parent) : base(parent)
- {
- }
+ BYTE[] reg = new byte[9];
+ BYTE irq_enable;
+ BYTE irq_counter;
+ BYTE irq_latch;
+ INT irq_clock;
+ public Mapper023(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- addrmask = 0xFFFF;
+ public override void Reset()
+ {
+ addrmask = 0xFFFF;
- for (byte i = 0; i < 8; i++)
- {
- reg[i] = i;
- }
- reg[8] = 0;
+ for (byte i = 0; i < 8; i++)
+ {
+ reg[i] = i;
+ }
+ reg[8] = 0;
- irq_enable = 0;
- irq_counter = 0;
- irq_latch = 0;
- irq_clock = 0;
+ irq_enable = 0;
+ irq_counter = 0;
+ irq_latch = 0;
+ irq_clock = 0;
- reg[9] = 1;
+ reg[9] = 1;
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- SetVROM_8K_Bank(0);
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ SetVROM_8K_Bank(0);
- // nes.SetRenderMethod( NES::POST_RENDER );
+ // nes.SetRenderMethod( NES::POST_RENDER );
- uint crc = nes.rom.GetPROM_CRC();
+ uint crc = nes.rom.GetPROM_CRC();
- if (crc == 0x93794634 // Akumajou Special Boku Dracula Kun(J)
- || crc == 0xc7829dae // Akumajou Special Boku Dracula Kun(T-Eng)
- || crc == 0xf82dc02f)
- { // Akumajou Special Boku Dracula Kun(T-Eng v1.02)
- addrmask = 0xF00C;
- nes.SetRenderMethod(EnumRenderMethod.POST_ALL_RENDER);
- }
- if (crc == 0xdd53c4ae)
- { // Tiny Toon Adventures(J)
- nes.SetRenderMethod(EnumRenderMethod.POST_ALL_RENDER);
- }
- }
+ if (crc == 0x93794634 // Akumajou Special Boku Dracula Kun(J)
+ || crc == 0xc7829dae // Akumajou Special Boku Dracula Kun(T-Eng)
+ || crc == 0xf82dc02f)
+ { // Akumajou Special Boku Dracula Kun(T-Eng v1.02)
+ addrmask = 0xF00C;
+ nes.SetRenderMethod(EnumRenderMethod.POST_ALL_RENDER);
+ }
+ if (crc == 0xdd53c4ae)
+ { // Tiny Toon Adventures(J)
+ nes.SetRenderMethod(EnumRenderMethod.POST_ALL_RENDER);
+ }
+ }
- //void Mapper023::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- //DEBUGOUT( "MPRWR A=%04X D=%02X L=%3d CYC=%d\n", addr&0xFFFF, data&0xFF, nes.GetScanline(), nes.cpu.GetTotalCycles() );
- switch (addr & addrmask)
- {
- case 0x8000:
- case 0x8004:
- case 0x8008:
- case 0x800C:
- if (reg[8] != 0)
- {
- SetPROM_8K_Bank(6, data);
- }
- else
- {
- SetPROM_8K_Bank(4, data);
- }
- break;
+ //void Mapper023::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ //DEBUGOUT( "MPRWR A=%04X D=%02X L=%3d CYC=%d\n", addr&0xFFFF, data&0xFF, nes.GetScanline(), nes.cpu.GetTotalCycles() );
+ switch (addr & addrmask)
+ {
+ case 0x8000:
+ case 0x8004:
+ case 0x8008:
+ case 0x800C:
+ if (reg[8] != 0)
+ {
+ SetPROM_8K_Bank(6, data);
+ }
+ else
+ {
+ SetPROM_8K_Bank(4, data);
+ }
+ break;
- case 0x9000:
- if (data != 0xFF)
- {
- data &= 0x03;
- if (data == 0) SetVRAM_Mirror(VRAM_VMIRROR);
- else if (data == 1) SetVRAM_Mirror(VRAM_HMIRROR);
- else if (data == 2) SetVRAM_Mirror(VRAM_MIRROR4L);
- else SetVRAM_Mirror(VRAM_MIRROR4H);
- }
- break;
+ case 0x9000:
+ if (data != 0xFF)
+ {
+ data &= 0x03;
+ if (data == 0) SetVRAM_Mirror(VRAM_VMIRROR);
+ else if (data == 1) SetVRAM_Mirror(VRAM_HMIRROR);
+ else if (data == 2) SetVRAM_Mirror(VRAM_MIRROR4L);
+ else SetVRAM_Mirror(VRAM_MIRROR4H);
+ }
+ break;
- case 0x9008:
- reg[8] = (byte)(data & 0x02);
- break;
+ case 0x9008:
+ reg[8] = (byte)(data & 0x02);
+ break;
- case 0xA000:
- case 0xA004:
- case 0xA008:
- case 0xA00C:
- SetPROM_8K_Bank(5, data);
- break;
+ case 0xA000:
+ case 0xA004:
+ case 0xA008:
+ case 0xA00C:
+ SetPROM_8K_Bank(5, data);
+ break;
- case 0xB000:
- reg[0] = (byte)((reg[0] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(0, reg[0]);
- break;
- case 0xB001:
- case 0xB004:
- reg[0] = ((byte)((reg[0] & 0x0F) | ((data & 0x0F) << 4)));
- SetVROM_1K_Bank(0, reg[0]);
- break;
+ case 0xB000:
+ reg[0] = (byte)((reg[0] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(0, reg[0]);
+ break;
+ case 0xB001:
+ case 0xB004:
+ reg[0] = ((byte)((reg[0] & 0x0F) | ((data & 0x0F) << 4)));
+ SetVROM_1K_Bank(0, reg[0]);
+ break;
- case 0xB002:
- case 0xB008:
- reg[1] = (byte)((reg[1] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(1, reg[1]);
- break;
+ case 0xB002:
+ case 0xB008:
+ reg[1] = (byte)((reg[1] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(1, reg[1]);
+ break;
- case 0xB003:
- case 0xB00C:
- reg[1] = (byte)((reg[1] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(1, reg[1]);
- break;
+ case 0xB003:
+ case 0xB00C:
+ reg[1] = (byte)((reg[1] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(1, reg[1]);
+ break;
- case 0xC000:
- reg[2] = (byte)((reg[2] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(2, reg[2]);
- break;
+ case 0xC000:
+ reg[2] = (byte)((reg[2] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(2, reg[2]);
+ break;
- case 0xC001:
- case 0xC004:
- reg[2] = (byte)((reg[2] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(2, reg[2]);
- break;
+ case 0xC001:
+ case 0xC004:
+ reg[2] = (byte)((reg[2] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(2, reg[2]);
+ break;
- case 0xC002:
- case 0xC008:
- reg[3] = (byte)((reg[3] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(3, reg[3]);
- break;
+ case 0xC002:
+ case 0xC008:
+ reg[3] = (byte)((reg[3] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(3, reg[3]);
+ break;
- case 0xC003:
- case 0xC00C:
- reg[3] = (byte)((reg[3] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(3, reg[3]);
- break;
+ case 0xC003:
+ case 0xC00C:
+ reg[3] = (byte)((reg[3] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(3, reg[3]);
+ break;
- case 0xD000:
- reg[4] = (byte)((reg[4] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(4, reg[4]);
- break;
+ case 0xD000:
+ reg[4] = (byte)((reg[4] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(4, reg[4]);
+ break;
- case 0xD001:
- case 0xD004:
- reg[4] = (byte)((reg[4] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(4, reg[4]);
- break;
+ case 0xD001:
+ case 0xD004:
+ reg[4] = (byte)((reg[4] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(4, reg[4]);
+ break;
- case 0xD002:
- case 0xD008:
- reg[5] = (byte)((reg[5] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(5, reg[5]);
- break;
+ case 0xD002:
+ case 0xD008:
+ reg[5] = (byte)((reg[5] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(5, reg[5]);
+ break;
- case 0xD003:
- case 0xD00C:
- reg[5] = (byte)((reg[5] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(5, reg[5]);
- break;
+ case 0xD003:
+ case 0xD00C:
+ reg[5] = (byte)((reg[5] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(5, reg[5]);
+ break;
- case 0xE000:
- reg[6] = (byte)((reg[6] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(6, reg[6]);
- break;
+ case 0xE000:
+ reg[6] = (byte)((reg[6] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(6, reg[6]);
+ break;
- case 0xE001:
- case 0xE004:
- reg[6] = (byte)((reg[6] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(6, reg[6]);
- break;
+ case 0xE001:
+ case 0xE004:
+ reg[6] = (byte)((reg[6] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(6, reg[6]);
+ break;
- case 0xE002:
- case 0xE008:
- reg[7] = (byte)((reg[7] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(7, reg[7]);
- break;
+ case 0xE002:
+ case 0xE008:
+ reg[7] = (byte)((reg[7] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(7, reg[7]);
+ break;
- case 0xE003:
- case 0xE00C:
- reg[7] = ((byte)((reg[7] & 0x0F) | ((data & 0x0F) << 4)));
- SetVROM_1K_Bank(7, reg[7]);
- break;
+ case 0xE003:
+ case 0xE00C:
+ reg[7] = ((byte)((reg[7] & 0x0F) | ((data & 0x0F) << 4)));
+ SetVROM_1K_Bank(7, reg[7]);
+ break;
- case 0xF000:
- irq_latch = (byte)((irq_latch & 0xF0) | (data & 0x0F));
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- case 0xF004:
- irq_latch = (byte)((irq_latch & 0x0F) | ((data & 0x0F) << 4));
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
+ case 0xF000:
+ irq_latch = (byte)((irq_latch & 0xF0) | (data & 0x0F));
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ case 0xF004:
+ irq_latch = (byte)((irq_latch & 0x0F) | ((data & 0x0F) << 4));
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
- case 0xF008:
- irq_enable = (byte)(data & 0x03);
- irq_counter = irq_latch;
- irq_clock = 0;
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
+ case 0xF008:
+ irq_enable = (byte)(data & 0x03);
+ irq_counter = irq_latch;
+ irq_clock = 0;
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
- case 0xF00C:
- irq_enable = (byte)((irq_enable & 0x01) * 3);
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- }
- }
+ case 0xF00C:
+ irq_enable = (byte)((irq_enable & 0x01) * 3);
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ }
+ }
- //void Mapper023::Clock(INT cycles)
- public override void Clock(int cycles)
- {
- if ((irq_enable & 0x02) != 0)
- {
- irq_clock += cycles * 3;
- while (irq_clock >= 341)
- {
- irq_clock -= 341;
- irq_counter++;
- if (irq_counter == 0)
- {
- irq_counter = irq_latch;
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- }
- }
- }
+ //void Mapper023::Clock(INT cycles)
+ public override void Clock(int cycles)
+ {
+ if ((irq_enable & 0x02) != 0)
+ {
+ irq_clock += cycles * 3;
+ while (irq_clock >= 341)
+ {
+ irq_clock -= 341;
+ irq_counter++;
+ if (irq_counter == 0)
+ {
+ irq_counter = irq_latch;
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ }
+ }
+ }
- //void Mapper023::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- //for (INT i = 0; i < 9; i++)
- //{
- // p[i] = reg[i];
- //}
- //p[9] = irq_enable;
- //p[10] = irq_counter;
- //p[11] = irq_latch;
- //*(INT*)&p[12] = irq_clock;
- }
+ //void Mapper023::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ //for (INT i = 0; i < 9; i++)
+ //{
+ // p[i] = reg[i];
+ //}
+ //p[9] = irq_enable;
+ //p[10] = irq_counter;
+ //p[11] = irq_latch;
+ //*(INT*)&p[12] = irq_clock;
+ }
- //void Mapper023::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- //for (INT i = 0; i < 9; i++)
- //{
- // reg[i] = p[i];
- //}
- //irq_enable = p[9];
- //irq_counter = p[10];
- //irq_latch = p[11];
- //irq_clock = *(INT*)&p[12];
- }
+ //void Mapper023::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ //for (INT i = 0; i < 9; i++)
+ //{
+ // reg[i] = p[i];
+ //}
+ //irq_enable = p[9];
+ //irq_counter = p[10];
+ //irq_latch = p[11];
+ //irq_clock = *(INT*)&p[12];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper024.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper024.cs
index 77d31af4..f5c0e048 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper024.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper024.cs
@@ -1,174 +1,174 @@
//////////////////////////////////////////////////////////////////////////
// Mapper024 Konami VRC6 (Normal) //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper024 : Mapper
- {
- BYTE irq_enable;
- BYTE irq_counter;
- BYTE irq_latch;
- INT irq_clock;
- public Mapper024(NES parent) : base(parent)
- {
- }
+ public class Mapper024 : Mapper
+ {
+ BYTE irq_enable;
+ BYTE irq_counter;
+ BYTE irq_latch;
+ INT irq_clock;
+ public Mapper024(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- irq_enable = 0;
- irq_counter = 0;
- irq_latch = 0;
- irq_clock = 0;
+ public override void Reset()
+ {
+ irq_enable = 0;
+ irq_counter = 0;
+ irq_latch = 0;
+ irq_clock = 0;
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_8K_Bank(0);
- }
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0);
+ }
- nes.SetRenderMethod(EnumRenderMethod.POST_RENDER);
- // nes.SetRenderMethod( NES::PRE_RENDER );
+ nes.SetRenderMethod(EnumRenderMethod.POST_RENDER);
+ // nes.SetRenderMethod( NES::PRE_RENDER );
- nes.apu.SelectExSound(1);
- }
+ nes.apu.SelectExSound(1);
+ }
- //void Mapper024::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr & 0xF003)
- {
- case 0x8000:
- SetPROM_16K_Bank(4, data);
- break;
+ //void Mapper024::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr & 0xF003)
+ {
+ case 0x8000:
+ SetPROM_16K_Bank(4, data);
+ break;
- case 0x9000:
- case 0x9001:
- case 0x9002:
- case 0xA000:
- case 0xA001:
- case 0xA002:
- case 0xB000:
- case 0xB001:
- case 0xB002:
- nes.apu.ExWrite(addr, data);
- break;
+ case 0x9000:
+ case 0x9001:
+ case 0x9002:
+ case 0xA000:
+ case 0xA001:
+ case 0xA002:
+ case 0xB000:
+ case 0xB001:
+ case 0xB002:
+ nes.apu.ExWrite(addr, data);
+ break;
- case 0xB003:
- data = (byte)(data & 0x0C);
- if (data == 0x00) SetVRAM_Mirror(VRAM_VMIRROR);
- else if (data == 0x04) SetVRAM_Mirror(VRAM_HMIRROR);
- else if (data == 0x08) SetVRAM_Mirror(VRAM_MIRROR4L);
- else if (data == 0x0C) SetVRAM_Mirror(VRAM_MIRROR4H);
- break;
+ case 0xB003:
+ data = (byte)(data & 0x0C);
+ if (data == 0x00) SetVRAM_Mirror(VRAM_VMIRROR);
+ else if (data == 0x04) SetVRAM_Mirror(VRAM_HMIRROR);
+ else if (data == 0x08) SetVRAM_Mirror(VRAM_MIRROR4L);
+ else if (data == 0x0C) SetVRAM_Mirror(VRAM_MIRROR4H);
+ break;
- case 0xC000:
- SetPROM_8K_Bank(6, data);
- break;
+ case 0xC000:
+ SetPROM_8K_Bank(6, data);
+ break;
- case 0xD000:
- SetVROM_1K_Bank(0, data);
- break;
+ case 0xD000:
+ SetVROM_1K_Bank(0, data);
+ break;
- case 0xD001:
- SetVROM_1K_Bank(1, data);
- break;
+ case 0xD001:
+ SetVROM_1K_Bank(1, data);
+ break;
- case 0xD002:
- SetVROM_1K_Bank(2, data);
- break;
+ case 0xD002:
+ SetVROM_1K_Bank(2, data);
+ break;
- case 0xD003:
- SetVROM_1K_Bank(3, data);
- break;
+ case 0xD003:
+ SetVROM_1K_Bank(3, data);
+ break;
- case 0xE000:
- SetVROM_1K_Bank(4, data);
- break;
+ case 0xE000:
+ SetVROM_1K_Bank(4, data);
+ break;
- case 0xE001:
- SetVROM_1K_Bank(5, data);
- break;
+ case 0xE001:
+ SetVROM_1K_Bank(5, data);
+ break;
- case 0xE002:
- SetVROM_1K_Bank(6, data);
- break;
+ case 0xE002:
+ SetVROM_1K_Bank(6, data);
+ break;
- case 0xE003:
- SetVROM_1K_Bank(7, data);
- break;
+ case 0xE003:
+ SetVROM_1K_Bank(7, data);
+ break;
- case 0xF000:
- irq_latch = data;
- break;
- case 0xF001:
- irq_enable = (byte)(data & 0x03);
- if ((irq_enable & 0x02) != 0)
- {
- irq_counter = irq_latch;
- irq_clock = 0;
- }
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- case 0xF002:
- irq_enable = (byte)((irq_enable & 0x01) * 3);
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- }
- }
+ case 0xF000:
+ irq_latch = data;
+ break;
+ case 0xF001:
+ irq_enable = (byte)(data & 0x03);
+ if ((irq_enable & 0x02) != 0)
+ {
+ irq_counter = irq_latch;
+ irq_clock = 0;
+ }
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ case 0xF002:
+ irq_enable = (byte)((irq_enable & 0x01) * 3);
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ }
+ }
- //void Mapper024::Clock(INT cycles)
- public override void Clock(int cycles)
- {
- if ((irq_enable & 0x02) != 0)
- {
- if ((irq_clock += cycles) >= 0x72)
- {
- irq_clock -= 0x72;
- if (irq_counter == 0xFF)
- {
- irq_counter = irq_latch;
- // nes.cpu.IRQ_NotPending();
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- else
- {
- irq_counter++;
- }
- }
- }
- }
+ //void Mapper024::Clock(INT cycles)
+ public override void Clock(int cycles)
+ {
+ if ((irq_enable & 0x02) != 0)
+ {
+ if ((irq_clock += cycles) >= 0x72)
+ {
+ irq_clock -= 0x72;
+ if (irq_counter == 0xFF)
+ {
+ irq_counter = irq_latch;
+ // nes.cpu.IRQ_NotPending();
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ else
+ {
+ irq_counter++;
+ }
+ }
+ }
+ }
- //void Mapper024::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- //p[0] = irq_enable;
- //p[1] = irq_counter;
- //p[2] = irq_latch;
- //*(INT*)&p[3] = irq_clock;
- }
+ //void Mapper024::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ //p[0] = irq_enable;
+ //p[1] = irq_counter;
+ //p[2] = irq_latch;
+ //*(INT*)&p[3] = irq_clock;
+ }
- //void Mapper024::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- //irq_enable = p[0];
- //irq_counter = p[1];
- //irq_latch = p[2];
- //irq_clock = *(INT*)&p[3];
- }
+ //void Mapper024::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ //irq_enable = p[0];
+ //irq_counter = p[1];
+ //irq_latch = p[2];
+ //irq_clock = *(INT*)&p[3];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper025.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper025.cs
index 20a74ff8..24ef68fc 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper025.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper025.cs
@@ -1,278 +1,278 @@
//////////////////////////////////////////////////////////////////////////
// Mapper025 Konami VRC4 (Normal) //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper025 : Mapper
- {
- BYTE[] reg = new byte[11];
- BYTE irq_enable;
- BYTE irq_latch;
- BYTE irq_occur;
- BYTE irq_counter;
- INT irq_clock;
- public Mapper025(NES parent) : base(parent)
- {
- }
+ public class Mapper025 : Mapper
+ {
+ BYTE[] reg = new byte[11];
+ BYTE irq_enable;
+ BYTE irq_latch;
+ BYTE irq_occur;
+ BYTE irq_counter;
+ INT irq_clock;
+ public Mapper025(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- for (INT i = 0; i < 11; i++)
- {
- reg[i] = 0;
- }
- reg[9] = (byte)(PROM_8K_SIZE - 2);
+ public override void Reset()
+ {
+ for (INT i = 0; i < 11; i++)
+ {
+ reg[i] = 0;
+ }
+ reg[9] = (byte)(PROM_8K_SIZE - 2);
- irq_enable = 0;
- irq_counter = 0;
- irq_latch = 0;
- irq_occur = 0;
- irq_clock = 0;
+ irq_enable = 0;
+ irq_counter = 0;
+ irq_latch = 0;
+ irq_occur = 0;
+ irq_clock = 0;
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_8K_Bank(0);
- }
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0);
+ }
- uint crc = nes.rom.GetPROM_CRC();
- if (crc == 0xc71d4ce7)
- { // Gradius II(J)
- // nes.SetRenderMethod( NES::POST_RENDER );
- }
- if (crc == 0xa2e68da8)
- { // For Racer Mini Yonku - Japan Cup(J)
- nes.SetRenderMethod(EnumRenderMethod.TILE_RENDER);
- }
- if (crc == 0xea74c587)
- { // For Teenage Mutant Ninja Turtles(J)
- nes.SetRenderMethod(EnumRenderMethod.TILE_RENDER);
- }
- if (crc == 0x5f82cb7d)
- { // For Teenage Mutant Ninja Turtles 2(J)
- }
- if (crc == 0x0bbd85ff)
- { // For Bio Miracle Bokutte Upa(J)
- nes.SetRenderMethod(EnumRenderMethod.PRE_ALL_RENDER);
- }
- }
+ uint crc = nes.rom.GetPROM_CRC();
+ if (crc == 0xc71d4ce7)
+ { // Gradius II(J)
+ // nes.SetRenderMethod( NES::POST_RENDER );
+ }
+ if (crc == 0xa2e68da8)
+ { // For Racer Mini Yonku - Japan Cup(J)
+ nes.SetRenderMethod(EnumRenderMethod.TILE_RENDER);
+ }
+ if (crc == 0xea74c587)
+ { // For Teenage Mutant Ninja Turtles(J)
+ nes.SetRenderMethod(EnumRenderMethod.TILE_RENDER);
+ }
+ if (crc == 0x5f82cb7d)
+ { // For Teenage Mutant Ninja Turtles 2(J)
+ }
+ if (crc == 0x0bbd85ff)
+ { // For Bio Miracle Bokutte Upa(J)
+ nes.SetRenderMethod(EnumRenderMethod.PRE_ALL_RENDER);
+ }
+ }
- //void Mapper025::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- //if( addr >= 0xF000 )
- //DEBUGOUT( "M25 WR $%04X=$%02X L=%3d\n", addr, data, nes.GetScanline() );
+ //void Mapper025::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ //if( addr >= 0xF000 )
+ //DEBUGOUT( "M25 WR $%04X=$%02X L=%3d\n", addr, data, nes.GetScanline() );
- switch (addr & 0xF000)
- {
- case 0x8000:
- if ((reg[10] & 0x02) != 0)
- {
- reg[9] = data;
- SetPROM_8K_Bank(6, data);
- }
- else
- {
- reg[8] = data;
- SetPROM_8K_Bank(4, data);
- }
- break;
- case 0xA000:
- SetPROM_8K_Bank(5, data);
- break;
- }
+ switch (addr & 0xF000)
+ {
+ case 0x8000:
+ if ((reg[10] & 0x02) != 0)
+ {
+ reg[9] = data;
+ SetPROM_8K_Bank(6, data);
+ }
+ else
+ {
+ reg[8] = data;
+ SetPROM_8K_Bank(4, data);
+ }
+ break;
+ case 0xA000:
+ SetPROM_8K_Bank(5, data);
+ break;
+ }
- switch (addr & 0xF00F)
- {
- case 0x9000:
- data &= 0x03;
- if (data == 0) SetVRAM_Mirror(VRAM_VMIRROR);
- else if (data == 1) SetVRAM_Mirror(VRAM_HMIRROR);
- else if (data == 2) SetVRAM_Mirror(VRAM_MIRROR4L);
- else SetVRAM_Mirror(VRAM_MIRROR4H);
- break;
+ switch (addr & 0xF00F)
+ {
+ case 0x9000:
+ data &= 0x03;
+ if (data == 0) SetVRAM_Mirror(VRAM_VMIRROR);
+ else if (data == 1) SetVRAM_Mirror(VRAM_HMIRROR);
+ else if (data == 2) SetVRAM_Mirror(VRAM_MIRROR4L);
+ else SetVRAM_Mirror(VRAM_MIRROR4H);
+ break;
- case 0x9001:
- case 0x9004:
- if ((reg[10] & 0x02) != (data & 0x02))
- {
- BYTE swap = reg[8];
- reg[8] = reg[9];
- reg[9] = swap;
+ case 0x9001:
+ case 0x9004:
+ if ((reg[10] & 0x02) != (data & 0x02))
+ {
+ BYTE swap = reg[8];
+ reg[8] = reg[9];
+ reg[9] = swap;
- SetPROM_8K_Bank(4, reg[8]);
- SetPROM_8K_Bank(6, reg[9]);
- }
- reg[10] = data;
- break;
+ SetPROM_8K_Bank(4, reg[8]);
+ SetPROM_8K_Bank(6, reg[9]);
+ }
+ reg[10] = data;
+ break;
- case 0xB000:
- reg[0] = (byte)((reg[0] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(0, reg[0]);
- break;
- case 0xB002:
- case 0xB008:
- reg[0] = (byte)((reg[0] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(0, reg[0]);
- break;
+ case 0xB000:
+ reg[0] = (byte)((reg[0] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(0, reg[0]);
+ break;
+ case 0xB002:
+ case 0xB008:
+ reg[0] = (byte)((reg[0] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(0, reg[0]);
+ break;
- case 0xB001:
- case 0xB004:
- reg[1] = (byte)((reg[1] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(1, reg[1]);
- break;
- case 0xB003:
- case 0xB00C:
- reg[1] = (byte)((reg[1] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(1, reg[1]);
- break;
+ case 0xB001:
+ case 0xB004:
+ reg[1] = (byte)((reg[1] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(1, reg[1]);
+ break;
+ case 0xB003:
+ case 0xB00C:
+ reg[1] = (byte)((reg[1] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(1, reg[1]);
+ break;
- case 0xC000:
- reg[2] = (byte)((reg[2] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(2, reg[2]);
- break;
- case 0xC002:
- case 0xC008:
- reg[2] = (byte)((reg[2] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(2, reg[2]);
- break;
+ case 0xC000:
+ reg[2] = (byte)((reg[2] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(2, reg[2]);
+ break;
+ case 0xC002:
+ case 0xC008:
+ reg[2] = (byte)((reg[2] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(2, reg[2]);
+ break;
- case 0xC001:
- case 0xC004:
- reg[3] = (byte)((reg[3] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(3, reg[3]);
- break;
- case 0xC003:
- case 0xC00C:
- reg[3] = (byte)((reg[3] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(3, reg[3]);
- break;
+ case 0xC001:
+ case 0xC004:
+ reg[3] = (byte)((reg[3] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(3, reg[3]);
+ break;
+ case 0xC003:
+ case 0xC00C:
+ reg[3] = (byte)((reg[3] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(3, reg[3]);
+ break;
- case 0xD000:
- reg[4] = (byte)((reg[4] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(4, reg[4]);
- break;
- case 0xD002:
- case 0xD008:
- reg[4] = (byte)((reg[4] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(4, reg[4]);
- break;
+ case 0xD000:
+ reg[4] = (byte)((reg[4] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(4, reg[4]);
+ break;
+ case 0xD002:
+ case 0xD008:
+ reg[4] = (byte)((reg[4] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(4, reg[4]);
+ break;
- case 0xD001:
- case 0xD004:
- reg[5] = (byte)((reg[5] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(5, reg[5]);
- break;
- case 0xD003:
- case 0xD00C:
- reg[5] = (byte)((reg[5] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(5, reg[5]);
- break;
+ case 0xD001:
+ case 0xD004:
+ reg[5] = (byte)((reg[5] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(5, reg[5]);
+ break;
+ case 0xD003:
+ case 0xD00C:
+ reg[5] = (byte)((reg[5] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(5, reg[5]);
+ break;
- case 0xE000:
- reg[6] = (byte)((reg[6] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(6, reg[6]);
- break;
- case 0xE002:
- case 0xE008:
- reg[6] = (byte)((reg[6] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(6, reg[6]);
- break;
+ case 0xE000:
+ reg[6] = (byte)((reg[6] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(6, reg[6]);
+ break;
+ case 0xE002:
+ case 0xE008:
+ reg[6] = (byte)((reg[6] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(6, reg[6]);
+ break;
- case 0xE001:
- case 0xE004:
- reg[7] = (byte)((reg[7] & 0xF0) | (data & 0x0F));
- SetVROM_1K_Bank(7, reg[7]);
- break;
- case 0xE003:
- case 0xE00C:
- reg[7] = (byte)((reg[7] & 0x0F) | ((data & 0x0F) << 4));
- SetVROM_1K_Bank(7, reg[7]);
- break;
+ case 0xE001:
+ case 0xE004:
+ reg[7] = (byte)((reg[7] & 0xF0) | (data & 0x0F));
+ SetVROM_1K_Bank(7, reg[7]);
+ break;
+ case 0xE003:
+ case 0xE00C:
+ reg[7] = (byte)((reg[7] & 0x0F) | ((data & 0x0F) << 4));
+ SetVROM_1K_Bank(7, reg[7]);
+ break;
- case 0xF000:
- irq_latch = (byte)((irq_latch & 0xF0) | (data & 0x0F));
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
+ case 0xF000:
+ irq_latch = (byte)((irq_latch & 0xF0) | (data & 0x0F));
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
- case 0xF002:
- case 0xF008:
- irq_latch = (byte)((irq_latch & 0x0F) | ((data & 0x0F) << 4));
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
+ case 0xF002:
+ case 0xF008:
+ irq_latch = (byte)((irq_latch & 0x0F) | ((data & 0x0F) << 4));
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
- case 0xF001:
- case 0xF004:
- irq_enable = (byte)(data & 0x03);
- // irq_counter = 0x100 - irq_latch;
- irq_counter = irq_latch;
- irq_clock = 0;
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
+ case 0xF001:
+ case 0xF004:
+ irq_enable = (byte)(data & 0x03);
+ // irq_counter = 0x100 - irq_latch;
+ irq_counter = irq_latch;
+ irq_clock = 0;
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
- case 0xF003:
- case 0xF00C:
- irq_enable = (byte)((irq_enable & 0x01) * 3);
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- }
- }
+ case 0xF003:
+ case 0xF00C:
+ irq_enable = (byte)((irq_enable & 0x01) * 3);
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ }
+ }
- //void Mapper025::Clock(INT cycles)
- public override void Clock(int cycles)
- {
- if ((irq_enable & 0x02) != 0)
- {
- irq_clock += cycles * 3;
- while (irq_clock >= 341)
- {
- irq_clock -= 341;
- irq_counter++;
- if (irq_counter == 0)
- {
- irq_counter = irq_latch;
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- }
- }
- }
+ //void Mapper025::Clock(INT cycles)
+ public override void Clock(int cycles)
+ {
+ if ((irq_enable & 0x02) != 0)
+ {
+ irq_clock += cycles * 3;
+ while (irq_clock >= 341)
+ {
+ irq_clock -= 341;
+ irq_counter++;
+ if (irq_counter == 0)
+ {
+ irq_counter = irq_latch;
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ }
+ }
+ }
- //void Mapper025::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- //for (INT i = 0; i < 11; i++)
- //{
- // p[i] = reg[i];
- //}
- //p[11] = irq_enable;
- //p[12] = irq_occur;
- //p[13] = irq_latch;
- //p[14] = irq_counter;
- //*((INT*)&p[15]) = irq_clock;
- }
+ //void Mapper025::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ //for (INT i = 0; i < 11; i++)
+ //{
+ // p[i] = reg[i];
+ //}
+ //p[11] = irq_enable;
+ //p[12] = irq_occur;
+ //p[13] = irq_latch;
+ //p[14] = irq_counter;
+ //*((INT*)&p[15]) = irq_clock;
+ }
- //void Mapper025::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- //for (INT i = 0; i < 11; i++)
- //{
- // reg[i] = p[i];
- //}
- //irq_enable = p[11];
- //irq_occur = p[12];
- //irq_latch = p[13];
- //irq_counter = p[14];
- //irq_clock = *((INT*)&p[15]);
- }
+ //void Mapper025::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ //for (INT i = 0; i < 11; i++)
+ //{
+ // reg[i] = p[i];
+ //}
+ //irq_enable = p[11];
+ //irq_occur = p[12];
+ //irq_latch = p[13];
+ //irq_counter = p[14];
+ //irq_clock = *((INT*)&p[15]);
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper026.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper026.cs
index e6771773..08acf5e1 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper026.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper026.cs
@@ -1,185 +1,185 @@
//////////////////////////////////////////////////////////////////////////
// Mapper026 Konami VRC6 (PA0,PA1 reverse) //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper026 : Mapper
- {
+ public class Mapper026 : Mapper
+ {
- BYTE irq_enable;
- BYTE irq_counter;
- BYTE irq_latch;
- INT irq_clock;
- public Mapper026(NES parent) : base(parent)
- {
- }
+ BYTE irq_enable;
+ BYTE irq_counter;
+ BYTE irq_latch;
+ INT irq_clock;
+ public Mapper026(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- irq_enable = 0;
- irq_counter = 0;
- irq_latch = 0;
- irq_clock = 0;
+ public override void Reset()
+ {
+ irq_enable = 0;
+ irq_counter = 0;
+ irq_latch = 0;
+ irq_clock = 0;
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_8K_Bank(0);
- }
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0);
+ }
- uint crc = nes.rom.GetPROM_CRC();
- if (crc == 0x30e64d03)
- { // Esper Dream 2 - Aratanaru Tatakai(J)
- nes.SetRenderMethod(EnumRenderMethod.POST_ALL_RENDER);
- }
- if (crc == 0x836cc1ab)
- { // Mouryou Senki Madara(J)
- nes.SetRenderMethod(EnumRenderMethod.POST_ALL_RENDER);
- }
- nes.apu.SelectExSound(1);
- }
+ uint crc = nes.rom.GetPROM_CRC();
+ if (crc == 0x30e64d03)
+ { // Esper Dream 2 - Aratanaru Tatakai(J)
+ nes.SetRenderMethod(EnumRenderMethod.POST_ALL_RENDER);
+ }
+ if (crc == 0x836cc1ab)
+ { // Mouryou Senki Madara(J)
+ nes.SetRenderMethod(EnumRenderMethod.POST_ALL_RENDER);
+ }
+ nes.apu.SelectExSound(1);
+ }
- //void Mapper026::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr & 0xF003)
- {
- case 0x8000:
- SetPROM_16K_Bank(4, data);
- break;
+ //void Mapper026::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr & 0xF003)
+ {
+ case 0x8000:
+ SetPROM_16K_Bank(4, data);
+ break;
- case 0x9000:
- case 0x9001:
- case 0x9002:
- case 0x9003:
- case 0xA000:
- case 0xA001:
- case 0xA002:
- case 0xA003:
- case 0xB000:
- case 0xB001:
- case 0xB002:
- addr = (ushort)((addr & 0xfffc) | ((addr & 1) << 1) | ((addr & 2) >> 1));
- nes.apu.ExWrite(addr, data);
- break;
+ case 0x9000:
+ case 0x9001:
+ case 0x9002:
+ case 0x9003:
+ case 0xA000:
+ case 0xA001:
+ case 0xA002:
+ case 0xA003:
+ case 0xB000:
+ case 0xB001:
+ case 0xB002:
+ addr = (ushort)((addr & 0xfffc) | ((addr & 1) << 1) | ((addr & 2) >> 1));
+ nes.apu.ExWrite(addr, data);
+ break;
- case 0xB003:
- data = (byte)(data & 0x7F);
- if (data == 0x08 || data == 0x2C) SetVRAM_Mirror(VRAM_MIRROR4H);
- else if (data == 0x20) SetVRAM_Mirror(VRAM_VMIRROR);
- else if (data == 0x24) SetVRAM_Mirror(VRAM_HMIRROR);
- else if (data == 0x28) SetVRAM_Mirror(VRAM_MIRROR4L);
- break;
+ case 0xB003:
+ data = (byte)(data & 0x7F);
+ if (data == 0x08 || data == 0x2C) SetVRAM_Mirror(VRAM_MIRROR4H);
+ else if (data == 0x20) SetVRAM_Mirror(VRAM_VMIRROR);
+ else if (data == 0x24) SetVRAM_Mirror(VRAM_HMIRROR);
+ else if (data == 0x28) SetVRAM_Mirror(VRAM_MIRROR4L);
+ break;
- case 0xC000:
- SetPROM_8K_Bank(6, data);
- break;
+ case 0xC000:
+ SetPROM_8K_Bank(6, data);
+ break;
- case 0xD000:
- SetVROM_1K_Bank(0, data);
- break;
+ case 0xD000:
+ SetVROM_1K_Bank(0, data);
+ break;
- case 0xD001:
- SetVROM_1K_Bank(2, data);
- break;
+ case 0xD001:
+ SetVROM_1K_Bank(2, data);
+ break;
- case 0xD002:
- SetVROM_1K_Bank(1, data);
- break;
+ case 0xD002:
+ SetVROM_1K_Bank(1, data);
+ break;
- case 0xD003:
- SetVROM_1K_Bank(3, data);
- break;
+ case 0xD003:
+ SetVROM_1K_Bank(3, data);
+ break;
- case 0xE000:
- SetVROM_1K_Bank(4, data);
- break;
+ case 0xE000:
+ SetVROM_1K_Bank(4, data);
+ break;
- case 0xE001:
- SetVROM_1K_Bank(6, data);
- break;
+ case 0xE001:
+ SetVROM_1K_Bank(6, data);
+ break;
- case 0xE002:
- SetVROM_1K_Bank(5, data);
- break;
+ case 0xE002:
+ SetVROM_1K_Bank(5, data);
+ break;
- case 0xE003:
- SetVROM_1K_Bank(7, data);
- break;
+ case 0xE003:
+ SetVROM_1K_Bank(7, data);
+ break;
- case 0xF000:
- irq_latch = data;
- break;
- case 0xF001:
- irq_enable = (byte)((irq_enable & 0x01) * 3);
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- case 0xF002:
- irq_enable = (byte)(data & 0x03);
- if ((irq_enable & 0x02) != 0)
- {
- irq_counter = irq_latch;
- irq_clock = 0;
- }
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- }
- }
+ case 0xF000:
+ irq_latch = data;
+ break;
+ case 0xF001:
+ irq_enable = (byte)((irq_enable & 0x01) * 3);
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ case 0xF002:
+ irq_enable = (byte)(data & 0x03);
+ if ((irq_enable & 0x02) != 0)
+ {
+ irq_counter = irq_latch;
+ irq_clock = 0;
+ }
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ }
+ }
- //void Mapper026::Clock(INT cycles)
- public override void Clock(int cycles)
- {
- if ((irq_enable & 0x02) != 0)
- {
- if ((irq_clock += cycles) >= 0x72)
- {
- irq_clock -= 0x72;
- if (irq_counter >= 0xFF)
- {
- irq_counter = irq_latch;
- // nes.cpu.IRQ_NotPending();
- //// nes.cpu.IRQ();
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- else
- {
- irq_counter++;
- }
- }
- }
- }
+ //void Mapper026::Clock(INT cycles)
+ public override void Clock(int cycles)
+ {
+ if ((irq_enable & 0x02) != 0)
+ {
+ if ((irq_clock += cycles) >= 0x72)
+ {
+ irq_clock -= 0x72;
+ if (irq_counter >= 0xFF)
+ {
+ irq_counter = irq_latch;
+ // nes.cpu.IRQ_NotPending();
+ //// nes.cpu.IRQ();
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ else
+ {
+ irq_counter++;
+ }
+ }
+ }
+ }
- //void Mapper026::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- //p[0] = irq_enable;
- //p[1] = irq_counter;
- //p[2] = irq_latch;
- //*(INT*)&p[3] = irq_clock;
- }
+ //void Mapper026::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ //p[0] = irq_enable;
+ //p[1] = irq_counter;
+ //p[2] = irq_latch;
+ //*(INT*)&p[3] = irq_clock;
+ }
- //void Mapper026::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- //irq_enable = p[0];
- //irq_counter = p[1];
- //irq_latch = p[2];
- //irq_clock = *(INT*)&p[3];
- }
+ //void Mapper026::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ //irq_enable = p[0];
+ //irq_counter = p[1];
+ //irq_latch = p[2];
+ //irq_clock = *(INT*)&p[3];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper027.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper027.cs
index 994c4f73..2ef048de 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper027.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper027.cs
@@ -1,228 +1,228 @@
//////////////////////////////////////////////////////////////////////////
// Mapper027 Konami VRC4 (World Hero) //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper027 : Mapper
- {
- ushort[] reg = new ushort[9];
+ public class Mapper027 : Mapper
+ {
+ ushort[] reg = new ushort[9];
- BYTE irq_enable;
- BYTE irq_counter;
- BYTE irq_latch;
- INT irq_clock;
- public Mapper027(NES parent) : base(parent)
- {
- }
+ BYTE irq_enable;
+ BYTE irq_counter;
+ BYTE irq_latch;
+ INT irq_clock;
+ public Mapper027(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- for (INT i = 0; i < 8; i++)
- {
- reg[i] = (byte)i;
- }
- reg[8] = 0;
+ public override void Reset()
+ {
+ for (INT i = 0; i < 8; i++)
+ {
+ reg[i] = (byte)i;
+ }
+ reg[8] = 0;
- irq_enable = 0;
- irq_counter = 0;
- irq_latch = 0;
- irq_clock = 0;
+ irq_enable = 0;
+ irq_counter = 0;
+ irq_latch = 0;
+ irq_clock = 0;
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- uint crc = nes.rom.GetPROM_CRC();
- if (crc == 0x47DCBCC4)
- { // Gradius II(sample)
- nes.SetRenderMethod(EnumRenderMethod.POST_RENDER);
- }
- if (crc == 0x468F21FC)
- { // Racer Mini 4 ku(sample)
- nes.SetRenderMethod(EnumRenderMethod.POST_RENDER);
- }
- }
+ uint crc = nes.rom.GetPROM_CRC();
+ if (crc == 0x47DCBCC4)
+ { // Gradius II(sample)
+ nes.SetRenderMethod(EnumRenderMethod.POST_RENDER);
+ }
+ if (crc == 0x468F21FC)
+ { // Racer Mini 4 ku(sample)
+ nes.SetRenderMethod(EnumRenderMethod.POST_RENDER);
+ }
+ }
- //void Mapper027::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr & 0xF0CF)
- {
- case 0x8000:
- if ((reg[8] & 0x02) != 0)
- {
- SetPROM_8K_Bank(6, data);
- }
- else
- {
- SetPROM_8K_Bank(4, data);
- }
- break;
- case 0xA000:
- SetPROM_8K_Bank(5, data);
- break;
+ //void Mapper027::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr & 0xF0CF)
+ {
+ case 0x8000:
+ if ((reg[8] & 0x02) != 0)
+ {
+ SetPROM_8K_Bank(6, data);
+ }
+ else
+ {
+ SetPROM_8K_Bank(4, data);
+ }
+ break;
+ case 0xA000:
+ SetPROM_8K_Bank(5, data);
+ break;
- case 0x9000:
- data &= 0x03;
- if (data == 0) SetVRAM_Mirror(VRAM_VMIRROR);
- else if (data == 1) SetVRAM_Mirror(VRAM_HMIRROR);
- else if (data == 2) SetVRAM_Mirror(VRAM_MIRROR4L);
- else SetVRAM_Mirror(VRAM_MIRROR4H);
- break;
+ case 0x9000:
+ data &= 0x03;
+ if (data == 0) SetVRAM_Mirror(VRAM_VMIRROR);
+ else if (data == 1) SetVRAM_Mirror(VRAM_HMIRROR);
+ else if (data == 2) SetVRAM_Mirror(VRAM_MIRROR4L);
+ else SetVRAM_Mirror(VRAM_MIRROR4H);
+ break;
- case 0x9002:
- case 0x9080:
- reg[8] = data;
- break;
+ case 0x9002:
+ case 0x9080:
+ reg[8] = data;
+ break;
- case 0xB000:
- reg[0] = (ushort)((reg[0] & 0xFF0) | (data & 0x0F));
- SetVROM_1K_Bank(0, reg[0]);
- break;
- case 0xB001:
- reg[0] = (ushort)((reg[0] & 0x0F) | (data << 4));
- SetVROM_1K_Bank(0, reg[0]);
- break;
+ case 0xB000:
+ reg[0] = (ushort)((reg[0] & 0xFF0) | (data & 0x0F));
+ SetVROM_1K_Bank(0, reg[0]);
+ break;
+ case 0xB001:
+ reg[0] = (ushort)((reg[0] & 0x0F) | (data << 4));
+ SetVROM_1K_Bank(0, reg[0]);
+ break;
- case 0xB002:
- reg[1] = (ushort)((reg[1] & 0xFF0) | (data & 0x0F));
- SetVROM_1K_Bank(1, reg[1]);
- break;
- case 0xB003:
- reg[1] = (ushort)((reg[1] & 0x0F) | (data << 4));
- SetVROM_1K_Bank(1, reg[1]);
- break;
+ case 0xB002:
+ reg[1] = (ushort)((reg[1] & 0xFF0) | (data & 0x0F));
+ SetVROM_1K_Bank(1, reg[1]);
+ break;
+ case 0xB003:
+ reg[1] = (ushort)((reg[1] & 0x0F) | (data << 4));
+ SetVROM_1K_Bank(1, reg[1]);
+ break;
- case 0xC000:
- reg[2] = (ushort)((reg[2] & 0xFF0) | (data & 0x0F));
- SetVROM_1K_Bank(2, reg[2]);
- break;
- case 0xC001:
- reg[2] = (ushort)((reg[2] & 0x0F) | (data << 4));
- SetVROM_1K_Bank(2, reg[2]);
- break;
+ case 0xC000:
+ reg[2] = (ushort)((reg[2] & 0xFF0) | (data & 0x0F));
+ SetVROM_1K_Bank(2, reg[2]);
+ break;
+ case 0xC001:
+ reg[2] = (ushort)((reg[2] & 0x0F) | (data << 4));
+ SetVROM_1K_Bank(2, reg[2]);
+ break;
- case 0xC002:
- reg[3] = (ushort)((reg[3] & 0xFF0) | (data & 0x0F));
- SetVROM_1K_Bank(3, reg[3]);
- break;
- case 0xC003:
- reg[3] = (ushort)((reg[3] & 0x0F) | (data << 4));
- SetVROM_1K_Bank(3, reg[3]);
- break;
+ case 0xC002:
+ reg[3] = (ushort)((reg[3] & 0xFF0) | (data & 0x0F));
+ SetVROM_1K_Bank(3, reg[3]);
+ break;
+ case 0xC003:
+ reg[3] = (ushort)((reg[3] & 0x0F) | (data << 4));
+ SetVROM_1K_Bank(3, reg[3]);
+ break;
- case 0xD000:
- reg[4] = (ushort)((reg[4] & 0xFF0) | (data & 0x0F));
- SetVROM_1K_Bank(4, reg[4]);
- break;
- case 0xD001:
- reg[4] = (ushort)((reg[4] & 0x0F) | (data << 4));
- SetVROM_1K_Bank(4, reg[4]);
- break;
+ case 0xD000:
+ reg[4] = (ushort)((reg[4] & 0xFF0) | (data & 0x0F));
+ SetVROM_1K_Bank(4, reg[4]);
+ break;
+ case 0xD001:
+ reg[4] = (ushort)((reg[4] & 0x0F) | (data << 4));
+ SetVROM_1K_Bank(4, reg[4]);
+ break;
- case 0xD002:
- reg[5] = (ushort)((reg[5] & 0xFF0) | (data & 0x0F));
- SetVROM_1K_Bank(5, reg[5]);
- break;
- case 0xD003:
- reg[5] = (ushort)((reg[5] & 0x0F) | (data << 4));
- SetVROM_1K_Bank(5, reg[5]);
- break;
+ case 0xD002:
+ reg[5] = (ushort)((reg[5] & 0xFF0) | (data & 0x0F));
+ SetVROM_1K_Bank(5, reg[5]);
+ break;
+ case 0xD003:
+ reg[5] = (ushort)((reg[5] & 0x0F) | (data << 4));
+ SetVROM_1K_Bank(5, reg[5]);
+ break;
- case 0xE000:
- reg[6] = (ushort)((reg[6] & 0xFF0) | (data & 0x0F));
- SetVROM_1K_Bank(6, reg[6]);
- break;
- case 0xE001:
- reg[6] = (ushort)((reg[6] & 0x0F) | (data << 4));
- SetVROM_1K_Bank(6, reg[6]);
- break;
+ case 0xE000:
+ reg[6] = (ushort)((reg[6] & 0xFF0) | (data & 0x0F));
+ SetVROM_1K_Bank(6, reg[6]);
+ break;
+ case 0xE001:
+ reg[6] = (ushort)((reg[6] & 0x0F) | (data << 4));
+ SetVROM_1K_Bank(6, reg[6]);
+ break;
- case 0xE002:
- reg[7] = (ushort)((reg[7] & 0xFF0) | (data & 0x0F));
- SetVROM_1K_Bank(7, reg[7]);
- break;
- case 0xE003:
- reg[7] = (ushort)((reg[7] & 0x0F) | (data << 4));
- SetVROM_1K_Bank(7, reg[7]);
- break;
+ case 0xE002:
+ reg[7] = (ushort)((reg[7] & 0xFF0) | (data & 0x0F));
+ SetVROM_1K_Bank(7, reg[7]);
+ break;
+ case 0xE003:
+ reg[7] = (ushort)((reg[7] & 0x0F) | (data << 4));
+ SetVROM_1K_Bank(7, reg[7]);
+ break;
- case 0xF000:
- irq_latch = (byte)((irq_latch & 0xF0) | (data & 0x0F));
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- case 0xF001:
- irq_latch = (byte)((irq_latch & 0x0F) | ((data & 0x0F) << 4));
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
+ case 0xF000:
+ irq_latch = (byte)((irq_latch & 0xF0) | (data & 0x0F));
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ case 0xF001:
+ irq_latch = (byte)((irq_latch & 0x0F) | ((data & 0x0F) << 4));
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
- case 0xF003:
- irq_enable = (byte)((irq_enable & 0x01) * 3);
- irq_clock = 0;
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
+ case 0xF003:
+ irq_enable = (byte)((irq_enable & 0x01) * 3);
+ irq_clock = 0;
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
- case 0xF002:
- irq_enable = (byte)(data & 0x03);
- if ((irq_enable & 0x02) != 0)
- {
- irq_counter = irq_latch;
- irq_clock = 0;
- }
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- }
- }
+ case 0xF002:
+ irq_enable = (byte)(data & 0x03);
+ if ((irq_enable & 0x02) != 0)
+ {
+ irq_counter = irq_latch;
+ irq_clock = 0;
+ }
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ }
+ }
- //void Mapper027::HSync(INT scanline)
- public override void HSync(int scanline)
- {
- if ((irq_enable & 0x02) != 0)
- {
- if (irq_counter == 0xFF)
- {
- irq_counter = irq_latch;
- // nes.cpu.IRQ_NotPending();
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- else
- {
- irq_counter++;
- }
- }
- }
+ //void Mapper027::HSync(INT scanline)
+ public override void HSync(int scanline)
+ {
+ if ((irq_enable & 0x02) != 0)
+ {
+ if (irq_counter == 0xFF)
+ {
+ irq_counter = irq_latch;
+ // nes.cpu.IRQ_NotPending();
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ else
+ {
+ irq_counter++;
+ }
+ }
+ }
- //void Mapper027::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- //for (INT i = 0; i < 9; i++)
- //{
- // p[i] = reg[i];
- //}
- //p[9] = irq_enable;
- //p[10] = irq_counter;
- //p[11] = irq_latch;
- //*(INT*)&p[12] = irq_clock;
- }
+ //void Mapper027::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ //for (INT i = 0; i < 9; i++)
+ //{
+ // p[i] = reg[i];
+ //}
+ //p[9] = irq_enable;
+ //p[10] = irq_counter;
+ //p[11] = irq_latch;
+ //*(INT*)&p[12] = irq_clock;
+ }
- //void Mapper027::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- //for (INT i = 0; i < 9; i++)
- //{
- // reg[i] = p[i];
- //}
- //irq_enable = p[9];
- //irq_counter = p[10];
- //irq_latch = p[11];
- //irq_clock = *(INT*)&p[12];
- }
+ //void Mapper027::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ //for (INT i = 0; i < 9; i++)
+ //{
+ // reg[i] = p[i];
+ //}
+ //irq_enable = p[9];
+ //irq_counter = p[10];
+ //irq_latch = p[11];
+ //irq_clock = *(INT*)&p[12];
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper032.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper032.cs
index 8c843afb..660d1c32 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper032.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper032.cs
@@ -2,122 +2,120 @@
// Mapper032 Irem G101 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper032 : Mapper
- {
- BYTE patch;
+ public class Mapper032 : Mapper
+ {
+ BYTE patch;
- BYTE reg;
- public Mapper032(NES parent) : base(parent)
- {
- }
+ BYTE reg;
+ public Mapper032(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- patch = 0;
- reg = 0;
+ public override void Reset()
+ {
+ patch = 0;
+ reg = 0;
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- if (VROM_8K_SIZE != 0)
- {
- SetVROM_8K_Bank(0);
- }
+ if (VROM_8K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0);
+ }
- uint crc = nes.rom.GetPROM_CRC();
+ uint crc = nes.rom.GetPROM_CRC();
- // For Major League(J)
- if (crc == 0xc0fed437)
- {
- patch = 1;
- }
- // For Ai Sensei no Oshiete - Watashi no Hoshi(J)
- if (crc == 0xfd3fc292)
- {
- SetPROM_32K_Bank(30, 31, 30, 31);
- }
- }
+ // For Major League(J)
+ if (crc == 0xc0fed437)
+ {
+ patch = 1;
+ }
+ // For Ai Sensei no Oshiete - Watashi no Hoshi(J)
+ if (crc == 0xfd3fc292)
+ {
+ SetPROM_32K_Bank(30, 31, 30, 31);
+ }
+ }
- //void Mapper032::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr & 0xF000)
- {
- case 0x8000:
- if ((reg & 0x02) != 0)
- {
- SetPROM_8K_Bank(6, data);
- }
- else
- {
- SetPROM_8K_Bank(4, data);
- }
- break;
+ //void Mapper032::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr & 0xF000)
+ {
+ case 0x8000:
+ if ((reg & 0x02) != 0)
+ {
+ SetPROM_8K_Bank(6, data);
+ }
+ else
+ {
+ SetPROM_8K_Bank(4, data);
+ }
+ break;
- case 0x9000:
- reg = data;
- if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
- else SetVRAM_Mirror(VRAM_VMIRROR);
- break;
+ case 0x9000:
+ reg = data;
+ if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
+ else SetVRAM_Mirror(VRAM_VMIRROR);
+ break;
- case 0xA000:
- SetPROM_8K_Bank(5, data);
- break;
- }
+ case 0xA000:
+ SetPROM_8K_Bank(5, data);
+ break;
+ }
- switch (addr & 0xF007)
- {
- case 0xB000:
- case 0xB001:
- case 0xB002:
- case 0xB003:
- case 0xB004:
- case 0xB005:
- SetVROM_1K_Bank((byte)(addr & 0x0007), data);
- break;
- case 0xB006:
- SetVROM_1K_Bank(6, data);
+ switch (addr & 0xF007)
+ {
+ case 0xB000:
+ case 0xB001:
+ case 0xB002:
+ case 0xB003:
+ case 0xB004:
+ case 0xB005:
+ SetVROM_1K_Bank((byte)(addr & 0x0007), data);
+ break;
+ case 0xB006:
+ SetVROM_1K_Bank(6, data);
- if (patch != 0 && ((data & 0x40) != 0))
- {
- SetVRAM_Mirror(0, 0, 0, 1);
- }
- break;
- case 0xB007:
- SetVROM_1K_Bank(7, data);
+ if (patch != 0 && ((data & 0x40) != 0))
+ {
+ SetVRAM_Mirror(0, 0, 0, 1);
+ }
+ break;
+ case 0xB007:
+ SetVROM_1K_Bank(7, data);
- if (patch != 0 && ((data & 0x40) != 0))
- {
- SetVRAM_Mirror(0, 0, 0, 0);
- }
- break;
- }
- }
+ if (patch != 0 && ((data & 0x40) != 0))
+ {
+ SetVRAM_Mirror(0, 0, 0, 0);
+ }
+ break;
+ }
+ }
- //void Mapper032::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- p[0] = reg;
- }
+ //void Mapper032::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ p[0] = reg;
+ }
- //void Mapper032::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- reg = p[0];
- }
+ //void Mapper032::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ reg = p[0];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper033.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper033.cs
index f2ac3ba9..c3664dda 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper033.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper033.cs
@@ -1,131 +1,131 @@
//////////////////////////////////////////////////////////////////////////
// Mapper033 Taito TC0190 //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper033 : Mapper
- {
- BYTE[] reg = new byte[7];
+ public class Mapper033 : Mapper
+ {
+ BYTE[] reg = new byte[7];
- BYTE patch;
- BYTE irq_enable;
- BYTE irq_counter;
- BYTE irq_latch;
- public Mapper033(NES parent) : base(parent)
- {
- }
+ BYTE patch;
+ BYTE irq_enable;
+ BYTE irq_counter;
+ BYTE irq_latch;
+ public Mapper033(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- patch = 0;
+ public override void Reset()
+ {
+ patch = 0;
- irq_enable = 0;
- irq_counter = 0;
- irq_latch = 0;
+ irq_enable = 0;
+ irq_counter = 0;
+ irq_latch = 0;
- reg[0] = 0;
- reg[1] = 2;
- reg[2] = 4;
- reg[3] = 5;
- reg[4] = 6;
- reg[5] = 7;
- reg[6] = 1;
+ reg[0] = 0;
+ reg[1] = 2;
+ reg[2] = 4;
+ reg[3] = 5;
+ reg[4] = 6;
+ reg[5] = 7;
+ reg[6] = 1;
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- if (VROM_8K_SIZE != 0)
- {
- SetBank();
- }
+ if (VROM_8K_SIZE != 0)
+ {
+ SetBank();
+ }
- uint crc = nes.rom.GetPROM_CRC();
- // Check For Old #33 games.... (CRC code by NesToy)
- if (crc == 0x5e9bc161 // Akira(J)
- || crc == 0xecdbafa4 // Bakushou!! Jinsei Gekijou(J)
- || crc == 0x59cd0c31 // Don Doko Don(J)
- || crc == 0x837c1342 // Golf Ko Open(J)
- || crc == 0x42d893e4 // Operation Wolf(J)
- || crc == 0x1388aeb9 // Operation Wolf(U)
- || crc == 0x07ee6d8f // Power Blazer(J)
- || crc == 0x5193fb54 // Takeshi no Sengoku Fuuunji(J)
- || crc == 0xa71c3452)
- { // Insector X(J)
- patch = 1;
- }
+ uint crc = nes.rom.GetPROM_CRC();
+ // Check For Old #33 games.... (CRC code by NesToy)
+ if (crc == 0x5e9bc161 // Akira(J)
+ || crc == 0xecdbafa4 // Bakushou!! Jinsei Gekijou(J)
+ || crc == 0x59cd0c31 // Don Doko Don(J)
+ || crc == 0x837c1342 // Golf Ko Open(J)
+ || crc == 0x42d893e4 // Operation Wolf(J)
+ || crc == 0x1388aeb9 // Operation Wolf(U)
+ || crc == 0x07ee6d8f // Power Blazer(J)
+ || crc == 0x5193fb54 // Takeshi no Sengoku Fuuunji(J)
+ || crc == 0xa71c3452)
+ { // Insector X(J)
+ patch = 1;
+ }
- nes.SetRenderMethod(EnumRenderMethod.PRE_RENDER);
+ nes.SetRenderMethod(EnumRenderMethod.PRE_RENDER);
- if (crc == 0x202df297)
- { // Captain Saver(J)
- nes.SetRenderMethod(EnumRenderMethod.TILE_RENDER);
- }
- if (crc == 0x63bb86b5)
- { // The Jetsons(J)
- nes.SetRenderMethod(EnumRenderMethod.TILE_RENDER);
- }
- }
+ if (crc == 0x202df297)
+ { // Captain Saver(J)
+ nes.SetRenderMethod(EnumRenderMethod.TILE_RENDER);
+ }
+ if (crc == 0x63bb86b5)
+ { // The Jetsons(J)
+ nes.SetRenderMethod(EnumRenderMethod.TILE_RENDER);
+ }
+ }
- //void Mapper033::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- // LOG( "Mapper033 addr=%04X data=%02X", addr&0xFFFF, data&0xFF );
+ //void Mapper033::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ // LOG( "Mapper033 addr=%04X data=%02X", addr&0xFFFF, data&0xFF );
- switch (addr)
- {
- case 0x8000:
- if (patch != 0)
- {
- if ((data & 0x40) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
- else SetVRAM_Mirror(VRAM_VMIRROR);
- SetPROM_8K_Bank(4, data & 0x1F);
- }
- else
- {
- SetPROM_8K_Bank(4, data);
- }
- break;
- case 0x8001:
- if (patch != 0)
- {
- SetPROM_8K_Bank(5, data & 0x1F);
- }
- else
- {
- SetPROM_8K_Bank(5, data);
- }
- break;
+ switch (addr)
+ {
+ case 0x8000:
+ if (patch != 0)
+ {
+ if ((data & 0x40) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
+ else SetVRAM_Mirror(VRAM_VMIRROR);
+ SetPROM_8K_Bank(4, data & 0x1F);
+ }
+ else
+ {
+ SetPROM_8K_Bank(4, data);
+ }
+ break;
+ case 0x8001:
+ if (patch != 0)
+ {
+ SetPROM_8K_Bank(5, data & 0x1F);
+ }
+ else
+ {
+ SetPROM_8K_Bank(5, data);
+ }
+ break;
- case 0x8002:
- reg[0] = data;
- SetBank();
- break;
- case 0x8003:
- reg[1] = data;
- SetBank();
- break;
- case 0xA000:
- reg[2] = data;
- SetBank();
- break;
- case 0xA001:
- reg[3] = data;
- SetBank();
- break;
- case 0xA002:
- reg[4] = data;
- SetBank();
- break;
- case 0xA003:
- reg[5] = data;
- SetBank();
- break;
+ case 0x8002:
+ reg[0] = data;
+ SetBank();
+ break;
+ case 0x8003:
+ reg[1] = data;
+ SetBank();
+ break;
+ case 0xA000:
+ reg[2] = data;
+ SetBank();
+ break;
+ case 0xA001:
+ reg[3] = data;
+ SetBank();
+ break;
+ case 0xA002:
+ reg[4] = data;
+ SetBank();
+ break;
+ case 0xA003:
+ reg[5] = data;
+ SetBank();
+ break;
#if FLASE//0
case 0xC003:
@@ -147,36 +147,36 @@ namespace VirtualNes.Core
// nes.cpu.ClrIRQ( IRQ_MAPPER );
break;
#else
- case 0xC000:
- irq_latch = data;
- irq_counter = irq_latch;
- break;
- case 0xC001:
- irq_counter = irq_latch;
- break;
- case 0xC002:
- irq_enable = 1;
- break;
- case 0xC003:
- irq_enable = 0;
- break;
+ case 0xC000:
+ irq_latch = data;
+ irq_counter = irq_latch;
+ break;
+ case 0xC001:
+ irq_counter = irq_latch;
+ break;
+ case 0xC002:
+ irq_enable = 1;
+ break;
+ case 0xC003:
+ irq_enable = 0;
+ break;
- case 0xE001:
- case 0xE002:
- case 0xE003:
- break;
+ case 0xE001:
+ case 0xE002:
+ case 0xE003:
+ break;
#endif
- case 0xE000:
- if ((data & 0x40) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
- else SetVRAM_Mirror(VRAM_VMIRROR);
- break;
- }
- }
+ case 0xE000:
+ if ((data & 0x40) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
+ else SetVRAM_Mirror(VRAM_VMIRROR);
+ break;
+ }
+ }
- //void Mapper033::HSync(INT scanline)
- public override void HSync(int scanline)
- {
+ //void Mapper033::HSync(INT scanline)
+ public override void HSync(int scanline)
+ {
#if FALSE//0
// nes.cpu.ClrIRQ( IRQ_MAPPER );
if( scanline >= 0 && scanline <= 239 ) {
@@ -194,67 +194,67 @@ namespace VirtualNes.Core
}
}
#else
- if (scanline >= 0 && scanline <= 239 && nes.ppu.IsDispON())
- {
- if (irq_enable != 0)
- {
- if (++irq_counter == 0)
- {
- irq_enable = 0;
- irq_counter = 0;
- nes.cpu.SetIRQ(IRQ_TRIGGER);
- }
- }
- }
+ if (scanline >= 0 && scanline <= 239 && nes.ppu.IsDispON())
+ {
+ if (irq_enable != 0)
+ {
+ if (++irq_counter == 0)
+ {
+ irq_enable = 0;
+ irq_counter = 0;
+ nes.cpu.SetIRQ(IRQ_TRIGGER);
+ }
+ }
+ }
#endif
- }
+ }
- void SetBank()
- {
- SetVROM_2K_Bank(0, reg[0]);
- SetVROM_2K_Bank(2, reg[1]);
+ void SetBank()
+ {
+ SetVROM_2K_Bank(0, reg[0]);
+ SetVROM_2K_Bank(2, reg[1]);
- // if( reg[6] & 0x01 ) {
- SetVROM_1K_Bank(4, reg[2]);
- SetVROM_1K_Bank(5, reg[3]);
- SetVROM_1K_Bank(6, reg[4]);
- SetVROM_1K_Bank(7, reg[5]);
- // } else {
- // SetVROM_2K_Bank( 4, reg[0] );
- // SetVROM_2K_Bank( 6, reg[1] );
- // }
- }
+ // if( reg[6] & 0x01 ) {
+ SetVROM_1K_Bank(4, reg[2]);
+ SetVROM_1K_Bank(5, reg[3]);
+ SetVROM_1K_Bank(6, reg[4]);
+ SetVROM_1K_Bank(7, reg[5]);
+ // } else {
+ // SetVROM_2K_Bank( 4, reg[0] );
+ // SetVROM_2K_Bank( 6, reg[1] );
+ // }
+ }
- //void Mapper033::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- for (INT i = 0; i < 7; i++)
- {
- p[i] = reg[i];
- }
+ //void Mapper033::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ for (INT i = 0; i < 7; i++)
+ {
+ p[i] = reg[i];
+ }
- p[7] = irq_enable;
- p[8] = irq_counter;
- p[9] = irq_latch;
- }
+ p[7] = irq_enable;
+ p[8] = irq_counter;
+ p[9] = irq_latch;
+ }
- //void Mapper033::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- for (INT i = 0; i < 7; i++)
- {
- reg[i] = p[i];
- }
+ //void Mapper033::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ for (INT i = 0; i < 7; i++)
+ {
+ reg[i] = p[i];
+ }
- irq_enable = p[7];
- irq_counter = p[8];
- irq_latch = p[9];
- }
+ irq_enable = p[7];
+ irq_counter = p[8];
+ irq_latch = p[9];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper034.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper034.cs
index 6b4231e3..bedefe42 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper034.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper034.cs
@@ -2,53 +2,50 @@
// Mapper034 Nina-1 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper034 : Mapper
- {
- public Mapper034(NES parent) : base(parent)
- {
- }
+ public class Mapper034 : Mapper
+ {
+ public Mapper034(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_8K_Bank(0);
- }
- }
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0);
+ }
+ }
- //void Mapper034::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- switch (addr)
- {
- case 0x7FFD:
- SetPROM_32K_Bank(data);
- break;
- case 0x7FFE:
- SetVROM_4K_Bank(0, data);
- break;
- case 0x7FFF:
- SetVROM_4K_Bank(4, data);
- break;
- }
- }
+ //void Mapper034::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ switch (addr)
+ {
+ case 0x7FFD:
+ SetPROM_32K_Bank(data);
+ break;
+ case 0x7FFE:
+ SetVROM_4K_Bank(0, data);
+ break;
+ case 0x7FFF:
+ SetVROM_4K_Bank(4, data);
+ break;
+ }
+ }
- //void Mapper034::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- SetPROM_32K_Bank(data);
- }
+ //void Mapper034::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ SetPROM_32K_Bank(data);
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper035.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper035.cs
index 74d50a3c..5ce4d204 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper035.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper035.cs
@@ -1,26 +1,25 @@
//////////////////////////////////////////////////////////////////////////
// Mapper035 //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper035 : Mapper
- {
+ public class Mapper035 : Mapper
+ {
BYTE[] reg = new byte[8];
BYTE[] chr = new byte[8];
ushort IRQCount, IRQa;
public Mapper035(NES parent) : base(parent)
- {
- }
+ {
+ }
- public override void Reset()
+ public override void Reset()
{
for (int i = 0; i < 8; i++)
reg[i] = chr[i] = 0;
@@ -103,7 +102,7 @@ namespace VirtualNes.Core
{
if (nes.ppu.IsDispON())
{
- if (IRQa!=0)
+ if (IRQa != 0)
{
IRQCount--;
if (IRQCount == 0)
@@ -118,7 +117,7 @@ namespace VirtualNes.Core
public override bool IsStateSave()
{
- return true;
+ return true;
}
}
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper040.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper040.cs
index 584a6ffe..ac0823d4 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper040.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper040.cs
@@ -1,90 +1,90 @@
//////////////////////////////////////////////////////////////////////////
// Mapper040 SMB2J //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper040 : Mapper
- {
- BYTE irq_enable;
- INT irq_line;
- public Mapper040(NES parent) : base(parent)
- {
- }
+ public class Mapper040 : Mapper
+ {
+ BYTE irq_enable;
+ INT irq_line;
+ public Mapper040(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- irq_enable = 0;
- irq_line = 0;
+ public override void Reset()
+ {
+ irq_enable = 0;
+ irq_line = 0;
- SetPROM_8K_Bank(3, 6);
- SetPROM_32K_Bank(4, 5, 0, 7);
+ SetPROM_8K_Bank(3, 6);
+ SetPROM_32K_Bank(4, 5, 0, 7);
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_8K_Bank(0);
- }
- }
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0);
+ }
+ }
- //void Mapper040::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr & 0xE000)
- {
- case 0x8000:
- irq_enable = 0;
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- case 0xA000:
- irq_enable = 0xFF;
- irq_line = 37;
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- case 0xC000:
- break;
- case 0xE000:
- SetPROM_8K_Bank(6, data & 0x07);
- break;
- }
- }
+ //void Mapper040::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr & 0xE000)
+ {
+ case 0x8000:
+ irq_enable = 0;
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ case 0xA000:
+ irq_enable = 0xFF;
+ irq_line = 37;
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ case 0xC000:
+ break;
+ case 0xE000:
+ SetPROM_8K_Bank(6, data & 0x07);
+ break;
+ }
+ }
- //void Mapper040::HSync(INT scanline)
- public override void HSync(int scanline)
- {
- if (irq_enable != 0)
- {
- if (--irq_line <= 0)
- {
- // nes.cpu.IRQ();
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- }
- }
+ //void Mapper040::HSync(INT scanline)
+ public override void HSync(int scanline)
+ {
+ if (irq_enable != 0)
+ {
+ if (--irq_line <= 0)
+ {
+ // nes.cpu.IRQ();
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ }
+ }
- //void Mapper040::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- //p[0] = irq_enable;
- //*(INT*)&p[1] = irq_line;
- }
+ //void Mapper040::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ //p[0] = irq_enable;
+ //*(INT*)&p[1] = irq_line;
+ }
- //void Mapper040::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- //irq_enable = p[0];
- //irq_line = *(INT*)&p[1];
- }
+ //void Mapper040::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ //irq_enable = p[0];
+ //irq_line = *(INT*)&p[1];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper041.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper041.cs
index 2a5df035..be2b5ea7 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper041.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper041.cs
@@ -2,77 +2,75 @@
// Mapper041 Caltron 6-in-1 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper041 : Mapper
- {
- BYTE[] reg = new byte[2];
- public Mapper041(NES parent) : base(parent)
- {
- }
+ public class Mapper041 : Mapper
+ {
+ BYTE[] reg = new byte[2];
+ public Mapper041(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- reg[0] = reg[1] = 0;
+ public override void Reset()
+ {
+ reg[0] = reg[1] = 0;
- SetPROM_32K_Bank(0, 1, 2, 3);
+ SetPROM_32K_Bank(0, 1, 2, 3);
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_8K_Bank(0);
- }
- }
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0);
+ }
+ }
- //void Mapper041::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- if (addr >= 0x6000 && addr < 0x6800)
- {
- SetPROM_32K_Bank(addr & 0x07);
- reg[0] = (byte)(addr & 0x04);
- reg[1] &= 0x03;
- reg[1] |= (byte)((addr >> 1) & 0x0C);
- SetVROM_8K_Bank(reg[1]);
- if ((addr & 0x20) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
- else SetVRAM_Mirror(VRAM_VMIRROR);
- }
- }
+ //void Mapper041::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ if (addr >= 0x6000 && addr < 0x6800)
+ {
+ SetPROM_32K_Bank(addr & 0x07);
+ reg[0] = (byte)(addr & 0x04);
+ reg[1] &= 0x03;
+ reg[1] |= (byte)((addr >> 1) & 0x0C);
+ SetVROM_8K_Bank(reg[1]);
+ if ((addr & 0x20) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
+ else SetVRAM_Mirror(VRAM_VMIRROR);
+ }
+ }
- //void Mapper041::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- if (reg[0] != 0)
- {
- reg[1] &= 0x0C;
- reg[1] |= (byte)(addr & 0x03);
- SetVROM_8K_Bank(reg[1]);
- }
- }
+ //void Mapper041::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ if (reg[0] != 0)
+ {
+ reg[1] &= 0x0C;
+ reg[1] |= (byte)(addr & 0x03);
+ SetVROM_8K_Bank(reg[1]);
+ }
+ }
- //void Mapper041::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- p[0] = reg[0];
- p[1] = reg[1];
- }
+ //void Mapper041::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ p[0] = reg[0];
+ p[1] = reg[1];
+ }
- //void Mapper041::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- reg[0] = p[0];
- reg[1] = p[1];
- }
+ //void Mapper041::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ reg[0] = p[0];
+ reg[1] = p[1];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper042.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper042.cs
index a9c8be46..4796d793 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper042.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper042.cs
@@ -1,103 +1,102 @@
//////////////////////////////////////////////////////////////////////////
// Mapper042 Mario Baby //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper042 : Mapper
- {
- BYTE irq_enable;
- BYTE irq_counter;
- public Mapper042(NES parent) : base(parent)
- {
- }
+ public class Mapper042 : Mapper
+ {
+ BYTE irq_enable;
+ BYTE irq_counter;
+ public Mapper042(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- irq_enable = 0;
- irq_counter = 0;
+ public override void Reset()
+ {
+ irq_enable = 0;
+ irq_counter = 0;
- SetPROM_8K_Bank(3, 0);
- SetPROM_32K_Bank(PROM_8K_SIZE - 4, PROM_8K_SIZE - 3, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ SetPROM_8K_Bank(3, 0);
+ SetPROM_32K_Bank(PROM_8K_SIZE - 4, PROM_8K_SIZE - 3, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_8K_Bank(0);
- }
- }
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0);
+ }
+ }
- //void Mapper042::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr & 0xE003)
- {
- case 0xE000:
- SetPROM_8K_Bank(3, data & 0x0F);
- break;
+ //void Mapper042::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr & 0xE003)
+ {
+ case 0xE000:
+ SetPROM_8K_Bank(3, data & 0x0F);
+ break;
- case 0xE001:
- if ((data & 0x08) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
- else SetVRAM_Mirror(VRAM_VMIRROR);
- break;
+ case 0xE001:
+ if ((data & 0x08) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
+ else SetVRAM_Mirror(VRAM_VMIRROR);
+ break;
- case 0xE002:
- if ((data & 0x02) != 0)
- {
- irq_enable = 0xFF;
- }
- else
- {
- irq_enable = 0;
- irq_counter = 0;
- }
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- }
- }
+ case 0xE002:
+ if ((data & 0x02) != 0)
+ {
+ irq_enable = 0xFF;
+ }
+ else
+ {
+ irq_enable = 0;
+ irq_counter = 0;
+ }
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ }
+ }
- //void Mapper042::HSync(INT scanline)
- public override void HSync(int scanline)
- {
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- if (irq_enable != 0)
- {
- if (irq_counter < 215)
- {
- irq_counter++;
- }
- if (irq_counter == 215)
- {
- irq_enable = 0;
- // nes.cpu.IRQ();
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- }
- }
+ //void Mapper042::HSync(INT scanline)
+ public override void HSync(int scanline)
+ {
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ if (irq_enable != 0)
+ {
+ if (irq_counter < 215)
+ {
+ irq_counter++;
+ }
+ if (irq_counter == 215)
+ {
+ irq_enable = 0;
+ // nes.cpu.IRQ();
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ }
+ }
- //void Mapper042::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- p[0] = irq_enable;
- p[1] = irq_counter;
- }
+ //void Mapper042::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ p[0] = irq_enable;
+ p[1] = irq_counter;
+ }
- //void Mapper042::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- irq_enable = p[0];
- irq_counter = p[1];
- }
+ //void Mapper042::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ irq_enable = p[0];
+ irq_counter = p[1];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper043.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper043.cs
index 97894ac7..6975ce6d 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper043.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper043.cs
@@ -1,138 +1,138 @@
//////////////////////////////////////////////////////////////////////////
// Mapper043 SMB2J //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper043 : Mapper
- {
- BYTE irq_enable;
- INT irq_counter;
- public Mapper043(NES parent) : base(parent)
- {
- }
+ public class Mapper043 : Mapper
+ {
+ BYTE irq_enable;
+ INT irq_counter;
+ public Mapper043(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- irq_enable = 0xFF;
- irq_counter = 0;
+ public override void Reset()
+ {
+ irq_enable = 0xFF;
+ irq_counter = 0;
- SetPROM_8K_Bank(3, 2);
- SetPROM_32K_Bank(1, 0, 4, 9);
+ SetPROM_8K_Bank(3, 2);
+ SetPROM_32K_Bank(1, 0, 4, 9);
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_8K_Bank(0);
- }
- }
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0);
+ }
+ }
- //BYTE Mapper043::ReadLow(WORD addr)
- public override byte ReadLow(ushort addr)
- {
- if (0x5000 <= addr && addr < 0x6000)
- {
- byte[] pPtr = nes.rom.GetPROM();
- return pPtr[0x2000 * 8 + 0x1000 + (addr - 0x5000)];
- }
- return (BYTE)(addr >> 8);
- }
+ //BYTE Mapper043::ReadLow(WORD addr)
+ public override byte ReadLow(ushort addr)
+ {
+ if (0x5000 <= addr && addr < 0x6000)
+ {
+ byte[] pPtr = nes.rom.GetPROM();
+ return pPtr[0x2000 * 8 + 0x1000 + (addr - 0x5000)];
+ }
+ return (BYTE)(addr >> 8);
+ }
- //void Mapper043::ExWrite(WORD addr, BYTE data)
- public override void ExWrite(ushort addr, byte data)
- {
- if ((addr & 0xF0FF) == 0x4022)
- {
- switch (data & 0x07)
- {
- case 0x00:
- case 0x02:
- case 0x03:
- case 0x04:
- SetPROM_8K_Bank(6, 4);
- break;
- case 0x01:
- SetPROM_8K_Bank(6, 3);
- break;
- case 0x05:
- SetPROM_8K_Bank(6, 7);
- break;
- case 0x06:
- SetPROM_8K_Bank(6, 5);
- break;
- case 0x07:
- SetPROM_8K_Bank(6, 6);
- break;
- }
- }
- }
+ //void Mapper043::ExWrite(WORD addr, BYTE data)
+ public override void ExWrite(ushort addr, byte data)
+ {
+ if ((addr & 0xF0FF) == 0x4022)
+ {
+ switch (data & 0x07)
+ {
+ case 0x00:
+ case 0x02:
+ case 0x03:
+ case 0x04:
+ SetPROM_8K_Bank(6, 4);
+ break;
+ case 0x01:
+ SetPROM_8K_Bank(6, 3);
+ break;
+ case 0x05:
+ SetPROM_8K_Bank(6, 7);
+ break;
+ case 0x06:
+ SetPROM_8K_Bank(6, 5);
+ break;
+ case 0x07:
+ SetPROM_8K_Bank(6, 6);
+ break;
+ }
+ }
+ }
- //void Mapper043::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- if ((addr & 0xF0FF) == 0x4022)
- {
- ExWrite(addr, data);
- }
- }
+ //void Mapper043::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ if ((addr & 0xF0FF) == 0x4022)
+ {
+ ExWrite(addr, data);
+ }
+ }
- //void Mapper043::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- if (addr == 0x8122)
- {
- if ((data & 0x03) != 0)
- {
- irq_enable = 1;
- }
- else
- {
- irq_counter = 0;
- irq_enable = 0;
- }
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- }
- }
+ //void Mapper043::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ if (addr == 0x8122)
+ {
+ if ((data & 0x03) != 0)
+ {
+ irq_enable = 1;
+ }
+ else
+ {
+ irq_counter = 0;
+ irq_enable = 0;
+ }
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ }
+ }
- //void Mapper043::HSync(INT scanline)
- public override void HSync(int scanline)
- {
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- if (irq_enable != 0)
- {
- irq_counter += 341;
- if (irq_counter >= 12288)
- {
- irq_counter = 0;
- // nes.cpu.IRQ();
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- }
- }
+ //void Mapper043::HSync(INT scanline)
+ public override void HSync(int scanline)
+ {
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ if (irq_enable != 0)
+ {
+ irq_counter += 341;
+ if (irq_counter >= 12288)
+ {
+ irq_counter = 0;
+ // nes.cpu.IRQ();
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ }
+ }
- //void Mapper043::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- //p[0] = irq_enable;
- //*(INT*)&p[1] = irq_counter;
- }
+ //void Mapper043::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ //p[0] = irq_enable;
+ //*(INT*)&p[1] = irq_counter;
+ }
- //void Mapper043::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- //irq_enable = p[0];
- //irq_counter = *(INT*)&p[1];
- }
+ //void Mapper043::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ //irq_enable = p[0];
+ //irq_counter = *(INT*)&p[1];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper044.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper044.cs
index b1736eee..3f50c7f8 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper044.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper044.cs
@@ -1,289 +1,289 @@
//////////////////////////////////////////////////////////////////////////
// Mapper044 Super HiK 7-in-1 //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper044 : Mapper
- {
- BYTE[] reg = new byte[8];
- BYTE patch;
- BYTE bank;
- BYTE prg0, prg1;
- BYTE chr01, chr23, chr4, chr5, chr6, chr7;
- BYTE irq_enable;
- BYTE irq_counter;
- BYTE irq_latch;
- public Mapper044(NES parent) : base(parent)
- {
- }
+ public class Mapper044 : Mapper
+ {
+ BYTE[] reg = new byte[8];
+ BYTE patch;
+ BYTE bank;
+ BYTE prg0, prg1;
+ BYTE chr01, chr23, chr4, chr5, chr6, chr7;
+ BYTE irq_enable;
+ BYTE irq_counter;
+ BYTE irq_latch;
+ public Mapper044(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- patch = 0;
+ public override void Reset()
+ {
+ patch = 0;
- if (nes.rom.GetPROM_CRC() == 0x7eef434c)
- {
- patch = 1;
- }
+ if (nes.rom.GetPROM_CRC() == 0x7eef434c)
+ {
+ patch = 1;
+ }
- for (INT i = 0; i < 8; i++)
- {
- reg[i] = 0;
- }
+ for (INT i = 0; i < 8; i++)
+ {
+ reg[i] = 0;
+ }
- bank = 0;
- prg0 = 0;
- prg1 = 1;
+ bank = 0;
+ prg0 = 0;
+ prg1 = 1;
- // set VROM banks
- if (VROM_1K_SIZE!=0)
- {
- chr01 = 0;
- chr23 = 2;
- chr4 = 4;
- chr5 = 5;
- chr6 = 6;
- chr7 = 7;
- }
- else
- {
- chr01 = chr23 = chr4 = chr5 = chr6 = chr7 = 0;
- }
+ // set VROM banks
+ if (VROM_1K_SIZE != 0)
+ {
+ chr01 = 0;
+ chr23 = 2;
+ chr4 = 4;
+ chr5 = 5;
+ chr6 = 6;
+ chr7 = 7;
+ }
+ else
+ {
+ chr01 = chr23 = chr4 = chr5 = chr6 = chr7 = 0;
+ }
- SetBank_CPU();
- SetBank_PPU();
+ SetBank_CPU();
+ SetBank_PPU();
- irq_enable = 0;
- irq_counter = 0;
- irq_latch = 0;
- }
+ irq_enable = 0;
+ irq_counter = 0;
+ irq_latch = 0;
+ }
- //void Mapper044::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- if (addr == 0x6000)
- {
- if (patch!=0)
- {
- bank = (byte)((data & 0x06) >> 1);
- }
- else
- {
- bank = (byte)((data & 0x01) << 1);
- }
- SetBank_CPU();
- SetBank_PPU();
- }
- }
+ //void Mapper044::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ if (addr == 0x6000)
+ {
+ if (patch != 0)
+ {
+ bank = (byte)((data & 0x06) >> 1);
+ }
+ else
+ {
+ bank = (byte)((data & 0x01) << 1);
+ }
+ SetBank_CPU();
+ SetBank_PPU();
+ }
+ }
- //void Mapper044::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr & 0xE001)
- {
- case 0x8000:
- reg[0] = data;
- SetBank_CPU();
- SetBank_PPU();
- break;
- case 0x8001:
- reg[1] = data;
- switch (reg[0] & 0x07)
- {
- case 0x00:
- chr01 = (byte)(data & 0xFE);
- SetBank_PPU();
- break;
- case 0x01:
- chr23 = (byte)(data & 0xFE);
- SetBank_PPU();
- break;
- case 0x02:
- chr4 = data;
- SetBank_PPU();
- break;
- case 0x03:
- chr5 = data;
- SetBank_PPU();
- break;
- case 0x04:
- chr6 = data;
- SetBank_PPU();
- break;
- case 0x05:
- chr7 = data;
- SetBank_PPU();
- break;
- case 0x06:
- prg0 = data;
- SetBank_CPU();
- break;
- case 0x07:
- prg1 = data;
- SetBank_CPU();
- break;
- }
- break;
- case 0xA000:
- reg[2] = data;
- if (!nes.rom.Is4SCREEN())
- {
- if ((data & 0x01)!=0) SetVRAM_Mirror(VRAM_HMIRROR);
- else SetVRAM_Mirror(VRAM_VMIRROR);
- }
- break;
- case 0xA001:
- reg[3] = data;
- bank = (byte)(data & 0x07);
- if (bank == 7)
- {
- bank = 6;
- }
- SetBank_CPU();
- SetBank_PPU();
- break;
- case 0xC000:
- reg[4] = data;
- irq_counter = data;
- break;
- case 0xC001:
- reg[5] = data;
- irq_latch = data;
- break;
- case 0xE000:
- reg[6] = data;
- irq_enable = 0;
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- case 0xE001:
- reg[7] = data;
- irq_enable = 1;
- // nes.cpu.ClrIRQ( IRQ_MAPPER );
- break;
- }
- }
+ //void Mapper044::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr & 0xE001)
+ {
+ case 0x8000:
+ reg[0] = data;
+ SetBank_CPU();
+ SetBank_PPU();
+ break;
+ case 0x8001:
+ reg[1] = data;
+ switch (reg[0] & 0x07)
+ {
+ case 0x00:
+ chr01 = (byte)(data & 0xFE);
+ SetBank_PPU();
+ break;
+ case 0x01:
+ chr23 = (byte)(data & 0xFE);
+ SetBank_PPU();
+ break;
+ case 0x02:
+ chr4 = data;
+ SetBank_PPU();
+ break;
+ case 0x03:
+ chr5 = data;
+ SetBank_PPU();
+ break;
+ case 0x04:
+ chr6 = data;
+ SetBank_PPU();
+ break;
+ case 0x05:
+ chr7 = data;
+ SetBank_PPU();
+ break;
+ case 0x06:
+ prg0 = data;
+ SetBank_CPU();
+ break;
+ case 0x07:
+ prg1 = data;
+ SetBank_CPU();
+ break;
+ }
+ break;
+ case 0xA000:
+ reg[2] = data;
+ if (!nes.rom.Is4SCREEN())
+ {
+ if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
+ else SetVRAM_Mirror(VRAM_VMIRROR);
+ }
+ break;
+ case 0xA001:
+ reg[3] = data;
+ bank = (byte)(data & 0x07);
+ if (bank == 7)
+ {
+ bank = 6;
+ }
+ SetBank_CPU();
+ SetBank_PPU();
+ break;
+ case 0xC000:
+ reg[4] = data;
+ irq_counter = data;
+ break;
+ case 0xC001:
+ reg[5] = data;
+ irq_latch = data;
+ break;
+ case 0xE000:
+ reg[6] = data;
+ irq_enable = 0;
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ case 0xE001:
+ reg[7] = data;
+ irq_enable = 1;
+ // nes.cpu.ClrIRQ( IRQ_MAPPER );
+ break;
+ }
+ }
- //void Mapper044::HSync(INT scanline)
- public override void HSync(int scanline)
- {
- if ((scanline >= 0 && scanline <= 239))
- {
- if (nes.ppu.IsDispON())
- {
- if (irq_enable!=0)
- {
- if ((--irq_counter)==0)
- {
- irq_counter = irq_latch;
- // nes.cpu.IRQ();
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- }
- }
- }
- }
+ //void Mapper044::HSync(INT scanline)
+ public override void HSync(int scanline)
+ {
+ if ((scanline >= 0 && scanline <= 239))
+ {
+ if (nes.ppu.IsDispON())
+ {
+ if (irq_enable != 0)
+ {
+ if ((--irq_counter) == 0)
+ {
+ irq_counter = irq_latch;
+ // nes.cpu.IRQ();
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ }
+ }
+ }
+ }
- void SetBank_CPU()
- {
- if ((reg[0] & 0x40)!=0)
- {
- SetPROM_8K_Bank(4, ((bank == 6) ? 0x1e : 0x0e) | (bank << 4));
- SetPROM_8K_Bank(5, ((bank == 6) ? 0x1f & prg1 : 0x0f & prg1) | (bank << 4));
- SetPROM_8K_Bank(6, ((bank == 6) ? 0x1f & prg0 : 0x0f & prg0) | (bank << 4));
- SetPROM_8K_Bank(7, ((bank == 6) ? 0x1f : 0x0f) | (bank << 4));
- }
- else
- {
- SetPROM_8K_Bank(4, ((bank == 6) ? 0x1f & prg0 : 0x0f & prg0) | (bank << 4));
- SetPROM_8K_Bank(5, ((bank == 6) ? 0x1f & prg1 : 0x0f & prg1) | (bank << 4));
- SetPROM_8K_Bank(6, ((bank == 6) ? 0x1e : 0x0e) | (bank << 4));
- SetPROM_8K_Bank(7, ((bank == 6) ? 0x1f : 0x0f) | (bank << 4));
- }
- }
+ void SetBank_CPU()
+ {
+ if ((reg[0] & 0x40) != 0)
+ {
+ SetPROM_8K_Bank(4, ((bank == 6) ? 0x1e : 0x0e) | (bank << 4));
+ SetPROM_8K_Bank(5, ((bank == 6) ? 0x1f & prg1 : 0x0f & prg1) | (bank << 4));
+ SetPROM_8K_Bank(6, ((bank == 6) ? 0x1f & prg0 : 0x0f & prg0) | (bank << 4));
+ SetPROM_8K_Bank(7, ((bank == 6) ? 0x1f : 0x0f) | (bank << 4));
+ }
+ else
+ {
+ SetPROM_8K_Bank(4, ((bank == 6) ? 0x1f & prg0 : 0x0f & prg0) | (bank << 4));
+ SetPROM_8K_Bank(5, ((bank == 6) ? 0x1f & prg1 : 0x0f & prg1) | (bank << 4));
+ SetPROM_8K_Bank(6, ((bank == 6) ? 0x1e : 0x0e) | (bank << 4));
+ SetPROM_8K_Bank(7, ((bank == 6) ? 0x1f : 0x0f) | (bank << 4));
+ }
+ }
- void SetBank_PPU()
- {
- if (VROM_1K_SIZE!=0)
- {
- if ((reg[0] & 0x80)!=0)
- {
- SetVROM_1K_Bank(0, ((bank == 6) ? 0xff & chr4 : 0x7f & chr4) | (bank << 7));
- SetVROM_1K_Bank(1, ((bank == 6) ? 0xff & chr5 : 0x7f & chr5) | (bank << 7));
- SetVROM_1K_Bank(2, ((bank == 6) ? 0xff & chr6 : 0x7f & chr6) | (bank << 7));
- SetVROM_1K_Bank(3, ((bank == 6) ? 0xff & chr7 : 0x7f & chr7) | (bank << 7));
- SetVROM_1K_Bank(4, ((bank == 6) ? 0xff & chr01 : 0x7f & chr01) | (bank << 7));
- SetVROM_1K_Bank(5, ((bank == 6) ? 0xff & (chr01 + 1) : 0x7f & (chr01 + 1)) | (bank << 7));
- SetVROM_1K_Bank(6, ((bank == 6) ? 0xff & chr23 : 0x7f & chr23) | (bank << 7));
- SetVROM_1K_Bank(7, ((bank == 6) ? 0xff & (chr23 + 1) : 0x7f & (chr23 + 1)) | (bank << 7));
- }
- else
- {
- SetVROM_1K_Bank(0, ((bank == 6) ? 0xff & chr01 : 0x7f & chr01) | (bank << 7));
- SetVROM_1K_Bank(1, ((bank == 6) ? 0xff & (chr01 + 1) : 0x7f & (chr01 + 1)) | (bank << 7));
- SetVROM_1K_Bank(2, ((bank == 6) ? 0xff & chr23 : 0x7f & chr23) | (bank << 7));
- SetVROM_1K_Bank(3, ((bank == 6) ? 0xff & (chr23 + 1) : 0x7f & (chr23 + 1)) | (bank << 7));
- SetVROM_1K_Bank(4, ((bank == 6) ? 0xff & chr4 : 0x7f & chr4) | (bank << 7));
- SetVROM_1K_Bank(5, ((bank == 6) ? 0xff & chr5 : 0x7f & chr5) | (bank << 7));
- SetVROM_1K_Bank(6, ((bank == 6) ? 0xff & chr6 : 0x7f & chr6) | (bank << 7));
- SetVROM_1K_Bank(7, ((bank == 6) ? 0xff & chr7 : 0x7f & chr7) | (bank << 7));
- }
- }
- }
+ void SetBank_PPU()
+ {
+ if (VROM_1K_SIZE != 0)
+ {
+ if ((reg[0] & 0x80) != 0)
+ {
+ SetVROM_1K_Bank(0, ((bank == 6) ? 0xff & chr4 : 0x7f & chr4) | (bank << 7));
+ SetVROM_1K_Bank(1, ((bank == 6) ? 0xff & chr5 : 0x7f & chr5) | (bank << 7));
+ SetVROM_1K_Bank(2, ((bank == 6) ? 0xff & chr6 : 0x7f & chr6) | (bank << 7));
+ SetVROM_1K_Bank(3, ((bank == 6) ? 0xff & chr7 : 0x7f & chr7) | (bank << 7));
+ SetVROM_1K_Bank(4, ((bank == 6) ? 0xff & chr01 : 0x7f & chr01) | (bank << 7));
+ SetVROM_1K_Bank(5, ((bank == 6) ? 0xff & (chr01 + 1) : 0x7f & (chr01 + 1)) | (bank << 7));
+ SetVROM_1K_Bank(6, ((bank == 6) ? 0xff & chr23 : 0x7f & chr23) | (bank << 7));
+ SetVROM_1K_Bank(7, ((bank == 6) ? 0xff & (chr23 + 1) : 0x7f & (chr23 + 1)) | (bank << 7));
+ }
+ else
+ {
+ SetVROM_1K_Bank(0, ((bank == 6) ? 0xff & chr01 : 0x7f & chr01) | (bank << 7));
+ SetVROM_1K_Bank(1, ((bank == 6) ? 0xff & (chr01 + 1) : 0x7f & (chr01 + 1)) | (bank << 7));
+ SetVROM_1K_Bank(2, ((bank == 6) ? 0xff & chr23 : 0x7f & chr23) | (bank << 7));
+ SetVROM_1K_Bank(3, ((bank == 6) ? 0xff & (chr23 + 1) : 0x7f & (chr23 + 1)) | (bank << 7));
+ SetVROM_1K_Bank(4, ((bank == 6) ? 0xff & chr4 : 0x7f & chr4) | (bank << 7));
+ SetVROM_1K_Bank(5, ((bank == 6) ? 0xff & chr5 : 0x7f & chr5) | (bank << 7));
+ SetVROM_1K_Bank(6, ((bank == 6) ? 0xff & chr6 : 0x7f & chr6) | (bank << 7));
+ SetVROM_1K_Bank(7, ((bank == 6) ? 0xff & chr7 : 0x7f & chr7) | (bank << 7));
+ }
+ }
+ }
- //void Mapper044::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- for (INT i = 0; i < 8; i++)
- {
- p[i] = reg[i];
- }
- p[8] = prg0;
- p[9] = prg1;
- p[10] = chr01;
- p[11] = chr23;
- p[12] = chr4;
- p[13] = chr5;
- p[14] = chr6;
- p[15] = chr7;
- p[16] = irq_enable;
- p[17] = irq_counter;
- p[18] = irq_latch;
- p[19] = bank;
- }
+ //void Mapper044::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ for (INT i = 0; i < 8; i++)
+ {
+ p[i] = reg[i];
+ }
+ p[8] = prg0;
+ p[9] = prg1;
+ p[10] = chr01;
+ p[11] = chr23;
+ p[12] = chr4;
+ p[13] = chr5;
+ p[14] = chr6;
+ p[15] = chr7;
+ p[16] = irq_enable;
+ p[17] = irq_counter;
+ p[18] = irq_latch;
+ p[19] = bank;
+ }
- //void Mapper044::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- for (INT i = 0; i < 8; i++)
- {
- reg[i] = p[i];
- }
- prg0 = p[8];
- prg1 = p[9];
- chr01 = p[10];
- chr23 = p[11];
- chr4 = p[12];
- chr5 = p[13];
- chr6 = p[14];
- chr7 = p[15];
- irq_enable = p[16];
- irq_counter = p[17];
- irq_latch = p[18];
- bank = p[19];
- }
+ //void Mapper044::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ for (INT i = 0; i < 8; i++)
+ {
+ reg[i] = p[i];
+ }
+ prg0 = p[8];
+ prg1 = p[9];
+ chr01 = p[10];
+ chr23 = p[11];
+ chr4 = p[12];
+ chr5 = p[13];
+ chr6 = p[14];
+ chr7 = p[15];
+ irq_enable = p[16];
+ irq_counter = p[17];
+ irq_latch = p[18];
+ bank = p[19];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper045.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper045.cs
index 8e8a1361..16ea4d10 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper045.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper045.cs
@@ -1,387 +1,387 @@
//////////////////////////////////////////////////////////////////////////
// Mapper045 1000000-in-1 //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper045 : Mapper
- {
- BYTE[] reg = new byte[8];
- BYTE patch;
- BYTE prg0, prg1, prg2, prg3;
- BYTE chr0, chr1, chr2, chr3, chr4, chr5, chr6, chr7;
- BYTE[] p = new byte[4];
- INT[] c = new int[8];
- BYTE irq_enable;
- BYTE irq_counter;
- BYTE irq_latch;
- BYTE irq_latched;
- BYTE irq_reset;
- public Mapper045(NES parent) : base(parent)
- {
- }
+ public class Mapper045 : Mapper
+ {
+ BYTE[] reg = new byte[8];
+ BYTE patch;
+ BYTE prg0, prg1, prg2, prg3;
+ BYTE chr0, chr1, chr2, chr3, chr4, chr5, chr6, chr7;
+ BYTE[] p = new byte[4];
+ INT[] c = new int[8];
+ BYTE irq_enable;
+ BYTE irq_counter;
+ BYTE irq_latch;
+ BYTE irq_latched;
+ BYTE irq_reset;
+ public Mapper045(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- patch = 0;
- for (INT i = 0; i < 8; i++)
- {
- reg[i] = 0;
- }
+ public override void Reset()
+ {
+ patch = 0;
+ for (INT i = 0; i < 8; i++)
+ {
+ reg[i] = 0;
+ }
- prg0 = 0;
- prg1 = 1;
- prg2 = (byte)(PROM_8K_SIZE - 2);
- prg3 = (byte)(PROM_8K_SIZE - 1);
+ prg0 = 0;
+ prg1 = 1;
+ prg2 = (byte)(PROM_8K_SIZE - 2);
+ prg3 = (byte)(PROM_8K_SIZE - 1);
- uint crc = nes.rom.GetPROM_CRC();
- if (crc == 0x58bcacf6 // Kunio 8-in-1 (Pirate Cart)
- || crc == 0x9103cfd6 // HIK 7-in-1 (Pirate Cart)
- || crc == 0xc082e6d3)
- { // Super 8-in-1 (Pirate Cart)
- patch = 1;
- prg2 = 62;
- prg3 = 63;
- }
- if (crc == 0xe0dd259d)
- { // Super 3-in-1 (Pirate Cart)
- patch = 2;
- }
- SetPROM_32K_Bank(prg0, prg1, prg2, prg3);
- p[0] = prg0;
- p[1] = prg1;
- p[2] = prg2;
- p[3] = prg3;
+ uint crc = nes.rom.GetPROM_CRC();
+ if (crc == 0x58bcacf6 // Kunio 8-in-1 (Pirate Cart)
+ || crc == 0x9103cfd6 // HIK 7-in-1 (Pirate Cart)
+ || crc == 0xc082e6d3)
+ { // Super 8-in-1 (Pirate Cart)
+ patch = 1;
+ prg2 = 62;
+ prg3 = 63;
+ }
+ if (crc == 0xe0dd259d)
+ { // Super 3-in-1 (Pirate Cart)
+ patch = 2;
+ }
+ SetPROM_32K_Bank(prg0, prg1, prg2, prg3);
+ p[0] = prg0;
+ p[1] = prg1;
+ p[2] = prg2;
+ p[3] = prg3;
- SetVROM_8K_Bank(0);
+ SetVROM_8K_Bank(0);
- // chr0 = c[0] = 0;
- // chr1 = c[1] = 0
- // chr2 = c[2] = 0;
- // chr3 = c[3] = 0;
- // chr4 = c[4] = 0;
- // chr5 = c[5] = 0;
- // chr6 = c[6] = 0;
- // chr7 = c[7] = 0;
+ // chr0 = c[0] = 0;
+ // chr1 = c[1] = 0
+ // chr2 = c[2] = 0;
+ // chr3 = c[3] = 0;
+ // chr4 = c[4] = 0;
+ // chr5 = c[5] = 0;
+ // chr6 = c[6] = 0;
+ // chr7 = c[7] = 0;
- c[0] = chr0 = 0;
- c[1] = chr1 = 1;
- c[2] = chr2 = 2;
- c[3] = chr3 = 3;
- c[4] = chr4 = 4;
- c[5] = chr5 = 5;
- c[6] = chr6 = 6;
- c[7] = chr7 = 7;
+ c[0] = chr0 = 0;
+ c[1] = chr1 = 1;
+ c[2] = chr2 = 2;
+ c[3] = chr3 = 3;
+ c[4] = chr4 = 4;
+ c[5] = chr5 = 5;
+ c[6] = chr6 = 6;
+ c[7] = chr7 = 7;
- irq_enable = 0;
- irq_counter = 0;
- irq_latch = 0;
- irq_latched = 0;
- irq_reset = 0;
- }
+ irq_enable = 0;
+ irq_counter = 0;
+ irq_latch = 0;
+ irq_latched = 0;
+ irq_reset = 0;
+ }
- //void Mapper045::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- // if( addr == 0x6000 ) {
- // if( addr == 0x6000 && !(reg[3]&0x40) ) {
- if ((reg[3] & 0x40) == 0)
- {
- reg[reg[5]] = data;
- reg[5] = (byte)((reg[5] + 1) & 0x03);
+ //void Mapper045::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ // if( addr == 0x6000 ) {
+ // if( addr == 0x6000 && !(reg[3]&0x40) ) {
+ if ((reg[3] & 0x40) == 0)
+ {
+ reg[reg[5]] = data;
+ reg[5] = (byte)((reg[5] + 1) & 0x03);
- SetBank_CPU_4(prg0);
- SetBank_CPU_5(prg1);
- SetBank_CPU_6(prg2);
- SetBank_CPU_7(prg3);
- SetBank_PPU();
- }
- }
+ SetBank_CPU_4(prg0);
+ SetBank_CPU_5(prg1);
+ SetBank_CPU_6(prg2);
+ SetBank_CPU_7(prg3);
+ SetBank_PPU();
+ }
+ }
- //void Mapper045::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr & 0xE001)
- {
- case 0x8000:
- if ((data & 0x40) != (reg[6] & 0x40))
- {
- BYTE swp;
- swp = prg0; prg0 = prg2; prg2 = swp;
- swp = p[0]; p[0] = p[2]; p[2] = swp;
- SetBank_CPU_4(p[0]);
- SetBank_CPU_5(p[1]);
- }
- if (VROM_1K_SIZE != 0)
- {
- if ((data & 0x80) != (reg[6] & 0x80))
- {
- INT swp;
- swp = chr4; chr4 = chr0; chr0 = (byte)swp;
- swp = chr5; chr5 = chr1; chr1 = (byte)swp;
- swp = chr6; chr6 = chr2; chr2 = (byte)swp;
- swp = chr7; chr7 = chr3; chr3 = (byte)swp;
- swp = c[4]; c[4] = c[0]; c[0] = swp;
- swp = c[5]; c[5] = c[1]; c[1] = swp;
- swp = c[6]; c[6] = c[2]; c[2] = swp;
- swp = c[7]; c[7] = c[3]; c[3] = swp;
- SetVROM_8K_Bank(c[0], c[1], c[2], c[3], c[4], c[5], c[6], c[7]);
- }
- }
- reg[6] = data;
- break;
- case 0x8001:
- switch (reg[6] & 0x07)
- {
- case 0x00:
- chr0 = (byte)((data & 0xFE) + 0);
- chr1 = (byte)((data & 0xFE) + 1);
- SetBank_PPU();
- break;
- case 0x01:
- chr2 = (byte)((data & 0xFE) + 0);
- chr3 = (byte)((data & 0xFE) + 1);
- SetBank_PPU();
- break;
- case 0x02:
- chr4 = data;
- SetBank_PPU();
- break;
- case 0x03:
- chr5 = data;
- SetBank_PPU();
- break;
- case 0x04:
- chr6 = data;
- SetBank_PPU();
- break;
- case 0x05:
- chr7 = data;
- SetBank_PPU();
- break;
- case 0x06:
- if ((reg[6] & 0x40) != 0)
- {
- prg2 = (byte)(data & 0x3F);
- SetBank_CPU_6(data);
- }
- else
- {
- prg0 = (byte)(data & 0x3F);
- SetBank_CPU_4(data);
- }
- break;
- case 0x07:
- prg1 = (byte)(data & 0x3F);
- SetBank_CPU_5(data);
- break;
- }
- break;
- case 0xA000:
- if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
- else SetVRAM_Mirror(VRAM_VMIRROR);
- break;
- case 0xC000:
- if (patch == 2)
- {
- if (data == 0x29 || data == 0x70)
- data = 0x07;
- }
- irq_latch = data;
- irq_latched = 1;
- if (irq_reset != 0)
- {
- irq_counter = data;
- irq_latched = 0;
- }
- // irq_counter = data;
- break;
- case 0xC001:
- // irq_latch = data;
- irq_counter = irq_latch;
- break;
- case 0xE000:
- irq_enable = 0;
- irq_reset = 1;
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- case 0xE001:
- irq_enable = 1;
- if (irq_latched != 0)
- {
- irq_counter = irq_latch;
- }
- break;
- }
- }
+ //void Mapper045::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr & 0xE001)
+ {
+ case 0x8000:
+ if ((data & 0x40) != (reg[6] & 0x40))
+ {
+ BYTE swp;
+ swp = prg0; prg0 = prg2; prg2 = swp;
+ swp = p[0]; p[0] = p[2]; p[2] = swp;
+ SetBank_CPU_4(p[0]);
+ SetBank_CPU_5(p[1]);
+ }
+ if (VROM_1K_SIZE != 0)
+ {
+ if ((data & 0x80) != (reg[6] & 0x80))
+ {
+ INT swp;
+ swp = chr4; chr4 = chr0; chr0 = (byte)swp;
+ swp = chr5; chr5 = chr1; chr1 = (byte)swp;
+ swp = chr6; chr6 = chr2; chr2 = (byte)swp;
+ swp = chr7; chr7 = chr3; chr3 = (byte)swp;
+ swp = c[4]; c[4] = c[0]; c[0] = swp;
+ swp = c[5]; c[5] = c[1]; c[1] = swp;
+ swp = c[6]; c[6] = c[2]; c[2] = swp;
+ swp = c[7]; c[7] = c[3]; c[3] = swp;
+ SetVROM_8K_Bank(c[0], c[1], c[2], c[3], c[4], c[5], c[6], c[7]);
+ }
+ }
+ reg[6] = data;
+ break;
+ case 0x8001:
+ switch (reg[6] & 0x07)
+ {
+ case 0x00:
+ chr0 = (byte)((data & 0xFE) + 0);
+ chr1 = (byte)((data & 0xFE) + 1);
+ SetBank_PPU();
+ break;
+ case 0x01:
+ chr2 = (byte)((data & 0xFE) + 0);
+ chr3 = (byte)((data & 0xFE) + 1);
+ SetBank_PPU();
+ break;
+ case 0x02:
+ chr4 = data;
+ SetBank_PPU();
+ break;
+ case 0x03:
+ chr5 = data;
+ SetBank_PPU();
+ break;
+ case 0x04:
+ chr6 = data;
+ SetBank_PPU();
+ break;
+ case 0x05:
+ chr7 = data;
+ SetBank_PPU();
+ break;
+ case 0x06:
+ if ((reg[6] & 0x40) != 0)
+ {
+ prg2 = (byte)(data & 0x3F);
+ SetBank_CPU_6(data);
+ }
+ else
+ {
+ prg0 = (byte)(data & 0x3F);
+ SetBank_CPU_4(data);
+ }
+ break;
+ case 0x07:
+ prg1 = (byte)(data & 0x3F);
+ SetBank_CPU_5(data);
+ break;
+ }
+ break;
+ case 0xA000:
+ if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
+ else SetVRAM_Mirror(VRAM_VMIRROR);
+ break;
+ case 0xC000:
+ if (patch == 2)
+ {
+ if (data == 0x29 || data == 0x70)
+ data = 0x07;
+ }
+ irq_latch = data;
+ irq_latched = 1;
+ if (irq_reset != 0)
+ {
+ irq_counter = data;
+ irq_latched = 0;
+ }
+ // irq_counter = data;
+ break;
+ case 0xC001:
+ // irq_latch = data;
+ irq_counter = irq_latch;
+ break;
+ case 0xE000:
+ irq_enable = 0;
+ irq_reset = 1;
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ case 0xE001:
+ irq_enable = 1;
+ if (irq_latched != 0)
+ {
+ irq_counter = irq_latch;
+ }
+ break;
+ }
+ }
- //void Mapper045::HSync(INT scanline)
- public override void HSync(int scanline)
- {
- irq_reset = 0;
- if ((scanline >= 0 && scanline <= 239) && nes.ppu.IsDispON())
- {
- if (irq_counter != 0)
- {
- irq_counter--;
- if (irq_counter == 0)
- {
- if (irq_enable != 0)
- {
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- }
- }
- }
- }
+ //void Mapper045::HSync(INT scanline)
+ public override void HSync(int scanline)
+ {
+ irq_reset = 0;
+ if ((scanline >= 0 && scanline <= 239) && nes.ppu.IsDispON())
+ {
+ if (irq_counter != 0)
+ {
+ irq_counter--;
+ if (irq_counter == 0)
+ {
+ if (irq_enable != 0)
+ {
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ }
+ }
+ }
+ }
- void SetBank_CPU_4(INT data)
- {
- data &= (reg[3] & 0x3F) ^ 0xFF;
- data &= 0x3F;
- data |= reg[1];
- SetPROM_8K_Bank(4, data);
- p[0] = (byte)data;
- }
+ void SetBank_CPU_4(INT data)
+ {
+ data &= (reg[3] & 0x3F) ^ 0xFF;
+ data &= 0x3F;
+ data |= reg[1];
+ SetPROM_8K_Bank(4, data);
+ p[0] = (byte)data;
+ }
- void SetBank_CPU_5(INT data)
- {
- data &= (reg[3] & 0x3F) ^ 0xFF;
- data &= 0x3F;
- data |= reg[1];
- SetPROM_8K_Bank(5, data);
- p[1] = (byte)data;
- }
+ void SetBank_CPU_5(INT data)
+ {
+ data &= (reg[3] & 0x3F) ^ 0xFF;
+ data &= 0x3F;
+ data |= reg[1];
+ SetPROM_8K_Bank(5, data);
+ p[1] = (byte)data;
+ }
- void SetBank_CPU_6(INT data)
- {
- data &= (reg[3] & 0x3F) ^ 0xFF;
- data &= 0x3F;
- data |= reg[1];
- SetPROM_8K_Bank(6, data);
- p[2] = (byte)data;
- }
+ void SetBank_CPU_6(INT data)
+ {
+ data &= (reg[3] & 0x3F) ^ 0xFF;
+ data &= 0x3F;
+ data |= reg[1];
+ SetPROM_8K_Bank(6, data);
+ p[2] = (byte)data;
+ }
- void SetBank_CPU_7(INT data)
- {
- data &= (reg[3] & 0x3F) ^ 0xFF;
- data &= 0x3F;
- data |= reg[1];
- SetPROM_8K_Bank(7, data);
- p[3] = (byte)data;
- }
+ void SetBank_CPU_7(INT data)
+ {
+ data &= (reg[3] & 0x3F) ^ 0xFF;
+ data &= 0x3F;
+ data |= reg[1];
+ SetPROM_8K_Bank(7, data);
+ p[3] = (byte)data;
+ }
- void SetBank_PPU()
- {
- BYTE[] table = new byte[] {
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF
- };
+ void SetBank_PPU()
+ {
+ BYTE[] table = new byte[] {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF
+ };
- c[0] = chr0;
- c[1] = chr1;
- c[2] = chr2;
- c[3] = chr3;
- c[4] = chr4;
- c[5] = chr5;
- c[6] = chr6;
- c[7] = chr7;
+ c[0] = chr0;
+ c[1] = chr1;
+ c[2] = chr2;
+ c[3] = chr3;
+ c[4] = chr4;
+ c[5] = chr5;
+ c[6] = chr6;
+ c[7] = chr7;
- for (INT i = 0; i < 8; i++)
- {
- c[i] &= table[reg[2] & 0x0F];
- c[i] |= reg[0] & ((patch != 1) ? 0xFF : 0xC0);
- c[i] += (reg[2] & ((patch != 1) ? 0x10 : 0x30)) << 4;
- }
+ for (INT i = 0; i < 8; i++)
+ {
+ c[i] &= table[reg[2] & 0x0F];
+ c[i] |= reg[0] & ((patch != 1) ? 0xFF : 0xC0);
+ c[i] += (reg[2] & ((patch != 1) ? 0x10 : 0x30)) << 4;
+ }
- if ((reg[6] & 0x80) != 0)
- {
- SetVROM_8K_Bank(c[4], c[5], c[6], c[7], c[0], c[1], c[2], c[3]);
- }
- else
- {
- SetVROM_8K_Bank(c[0], c[1], c[2], c[3], c[4], c[5], c[6], c[7]);
- }
- }
+ if ((reg[6] & 0x80) != 0)
+ {
+ SetVROM_8K_Bank(c[4], c[5], c[6], c[7], c[0], c[1], c[2], c[3]);
+ }
+ else
+ {
+ SetVROM_8K_Bank(c[0], c[1], c[2], c[3], c[4], c[5], c[6], c[7]);
+ }
+ }
- //void Mapper045::SaveState(LPBYTE ps)
- public override void SaveState(byte[] p)
- {
- //INT i;
- //for (i = 0; i < 8; i++)
- //{
- // ps[i] = reg[i];
- //}
- //for (i = 0; i < 4; i++)
- //{
- // ps[i + 8] = p[i];
- //}
- //for (i = 0; i < 8; i++)
- //{
- // *(INT*)&ps[i * 4 + 64] = c[i];
- //}
- //ps[20] = prg0;
- //ps[21] = prg1;
- //ps[22] = prg2;
- //ps[23] = prg3;
- //ps[24] = chr0;
- //ps[25] = chr1;
- //ps[26] = chr2;
- //ps[27] = chr3;
- //ps[28] = chr4;
- //ps[29] = chr5;
- //ps[30] = chr6;
- //ps[31] = chr7;
- //ps[32] = irq_enable;
- //ps[33] = irq_counter;
- //ps[34] = irq_latch;
- }
+ //void Mapper045::SaveState(LPBYTE ps)
+ public override void SaveState(byte[] p)
+ {
+ //INT i;
+ //for (i = 0; i < 8; i++)
+ //{
+ // ps[i] = reg[i];
+ //}
+ //for (i = 0; i < 4; i++)
+ //{
+ // ps[i + 8] = p[i];
+ //}
+ //for (i = 0; i < 8; i++)
+ //{
+ // *(INT*)&ps[i * 4 + 64] = c[i];
+ //}
+ //ps[20] = prg0;
+ //ps[21] = prg1;
+ //ps[22] = prg2;
+ //ps[23] = prg3;
+ //ps[24] = chr0;
+ //ps[25] = chr1;
+ //ps[26] = chr2;
+ //ps[27] = chr3;
+ //ps[28] = chr4;
+ //ps[29] = chr5;
+ //ps[30] = chr6;
+ //ps[31] = chr7;
+ //ps[32] = irq_enable;
+ //ps[33] = irq_counter;
+ //ps[34] = irq_latch;
+ }
- //void Mapper045::LoadState(LPBYTE ps)
- public override void LoadState(byte[] p)
- {
- //INT i;
- //for (i = 0; i < 8; i++)
- //{
- // reg[i] = ps[i];
- //}
- //for (i = 0; i < 4; i++)
- //{
- // p[i] = ps[i + 8];
- //}
- //for (i = 0; i < 8; i++)
- //{
- // c[i] = *(INT*)&ps[i * 4 + 64];
- //}
- //prg0 = ps[20];
- //prg1 = ps[21];
- //prg2 = ps[22];
- //prg3 = ps[23];
- //chr0 = ps[24];
- //chr1 = ps[25];
- //chr2 = ps[26];
- //chr3 = ps[27];
- //chr4 = ps[28];
- //chr5 = ps[29];
- //chr6 = ps[30];
- //chr7 = ps[31];
- //irq_enable = ps[32];
- //irq_counter = ps[33];
- //irq_latch = ps[34];
- }
+ //void Mapper045::LoadState(LPBYTE ps)
+ public override void LoadState(byte[] p)
+ {
+ //INT i;
+ //for (i = 0; i < 8; i++)
+ //{
+ // reg[i] = ps[i];
+ //}
+ //for (i = 0; i < 4; i++)
+ //{
+ // p[i] = ps[i + 8];
+ //}
+ //for (i = 0; i < 8; i++)
+ //{
+ // c[i] = *(INT*)&ps[i * 4 + 64];
+ //}
+ //prg0 = ps[20];
+ //prg1 = ps[21];
+ //prg2 = ps[22];
+ //prg3 = ps[23];
+ //chr0 = ps[24];
+ //chr1 = ps[25];
+ //chr2 = ps[26];
+ //chr3 = ps[27];
+ //chr4 = ps[28];
+ //chr5 = ps[29];
+ //chr6 = ps[30];
+ //chr7 = ps[31];
+ //irq_enable = ps[32];
+ //irq_counter = ps[33];
+ //irq_latch = ps[34];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper046.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper046.cs
index fdf5ee73..a649e4d6 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper046.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper046.cs
@@ -2,87 +2,84 @@
// Mapper046 Rumble Station //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper046 : Mapper
- {
- int[] reg = new int[4];
- public Mapper046(NES parent) : base(parent)
- {
- }
+ public class Mapper046 : Mapper
+ {
+ int[] reg = new int[4];
+ public Mapper046(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- reg[0] = 0;
- reg[1] = 0;
- reg[2] = 0;
- reg[3] = 0;
+ public override void Reset()
+ {
+ reg[0] = 0;
+ reg[1] = 0;
+ reg[2] = 0;
+ reg[3] = 0;
- SetBank();
- SetVRAM_Mirror(VRAM_VMIRROR);
- }
+ SetBank();
+ SetVRAM_Mirror(VRAM_VMIRROR);
+ }
- //void Mapper046::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- reg[0] = data & 0x0F;
- reg[1] = (data & 0xF0) >> 4;
- SetBank();
- }
+ //void Mapper046::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ reg[0] = data & 0x0F;
+ reg[1] = (data & 0xF0) >> 4;
+ SetBank();
+ }
- //void Mapper046::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- reg[2] = data & 0x01;
- reg[3] = (data & 0x70) >> 4;
- SetBank();
- }
+ //void Mapper046::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ reg[2] = data & 0x01;
+ reg[3] = (data & 0x70) >> 4;
+ SetBank();
+ }
- void SetBank()
- {
- SetPROM_8K_Bank(4, reg[0] * 8 + reg[2] * 4 + 0);
- SetPROM_8K_Bank(5, reg[0] * 8 + reg[2] * 4 + 1);
- SetPROM_8K_Bank(6, reg[0] * 8 + reg[2] * 4 + 2);
- SetPROM_8K_Bank(7, reg[0] * 8 + reg[2] * 4 + 3);
+ void SetBank()
+ {
+ SetPROM_8K_Bank(4, reg[0] * 8 + reg[2] * 4 + 0);
+ SetPROM_8K_Bank(5, reg[0] * 8 + reg[2] * 4 + 1);
+ SetPROM_8K_Bank(6, reg[0] * 8 + reg[2] * 4 + 2);
+ SetPROM_8K_Bank(7, reg[0] * 8 + reg[2] * 4 + 3);
- SetVROM_1K_Bank(0, reg[1] * 64 + reg[3] * 8 + 0);
- SetVROM_1K_Bank(1, reg[1] * 64 + reg[3] * 8 + 1);
- SetVROM_1K_Bank(2, reg[1] * 64 + reg[3] * 8 + 2);
- SetVROM_1K_Bank(3, reg[1] * 64 + reg[3] * 8 + 3);
- SetVROM_1K_Bank(4, reg[1] * 64 + reg[3] * 8 + 4);
- SetVROM_1K_Bank(5, reg[1] * 64 + reg[3] * 8 + 5);
- SetVROM_1K_Bank(6, reg[1] * 64 + reg[3] * 8 + 6);
- SetVROM_1K_Bank(7, reg[1] * 64 + reg[3] * 8 + 7);
- }
+ SetVROM_1K_Bank(0, reg[1] * 64 + reg[3] * 8 + 0);
+ SetVROM_1K_Bank(1, reg[1] * 64 + reg[3] * 8 + 1);
+ SetVROM_1K_Bank(2, reg[1] * 64 + reg[3] * 8 + 2);
+ SetVROM_1K_Bank(3, reg[1] * 64 + reg[3] * 8 + 3);
+ SetVROM_1K_Bank(4, reg[1] * 64 + reg[3] * 8 + 4);
+ SetVROM_1K_Bank(5, reg[1] * 64 + reg[3] * 8 + 5);
+ SetVROM_1K_Bank(6, reg[1] * 64 + reg[3] * 8 + 6);
+ SetVROM_1K_Bank(7, reg[1] * 64 + reg[3] * 8 + 7);
+ }
- //void Mapper046::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- p[0] = (byte)reg[0];
- p[1] = (byte)reg[1];
- p[2] = (byte)reg[2];
- p[3] = (byte)reg[3];
- }
+ //void Mapper046::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ p[0] = (byte)reg[0];
+ p[1] = (byte)reg[1];
+ p[2] = (byte)reg[2];
+ p[3] = (byte)reg[3];
+ }
- //void Mapper046::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- reg[0] = p[0];
- reg[1] = p[1];
- reg[2] = p[2];
- reg[3] = p[3];
- }
+ //void Mapper046::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ reg[0] = p[0];
+ reg[1] = p[1];
+ reg[2] = p[2];
+ reg[3] = p[3];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper047.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper047.cs
index ac03477e..365fe143 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper047.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper047.cs
@@ -1,275 +1,274 @@
//////////////////////////////////////////////////////////////////////////
// Mapper047 NES-QJ //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper047 : Mapper
- {
- BYTE[] reg = new byte[8];
- BYTE patch;
- BYTE bank;
- BYTE prg0, prg1;
- BYTE chr01, chr23, chr4, chr5, chr6, chr7;
- BYTE irq_enable;
- BYTE irq_counter;
- BYTE irq_latch;
- public Mapper047(NES parent) : base(parent)
- {
- }
+ public class Mapper047 : Mapper
+ {
+ BYTE[] reg = new byte[8];
+ BYTE patch;
+ BYTE bank;
+ BYTE prg0, prg1;
+ BYTE chr01, chr23, chr4, chr5, chr6, chr7;
+ BYTE irq_enable;
+ BYTE irq_counter;
+ BYTE irq_latch;
+ public Mapper047(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- patch = 0;
+ public override void Reset()
+ {
+ patch = 0;
- if (nes.rom.GetPROM_CRC() == 0x7eef434c)
- {
- patch = 1;
- }
+ if (nes.rom.GetPROM_CRC() == 0x7eef434c)
+ {
+ patch = 1;
+ }
- for (INT i = 0; i < 8; i++)
- {
- reg[i] = 0;
- }
+ for (INT i = 0; i < 8; i++)
+ {
+ reg[i] = 0;
+ }
- bank = 0;
- prg0 = 0;
- prg1 = 1;
+ bank = 0;
+ prg0 = 0;
+ prg1 = 1;
- // set VROM banks
- if (VROM_1K_SIZE != 0)
- {
- chr01 = 0;
- chr23 = 2;
- chr4 = 4;
- chr5 = 5;
- chr6 = 6;
- chr7 = 7;
- }
- else
- {
- chr01 = chr23 = chr4 = chr5 = chr6 = chr7 = 0;
- }
+ // set VROM banks
+ if (VROM_1K_SIZE != 0)
+ {
+ chr01 = 0;
+ chr23 = 2;
+ chr4 = 4;
+ chr5 = 5;
+ chr6 = 6;
+ chr7 = 7;
+ }
+ else
+ {
+ chr01 = chr23 = chr4 = chr5 = chr6 = chr7 = 0;
+ }
- SetBank_CPU();
- SetBank_PPU();
+ SetBank_CPU();
+ SetBank_PPU();
- irq_enable = 0;
- irq_counter = 0;
- irq_latch = 0;
- }
+ irq_enable = 0;
+ irq_counter = 0;
+ irq_latch = 0;
+ }
- //void Mapper047::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- if (addr == 0x6000)
- {
- if (patch != 0)
- {
- bank = (byte)((data & 0x06) >> 1);
- }
- else
- {
- bank = (byte)((data & 0x01) << 1);
- }
- SetBank_CPU();
- SetBank_PPU();
- }
- }
+ //void Mapper047::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ if (addr == 0x6000)
+ {
+ if (patch != 0)
+ {
+ bank = (byte)((data & 0x06) >> 1);
+ }
+ else
+ {
+ bank = (byte)((data & 0x01) << 1);
+ }
+ SetBank_CPU();
+ SetBank_PPU();
+ }
+ }
- //void Mapper047::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr & 0xE001)
- {
- case 0x8000:
- reg[0] = data;
- SetBank_CPU();
- SetBank_PPU();
- break;
- case 0x8001:
- reg[1] = data;
- switch (reg[0] & 0x07)
- {
- case 0x00:
- chr01 = (byte)(data & 0xFE);
- SetBank_PPU();
- break;
- case 0x01:
- chr23 = (byte)(data & 0xFE);
- SetBank_PPU();
- break;
- case 0x02:
- chr4 = data;
- SetBank_PPU();
- break;
- case 0x03:
- chr5 = data;
- SetBank_PPU();
- break;
- case 0x04:
- chr6 = data;
- SetBank_PPU();
- break;
- case 0x05:
- chr7 = data;
- SetBank_PPU();
- break;
- case 0x06:
- prg0 = data;
- SetBank_CPU();
- break;
- case 0x07:
- prg1 = data;
- SetBank_CPU();
- break;
- }
- break;
- case 0xA000:
- reg[2] = data;
- if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
- else SetVRAM_Mirror(VRAM_VMIRROR);
- break;
- case 0xA001:
- reg[3] = data;
- break;
- case 0xC000:
- reg[4] = data;
- irq_counter = data;
- break;
- case 0xC001:
- reg[5] = data;
- irq_latch = data;
- break;
- case 0xE000:
- reg[6] = data;
- irq_enable = 0;
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- case 0xE001:
- reg[7] = data;
- irq_enable = 1;
- break;
- }
- }
+ //void Mapper047::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr & 0xE001)
+ {
+ case 0x8000:
+ reg[0] = data;
+ SetBank_CPU();
+ SetBank_PPU();
+ break;
+ case 0x8001:
+ reg[1] = data;
+ switch (reg[0] & 0x07)
+ {
+ case 0x00:
+ chr01 = (byte)(data & 0xFE);
+ SetBank_PPU();
+ break;
+ case 0x01:
+ chr23 = (byte)(data & 0xFE);
+ SetBank_PPU();
+ break;
+ case 0x02:
+ chr4 = data;
+ SetBank_PPU();
+ break;
+ case 0x03:
+ chr5 = data;
+ SetBank_PPU();
+ break;
+ case 0x04:
+ chr6 = data;
+ SetBank_PPU();
+ break;
+ case 0x05:
+ chr7 = data;
+ SetBank_PPU();
+ break;
+ case 0x06:
+ prg0 = data;
+ SetBank_CPU();
+ break;
+ case 0x07:
+ prg1 = data;
+ SetBank_CPU();
+ break;
+ }
+ break;
+ case 0xA000:
+ reg[2] = data;
+ if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
+ else SetVRAM_Mirror(VRAM_VMIRROR);
+ break;
+ case 0xA001:
+ reg[3] = data;
+ break;
+ case 0xC000:
+ reg[4] = data;
+ irq_counter = data;
+ break;
+ case 0xC001:
+ reg[5] = data;
+ irq_latch = data;
+ break;
+ case 0xE000:
+ reg[6] = data;
+ irq_enable = 0;
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ case 0xE001:
+ reg[7] = data;
+ irq_enable = 1;
+ break;
+ }
+ }
- //void Mapper047::HSync(INT scanline)
- public override void HSync(int scanline)
- {
- if ((scanline >= 0 && scanline <= 239))
- {
- if (nes.ppu.IsDispON())
- {
- if (irq_enable != 0)
- {
- if ((--irq_counter) == 0)
- {
- irq_counter = irq_latch;
- // nes.cpu.IRQ();
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- }
- }
- }
- }
+ //void Mapper047::HSync(INT scanline)
+ public override void HSync(int scanline)
+ {
+ if ((scanline >= 0 && scanline <= 239))
+ {
+ if (nes.ppu.IsDispON())
+ {
+ if (irq_enable != 0)
+ {
+ if ((--irq_counter) == 0)
+ {
+ irq_counter = irq_latch;
+ // nes.cpu.IRQ();
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ }
+ }
+ }
+ }
- void SetBank_CPU()
- {
- if ((reg[0] & 0x40) != 0)
- {
- SetPROM_8K_Bank(4, bank * 8 + ((patch != 0 && bank != 2) ? 6 : 14));
- SetPROM_8K_Bank(5, bank * 8 + prg1);
- SetPROM_8K_Bank(6, bank * 8 + prg0);
- SetPROM_8K_Bank(7, bank * 8 + ((patch != 0 && bank != 2) ? 7 : 15));
- }
- else
- {
- SetPROM_8K_Bank(4, bank * 8 + prg0);
- SetPROM_8K_Bank(5, bank * 8 + prg1);
- SetPROM_8K_Bank(6, bank * 8 + ((patch != 0 && bank != 2) ? 6 : 14));
- SetPROM_8K_Bank(7, bank * 8 + ((patch != 0 && bank != 2) ? 7 : 15));
- }
- }
+ void SetBank_CPU()
+ {
+ if ((reg[0] & 0x40) != 0)
+ {
+ SetPROM_8K_Bank(4, bank * 8 + ((patch != 0 && bank != 2) ? 6 : 14));
+ SetPROM_8K_Bank(5, bank * 8 + prg1);
+ SetPROM_8K_Bank(6, bank * 8 + prg0);
+ SetPROM_8K_Bank(7, bank * 8 + ((patch != 0 && bank != 2) ? 7 : 15));
+ }
+ else
+ {
+ SetPROM_8K_Bank(4, bank * 8 + prg0);
+ SetPROM_8K_Bank(5, bank * 8 + prg1);
+ SetPROM_8K_Bank(6, bank * 8 + ((patch != 0 && bank != 2) ? 6 : 14));
+ SetPROM_8K_Bank(7, bank * 8 + ((patch != 0 && bank != 2) ? 7 : 15));
+ }
+ }
- void SetBank_PPU()
- {
- if (VROM_1K_SIZE != 0)
- {
- if ((reg[0] & 0x80) != 0)
- {
- SetVROM_1K_Bank(0, (bank & 0x02) * 64 + chr4);
- SetVROM_1K_Bank(1, (bank & 0x02) * 64 + chr5);
- SetVROM_1K_Bank(2, (bank & 0x02) * 64 + chr6);
- SetVROM_1K_Bank(3, (bank & 0x02) * 64 + chr7);
- SetVROM_1K_Bank(4, (bank & 0x02) * 64 + chr01 + 0);
- SetVROM_1K_Bank(5, (bank & 0x02) * 64 + chr01 + 1);
- SetVROM_1K_Bank(6, (bank & 0x02) * 64 + chr23 + 0);
- SetVROM_1K_Bank(7, (bank & 0x02) * 64 + chr23 + 1);
- }
- else
- {
- SetVROM_1K_Bank(0, (bank & 0x02) * 64 + chr01 + 0);
- SetVROM_1K_Bank(1, (bank & 0x02) * 64 + chr01 + 1);
- SetVROM_1K_Bank(2, (bank & 0x02) * 64 + chr23 + 0);
- SetVROM_1K_Bank(3, (bank & 0x02) * 64 + chr23 + 1);
- SetVROM_1K_Bank(4, (bank & 0x02) * 64 + chr4);
- SetVROM_1K_Bank(5, (bank & 0x02) * 64 + chr5);
- SetVROM_1K_Bank(6, (bank & 0x02) * 64 + chr6);
- SetVROM_1K_Bank(7, (bank & 0x02) * 64 + chr7);
- }
- }
- }
+ void SetBank_PPU()
+ {
+ if (VROM_1K_SIZE != 0)
+ {
+ if ((reg[0] & 0x80) != 0)
+ {
+ SetVROM_1K_Bank(0, (bank & 0x02) * 64 + chr4);
+ SetVROM_1K_Bank(1, (bank & 0x02) * 64 + chr5);
+ SetVROM_1K_Bank(2, (bank & 0x02) * 64 + chr6);
+ SetVROM_1K_Bank(3, (bank & 0x02) * 64 + chr7);
+ SetVROM_1K_Bank(4, (bank & 0x02) * 64 + chr01 + 0);
+ SetVROM_1K_Bank(5, (bank & 0x02) * 64 + chr01 + 1);
+ SetVROM_1K_Bank(6, (bank & 0x02) * 64 + chr23 + 0);
+ SetVROM_1K_Bank(7, (bank & 0x02) * 64 + chr23 + 1);
+ }
+ else
+ {
+ SetVROM_1K_Bank(0, (bank & 0x02) * 64 + chr01 + 0);
+ SetVROM_1K_Bank(1, (bank & 0x02) * 64 + chr01 + 1);
+ SetVROM_1K_Bank(2, (bank & 0x02) * 64 + chr23 + 0);
+ SetVROM_1K_Bank(3, (bank & 0x02) * 64 + chr23 + 1);
+ SetVROM_1K_Bank(4, (bank & 0x02) * 64 + chr4);
+ SetVROM_1K_Bank(5, (bank & 0x02) * 64 + chr5);
+ SetVROM_1K_Bank(6, (bank & 0x02) * 64 + chr6);
+ SetVROM_1K_Bank(7, (bank & 0x02) * 64 + chr7);
+ }
+ }
+ }
- //void Mapper047::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- for (INT i = 0; i < 8; i++)
- {
- p[i] = reg[i];
- }
- p[8] = prg0;
- p[9] = prg1;
- p[10] = chr01;
- p[11] = chr23;
- p[12] = chr4;
- p[13] = chr5;
- p[14] = chr6;
- p[15] = chr7;
- p[16] = irq_enable;
- p[17] = irq_counter;
- p[18] = irq_latch;
- p[19] = bank;
- }
+ //void Mapper047::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ for (INT i = 0; i < 8; i++)
+ {
+ p[i] = reg[i];
+ }
+ p[8] = prg0;
+ p[9] = prg1;
+ p[10] = chr01;
+ p[11] = chr23;
+ p[12] = chr4;
+ p[13] = chr5;
+ p[14] = chr6;
+ p[15] = chr7;
+ p[16] = irq_enable;
+ p[17] = irq_counter;
+ p[18] = irq_latch;
+ p[19] = bank;
+ }
- //void Mapper047::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- for (INT i = 0; i < 8; i++)
- {
- reg[i] = p[i];
- }
- prg0 = p[8];
- prg1 = p[9];
- chr01 = p[10];
- chr23 = p[11];
- chr4 = p[12];
- chr5 = p[13];
- chr6 = p[14];
- chr7 = p[15];
- irq_enable = p[16];
- irq_counter = p[17];
- irq_latch = p[18];
- bank = p[19];
- }
+ //void Mapper047::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ for (INT i = 0; i < 8; i++)
+ {
+ reg[i] = p[i];
+ }
+ prg0 = p[8];
+ prg1 = p[9];
+ chr01 = p[10];
+ chr23 = p[11];
+ chr4 = p[12];
+ chr5 = p[13];
+ chr6 = p[14];
+ chr7 = p[15];
+ irq_enable = p[16];
+ irq_counter = p[17];
+ irq_latch = p[18];
+ bank = p[19];
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper048.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper048.cs
index 2ac028e7..03426083 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper048.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper048.cs
@@ -1,143 +1,141 @@
//////////////////////////////////////////////////////////////////////////
// Mapper048 Taito TC190V //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper048 : Mapper
- {
- BYTE reg;
- BYTE irq_enable;
- BYTE irq_counter;
- public Mapper048(NES parent) : base(parent)
- {
- }
+ public class Mapper048 : Mapper
+ {
+ BYTE reg;
+ BYTE irq_enable;
+ BYTE irq_counter;
+ public Mapper048(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- reg = 0;
- irq_enable = 0;
- irq_counter = 0;
+ public override void Reset()
+ {
+ reg = 0;
+ irq_enable = 0;
+ irq_counter = 0;
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- SetVROM_8K_Bank(0);
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ SetVROM_8K_Bank(0);
- uint crc = nes.rom.GetPROM_CRC();
- // if( crc == 0x547e6cc1 ) { // Flintstones - The Rescue of Dino & Hoppy(J)
- // nes.SetRenderMethod( NES::POST_RENDER );
- // }
- }
+ uint crc = nes.rom.GetPROM_CRC();
+ // if( crc == 0x547e6cc1 ) { // Flintstones - The Rescue of Dino & Hoppy(J)
+ // nes.SetRenderMethod( NES::POST_RENDER );
+ // }
+ }
- //void Mapper048::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr)
- {
- case 0x8000:
- if (reg == 0)
- {
- if ((data & 0x40) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
- else SetVRAM_Mirror(VRAM_VMIRROR);
- }
- SetPROM_8K_Bank(4, data);
- break;
- case 0x8001:
- SetPROM_8K_Bank(5, data);
- break;
+ //void Mapper048::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr)
+ {
+ case 0x8000:
+ if (reg == 0)
+ {
+ if ((data & 0x40) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
+ else SetVRAM_Mirror(VRAM_VMIRROR);
+ }
+ SetPROM_8K_Bank(4, data);
+ break;
+ case 0x8001:
+ SetPROM_8K_Bank(5, data);
+ break;
- case 0x8002:
- SetVROM_2K_Bank(0, data);
- break;
- case 0x8003:
- SetVROM_2K_Bank(2, data);
- break;
- case 0xA000:
- SetVROM_1K_Bank(4, data);
- break;
- case 0xA001:
- SetVROM_1K_Bank(5, data);
- break;
- case 0xA002:
- SetVROM_1K_Bank(6, data);
- break;
- case 0xA003:
- SetVROM_1K_Bank(7, data);
- break;
+ case 0x8002:
+ SetVROM_2K_Bank(0, data);
+ break;
+ case 0x8003:
+ SetVROM_2K_Bank(2, data);
+ break;
+ case 0xA000:
+ SetVROM_1K_Bank(4, data);
+ break;
+ case 0xA001:
+ SetVROM_1K_Bank(5, data);
+ break;
+ case 0xA002:
+ SetVROM_1K_Bank(6, data);
+ break;
+ case 0xA003:
+ SetVROM_1K_Bank(7, data);
+ break;
- case 0xC000:
- irq_counter = data;
- irq_enable = 0;
- // nes.cpu.ClrIRQ( IRQ_MAPPER );
- break;
+ case 0xC000:
+ irq_counter = data;
+ irq_enable = 0;
+ // nes.cpu.ClrIRQ( IRQ_MAPPER );
+ break;
- case 0xC001:
- irq_counter = data;
- irq_enable = 1;
- // irq_enable = data & 0x01;
- // nes.cpu.ClrIRQ( IRQ_MAPPER );
- break;
+ case 0xC001:
+ irq_counter = data;
+ irq_enable = 1;
+ // irq_enable = data & 0x01;
+ // nes.cpu.ClrIRQ( IRQ_MAPPER );
+ break;
- case 0xC002:
- break;
- case 0xC003:
- break;
+ case 0xC002:
+ break;
+ case 0xC003:
+ break;
- case 0xE000:
- if ((data & 0x40) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
- else SetVRAM_Mirror(VRAM_VMIRROR);
- reg = 1;
- break;
- }
- }
+ case 0xE000:
+ if ((data & 0x40) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
+ else SetVRAM_Mirror(VRAM_VMIRROR);
+ reg = 1;
+ break;
+ }
+ }
- //void Mapper048::HSync(INT scanline)
- public override void HSync(int scanline)
- {
- if ((scanline >= 0 && scanline <= 239))
- {
- if (nes.ppu.IsDispON())
- {
- if (irq_enable != 0)
- {
- if (irq_counter == 0xFF)
- {
- // nes.cpu.IRQ_NotPending();
- // nes.cpu.SetIRQ( IRQ_MAPPER );
- nes.cpu.SetIRQ(IRQ_TRIGGER2);
- }
- irq_counter++;
- }
- }
- }
- }
+ //void Mapper048::HSync(INT scanline)
+ public override void HSync(int scanline)
+ {
+ if ((scanline >= 0 && scanline <= 239))
+ {
+ if (nes.ppu.IsDispON())
+ {
+ if (irq_enable != 0)
+ {
+ if (irq_counter == 0xFF)
+ {
+ // nes.cpu.IRQ_NotPending();
+ // nes.cpu.SetIRQ( IRQ_MAPPER );
+ nes.cpu.SetIRQ(IRQ_TRIGGER2);
+ }
+ irq_counter++;
+ }
+ }
+ }
+ }
- //void Mapper048::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- p[0] = reg;
- p[1] = irq_enable;
- p[2] = irq_counter;
- }
+ //void Mapper048::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ p[0] = reg;
+ p[1] = irq_enable;
+ p[2] = irq_counter;
+ }
- //void Mapper048::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- reg = p[0];
- irq_enable = p[1];
- irq_counter = p[2];
- }
+ //void Mapper048::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ reg = p[0];
+ irq_enable = p[1];
+ irq_counter = p[2];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper050.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper050.cs
index 1445939e..f62c2e35 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper050.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper050.cs
@@ -1,100 +1,98 @@
//////////////////////////////////////////////////////////////////////////
// Mapper050 SMB2J //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper050 : Mapper
- {
- BYTE irq_enable;
- public Mapper050(NES parent) : base(parent)
- {
- }
+ public class Mapper050 : Mapper
+ {
+ BYTE irq_enable;
+ public Mapper050(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- irq_enable = 0;
- SetPROM_8K_Bank(3, 15);
- SetPROM_8K_Bank(4, 8);
- SetPROM_8K_Bank(5, 9);
- SetPROM_8K_Bank(6, 0);
- SetPROM_8K_Bank(7, 11);
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_8K_Bank(0);
- }
- }
+ public override void Reset()
+ {
+ irq_enable = 0;
+ SetPROM_8K_Bank(3, 15);
+ SetPROM_8K_Bank(4, 8);
+ SetPROM_8K_Bank(5, 9);
+ SetPROM_8K_Bank(6, 0);
+ SetPROM_8K_Bank(7, 11);
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0);
+ }
+ }
- //void Mapper050::ExWrite(WORD addr, BYTE data)
- public override void ExWrite(ushort addr, byte data)
- {
- if ((addr & 0xE060) == 0x4020)
- {
- if ((addr & 0x0100) != 0)
- {
- irq_enable = (byte)(data & 0x01);
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- }
- else
- {
- SetPROM_8K_Bank(6, (data & 0x08) | ((data & 0x01) << 2) | ((data & 0x06) >> 1));
- }
- }
- }
+ //void Mapper050::ExWrite(WORD addr, BYTE data)
+ public override void ExWrite(ushort addr, byte data)
+ {
+ if ((addr & 0xE060) == 0x4020)
+ {
+ if ((addr & 0x0100) != 0)
+ {
+ irq_enable = (byte)(data & 0x01);
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ }
+ else
+ {
+ SetPROM_8K_Bank(6, (data & 0x08) | ((data & 0x01) << 2) | ((data & 0x06) >> 1));
+ }
+ }
+ }
- //void Mapper050::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- if ((addr & 0xE060) == 0x4020)
- {
- if ((addr & 0x0100) != 0)
- {
- irq_enable = (byte)(data & 0x01);
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- }
- else
- {
- SetPROM_8K_Bank(6, (data & 0x08) | ((data & 0x01) << 2) | ((data & 0x06) >> 1));
- }
- }
- }
+ //void Mapper050::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ if ((addr & 0xE060) == 0x4020)
+ {
+ if ((addr & 0x0100) != 0)
+ {
+ irq_enable = (byte)(data & 0x01);
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ }
+ else
+ {
+ SetPROM_8K_Bank(6, (data & 0x08) | ((data & 0x01) << 2) | ((data & 0x06) >> 1));
+ }
+ }
+ }
- //void Mapper050::HSync(INT scanline)
- public override void HSync(int scanline)
- {
- if (irq_enable != 0)
- {
- if (scanline == 21)
- {
- // nes.cpu.IRQ();
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- }
- }
+ //void Mapper050::HSync(INT scanline)
+ public override void HSync(int scanline)
+ {
+ if (irq_enable != 0)
+ {
+ if (scanline == 21)
+ {
+ // nes.cpu.IRQ();
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ }
+ }
- //void Mapper050::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- p[0] = irq_enable;
- }
+ //void Mapper050::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ p[0] = irq_enable;
+ }
- //void Mapper050::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- irq_enable = p[0];
- }
+ //void Mapper050::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ irq_enable = p[0];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper051.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper051.cs
index 5bda884d..76c13ae0 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper051.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper051.cs
@@ -2,108 +2,104 @@
// Mapper051 11-in-1 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper051 : Mapper
- {
- int mode, bank;
- public Mapper051(NES parent) : base(parent)
- {
- }
+ public class Mapper051 : Mapper
+ {
+ int mode, bank;
+ public Mapper051(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- bank = 0;
- mode = 1;
+ public override void Reset()
+ {
+ bank = 0;
+ mode = 1;
- SetBank_CPU();
- SetCRAM_8K_Bank(0);
- }
+ SetBank_CPU();
+ SetCRAM_8K_Bank(0);
+ }
- //void Mapper051::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- if (addr >= 0x6000)
- {
- mode = ((data & 0x10) >> 3) | ((data & 0x02) >> 1);
- SetBank_CPU();
- }
- }
+ //void Mapper051::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ if (addr >= 0x6000)
+ {
+ mode = ((data & 0x10) >> 3) | ((data & 0x02) >> 1);
+ SetBank_CPU();
+ }
+ }
- //void Mapper051::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- bank = (data & 0x0f) << 2;
- if (0xC000 <= addr && addr <= 0xDFFF)
- {
- mode = (mode & 0x01) | ((data & 0x10) >> 3);
- }
- SetBank_CPU();
- }
+ //void Mapper051::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ bank = (data & 0x0f) << 2;
+ if (0xC000 <= addr && addr <= 0xDFFF)
+ {
+ mode = (mode & 0x01) | ((data & 0x10) >> 3);
+ }
+ SetBank_CPU();
+ }
- void SetBank_CPU()
- {
- switch (mode)
- {
- case 0:
- SetVRAM_Mirror(VRAM_VMIRROR);
- SetPROM_8K_Bank(3, (bank | 0x2c | 3));
- SetPROM_8K_Bank(4, (bank | 0x00 | 0));
- SetPROM_8K_Bank(5, (bank | 0x00 | 1));
- SetPROM_8K_Bank(6, (bank | 0x0c | 2));
- SetPROM_8K_Bank(7, (bank | 0x0c | 3));
- break;
- case 1:
- SetVRAM_Mirror(VRAM_VMIRROR);
- SetPROM_8K_Bank(3, (bank | 0x20 | 3));
- SetPROM_8K_Bank(4, (bank | 0x00 | 0));
- SetPROM_8K_Bank(5, (bank | 0x00 | 1));
- SetPROM_8K_Bank(6, (bank | 0x00 | 2));
- SetPROM_8K_Bank(7, (bank | 0x00 | 3));
- break;
- case 2:
- SetVRAM_Mirror(VRAM_VMIRROR);
- SetPROM_8K_Bank(3, (bank | 0x2e | 3));
- SetPROM_8K_Bank(4, (bank | 0x02 | 0));
- SetPROM_8K_Bank(5, (bank | 0x02 | 1));
- SetPROM_8K_Bank(6, (bank | 0x0e | 2));
- SetPROM_8K_Bank(7, (bank | 0x0e | 3));
- break;
- case 3:
- SetVRAM_Mirror(VRAM_HMIRROR);
- SetPROM_8K_Bank(3, (bank | 0x20 | 3));
- SetPROM_8K_Bank(4, (bank | 0x00 | 0));
- SetPROM_8K_Bank(5, (bank | 0x00 | 1));
- SetPROM_8K_Bank(6, (bank | 0x00 | 2));
- SetPROM_8K_Bank(7, (bank | 0x00 | 3));
- break;
- }
- }
+ void SetBank_CPU()
+ {
+ switch (mode)
+ {
+ case 0:
+ SetVRAM_Mirror(VRAM_VMIRROR);
+ SetPROM_8K_Bank(3, (bank | 0x2c | 3));
+ SetPROM_8K_Bank(4, (bank | 0x00 | 0));
+ SetPROM_8K_Bank(5, (bank | 0x00 | 1));
+ SetPROM_8K_Bank(6, (bank | 0x0c | 2));
+ SetPROM_8K_Bank(7, (bank | 0x0c | 3));
+ break;
+ case 1:
+ SetVRAM_Mirror(VRAM_VMIRROR);
+ SetPROM_8K_Bank(3, (bank | 0x20 | 3));
+ SetPROM_8K_Bank(4, (bank | 0x00 | 0));
+ SetPROM_8K_Bank(5, (bank | 0x00 | 1));
+ SetPROM_8K_Bank(6, (bank | 0x00 | 2));
+ SetPROM_8K_Bank(7, (bank | 0x00 | 3));
+ break;
+ case 2:
+ SetVRAM_Mirror(VRAM_VMIRROR);
+ SetPROM_8K_Bank(3, (bank | 0x2e | 3));
+ SetPROM_8K_Bank(4, (bank | 0x02 | 0));
+ SetPROM_8K_Bank(5, (bank | 0x02 | 1));
+ SetPROM_8K_Bank(6, (bank | 0x0e | 2));
+ SetPROM_8K_Bank(7, (bank | 0x0e | 3));
+ break;
+ case 3:
+ SetVRAM_Mirror(VRAM_HMIRROR);
+ SetPROM_8K_Bank(3, (bank | 0x20 | 3));
+ SetPROM_8K_Bank(4, (bank | 0x00 | 0));
+ SetPROM_8K_Bank(5, (bank | 0x00 | 1));
+ SetPROM_8K_Bank(6, (bank | 0x00 | 2));
+ SetPROM_8K_Bank(7, (bank | 0x00 | 3));
+ break;
+ }
+ }
- //void Mapper051::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- p[0] = (byte)mode;
- p[1] = (byte)bank;
- }
+ //void Mapper051::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ p[0] = (byte)mode;
+ p[1] = (byte)bank;
+ }
- //void Mapper051::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- mode = p[0];
- bank = p[1];
- }
+ //void Mapper051::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ mode = p[0];
+ bank = p[1];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper057.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper057.cs
index a142d088..57ca106b 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper057.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper057.cs
@@ -2,86 +2,83 @@
// Mapper057 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper057 : Mapper
- {
+ public class Mapper057 : Mapper
+ {
- BYTE reg;
- public Mapper057(NES parent) : base(parent)
- {
- }
+ BYTE reg;
+ public Mapper057(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- SetPROM_32K_Bank(0, 1, 0, 1);
- SetVROM_8K_Bank(0);
- reg = 0;
- }
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0, 1, 0, 1);
+ SetVROM_8K_Bank(0);
+ reg = 0;
+ }
- //void Mapper057::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr)
- {
- case 0x8000:
- case 0x8001:
- case 0x8002:
- case 0x8003:
- if ((data & 0x40) != 0)
- {
- SetVROM_8K_Bank((data & 0x03) + ((reg & 0x10) >> 1) + (reg & 0x07));
- }
- break;
- case 0x8800:
- reg = data;
+ //void Mapper057::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr)
+ {
+ case 0x8000:
+ case 0x8001:
+ case 0x8002:
+ case 0x8003:
+ if ((data & 0x40) != 0)
+ {
+ SetVROM_8K_Bank((data & 0x03) + ((reg & 0x10) >> 1) + (reg & 0x07));
+ }
+ break;
+ case 0x8800:
+ reg = data;
- if ((data & 0x80) != 0)
- {
- SetPROM_8K_Bank(4, ((data & 0x40) >> 6) * 4 + 8 + 0);
- SetPROM_8K_Bank(5, ((data & 0x40) >> 6) * 4 + 8 + 1);
- SetPROM_8K_Bank(6, ((data & 0x40) >> 6) * 4 + 8 + 2);
- SetPROM_8K_Bank(7, ((data & 0x40) >> 6) * 4 + 8 + 3);
- }
- else
- {
- SetPROM_8K_Bank(4, ((data & 0x60) >> 5) * 2 + 0);
- SetPROM_8K_Bank(5, ((data & 0x60) >> 5) * 2 + 1);
- SetPROM_8K_Bank(6, ((data & 0x60) >> 5) * 2 + 0);
- SetPROM_8K_Bank(7, ((data & 0x60) >> 5) * 2 + 1);
- }
+ if ((data & 0x80) != 0)
+ {
+ SetPROM_8K_Bank(4, ((data & 0x40) >> 6) * 4 + 8 + 0);
+ SetPROM_8K_Bank(5, ((data & 0x40) >> 6) * 4 + 8 + 1);
+ SetPROM_8K_Bank(6, ((data & 0x40) >> 6) * 4 + 8 + 2);
+ SetPROM_8K_Bank(7, ((data & 0x40) >> 6) * 4 + 8 + 3);
+ }
+ else
+ {
+ SetPROM_8K_Bank(4, ((data & 0x60) >> 5) * 2 + 0);
+ SetPROM_8K_Bank(5, ((data & 0x60) >> 5) * 2 + 1);
+ SetPROM_8K_Bank(6, ((data & 0x60) >> 5) * 2 + 0);
+ SetPROM_8K_Bank(7, ((data & 0x60) >> 5) * 2 + 1);
+ }
- SetVROM_8K_Bank((data & 0x07) + ((data & 0x10) >> 1));
+ SetVROM_8K_Bank((data & 0x07) + ((data & 0x10) >> 1));
- if ((data & 0x08) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
- else SetVRAM_Mirror(VRAM_VMIRROR);
+ if ((data & 0x08) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
+ else SetVRAM_Mirror(VRAM_VMIRROR);
- break;
- }
- }
+ break;
+ }
+ }
- //void Mapper057::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- p[0] = reg;
- }
+ //void Mapper057::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ p[0] = reg;
+ }
- //void Mapper057::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- reg = p[0];
- }
+ //void Mapper057::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ reg = p[0];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper058.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper058.cs
index bb7275c5..1aaf7c74 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper058.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper058.cs
@@ -2,52 +2,48 @@
// Mapper058 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper058 : Mapper
- {
- public Mapper058(NES parent) : base(parent)
- {
- }
+ public class Mapper058 : Mapper
+ {
+ public Mapper058(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- SetPROM_32K_Bank(0, 1, 0, 1);
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_8K_Bank(0);
- }
- }
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0, 1, 0, 1);
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0);
+ }
+ }
- //void Mapper058::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- if ((addr & 0x40) != 0)
- {
- SetPROM_16K_Bank(4, addr & 0x07);
- SetPROM_16K_Bank(6, addr & 0x07);
- }
- else
- {
- SetPROM_32K_Bank((addr & 0x06) >> 1);
- }
+ //void Mapper058::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ if ((addr & 0x40) != 0)
+ {
+ SetPROM_16K_Bank(4, addr & 0x07);
+ SetPROM_16K_Bank(6, addr & 0x07);
+ }
+ else
+ {
+ SetPROM_32K_Bank((addr & 0x06) >> 1);
+ }
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_8K_Bank((addr & 0x38) >> 3);
- }
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_8K_Bank((addr & 0x38) >> 3);
+ }
- if ((data & 0x02) != 0) SetVRAM_Mirror(VRAM_VMIRROR);
- else SetVRAM_Mirror(VRAM_HMIRROR);
- }
+ if ((data & 0x02) != 0) SetVRAM_Mirror(VRAM_VMIRROR);
+ else SetVRAM_Mirror(VRAM_HMIRROR);
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper060.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper060.cs
index 2781466b..4928ee2b 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper060.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper060.cs
@@ -2,65 +2,62 @@
// Mapper060 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper060 : Mapper
- {
- BYTE patch;
- BYTE game_sel;
- public Mapper060(NES parent) : base(parent)
- {
- }
+ public class Mapper060 : Mapper
+ {
+ BYTE patch;
+ BYTE game_sel;
+ public Mapper060(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- patch = 0;
+ public override void Reset()
+ {
+ patch = 0;
- uint crc = nes.rom.GetPROM_CRC();
- if (crc == 0xf9c484a0)
- { // Reset Based 4-in-1(Unl)
- SetPROM_16K_Bank(4, game_sel);
- SetPROM_16K_Bank(6, game_sel);
- SetVROM_8K_Bank(game_sel);
- game_sel++;
- game_sel &= 3;
- }
- else
- {
- patch = 1;
- SetPROM_32K_Bank(0);
- SetVROM_8K_Bank(0);
- }
- }
+ uint crc = nes.rom.GetPROM_CRC();
+ if (crc == 0xf9c484a0)
+ { // Reset Based 4-in-1(Unl)
+ SetPROM_16K_Bank(4, game_sel);
+ SetPROM_16K_Bank(6, game_sel);
+ SetVROM_8K_Bank(game_sel);
+ game_sel++;
+ game_sel &= 3;
+ }
+ else
+ {
+ patch = 1;
+ SetPROM_32K_Bank(0);
+ SetVROM_8K_Bank(0);
+ }
+ }
- //void Mapper060::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- if (patch != 0)
- {
- if ((addr & 0x80) != 0)
- {
- SetPROM_16K_Bank(4, (addr & 0x70) >> 4);
- SetPROM_16K_Bank(6, (addr & 0x70) >> 4);
- }
- else
- {
- SetPROM_32K_Bank((addr & 0x70) >> 5);
- }
+ //void Mapper060::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ if (patch != 0)
+ {
+ if ((addr & 0x80) != 0)
+ {
+ SetPROM_16K_Bank(4, (addr & 0x70) >> 4);
+ SetPROM_16K_Bank(6, (addr & 0x70) >> 4);
+ }
+ else
+ {
+ SetPROM_32K_Bank((addr & 0x70) >> 5);
+ }
- SetVROM_8K_Bank(addr & 0x07);
+ SetVROM_8K_Bank(addr & 0x07);
- if ((data & 0x08) != 0) SetVRAM_Mirror(VRAM_VMIRROR);
- else SetVRAM_Mirror(VRAM_HMIRROR);
- }
- }
+ if ((data & 0x08) != 0) SetVRAM_Mirror(VRAM_VMIRROR);
+ else SetVRAM_Mirror(VRAM_HMIRROR);
+ }
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper061.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper061.cs
index e960050a..057e9ee2 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper061.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper061.cs
@@ -2,46 +2,42 @@
// Mapper061 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper061 : Mapper
- {
- public Mapper061(NES parent) : base(parent)
- {
- }
+ public class Mapper061 : Mapper
+ {
+ public Mapper061(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- }
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ }
- //void Mapper061::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr & 0x30)
- {
- case 0x00:
- case 0x30:
- SetPROM_32K_Bank(addr & 0x0F);
- break;
- case 0x10:
- case 0x20:
- SetPROM_16K_Bank(4, ((addr & 0x0F) << 1) | ((addr & 0x20) >> 4));
- SetPROM_16K_Bank(6, ((addr & 0x0F) << 1) | ((addr & 0x20) >> 4));
- break;
- }
+ //void Mapper061::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr & 0x30)
+ {
+ case 0x00:
+ case 0x30:
+ SetPROM_32K_Bank(addr & 0x0F);
+ break;
+ case 0x10:
+ case 0x20:
+ SetPROM_16K_Bank(4, ((addr & 0x0F) << 1) | ((addr & 0x20) >> 4));
+ SetPROM_16K_Bank(6, ((addr & 0x0F) << 1) | ((addr & 0x20) >> 4));
+ break;
+ }
- if ((addr & 0x80) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
- else SetVRAM_Mirror(VRAM_VMIRROR);
- }
+ if ((addr & 0x80) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
+ else SetVRAM_Mirror(VRAM_VMIRROR);
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper062.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper062.cs
index 500e9e17..0ad6a940 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper062.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper062.cs
@@ -2,52 +2,48 @@
// Mapper062 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper062 : Mapper
- {
- public Mapper062(NES parent) : base(parent)
- {
- }
+ public class Mapper062 : Mapper
+ {
+ public Mapper062(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- SetPROM_32K_Bank(0);
- SetVROM_8K_Bank(0);
- }
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0);
+ SetVROM_8K_Bank(0);
+ }
- //void Mapper062::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr & 0xFF00)
- {
- case 0x8100:
- SetPROM_8K_Bank(4, data);
- SetPROM_8K_Bank(5, data + 1);
- break;
- case 0x8500:
- SetPROM_8K_Bank(4, data);
- break;
- case 0x8700:
- SetPROM_8K_Bank(5, data);
- break;
- SetVROM_1K_Bank(0, data + 0);
- SetVROM_1K_Bank(1, data + 1);
- SetVROM_1K_Bank(2, data + 2);
- SetVROM_1K_Bank(3, data + 3);
- SetVROM_1K_Bank(4, data + 4);
- SetVROM_1K_Bank(5, data + 5);
- SetVROM_1K_Bank(6, data + 6);
- SetVROM_1K_Bank(7, data + 7);
- }
- }
+ //void Mapper062::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr & 0xFF00)
+ {
+ case 0x8100:
+ SetPROM_8K_Bank(4, data);
+ SetPROM_8K_Bank(5, data + 1);
+ break;
+ case 0x8500:
+ SetPROM_8K_Bank(4, data);
+ break;
+ case 0x8700:
+ SetPROM_8K_Bank(5, data);
+ break;
+ SetVROM_1K_Bank(0, data + 0);
+ SetVROM_1K_Bank(1, data + 1);
+ SetVROM_1K_Bank(2, data + 2);
+ SetVROM_1K_Bank(3, data + 3);
+ SetVROM_1K_Bank(4, data + 4);
+ SetVROM_1K_Bank(5, data + 5);
+ SetVROM_1K_Bank(6, data + 6);
+ SetVROM_1K_Bank(7, data + 7);
+ }
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper064.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper064.cs
index d9849aa0..c8625b73 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper064.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper064.cs
@@ -1,283 +1,282 @@
//////////////////////////////////////////////////////////////////////////
// Mapper064 Tengen Rambo-1 //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper064 : Mapper
- {
- BYTE[] reg = new byte[3];
- BYTE irq_enable;
- BYTE irq_mode;
- INT irq_counter;
- INT irq_counter2;
- BYTE irq_latch;
- BYTE irq_reset;
- public Mapper064(NES parent) : base(parent)
- {
- }
+ public class Mapper064 : Mapper
+ {
+ BYTE[] reg = new byte[3];
+ BYTE irq_enable;
+ BYTE irq_mode;
+ INT irq_counter;
+ INT irq_counter2;
+ BYTE irq_latch;
+ BYTE irq_reset;
+ public Mapper064(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- SetPROM_32K_Bank(PROM_8K_SIZE - 1, PROM_8K_SIZE - 1, PROM_8K_SIZE - 1, PROM_8K_SIZE - 1);
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(PROM_8K_SIZE - 1, PROM_8K_SIZE - 1, PROM_8K_SIZE - 1, PROM_8K_SIZE - 1);
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_8K_Bank(0);
- }
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0);
+ }
- reg[0] = reg[1] = reg[2] = 0;
+ reg[0] = reg[1] = reg[2] = 0;
- irq_enable = 0;
- irq_mode = 0;
- irq_counter = 0;
- irq_counter2 = 0;
- irq_latch = 0;
- irq_reset = 0;
- }
+ irq_enable = 0;
+ irq_mode = 0;
+ irq_counter = 0;
+ irq_counter2 = 0;
+ irq_latch = 0;
+ irq_reset = 0;
+ }
- //void Mapper064::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- //DEBUGOUT( "$%04X:$%02X\n", addr, data );
- switch (addr & 0xF003)
- {
- case 0x8000:
- reg[0] = (byte)(data & 0x0F);
- reg[1] = (byte)(data & 0x40);
- reg[2] = (byte)(data & 0x80);
- break;
+ //void Mapper064::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ //DEBUGOUT( "$%04X:$%02X\n", addr, data );
+ switch (addr & 0xF003)
+ {
+ case 0x8000:
+ reg[0] = (byte)(data & 0x0F);
+ reg[1] = (byte)(data & 0x40);
+ reg[2] = (byte)(data & 0x80);
+ break;
- case 0x8001:
- switch (reg[0])
- {
- case 0x00:
- if (reg[2] != 0)
- {
- SetVROM_1K_Bank(4, data + 0);
- SetVROM_1K_Bank(5, data + 1);
- }
- else
- {
- SetVROM_1K_Bank(0, data + 0);
- SetVROM_1K_Bank(1, data + 1);
- }
- break;
- case 0x01:
- if (reg[2] != 0)
- {
- SetVROM_1K_Bank(6, data + 0);
- SetVROM_1K_Bank(7, data + 1);
- }
- else
- {
- SetVROM_1K_Bank(2, data + 0);
- SetVROM_1K_Bank(3, data + 1);
- }
- break;
- case 0x02:
- if (reg[2] != 0)
- {
- SetVROM_1K_Bank(0, data);
- }
- else
- {
- SetVROM_1K_Bank(4, data);
- }
- break;
- case 0x03:
- if (reg[2] != 0)
- {
- SetVROM_1K_Bank(1, data);
- }
- else
- {
- SetVROM_1K_Bank(5, data);
- }
- break;
- case 0x04:
- if (reg[2] != 0)
- {
- SetVROM_1K_Bank(2, data);
- }
- else
- {
- SetVROM_1K_Bank(6, data);
- }
- break;
- case 0x05:
- if (reg[2] != 0)
- {
- SetVROM_1K_Bank(3, data);
- }
- else
- {
- SetVROM_1K_Bank(7, data);
- }
- break;
- case 0x06:
- if (reg[1] != 0)
- {
- SetPROM_8K_Bank(5, data);
- }
- else
- {
- SetPROM_8K_Bank(4, data);
- }
- break;
- case 0x07:
- if (reg[1] != 0)
- {
- SetPROM_8K_Bank(6, data);
- }
- else
- {
- SetPROM_8K_Bank(5, data);
- }
- break;
- case 0x08:
- SetVROM_1K_Bank(1, data);
- break;
- case 0x09:
- SetVROM_1K_Bank(3, data);
- break;
- case 0x0F:
- if (reg[1] != 0)
- {
- SetPROM_8K_Bank(4, data);
- }
- else
- {
- SetPROM_8K_Bank(6, data);
- }
- break;
- }
- break;
+ case 0x8001:
+ switch (reg[0])
+ {
+ case 0x00:
+ if (reg[2] != 0)
+ {
+ SetVROM_1K_Bank(4, data + 0);
+ SetVROM_1K_Bank(5, data + 1);
+ }
+ else
+ {
+ SetVROM_1K_Bank(0, data + 0);
+ SetVROM_1K_Bank(1, data + 1);
+ }
+ break;
+ case 0x01:
+ if (reg[2] != 0)
+ {
+ SetVROM_1K_Bank(6, data + 0);
+ SetVROM_1K_Bank(7, data + 1);
+ }
+ else
+ {
+ SetVROM_1K_Bank(2, data + 0);
+ SetVROM_1K_Bank(3, data + 1);
+ }
+ break;
+ case 0x02:
+ if (reg[2] != 0)
+ {
+ SetVROM_1K_Bank(0, data);
+ }
+ else
+ {
+ SetVROM_1K_Bank(4, data);
+ }
+ break;
+ case 0x03:
+ if (reg[2] != 0)
+ {
+ SetVROM_1K_Bank(1, data);
+ }
+ else
+ {
+ SetVROM_1K_Bank(5, data);
+ }
+ break;
+ case 0x04:
+ if (reg[2] != 0)
+ {
+ SetVROM_1K_Bank(2, data);
+ }
+ else
+ {
+ SetVROM_1K_Bank(6, data);
+ }
+ break;
+ case 0x05:
+ if (reg[2] != 0)
+ {
+ SetVROM_1K_Bank(3, data);
+ }
+ else
+ {
+ SetVROM_1K_Bank(7, data);
+ }
+ break;
+ case 0x06:
+ if (reg[1] != 0)
+ {
+ SetPROM_8K_Bank(5, data);
+ }
+ else
+ {
+ SetPROM_8K_Bank(4, data);
+ }
+ break;
+ case 0x07:
+ if (reg[1] != 0)
+ {
+ SetPROM_8K_Bank(6, data);
+ }
+ else
+ {
+ SetPROM_8K_Bank(5, data);
+ }
+ break;
+ case 0x08:
+ SetVROM_1K_Bank(1, data);
+ break;
+ case 0x09:
+ SetVROM_1K_Bank(3, data);
+ break;
+ case 0x0F:
+ if (reg[1] != 0)
+ {
+ SetPROM_8K_Bank(4, data);
+ }
+ else
+ {
+ SetPROM_8K_Bank(6, data);
+ }
+ break;
+ }
+ break;
- case 0xA000:
- if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
- else SetVRAM_Mirror(VRAM_VMIRROR);
- break;
+ case 0xA000:
+ if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
+ else SetVRAM_Mirror(VRAM_VMIRROR);
+ break;
- case 0xC000:
- irq_latch = data;
- if (irq_reset != 0)
- {
- irq_counter = irq_latch;
- }
- break;
- case 0xC001:
- irq_reset = 0xFF;
- irq_counter = irq_latch;
- irq_mode = (byte)(data & 0x01);
- break;
- case 0xE000:
- irq_enable = 0;
- if (irq_reset != 0)
- {
- irq_counter = irq_latch;
- }
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- case 0xE001:
- irq_enable = 0xFF;
- if (irq_reset != 0)
- {
- irq_counter = irq_latch;
- }
- break;
- }
- }
+ case 0xC000:
+ irq_latch = data;
+ if (irq_reset != 0)
+ {
+ irq_counter = irq_latch;
+ }
+ break;
+ case 0xC001:
+ irq_reset = 0xFF;
+ irq_counter = irq_latch;
+ irq_mode = (byte)(data & 0x01);
+ break;
+ case 0xE000:
+ irq_enable = 0;
+ if (irq_reset != 0)
+ {
+ irq_counter = irq_latch;
+ }
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ case 0xE001:
+ irq_enable = 0xFF;
+ if (irq_reset != 0)
+ {
+ irq_counter = irq_latch;
+ }
+ break;
+ }
+ }
- //void Mapper064::Clock(INT cycles)
- public override void Clock(int cycles)
- {
- if (irq_mode == 0)
- return;
+ //void Mapper064::Clock(INT cycles)
+ public override void Clock(int cycles)
+ {
+ if (irq_mode == 0)
+ return;
- irq_counter2 += cycles;
- while (irq_counter2 >= 4)
- {
- irq_counter2 -= 4;
- if (irq_counter >= 0)
- {
- irq_counter--;
- if (irq_counter < 0)
- {
- if (irq_enable != 0)
- {
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- }
- }
- }
- }
+ irq_counter2 += cycles;
+ while (irq_counter2 >= 4)
+ {
+ irq_counter2 -= 4;
+ if (irq_counter >= 0)
+ {
+ irq_counter--;
+ if (irq_counter < 0)
+ {
+ if (irq_enable != 0)
+ {
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ }
+ }
+ }
+ }
- //void Mapper064::HSync(INT scanline)
- public override void HSync(int scanline)
- {
- if (irq_mode != 0)
- return;
+ //void Mapper064::HSync(INT scanline)
+ public override void HSync(int scanline)
+ {
+ if (irq_mode != 0)
+ return;
- irq_reset = 0;
+ irq_reset = 0;
- if ((scanline >= 0 && scanline <= 239))
- {
- if (nes.ppu.IsDispON())
- {
- if (irq_counter >= 0)
- {
- irq_counter--;
- if (irq_counter < 0)
- {
- if (irq_enable != 0)
- {
- irq_reset = 1;
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- }
- }
- }
- }
- }
+ if ((scanline >= 0 && scanline <= 239))
+ {
+ if (nes.ppu.IsDispON())
+ {
+ if (irq_counter >= 0)
+ {
+ irq_counter--;
+ if (irq_counter < 0)
+ {
+ if (irq_enable != 0)
+ {
+ irq_reset = 1;
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ }
+ }
+ }
+ }
+ }
- //void Mapper064::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- //p[0] = reg[0];
- //p[1] = reg[1];
- //p[2] = reg[2];
- //p[3] = irq_enable;
- //p[4] = irq_mode;
- //p[5] = irq_latch;
- //p[6] = irq_reset;
- //*((INT*)&p[8]) = irq_counter;
- //*((INT*)&p[12]) = irq_counter2;
- }
+ //void Mapper064::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ //p[0] = reg[0];
+ //p[1] = reg[1];
+ //p[2] = reg[2];
+ //p[3] = irq_enable;
+ //p[4] = irq_mode;
+ //p[5] = irq_latch;
+ //p[6] = irq_reset;
+ //*((INT*)&p[8]) = irq_counter;
+ //*((INT*)&p[12]) = irq_counter2;
+ }
- //void Mapper064::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- //reg[0] = p[0];
- //reg[1] = p[1];
- //reg[2] = p[2];
- //irq_enable = p[3];
- //irq_mode = p[4];
- //irq_latch = p[5];
- //irq_reset = p[6];
- //irq_counter = *((INT*)&p[8]);
- //irq_counter2 = *((INT*)&p[12]);
- }
+ //void Mapper064::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ //reg[0] = p[0];
+ //reg[1] = p[1];
+ //reg[2] = p[2];
+ //irq_enable = p[3];
+ //irq_mode = p[4];
+ //irq_latch = p[5];
+ //irq_reset = p[6];
+ //irq_counter = *((INT*)&p[8]);
+ //irq_counter2 = *((INT*)&p[12]);
+ }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper065.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper065.cs
index b7d0b326..dac093e6 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper065.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper065.cs
@@ -1,189 +1,188 @@
//////////////////////////////////////////////////////////////////////////
// Mapper065 Irem H3001 //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper065 : Mapper
- {
- BYTE patch;
+ public class Mapper065 : Mapper
+ {
+ BYTE patch;
- BYTE irq_enable;
- INT irq_counter;
- INT irq_latch;
- public Mapper065(NES parent) : base(parent)
- {
- }
+ BYTE irq_enable;
+ INT irq_counter;
+ INT irq_latch;
+ public Mapper065(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- patch = 0;
+ public override void Reset()
+ {
+ patch = 0;
- // Kaiketsu Yanchamaru 3(J)
- if (nes.rom.GetPROM_CRC() == 0xe30b7f64)
- {
- patch = 1;
- }
+ // Kaiketsu Yanchamaru 3(J)
+ if (nes.rom.GetPROM_CRC() == 0xe30b7f64)
+ {
+ patch = 1;
+ }
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- if (VROM_8K_SIZE != 0)
- {
- SetVROM_8K_Bank(0);
- }
+ if (VROM_8K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0);
+ }
- irq_enable = 0;
- irq_counter = 0;
- }
+ irq_enable = 0;
+ irq_counter = 0;
+ }
- //void Mapper065::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr)
- {
- case 0x8000:
- SetPROM_8K_Bank(4, data);
- break;
+ //void Mapper065::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr)
+ {
+ case 0x8000:
+ SetPROM_8K_Bank(4, data);
+ break;
- case 0x9000:
- if (patch == 0)
- {
- if ((data & 0x40) != 0) SetVRAM_Mirror(VRAM_VMIRROR);
- else SetVRAM_Mirror(VRAM_HMIRROR);
- }
- break;
+ case 0x9000:
+ if (patch == 0)
+ {
+ if ((data & 0x40) != 0) SetVRAM_Mirror(VRAM_VMIRROR);
+ else SetVRAM_Mirror(VRAM_HMIRROR);
+ }
+ break;
- case 0x9001:
- if (patch != 0)
- {
- if ((data & 0x80) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
- else SetVRAM_Mirror(VRAM_VMIRROR);
- }
- break;
+ case 0x9001:
+ if (patch != 0)
+ {
+ if ((data & 0x80) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
+ else SetVRAM_Mirror(VRAM_VMIRROR);
+ }
+ break;
- case 0x9003:
- if (patch == 0)
- {
- irq_enable = (byte)(data & 0x8);
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- }
- break;
- case 0x9004:
- if (patch == 0)
- {
- irq_counter = irq_latch;
- }
- break;
- case 0x9005:
- if (patch != 0)
- {
- irq_counter = (BYTE)(data << 1);
- irq_enable = data;
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- }
- else
- {
- irq_latch = (irq_latch & 0x00FF) | ((INT)data << 8);
- }
- break;
+ case 0x9003:
+ if (patch == 0)
+ {
+ irq_enable = (byte)(data & 0x8);
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ }
+ break;
+ case 0x9004:
+ if (patch == 0)
+ {
+ irq_counter = irq_latch;
+ }
+ break;
+ case 0x9005:
+ if (patch != 0)
+ {
+ irq_counter = (BYTE)(data << 1);
+ irq_enable = data;
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ }
+ else
+ {
+ irq_latch = (irq_latch & 0x00FF) | ((INT)data << 8);
+ }
+ break;
- case 0x9006:
- if (patch != 0)
- {
- irq_enable = 1;
- }
- else
- {
- irq_latch = (irq_latch & 0xFF00) | data;
- }
- break;
+ case 0x9006:
+ if (patch != 0)
+ {
+ irq_enable = 1;
+ }
+ else
+ {
+ irq_latch = (irq_latch & 0xFF00) | data;
+ }
+ break;
- case 0xB000:
- case 0xB001:
- case 0xB002:
- case 0xB003:
- case 0xB004:
- case 0xB005:
- case 0xB006:
- case 0xB007:
- SetVROM_1K_Bank((byte)(addr & 0x0007), data);
- break;
+ case 0xB000:
+ case 0xB001:
+ case 0xB002:
+ case 0xB003:
+ case 0xB004:
+ case 0xB005:
+ case 0xB006:
+ case 0xB007:
+ SetVROM_1K_Bank((byte)(addr & 0x0007), data);
+ break;
- case 0xA000:
- SetPROM_8K_Bank(5, data);
- break;
- case 0xC000:
- SetPROM_8K_Bank(6, data);
- break;
- }
- }
+ case 0xA000:
+ SetPROM_8K_Bank(5, data);
+ break;
+ case 0xC000:
+ SetPROM_8K_Bank(6, data);
+ break;
+ }
+ }
- //void Mapper065::HSync(INT scanline)
- public override void HSync(int scanline)
- {
- if (patch != 0)
- {
- if (irq_enable != 0)
- {
- if (irq_counter == 0)
- {
- // nes.cpu.IRQ_NotPending();
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- else
- {
- irq_counter--;
- }
- }
- }
- }
+ //void Mapper065::HSync(INT scanline)
+ public override void HSync(int scanline)
+ {
+ if (patch != 0)
+ {
+ if (irq_enable != 0)
+ {
+ if (irq_counter == 0)
+ {
+ // nes.cpu.IRQ_NotPending();
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ else
+ {
+ irq_counter--;
+ }
+ }
+ }
+ }
- //void Mapper065::Clock(INT cycles)
- public override void Clock(int cycles)
- {
- if (patch == 0)
- {
- if (irq_enable != 0)
- {
- if (irq_counter <= 0)
- {
- // nes.cpu.IRQ_NotPending();
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- else
- {
- irq_counter -= cycles;
- }
- }
- }
- }
+ //void Mapper065::Clock(INT cycles)
+ public override void Clock(int cycles)
+ {
+ if (patch == 0)
+ {
+ if (irq_enable != 0)
+ {
+ if (irq_counter <= 0)
+ {
+ // nes.cpu.IRQ_NotPending();
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ else
+ {
+ irq_counter -= cycles;
+ }
+ }
+ }
+ }
- //void Mapper065::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- //p[0] = irq_enable;
- //*(INT*)&p[1] = irq_counter;
- //*(INT*)&p[5] = irq_latch;
- }
+ //void Mapper065::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ //p[0] = irq_enable;
+ //*(INT*)&p[1] = irq_counter;
+ //*(INT*)&p[5] = irq_latch;
+ }
- //void Mapper065::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- //irq_enable = p[0];
- //irq_counter = *(INT*)&p[1];
- //irq_latch = *(INT*)&p[5];
- }
+ //void Mapper065::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ //irq_enable = p[0];
+ //irq_counter = *(INT*)&p[1];
+ //irq_latch = *(INT*)&p[5];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper066.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper066.cs
index 1458c26c..00b4d877 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper066.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper066.cs
@@ -2,47 +2,43 @@
// Mapper066 Bandai 74161 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper066 : Mapper
- {
- public Mapper066(NES parent) : base(parent)
- {
- }
+ public class Mapper066 : Mapper
+ {
+ public Mapper066(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- SetVROM_8K_Bank(0);
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ SetVROM_8K_Bank(0);
- // if( nes->rom->GetPROM_CRC() == 0xe30552db ) { // Paris-Dakar Rally Special
- // nes->SetFrameIRQmode( FALSE );
- // }
- }
+ // if( nes->rom->GetPROM_CRC() == 0xe30552db ) { // Paris-Dakar Rally Special
+ // nes->SetFrameIRQmode( FALSE );
+ // }
+ }
- //void Mapper066::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- if (addr >= 0x6000)
- {
- SetPROM_32K_Bank((data & 0xF0) >> 4);
- SetVROM_8K_Bank(data & 0x0F);
- }
- }
+ //void Mapper066::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ if (addr >= 0x6000)
+ {
+ SetPROM_32K_Bank((data & 0xF0) >> 4);
+ SetVROM_8K_Bank(data & 0x0F);
+ }
+ }
- //void Mapper066::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- SetPROM_32K_Bank((data & 0xF0) >> 4);
- SetVROM_8K_Bank(data & 0x0F);
- }
+ //void Mapper066::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ SetPROM_32K_Bank((data & 0xF0) >> 4);
+ SetVROM_8K_Bank(data & 0x0F);
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper067.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper067.cs
index 3d6b2fb6..f43d9c9d 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper067.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper067.cs
@@ -1,140 +1,139 @@
//////////////////////////////////////////////////////////////////////////
// Mapper067 SunSoft Mapper 3 //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper067 : Mapper
- {
- BYTE irq_enable;
- BYTE irq_occur;
- BYTE irq_toggle;
- INT irq_counter;
- public Mapper067(NES parent) : base(parent)
- {
- }
+ public class Mapper067 : Mapper
+ {
+ BYTE irq_enable;
+ BYTE irq_occur;
+ BYTE irq_toggle;
+ INT irq_counter;
+ public Mapper067(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
+ public override void Reset()
- {
- irq_enable = 0;
- irq_toggle = 0;
- irq_counter = 0;
- irq_occur = 0;
+ {
+ irq_enable = 0;
+ irq_toggle = 0;
+ irq_counter = 0;
+ irq_occur = 0;
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- SetVROM_4K_Bank(0, 0);
- SetVROM_4K_Bank(4, VROM_4K_SIZE - 1);
+ SetVROM_4K_Bank(0, 0);
+ SetVROM_4K_Bank(4, VROM_4K_SIZE - 1);
- uint crc = nes.rom.GetPROM_CRC();
+ uint crc = nes.rom.GetPROM_CRC();
- if (crc == 0x7f2a04bf)
- { // For Fantasy Zone 2(J)
- nes.SetRenderMethod(EnumRenderMethod.PRE_ALL_RENDER);
- }
- }
+ if (crc == 0x7f2a04bf)
+ { // For Fantasy Zone 2(J)
+ nes.SetRenderMethod(EnumRenderMethod.PRE_ALL_RENDER);
+ }
+ }
- //void Mapper067::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr & 0xF800)
- {
- case 0x8800:
- SetVROM_2K_Bank(0, data);
- break;
- case 0x9800:
- SetVROM_2K_Bank(2, data);
- break;
- case 0xA800:
- SetVROM_2K_Bank(4, data);
- break;
- case 0xB800:
- SetVROM_2K_Bank(6, data);
- break;
+ //void Mapper067::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr & 0xF800)
+ {
+ case 0x8800:
+ SetVROM_2K_Bank(0, data);
+ break;
+ case 0x9800:
+ SetVROM_2K_Bank(2, data);
+ break;
+ case 0xA800:
+ SetVROM_2K_Bank(4, data);
+ break;
+ case 0xB800:
+ SetVROM_2K_Bank(6, data);
+ break;
- case 0xC800:
- if (irq_toggle == 0)
- {
- irq_counter = (irq_counter & 0x00FF) | ((INT)data << 8);
- }
- else
- {
- irq_counter = (irq_counter & 0xFF00) | ((INT)data & 0xFF);
- }
- irq_toggle ^= 1;
- irq_occur = 0;
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- case 0xD800:
- irq_enable = (byte)(data & 0x10);
- irq_toggle = 0;
- irq_occur = 0;
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
+ case 0xC800:
+ if (irq_toggle == 0)
+ {
+ irq_counter = (irq_counter & 0x00FF) | ((INT)data << 8);
+ }
+ else
+ {
+ irq_counter = (irq_counter & 0xFF00) | ((INT)data & 0xFF);
+ }
+ irq_toggle ^= 1;
+ irq_occur = 0;
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ case 0xD800:
+ irq_enable = (byte)(data & 0x10);
+ irq_toggle = 0;
+ irq_occur = 0;
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
- case 0xE800:
- data &= 0x03;
- if (data == 0) SetVRAM_Mirror(VRAM_VMIRROR);
- else if (data == 1) SetVRAM_Mirror(VRAM_HMIRROR);
- else if (data == 2) SetVRAM_Mirror(VRAM_MIRROR4L);
- else SetVRAM_Mirror(VRAM_MIRROR4H);
- break;
+ case 0xE800:
+ data &= 0x03;
+ if (data == 0) SetVRAM_Mirror(VRAM_VMIRROR);
+ else if (data == 1) SetVRAM_Mirror(VRAM_HMIRROR);
+ else if (data == 2) SetVRAM_Mirror(VRAM_MIRROR4L);
+ else SetVRAM_Mirror(VRAM_MIRROR4H);
+ break;
- case 0xF800:
- SetPROM_16K_Bank(4, data);
- break;
- }
- }
+ case 0xF800:
+ SetPROM_16K_Bank(4, data);
+ break;
+ }
+ }
- //void Mapper067::Clock(INT cycles)
- public override void Clock(int cycles)
- {
- if (irq_enable != 0)
- {
- if ((irq_counter -= cycles) <= 0)
- {
- irq_enable = 0;
- irq_occur = 0xFF;
- irq_counter = 0xFFFF;
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- }
+ //void Mapper067::Clock(INT cycles)
+ public override void Clock(int cycles)
+ {
+ if (irq_enable != 0)
+ {
+ if ((irq_counter -= cycles) <= 0)
+ {
+ irq_enable = 0;
+ irq_occur = 0xFF;
+ irq_counter = 0xFFFF;
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ }
- // if( irq_occur ) {
- // nes.cpu.IRQ_NotPending();
- // }
- }
+ // if( irq_occur ) {
+ // nes.cpu.IRQ_NotPending();
+ // }
+ }
- //void Mapper067::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- //p[0] = irq_enable;
- //p[1] = irq_occur;
- //p[2] = irq_toggle;
- //*((INT*)&p[3]) = irq_counter;
- }
+ //void Mapper067::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ //p[0] = irq_enable;
+ //p[1] = irq_occur;
+ //p[2] = irq_toggle;
+ //*((INT*)&p[3]) = irq_counter;
+ }
- //void Mapper067::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- //irq_enable = p[0];
- //irq_occur = p[1];
- //irq_toggle = p[2];
- //irq_counter = *((INT*)&p[3]);
- }
+ //void Mapper067::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ //irq_enable = p[0];
+ //irq_occur = p[1];
+ //irq_toggle = p[2];
+ //irq_counter = *((INT*)&p[3]);
+ }
- public override bool IsStateSave()
- {
- return true;
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper068.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper068.cs
index 7e035c87..2136edbe 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper068.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper068.cs
@@ -2,29 +2,27 @@
// Mapper068 SunSoft Mapper 4 (After Burner II) //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper068 : Mapper
- {
- BYTE[] reg = new byte[4];
- BYTE coin;
- public Mapper068(NES parent) : base(parent)
- {
- }
+ public class Mapper068 : Mapper
+ {
+ BYTE[] reg = new byte[4];
+ BYTE coin;
+ public Mapper068(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- reg[0] = reg[1] = reg[2] = reg[3] = 0;
- coin = 0;
+ public override void Reset()
+ {
+ reg[0] = reg[1] = reg[2] = reg[3] = 0;
+ coin = 0;
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- }
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ }
#if FALSE //0
@@ -47,118 +45,118 @@ DEBUGOUT( "WR $4020:%02X\n", data );
}
#endif
- //void Mapper068::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr & 0xF000)
- {
- case 0x8000:
- SetVROM_2K_Bank(0, data);
- break;
- case 0x9000:
- SetVROM_2K_Bank(2, data);
- break;
- case 0xA000:
- SetVROM_2K_Bank(4, data);
- break;
- case 0xB000:
- SetVROM_2K_Bank(6, data);
- break;
+ //void Mapper068::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr & 0xF000)
+ {
+ case 0x8000:
+ SetVROM_2K_Bank(0, data);
+ break;
+ case 0x9000:
+ SetVROM_2K_Bank(2, data);
+ break;
+ case 0xA000:
+ SetVROM_2K_Bank(4, data);
+ break;
+ case 0xB000:
+ SetVROM_2K_Bank(6, data);
+ break;
- case 0xC000:
- reg[2] = data;
- SetBank();
- break;
- case 0xD000:
- reg[3] = data;
- SetBank();
- break;
- case 0xE000:
- reg[0] = (byte)((data & 0x10) >> 4);
- reg[1] = (byte)(data & 0x03);
- SetBank();
- break;
+ case 0xC000:
+ reg[2] = data;
+ SetBank();
+ break;
+ case 0xD000:
+ reg[3] = data;
+ SetBank();
+ break;
+ case 0xE000:
+ reg[0] = (byte)((data & 0x10) >> 4);
+ reg[1] = (byte)(data & 0x03);
+ SetBank();
+ break;
- case 0xF000:
- SetPROM_16K_Bank(4, data);
- break;
- }
- }
+ case 0xF000:
+ SetPROM_16K_Bank(4, data);
+ break;
+ }
+ }
- void SetBank()
- {
- if (reg[0] != 0)
- {
- switch (reg[1])
- {
- case 0:
- SetVROM_1K_Bank(8, (INT)reg[2] + 0x80);
- SetVROM_1K_Bank(9, (INT)reg[3] + 0x80);
- SetVROM_1K_Bank(10, (INT)reg[2] + 0x80);
- SetVROM_1K_Bank(11, (INT)reg[3] + 0x80);
- break;
- case 1:
- SetVROM_1K_Bank(8, (INT)reg[2] + 0x80);
- SetVROM_1K_Bank(9, (INT)reg[2] + 0x80);
- SetVROM_1K_Bank(10, (INT)reg[3] + 0x80);
- SetVROM_1K_Bank(11, (INT)reg[3] + 0x80);
- break;
- case 2:
- SetVROM_1K_Bank(8, (INT)reg[2] + 0x80);
- SetVROM_1K_Bank(9, (INT)reg[2] + 0x80);
- SetVROM_1K_Bank(10, (INT)reg[2] + 0x80);
- SetVROM_1K_Bank(11, (INT)reg[2] + 0x80);
- break;
- case 3:
- SetVROM_1K_Bank(8, (INT)reg[3] + 0x80);
- SetVROM_1K_Bank(9, (INT)reg[3] + 0x80);
- SetVROM_1K_Bank(10, (INT)reg[3] + 0x80);
- SetVROM_1K_Bank(11, (INT)reg[3] + 0x80);
- break;
- }
- }
- else
- {
- switch (reg[1])
- {
- case 0:
- SetVRAM_Mirror(VRAM_VMIRROR);
- break;
- case 1:
- SetVRAM_Mirror(VRAM_HMIRROR);
- break;
- case 2:
- SetVRAM_Mirror(VRAM_MIRROR4L);
- break;
- case 3:
- SetVRAM_Mirror(VRAM_MIRROR4H);
- break;
- }
- }
- }
+ void SetBank()
+ {
+ if (reg[0] != 0)
+ {
+ switch (reg[1])
+ {
+ case 0:
+ SetVROM_1K_Bank(8, (INT)reg[2] + 0x80);
+ SetVROM_1K_Bank(9, (INT)reg[3] + 0x80);
+ SetVROM_1K_Bank(10, (INT)reg[2] + 0x80);
+ SetVROM_1K_Bank(11, (INT)reg[3] + 0x80);
+ break;
+ case 1:
+ SetVROM_1K_Bank(8, (INT)reg[2] + 0x80);
+ SetVROM_1K_Bank(9, (INT)reg[2] + 0x80);
+ SetVROM_1K_Bank(10, (INT)reg[3] + 0x80);
+ SetVROM_1K_Bank(11, (INT)reg[3] + 0x80);
+ break;
+ case 2:
+ SetVROM_1K_Bank(8, (INT)reg[2] + 0x80);
+ SetVROM_1K_Bank(9, (INT)reg[2] + 0x80);
+ SetVROM_1K_Bank(10, (INT)reg[2] + 0x80);
+ SetVROM_1K_Bank(11, (INT)reg[2] + 0x80);
+ break;
+ case 3:
+ SetVROM_1K_Bank(8, (INT)reg[3] + 0x80);
+ SetVROM_1K_Bank(9, (INT)reg[3] + 0x80);
+ SetVROM_1K_Bank(10, (INT)reg[3] + 0x80);
+ SetVROM_1K_Bank(11, (INT)reg[3] + 0x80);
+ break;
+ }
+ }
+ else
+ {
+ switch (reg[1])
+ {
+ case 0:
+ SetVRAM_Mirror(VRAM_VMIRROR);
+ break;
+ case 1:
+ SetVRAM_Mirror(VRAM_HMIRROR);
+ break;
+ case 2:
+ SetVRAM_Mirror(VRAM_MIRROR4L);
+ break;
+ case 3:
+ SetVRAM_Mirror(VRAM_MIRROR4H);
+ break;
+ }
+ }
+ }
- //void Mapper068::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- p[0] = reg[0];
- p[1] = reg[1];
- p[2] = reg[2];
- p[3] = reg[3];
- }
+ //void Mapper068::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ p[0] = reg[0];
+ p[1] = reg[1];
+ p[2] = reg[2];
+ p[3] = reg[3];
+ }
- //void Mapper068::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- reg[0] = p[0];
- reg[1] = p[1];
- reg[2] = p[2];
- reg[3] = p[3];
- }
+ //void Mapper068::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ reg[0] = p[0];
+ reg[1] = p[1];
+ reg[2] = p[2];
+ reg[3] = p[3];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper069.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper069.cs
index f386f820..6aa31783 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper069.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper069.cs
@@ -1,177 +1,176 @@
//////////////////////////////////////////////////////////////////////////
// Mapper069 SunSoft FME-7 //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper069 : Mapper
- {
- BYTE patch;
+ public class Mapper069 : Mapper
+ {
+ BYTE patch;
- BYTE reg;
- BYTE irq_enable;
- INT irq_counter;
- public Mapper069(NES parent) : base(parent)
- {
- }
+ BYTE reg;
+ BYTE irq_enable;
+ INT irq_counter;
+ public Mapper069(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
+ public override void Reset()
- {
- reg = 0;
- irq_enable = 0;
- irq_counter = 0;
+ {
+ reg = 0;
+ irq_enable = 0;
+ irq_counter = 0;
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_8K_Bank(0);
- }
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0);
+ }
- nes.apu.SelectExSound(32);
- nes.SetIrqType(NES.IRQMETHOD.IRQ_CLOCK);
- patch = 0;
+ nes.apu.SelectExSound(32);
+ nes.SetIrqType(NES.IRQMETHOD.IRQ_CLOCK);
+ patch = 0;
- uint crc = nes.rom.GetPROM_CRC();
+ uint crc = nes.rom.GetPROM_CRC();
- if (crc == 0xfeac6916)
- { // Honoo no Toukyuuji - Dodge Danpei 2(J)
- // nes.SetIrqType( NES::IRQ_HSYNC );
- nes.SetRenderMethod(EnumRenderMethod.TILE_RENDER);
- }
+ if (crc == 0xfeac6916)
+ { // Honoo no Toukyuuji - Dodge Danpei 2(J)
+ // nes.SetIrqType( NES::IRQ_HSYNC );
+ nes.SetRenderMethod(EnumRenderMethod.TILE_RENDER);
+ }
- if (crc == 0xad28aef6)
- { // Dynamite Batman(J) / Dynamite Batman - Return of the Joker(U)
- patch = 1;
- }
- }
+ if (crc == 0xad28aef6)
+ { // Dynamite Batman(J) / Dynamite Batman - Return of the Joker(U)
+ patch = 1;
+ }
+ }
- //void Mapper069::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr & 0xE000)
- {
- case 0x8000:
- reg = data;
- break;
+ //void Mapper069::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr & 0xE000)
+ {
+ case 0x8000:
+ reg = data;
+ break;
- case 0xA000:
- switch (reg & 0x0F)
- {
- case 0x00:
- case 0x01:
- case 0x02:
- case 0x03:
- case 0x04:
- case 0x05:
- case 0x06:
- case 0x07:
- SetVROM_1K_Bank((byte)(reg & 0x07), data);
- break;
- case 0x08:
- if (patch == 0 && (data & 0x40) == 0)
- {
- SetPROM_8K_Bank(3, data);
- }
- break;
- case 0x09:
- SetPROM_8K_Bank(4, data);
- break;
- case 0x0A:
- SetPROM_8K_Bank(5, data);
- break;
- case 0x0B:
- SetPROM_8K_Bank(6, data);
- break;
+ case 0xA000:
+ switch (reg & 0x0F)
+ {
+ case 0x00:
+ case 0x01:
+ case 0x02:
+ case 0x03:
+ case 0x04:
+ case 0x05:
+ case 0x06:
+ case 0x07:
+ SetVROM_1K_Bank((byte)(reg & 0x07), data);
+ break;
+ case 0x08:
+ if (patch == 0 && (data & 0x40) == 0)
+ {
+ SetPROM_8K_Bank(3, data);
+ }
+ break;
+ case 0x09:
+ SetPROM_8K_Bank(4, data);
+ break;
+ case 0x0A:
+ SetPROM_8K_Bank(5, data);
+ break;
+ case 0x0B:
+ SetPROM_8K_Bank(6, data);
+ break;
- case 0x0C:
- data &= 0x03;
- if (data == 0) SetVRAM_Mirror(VRAM_VMIRROR);
- else if (data == 1) SetVRAM_Mirror(VRAM_HMIRROR);
- else if (data == 2) SetVRAM_Mirror(VRAM_MIRROR4L);
- else SetVRAM_Mirror(VRAM_MIRROR4H);
- break;
+ case 0x0C:
+ data &= 0x03;
+ if (data == 0) SetVRAM_Mirror(VRAM_VMIRROR);
+ else if (data == 1) SetVRAM_Mirror(VRAM_HMIRROR);
+ else if (data == 2) SetVRAM_Mirror(VRAM_MIRROR4L);
+ else SetVRAM_Mirror(VRAM_MIRROR4H);
+ break;
- case 0x0D:
- irq_enable = data;
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
+ case 0x0D:
+ irq_enable = data;
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
- case 0x0E:
- irq_counter = (irq_counter & 0xFF00) | data;
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
+ case 0x0E:
+ irq_counter = (irq_counter & 0xFF00) | data;
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
- case 0x0F:
- irq_counter = (irq_counter & 0x00FF) | (data << 8);
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- }
- break;
+ case 0x0F:
+ irq_counter = (irq_counter & 0x00FF) | (data << 8);
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ }
+ break;
- case 0xC000:
- case 0xE000:
- nes.apu.ExWrite(addr, data);
- break;
- }
- }
+ case 0xC000:
+ case 0xE000:
+ nes.apu.ExWrite(addr, data);
+ break;
+ }
+ }
- //void Mapper069::Clock(INT cycles)
- public override void Clock(int cycles)
- {
- //if (irq_enable && (nes.GetIrqType() == NES::IRQ_CLOCK))
- if (irq_enable != 0 && (nes.GetIrqType() == (int)NES.IRQMETHOD.IRQ_HSYNC))
- {
- irq_counter -= cycles;
- if (irq_counter <= 0)
- {
- nes.cpu.SetIRQ(IRQ_MAPPER);
- irq_enable = 0;
- irq_counter = 0xFFFF;
- }
- }
- }
+ //void Mapper069::Clock(INT cycles)
+ public override void Clock(int cycles)
+ {
+ //if (irq_enable && (nes.GetIrqType() == NES::IRQ_CLOCK))
+ if (irq_enable != 0 && (nes.GetIrqType() == (int)NES.IRQMETHOD.IRQ_HSYNC))
+ {
+ irq_counter -= cycles;
+ if (irq_counter <= 0)
+ {
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ irq_enable = 0;
+ irq_counter = 0xFFFF;
+ }
+ }
+ }
- //void Mapper069::HSync(INT scanline)
- public override void HSync(int scanline)
- {
- if (irq_enable != 0 && (nes.GetIrqType() == (int)NES.IRQMETHOD.IRQ_HSYNC))
- {
- irq_counter -= 114;
- if (irq_counter <= 0)
- {
- nes.cpu.SetIRQ(IRQ_MAPPER);
- irq_enable = 0;
- irq_counter = 0xFFFF;
- }
- }
- }
+ //void Mapper069::HSync(INT scanline)
+ public override void HSync(int scanline)
+ {
+ if (irq_enable != 0 && (nes.GetIrqType() == (int)NES.IRQMETHOD.IRQ_HSYNC))
+ {
+ irq_counter -= 114;
+ if (irq_counter <= 0)
+ {
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ irq_enable = 0;
+ irq_counter = 0xFFFF;
+ }
+ }
+ }
- //void Mapper069::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- //p[0] = reg;
- //p[1] = irq_enable;
- //*(INT*)&p[2] = irq_counter;
- }
+ //void Mapper069::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ //p[0] = reg;
+ //p[1] = irq_enable;
+ //*(INT*)&p[2] = irq_counter;
+ }
- //void Mapper069::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- //reg = p[0];
- //irq_enable = p[1];
- //irq_counter = *(INT*)&p[2];
- }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ //void Mapper069::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ //reg = p[0];
+ //irq_enable = p[1];
+ //irq_counter = *(INT*)&p[2];
+ }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper070.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper070.cs
index 04153e2c..c1cca87b 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper070.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper070.cs
@@ -2,63 +2,60 @@
// Mapper070 Bandai 74161 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper070 : Mapper
- {
- BYTE patch;
- public Mapper070(NES parent) : base(parent)
- {
- }
+ public class Mapper070 : Mapper
+ {
+ BYTE patch;
+ public Mapper070(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- patch = 0;
+ public override void Reset()
+ {
+ patch = 0;
- uint crc = nes.rom.GetPROM_CRC();
+ uint crc = nes.rom.GetPROM_CRC();
- if (crc == 0xa59ca2ef)
- { // Kamen Rider Club(J)
- patch = 1;
- nes.SetRenderMethod(EnumRenderMethod.POST_ALL_RENDER);
- }
- if (crc == 0x10bb8f9a)
- { // Family Trainer - Manhattan Police(J)
- patch = 1;
- }
- if (crc == 0x0cd00488)
- { // Space Shadow(J)
- patch = 1;
- }
+ if (crc == 0xa59ca2ef)
+ { // Kamen Rider Club(J)
+ patch = 1;
+ nes.SetRenderMethod(EnumRenderMethod.POST_ALL_RENDER);
+ }
+ if (crc == 0x10bb8f9a)
+ { // Family Trainer - Manhattan Police(J)
+ patch = 1;
+ }
+ if (crc == 0x0cd00488)
+ { // Space Shadow(J)
+ patch = 1;
+ }
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- SetVROM_8K_Bank(0);
- }
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ SetVROM_8K_Bank(0);
+ }
- //void Mapper070::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- SetPROM_16K_Bank(4, (data & 0x70) >> 4);
- SetVROM_8K_Bank(data & 0x0F);
+ //void Mapper070::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ SetPROM_16K_Bank(4, (data & 0x70) >> 4);
+ SetVROM_8K_Bank(data & 0x0F);
- if (patch != 0)
- {
- if ((data & 0x80) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
- else SetVRAM_Mirror(VRAM_VMIRROR);
- }
- else
- {
- if ((data & 0x80) != 0) SetVRAM_Mirror(VRAM_MIRROR4H);
- else SetVRAM_Mirror(VRAM_MIRROR4L);
- }
- }
+ if (patch != 0)
+ {
+ if ((data & 0x80) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
+ else SetVRAM_Mirror(VRAM_VMIRROR);
+ }
+ else
+ {
+ if ((data & 0x80) != 0) SetVRAM_Mirror(VRAM_MIRROR4H);
+ else SetVRAM_Mirror(VRAM_MIRROR4L);
+ }
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper071.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper071.cs
index 5d07debf..865f3459 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper071.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper071.cs
@@ -2,53 +2,49 @@
// Mapper071 Camerica //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper071 : Mapper
- {
- public Mapper071(NES parent) : base(parent)
- {
- }
+ public class Mapper071 : Mapper
+ {
+ public Mapper071(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- }
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ }
- //void Mapper071::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- if ((addr & 0xE000) == 0x6000)
- {
- SetPROM_16K_Bank(4, data);
- }
- }
+ //void Mapper071::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ if ((addr & 0xE000) == 0x6000)
+ {
+ SetPROM_16K_Bank(4, data);
+ }
+ }
- //void Mapper071::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr & 0xF000)
- {
- case 0x9000:
- if ((data & 0x10) != 0) SetVRAM_Mirror(VRAM_MIRROR4H);
- else SetVRAM_Mirror(VRAM_MIRROR4L);
- break;
+ //void Mapper071::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr & 0xF000)
+ {
+ case 0x9000:
+ if ((data & 0x10) != 0) SetVRAM_Mirror(VRAM_MIRROR4H);
+ else SetVRAM_Mirror(VRAM_MIRROR4L);
+ break;
- case 0xC000:
- case 0xD000:
- case 0xE000:
- case 0xF000:
- SetPROM_16K_Bank(4, data);
- break;
- }
- }
+ case 0xC000:
+ case 0xD000:
+ case 0xE000:
+ case 0xF000:
+ SetPROM_16K_Bank(4, data);
+ break;
+ }
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper072.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper072.cs
index f3dbc629..9fc7dc31 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper072.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper072.cs
@@ -1,13 +1,8 @@
//////////////////////////////////////////////////////////////////////////
// Mapper072 Jaleco/Type1 lower bank switch //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
using VirtualNes.Core.Debug;
+using static VirtualNes.MMU;
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper073.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper073.cs
index ce69fe03..7477d5c2 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper073.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper073.cs
@@ -1,94 +1,93 @@
//////////////////////////////////////////////////////////////////////////
// Mapper073 Konami VRC3 //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper073 : Mapper
- {
- BYTE irq_enable;
- INT irq_counter;
- public Mapper073(NES parent) : base(parent)
- {
- }
+ public class Mapper073 : Mapper
+ {
+ BYTE irq_enable;
+ INT irq_counter;
+ public Mapper073(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- irq_enable = 0;
- irq_counter = 0;
+ public override void Reset()
+ {
+ irq_enable = 0;
+ irq_counter = 0;
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- }
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ }
- //void Mapper073::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr)
- {
- case 0xF000:
- SetPROM_16K_Bank(4, data);
- break;
+ //void Mapper073::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr)
+ {
+ case 0xF000:
+ SetPROM_16K_Bank(4, data);
+ break;
- case 0x8000:
- irq_counter = (irq_counter & 0xFFF0) | (data & 0x0F);
- break;
- case 0x9000:
- irq_counter = (irq_counter & 0xFF0F) | ((data & 0x0F) << 4);
- break;
- case 0xA000:
- irq_counter = (irq_counter & 0xF0FF) | ((data & 0x0F) << 8);
- break;
- case 0xB000:
- irq_counter = (irq_counter & 0x0FFF) | ((data & 0x0F) << 12);
- break;
- case 0xC000:
- irq_enable = (byte)(data & 0x02);
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- case 0xD000:
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- }
- }
+ case 0x8000:
+ irq_counter = (irq_counter & 0xFFF0) | (data & 0x0F);
+ break;
+ case 0x9000:
+ irq_counter = (irq_counter & 0xFF0F) | ((data & 0x0F) << 4);
+ break;
+ case 0xA000:
+ irq_counter = (irq_counter & 0xF0FF) | ((data & 0x0F) << 8);
+ break;
+ case 0xB000:
+ irq_counter = (irq_counter & 0x0FFF) | ((data & 0x0F) << 12);
+ break;
+ case 0xC000:
+ irq_enable = (byte)(data & 0x02);
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ case 0xD000:
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ }
+ }
- //void Mapper073::Clock(INT cycles)
- public override void Clock(int cycles)
- {
- if (irq_enable != 0)
- {
- if ((irq_counter += cycles) >= 0xFFFF)
- {
- irq_enable = 0;
- irq_counter &= 0xFFFF;
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- }
- }
+ //void Mapper073::Clock(INT cycles)
+ public override void Clock(int cycles)
+ {
+ if (irq_enable != 0)
+ {
+ if ((irq_counter += cycles) >= 0xFFFF)
+ {
+ irq_enable = 0;
+ irq_counter &= 0xFFFF;
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ }
+ }
- //void Mapper073::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- //p[0] = irq_enable;
- //*(INT*)&p[1] = irq_counter;
- }
+ //void Mapper073::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ //p[0] = irq_enable;
+ //*(INT*)&p[1] = irq_counter;
+ }
- //void Mapper073::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- //irq_enable = p[0];
- //irq_counter = *(INT*)&p[1];
- }
+ //void Mapper073::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ //irq_enable = p[0];
+ //irq_counter = *(INT*)&p[1];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper074.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper074.cs
index 26602d9a..ecdd94d4 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper074.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper074.cs
@@ -1,312 +1,311 @@
//////////////////////////////////////////////////////////////////////////
// Mapper074 //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper074 : Mapper
- {
- BYTE[] reg = new byte[8];
- BYTE prg0, prg1;
- BYTE chr01, chr23, chr4, chr5, chr6, chr7;
- BYTE we_sram;
+ public class Mapper074 : Mapper
+ {
+ BYTE[] reg = new byte[8];
+ BYTE prg0, prg1;
+ BYTE chr01, chr23, chr4, chr5, chr6, chr7;
+ BYTE we_sram;
- BYTE irq_type;
- BYTE irq_enable;
- BYTE irq_counter;
- BYTE irq_latch;
- BYTE irq_request;
+ BYTE irq_type;
+ BYTE irq_enable;
+ BYTE irq_counter;
+ BYTE irq_latch;
+ BYTE irq_request;
- BYTE patch;
- public Mapper074(NES parent) : base(parent)
- {
- }
+ BYTE patch;
+ public Mapper074(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
+ public override void Reset()
- {
- for (INT i = 0; i < 8; i++)
- {
- reg[i] = 0x00;
- }
- prg0 = 0;
- prg1 = 1;
- SetBank_CPU();
+ {
+ for (INT i = 0; i < 8; i++)
+ {
+ reg[i] = 0x00;
+ }
+ prg0 = 0;
+ prg1 = 1;
+ SetBank_CPU();
- chr01 = 0;
- chr23 = 2;
- chr4 = 4;
- chr5 = 5;
- chr6 = 6;
- chr7 = 7;
- SetBank_PPU();
+ chr01 = 0;
+ chr23 = 2;
+ chr4 = 4;
+ chr5 = 5;
+ chr6 = 6;
+ chr7 = 7;
+ SetBank_PPU();
- we_sram = 0; // Disable
- irq_enable = 0; // Disable
- irq_counter = 0;
- irq_latch = 0;
- irq_request = 0;
- uint crc = nes.rom.GetPROM_CRC();
+ we_sram = 0; // Disable
+ irq_enable = 0; // Disable
+ irq_counter = 0;
+ irq_latch = 0;
+ irq_request = 0;
+ uint crc = nes.rom.GetPROM_CRC();
- patch = 0;
- if (crc == 0x37ae04a8)
- {
- patch = 1;
- nes.SetRenderMethod(EnumRenderMethod.TILE_RENDER);
- }
- }
+ patch = 0;
+ if (crc == 0x37ae04a8)
+ {
+ patch = 1;
+ nes.SetRenderMethod(EnumRenderMethod.TILE_RENDER);
+ }
+ }
- //void Mapper074::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- //DEBUGOUT( "MPRWR A=%04X D=%02X L=%3d CYC=%d\n", addr&0xFFFF, data&0xFF, nes.GetScanline(), nes.cpu.GetTotalCycles() );
+ //void Mapper074::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ //DEBUGOUT( "MPRWR A=%04X D=%02X L=%3d CYC=%d\n", addr&0xFFFF, data&0xFF, nes.GetScanline(), nes.cpu.GetTotalCycles() );
- switch (addr & 0xE001)
- {
- case 0x8000:
- reg[0] = data;
- SetBank_CPU();
- SetBank_PPU();
- break;
- case 0x8001:
- reg[1] = data;
+ switch (addr & 0xE001)
+ {
+ case 0x8000:
+ reg[0] = data;
+ SetBank_CPU();
+ SetBank_PPU();
+ break;
+ case 0x8001:
+ reg[1] = data;
- switch (reg[0] & 0x07)
- {
- case 0x00:
- chr01 = (byte)(data & 0xFE);
- SetBank_PPU();
- break;
- case 0x01:
- chr23 = (byte)(data & 0xFE);
- SetBank_PPU();
- break;
- case 0x02:
- chr4 = data;
- SetBank_PPU();
- break;
- case 0x03:
- chr5 = data;
- SetBank_PPU();
- break;
- case 0x04:
- chr6 = data;
- SetBank_PPU();
- break;
- case 0x05:
- chr7 = data;
- SetBank_PPU();
- break;
- case 0x06:
- prg0 = data;
- SetBank_CPU();
- break;
- case 0x07:
- prg1 = data;
- SetBank_CPU();
- break;
- }
- break;
- case 0xA000:
- reg[2] = data;
- if (!nes.rom.Is4SCREEN())
- {
- if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
- else SetVRAM_Mirror(VRAM_VMIRROR);
- }
- break;
- case 0xA001:
- reg[3] = data;
- break;
- case 0xC000:
- reg[4] = data;
- irq_counter = data;
- irq_request = 0;
- break;
- case 0xC001:
- reg[5] = data;
- irq_latch = data;
- irq_request = 0;
- break;
- case 0xE000:
- reg[6] = data;
- irq_enable = 0;
- irq_request = 0;
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- case 0xE001:
- reg[7] = data;
- irq_enable = 1;
- irq_request = 0;
- break;
- }
+ switch (reg[0] & 0x07)
+ {
+ case 0x00:
+ chr01 = (byte)(data & 0xFE);
+ SetBank_PPU();
+ break;
+ case 0x01:
+ chr23 = (byte)(data & 0xFE);
+ SetBank_PPU();
+ break;
+ case 0x02:
+ chr4 = data;
+ SetBank_PPU();
+ break;
+ case 0x03:
+ chr5 = data;
+ SetBank_PPU();
+ break;
+ case 0x04:
+ chr6 = data;
+ SetBank_PPU();
+ break;
+ case 0x05:
+ chr7 = data;
+ SetBank_PPU();
+ break;
+ case 0x06:
+ prg0 = data;
+ SetBank_CPU();
+ break;
+ case 0x07:
+ prg1 = data;
+ SetBank_CPU();
+ break;
+ }
+ break;
+ case 0xA000:
+ reg[2] = data;
+ if (!nes.rom.Is4SCREEN())
+ {
+ if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
+ else SetVRAM_Mirror(VRAM_VMIRROR);
+ }
+ break;
+ case 0xA001:
+ reg[3] = data;
+ break;
+ case 0xC000:
+ reg[4] = data;
+ irq_counter = data;
+ irq_request = 0;
+ break;
+ case 0xC001:
+ reg[5] = data;
+ irq_latch = data;
+ irq_request = 0;
+ break;
+ case 0xE000:
+ reg[6] = data;
+ irq_enable = 0;
+ irq_request = 0;
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ case 0xE001:
+ reg[7] = data;
+ irq_enable = 1;
+ irq_request = 0;
+ break;
+ }
- }
+ }
- //void Mapper074::HSync(INT scanline)
- public override void HSync(int scanline)
- {
- if ((scanline >= 0 && scanline <= 239))
- {
- if (nes.ppu.IsDispON())
- {
- if (irq_enable != 0 && irq_request == 0)
- {
- if (scanline == 0)
- {
- if (irq_counter != 0)
- {
- irq_counter--;
- }
- }
- if ((irq_counter--) == 0)
- {
- irq_request = 0xFF;
- irq_counter = irq_latch;
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- }
- }
- }
- }
+ //void Mapper074::HSync(INT scanline)
+ public override void HSync(int scanline)
+ {
+ if ((scanline >= 0 && scanline <= 239))
+ {
+ if (nes.ppu.IsDispON())
+ {
+ if (irq_enable != 0 && irq_request == 0)
+ {
+ if (scanline == 0)
+ {
+ if (irq_counter != 0)
+ {
+ irq_counter--;
+ }
+ }
+ if ((irq_counter--) == 0)
+ {
+ irq_request = 0xFF;
+ irq_counter = irq_latch;
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ }
+ }
+ }
+ }
- void SetBank_CPU()
- {
- if ((reg[0] & 0x40) != 0)
- {
- SetPROM_32K_Bank(PROM_8K_SIZE - 2, prg1, prg0, PROM_8K_SIZE - 1);
- }
- else
- {
- SetPROM_32K_Bank(prg0, prg1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- }
- }
+ void SetBank_CPU()
+ {
+ if ((reg[0] & 0x40) != 0)
+ {
+ SetPROM_32K_Bank(PROM_8K_SIZE - 2, prg1, prg0, PROM_8K_SIZE - 1);
+ }
+ else
+ {
+ SetPROM_32K_Bank(prg0, prg1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ }
+ }
- void SetBank_PPU()
- {
- if (VROM_1K_SIZE != 0)
- {
- if ((reg[0] & 0x80) != 0)
- {
- // SetVROM_8K_Bank( chr4, chr5, chr6, chr7,
- // chr01, chr01+1, chr23, chr23+1 );
- SetBank_PPUSUB(4, chr01 + 0);
- SetBank_PPUSUB(5, chr01 + 1);
- SetBank_PPUSUB(6, chr23 + 0);
- SetBank_PPUSUB(7, chr23 + 1);
- SetBank_PPUSUB(0, chr4);
- SetBank_PPUSUB(1, chr5);
- SetBank_PPUSUB(2, chr6);
- SetBank_PPUSUB(3, chr7);
- }
- else
- {
- // SetVROM_8K_Bank( chr01, chr01+1, chr23, chr23+1,
- // chr4, chr5, chr6, chr7 );
- SetBank_PPUSUB(0, chr01 + 0);
- SetBank_PPUSUB(1, chr01 + 1);
- SetBank_PPUSUB(2, chr23 + 0);
- SetBank_PPUSUB(3, chr23 + 1);
- SetBank_PPUSUB(4, chr4);
- SetBank_PPUSUB(5, chr5);
- SetBank_PPUSUB(6, chr6);
- SetBank_PPUSUB(7, chr7);
- }
- }
- else
- {
- if ((reg[0] & 0x80) != 0)
- {
- SetCRAM_1K_Bank(4, (chr01 + 0) & 0x07);
- SetCRAM_1K_Bank(5, (chr01 + 1) & 0x07);
- SetCRAM_1K_Bank(6, (chr23 + 0) & 0x07);
- SetCRAM_1K_Bank(7, (chr23 + 1) & 0x07);
- SetCRAM_1K_Bank(0, chr4 & 0x07);
- SetCRAM_1K_Bank(1, chr5 & 0x07);
- SetCRAM_1K_Bank(2, chr6 & 0x07);
- SetCRAM_1K_Bank(3, chr7 & 0x07);
- }
- else
- {
- SetCRAM_1K_Bank(0, (chr01 + 0) & 0x07);
- SetCRAM_1K_Bank(1, (chr01 + 1) & 0x07);
- SetCRAM_1K_Bank(2, (chr23 + 0) & 0x07);
- SetCRAM_1K_Bank(3, (chr23 + 1) & 0x07);
- SetCRAM_1K_Bank(4, chr4 & 0x07);
- SetCRAM_1K_Bank(5, chr5 & 0x07);
- SetCRAM_1K_Bank(6, chr6 & 0x07);
- SetCRAM_1K_Bank(7, chr7 & 0x07);
- }
- }
- }
+ void SetBank_PPU()
+ {
+ if (VROM_1K_SIZE != 0)
+ {
+ if ((reg[0] & 0x80) != 0)
+ {
+ // SetVROM_8K_Bank( chr4, chr5, chr6, chr7,
+ // chr01, chr01+1, chr23, chr23+1 );
+ SetBank_PPUSUB(4, chr01 + 0);
+ SetBank_PPUSUB(5, chr01 + 1);
+ SetBank_PPUSUB(6, chr23 + 0);
+ SetBank_PPUSUB(7, chr23 + 1);
+ SetBank_PPUSUB(0, chr4);
+ SetBank_PPUSUB(1, chr5);
+ SetBank_PPUSUB(2, chr6);
+ SetBank_PPUSUB(3, chr7);
+ }
+ else
+ {
+ // SetVROM_8K_Bank( chr01, chr01+1, chr23, chr23+1,
+ // chr4, chr5, chr6, chr7 );
+ SetBank_PPUSUB(0, chr01 + 0);
+ SetBank_PPUSUB(1, chr01 + 1);
+ SetBank_PPUSUB(2, chr23 + 0);
+ SetBank_PPUSUB(3, chr23 + 1);
+ SetBank_PPUSUB(4, chr4);
+ SetBank_PPUSUB(5, chr5);
+ SetBank_PPUSUB(6, chr6);
+ SetBank_PPUSUB(7, chr7);
+ }
+ }
+ else
+ {
+ if ((reg[0] & 0x80) != 0)
+ {
+ SetCRAM_1K_Bank(4, (chr01 + 0) & 0x07);
+ SetCRAM_1K_Bank(5, (chr01 + 1) & 0x07);
+ SetCRAM_1K_Bank(6, (chr23 + 0) & 0x07);
+ SetCRAM_1K_Bank(7, (chr23 + 1) & 0x07);
+ SetCRAM_1K_Bank(0, chr4 & 0x07);
+ SetCRAM_1K_Bank(1, chr5 & 0x07);
+ SetCRAM_1K_Bank(2, chr6 & 0x07);
+ SetCRAM_1K_Bank(3, chr7 & 0x07);
+ }
+ else
+ {
+ SetCRAM_1K_Bank(0, (chr01 + 0) & 0x07);
+ SetCRAM_1K_Bank(1, (chr01 + 1) & 0x07);
+ SetCRAM_1K_Bank(2, (chr23 + 0) & 0x07);
+ SetCRAM_1K_Bank(3, (chr23 + 1) & 0x07);
+ SetCRAM_1K_Bank(4, chr4 & 0x07);
+ SetCRAM_1K_Bank(5, chr5 & 0x07);
+ SetCRAM_1K_Bank(6, chr6 & 0x07);
+ SetCRAM_1K_Bank(7, chr7 & 0x07);
+ }
+ }
+ }
- void SetBank_PPUSUB(int bank, int page)
- {
- if (patch == 0 && (page == 8 || page == 9))
- {
- SetCRAM_1K_Bank((byte)bank, page & 7);
- }
- else if (patch == 1 && page >= 128)
- {
- SetCRAM_1K_Bank((byte)bank, page & 7);
- }
- else
- {
- SetVROM_1K_Bank((byte)bank, page);
- }
- }
+ void SetBank_PPUSUB(int bank, int page)
+ {
+ if (patch == 0 && (page == 8 || page == 9))
+ {
+ SetCRAM_1K_Bank((byte)bank, page & 7);
+ }
+ else if (patch == 1 && page >= 128)
+ {
+ SetCRAM_1K_Bank((byte)bank, page & 7);
+ }
+ else
+ {
+ SetVROM_1K_Bank((byte)bank, page);
+ }
+ }
- //void Mapper074::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- for (INT i = 0; i < 8; i++)
- {
- p[i] = reg[i];
- }
- p[8] = prg0;
- p[9] = prg1;
- p[10] = chr01;
- p[11] = chr23;
- p[12] = chr4;
- p[13] = chr5;
- p[14] = chr6;
- p[15] = chr7;
- p[16] = irq_enable;
- p[17] = irq_counter;
- p[18] = irq_latch;
- p[19] = irq_request;
- }
+ //void Mapper074::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ for (INT i = 0; i < 8; i++)
+ {
+ p[i] = reg[i];
+ }
+ p[8] = prg0;
+ p[9] = prg1;
+ p[10] = chr01;
+ p[11] = chr23;
+ p[12] = chr4;
+ p[13] = chr5;
+ p[14] = chr6;
+ p[15] = chr7;
+ p[16] = irq_enable;
+ p[17] = irq_counter;
+ p[18] = irq_latch;
+ p[19] = irq_request;
+ }
- //void Mapper074::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- for (INT i = 0; i < 8; i++)
- {
- reg[i] = p[i];
- }
- prg0 = p[8];
- prg1 = p[9];
- chr01 = p[10];
- chr23 = p[11];
- chr4 = p[12];
- chr5 = p[13];
- chr6 = p[14];
- chr7 = p[15];
- irq_enable = p[16];
- irq_counter = p[17];
- irq_latch = p[18];
- irq_request = p[19];
- }
+ //void Mapper074::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ for (INT i = 0; i < 8; i++)
+ {
+ reg[i] = p[i];
+ }
+ prg0 = p[8];
+ prg1 = p[9];
+ chr01 = p[10];
+ chr23 = p[11];
+ chr4 = p[12];
+ chr5 = p[13];
+ chr6 = p[14];
+ chr7 = p[15];
+ irq_enable = p[16];
+ irq_counter = p[17];
+ irq_latch = p[18];
+ irq_request = p[19];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper075.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper075.cs
index b5f57ce8..b22bae7f 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper075.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper075.cs
@@ -2,89 +2,86 @@
// Mapper075 Konami VRC1/Jaleco D65005 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper075 : Mapper
- {
- BYTE[] reg = new byte[2];
- public Mapper075(NES parent) : base(parent)
- {
- }
+ public class Mapper075 : Mapper
+ {
+ BYTE[] reg = new byte[2];
+ public Mapper075(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
+ public override void Reset()
- {
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ {
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- if (VROM_8K_SIZE != 0)
- {
- SetVROM_8K_Bank(0);
- }
- reg[0] = 0;
- reg[1] = 1;
- }
+ if (VROM_8K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0);
+ }
+ reg[0] = 0;
+ reg[1] = 1;
+ }
- //void Mapper075::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr & 0xF000)
- {
- case 0x8000:
- SetPROM_8K_Bank(4, data);
- break;
+ //void Mapper075::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr & 0xF000)
+ {
+ case 0x8000:
+ SetPROM_8K_Bank(4, data);
+ break;
- case 0x9000:
- if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
- else SetVRAM_Mirror(VRAM_VMIRROR);
+ case 0x9000:
+ if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
+ else SetVRAM_Mirror(VRAM_VMIRROR);
- reg[0] = (byte)((reg[0] & 0x0F) | ((data & 0x02) << 3));
- reg[1] = (byte)((reg[1] & 0x0F) | ((data & 0x04) << 2));
- SetVROM_4K_Bank(0, reg[0]);
- SetVROM_4K_Bank(4, reg[1]);
- break;
+ reg[0] = (byte)((reg[0] & 0x0F) | ((data & 0x02) << 3));
+ reg[1] = (byte)((reg[1] & 0x0F) | ((data & 0x04) << 2));
+ SetVROM_4K_Bank(0, reg[0]);
+ SetVROM_4K_Bank(4, reg[1]);
+ break;
- case 0xA000:
- SetPROM_8K_Bank(5, data);
- break;
- case 0xC000:
- SetPROM_8K_Bank(6, data);
- break;
+ case 0xA000:
+ SetPROM_8K_Bank(5, data);
+ break;
+ case 0xC000:
+ SetPROM_8K_Bank(6, data);
+ break;
- case 0xE000:
- reg[0] = (byte)((reg[0] & 0x10) | (data & 0x0F));
- SetVROM_4K_Bank(0, reg[0]);
- break;
+ case 0xE000:
+ reg[0] = (byte)((reg[0] & 0x10) | (data & 0x0F));
+ SetVROM_4K_Bank(0, reg[0]);
+ break;
- case 0xF000:
- reg[1] = (byte)((reg[1] & 0x10) | (data & 0x0F));
- SetVROM_4K_Bank(4, reg[1]);
- break;
- }
- }
+ case 0xF000:
+ reg[1] = (byte)((reg[1] & 0x10) | (data & 0x0F));
+ SetVROM_4K_Bank(4, reg[1]);
+ break;
+ }
+ }
- //void Mapper075::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- p[0] = reg[0];
- p[1] = reg[1];
- }
+ //void Mapper075::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ p[0] = reg[0];
+ p[1] = reg[1];
+ }
- //void Mapper075::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- reg[0] = p[0];
- reg[1] = p[1];
- }
+ //void Mapper075::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ reg[0] = p[0];
+ reg[1] = p[1];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper076.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper076.cs
index d6548352..0ae16ffa 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper076.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper076.cs
@@ -2,81 +2,78 @@
// Mapper076 Namcot 109 (女神転生) //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper076 : Mapper
- {
- BYTE reg;
- public Mapper076(NES parent) : base(parent)
- {
- }
+ public class Mapper076 : Mapper
+ {
+ BYTE reg;
+ public Mapper076(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- if (VROM_1K_SIZE >= 8)
- {
- SetVROM_8K_Bank(0);
- }
- }
+ if (VROM_1K_SIZE >= 8)
+ {
+ SetVROM_8K_Bank(0);
+ }
+ }
- //void Mapper076::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr)
- {
- case 0x8000:
- reg = data;
- break;
- case 0x8001:
- switch (reg & 0x07)
- {
- case 2:
- SetVROM_2K_Bank(0, data);
- break;
- case 3:
- SetVROM_2K_Bank(2, data);
- break;
- case 4:
- SetVROM_2K_Bank(4, data);
- break;
- case 5:
- SetVROM_2K_Bank(6, data);
- break;
- case 6:
- SetPROM_8K_Bank(4, data);
- break;
- case 7:
- SetPROM_8K_Bank(5, data);
- break;
- }
- break;
- }
- }
+ //void Mapper076::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr)
+ {
+ case 0x8000:
+ reg = data;
+ break;
+ case 0x8001:
+ switch (reg & 0x07)
+ {
+ case 2:
+ SetVROM_2K_Bank(0, data);
+ break;
+ case 3:
+ SetVROM_2K_Bank(2, data);
+ break;
+ case 4:
+ SetVROM_2K_Bank(4, data);
+ break;
+ case 5:
+ SetVROM_2K_Bank(6, data);
+ break;
+ case 6:
+ SetPROM_8K_Bank(4, data);
+ break;
+ case 7:
+ SetPROM_8K_Bank(5, data);
+ break;
+ }
+ break;
+ }
+ }
- //void Mapper076::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- p[0] = reg;
- }
+ //void Mapper076::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ p[0] = reg;
+ }
- //void Mapper076::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- reg = p[0];
- }
+ //void Mapper076::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ reg = p[0];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper077.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper077.cs
index 017025fb..a69be801 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper077.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper077.cs
@@ -2,38 +2,34 @@
// Mapper077 Irem Early Mapper #0 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper077 : Mapper
- {
- public Mapper077(NES parent) : base(parent)
- {
- }
+ public class Mapper077 : Mapper
+ {
+ public Mapper077(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- SetPROM_32K_Bank(0);
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0);
- SetVROM_2K_Bank(0, 0);
- SetCRAM_2K_Bank(2, 1);
- SetCRAM_2K_Bank(4, 2);
- SetCRAM_2K_Bank(6, 3);
- }
+ SetVROM_2K_Bank(0, 0);
+ SetCRAM_2K_Bank(2, 1);
+ SetCRAM_2K_Bank(4, 2);
+ SetCRAM_2K_Bank(6, 3);
+ }
- //void Mapper077::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- SetPROM_32K_Bank(data & 0x07);
+ //void Mapper077::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ SetPROM_32K_Bank(data & 0x07);
- SetVROM_2K_Bank(0, (data & 0xF0) >> 4);
- }
+ SetVROM_2K_Bank(0, (data & 0xF0) >> 4);
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper078.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper078.cs
index 2fbd0ba3..825297cd 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper078.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper078.cs
@@ -2,44 +2,40 @@
// Mapper078 Jaleco(Cosmo Carrier) //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper078 : Mapper
- {
- public Mapper078(NES parent) : base(parent)
- {
- }
+ public class Mapper078 : Mapper
+ {
+ public Mapper078(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- if (VROM_8K_SIZE != 0)
- {
- SetVROM_8K_Bank(0);
- }
- }
+ if (VROM_8K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0);
+ }
+ }
- //void Mapper078::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- //DEBUGOUT( "MAP78 WR $%04X=$%02X L=%d\n", addr, data, nes->GetScanline() );
- SetPROM_16K_Bank(4, data & 0x0F);
- SetVROM_8K_Bank((data & 0xF0) >> 4);
+ //void Mapper078::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ //DEBUGOUT( "MAP78 WR $%04X=$%02X L=%d\n", addr, data, nes->GetScanline() );
+ SetPROM_16K_Bank(4, data & 0x0F);
+ SetVROM_8K_Bank((data & 0xF0) >> 4);
- if ((addr & 0xFE00) != 0xFE00)
- {
- if ((data & 0x08) != 0) SetVRAM_Mirror(VRAM_MIRROR4H);
- else SetVRAM_Mirror(VRAM_MIRROR4L);
- }
- }
+ if ((addr & 0xFE00) != 0xFE00)
+ {
+ if ((data & 0x08) != 0) SetVRAM_Mirror(VRAM_MIRROR4H);
+ else SetVRAM_Mirror(VRAM_MIRROR4L);
+ }
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper079.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper079.cs
index f4db416c..f0be2680 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper079.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper079.cs
@@ -2,40 +2,36 @@
// Mapper079 Nina-3 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper079 : Mapper
- {
- public Mapper079(NES parent) : base(parent)
- {
- }
+ public class Mapper079 : Mapper
+ {
+ public Mapper079(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- SetPROM_32K_Bank(0);
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0);
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_8K_Bank(0);
- }
- }
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0);
+ }
+ }
- //void Mapper079::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- if ((addr & 0x0100) != 0)
- {
- SetPROM_32K_Bank((data >> 3) & 0x01);
- SetVROM_8K_Bank(data & 0x07);
- }
- }
+ //void Mapper079::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ if ((addr & 0x0100) != 0)
+ {
+ SetPROM_32K_Bank((data >> 3) & 0x01);
+ SetVROM_8K_Bank(data & 0x07);
+ }
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper080.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper080.cs
index 9e1fd76d..bfd6263c 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper080.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper080.cs
@@ -2,105 +2,101 @@
// Mapper080 Taito X1-005 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper080 : Mapper
- {
- public Mapper080(NES parent) : base(parent)
- {
- }
+ public class Mapper080 : Mapper
+ {
+ public Mapper080(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- if (VROM_8K_SIZE != 0)
- {
- SetVROM_8K_Bank(0);
- }
- }
+ if (VROM_8K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0);
+ }
+ }
- //void Mapper080::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- switch (addr)
- {
- case 0x7EF0:
- SetVROM_2K_Bank(0, (data >> 1) & 0x3F);
- if (PROM_8K_SIZE == 32)
- {
- if ((data & 0x80) != 0)
- {
- SetVRAM_1K_Bank(8, 1);
- SetVRAM_1K_Bank(9, 1);
- }
- else
- {
- SetVRAM_1K_Bank(8, 0);
- SetVRAM_1K_Bank(9, 0);
- }
- }
- break;
+ //void Mapper080::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ switch (addr)
+ {
+ case 0x7EF0:
+ SetVROM_2K_Bank(0, (data >> 1) & 0x3F);
+ if (PROM_8K_SIZE == 32)
+ {
+ if ((data & 0x80) != 0)
+ {
+ SetVRAM_1K_Bank(8, 1);
+ SetVRAM_1K_Bank(9, 1);
+ }
+ else
+ {
+ SetVRAM_1K_Bank(8, 0);
+ SetVRAM_1K_Bank(9, 0);
+ }
+ }
+ break;
- case 0x7EF1:
- SetVROM_2K_Bank(2, (data >> 1) & 0x3F);
- if (PROM_8K_SIZE == 32)
- {
- if ((data & 0x80) != 0)
- {
- SetVRAM_1K_Bank(10, 1);
- SetVRAM_1K_Bank(11, 1);
- }
- else
- {
- SetVRAM_1K_Bank(10, 0);
- SetVRAM_1K_Bank(11, 0);
- }
- }
- break;
+ case 0x7EF1:
+ SetVROM_2K_Bank(2, (data >> 1) & 0x3F);
+ if (PROM_8K_SIZE == 32)
+ {
+ if ((data & 0x80) != 0)
+ {
+ SetVRAM_1K_Bank(10, 1);
+ SetVRAM_1K_Bank(11, 1);
+ }
+ else
+ {
+ SetVRAM_1K_Bank(10, 0);
+ SetVRAM_1K_Bank(11, 0);
+ }
+ }
+ break;
- case 0x7EF2:
- SetVROM_1K_Bank(4, data);
- break;
- case 0x7EF3:
- SetVROM_1K_Bank(5, data);
- break;
- case 0x7EF4:
- SetVROM_1K_Bank(6, data);
- break;
- case 0x7EF5:
- SetVROM_1K_Bank(7, data);
- break;
+ case 0x7EF2:
+ SetVROM_1K_Bank(4, data);
+ break;
+ case 0x7EF3:
+ SetVROM_1K_Bank(5, data);
+ break;
+ case 0x7EF4:
+ SetVROM_1K_Bank(6, data);
+ break;
+ case 0x7EF5:
+ SetVROM_1K_Bank(7, data);
+ break;
- case 0x7EF6:
- if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_VMIRROR);
- else SetVRAM_Mirror(VRAM_HMIRROR);
- break;
+ case 0x7EF6:
+ if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_VMIRROR);
+ else SetVRAM_Mirror(VRAM_HMIRROR);
+ break;
- case 0x7EFA:
- case 0x7EFB:
- SetPROM_8K_Bank(4, data);
- break;
- case 0x7EFC:
- case 0x7EFD:
- SetPROM_8K_Bank(5, data);
- break;
- case 0x7EFE:
- case 0x7EFF:
- SetPROM_8K_Bank(6, data);
- break;
- default:
- base.WriteLow(addr, data);
- break;
- }
- }
+ case 0x7EFA:
+ case 0x7EFB:
+ SetPROM_8K_Bank(4, data);
+ break;
+ case 0x7EFC:
+ case 0x7EFD:
+ SetPROM_8K_Bank(5, data);
+ break;
+ case 0x7EFE:
+ case 0x7EFF:
+ SetPROM_8K_Bank(6, data);
+ break;
+ default:
+ base.WriteLow(addr, data);
+ break;
+ }
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper082.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper082.cs
index 43266b38..5f563d49 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper082.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper082.cs
@@ -2,118 +2,115 @@
// Mapper082 Taito C075 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
public class Mapper082 : Mapper
- {
- BYTE reg;
+ {
+ BYTE reg;
- public Mapper082(NES parent) : base(parent)
+ public Mapper082(NES parent) : base(parent)
{
}
public override void Reset()
- {
- reg = 0;
+ {
+ reg = 0;
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- if (VROM_8K_SIZE!=0)
- {
- SetVROM_8K_Bank(0);
- }
+ if (VROM_8K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0);
+ }
- SetVRAM_Mirror(VRAM_VMIRROR);
- }
+ SetVRAM_Mirror(VRAM_VMIRROR);
+ }
- //void Mapper082::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- switch (addr)
- {
- case 0x7EF0:
- if (reg!=0)
- {
- SetVROM_2K_Bank(4, data >> 1);
- }
- else
- {
- SetVROM_2K_Bank(0, data >> 1);
- }
- break;
+ //void Mapper082::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ switch (addr)
+ {
+ case 0x7EF0:
+ if (reg != 0)
+ {
+ SetVROM_2K_Bank(4, data >> 1);
+ }
+ else
+ {
+ SetVROM_2K_Bank(0, data >> 1);
+ }
+ break;
- case 0x7EF1:
- if (reg!=0)
- {
- SetVROM_2K_Bank(6, data >> 1);
- }
- else
- {
- SetVROM_2K_Bank(2, data >> 1);
- }
- break;
+ case 0x7EF1:
+ if (reg != 0)
+ {
+ SetVROM_2K_Bank(6, data >> 1);
+ }
+ else
+ {
+ SetVROM_2K_Bank(2, data >> 1);
+ }
+ break;
- case 0x7EF2:
- if (reg!=0) SetVROM_1K_Bank(0, data);
- else SetVROM_1K_Bank(4, data);
- break;
- case 0x7EF3:
- if (reg!=0) SetVROM_1K_Bank(1, data);
- else SetVROM_1K_Bank(5, data);
- break;
- case 0x7EF4:
- if (reg!=0) SetVROM_1K_Bank(2, data);
- else SetVROM_1K_Bank(6, data);
- break;
- case 0x7EF5:
- if (reg!=0) SetVROM_1K_Bank(3, data);
- else SetVROM_1K_Bank(7, data);
- break;
+ case 0x7EF2:
+ if (reg != 0) SetVROM_1K_Bank(0, data);
+ else SetVROM_1K_Bank(4, data);
+ break;
+ case 0x7EF3:
+ if (reg != 0) SetVROM_1K_Bank(1, data);
+ else SetVROM_1K_Bank(5, data);
+ break;
+ case 0x7EF4:
+ if (reg != 0) SetVROM_1K_Bank(2, data);
+ else SetVROM_1K_Bank(6, data);
+ break;
+ case 0x7EF5:
+ if (reg != 0) SetVROM_1K_Bank(3, data);
+ else SetVROM_1K_Bank(7, data);
+ break;
- case 0x7EF6:
- reg = (byte)(data & 0x02);
- if ((data & 0x01)!=0) SetVRAM_Mirror(VRAM_VMIRROR);
- else SetVRAM_Mirror(VRAM_HMIRROR);
- break;
+ case 0x7EF6:
+ reg = (byte)(data & 0x02);
+ if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_VMIRROR);
+ else SetVRAM_Mirror(VRAM_HMIRROR);
+ break;
- case 0x7EFA:
- SetPROM_8K_Bank(4, data >> 2);
- break;
- case 0x7EFB:
- SetPROM_8K_Bank(5, data >> 2);
- break;
- case 0x7EFC:
- SetPROM_8K_Bank(6, data >> 2);
- break;
- default:
- base.WriteLow(addr, data);
- break;
- }
- }
+ case 0x7EFA:
+ SetPROM_8K_Bank(4, data >> 2);
+ break;
+ case 0x7EFB:
+ SetPROM_8K_Bank(5, data >> 2);
+ break;
+ case 0x7EFC:
+ SetPROM_8K_Bank(6, data >> 2);
+ break;
+ default:
+ base.WriteLow(addr, data);
+ break;
+ }
+ }
- //void Mapper082::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- p[0] = reg;
- }
+ //void Mapper082::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ p[0] = reg;
+ }
- //void Mapper082::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- reg = p[0];
- }
+ //void Mapper082::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ reg = p[0];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper083.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper083.cs
index c6b30776..63f59e4f 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper083.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper083.cs
@@ -1,243 +1,242 @@
/////////////////////////////
// Mapper083 Cony //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper083 : Mapper
- {
- BYTE[] reg = new byte[3];
- INT chr_bank;
- BYTE irq_enable;
- INT irq_counter;
+ public class Mapper083 : Mapper
+ {
+ BYTE[] reg = new byte[3];
+ INT chr_bank;
+ BYTE irq_enable;
+ INT irq_counter;
- BYTE patch;
- public Mapper083(NES parent) : base(parent)
- {
- }
+ BYTE patch;
+ public Mapper083(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
+ public override void Reset()
- {
- for (INT i = 0; i < 3; i++)
- {
- reg[i] = 0x00;
- }
+ {
+ for (INT i = 0; i < 3; i++)
+ {
+ reg[i] = 0x00;
+ }
- if (PROM_8K_SIZE >= 32)
- {
- SetPROM_32K_Bank(0, 1, 30, 31);
- reg[1] = 0x30;
- }
- else
- {
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- }
+ if (PROM_8K_SIZE >= 32)
+ {
+ SetPROM_32K_Bank(0, 1, 30, 31);
+ reg[1] = 0x30;
+ }
+ else
+ {
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ }
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_8K_Bank(0);
- }
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0);
+ }
- chr_bank = 0;
+ chr_bank = 0;
- irq_enable = 0; // Disable
- irq_counter = 0;
+ irq_enable = 0; // Disable
+ irq_counter = 0;
- patch = 0;
- if (nes.rom.GetPROM_CRC() == 0x1461D1F8)
- {
- patch = 1;
- }
- }
+ patch = 0;
+ if (nes.rom.GetPROM_CRC() == 0x1461D1F8)
+ {
+ patch = 1;
+ }
+ }
- //BYTE Mapper083::ReadLow(WORD addr)
- public override byte ReadLow(ushort addr)
- {
- if ((addr & 0x5100) == 0x5100)
- {
- return reg[2];
- }
- else if (addr >= 0x6000)
- {
- return base.ReadLow(addr);
- }
- return (BYTE)(addr >> 8);
- }
+ //BYTE Mapper083::ReadLow(WORD addr)
+ public override byte ReadLow(ushort addr)
+ {
+ if ((addr & 0x5100) == 0x5100)
+ {
+ return reg[2];
+ }
+ else if (addr >= 0x6000)
+ {
+ return base.ReadLow(addr);
+ }
+ return (BYTE)(addr >> 8);
+ }
- //void Mapper083::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- //DEBUGOUT( "MPRWR A=%04X D=%02X L=%3d CYC=%d\n", addr&0xFFFF, data&0xFF, nes.GetScanline(), nes.cpu.GetTotalCycles() );
- switch (addr)
- {
- case 0x5101:
- case 0x5102:
- case 0x5103:
- reg[2] = data;
- break;
- }
+ //void Mapper083::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ //DEBUGOUT( "MPRWR A=%04X D=%02X L=%3d CYC=%d\n", addr&0xFFFF, data&0xFF, nes.GetScanline(), nes.cpu.GetTotalCycles() );
+ switch (addr)
+ {
+ case 0x5101:
+ case 0x5102:
+ case 0x5103:
+ reg[2] = data;
+ break;
+ }
- if (addr >= 0x6000)
- {
- base.WriteLow(addr, data);
- }
- }
+ if (addr >= 0x6000)
+ {
+ base.WriteLow(addr, data);
+ }
+ }
- //void Mapper083::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- //DEBUGOUT( "MPRWR A=%04X D=%02X L=%3d CYC=%d\n", addr&0xFFFF, data&0xFF, nes.GetScanline(), nes.cpu.GetTotalCycles() );
- switch (addr)
- {
- case 0x8000:
- case 0xB000:
- case 0xB0FF:
- case 0xB1FF:
- reg[0] = data;
- chr_bank = (data & 0x30) << 4;
- SetPROM_16K_Bank(4, data);
- SetPROM_16K_Bank(6, (data & 0x30) | 0x0F);
- break;
+ //void Mapper083::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ //DEBUGOUT( "MPRWR A=%04X D=%02X L=%3d CYC=%d\n", addr&0xFFFF, data&0xFF, nes.GetScanline(), nes.cpu.GetTotalCycles() );
+ switch (addr)
+ {
+ case 0x8000:
+ case 0xB000:
+ case 0xB0FF:
+ case 0xB1FF:
+ reg[0] = data;
+ chr_bank = (data & 0x30) << 4;
+ SetPROM_16K_Bank(4, data);
+ SetPROM_16K_Bank(6, (data & 0x30) | 0x0F);
+ break;
- case 0x8100:
- reg[1] = (byte)(data & 0x80);
- data &= 0x03;
- if (data == 0) SetVRAM_Mirror(VRAM_VMIRROR);
- else if (data == 1) SetVRAM_Mirror(VRAM_HMIRROR);
- else if (data == 2) SetVRAM_Mirror(VRAM_MIRROR4L);
- else SetVRAM_Mirror(VRAM_MIRROR4H);
- break;
+ case 0x8100:
+ reg[1] = (byte)(data & 0x80);
+ data &= 0x03;
+ if (data == 0) SetVRAM_Mirror(VRAM_VMIRROR);
+ else if (data == 1) SetVRAM_Mirror(VRAM_HMIRROR);
+ else if (data == 2) SetVRAM_Mirror(VRAM_MIRROR4L);
+ else SetVRAM_Mirror(VRAM_MIRROR4H);
+ break;
- case 0x8200:
- irq_counter = (irq_counter & 0xFF00) | (INT)data;
- // nes.cpu.ClrIRQ( IRQ_MAPPER );
- break;
- case 0x8201:
- irq_counter = (irq_counter & 0x00FF) | ((INT)data << 8);
- irq_enable = reg[1];
- // nes.cpu.ClrIRQ( IRQ_MAPPER );
- break;
+ case 0x8200:
+ irq_counter = (irq_counter & 0xFF00) | (INT)data;
+ // nes.cpu.ClrIRQ( IRQ_MAPPER );
+ break;
+ case 0x8201:
+ irq_counter = (irq_counter & 0x00FF) | ((INT)data << 8);
+ irq_enable = reg[1];
+ // nes.cpu.ClrIRQ( IRQ_MAPPER );
+ break;
- case 0x8300:
- SetPROM_8K_Bank(4, data);
- break;
- case 0x8301:
- SetPROM_8K_Bank(5, data);
- break;
- case 0x8302:
- SetPROM_8K_Bank(6, data);
- break;
+ case 0x8300:
+ SetPROM_8K_Bank(4, data);
+ break;
+ case 0x8301:
+ SetPROM_8K_Bank(5, data);
+ break;
+ case 0x8302:
+ SetPROM_8K_Bank(6, data);
+ break;
- case 0x8310:
- if (patch != 0)
- {
- SetVROM_2K_Bank(0, chr_bank | data);
- }
- else
- {
- SetVROM_1K_Bank(0, chr_bank | data);
- }
- break;
- case 0x8311:
- if (patch != 0)
- {
- SetVROM_2K_Bank(2, chr_bank | data);
- }
- else
- {
- SetVROM_1K_Bank(1, chr_bank | data);
- }
- break;
- case 0x8312:
- SetVROM_1K_Bank(2, chr_bank | data);
- break;
- case 0x8313:
- SetVROM_1K_Bank(3, chr_bank | data);
- break;
- case 0x8314:
- SetVROM_1K_Bank(4, chr_bank | data);
- break;
- case 0x8315:
- SetVROM_1K_Bank(5, chr_bank | data);
- break;
- case 0x8316:
- if (patch != 0)
- {
- SetVROM_2K_Bank(4, chr_bank | data);
- }
- else
- {
- SetVROM_1K_Bank(6, chr_bank | data);
- }
- break;
- case 0x8317:
- if (patch != 0)
- {
- SetVROM_2K_Bank(6, chr_bank | data);
- }
- else
- {
- SetVROM_1K_Bank(7, chr_bank | data);
- }
- break;
+ case 0x8310:
+ if (patch != 0)
+ {
+ SetVROM_2K_Bank(0, chr_bank | data);
+ }
+ else
+ {
+ SetVROM_1K_Bank(0, chr_bank | data);
+ }
+ break;
+ case 0x8311:
+ if (patch != 0)
+ {
+ SetVROM_2K_Bank(2, chr_bank | data);
+ }
+ else
+ {
+ SetVROM_1K_Bank(1, chr_bank | data);
+ }
+ break;
+ case 0x8312:
+ SetVROM_1K_Bank(2, chr_bank | data);
+ break;
+ case 0x8313:
+ SetVROM_1K_Bank(3, chr_bank | data);
+ break;
+ case 0x8314:
+ SetVROM_1K_Bank(4, chr_bank | data);
+ break;
+ case 0x8315:
+ SetVROM_1K_Bank(5, chr_bank | data);
+ break;
+ case 0x8316:
+ if (patch != 0)
+ {
+ SetVROM_2K_Bank(4, chr_bank | data);
+ }
+ else
+ {
+ SetVROM_1K_Bank(6, chr_bank | data);
+ }
+ break;
+ case 0x8317:
+ if (patch != 0)
+ {
+ SetVROM_2K_Bank(6, chr_bank | data);
+ }
+ else
+ {
+ SetVROM_1K_Bank(7, chr_bank | data);
+ }
+ break;
- case 0x8318:
- SetPROM_16K_Bank(4, (reg[0] & 0x30) | data);
- break;
- }
- }
+ case 0x8318:
+ SetPROM_16K_Bank(4, (reg[0] & 0x30) | data);
+ break;
+ }
+ }
- //void Mapper083::HSync(INT scanline)
- public override void HSync(int scanline)
- {
- if (irq_enable != 0)
- {
- if (irq_counter <= 113)
- {
- // nes.cpu.IRQ();
- irq_enable = 0;
- // nes.cpu.SetIRQ( IRQ_MAPPER );
- nes.cpu.SetIRQ(IRQ_TRIGGER);
- }
- else
- {
- irq_counter -= 113;
- }
- }
- }
+ //void Mapper083::HSync(INT scanline)
+ public override void HSync(int scanline)
+ {
+ if (irq_enable != 0)
+ {
+ if (irq_counter <= 113)
+ {
+ // nes.cpu.IRQ();
+ irq_enable = 0;
+ // nes.cpu.SetIRQ( IRQ_MAPPER );
+ nes.cpu.SetIRQ(IRQ_TRIGGER);
+ }
+ else
+ {
+ irq_counter -= 113;
+ }
+ }
+ }
- //void Mapper083::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- //p[0] = reg[0];
- //p[1] = reg[1];
- //p[2] = reg[2];
- //*(INT*)&p[3] = chr_bank;
- //p[7] = irq_enable;
- //*(INT*)&p[8] = irq_counter;
- }
+ //void Mapper083::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ //p[0] = reg[0];
+ //p[1] = reg[1];
+ //p[2] = reg[2];
+ //*(INT*)&p[3] = chr_bank;
+ //p[7] = irq_enable;
+ //*(INT*)&p[8] = irq_counter;
+ }
- //void Mapper083::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- //reg[0] = p[0];
- //reg[1] = p[1];
- //reg[2] = p[2];
- //chr_bank = *(INT*)&p[3];
- //irq_enable = p[7];
- //irq_counter = *(INT*)&p[8];
- }
+ //void Mapper083::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ //reg[0] = p[0];
+ //reg[1] = p[1];
+ //reg[2] = p[2];
+ //chr_bank = *(INT*)&p[3];
+ //irq_enable = p[7];
+ //irq_counter = *(INT*)&p[8];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper085.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper085.cs
index b359ff0a..b3e6c41c 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper085.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper085.cs
@@ -1,43 +1,42 @@
//////////////////////////////////////////////////////////////////////////
// Mapper085 Konami VRC7 //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper085 : Mapper
- {
+ public class Mapper085 : Mapper
+ {
- BYTE irq_enable;
- BYTE irq_counter;
- BYTE irq_latch;
- INT irq_clock;
- public Mapper085(NES parent) : base(parent)
- {
- }
+ BYTE irq_enable;
+ BYTE irq_counter;
+ BYTE irq_latch;
+ INT irq_clock;
+ public Mapper085(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
+ public override void Reset()
- {
- irq_enable = 0;
- irq_counter = 0;
- irq_latch = 0;
- irq_clock = 0;
+ {
+ irq_enable = 0;
+ irq_counter = 0;
+ irq_latch = 0;
+ irq_clock = 0;
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_8K_Bank(0);
- }
- else
- {
- SetCRAM_8K_Bank(0);
- }
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0);
+ }
+ else
+ {
+ SetCRAM_8K_Bank(0);
+ }
#if FALSE//0
// DWORD crc = nes.rom.GetPROM_CRC();
@@ -48,191 +47,191 @@ namespace VirtualNes.Core
// nes.SetRenderMethod( NES::TILE_RENDER );
// }
#endif
- nes.apu.SelectExSound(2);
- }
+ nes.apu.SelectExSound(2);
+ }
- //void Mapper085::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr & 0xF038)
- {
- case 0x8000:
- SetPROM_8K_Bank(4, data);
- break;
- case 0x8008:
- case 0x8010:
- SetPROM_8K_Bank(5, data);
- break;
- case 0x9000:
- SetPROM_8K_Bank(6, data);
- break;
+ //void Mapper085::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr & 0xF038)
+ {
+ case 0x8000:
+ SetPROM_8K_Bank(4, data);
+ break;
+ case 0x8008:
+ case 0x8010:
+ SetPROM_8K_Bank(5, data);
+ break;
+ case 0x9000:
+ SetPROM_8K_Bank(6, data);
+ break;
- case 0x9010:
- case 0x9030:
- nes.apu.ExWrite(addr, data);
- break;
+ case 0x9010:
+ case 0x9030:
+ nes.apu.ExWrite(addr, data);
+ break;
- case 0xA000:
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_1K_Bank(0, data);
- }
- else
- {
- SetCRAM_1K_Bank(0, data);
- }
- break;
+ case 0xA000:
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_1K_Bank(0, data);
+ }
+ else
+ {
+ SetCRAM_1K_Bank(0, data);
+ }
+ break;
- case 0xA008:
- case 0xA010:
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_1K_Bank(1, data);
- }
- else
- {
- SetCRAM_1K_Bank(1, data);
- }
- break;
+ case 0xA008:
+ case 0xA010:
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_1K_Bank(1, data);
+ }
+ else
+ {
+ SetCRAM_1K_Bank(1, data);
+ }
+ break;
- case 0xB000:
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_1K_Bank(2, data);
- }
- else
- {
- SetCRAM_1K_Bank(2, data);
- }
- break;
+ case 0xB000:
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_1K_Bank(2, data);
+ }
+ else
+ {
+ SetCRAM_1K_Bank(2, data);
+ }
+ break;
- case 0xB008:
- case 0xB010:
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_1K_Bank(3, data);
- }
- else
- {
- SetCRAM_1K_Bank(3, data);
- }
- break;
+ case 0xB008:
+ case 0xB010:
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_1K_Bank(3, data);
+ }
+ else
+ {
+ SetCRAM_1K_Bank(3, data);
+ }
+ break;
- case 0xC000:
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_1K_Bank(4, data);
- }
- else
- {
- SetCRAM_1K_Bank(4, data);
- }
- break;
+ case 0xC000:
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_1K_Bank(4, data);
+ }
+ else
+ {
+ SetCRAM_1K_Bank(4, data);
+ }
+ break;
- case 0xC008:
- case 0xC010:
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_1K_Bank(5, data);
- }
- else
- {
- SetCRAM_1K_Bank(5, data);
- }
- break;
+ case 0xC008:
+ case 0xC010:
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_1K_Bank(5, data);
+ }
+ else
+ {
+ SetCRAM_1K_Bank(5, data);
+ }
+ break;
- case 0xD000:
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_1K_Bank(6, data);
- }
- else
- {
- SetCRAM_1K_Bank(6, data);
- }
- break;
+ case 0xD000:
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_1K_Bank(6, data);
+ }
+ else
+ {
+ SetCRAM_1K_Bank(6, data);
+ }
+ break;
- case 0xD008:
- case 0xD010:
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_1K_Bank(7, data);
- }
- else
- {
- SetCRAM_1K_Bank(7, data);
- }
- break;
+ case 0xD008:
+ case 0xD010:
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_1K_Bank(7, data);
+ }
+ else
+ {
+ SetCRAM_1K_Bank(7, data);
+ }
+ break;
- case 0xE000:
- data &= 0x03;
- if (data == 0) SetVRAM_Mirror(VRAM_VMIRROR);
- else if (data == 1) SetVRAM_Mirror(VRAM_HMIRROR);
- else if (data == 2) SetVRAM_Mirror(VRAM_MIRROR4L);
- else SetVRAM_Mirror(VRAM_MIRROR4H);
- break;
+ case 0xE000:
+ data &= 0x03;
+ if (data == 0) SetVRAM_Mirror(VRAM_VMIRROR);
+ else if (data == 1) SetVRAM_Mirror(VRAM_HMIRROR);
+ else if (data == 2) SetVRAM_Mirror(VRAM_MIRROR4L);
+ else SetVRAM_Mirror(VRAM_MIRROR4H);
+ break;
- case 0xE008:
- case 0xE010:
- irq_latch = data;
- break;
+ case 0xE008:
+ case 0xE010:
+ irq_latch = data;
+ break;
- case 0xF000:
- irq_enable = (byte)(data & 0x03);
- irq_counter = irq_latch;
- irq_clock = 0;
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
+ case 0xF000:
+ irq_enable = (byte)(data & 0x03);
+ irq_counter = irq_latch;
+ irq_clock = 0;
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
- case 0xF008:
- case 0xF010:
- irq_enable = (byte)((irq_enable & 0x01) * 3);
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- }
- }
+ case 0xF008:
+ case 0xF010:
+ irq_enable = (byte)((irq_enable & 0x01) * 3);
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ }
+ }
- //void Mapper085::Clock(INT cycles)
- public override void Clock(int cycles)
- {
- if ((irq_enable & 0x02) != 0)
- {
- irq_clock += cycles * 4;
- while (irq_clock >= 455)
- {
- irq_clock -= 455;
- irq_counter++;
- if (irq_counter == 0)
- {
- irq_counter = irq_latch;
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- }
- }
- }
+ //void Mapper085::Clock(INT cycles)
+ public override void Clock(int cycles)
+ {
+ if ((irq_enable & 0x02) != 0)
+ {
+ irq_clock += cycles * 4;
+ while (irq_clock >= 455)
+ {
+ irq_clock -= 455;
+ irq_counter++;
+ if (irq_counter == 0)
+ {
+ irq_counter = irq_latch;
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ }
+ }
+ }
- //void Mapper085::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- //p[0] = irq_enable;
- //p[1] = irq_counter;
- //p[2] = irq_latch;
- //*((INT*)&p[4]) = irq_clock;
- }
+ //void Mapper085::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ //p[0] = irq_enable;
+ //p[1] = irq_counter;
+ //p[2] = irq_latch;
+ //*((INT*)&p[4]) = irq_clock;
+ }
- //void Mapper085::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- //irq_enable = p[0];
- //irq_counter = p[1];
- //irq_latch = p[2];
- //irq_clock = *((INT*)&p[4]);
- }
+ //void Mapper085::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ //irq_enable = p[0];
+ //irq_counter = p[1];
+ //irq_latch = p[2];
+ //irq_clock = *((INT*)&p[4]);
+ }
- public override bool IsStateSave()
- {
- return true;
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper086.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper086.cs
index 1452d920..694e2679 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper086.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper086.cs
@@ -2,11 +2,8 @@
// Mapper086 Jaleco Early Mapper #2 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper087.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper087.cs
index 71838e9c..c9d85ac7 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper087.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper087.cs
@@ -2,35 +2,31 @@
// Mapper087 Konami 74161/32 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
public class Mapper087 : Mapper
{
- public Mapper087(NES parent) : base(parent)
+ public Mapper087(NES parent) : base(parent)
{
}
public override void Reset()
- {
- SetPROM_32K_Bank(0, 1, 2, 3);
- SetVROM_8K_Bank(0);
- }
+ {
+ SetPROM_32K_Bank(0, 1, 2, 3);
+ SetVROM_8K_Bank(0);
+ }
- //void Mapper087::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- if (addr == 0x6000)
- {
- SetVROM_8K_Bank((data & 0x02) >> 1);
- }
- }
+ //void Mapper087::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ if (addr == 0x6000)
+ {
+ SetVROM_8K_Bank((data & 0x02) >> 1);
+ }
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper088.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper088.cs
index 8389c82e..b45c00af 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper088.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper088.cs
@@ -1,107 +1,104 @@
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper088 : Mapper
- {
- BYTE reg;
- BYTE patch;
- public Mapper088(NES parent) : base(parent)
- {
- }
+ public class Mapper088 : Mapper
+ {
+ BYTE reg;
+ BYTE patch;
+ public Mapper088(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
+ public override void Reset()
- {
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ {
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- if (VROM_1K_SIZE >= 8)
- {
- SetVROM_8K_Bank(0);
- }
- patch = 0;
+ if (VROM_1K_SIZE >= 8)
+ {
+ SetVROM_8K_Bank(0);
+ }
+ patch = 0;
- uint crc = nes.rom.GetPROM_CRC();
- if (crc == 0xc1b6b2a6)
- { // Devil Man(J)
- patch = 1;
- nes.SetRenderMethod(EnumRenderMethod.POST_RENDER);
- }
- if (crc == 0xd9803a35)
- { // Quinty(J)
- nes.SetRenderMethod(EnumRenderMethod.POST_RENDER);
- }
- }
+ uint crc = nes.rom.GetPROM_CRC();
+ if (crc == 0xc1b6b2a6)
+ { // Devil Man(J)
+ patch = 1;
+ nes.SetRenderMethod(EnumRenderMethod.POST_RENDER);
+ }
+ if (crc == 0xd9803a35)
+ { // Quinty(J)
+ nes.SetRenderMethod(EnumRenderMethod.POST_RENDER);
+ }
+ }
- //void Mapper088::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr)
- {
- case 0x8000:
- reg = data;
- if (patch != 0)
- {
- if ((data & 0x40) != 0) SetVRAM_Mirror(VRAM_MIRROR4H);
- else SetVRAM_Mirror(VRAM_MIRROR4L);
- }
- break;
- case 0x8001:
- switch (reg & 0x07)
- {
- case 0:
- SetVROM_2K_Bank(0, data >> 1);
- break;
- case 1:
- SetVROM_2K_Bank(2, data >> 1);
- break;
- case 2:
- SetVROM_1K_Bank(4, data + 0x40);
- break;
- case 3:
- SetVROM_1K_Bank(5, data + 0x40);
- break;
- case 4:
- SetVROM_1K_Bank(6, data + 0x40);
- break;
- case 5:
- SetVROM_1K_Bank(7, data + 0x40);
- break;
- case 6:
- SetPROM_8K_Bank(4, data);
- break;
- case 7:
- SetPROM_8K_Bank(5, data);
- break;
- }
- break;
- case 0xC000:
- if (data != 0) SetVRAM_Mirror(VRAM_MIRROR4H);
- else SetVRAM_Mirror(VRAM_MIRROR4L);
- break;
- }
- }
+ //void Mapper088::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr)
+ {
+ case 0x8000:
+ reg = data;
+ if (patch != 0)
+ {
+ if ((data & 0x40) != 0) SetVRAM_Mirror(VRAM_MIRROR4H);
+ else SetVRAM_Mirror(VRAM_MIRROR4L);
+ }
+ break;
+ case 0x8001:
+ switch (reg & 0x07)
+ {
+ case 0:
+ SetVROM_2K_Bank(0, data >> 1);
+ break;
+ case 1:
+ SetVROM_2K_Bank(2, data >> 1);
+ break;
+ case 2:
+ SetVROM_1K_Bank(4, data + 0x40);
+ break;
+ case 3:
+ SetVROM_1K_Bank(5, data + 0x40);
+ break;
+ case 4:
+ SetVROM_1K_Bank(6, data + 0x40);
+ break;
+ case 5:
+ SetVROM_1K_Bank(7, data + 0x40);
+ break;
+ case 6:
+ SetPROM_8K_Bank(4, data);
+ break;
+ case 7:
+ SetPROM_8K_Bank(5, data);
+ break;
+ }
+ break;
+ case 0xC000:
+ if (data != 0) SetVRAM_Mirror(VRAM_MIRROR4H);
+ else SetVRAM_Mirror(VRAM_MIRROR4L);
+ break;
+ }
+ }
- //void Mapper088::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- p[0] = reg;
- }
+ //void Mapper088::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ p[0] = reg;
+ }
- //void Mapper088::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- reg = p[0];
- }
+ //void Mapper088::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ reg = p[0];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper089.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper089.cs
index 880093cd..4af77b83 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper089.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper089.cs
@@ -2,40 +2,36 @@
// Mapper089 SunSoft (水戸黄門) //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper089 : Mapper
- {
- public Mapper089(NES parent) : base(parent)
- {
- }
+ public class Mapper089 : Mapper
+ {
+ public Mapper089(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- SetVROM_8K_Bank(0);
- }
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ SetVROM_8K_Bank(0);
+ }
- //void Mapper089::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- if ((addr & 0xFF00) == 0xC000)
- {
- SetPROM_16K_Bank(4, (data & 0x70) >> 4);
+ //void Mapper089::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ if ((addr & 0xFF00) == 0xC000)
+ {
+ SetPROM_16K_Bank(4, (data & 0x70) >> 4);
- SetVROM_8K_Bank(((data & 0x80) >> 4) | (data & 0x07));
+ SetVROM_8K_Bank(((data & 0x80) >> 4) | (data & 0x07));
- if ((data & 0x08) != 0) SetVRAM_Mirror(VRAM_MIRROR4H);
- else SetVRAM_Mirror(VRAM_MIRROR4L);
- }
- }
+ if ((data & 0x08) != 0) SetVRAM_Mirror(VRAM_MIRROR4H);
+ else SetVRAM_Mirror(VRAM_MIRROR4L);
+ }
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper090.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper090.cs
index d6fd17d6..904f56e6 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper090.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper090.cs
@@ -1,13 +1,11 @@
//////////////////////////////////////////////////////////////////////////
// Mapper090 PC-JY-?? //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
using VirtualNes.Core.Debug;
+using static VirtualNes.Core.CPU;
+using static VirtualNes.MMU;
+using BYTE = System.Byte;
+using INT = System.Int32;
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper091.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper091.cs
index 3143f3de..f307104e 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper091.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper091.cs
@@ -1,104 +1,102 @@
//////////////////////////////////////////////////////////////////////////
// Mapper091 PC-HK-SF3 //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper091 : Mapper
- {
- BYTE irq_enable;
- BYTE irq_counter;
- public Mapper091(NES parent) : base(parent)
- {
- }
+ public class Mapper091 : Mapper
+ {
+ BYTE irq_enable;
+ BYTE irq_counter;
+ public Mapper091(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- SetPROM_32K_Bank(PROM_8K_SIZE - 2, PROM_8K_SIZE - 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(PROM_8K_SIZE - 2, PROM_8K_SIZE - 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- if (VROM_8K_SIZE != 0)
- {
- SetVROM_8K_Bank(0, 0, 0, 0, 0, 0, 0, 0);
- }
+ if (VROM_8K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0, 0, 0, 0, 0, 0, 0, 0);
+ }
- irq_enable = 0;
- irq_counter = 0;
+ irq_enable = 0;
+ irq_counter = 0;
- nes.SetRenderMethod(EnumRenderMethod.POST_ALL_RENDER);
- }
+ nes.SetRenderMethod(EnumRenderMethod.POST_ALL_RENDER);
+ }
- //void Mapper091::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- //DEBUGOUT( "$%04X:$%02X(%3d) L=%3d\n", addr, data, data, nes.GetScanline() );
- switch (addr & 0xF003)
- {
- case 0x6000:
- case 0x6001:
- case 0x6002:
- case 0x6003:
- SetVROM_2K_Bank((byte)((addr & 0x03) * 2), data);
- break;
+ //void Mapper091::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ //DEBUGOUT( "$%04X:$%02X(%3d) L=%3d\n", addr, data, data, nes.GetScanline() );
+ switch (addr & 0xF003)
+ {
+ case 0x6000:
+ case 0x6001:
+ case 0x6002:
+ case 0x6003:
+ SetVROM_2K_Bank((byte)((addr & 0x03) * 2), data);
+ break;
- case 0x7000:
- SetPROM_8K_Bank(4, data);
- break;
- case 0x7001:
- SetPROM_8K_Bank(5, data);
- break;
+ case 0x7000:
+ SetPROM_8K_Bank(4, data);
+ break;
+ case 0x7001:
+ SetPROM_8K_Bank(5, data);
+ break;
- case 0x7002:
- irq_enable = 0;
- irq_counter = 0;
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- case 0x7003:
- irq_enable = 1;
- break;
- }
- }
+ case 0x7002:
+ irq_enable = 0;
+ irq_counter = 0;
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ case 0x7003:
+ irq_enable = 1;
+ break;
+ }
+ }
- //void Mapper091::HSync(INT scanline)
- public override void HSync(int scanline)
- {
- if ((scanline >= 0 && scanline < 240) && nes.ppu.IsDispON())
- {
- if (irq_enable != 0)
- {
- irq_counter++;
- }
- if (irq_counter >= 8)
- {
- // nes.cpu.IRQ_NotPending();
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- }
- }
+ //void Mapper091::HSync(INT scanline)
+ public override void HSync(int scanline)
+ {
+ if ((scanline >= 0 && scanline < 240) && nes.ppu.IsDispON())
+ {
+ if (irq_enable != 0)
+ {
+ irq_counter++;
+ }
+ if (irq_counter >= 8)
+ {
+ // nes.cpu.IRQ_NotPending();
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ }
+ }
- //void Mapper091::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- p[0] = irq_enable;
- p[1] = irq_counter;
- }
+ //void Mapper091::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ p[0] = irq_enable;
+ p[1] = irq_counter;
+ }
- //void Mapper091::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- irq_enable = p[0];
- irq_counter = p[1];
- }
+ //void Mapper091::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ irq_enable = p[0];
+ irq_counter = p[1];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper092.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper092.cs
index 37a908aa..89d244b4 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper092.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper092.cs
@@ -1,13 +1,9 @@
/////////////////////////////////
// Mapper092 Jaleco/Type1 Higher bank switch //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
using VirtualNes.Core.Debug;
+using static VirtualNes.MMU;
+using INT = System.Int32;
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper093.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper093.cs
index 944ef80e..3cef8265 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper093.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper093.cs
@@ -2,37 +2,33 @@
// Mapper093 SunSoft (Fantasy Zone) //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper093 : Mapper
- {
- public Mapper093(NES parent) : base(parent)
- {
- }
+ public class Mapper093 : Mapper
+ {
+ public Mapper093(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- if (VROM_8K_SIZE != 0)
- {
- SetVROM_8K_Bank(0);
- }
- }
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ if (VROM_8K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0);
+ }
+ }
- //void Mapper093::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- if (addr == 0x6000)
- {
- SetPROM_16K_Bank(4, data);
- }
- }
+ //void Mapper093::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ if (addr == 0x6000)
+ {
+ SetPROM_16K_Bank(4, data);
+ }
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper094.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper094.cs
index cebd932a..e954b1da 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper094.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper094.cs
@@ -2,34 +2,30 @@
// Mapper094 Capcom 74161/32 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper094 : Mapper
- {
- public Mapper094(NES parent) : base(parent)
- {
- }
+ public class Mapper094 : Mapper
+ {
+ public Mapper094(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- }
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ }
- //void Mapper094::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- if ((addr & 0xFFF0) == 0xFF00)
- {
- SetPROM_16K_Bank(4, (data >> 2) & 0x7);
- }
- }
+ //void Mapper094::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ if ((addr & 0xFFF0) == 0xFF00)
+ {
+ SetPROM_16K_Bank(4, (data >> 2) & 0x7);
+ }
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper095.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper095.cs
index 6a651665..c3fac907 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper095.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper095.cs
@@ -2,185 +2,182 @@
// Mapper095 Namcot 106M (Dragon Buster) //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper095 : Mapper
- {
- BYTE reg;
- BYTE prg0, prg1;
- BYTE chr01, chr23, chr4, chr5, chr6, chr7;
- public Mapper095(NES parent) : base(parent)
- {
- }
+ public class Mapper095 : Mapper
+ {
+ BYTE reg;
+ BYTE prg0, prg1;
+ BYTE chr01, chr23, chr4, chr5, chr6, chr7;
+ public Mapper095(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- reg = 0x00;
- prg0 = 0;
- prg1 = 1;
- SetBank_CPU();
+ public override void Reset()
+ {
+ reg = 0x00;
+ prg0 = 0;
+ prg1 = 1;
+ SetBank_CPU();
- if (VROM_1K_SIZE != 0)
- {
- chr01 = 0;
- chr23 = 2;
- chr4 = 4;
- chr5 = 5;
- chr6 = 6;
- chr7 = 7;
- }
- else
- {
- chr01 = chr23 = chr4 = chr5 = chr6 = chr7 = 0;
- }
+ if (VROM_1K_SIZE != 0)
+ {
+ chr01 = 0;
+ chr23 = 2;
+ chr4 = 4;
+ chr5 = 5;
+ chr6 = 6;
+ chr7 = 7;
+ }
+ else
+ {
+ chr01 = chr23 = chr4 = chr5 = chr6 = chr7 = 0;
+ }
- SetBank_PPU();
+ SetBank_PPU();
- nes.SetRenderMethod(EnumRenderMethod.POST_RENDER);
- }
+ nes.SetRenderMethod(EnumRenderMethod.POST_RENDER);
+ }
- //void Mapper095::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr & 0xE001)
- {
- case 0x8000:
- reg = data;
- SetBank_CPU();
- SetBank_PPU();
- break;
- case 0x8001:
- if (reg <= 0x05)
- {
- if ((data & 0x20) != 0) SetVRAM_Mirror(VRAM_MIRROR4H);
- else SetVRAM_Mirror(VRAM_MIRROR4L);
- data &= 0x1F;
- }
+ //void Mapper095::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr & 0xE001)
+ {
+ case 0x8000:
+ reg = data;
+ SetBank_CPU();
+ SetBank_PPU();
+ break;
+ case 0x8001:
+ if (reg <= 0x05)
+ {
+ if ((data & 0x20) != 0) SetVRAM_Mirror(VRAM_MIRROR4H);
+ else SetVRAM_Mirror(VRAM_MIRROR4L);
+ data &= 0x1F;
+ }
- switch (reg & 0x07)
- {
- case 0x00:
- if (VROM_1K_SIZE != 0)
- {
- chr01 = (byte)(data & 0xFE);
- SetBank_PPU();
- }
- break;
- case 0x01:
- if (VROM_1K_SIZE != 0)
- {
- chr23 = (byte)(data & 0xFE);
- SetBank_PPU();
- }
- break;
- case 0x02:
- if (VROM_1K_SIZE != 0)
- {
- chr4 = data;
- SetBank_PPU();
- }
- break;
- case 0x03:
- if (VROM_1K_SIZE != 0)
- {
- chr5 = data;
- SetBank_PPU();
- }
- break;
- case 0x04:
- if (VROM_1K_SIZE != 0)
- {
- chr6 = data;
- SetBank_PPU();
- }
- break;
- case 0x05:
- if (VROM_1K_SIZE != 0)
- {
- chr7 = data;
- SetBank_PPU();
- }
- break;
- case 0x06:
- prg0 = data;
- SetBank_CPU();
- break;
- case 0x07:
- prg1 = data;
- SetBank_CPU();
- break;
- }
- break;
- }
- }
+ switch (reg & 0x07)
+ {
+ case 0x00:
+ if (VROM_1K_SIZE != 0)
+ {
+ chr01 = (byte)(data & 0xFE);
+ SetBank_PPU();
+ }
+ break;
+ case 0x01:
+ if (VROM_1K_SIZE != 0)
+ {
+ chr23 = (byte)(data & 0xFE);
+ SetBank_PPU();
+ }
+ break;
+ case 0x02:
+ if (VROM_1K_SIZE != 0)
+ {
+ chr4 = data;
+ SetBank_PPU();
+ }
+ break;
+ case 0x03:
+ if (VROM_1K_SIZE != 0)
+ {
+ chr5 = data;
+ SetBank_PPU();
+ }
+ break;
+ case 0x04:
+ if (VROM_1K_SIZE != 0)
+ {
+ chr6 = data;
+ SetBank_PPU();
+ }
+ break;
+ case 0x05:
+ if (VROM_1K_SIZE != 0)
+ {
+ chr7 = data;
+ SetBank_PPU();
+ }
+ break;
+ case 0x06:
+ prg0 = data;
+ SetBank_CPU();
+ break;
+ case 0x07:
+ prg1 = data;
+ SetBank_CPU();
+ break;
+ }
+ break;
+ }
+ }
- void SetBank_CPU()
- {
- if ((reg & 0x40) != 0)
- {
- SetPROM_32K_Bank(PROM_8K_SIZE - 2, prg1, prg0, PROM_8K_SIZE - 1);
- }
- else
- {
- SetPROM_32K_Bank(prg0, prg1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- }
- }
+ void SetBank_CPU()
+ {
+ if ((reg & 0x40) != 0)
+ {
+ SetPROM_32K_Bank(PROM_8K_SIZE - 2, prg1, prg0, PROM_8K_SIZE - 1);
+ }
+ else
+ {
+ SetPROM_32K_Bank(prg0, prg1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ }
+ }
- void SetBank_PPU()
- {
- if (VROM_1K_SIZE != 0)
- {
- if ((reg & 0x80) != 0)
- {
- SetVROM_8K_Bank(chr4, chr5, chr6, chr7,
- chr01, chr01 + 1, chr23, chr23 + 1);
- }
- else
- {
- SetVROM_8K_Bank(chr01, chr01 + 1, chr23, chr23 + 1,
- chr4, chr5, chr6, chr7);
- }
- }
- }
+ void SetBank_PPU()
+ {
+ if (VROM_1K_SIZE != 0)
+ {
+ if ((reg & 0x80) != 0)
+ {
+ SetVROM_8K_Bank(chr4, chr5, chr6, chr7,
+ chr01, chr01 + 1, chr23, chr23 + 1);
+ }
+ else
+ {
+ SetVROM_8K_Bank(chr01, chr01 + 1, chr23, chr23 + 1,
+ chr4, chr5, chr6, chr7);
+ }
+ }
+ }
- //void Mapper095::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- p[0] = reg;
- p[1] = prg0;
- p[2] = prg1;
- p[3] = chr01;
- p[4] = chr23;
- p[5] = chr4;
- p[6] = chr5;
- p[7] = chr6;
- p[8] = chr7;
- }
+ //void Mapper095::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ p[0] = reg;
+ p[1] = prg0;
+ p[2] = prg1;
+ p[3] = chr01;
+ p[4] = chr23;
+ p[5] = chr4;
+ p[6] = chr5;
+ p[7] = chr6;
+ p[8] = chr7;
+ }
- //void Mapper095::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- reg = p[0];
- prg0 = p[1];
- prg1 = p[2];
- chr01 = p[3];
- chr23 = p[4];
- chr4 = p[5];
- chr5 = p[6];
- chr6 = p[7];
- chr7 = p[8];
- }
+ //void Mapper095::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ reg = p[0];
+ prg0 = p[1];
+ prg1 = p[2];
+ chr01 = p[3];
+ chr23 = p[4];
+ chr4 = p[5];
+ chr5 = p[6];
+ chr6 = p[7];
+ chr7 = p[8];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper096.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper096.cs
index 8975c441..b297f599 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper096.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper096.cs
@@ -2,74 +2,71 @@
// Mapper096 Bandai 74161 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper096 : Mapper
- {
- BYTE[] reg = new byte[2];
- public Mapper096(NES parent) : base(parent)
- {
- }
+ public class Mapper096 : Mapper
+ {
+ BYTE[] reg = new byte[2];
+ public Mapper096(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- reg[0] = reg[1] = 0;
+ public override void Reset()
+ {
+ reg[0] = reg[1] = 0;
- SetPROM_32K_Bank(0, 1, 2, 3);
- SetBank();
+ SetPROM_32K_Bank(0, 1, 2, 3);
+ SetBank();
- SetVRAM_Mirror(VRAM_MIRROR4L);
- }
+ SetVRAM_Mirror(VRAM_MIRROR4L);
+ }
- //void Mapper096::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- SetPROM_32K_Bank(data & 0x03);
+ //void Mapper096::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ SetPROM_32K_Bank(data & 0x03);
- reg[0] = (byte)((data & 0x04) >> 2);
- SetBank();
- }
+ reg[0] = (byte)((data & 0x04) >> 2);
+ SetBank();
+ }
- public override void PPU_Latch(ushort addr)
- {
- if ((addr & 0xF000) == 0x2000)
- {
- reg[1] = (byte)((addr >> 8) & 0x03);
- SetBank();
- }
- }
+ public override void PPU_Latch(ushort addr)
+ {
+ if ((addr & 0xF000) == 0x2000)
+ {
+ reg[1] = (byte)((addr >> 8) & 0x03);
+ SetBank();
+ }
+ }
- void SetBank()
- {
- SetCRAM_4K_Bank(0, reg[0] * 4 + reg[1]);
- SetCRAM_4K_Bank(4, reg[0] * 4 + 0x03);
- }
+ void SetBank()
+ {
+ SetCRAM_4K_Bank(0, reg[0] * 4 + reg[1]);
+ SetCRAM_4K_Bank(4, reg[0] * 4 + 0x03);
+ }
- //void Mapper096::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- p[0] = reg[0];
- p[1] = reg[1];
- }
+ //void Mapper096::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ p[0] = reg[0];
+ p[1] = reg[1];
+ }
- //void Mapper096::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- reg[0] = p[0];
- reg[1] = p[1];
- }
+ //void Mapper096::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ reg[0] = p[0];
+ reg[1] = p[1];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper097.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper097.cs
index 58fd4d90..13258c08 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper097.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper097.cs
@@ -2,42 +2,38 @@
// Mapper097 Irem 74161 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper097 : Mapper
- {
- public Mapper097(NES parent) : base(parent)
- {
- }
+ public class Mapper097 : Mapper
+ {
+ public Mapper097(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- SetPROM_32K_Bank(PROM_8K_SIZE - 2, PROM_8K_SIZE - 1, 0, 1);
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(PROM_8K_SIZE - 2, PROM_8K_SIZE - 1, 0, 1);
- if (VROM_8K_SIZE != 0)
- {
- SetVROM_8K_Bank(0);
- }
- }
+ if (VROM_8K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0);
+ }
+ }
- //void Mapper097::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- if (addr < 0xC000)
- {
- SetPROM_16K_Bank(6, data & 0x0F);
+ //void Mapper097::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ if (addr < 0xC000)
+ {
+ SetPROM_16K_Bank(6, data & 0x0F);
- if ((data & 0x80) != 0) SetVRAM_Mirror(VRAM_VMIRROR);
- else SetVRAM_Mirror(VRAM_HMIRROR);
- }
- }
+ if ((data & 0x80) != 0) SetVRAM_Mirror(VRAM_VMIRROR);
+ else SetVRAM_Mirror(VRAM_HMIRROR);
+ }
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper099.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper099.cs
index 2d6633ae..8cc19d18 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper099.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper099.cs
@@ -1,91 +1,89 @@
//////////////////////////////////////////////////////////////////////////
// Mapper099 VS-Unisystem //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper099 : Mapper
- {
- BYTE coin;
- public Mapper099(NES parent) : base(parent)
- {
- }
+ public class Mapper099 : Mapper
+ {
+ BYTE coin;
+ public Mapper099(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- // set CPU bank pointers
- if (PROM_8K_SIZE > 2)
- {
- SetPROM_32K_Bank(0, 1, 2, 3);
- }
- else if (PROM_8K_SIZE > 1)
- {
- SetPROM_32K_Bank(0, 1, 0, 1);
- }
- else
- {
- SetPROM_32K_Bank(0, 0, 0, 0);
- }
+ public override void Reset()
+ {
+ // set CPU bank pointers
+ if (PROM_8K_SIZE > 2)
+ {
+ SetPROM_32K_Bank(0, 1, 2, 3);
+ }
+ else if (PROM_8K_SIZE > 1)
+ {
+ SetPROM_32K_Bank(0, 1, 0, 1);
+ }
+ else
+ {
+ SetPROM_32K_Bank(0, 0, 0, 0);
+ }
- // set VROM bank
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_8K_Bank(0);
- }
+ // set VROM bank
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(0);
+ }
- coin = 0;
- }
+ coin = 0;
+ }
- //BYTE Mapper099::ExRead(WORD addr)
- public override byte ExRead(ushort addr)
- {
- if (addr == 0x4020)
- {
- return coin;
- }
+ //BYTE Mapper099::ExRead(WORD addr)
+ public override byte ExRead(ushort addr)
+ {
+ if (addr == 0x4020)
+ {
+ return coin;
+ }
- return (byte)(addr >> 8);
- }
+ return (byte)(addr >> 8);
+ }
- //void Mapper099::ExWrite(WORD addr, BYTE data)
- public override void ExWrite(ushort addr, byte data)
- {
- if (addr == 0x4016)
- {
- if ((data & 0x04) != 0)
- {
- SetVROM_8K_Bank(1);
- }
- else
- {
- SetVROM_8K_Bank(0);
- }
+ //void Mapper099::ExWrite(WORD addr, BYTE data)
+ public override void ExWrite(ushort addr, byte data)
+ {
+ if (addr == 0x4016)
+ {
+ if ((data & 0x04) != 0)
+ {
+ SetVROM_8K_Bank(1);
+ }
+ else
+ {
+ SetVROM_8K_Bank(0);
+ }
- if (nes.rom.GetPROM_CRC() == 0xC99EC059)
- { // VS Raid on Bungeling Bay(J)
- if ((data & 0x02) != 0)
- {
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- else
- {
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- }
- }
- }
+ if (nes.rom.GetPROM_CRC() == 0xC99EC059)
+ { // VS Raid on Bungeling Bay(J)
+ if ((data & 0x02) != 0)
+ {
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ else
+ {
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ }
+ }
+ }
- if (addr == 0x4020)
- {
- coin = data;
- }
- }
+ if (addr == 0x4020)
+ {
+ coin = data;
+ }
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper100.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper100.cs
index a6f8261f..d7e17b45 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper100.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper100.cs
@@ -1,301 +1,300 @@
-using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.Core.CPU;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper100 : Mapper
- {
+ public class Mapper100 : Mapper
+ {
- BYTE[] reg = new byte[8];
- BYTE prg0, prg1, prg2, prg3;
- BYTE chr0, chr1, chr2, chr3, chr4, chr5, chr6, chr7;
+ BYTE[] reg = new byte[8];
+ BYTE prg0, prg1, prg2, prg3;
+ BYTE chr0, chr1, chr2, chr3, chr4, chr5, chr6, chr7;
- BYTE irq_enable;
- BYTE irq_counter;
- BYTE irq_latch;
- public Mapper100(NES parent) : base(parent)
- {
- }
+ BYTE irq_enable;
+ BYTE irq_counter;
+ BYTE irq_latch;
+ public Mapper100(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- for (INT i = 0; i < 8; i++)
- {
- reg[i] = 0x00;
- }
+ public override void Reset()
+ {
+ for (INT i = 0; i < 8; i++)
+ {
+ reg[i] = 0x00;
+ }
- prg0 = 0;
- prg1 = 1;
- prg2 = (byte)(PROM_8K_SIZE - 2);
- prg3 = (byte)(PROM_8K_SIZE - 1);
- SetBank_CPU();
+ prg0 = 0;
+ prg1 = 1;
+ prg2 = (byte)(PROM_8K_SIZE - 2);
+ prg3 = (byte)(PROM_8K_SIZE - 1);
+ SetBank_CPU();
- if (VROM_1K_SIZE != 0)
- {
- chr0 = 0;
- chr1 = 1;
- chr2 = 2;
- chr3 = 3;
- chr4 = 4;
- chr5 = 5;
- chr6 = 6;
- chr7 = 7;
- SetBank_PPU();
- }
- else
- {
- chr0 = chr2 = chr4 = chr5 = chr6 = chr7 = 0;
- chr1 = chr3 = 1;
- }
+ if (VROM_1K_SIZE != 0)
+ {
+ chr0 = 0;
+ chr1 = 1;
+ chr2 = 2;
+ chr3 = 3;
+ chr4 = 4;
+ chr5 = 5;
+ chr6 = 6;
+ chr7 = 7;
+ SetBank_PPU();
+ }
+ else
+ {
+ chr0 = chr2 = chr4 = chr5 = chr6 = chr7 = 0;
+ chr1 = chr3 = 1;
+ }
- irq_enable = 0; // Disable
- irq_counter = 0;
- irq_latch = 0;
- }
+ irq_enable = 0; // Disable
+ irq_counter = 0;
+ irq_latch = 0;
+ }
- //void Mapper100::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr & 0xE001)
- {
- case 0x8000:
- reg[0] = data;
- break;
- case 0x8001:
- reg[1] = data;
+ //void Mapper100::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr & 0xE001)
+ {
+ case 0x8000:
+ reg[0] = data;
+ break;
+ case 0x8001:
+ reg[1] = data;
- switch (reg[0] & 0xC7)
- {
- case 0x00:
- if (VROM_1K_SIZE != 0)
- {
- chr0 = (byte)(data & 0xFE);
- chr1 = (byte)(chr0 + 1);
- SetBank_PPU();
- }
- break;
- case 0x01:
- if (VROM_1K_SIZE != 0)
- {
- chr2 = (byte)(data & 0xFE);
- chr3 = (byte)(chr2 + 1);
- SetBank_PPU();
- }
- break;
- case 0x02:
- if (VROM_1K_SIZE != 0)
- {
- chr4 = data;
- SetBank_PPU();
- }
- break;
- case 0x03:
- if (VROM_1K_SIZE != 0)
- {
- chr5 = data;
- SetBank_PPU();
- }
- break;
- case 0x04:
- if (VROM_1K_SIZE != 0)
- {
- chr6 = data;
- SetBank_PPU();
- }
- break;
- case 0x05:
- if (VROM_1K_SIZE != 0)
- {
- chr7 = data;
- SetBank_PPU();
- }
- break;
+ switch (reg[0] & 0xC7)
+ {
+ case 0x00:
+ if (VROM_1K_SIZE != 0)
+ {
+ chr0 = (byte)(data & 0xFE);
+ chr1 = (byte)(chr0 + 1);
+ SetBank_PPU();
+ }
+ break;
+ case 0x01:
+ if (VROM_1K_SIZE != 0)
+ {
+ chr2 = (byte)(data & 0xFE);
+ chr3 = (byte)(chr2 + 1);
+ SetBank_PPU();
+ }
+ break;
+ case 0x02:
+ if (VROM_1K_SIZE != 0)
+ {
+ chr4 = data;
+ SetBank_PPU();
+ }
+ break;
+ case 0x03:
+ if (VROM_1K_SIZE != 0)
+ {
+ chr5 = data;
+ SetBank_PPU();
+ }
+ break;
+ case 0x04:
+ if (VROM_1K_SIZE != 0)
+ {
+ chr6 = data;
+ SetBank_PPU();
+ }
+ break;
+ case 0x05:
+ if (VROM_1K_SIZE != 0)
+ {
+ chr7 = data;
+ SetBank_PPU();
+ }
+ break;
- case 0x06:
- prg0 = data;
- SetBank_CPU();
- break;
- case 0x07:
- prg1 = data;
- SetBank_CPU();
- break;
- case 0x46:
- prg2 = data;
- SetBank_CPU();
- break;
- case 0x47:
- prg3 = data;
- SetBank_CPU();
- break;
+ case 0x06:
+ prg0 = data;
+ SetBank_CPU();
+ break;
+ case 0x07:
+ prg1 = data;
+ SetBank_CPU();
+ break;
+ case 0x46:
+ prg2 = data;
+ SetBank_CPU();
+ break;
+ case 0x47:
+ prg3 = data;
+ SetBank_CPU();
+ break;
- case 0x80:
- if (VROM_1K_SIZE != 0)
- {
- chr4 = (byte)(data & 0xFE);
- chr5 = (byte)(chr4 + 1);
- SetBank_PPU();
- }
- break;
- case 0x81:
- if (VROM_1K_SIZE != 0)
- {
- chr6 = (byte)(data & 0xFE);
- chr7 = (byte)(chr6 + 1);
- SetBank_PPU();
- }
- break;
- case 0x82:
- if (VROM_1K_SIZE != 0)
- {
- chr0 = data;
- SetBank_PPU();
- }
- break;
- case 0x83:
- if (VROM_1K_SIZE != 0)
- {
- chr1 = data;
- SetBank_PPU();
- }
- break;
- case 0x84:
- if (VROM_1K_SIZE != 0)
- {
- chr2 = data;
- SetBank_PPU();
- }
- break;
- case 0x85:
- if (VROM_1K_SIZE != 0)
- {
- chr3 = data;
- SetBank_PPU();
- }
- break;
+ case 0x80:
+ if (VROM_1K_SIZE != 0)
+ {
+ chr4 = (byte)(data & 0xFE);
+ chr5 = (byte)(chr4 + 1);
+ SetBank_PPU();
+ }
+ break;
+ case 0x81:
+ if (VROM_1K_SIZE != 0)
+ {
+ chr6 = (byte)(data & 0xFE);
+ chr7 = (byte)(chr6 + 1);
+ SetBank_PPU();
+ }
+ break;
+ case 0x82:
+ if (VROM_1K_SIZE != 0)
+ {
+ chr0 = data;
+ SetBank_PPU();
+ }
+ break;
+ case 0x83:
+ if (VROM_1K_SIZE != 0)
+ {
+ chr1 = data;
+ SetBank_PPU();
+ }
+ break;
+ case 0x84:
+ if (VROM_1K_SIZE != 0)
+ {
+ chr2 = data;
+ SetBank_PPU();
+ }
+ break;
+ case 0x85:
+ if (VROM_1K_SIZE != 0)
+ {
+ chr3 = data;
+ SetBank_PPU();
+ }
+ break;
- }
- break;
- case 0xA000:
- reg[2] = data;
- if (!nes.rom.Is4SCREEN())
- {
- if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
- else SetVRAM_Mirror(VRAM_VMIRROR);
- }
- break;
- case 0xA001:
- reg[3] = data;
- break;
- case 0xC000:
- reg[4] = data;
- irq_counter = data;
- break;
- case 0xC001:
- reg[5] = data;
- irq_latch = data;
- break;
- case 0xE000:
- reg[6] = data;
- irq_enable = 0;
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- case 0xE001:
- reg[7] = data;
- irq_enable = 0xFF;
- break;
- }
- }
+ }
+ break;
+ case 0xA000:
+ reg[2] = data;
+ if (!nes.rom.Is4SCREEN())
+ {
+ if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
+ else SetVRAM_Mirror(VRAM_VMIRROR);
+ }
+ break;
+ case 0xA001:
+ reg[3] = data;
+ break;
+ case 0xC000:
+ reg[4] = data;
+ irq_counter = data;
+ break;
+ case 0xC001:
+ reg[5] = data;
+ irq_latch = data;
+ break;
+ case 0xE000:
+ reg[6] = data;
+ irq_enable = 0;
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ case 0xE001:
+ reg[7] = data;
+ irq_enable = 0xFF;
+ break;
+ }
+ }
- //void Mapper100::HSync(INT scanline)
- public override void HSync(int scanline)
- {
- if ((scanline >= 0 && scanline <= 239))
- {
- if (nes.ppu.IsDispON())
- {
- if (irq_enable != 0)
- {
- if ((irq_counter--) == 0)
- {
- irq_counter = irq_latch;
- // nes.cpu.IRQ();
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- }
- }
- }
- }
+ //void Mapper100::HSync(INT scanline)
+ public override void HSync(int scanline)
+ {
+ if ((scanline >= 0 && scanline <= 239))
+ {
+ if (nes.ppu.IsDispON())
+ {
+ if (irq_enable != 0)
+ {
+ if ((irq_counter--) == 0)
+ {
+ irq_counter = irq_latch;
+ // nes.cpu.IRQ();
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ }
+ }
+ }
+ }
- void SetBank_CPU()
- {
- SetPROM_32K_Bank(prg0, prg1, prg2, prg3);
- }
+ void SetBank_CPU()
+ {
+ SetPROM_32K_Bank(prg0, prg1, prg2, prg3);
+ }
- void SetBank_PPU()
- {
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_8K_Bank(chr0, chr1, chr2, chr3, chr4, chr5, chr6, chr7);
- }
- }
+ void SetBank_PPU()
+ {
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_8K_Bank(chr0, chr1, chr2, chr3, chr4, chr5, chr6, chr7);
+ }
+ }
- //void Mapper100::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- for (byte i = 0; i < 8; i++)
- {
- p[i] = reg[i];
- }
- p[8] = prg0;
- p[9] = prg1;
- p[10] = prg2;
- p[11] = prg3;
- p[12] = chr0;
- p[13] = chr1;
- p[14] = chr2;
- p[15] = chr3;
- p[16] = chr4;
- p[17] = chr5;
- p[18] = chr6;
- p[19] = chr7;
- p[20] = irq_enable;
- p[21] = irq_counter;
- p[22] = irq_latch;
- }
+ //void Mapper100::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ for (byte i = 0; i < 8; i++)
+ {
+ p[i] = reg[i];
+ }
+ p[8] = prg0;
+ p[9] = prg1;
+ p[10] = prg2;
+ p[11] = prg3;
+ p[12] = chr0;
+ p[13] = chr1;
+ p[14] = chr2;
+ p[15] = chr3;
+ p[16] = chr4;
+ p[17] = chr5;
+ p[18] = chr6;
+ p[19] = chr7;
+ p[20] = irq_enable;
+ p[21] = irq_counter;
+ p[22] = irq_latch;
+ }
- //void Mapper100::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- for (byte i = 0; i < 8; i++)
- {
- reg[i] = p[i];
- }
- prg0 = p[8];
- prg1 = p[9];
- prg2 = p[10];
- prg3 = p[11];
- chr0 = p[12];
- chr1 = p[13];
- chr2 = p[14];
- chr3 = p[15];
- chr4 = p[16];
- chr5 = p[17];
- chr6 = p[18];
- chr7 = p[19];
- irq_enable = p[20];
- irq_counter = p[21];
- irq_latch = p[22];
- }
+ //void Mapper100::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ for (byte i = 0; i < 8; i++)
+ {
+ reg[i] = p[i];
+ }
+ prg0 = p[8];
+ prg1 = p[9];
+ prg2 = p[10];
+ prg3 = p[11];
+ chr0 = p[12];
+ chr1 = p[13];
+ chr2 = p[14];
+ chr3 = p[15];
+ chr4 = p[16];
+ chr5 = p[17];
+ chr6 = p[18];
+ chr7 = p[19];
+ irq_enable = p[20];
+ irq_counter = p[21];
+ irq_latch = p[22];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper101.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper101.cs
index b0b462a9..9dba4667 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper101.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper101.cs
@@ -2,41 +2,37 @@
// Mapper101 Jaleco(Urusei Yatsura) //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper101 : Mapper
- {
- public Mapper101(NES parent) : base(parent)
- {
- }
+ public class Mapper101 : Mapper
+ {
+ public Mapper101(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- SetPROM_32K_Bank(0, 1, 2, 3);
- SetVROM_8K_Bank(0);
- }
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0, 1, 2, 3);
+ SetVROM_8K_Bank(0);
+ }
- //void Mapper101::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- if (addr >= 0x6000)
- {
- SetVROM_8K_Bank(data & 0x03);
- }
- }
+ //void Mapper101::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ if (addr >= 0x6000)
+ {
+ SetVROM_8K_Bank(data & 0x03);
+ }
+ }
- //void Mapper101::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- SetVROM_8K_Bank(data & 0x03);
- }
+ //void Mapper101::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ SetVROM_8K_Bank(data & 0x03);
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper105.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper105.cs
index 20160516..57cd3843 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper105.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper105.cs
@@ -1,202 +1,201 @@
//////////////////////////////////////////////////////////////////////////
// Mapper105 Nintendo World Championship //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper105 : Mapper
- {
- BYTE init_state;
- BYTE write_count;
- BYTE bits;
- BYTE[] reg = new byte[4];
+ public class Mapper105 : Mapper
+ {
+ BYTE init_state;
+ BYTE write_count;
+ BYTE bits;
+ BYTE[] reg = new byte[4];
- BYTE irq_enable;
- INT irq_counter;
- public Mapper105(NES parent) : base(parent)
- {
- }
+ BYTE irq_enable;
+ INT irq_counter;
+ public Mapper105(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- SetPROM_32K_Bank(0);
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0);
- reg[0] = 0x0C;
- reg[1] = 0x00;
- reg[2] = 0x00;
- reg[3] = 0x10;
+ reg[0] = 0x0C;
+ reg[1] = 0x00;
+ reg[2] = 0x00;
+ reg[3] = 0x10;
- bits = 0;
- write_count = 0;
+ bits = 0;
+ write_count = 0;
- irq_counter = 0;
- irq_enable = 0;
- init_state = 0;
- }
+ irq_counter = 0;
+ irq_enable = 0;
+ init_state = 0;
+ }
- //void Mapper105::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- //WORD reg_num = (addr & 0x7FFF) >> 13;
- uint reg_num = (byte)((addr & 0x7FFF) >> 13);
+ //void Mapper105::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ //WORD reg_num = (addr & 0x7FFF) >> 13;
+ uint reg_num = (byte)((addr & 0x7FFF) >> 13);
- if ((data & 0x80) != 0)
- {
- bits = write_count = 0;
- if (reg_num == 0)
- {
- reg[reg_num] |= 0x0C;
- }
- }
- else
- {
- //bits |= (data & 1) << write_count++;
- bits |= (byte)((data & 1) << write_count++);
- if (write_count == 5)
- {
- reg[reg_num] = (byte)(bits & 0x1F);
- bits = write_count = 0;
- }
- }
+ if ((data & 0x80) != 0)
+ {
+ bits = write_count = 0;
+ if (reg_num == 0)
+ {
+ reg[reg_num] |= 0x0C;
+ }
+ }
+ else
+ {
+ //bits |= (data & 1) << write_count++;
+ bits |= (byte)((data & 1) << write_count++);
+ if (write_count == 5)
+ {
+ reg[reg_num] = (byte)(bits & 0x1F);
+ bits = write_count = 0;
+ }
+ }
- if ((reg[0] & 0x02) != 0)
- {
- if ((reg[0] & 0x01) != 0)
- {
- SetVRAM_Mirror(VRAM_HMIRROR);
- }
- else
- {
- SetVRAM_Mirror(VRAM_VMIRROR);
- }
- }
- else
- {
- if ((reg[0] & 0x01) != 0)
- {
- SetVRAM_Mirror(VRAM_MIRROR4H);
- }
- else
- {
- SetVRAM_Mirror(VRAM_MIRROR4L);
- }
- }
+ if ((reg[0] & 0x02) != 0)
+ {
+ if ((reg[0] & 0x01) != 0)
+ {
+ SetVRAM_Mirror(VRAM_HMIRROR);
+ }
+ else
+ {
+ SetVRAM_Mirror(VRAM_VMIRROR);
+ }
+ }
+ else
+ {
+ if ((reg[0] & 0x01) != 0)
+ {
+ SetVRAM_Mirror(VRAM_MIRROR4H);
+ }
+ else
+ {
+ SetVRAM_Mirror(VRAM_MIRROR4L);
+ }
+ }
- switch (init_state)
- {
- case 0:
- case 1:
- init_state++;
- break;
- case 2:
- if ((reg[1] & 0x08) != 0)
- {
- if ((reg[0] & 0x08) != 0)
- {
- if ((reg[0] & 0x04) != 0)
- {
- SetPROM_8K_Bank(4, ((reg[3] & 0x07) * 2 + 16));
- SetPROM_8K_Bank(5, ((reg[3] & 0x07) * 2 + 17));
- SetPROM_8K_Bank(6, 30);
- SetPROM_8K_Bank(7, 31);
- }
- else
- {
- SetPROM_8K_Bank(4, 16);
- SetPROM_8K_Bank(5, 17);
- SetPROM_8K_Bank(6, ((reg[3] & 0x07) * 2 + 16));
- SetPROM_8K_Bank(7, ((reg[3] & 0x07) * 2 + 17));
- }
- }
- else
- {
- SetPROM_8K_Bank(4, ((reg[3] & 0x06) * 2 + 16));
- SetPROM_8K_Bank(5, ((reg[3] & 0x06) * 2 + 17));
- SetPROM_8K_Bank(6, ((reg[3] & 0x06) * 2 + 18));
- SetPROM_8K_Bank(7, ((reg[3] & 0x06) * 2 + 19));
- }
- }
- else
- {
- SetPROM_8K_Bank(4, ((reg[1] & 0x06) * 2 + 0));
- SetPROM_8K_Bank(5, ((reg[1] & 0x06) * 2 + 1));
- SetPROM_8K_Bank(6, ((reg[1] & 0x06) * 2 + 2));
- SetPROM_8K_Bank(7, ((reg[1] & 0x06) * 2 + 3));
- }
+ switch (init_state)
+ {
+ case 0:
+ case 1:
+ init_state++;
+ break;
+ case 2:
+ if ((reg[1] & 0x08) != 0)
+ {
+ if ((reg[0] & 0x08) != 0)
+ {
+ if ((reg[0] & 0x04) != 0)
+ {
+ SetPROM_8K_Bank(4, ((reg[3] & 0x07) * 2 + 16));
+ SetPROM_8K_Bank(5, ((reg[3] & 0x07) * 2 + 17));
+ SetPROM_8K_Bank(6, 30);
+ SetPROM_8K_Bank(7, 31);
+ }
+ else
+ {
+ SetPROM_8K_Bank(4, 16);
+ SetPROM_8K_Bank(5, 17);
+ SetPROM_8K_Bank(6, ((reg[3] & 0x07) * 2 + 16));
+ SetPROM_8K_Bank(7, ((reg[3] & 0x07) * 2 + 17));
+ }
+ }
+ else
+ {
+ SetPROM_8K_Bank(4, ((reg[3] & 0x06) * 2 + 16));
+ SetPROM_8K_Bank(5, ((reg[3] & 0x06) * 2 + 17));
+ SetPROM_8K_Bank(6, ((reg[3] & 0x06) * 2 + 18));
+ SetPROM_8K_Bank(7, ((reg[3] & 0x06) * 2 + 19));
+ }
+ }
+ else
+ {
+ SetPROM_8K_Bank(4, ((reg[1] & 0x06) * 2 + 0));
+ SetPROM_8K_Bank(5, ((reg[1] & 0x06) * 2 + 1));
+ SetPROM_8K_Bank(6, ((reg[1] & 0x06) * 2 + 2));
+ SetPROM_8K_Bank(7, ((reg[1] & 0x06) * 2 + 3));
+ }
- if ((reg[1] & 0x10) != 0)
- {
- irq_counter = 0;
- irq_enable = 0;
- }
- else
- {
- irq_enable = 1;
- }
- // nes.cpu.ClrIRQ( IRQ_MAPPER );
- break;
- default:
- break;
- }
- }
+ if ((reg[1] & 0x10) != 0)
+ {
+ irq_counter = 0;
+ irq_enable = 0;
+ }
+ else
+ {
+ irq_enable = 1;
+ }
+ // nes.cpu.ClrIRQ( IRQ_MAPPER );
+ break;
+ default:
+ break;
+ }
+ }
- //void Mapper105::HSync(INT scanline)
- public override void HSync(int scanline)
- {
- if (scanline != 0)
- {
- if (irq_enable != 0)
- {
- irq_counter += 29781;
- }
- if (((irq_counter | 0x21FFFFFF) & 0x3E000000) == 0x3E000000)
- {
- // nes.cpu.IRQ_NotPending();
- // nes.cpu.SetIRQ( IRQ_MAPPER );
- nes.cpu.SetIRQ(IRQ_TRIGGER2);
- }
- }
- }
+ //void Mapper105::HSync(INT scanline)
+ public override void HSync(int scanline)
+ {
+ if (scanline != 0)
+ {
+ if (irq_enable != 0)
+ {
+ irq_counter += 29781;
+ }
+ if (((irq_counter | 0x21FFFFFF) & 0x3E000000) == 0x3E000000)
+ {
+ // nes.cpu.IRQ_NotPending();
+ // nes.cpu.SetIRQ( IRQ_MAPPER );
+ nes.cpu.SetIRQ(IRQ_TRIGGER2);
+ }
+ }
+ }
- //void Mapper105::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- //for (INT i = 0; i < 4; i++)
- //{
- // p[i] = reg[i];
- //}
- //p[8] = init_state;
- //p[9] = write_count;
- //p[10] = bits;
- //p[11] = irq_enable;
- //*((INT*)&p[12]) = irq_counter;
- }
+ //void Mapper105::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ //for (INT i = 0; i < 4; i++)
+ //{
+ // p[i] = reg[i];
+ //}
+ //p[8] = init_state;
+ //p[9] = write_count;
+ //p[10] = bits;
+ //p[11] = irq_enable;
+ //*((INT*)&p[12]) = irq_counter;
+ }
- //void Mapper105::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- //for (INT i = 0; i < 4; i++)
- //{
- // reg[i] = p[i];
- //}
- //init_state = p[8];
- //write_count = p[9];
- //bits = p[10];
- //irq_enable = p[11];
- //irq_counter = *((INT*)&p[12]);
- }
+ //void Mapper105::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ //for (INT i = 0; i < 4; i++)
+ //{
+ // reg[i] = p[i];
+ //}
+ //init_state = p[8];
+ //write_count = p[9];
+ //bits = p[10];
+ //irq_enable = p[11];
+ //irq_counter = *((INT*)&p[12]);
+ }
- public override bool IsStateSave()
- {
- return true;
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper107.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper107.cs
index 4a673cc7..f153449f 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper107.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper107.cs
@@ -2,32 +2,28 @@
// Mapper107 Magic Dragon Mapper //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
namespace VirtualNes.Core
{
- public class Mapper107 : Mapper
- {
- public Mapper107(NES parent) : base(parent)
- {
- }
+ public class Mapper107 : Mapper
+ {
+ public Mapper107(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- SetVROM_8K_Bank(0);
- }
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ SetVROM_8K_Bank(0);
+ }
- //void Mapper107::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- SetPROM_32K_Bank((data >> 1) & 0x03);
- SetVROM_8K_Bank(data & 0x07);
- }
+ //void Mapper107::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ SetPROM_32K_Bank((data >> 1) & 0x03);
+ SetVROM_8K_Bank(data & 0x07);
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper108.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper108.cs
index 222e06bb..11afe6e4 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper108.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper108.cs
@@ -2,30 +2,26 @@
// Mapper108 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
namespace VirtualNes.Core
{
- public class Mapper108 : Mapper
- {
- public Mapper108(NES parent) : base(parent)
- {
- }
+ public class Mapper108 : Mapper
+ {
+ public Mapper108(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- SetPROM_32K_Bank(0xC, 0xD, 0xE, 0xF);
- SetPROM_8K_Bank(3, 0);
- }
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0xC, 0xD, 0xE, 0xF);
+ SetPROM_8K_Bank(3, 0);
+ }
- //void Mapper108::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- SetPROM_8K_Bank(3, data);
- }
+ //void Mapper108::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ SetPROM_8K_Bank(3, data);
+ }
- }
+ }
}
\ No newline at end of file
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper109.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper109.cs
index 304d59bd..43101e90 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper109.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper109.cs
@@ -2,130 +2,127 @@
// Mapper109 SACHEN The Great Wall SA-019 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper109 : Mapper
- {
+ public class Mapper109 : Mapper
+ {
- BYTE reg;
- BYTE chr0, chr1, chr2, chr3;
- BYTE chrmode0, chrmode1;
- public Mapper109(NES parent) : base(parent)
- {
- }
+ BYTE reg;
+ BYTE chr0, chr1, chr2, chr3;
+ BYTE chrmode0, chrmode1;
+ public Mapper109(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- reg = 0;
- SetPROM_32K_Bank(0);
+ public override void Reset()
+ {
+ reg = 0;
+ SetPROM_32K_Bank(0);
- chr0 = 0;
- chr1 = 0;
- chr2 = 0;
- chr3 = 0;
- SetBank_PPU();
- chrmode0 = 0;
- chrmode1 = 0;
- }
+ chr0 = 0;
+ chr1 = 0;
+ chr2 = 0;
+ chr3 = 0;
+ SetBank_PPU();
+ chrmode0 = 0;
+ chrmode1 = 0;
+ }
- //void Mapper109::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- switch (addr)
- {
- case 0x4100:
- reg = data;
- break;
- case 0x4101:
- switch (reg)
- {
- case 0:
- chr0 = data;
- SetBank_PPU();
- break;
- case 1:
- chr1 = data;
- SetBank_PPU();
- break;
- case 2:
- chr2 = data;
- SetBank_PPU();
- break;
- case 3:
- chr3 = data;
- SetBank_PPU();
- break;
- case 4:
- chrmode0 = (byte)(data & 0x01);
- SetBank_PPU();
- break;
- case 5:
- SetPROM_32K_Bank(data & 0x07);
- break;
- case 6:
- chrmode1 = (byte)(data & 0x07);
- SetBank_PPU();
- break;
- case 7:
- if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
- else SetVRAM_Mirror(VRAM_VMIRROR);
- break;
- }
- break;
- }
+ //void Mapper109::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ switch (addr)
+ {
+ case 0x4100:
+ reg = data;
+ break;
+ case 0x4101:
+ switch (reg)
+ {
+ case 0:
+ chr0 = data;
+ SetBank_PPU();
+ break;
+ case 1:
+ chr1 = data;
+ SetBank_PPU();
+ break;
+ case 2:
+ chr2 = data;
+ SetBank_PPU();
+ break;
+ case 3:
+ chr3 = data;
+ SetBank_PPU();
+ break;
+ case 4:
+ chrmode0 = (byte)(data & 0x01);
+ SetBank_PPU();
+ break;
+ case 5:
+ SetPROM_32K_Bank(data & 0x07);
+ break;
+ case 6:
+ chrmode1 = (byte)(data & 0x07);
+ SetBank_PPU();
+ break;
+ case 7:
+ if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
+ else SetVRAM_Mirror(VRAM_VMIRROR);
+ break;
+ }
+ break;
+ }
- }
+ }
- void SetBank_PPU()
- {
- if (VROM_1K_SIZE != 0)
- {
- SetVROM_1K_Bank(0, chr0);
- SetVROM_1K_Bank(1, chr1 | ((chrmode1 << 3) & 0x8));
- SetVROM_1K_Bank(2, chr2 | ((chrmode1 << 2) & 0x8));
- SetVROM_1K_Bank(3, chr3 | ((chrmode1 << 1) & 0x8) | (chrmode0 * 0x10));
- SetVROM_1K_Bank(4, VROM_1K_SIZE - 4);
- SetVROM_1K_Bank(5, VROM_1K_SIZE - 3);
- SetVROM_1K_Bank(6, VROM_1K_SIZE - 2);
- SetVROM_1K_Bank(7, VROM_1K_SIZE - 1);
- }
- }
+ void SetBank_PPU()
+ {
+ if (VROM_1K_SIZE != 0)
+ {
+ SetVROM_1K_Bank(0, chr0);
+ SetVROM_1K_Bank(1, chr1 | ((chrmode1 << 3) & 0x8));
+ SetVROM_1K_Bank(2, chr2 | ((chrmode1 << 2) & 0x8));
+ SetVROM_1K_Bank(3, chr3 | ((chrmode1 << 1) & 0x8) | (chrmode0 * 0x10));
+ SetVROM_1K_Bank(4, VROM_1K_SIZE - 4);
+ SetVROM_1K_Bank(5, VROM_1K_SIZE - 3);
+ SetVROM_1K_Bank(6, VROM_1K_SIZE - 2);
+ SetVROM_1K_Bank(7, VROM_1K_SIZE - 1);
+ }
+ }
- //void Mapper109::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- p[0] = reg;
- p[1] = chr0;
- p[2] = chr1;
- p[3] = chr2;
- p[4] = chr3;
- p[5] = chrmode0;
- p[6] = chrmode1;
- }
+ //void Mapper109::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ p[0] = reg;
+ p[1] = chr0;
+ p[2] = chr1;
+ p[3] = chr2;
+ p[4] = chr3;
+ p[5] = chrmode0;
+ p[6] = chrmode1;
+ }
- //void Mapper109::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- reg = p[0];
- chr0 = p[1];
- chr1 = p[2];
- chr2 = p[3];
- chr3 = p[4];
- chrmode0 = p[5];
- chrmode1 = p[6];
- }
+ //void Mapper109::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ reg = p[0];
+ chr0 = p[1];
+ chr1 = p[2];
+ chr2 = p[3];
+ chr3 = p[4];
+ chrmode0 = p[5];
+ chrmode1 = p[6];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper110.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper110.cs
index 41a42bdd..02a443e3 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper110.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper110.cs
@@ -2,86 +2,83 @@
// Mapper110 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper110 : Mapper
- {
- BYTE reg0, reg1;
- public Mapper110(NES parent) : base(parent)
- {
- }
+ public class Mapper110 : Mapper
+ {
+ BYTE reg0, reg1;
+ public Mapper110(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- SetPROM_32K_Bank(0);
- SetVROM_8K_Bank(0);
+ public override void Reset()
+ {
+ SetPROM_32K_Bank(0);
+ SetVROM_8K_Bank(0);
- reg0 = 0;
- reg1 = 0;
- }
- //void Mapper110::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- switch (addr)
- {
- case 0x4100:
- reg1 = (byte)(data & 0x07);
- break;
- case 0x4101:
- switch (reg1)
- {
- case 5:
- SetPROM_32K_Bank(data);
- break;
- case 0:
- reg0 = (byte)(data & 0x01);
- SetVROM_8K_Bank(reg0);
- break;
- case 2:
- reg0 = data;
- SetVROM_8K_Bank(reg0);
- break;
- case 4:
- reg0 = (byte)(reg0 | (data << 1));
- SetVROM_8K_Bank(reg0);
- break;
- case 6:
- reg0 = (byte)(reg0 | (data << 2));
- SetVROM_8K_Bank(reg0);
- break;
- default:
- break;
- }
- break;
- default:
- break;
- }
- }
+ reg0 = 0;
+ reg1 = 0;
+ }
+ //void Mapper110::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ switch (addr)
+ {
+ case 0x4100:
+ reg1 = (byte)(data & 0x07);
+ break;
+ case 0x4101:
+ switch (reg1)
+ {
+ case 5:
+ SetPROM_32K_Bank(data);
+ break;
+ case 0:
+ reg0 = (byte)(data & 0x01);
+ SetVROM_8K_Bank(reg0);
+ break;
+ case 2:
+ reg0 = data;
+ SetVROM_8K_Bank(reg0);
+ break;
+ case 4:
+ reg0 = (byte)(reg0 | (data << 1));
+ SetVROM_8K_Bank(reg0);
+ break;
+ case 6:
+ reg0 = (byte)(reg0 | (data << 2));
+ SetVROM_8K_Bank(reg0);
+ break;
+ default:
+ break;
+ }
+ break;
+ default:
+ break;
+ }
+ }
- //void Mapper110::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- p[0] = reg0;
- p[1] = reg1;
- }
+ //void Mapper110::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ p[0] = reg0;
+ p[1] = reg1;
+ }
- //void Mapper110::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- reg0 = p[0];
- reg1 = p[1];
- }
+ //void Mapper110::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ reg0 = p[0];
+ reg1 = p[1];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper111.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper111.cs
index 58da90b4..7317bc18 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper111.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper111.cs
@@ -2,11 +2,9 @@
// Mapper111 Nintendo MMC1 Hack //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper112.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper112.cs
index 21215bf3..304b37a7 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper112.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper112.cs
@@ -2,166 +2,164 @@
// Mapper112 Nintendo MMC3 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper112 : Mapper
- {
- BYTE[] reg = new byte[4];
- BYTE prg0, prg1;
- BYTE chr01, chr23, chr4, chr5, chr6, chr7;
- public Mapper112(NES parent) : base(parent)
- {
- }
+ public class Mapper112 : Mapper
+ {
+ BYTE[] reg = new byte[4];
+ BYTE prg0, prg1;
+ BYTE chr01, chr23, chr4, chr5, chr6, chr7;
+ public Mapper112(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- for (INT i = 0; i < 4; i++)
- {
- reg[i] = 0x00;
- }
+ public override void Reset()
+ {
+ for (INT i = 0; i < 4; i++)
+ {
+ reg[i] = 0x00;
+ }
- prg0 = 0;
- prg1 = 1;
- SetBank_CPU();
+ prg0 = 0;
+ prg1 = 1;
+ SetBank_CPU();
- chr01 = 0;
- chr23 = 2;
- chr4 = 4;
- chr5 = 5;
- chr6 = 6;
- chr7 = 7;
- SetBank_PPU();
- }
+ chr01 = 0;
+ chr23 = 2;
+ chr4 = 4;
+ chr5 = 5;
+ chr6 = 6;
+ chr7 = 7;
+ SetBank_PPU();
+ }
- //void Mapper112::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- switch (addr)
- {
- case 0x8000:
- reg[0] = data;
- SetBank_CPU();
- SetBank_PPU();
- break;
- case 0xA000:
- reg[1] = data;
- switch (reg[0] & 0x07)
- {
- case 0x00:
- prg0 = (byte)((data & (PROM_8K_SIZE - 1)));
- SetBank_CPU();
- break;
- case 0x01:
- prg1 = (byte)((data & (PROM_8K_SIZE - 1)));
- SetBank_CPU();
- break;
- case 0x02:
- chr01 = (byte)(data & 0xFE);
- SetBank_PPU();
- break;
- case 0x03:
- chr23 = (byte)(data & 0xFE);
- SetBank_PPU();
- break;
- case 0x04:
- chr4 = data;
- SetBank_PPU();
- break;
- case 0x05:
- chr5 = data;
- SetBank_PPU();
- break;
- case 0x06:
- chr6 = data;
- SetBank_PPU();
- break;
- case 0x07:
- chr7 = data;
- SetBank_PPU();
- break;
- }
- break;
+ //void Mapper112::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ switch (addr)
+ {
+ case 0x8000:
+ reg[0] = data;
+ SetBank_CPU();
+ SetBank_PPU();
+ break;
+ case 0xA000:
+ reg[1] = data;
+ switch (reg[0] & 0x07)
+ {
+ case 0x00:
+ prg0 = (byte)((data & (PROM_8K_SIZE - 1)));
+ SetBank_CPU();
+ break;
+ case 0x01:
+ prg1 = (byte)((data & (PROM_8K_SIZE - 1)));
+ SetBank_CPU();
+ break;
+ case 0x02:
+ chr01 = (byte)(data & 0xFE);
+ SetBank_PPU();
+ break;
+ case 0x03:
+ chr23 = (byte)(data & 0xFE);
+ SetBank_PPU();
+ break;
+ case 0x04:
+ chr4 = data;
+ SetBank_PPU();
+ break;
+ case 0x05:
+ chr5 = data;
+ SetBank_PPU();
+ break;
+ case 0x06:
+ chr6 = data;
+ SetBank_PPU();
+ break;
+ case 0x07:
+ chr7 = data;
+ SetBank_PPU();
+ break;
+ }
+ break;
- case 0xC000:
- reg[3] = data;
- SetBank_PPU();
- break;//hum 源码居然没有break 语法差异呗
- case 0xE000:
- reg[2] = data;
- if (!nes.rom.Is4SCREEN())
- {
- if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
- else SetVRAM_Mirror(VRAM_VMIRROR);
- }
- SetBank_PPU();
- break;
- }
- }
+ case 0xC000:
+ reg[3] = data;
+ SetBank_PPU();
+ break;//hum 源码居然没有break 语法差异呗
+ case 0xE000:
+ reg[2] = data;
+ if (!nes.rom.Is4SCREEN())
+ {
+ if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
+ else SetVRAM_Mirror(VRAM_VMIRROR);
+ }
+ SetBank_PPU();
+ break;
+ }
+ }
- void SetBank_CPU()
- {
- SetPROM_32K_Bank(prg0, prg1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- }
+ void SetBank_CPU()
+ {
+ SetPROM_32K_Bank(prg0, prg1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ }
- void SetBank_PPU()
- {
- if ((reg[2] & 0x02) != 0)
- {
- SetVROM_8K_Bank(chr01, chr01 + 1, chr23, chr23 + 1, chr4, chr5, chr6, chr7);
- }
- else
- {
- SetVROM_8K_Bank(((reg[3] << 6) & 0x100) + chr01,
- ((reg[3] << 6) & 0x100) + chr01 + 1,
- ((reg[3] << 5) & 0x100) + chr23,
- ((reg[3] << 5) & 0x100) + chr23 + 1,
- ((reg[3] << 4) & 0x100) + chr4,
- ((reg[3] << 3) & 0x100) + chr5,
- ((reg[3] << 2) & 0x100) + chr6,
- ((reg[3] << 1) & 0x100) + chr7);
- }
- }
+ void SetBank_PPU()
+ {
+ if ((reg[2] & 0x02) != 0)
+ {
+ SetVROM_8K_Bank(chr01, chr01 + 1, chr23, chr23 + 1, chr4, chr5, chr6, chr7);
+ }
+ else
+ {
+ SetVROM_8K_Bank(((reg[3] << 6) & 0x100) + chr01,
+ ((reg[3] << 6) & 0x100) + chr01 + 1,
+ ((reg[3] << 5) & 0x100) + chr23,
+ ((reg[3] << 5) & 0x100) + chr23 + 1,
+ ((reg[3] << 4) & 0x100) + chr4,
+ ((reg[3] << 3) & 0x100) + chr5,
+ ((reg[3] << 2) & 0x100) + chr6,
+ ((reg[3] << 1) & 0x100) + chr7);
+ }
+ }
- //void Mapper112::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- for (INT i = 0; i < 4; i++)
- {
- p[i] = reg[i];
- }
- p[4] = chr01;
- p[5] = chr23;
- p[6] = chr4;
- p[7] = chr5;
- p[8] = chr6;
- p[9] = chr7;
- }
+ //void Mapper112::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ for (INT i = 0; i < 4; i++)
+ {
+ p[i] = reg[i];
+ }
+ p[4] = chr01;
+ p[5] = chr23;
+ p[6] = chr4;
+ p[7] = chr5;
+ p[8] = chr6;
+ p[9] = chr7;
+ }
- //void Mapper112::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- for (byte i = 0; i < 4; i++)
- {
- reg[i] = p[i];
- }
+ //void Mapper112::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ for (byte i = 0; i < 4; i++)
+ {
+ reg[i] = p[i];
+ }
- chr01 = p[4];
- chr23 = p[5];
- chr4 = p[6];
- chr5 = p[7];
- chr6 = p[8];
- chr7 = p[9];
- }
+ chr01 = p[4];
+ chr23 = p[5];
+ chr4 = p[6];
+ chr5 = p[7];
+ chr6 = p[8];
+ chr7 = p[9];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper113.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper113.cs
index 8bde5567..f4f7796f 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper113.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper113.cs
@@ -2,78 +2,74 @@
// Mapper113 PC-Sachen/Hacker //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper113 : Mapper
- {
- public Mapper113(NES parent) : base(parent)
- {
- }
+ public class Mapper113 : Mapper
+ {
+ public Mapper113(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- // SetPROM_32K_Bank( 0, 1, PROM_8K_SIZE-2, PROM_8K_SIZE-1 );
- SetPROM_32K_Bank(0);
- SetVROM_8K_Bank(0);
- }
+ public override void Reset()
+ {
+ // SetPROM_32K_Bank( 0, 1, PROM_8K_SIZE-2, PROM_8K_SIZE-1 );
+ SetPROM_32K_Bank(0);
+ SetVROM_8K_Bank(0);
+ }
- //void Mapper113::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- //DEBUGOUT( "$%04X:$%02X L=%3d\n", addr, data, nes.GetScanline() );
- switch (addr)
- {
- case 0x4100:
- case 0x4111:
- case 0x4120:
- case 0x4194:
- case 0x4195:
- case 0x4900:
- if (nes.rom.GetPROM_CRC() == 0xA75AEDE5)
- { // HES 6-in-1
- if ((data & 0x80) != 0)
- {
- SetVRAM_Mirror(VRAM_VMIRROR);
- }
- else
- {
- SetVRAM_Mirror(VRAM_HMIRROR);
- }
- }
- SetPROM_32K_Bank(data >> 3);
- SetVROM_8K_Bank(((data >> 3) & 0x08) + (data & 0x07));
- break;
- }
- }
+ //void Mapper113::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ //DEBUGOUT( "$%04X:$%02X L=%3d\n", addr, data, nes.GetScanline() );
+ switch (addr)
+ {
+ case 0x4100:
+ case 0x4111:
+ case 0x4120:
+ case 0x4194:
+ case 0x4195:
+ case 0x4900:
+ if (nes.rom.GetPROM_CRC() == 0xA75AEDE5)
+ { // HES 6-in-1
+ if ((data & 0x80) != 0)
+ {
+ SetVRAM_Mirror(VRAM_VMIRROR);
+ }
+ else
+ {
+ SetVRAM_Mirror(VRAM_HMIRROR);
+ }
+ }
+ SetPROM_32K_Bank(data >> 3);
+ SetVROM_8K_Bank(((data >> 3) & 0x08) + (data & 0x07));
+ break;
+ }
+ }
- //void Mapper113::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- //DEBUGOUT( "$%04X:$%02X L=%3d\n", addr, data, nes.GetScanline() );
- switch (addr)
- {
- case 0x8008:
- case 0x8009:
- SetPROM_32K_Bank(data >> 3);
- SetVROM_8K_Bank(((data >> 3) & 0x08) + (data & 0x07));
- break;
- case 0x8E66:
- case 0x8E67:
- //SetVROM_8K_Bank((data & 0x07) ? 0 : 1);
- SetVROM_8K_Bank((data & 0x07) != 0 ? 0 : 1);
- break;
- case 0xE00A:
- SetVRAM_Mirror(VRAM_MIRROR4L);
- break;
- }
- }
+ //void Mapper113::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ //DEBUGOUT( "$%04X:$%02X L=%3d\n", addr, data, nes.GetScanline() );
+ switch (addr)
+ {
+ case 0x8008:
+ case 0x8009:
+ SetPROM_32K_Bank(data >> 3);
+ SetVROM_8K_Bank(((data >> 3) & 0x08) + (data & 0x07));
+ break;
+ case 0x8E66:
+ case 0x8E67:
+ //SetVROM_8K_Bank((data & 0x07) ? 0 : 1);
+ SetVROM_8K_Bank((data & 0x07) != 0 ? 0 : 1);
+ break;
+ case 0xE00A:
+ SetVRAM_Mirror(VRAM_MIRROR4L);
+ break;
+ }
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper114.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper114.cs
index 3bc87a33..fefaf5e0 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper114.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper114.cs
@@ -1,13 +1,11 @@
//////////////////////////////////////////////////////////////////////////
// Mapper114 //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using System.Text.RegularExpressions;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper115.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper115.cs
index 1b211699..f1231abc 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper115.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper115.cs
@@ -2,12 +2,11 @@
// Mapper115 CartSaint : Yuu Yuu Hakusho Final //
// JusticePao(?) //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
@@ -46,7 +45,7 @@ namespace VirtualNes.Core
SetBank_CPU();
- if (VROM_1K_SIZE!=0)
+ if (VROM_1K_SIZE != 0)
{
chr0 = 0;
chr1 = 1;
@@ -143,7 +142,7 @@ namespace VirtualNes.Core
reg[2] = data;
if (!nes.rom.Is4SCREEN())
{
- if ((data & 0x01)!=0) SetVRAM_Mirror(VRAM_HMIRROR);
+ if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
else SetVRAM_Mirror(VRAM_VMIRROR);
}
break;
@@ -178,9 +177,9 @@ namespace VirtualNes.Core
{
if (nes.ppu.IsDispON())
{
- if (irq_enable!=0)
+ if (irq_enable != 0)
{
- if ((irq_counter--)==0)
+ if ((irq_counter--) == 0)
{
irq_counter = irq_latch;
// nes.cpu.IRQ_NotPending();
@@ -194,7 +193,7 @@ namespace VirtualNes.Core
void SetBank_CPU()
{
- if ((ExPrgSwitch & 0x80)!=0)
+ if ((ExPrgSwitch & 0x80) != 0)
{
prg0 = (byte)(((ExPrgSwitch << 1) & 0x1e));
prg1 = (byte)(prg0 + 1);
@@ -205,7 +204,7 @@ namespace VirtualNes.Core
{
prg0 = prg0L;
prg1 = prg1L;
- if ((reg[0] & 0x40)!=0)
+ if ((reg[0] & 0x40) != 0)
{
SetPROM_32K_Bank(PROM_8K_SIZE - 2, prg1, prg0, PROM_8K_SIZE - 1);
}
@@ -218,9 +217,9 @@ namespace VirtualNes.Core
void SetBank_PPU()
{
- if (VROM_1K_SIZE!=0)
+ if (VROM_1K_SIZE != 0)
{
- if ((reg[0] & 0x80)!=0)
+ if ((reg[0] & 0x80) != 0)
{
SetVROM_8K_Bank((ExChrSwitch << 8) + chr4, (ExChrSwitch << 8) + chr5,
(ExChrSwitch << 8) + chr6, (ExChrSwitch << 8) + chr7,
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper116.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper116.cs
index e1448837..5ee49898 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper116.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper116.cs
@@ -1,13 +1,11 @@
//////////////////////////////////////////////////////////////////////////
// Mapper116 CartSaint : 幽遊AV強列伝 //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
using VirtualNes.Core.Debug;
+using static VirtualNes.Core.CPU;
+using static VirtualNes.MMU;
+using BYTE = System.Byte;
+using INT = System.Int32;
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper117.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper117.cs
index 59d4229a..c88eb3b3 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper117.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper117.cs
@@ -1,12 +1,10 @@
//////////////////////////////////////////////////////////////////////////
// Mapper117 Sanko Gu(Tw) //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper118.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper118.cs
index 1ad58f25..71d5d4f2 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper118.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper118.cs
@@ -1,12 +1,11 @@
//////////////////////////////////////////////////////////////////////////
// Mapper118 IQS MMC3 //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper119.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper119.cs
index 34f4013e..2ee87997 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper119.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper119.cs
@@ -1,12 +1,11 @@
//////////////////////////////////////////////////////////////////////////
// Mapper119 Nintendo MMC3 //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper122.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper122.cs
index ef53dddc..ac7454b7 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper122.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper122.cs
@@ -2,11 +2,7 @@
// Mapper122/184 SunSoft-1 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper133.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper133.cs
index 30887cae..aa12ea16 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper133.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper133.cs
@@ -2,11 +2,7 @@
// Mapper133 SACHEN CHEN //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper134.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper134.cs
index 66f2c198..1e217a1e 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper134.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper134.cs
@@ -2,11 +2,8 @@
// Mapper133 SACHEN CHEN //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper135.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper135.cs
index db522e94..a9e41c89 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper135.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper135.cs
@@ -2,11 +2,8 @@
// Mapper135 SACHEN CHEN //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper140.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper140.cs
index bf3f337e..0d043a89 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper140.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper140.cs
@@ -2,11 +2,7 @@
// Mapper140 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper142.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper142.cs
index 5800e936..7b379414 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper142.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper142.cs
@@ -1,12 +1,11 @@
//////////////////////////////////////////////////////////////////////////
// Mapper142 SMB2J //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper151.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper151.cs
index 59d9d944..587366a9 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper151.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper151.cs
@@ -2,11 +2,7 @@
// Mapper151 VS-Unisystem //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper160.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper160.cs
index 66a8a9bd..e24fa783 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper160.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper160.cs
@@ -1,12 +1,10 @@
//////////////////////////////////////////////////////////////////////////
// Mapper160 PC-Aladdin //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper162.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper162.cs
index 42e5bc7c..428412e4 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper162.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper162.cs
@@ -1,13 +1,9 @@
//////////////////////////////////////////////////////////////////////////
// Mapper162 Pocket Monster Gold //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
using VirtualNes.Core.Debug;
+using static VirtualNes.MMU;
+using BYTE = System.Byte;
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper163.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper163.cs
index 079ed302..68186e88 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper163.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper163.cs
@@ -1,17 +1,16 @@
//////////////////////////////////////////////////////////////////////////
// Mapper163 NanJing Games //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
using System;
-using Codice.CM.Client.Differences;
+using static VirtualNes.MMU;
+using BYTE = System.Byte;
+using INT = System.Int32;
+
namespace VirtualNes.Core
-{
- public class Mapper163 : Mapper
- {
+{
+ public class Mapper163 : Mapper
+ {
//BYTE strobe;
//BYTE security;
//BYTE trigger;
@@ -25,10 +24,10 @@ namespace VirtualNes.Core
INT www, index;
public Mapper163(NES parent) : base(parent)
- {
+ {
}
- static Int32[] index_adjust = new Int32[]{ -1, -1, -1, -1, 2, 4, 6, 8 };
+ static Int32[] index_adjust = new Int32[] { -1, -1, -1, -1, 2, 4, 6, 8 };
static Int16[] step_table = new Int16[] {
7,8,9,10,11,12,13,14,16,17,19,21,23,25,28,31,34,37,41,45,50,55,
60,66,73,80,88,97,107,118,130,143,157,173,190,209,230,253,279,
@@ -101,7 +100,7 @@ namespace VirtualNes.Core
return (byte)security;
break;
case 0x5500:
- if (trigger!=0)
+ if (trigger != 0)
return (byte)security;
else
return 0;
@@ -125,7 +124,7 @@ namespace VirtualNes.Core
{
if (addr == 0x5101)
{
- if (strobe !=0 && data == 0)
+ if (strobe != 0 && data == 0)
{
trigger ^= 1;
// trigger ^= 0xFF;
@@ -186,7 +185,7 @@ namespace VirtualNes.Core
//void Mapper163::HSync(int scanline)
public override void HSync(int scanline)
{
- if ((reg[1] & 0x80) !=0 && nes.ppu.IsDispON())
+ if ((reg[1] & 0x80) != 0 && nes.ppu.IsDispON())
{
if (scanline == 127)
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper164.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper164.cs
index 2ff24d8d..eb4b0db1 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper164.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper164.cs
@@ -1,13 +1,11 @@
//////////////////////////////////////////////////////////////////////////
// Mapper164 Pocket Monster Gold //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
using System;
-using Codice.CM.Client.Differences;
using VirtualNes.Core.Debug;
+using static VirtualNes.MMU;
+using BYTE = System.Byte;
+using INT = System.Int32;
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper165.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper165.cs
index cfc82842..925b27ac 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper165.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper165.cs
@@ -2,11 +2,9 @@
// Mapper165 Fire Emblem Chinese version //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
@@ -94,7 +92,7 @@ namespace VirtualNes.Core
break;
case 0xA000:
reg[2] = data;
- if ((data & 0x01)!= 0)
+ if ((data & 0x01) != 0)
{
SetVRAM_Mirror(VRAM_HMIRROR);
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper167.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper167.cs
index 90ef150c..daf4f96e 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper167.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper167.cs
@@ -2,11 +2,8 @@
// Mapper004 Supor Computer V4.0 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper175.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper175.cs
index e1eb234c..dccd6591 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper175.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper175.cs
@@ -2,22 +2,19 @@
// Mapper175 15-in-1 (Kaiser) //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper175 : Mapper
- {
- BYTE reg_dat;
- public Mapper175(NES parent) : base(parent)
- {
- }
+ public class Mapper175 : Mapper
+ {
+ BYTE reg_dat;
+ public Mapper175(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
+ public override void Reset()
{
SetPROM_16K_Bank(4, 0);
SetPROM_16K_Bank(6, 0);
@@ -45,7 +42,7 @@ namespace VirtualNes.Core
switch (addr)
{
case 0x8000:
- if ((data & 0x04)!=0)
+ if ((data & 0x04) != 0)
{
SetVRAM_Mirror(VRAM_HMIRROR);
}
@@ -63,9 +60,9 @@ namespace VirtualNes.Core
}
public override bool IsStateSave()
- {
- return true;
- }
+ {
+ return true;
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper176.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper176.cs
index 8df507ef..8fb80b2b 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper176.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper176.cs
@@ -2,10 +2,7 @@
// Mapper176 ShuQiYu / HengGe / WaiXing //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
namespace VirtualNes.Core
{
@@ -35,7 +32,7 @@ namespace VirtualNes.Core
SetPROM_32K_Bank(0, 1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
}
// SetPROM_32K_Bank( PROM_8K_SIZE-4, PROM_8K_SIZE-3, PROM_8K_SIZE-2, PROM_8K_SIZE-1 );
- if (VROM_1K_SIZE!=0) SetVROM_8K_Bank(0);
+ if (VROM_1K_SIZE != 0) SetVROM_8K_Bank(0);
reg5000 = 0;
reg5001 = 0;
@@ -115,7 +112,7 @@ namespace VirtualNes.Core
break;
case 0x5001: //[ES-1006] Meng Huan Zhi Xing IV (C)
reg5001 = data;
- if (SBW!=0) SetPROM_32K_Bank(reg5001);
+ if (SBW != 0) SetPROM_32K_Bank(reg5001);
break;
case 0x5010:
reg5010 = data;
@@ -123,7 +120,7 @@ namespace VirtualNes.Core
break;
case 0x5011:
reg5011 = (byte)(data >> 1);
- if (SBW!=0) SetPROM_32K_Bank(reg5011);
+ if (SBW != 0) SetPROM_32K_Bank(reg5011);
break;
case 0x5013:
reg5013 = data;
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper178.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper178.cs
index 1ffcb586..fe38bbcf 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper178.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper178.cs
@@ -2,23 +2,21 @@
// Mapper178 Education / WaiXing_FS305 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper178 : Mapper
- {
- BYTE[] reg = new byte[3];
+ public class Mapper178 : Mapper
+ {
+ BYTE[] reg = new byte[3];
BYTE banknum;
BYTE OP_rom;
public Mapper178(NES parent) : base(parent)
- {
- }
+ {
+ }
- public override void Reset()
+ public override void Reset()
{
reg[0] = 0;
reg[1] = 0;
@@ -47,13 +45,13 @@ namespace VirtualNes.Core
else if (addr == 0x4801)
{
reg[0] = (byte)((data >> 1) & 0x0F);
- if (OP_rom!=0) reg[0] = (byte)(data << 2);
+ if (OP_rom != 0) reg[0] = (byte)(data << 2);
SetBank_CPU();
}
else if (addr == 0x4802)
{
reg[1] = (byte)(data << 2);
- if (OP_rom!=0) reg[1] = data;
+ if (OP_rom != 0) reg[1] = data;
SetBank_CPU();
}
else if (addr == 0x4803)
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper180.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper180.cs
index f6ffc29c..abd4dfcc 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper180.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper180.cs
@@ -2,11 +2,7 @@
// Mapper180 Nichibutsu //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper181.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper181.cs
index b39ae4d9..6d10bcce 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper181.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper181.cs
@@ -2,11 +2,7 @@
// Mapper181 Hacker International Type2 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper182.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper182.cs
index 9cddc37a..8dd938af 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper182.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper182.cs
@@ -1,12 +1,10 @@
//////////////////////////////////////////////////////////////////////////
// Mapper182 PC-SuperDonkeyKong //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper183.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper183.cs
index 8d60d8d5..e34b2da7 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper183.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper183.cs
@@ -1,12 +1,11 @@
//////////////////////////////////////////////////////////////////////////
// Mapper183 Gimmick (Bootleg) //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper185.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper185.cs
index db8eef47..11df565c 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper185.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper185.cs
@@ -2,11 +2,9 @@
// Mapper185 Character disable protect //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper187.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper187.cs
index 58bfe378..1135a02e 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper187.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper187.cs
@@ -1,12 +1,11 @@
//////////////////////////////////////////////////////////////////////////
// Mapper187 Street Fighter Zero 2 97 //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper188.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper188.cs
index 347e454e..b4807d5f 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper188.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper188.cs
@@ -2,11 +2,7 @@
// Mapper188 Bandai Karaoke Studio //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper189.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper189.cs
index e07c6778..22eaf8f8 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper189.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper189.cs
@@ -2,12 +2,11 @@
// Mapper189 Street Fighter 2/Yoko version //
// 快打傅説 Street Fighter IV (GOUDER) //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper190.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper190.cs
index 3e65a5b2..fb95f174 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper190.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper190.cs
@@ -1,12 +1,10 @@
//////////////////////////////////////////////////////////////
// Mapper190 Nintendo MMC3 //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper191.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper191.cs
index 8c5fd50d..f7686981 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper191.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper191.cs
@@ -3,11 +3,9 @@
// SACHEN Q-BOY Support //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper192.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper192.cs
index 54ec85e2..3e4f884d 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper192.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper192.cs
@@ -1,18 +1,16 @@
//////////////////////////////////////////////////////////////////////////
// Mapper192 WaiXingTypeC Base ON Nintendo MMC3 //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper192 : Mapper
- {
- BYTE[] reg = new byte[8];
+ public class Mapper192 : Mapper
+ {
+ BYTE[] reg = new byte[8];
BYTE prg0, prg1;
BYTE chr01, chr23, chr4, chr5, chr6, chr7;
BYTE we_sram;
@@ -23,11 +21,11 @@ namespace VirtualNes.Core
BYTE irq_latch;
BYTE irq_request;
public Mapper192(NES parent) : base(parent)
- {
- }
+ {
+ }
- public override void Reset()
- {
+ public override void Reset()
+ {
for (byte i = 0; i < 8; i++)
{
reg[i] = 0x00;
@@ -52,35 +50,35 @@ namespace VirtualNes.Core
}
- //BYTE Mapper192::ReadLow(WORD addr)
- public override byte ReadLow(ushort addr)
- {
- if (addr >= 0x5000 && addr <= 0x5FFF)
- {
- return XRAM[addr - 0x4000];
- }
- else
- {
- return base.ReadLow(addr);
- }
- }
+ //BYTE Mapper192::ReadLow(WORD addr)
+ public override byte ReadLow(ushort addr)
+ {
+ if (addr >= 0x5000 && addr <= 0x5FFF)
+ {
+ return XRAM[addr - 0x4000];
+ }
+ else
+ {
+ return base.ReadLow(addr);
+ }
+ }
- //void Mapper192::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- if (addr >= 0x5000 && addr <= 0x5FFF)
- {
- XRAM[addr - 0x4000] = data;
- }
- else
- {
- base.WriteLow(addr, data);
- }
- }
+ //void Mapper192::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ if (addr >= 0x5000 && addr <= 0x5FFF)
+ {
+ XRAM[addr - 0x4000] = data;
+ }
+ else
+ {
+ base.WriteLow(addr, data);
+ }
+ }
- //void Mapper192::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
+ //void Mapper192::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
//DEBUGOUT( "MPRWR A=%04X D=%02X L=%3d CYC=%d\n", addr&0xFFFF, data&0xFF, nes.GetScanline(), nes.cpu.GetTotalCycles() );
switch (addr & 0xE001)
@@ -133,7 +131,7 @@ namespace VirtualNes.Core
reg[2] = data;
if (!nes.rom.Is4SCREEN())
{
- if ((data & 0x01)!=0) SetVRAM_Mirror(VRAM_HMIRROR);
+ if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
else SetVRAM_Mirror(VRAM_VMIRROR);
}
break;
@@ -165,23 +163,23 @@ namespace VirtualNes.Core
}
- //void Mapper192::HSync(INT scanline)
- public override void HSync(int scanline)
- {
+ //void Mapper192::HSync(INT scanline)
+ public override void HSync(int scanline)
+ {
if ((scanline >= 0 && scanline <= 239))
{
if (nes.ppu.IsDispON())
{
- if (irq_enable!=0 && irq_request == 0)
+ if (irq_enable != 0 && irq_request == 0)
{
if (scanline == 0)
{
- if (irq_counter!=0)
+ if (irq_counter != 0)
{
irq_counter--;
}
}
- if ((irq_counter--)==0)
+ if ((irq_counter--) == 0)
{
irq_request = 0xFF;
irq_counter = irq_latch;
@@ -192,133 +190,133 @@ namespace VirtualNes.Core
}
}
- void SetBank_CPU()
- {
- if ((reg[0] & 0x40) != 0)
- {
- SetPROM_32K_Bank(PROM_8K_SIZE - 2, prg1, prg0, PROM_8K_SIZE - 1);
- }
- else
- {
- SetPROM_32K_Bank(prg0, prg1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- }
- }
+ void SetBank_CPU()
+ {
+ if ((reg[0] & 0x40) != 0)
+ {
+ SetPROM_32K_Bank(PROM_8K_SIZE - 2, prg1, prg0, PROM_8K_SIZE - 1);
+ }
+ else
+ {
+ SetPROM_32K_Bank(prg0, prg1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ }
+ }
- void SetBank_PPU()
- {
- if (VROM_1K_SIZE != 0)
- {
- if ((reg[0] & 0x80) != 0)
- {
- // SetVROM_8K_Bank( chr4, chr5, chr6, chr7,
- // chr01, chr01+1, chr23, chr23+1 );
- SetBank_PPUSUB(4, chr01 + 0);
- SetBank_PPUSUB(5, chr01 + 1);
- SetBank_PPUSUB(6, chr23 + 0);
- SetBank_PPUSUB(7, chr23 + 1);
- SetBank_PPUSUB(0, chr4);
- SetBank_PPUSUB(1, chr5);
- SetBank_PPUSUB(2, chr6);
- SetBank_PPUSUB(3, chr7);
- }
- else
- {
- // SetVROM_8K_Bank( chr01, chr01+1, chr23, chr23+1,
- // chr4, chr5, chr6, chr7 );
- SetBank_PPUSUB(0, chr01 + 0);
- SetBank_PPUSUB(1, chr01 + 1);
- SetBank_PPUSUB(2, chr23 + 0);
- SetBank_PPUSUB(3, chr23 + 1);
- SetBank_PPUSUB(4, chr4);
- SetBank_PPUSUB(5, chr5);
- SetBank_PPUSUB(6, chr6);
- SetBank_PPUSUB(7, chr7);
- }
- }
- else
- {
- if ((reg[0] & 0x80) != 0)
- {
- SetCRAM_1K_Bank(4, (chr01 + 0));
- SetCRAM_1K_Bank(5, (chr01 + 1));
- SetCRAM_1K_Bank(6, (chr23 + 0));
- SetCRAM_1K_Bank(7, (chr23 + 1));
- SetCRAM_1K_Bank(0, chr4);
- SetCRAM_1K_Bank(1, chr5);
- SetCRAM_1K_Bank(2, chr6);
- SetCRAM_1K_Bank(3, chr7);
- }
- else
- {
- SetCRAM_1K_Bank(0, (chr01 + 0));
- SetCRAM_1K_Bank(1, (chr01 + 1));
- SetCRAM_1K_Bank(2, (chr23 + 0));
- SetCRAM_1K_Bank(3, (chr23 + 1));
- SetCRAM_1K_Bank(4, chr4);
- SetCRAM_1K_Bank(5, chr5);
- SetCRAM_1K_Bank(6, chr6);
- SetCRAM_1K_Bank(7, chr7);
- }
- }
- }
+ void SetBank_PPU()
+ {
+ if (VROM_1K_SIZE != 0)
+ {
+ if ((reg[0] & 0x80) != 0)
+ {
+ // SetVROM_8K_Bank( chr4, chr5, chr6, chr7,
+ // chr01, chr01+1, chr23, chr23+1 );
+ SetBank_PPUSUB(4, chr01 + 0);
+ SetBank_PPUSUB(5, chr01 + 1);
+ SetBank_PPUSUB(6, chr23 + 0);
+ SetBank_PPUSUB(7, chr23 + 1);
+ SetBank_PPUSUB(0, chr4);
+ SetBank_PPUSUB(1, chr5);
+ SetBank_PPUSUB(2, chr6);
+ SetBank_PPUSUB(3, chr7);
+ }
+ else
+ {
+ // SetVROM_8K_Bank( chr01, chr01+1, chr23, chr23+1,
+ // chr4, chr5, chr6, chr7 );
+ SetBank_PPUSUB(0, chr01 + 0);
+ SetBank_PPUSUB(1, chr01 + 1);
+ SetBank_PPUSUB(2, chr23 + 0);
+ SetBank_PPUSUB(3, chr23 + 1);
+ SetBank_PPUSUB(4, chr4);
+ SetBank_PPUSUB(5, chr5);
+ SetBank_PPUSUB(6, chr6);
+ SetBank_PPUSUB(7, chr7);
+ }
+ }
+ else
+ {
+ if ((reg[0] & 0x80) != 0)
+ {
+ SetCRAM_1K_Bank(4, (chr01 + 0));
+ SetCRAM_1K_Bank(5, (chr01 + 1));
+ SetCRAM_1K_Bank(6, (chr23 + 0));
+ SetCRAM_1K_Bank(7, (chr23 + 1));
+ SetCRAM_1K_Bank(0, chr4);
+ SetCRAM_1K_Bank(1, chr5);
+ SetCRAM_1K_Bank(2, chr6);
+ SetCRAM_1K_Bank(3, chr7);
+ }
+ else
+ {
+ SetCRAM_1K_Bank(0, (chr01 + 0));
+ SetCRAM_1K_Bank(1, (chr01 + 1));
+ SetCRAM_1K_Bank(2, (chr23 + 0));
+ SetCRAM_1K_Bank(3, (chr23 + 1));
+ SetCRAM_1K_Bank(4, chr4);
+ SetCRAM_1K_Bank(5, chr5);
+ SetCRAM_1K_Bank(6, chr6);
+ SetCRAM_1K_Bank(7, chr7);
+ }
+ }
+ }
- void SetBank_PPUSUB(int bank, int page)
- {
- if ((page & 0xFC) == 0x08)
- {
- SetCRAM_1K_Bank((byte)bank, page);
- }
- else
- {
- SetVROM_1K_Bank((byte)bank, page);
- }
- }
+ void SetBank_PPUSUB(int bank, int page)
+ {
+ if ((page & 0xFC) == 0x08)
+ {
+ SetCRAM_1K_Bank((byte)bank, page);
+ }
+ else
+ {
+ SetVROM_1K_Bank((byte)bank, page);
+ }
+ }
- //void Mapper192::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- for (byte i = 0; i < 8; i++)
- {
- p[i] = reg[i];
- }
- p[8] = prg0;
- p[9] = prg1;
- p[10] = chr01;
- p[11] = chr23;
- p[12] = chr4;
- p[13] = chr5;
- p[14] = chr6;
- p[15] = chr7;
- p[16] = irq_enable;
- p[17] = irq_counter;
- p[18] = irq_latch;
- p[19] = irq_request;
- }
+ //void Mapper192::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ for (byte i = 0; i < 8; i++)
+ {
+ p[i] = reg[i];
+ }
+ p[8] = prg0;
+ p[9] = prg1;
+ p[10] = chr01;
+ p[11] = chr23;
+ p[12] = chr4;
+ p[13] = chr5;
+ p[14] = chr6;
+ p[15] = chr7;
+ p[16] = irq_enable;
+ p[17] = irq_counter;
+ p[18] = irq_latch;
+ p[19] = irq_request;
+ }
- //void Mapper192::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- for (byte i = 0; i < 8; i++)
- {
- reg[i] = p[i];
- }
- prg0 = p[8];
- prg1 = p[9];
- chr01 = p[10];
- chr23 = p[11];
- chr4 = p[12];
- chr5 = p[13];
- chr6 = p[14];
- chr7 = p[15];
- irq_enable = p[16];
- irq_counter = p[17];
- irq_latch = p[18];
- irq_request = p[19];
- }
+ //void Mapper192::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ for (byte i = 0; i < 8; i++)
+ {
+ reg[i] = p[i];
+ }
+ prg0 = p[8];
+ prg1 = p[9];
+ chr01 = p[10];
+ chr23 = p[11];
+ chr4 = p[12];
+ chr5 = p[13];
+ chr6 = p[14];
+ chr7 = p[15];
+ irq_enable = p[16];
+ irq_counter = p[17];
+ irq_latch = p[18];
+ irq_request = p[19];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper193.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper193.cs
index dbe695b4..7e8de998 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper193.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper193.cs
@@ -2,10 +2,6 @@
// Mapper193 MEGA SOFT (NTDEC) : Fighting Hero //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper194.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper194.cs
index 970e5ca4..ddba71a3 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper194.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper194.cs
@@ -2,11 +2,7 @@
// Mapper194 迷宮寺院ダババ //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper195.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper195.cs
index 1e311b52..3e0ce7a5 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper195.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper195.cs
@@ -1,324 +1,323 @@
-using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.Core.CPU;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
- public class Mapper195 : Mapper
- {
+ public class Mapper195 : Mapper
+ {
- BYTE[] reg = new BYTE[8];
- BYTE prg0, prg1;
- BYTE chr01, chr23, chr4, chr5, chr6, chr7;
- BYTE we_sram;
+ BYTE[] reg = new BYTE[8];
+ BYTE prg0, prg1;
+ BYTE chr01, chr23, chr4, chr5, chr6, chr7;
+ BYTE we_sram;
- BYTE irq_type;
- BYTE irq_enable;
- BYTE irq_counter;
- BYTE irq_latch;
- BYTE irq_request;
- public Mapper195(NES parent) : base(parent)
- {
- }
+ BYTE irq_type;
+ BYTE irq_enable;
+ BYTE irq_counter;
+ BYTE irq_latch;
+ BYTE irq_request;
+ public Mapper195(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- for (INT i = 0; i < 8; i++)
- {
- reg[i] = 0x00;
- }
- prg0 = 0;
- prg1 = 1;
- SetBank_CPU();
+ public override void Reset()
+ {
+ for (INT i = 0; i < 8; i++)
+ {
+ reg[i] = 0x00;
+ }
+ prg0 = 0;
+ prg1 = 1;
+ SetBank_CPU();
- chr01 = 0;
- chr23 = 2;
- chr4 = 4;
- chr5 = 5;
- chr6 = 6;
- chr7 = 7;
- SetBank_PPU();
+ chr01 = 0;
+ chr23 = 2;
+ chr4 = 4;
+ chr5 = 5;
+ chr6 = 6;
+ chr7 = 7;
+ SetBank_PPU();
- we_sram = 0; // Disable
- irq_enable = 0; // Disable
- irq_counter = 0;
- irq_latch = 0;
- irq_request = 0;
- }
+ we_sram = 0; // Disable
+ irq_enable = 0; // Disable
+ irq_counter = 0;
+ irq_latch = 0;
+ irq_request = 0;
+ }
- //BYTE Mapper195::ReadLow(WORD addr)
- public override byte ReadLow(ushort addr)
- {
- if (addr >= 0x5000 && addr <= 0x5FFF)
- {
- return XRAM[addr - 0x4000];
- }
- else
- {
- return base.ReadLow(addr);
- }
- }
+ //BYTE Mapper195::ReadLow(WORD addr)
+ public override byte ReadLow(ushort addr)
+ {
+ if (addr >= 0x5000 && addr <= 0x5FFF)
+ {
+ return XRAM[addr - 0x4000];
+ }
+ else
+ {
+ return base.ReadLow(addr);
+ }
+ }
- //void Mapper195::WriteLow(WORD addr, BYTE data)
- public override void WriteLow(ushort addr, byte data)
- {
- if (addr >= 0x5000 && addr <= 0x5FFF)
- {
- XRAM[addr - 0x4000] = data;
- }
- else
- {
- base.WriteLow(addr, data);
- }
- }
+ //void Mapper195::WriteLow(WORD addr, BYTE data)
+ public override void WriteLow(ushort addr, byte data)
+ {
+ if (addr >= 0x5000 && addr <= 0x5FFF)
+ {
+ XRAM[addr - 0x4000] = data;
+ }
+ else
+ {
+ base.WriteLow(addr, data);
+ }
+ }
- //void Mapper195::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- //DEBUGOUT( "MPRWR A=%04X D=%02X L=%3d CYC=%d\n", addr&0xFFFF, data&0xFF, nes.GetScanline(), nes.cpu.GetTotalCycles() );
+ //void Mapper195::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ //DEBUGOUT( "MPRWR A=%04X D=%02X L=%3d CYC=%d\n", addr&0xFFFF, data&0xFF, nes.GetScanline(), nes.cpu.GetTotalCycles() );
- switch (addr & 0xE001)
- {
- case 0x8000:
- reg[0] = data;
- SetBank_CPU();
- SetBank_PPU();
- break;
- case 0x8001:
- reg[1] = data;
+ switch (addr & 0xE001)
+ {
+ case 0x8000:
+ reg[0] = data;
+ SetBank_CPU();
+ SetBank_PPU();
+ break;
+ case 0x8001:
+ reg[1] = data;
- switch (reg[0] & 0x07)
- {
- case 0x00:
- chr01 = data;
- SetBank_PPU();
- break;
- case 0x01:
- chr23 = data;
- SetBank_PPU();
- break;
- case 0x02:
- chr4 = data;
- SetBank_PPU();
- break;
- case 0x03:
- chr5 = data;
- SetBank_PPU();
- break;
- case 0x04:
- chr6 = data;
- SetBank_PPU();
- break;
- case 0x05:
- chr7 = data;
- SetBank_PPU();
- break;
- case 0x06:
- prg0 = data;
- SetBank_CPU();
- break;
- case 0x07:
- prg1 = data;
- SetBank_CPU();
- break;
- }
- break;
- case 0xA000:
- reg[2] = data;
- if (!nes.rom.Is4SCREEN())
- {
- if (data == 0) SetVRAM_Mirror(VRAM_VMIRROR);
- else if (data == 1) SetVRAM_Mirror(VRAM_HMIRROR);
- else if (data == 2) SetVRAM_Mirror(VRAM_MIRROR4L);
- else SetVRAM_Mirror(VRAM_MIRROR4H);
- }
- break;
- case 0xA001:
- reg[3] = data;
- break;
- case 0xC000:
- reg[4] = data;
- irq_counter = data;
- irq_request = 0;
- break;
- case 0xC001:
- reg[5] = data;
- irq_latch = data;
- irq_request = 0;
- break;
- case 0xE000:
- reg[6] = data;
- irq_enable = 0;
- irq_request = 0;
- nes.cpu.ClrIRQ(IRQ_MAPPER);
- break;
- case 0xE001:
- reg[7] = data;
- irq_enable = 1;
- irq_request = 0;
- break;
- }
+ switch (reg[0] & 0x07)
+ {
+ case 0x00:
+ chr01 = data;
+ SetBank_PPU();
+ break;
+ case 0x01:
+ chr23 = data;
+ SetBank_PPU();
+ break;
+ case 0x02:
+ chr4 = data;
+ SetBank_PPU();
+ break;
+ case 0x03:
+ chr5 = data;
+ SetBank_PPU();
+ break;
+ case 0x04:
+ chr6 = data;
+ SetBank_PPU();
+ break;
+ case 0x05:
+ chr7 = data;
+ SetBank_PPU();
+ break;
+ case 0x06:
+ prg0 = data;
+ SetBank_CPU();
+ break;
+ case 0x07:
+ prg1 = data;
+ SetBank_CPU();
+ break;
+ }
+ break;
+ case 0xA000:
+ reg[2] = data;
+ if (!nes.rom.Is4SCREEN())
+ {
+ if (data == 0) SetVRAM_Mirror(VRAM_VMIRROR);
+ else if (data == 1) SetVRAM_Mirror(VRAM_HMIRROR);
+ else if (data == 2) SetVRAM_Mirror(VRAM_MIRROR4L);
+ else SetVRAM_Mirror(VRAM_MIRROR4H);
+ }
+ break;
+ case 0xA001:
+ reg[3] = data;
+ break;
+ case 0xC000:
+ reg[4] = data;
+ irq_counter = data;
+ irq_request = 0;
+ break;
+ case 0xC001:
+ reg[5] = data;
+ irq_latch = data;
+ irq_request = 0;
+ break;
+ case 0xE000:
+ reg[6] = data;
+ irq_enable = 0;
+ irq_request = 0;
+ nes.cpu.ClrIRQ(IRQ_MAPPER);
+ break;
+ case 0xE001:
+ reg[7] = data;
+ irq_enable = 1;
+ irq_request = 0;
+ break;
+ }
- }
+ }
- //void Mapper195::HSync(INT scanline)
- public override void HSync(int scanline)
- {
- if ((scanline >= 0 && scanline <= 239))
- {
- if (nes.ppu.IsDispON())
- {
- if (irq_enable != 0 && irq_request == 0)
- {
- if (scanline == 0)
- {
- if (irq_counter != 0)
- {
- irq_counter--;
- }
- }
- if ((irq_counter--) == 0)
- {
- irq_request = 0xFF;
- irq_counter = irq_latch;
- nes.cpu.SetIRQ(IRQ_MAPPER);
- }
- }
- }
- }
- }
+ //void Mapper195::HSync(INT scanline)
+ public override void HSync(int scanline)
+ {
+ if ((scanline >= 0 && scanline <= 239))
+ {
+ if (nes.ppu.IsDispON())
+ {
+ if (irq_enable != 0 && irq_request == 0)
+ {
+ if (scanline == 0)
+ {
+ if (irq_counter != 0)
+ {
+ irq_counter--;
+ }
+ }
+ if ((irq_counter--) == 0)
+ {
+ irq_request = 0xFF;
+ irq_counter = irq_latch;
+ nes.cpu.SetIRQ(IRQ_MAPPER);
+ }
+ }
+ }
+ }
+ }
- void SetBank_CPU()
- {
- if ((reg[0] & 0x40) != 0)
- {
- SetPROM_32K_Bank(PROM_8K_SIZE - 2, prg1, prg0, PROM_8K_SIZE - 1);
- }
- else
- {
- SetPROM_32K_Bank(prg0, prg1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
- }
- }
+ void SetBank_CPU()
+ {
+ if ((reg[0] & 0x40) != 0)
+ {
+ SetPROM_32K_Bank(PROM_8K_SIZE - 2, prg1, prg0, PROM_8K_SIZE - 1);
+ }
+ else
+ {
+ SetPROM_32K_Bank(prg0, prg1, PROM_8K_SIZE - 2, PROM_8K_SIZE - 1);
+ }
+ }
- void SetBank_PPU()
- {
- if (VROM_1K_SIZE != 0)
- {
- if ((reg[0] & 0x80) != 0)
- {
- // SetVROM_8K_Bank( chr4, chr5, chr6, chr7,
- // chr01, chr01+1, chr23, chr23+1 );
- SetBank_PPUSUB(4, chr01 + 0);
- SetBank_PPUSUB(5, chr01 + 1);
- SetBank_PPUSUB(6, chr23 + 0);
- SetBank_PPUSUB(7, chr23 + 1);
- SetBank_PPUSUB(0, chr4);
- SetBank_PPUSUB(1, chr5);
- SetBank_PPUSUB(2, chr6);
- SetBank_PPUSUB(3, chr7);
- }
- else
- {
- // SetVROM_8K_Bank( chr01, chr01+1, chr23, chr23+1,
- // chr4, chr5, chr6, chr7 );
- SetBank_PPUSUB(0, chr01 + 0);
- SetBank_PPUSUB(1, chr01 + 1);
- SetBank_PPUSUB(2, chr23 + 0);
- SetBank_PPUSUB(3, chr23 + 1);
- SetBank_PPUSUB(4, chr4);
- SetBank_PPUSUB(5, chr5);
- SetBank_PPUSUB(6, chr6);
- SetBank_PPUSUB(7, chr7);
- }
- }
- else
- {
- if ((reg[0] & 0x80) != 0)
- {
- SetCRAM_1K_Bank(4, (chr01 + 0));
- SetCRAM_1K_Bank(5, (chr01 + 1));
- SetCRAM_1K_Bank(6, (chr23 + 0));
- SetCRAM_1K_Bank(7, (chr23 + 1));
- SetCRAM_1K_Bank(0, chr4);
- SetCRAM_1K_Bank(1, chr5);
- SetCRAM_1K_Bank(2, chr6);
- SetCRAM_1K_Bank(3, chr7);
- }
- else
- {
- SetCRAM_1K_Bank(0, (chr01 + 0));
- SetCRAM_1K_Bank(1, (chr01 + 1));
- SetCRAM_1K_Bank(2, (chr23 + 0));
- SetCRAM_1K_Bank(3, (chr23 + 1));
- SetCRAM_1K_Bank(4, chr4);
- SetCRAM_1K_Bank(5, chr5);
- SetCRAM_1K_Bank(6, chr6);
- SetCRAM_1K_Bank(7, chr7);
- }
- }
- }
+ void SetBank_PPU()
+ {
+ if (VROM_1K_SIZE != 0)
+ {
+ if ((reg[0] & 0x80) != 0)
+ {
+ // SetVROM_8K_Bank( chr4, chr5, chr6, chr7,
+ // chr01, chr01+1, chr23, chr23+1 );
+ SetBank_PPUSUB(4, chr01 + 0);
+ SetBank_PPUSUB(5, chr01 + 1);
+ SetBank_PPUSUB(6, chr23 + 0);
+ SetBank_PPUSUB(7, chr23 + 1);
+ SetBank_PPUSUB(0, chr4);
+ SetBank_PPUSUB(1, chr5);
+ SetBank_PPUSUB(2, chr6);
+ SetBank_PPUSUB(3, chr7);
+ }
+ else
+ {
+ // SetVROM_8K_Bank( chr01, chr01+1, chr23, chr23+1,
+ // chr4, chr5, chr6, chr7 );
+ SetBank_PPUSUB(0, chr01 + 0);
+ SetBank_PPUSUB(1, chr01 + 1);
+ SetBank_PPUSUB(2, chr23 + 0);
+ SetBank_PPUSUB(3, chr23 + 1);
+ SetBank_PPUSUB(4, chr4);
+ SetBank_PPUSUB(5, chr5);
+ SetBank_PPUSUB(6, chr6);
+ SetBank_PPUSUB(7, chr7);
+ }
+ }
+ else
+ {
+ if ((reg[0] & 0x80) != 0)
+ {
+ SetCRAM_1K_Bank(4, (chr01 + 0));
+ SetCRAM_1K_Bank(5, (chr01 + 1));
+ SetCRAM_1K_Bank(6, (chr23 + 0));
+ SetCRAM_1K_Bank(7, (chr23 + 1));
+ SetCRAM_1K_Bank(0, chr4);
+ SetCRAM_1K_Bank(1, chr5);
+ SetCRAM_1K_Bank(2, chr6);
+ SetCRAM_1K_Bank(3, chr7);
+ }
+ else
+ {
+ SetCRAM_1K_Bank(0, (chr01 + 0));
+ SetCRAM_1K_Bank(1, (chr01 + 1));
+ SetCRAM_1K_Bank(2, (chr23 + 0));
+ SetCRAM_1K_Bank(3, (chr23 + 1));
+ SetCRAM_1K_Bank(4, chr4);
+ SetCRAM_1K_Bank(5, chr5);
+ SetCRAM_1K_Bank(6, chr6);
+ SetCRAM_1K_Bank(7, chr7);
+ }
+ }
+ }
- void SetBank_PPUSUB(int bank, int page)
- {
- if (page <= 3)
- {
- SetCRAM_1K_Bank((byte)bank, page);
- }
- else
- {
- SetVROM_1K_Bank((byte)bank, page);
- }
- }
+ void SetBank_PPUSUB(int bank, int page)
+ {
+ if (page <= 3)
+ {
+ SetCRAM_1K_Bank((byte)bank, page);
+ }
+ else
+ {
+ SetVROM_1K_Bank((byte)bank, page);
+ }
+ }
- //void Mapper195::SaveState(LPBYTE p)
- public override void SaveState(byte[] p)
- {
- for (byte i = 0; i < 8; i++)
- {
- p[i] = reg[i];
- }
- p[8] = prg0;
- p[9] = prg1;
- p[10] = chr01;
- p[11] = chr23;
- p[12] = chr4;
- p[13] = chr5;
- p[14] = chr6;
- p[15] = chr7;
- p[16] = irq_enable;
- p[17] = irq_counter;
- p[18] = irq_latch;
- p[19] = irq_request;
- }
+ //void Mapper195::SaveState(LPBYTE p)
+ public override void SaveState(byte[] p)
+ {
+ for (byte i = 0; i < 8; i++)
+ {
+ p[i] = reg[i];
+ }
+ p[8] = prg0;
+ p[9] = prg1;
+ p[10] = chr01;
+ p[11] = chr23;
+ p[12] = chr4;
+ p[13] = chr5;
+ p[14] = chr6;
+ p[15] = chr7;
+ p[16] = irq_enable;
+ p[17] = irq_counter;
+ p[18] = irq_latch;
+ p[19] = irq_request;
+ }
- //void Mapper195::LoadState(LPBYTE p)
- public override void LoadState(byte[] p)
- {
- for (byte i = 0; i < 8; i++)
- {
- reg[i] = p[i];
- }
- prg0 = p[8];
- prg1 = p[9];
- chr01 = p[10];
- chr23 = p[11];
- chr4 = p[12];
- chr5 = p[13];
- chr6 = p[14];
- chr7 = p[15];
- irq_enable = p[16];
- irq_counter = p[17];
- irq_latch = p[18];
- irq_request = p[19];
- }
+ //void Mapper195::LoadState(LPBYTE p)
+ public override void LoadState(byte[] p)
+ {
+ for (byte i = 0; i < 8; i++)
+ {
+ reg[i] = p[i];
+ }
+ prg0 = p[8];
+ prg1 = p[9];
+ chr01 = p[10];
+ chr23 = p[11];
+ chr4 = p[12];
+ chr5 = p[13];
+ chr6 = p[14];
+ chr7 = p[15];
+ irq_enable = p[16];
+ irq_counter = p[17];
+ irq_latch = p[18];
+ irq_request = p[19];
+ }
- public override bool IsStateSave()
- {
- return true;
- }
- }
+ public override bool IsStateSave()
+ {
+ return true;
+ }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper198.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper198.cs
index e9a2116d..d8752cb7 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper198.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper198.cs
@@ -2,10 +2,8 @@
// Mapper198 Nintendo MMC3 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
+using INT = System.Int32;
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper199.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper199.cs
index ae92c41e..888abc56 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper199.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper199.cs
@@ -1,12 +1,10 @@
//////////////////////////////////////////////////////////////////////////
// Mapper199 WaiXingTypeG Base ON Nintendo MMC3 //
//////////////////////////////////////////////////////////////////////////
-using static VirtualNes.MMU;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper200.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper200.cs
index 8d780496..fa3d6911 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper200.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper200.cs
@@ -2,11 +2,7 @@
// Mapper200 1200-in-1 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper201.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper201.cs
index 88a3f1d6..67e066e1 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper201.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper201.cs
@@ -2,11 +2,8 @@
// Mapper201 21-in-1 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper202.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper202.cs
index 710b20e1..02fde1ae 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper202.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper202.cs
@@ -2,11 +2,9 @@
// Mapper202 150-in-1 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper216.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper216.cs
index 5229a99f..56471f56 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper216.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper216.cs
@@ -2,32 +2,28 @@
// Mapper216 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
- public class Mapper216 : Mapper
- {
- public Mapper216(NES parent) : base(parent)
- {
- }
+ public class Mapper216 : Mapper
+ {
+ public Mapper216(NES parent) : base(parent)
+ {
+ }
- public override void Reset()
- {
- SetVROM_8K_Bank(0);
- SetPROM_32K_Bank(0);
- }
+ public override void Reset()
+ {
+ SetVROM_8K_Bank(0);
+ SetPROM_32K_Bank(0);
+ }
- //void Mapper216::Write(WORD addr, BYTE data)
- public override void Write(ushort addr, byte data)
- {
- SetVROM_8K_Bank((addr & 0x0E) >> 1);
- SetPROM_32K_Bank(addr & 1);
- }
+ //void Mapper216::Write(WORD addr, BYTE data)
+ public override void Write(ushort addr, byte data)
+ {
+ SetVROM_8K_Bank((addr & 0x0E) >> 1);
+ SetPROM_32K_Bank(addr & 1);
+ }
- }
+ }
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper222.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper222.cs
index a536f4f6..f017d996 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper222.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper222.cs
@@ -2,11 +2,7 @@
// Mapper222 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper225.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper225.cs
index a44ca809..769b52c3 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper225.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper225.cs
@@ -2,11 +2,8 @@
// Mapper225 72-in-1 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper226.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper226.cs
index 982db705..ded2c989 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper226.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper226.cs
@@ -2,11 +2,8 @@
// Mapper226 76-in-1 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper227.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper227.cs
index f27bd29f..e12882d5 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper227.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper227.cs
@@ -2,11 +2,8 @@
// Mapper227 1200-in-1 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper228.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper228.cs
index 8e6b826c..57cfc678 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper228.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper228.cs
@@ -2,11 +2,8 @@
// Mapper228 Action 52 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper229.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper229.cs
index d2b1d319..c66aa38a 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper229.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper229.cs
@@ -2,11 +2,8 @@
// Mapper229 31-in-1 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
@@ -16,8 +13,8 @@ namespace VirtualNes.Core
{
}
- public override void Reset()
- {
+ public override void Reset()
+ {
SetPROM_32K_Bank(0);
SetVROM_8K_Bank(0);
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper230.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper230.cs
index 217e2a27..720bd4f4 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper230.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper230.cs
@@ -2,11 +2,8 @@
// Mapper230 22-in-1 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper231.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper231.cs
index bcc66f89..5579341a 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper231.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper231.cs
@@ -2,11 +2,8 @@
// Mapper231 20-in-1 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper232.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper232.cs
index 357594c1..34145eae 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper232.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper232.cs
@@ -2,11 +2,8 @@
// Mapper232 Quattro Games //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper233.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper233.cs
index 9e6d7af3..d9db8ec9 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper233.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper233.cs
@@ -1,11 +1,8 @@
//////////////////////////////////////////////////////////////////////////
// Mapper233 42-in-1 //
//////////////////////////////////////////////////////////////////////////using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
using static VirtualNes.MMU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper234.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper234.cs
index c772378e..b73299c9 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper234.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper234.cs
@@ -2,11 +2,8 @@
// Mapper234 Maxi-15 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper235.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper235.cs
index cd5640f4..455c1b03 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper235.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper235.cs
@@ -2,11 +2,9 @@
// Mapper235 150-in-1 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper236.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper236.cs
index 27abab7f..054ea02a 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper236.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper236.cs
@@ -2,11 +2,8 @@
// Mapper236 800-in-1 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper240.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper240.cs
index 5f9c2682..8757e8de 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper240.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper240.cs
@@ -2,11 +2,7 @@
// Mapper240 Gen Ke Le Zhuan //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper241.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper241.cs
index bc5c8fc4..60769dc3 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper241.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper241.cs
@@ -2,11 +2,7 @@
// Mapper241 Fon Serm Bon //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper242.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper242.cs
index 17c0f741..6c3f9a0f 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper242.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper242.cs
@@ -2,11 +2,7 @@
// Mapper242 Wai Xing Zhan Shi //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper243.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper243.cs
index 7fa4fc95..52fa8e4a 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper243.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper243.cs
@@ -2,11 +2,8 @@
// Mapper243 PC-Sachen/Hacker //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper244.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper244.cs
index 0621369c..8cb692b3 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper244.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper244.cs
@@ -2,11 +2,7 @@
// Mapper244 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper246.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper246.cs
index 6eb038a3..62732152 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper246.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper246.cs
@@ -3,11 +3,7 @@
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper248.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper248.cs
index 05c11e1c..516e69dd 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper248.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper248.cs
@@ -1,7 +1,7 @@
-using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.Core.CPU;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
+using INT = System.Int32;
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper249.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper249.cs
index 56b03f66..b5594bc3 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper249.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper249.cs
@@ -1,9 +1,8 @@
-using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.Core.CPU;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
@@ -254,7 +253,7 @@ namespace VirtualNes.Core
reg[2] = data;
if (!nes.rom.Is4SCREEN())
{
- if ((data & 0x01)!= 0) SetVRAM_Mirror(VRAM_HMIRROR);
+ if ((data & 0x01) != 0) SetVRAM_Mirror(VRAM_HMIRROR);
else SetVRAM_Mirror(VRAM_VMIRROR);
}
break;
@@ -308,7 +307,7 @@ namespace VirtualNes.Core
{
if (nes.ppu.IsDispON())
{
- if (irq_enable !=0 && irq_request == 0)
+ if (irq_enable != 0 && irq_request == 0)
{
if (scanline == 0)
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper251.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper251.cs
index de5a0182..c7c689b3 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper251.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper251.cs
@@ -1,9 +1,7 @@
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
-using System;
-using Codice.CM.Client.Differences;
+using INT = System.Int32;
+
namespace VirtualNes.Core
{
@@ -59,7 +57,7 @@ namespace VirtualNes.Core
SetBank();
break;
case 0xA001:
- if ((data & 0x80)!= 0)
+ if ((data & 0x80) != 0)
{
reg[9] = 1;
reg[10] = 0;
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper252.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper252.cs
index fba69a57..2a27153b 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper252.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper252.cs
@@ -1,8 +1,8 @@
-using static VirtualNes.MMU;
+using System;
using static VirtualNes.Core.CPU;
-using INT = System.Int32;
+using static VirtualNes.MMU;
using BYTE = System.Byte;
-using System;
+using INT = System.Int32;
namespace VirtualNes.Core
{
@@ -42,7 +42,7 @@ namespace VirtualNes.Core
public override void Write(ushort addr, byte data)
{
-
+
if ((addr & 0xF000) == 0x8000)
{
SetPROM_8K_Bank(4, data);
@@ -207,7 +207,7 @@ namespace VirtualNes.Core
irq_counter = p[10];
irq_latch = p[11];
//irq_clock = *(INT*)&p[12];
- irq_clock = BitConverter.ToInt32(p,12);
+ irq_clock = BitConverter.ToInt32(p, 12);
}
}
}
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper254.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper254.cs
index e4e20a6e..690d3cfd 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper254.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper254.cs
@@ -1,6 +1,4 @@
using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
using BYTE = System.Byte;
namespace VirtualNes.Core
@@ -205,7 +203,7 @@ namespace VirtualNes.Core
public void SetBank_CPU()
{
- if ((reg[0] & 0x40)!=0)
+ if ((reg[0] & 0x40) != 0)
{
SetPROM_32K_Bank(PROM_8K_SIZE - 2, prg1, prg0, PROM_8K_SIZE - 1);
}
@@ -219,7 +217,7 @@ namespace VirtualNes.Core
{
if (VROM_1K_SIZE != 0)
{
- if ((reg[0] & 0x80)!= 0)
+ if ((reg[0] & 0x80) != 0)
{
SetVROM_8K_Bank(chr4, chr5, chr6, chr7,
chr01, chr01 + 1, chr23, chr23 + 1);
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper255.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper255.cs
index 02e3e361..d5945bed 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper255.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper255.cs
@@ -1,7 +1,4 @@
-using Codice.CM.Client.Differences;
-using System;
-
-namespace VirtualNes.Core
+namespace VirtualNes.Core
{
public class Mapper255 : Mapper
{
@@ -56,10 +53,10 @@ namespace VirtualNes.Core
public override void Write(ushort addr, byte data)
{
byte prg = (byte)((addr & 0x0F80) >> 7);
- int chr = (byte)((addr & 0x003F));
+ int chr = (byte)((addr & 0x003F));
int bank = (byte)((addr & 0x4000) >> 14);
- if ((addr & 0x2000) != 0 )
+ if ((addr & 0x2000) != 0)
{
MMU.SetVRAM_Mirror(MMU.VRAM_HMIRROR);
}
@@ -68,7 +65,7 @@ namespace VirtualNes.Core
MMU.SetVRAM_Mirror(MMU.VRAM_VMIRROR);
}
- if ((addr & 0x1000) !=0)
+ if ((addr & 0x1000) != 0)
{
if ((addr & 0x0040) != 0)
{
@@ -109,7 +106,7 @@ namespace VirtualNes.Core
return true;
}
-
+
public override void SaveState(byte[] p)
{
p[0] = reg[0];
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/_Mapper.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/_Mapper.cs
index 42980c42..deaf8717 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/_Mapper.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/_Mapper.cs
@@ -1,10 +1,4 @@
-using static VirtualNes.MMU;
-using static VirtualNes.Core.CPU;
-using INT = System.Int32;
-using BYTE = System.Byte;
-using Codice.CM.Client.Differences;
-
-namespace VirtualNes.Core
+namespace VirtualNes.Core
{
public class _Mapper : Mapper
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/NES.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/NES.cs
index e02ce413..391ef688 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/NES.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/NES.cs
@@ -1,15 +1,8 @@
-using Codice.CM.Client.Differences;
-using Google.Protobuf.Collections;
using System;
using System.Collections.Generic;
using System.IO;
-using System.Linq;
-using System.Numerics;
using System.Text;
-using UnityEngine.UIElements;
-using UnityEngine;
using VirtualNes.Core.Debug;
-using Unity.VisualScripting.Antlr3.Runtime.Tree;
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/PAD.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/PAD.cs
index 63a37f93..836e44ca 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/PAD.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/PAD.cs
@@ -1,6 +1,4 @@
-using Codice.CM.Client.Differences;
-using System;
-using System.Collections.Generic;
+using System.Collections.Generic;
namespace VirtualNes.Core
{
@@ -440,7 +438,7 @@ namespace VirtualNes.Core
private byte SyncSub(int no, ControllerState state)
{
ushort bit = 0;
-
+
// Up
if (state.HasButton(no, EnumButtonType.UP))
bit |= 1 << 4;
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/PPU.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/PPU.cs
index a7f158d1..ab9fe05b 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/PPU.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/PPU.cs
@@ -1,6 +1,4 @@
-using System;
-
-namespace VirtualNes.Core
+namespace VirtualNes.Core
{
public class PPU
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/PadEX/EXPAD_Zapper.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/PadEX/EXPAD_Zapper.cs
index 5dd97fb4..3f32ed07 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/PadEX/EXPAD_Zapper.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/PadEX/EXPAD_Zapper.cs
@@ -1,10 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace VirtualNes.Core
+namespace VirtualNes.Core
{
///
/// 光枪
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/EmulatorConfig/CfgController.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/EmulatorConfig/CfgController.cs
index ee4bf006..d6c4a815 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/EmulatorConfig/CfgController.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/EmulatorConfig/CfgController.cs
@@ -1,4 +1,4 @@
-using Codice.CM.Client.Differences;
+
namespace VirtualNes.Core
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/EmulatorConfig/CfgMovie.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/EmulatorConfig/CfgMovie.cs
index 0e0dcbf5..b7719a00 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/EmulatorConfig/CfgMovie.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/EmulatorConfig/CfgMovie.cs
@@ -1,6 +1,4 @@
-using System;
-
-namespace VirtualNes.Core
+namespace VirtualNes.Core
{
public class CfgMovie
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/EmulatorConfig/CfgPath.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/EmulatorConfig/CfgPath.cs
index 6a282593..b6c8e545 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/EmulatorConfig/CfgPath.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/EmulatorConfig/CfgPath.cs
@@ -1,6 +1,4 @@
-using System;
-
-namespace VirtualNes.Core
+namespace VirtualNes.Core
{
public class CfgPath
{
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/EmulatorConfig/EmulatorConfig.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/EmulatorConfig/EmulatorConfig.cs
index d552bef2..b24afe0a 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/EmulatorConfig/EmulatorConfig.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/EmulatorConfig/EmulatorConfig.cs
@@ -1,6 +1,4 @@
-using System;
-
-namespace VirtualNes.Core
+namespace VirtualNes.Core
{
public class EmulatorConfig
{
diff --git a/AxibugEmuOnline.Web/Controllers/ApiController.cs b/AxibugEmuOnline.Web/Controllers/ApiController.cs
index a0f04725..b35c20f5 100644
--- a/AxibugEmuOnline.Web/Controllers/ApiController.cs
+++ b/AxibugEmuOnline.Web/Controllers/ApiController.cs
@@ -14,14 +14,32 @@ namespace AxibugEmuOnline.Web.Controllers
}
[HttpGet]
- public JsonResult NesRomList(string SearchKey,int Page, int PageSize)
+ public JsonResult NesRomList(string SearchKey,int Ptype,int GType,int Page, int PageSize)
{
string searchPattern = $"%{SearchKey}%";
Resp_GameList resp = new Resp_GameList();
- resp.GameList = new List();
- using (MySqlConnection conn = Haoyue_SQLPoolManager.DequeueSQLConn("NesRomList"))
+ resp.gameList = new List();
+ MySqlConnection conn = Haoyue_SQLPoolManager.DequeueSQLConn("NesRomList");
{
- string query = "SELECT count(id) FROM romlist_nes where `Name` like ?searchPattern ";
+
+ GameType SearchGType = (GameType)GType;
+
+ string GameTypeCond = "";
+ switch (SearchGType)
+ {
+ case GameType.NONE:
+ GameTypeCond = string.Empty;
+ break;
+ case GameType.ALLINONE:
+ GameTypeCond = $" and GameType = 'Ͽ' ";
+ break;
+ default:
+ GameTypeCond = $" and GameType = '{SearchGType.ToString()}' ";
+ break;
+ }
+
+
+ string query = "SELECT count(id) FROM romlist_nes where `Name` like ?searchPattern " + GameTypeCond;
using (var command = new MySqlCommand(query, conn))
{
// òֵ
@@ -31,14 +49,14 @@ namespace AxibugEmuOnline.Web.Controllers
{
while (reader.Read())
{
- resp.ResultAllCount = reader.GetInt32(0);
- resp.Page = Page;
- resp.MaxPage = resp.ResultAllCount / PageSize;
+ resp.resultAllCount = reader.GetInt32(0);
+ resp.page = Page;
+ resp.maxPage = (int)Math.Ceiling((float)resp.resultAllCount / PageSize);
}
}
}
- query = "SELECT id,`Name`,RomUrl,ImgUrl FROM romlist_nes where `Name` like ?searchPattern LIMIT ?offset, ?pageSize;";
+ query = $"SELECT id,`Name`,GameType,Note,RomUrl,ImgUrl,`Hash` FROM romlist_nes where `Name` like ?searchPattern {GameTypeCond} LIMIT ?offset, ?pageSize;";
using (var command = new MySqlCommand(query, conn))
{
// òֵ
@@ -50,12 +68,16 @@ namespace AxibugEmuOnline.Web.Controllers
{
while (reader.Read())
{
- resp.GameList.Add(new Resp_RomInfo() {
- ID = reader.GetInt32(0),
- RomName = reader.GetString(1),
- Hash = string.Empty,
- ImgUrl = reader.GetString(2),
- Url = reader.GetString(3),
+ resp.gameList.Add(new Resp_RomInfo()
+ {
+ id = reader.GetInt32(0),
+ romName = !reader.IsDBNull(1) ? reader.GetString(1) : string.Empty,
+ gType = !reader.IsDBNull(2) ? reader.GetString(2) : string.Empty,
+ desc = !reader.IsDBNull(3) ? reader.GetString(3) : string.Empty,
+ url = !reader.IsDBNull(4) ? reader.GetString(4) : string.Empty,
+ imgUrl = !reader.IsDBNull(5) ? reader.GetString(5) : string.Empty,
+ hash = !reader.IsDBNull(6) ? reader.GetString(6) : string.Empty,
+ stars = 0,
});
}
}
@@ -65,22 +87,52 @@ namespace AxibugEmuOnline.Web.Controllers
return new JsonResult(resp);
}
+ enum PlatformType : byte
+ {
+ All = 0,
+ Nes,
+ }
+
+ enum GameType : byte
+ {
+ NONE = 0,
+ ACT,
+ ARPG,
+ AVG,
+ ETC,
+ FTG,
+ PUZ,
+ RAC,
+ RPG,
+ SLG,
+ SPG,
+ SRPG,
+ STG,
+ TAB,
+ ///
+ /// Ͽ
+ ///
+ ALLINONE,
+ }
class Resp_GameList
{
- public int Page { get; set; }
- public int MaxPage { get; set; }
- public int ResultAllCount { get; set; }
- public List GameList { get; set; }
+ public int page { get; set; }
+ public int maxPage { get; set; }
+ public int resultAllCount { get; set; }
+ public List gameList { get; set; }
}
public class Resp_RomInfo
{
- public int ID { get; set; }
- public string Hash { get; set; }
- public string RomName { get; set;}
- public string Url { get; set; }
- public string ImgUrl { get; set; }
+ public int id { get; set; }
+ public string romName { get; set;}
+ public string gType { get; set; }
+ public string desc { get; set; }
+ public string url { get; set; }
+ public string imgUrl { get; set; }
+ public string hash { get; set; }
+ public int stars { get; set; }
}
}
}
diff --git a/README_WEBAPI.md b/README_WEBAPI.md
index c72766c7..a0c9842e 100644
--- a/README_WEBAPI.md
+++ b/README_WEBAPI.md
@@ -6,57 +6,72 @@
### Nes游戏列表
```
-{WebHost}/api/NesRomList?Page=<页码>&PageSize=<单大小>&SearchKey=<可选的模糊查询关键字>
+{WebHost}/api/NesRomList?Page=<页码>&PageSize=<单大小>&SearchKey=<可选的模糊查询关键字>&PType=<平台枚举(int)>>ype=<游戏类型枚举>
```
Request:
```
-/api/NesRomList?Page=1&PageSize=5&SearchKey=热血
+http://emu.axibug.com/api/NesRomList?Page=0&PageSize=5&SearchKey=%热血&PType=1>ype=1
```
Response:
```
{
- "page": 1,
- "maxPage": 5,
- "resultAllCount": 27,
+ "page": 0,
+ "maxPage": 2,
+ "resultAllCount": 6,
"gameList": [
{
- "id": 584,
+ "id": 190,
+ "romName": "热血物语",
+ "gType": "ACT",
+ "desc": "设有拳击及体力槽的热血系列节目。是带有RPG色彩的街头斗殴节目。",
+ "url": "roms/fcrom/Downtown%20-%20Nekketsu%20Monogatari%20(J).zip",
+ "imgUrl": "images/fcrom/Downtown%20-%20Nekketsu%20Monogatari%20(J).JPG",
"hash": "",
- "romName": "热血格斗传说",
- "url": "images/fcrom/Nekketsu%20Kakutou%20Densetsu%20(J).JPG",
- "imgUrl": "roms/fcrom/Nekketsu%20Kakutou%20Densetsu%20(J).zip"
+ "stars": 0
+ },
+ {
+ "id": 460,
+ "romName": "热血时代剧(热血道中记)",
+ "gType": "ACT",
+ "desc": "以古代日本为舞台展开的热血系列节目。设有多种必杀技可使用。",
+ "url": "roms/fcrom/Kunio%20Kun%20No%20Jidaigekidayo%20Zenin%20Shuugou%20(J).zip",
+ "imgUrl": "images/fcrom/Kunio%20Kun%20No%20Jidaigekidayo%20Zenin%20Shuugou%20(J).JPG",
+ "hash": "",
+ "stars": 0
},
{
"id": 585,
- "hash": "",
"romName": "热血硬派",
- "url": "images/fcrom/Nekketsu%20Kouha%20-%20Kunio%20Kun%20(J).JPG",
- "imgUrl": "roms/fcrom/Nekketsu%20Kouha%20-%20Kunio%20Kun%20(J).zip"
+ "gType": "ACT",
+ "desc": "有着多种模式的格斗节目。各版面均有不同的趣味性。是热血系列游戏最初的作品。",
+ "url": "roms/fcrom/Nekketsu%20Kouha%20-%20Kunio%20Kun%20(J).zip",
+ "imgUrl": "images/fcrom/Nekketsu%20Kouha%20-%20Kunio%20Kun%20(J).JPG",
+ "hash": "",
+ "stars": 0
},
{
- "id": 586,
+ "id": 674,
+ "romName": "热血物语(美版)",
+ "gType": "ACT",
+ "desc": "设有拳击及体力槽的热血系列节目。是带有RPG色彩的街头斗殴节目。",
+ "url": "roms/fcrom/River%20City%20Brawl%20(J).zip",
+ "imgUrl": "images/fcrom/River%20City%20Brawl%20(J).JPG",
"hash": "",
- "romName": "热血高校躲避球",
- "url": "images/fcrom/Nekketsu%20Koukou%20-%20Dodgeball%20Bu%20(J).JPG",
- "imgUrl": "roms/fcrom/Nekketsu%20Koukou%20-%20Dodgeball%20Bu%20(J).zip"
+ "stars": 0
},
{
- "id": 587,
+ "id": 826,
+ "romName": "热血时代剧美版(热血道中记美版)",
+ "gType": "ACT",
+ "desc": "以古代日本为舞台展开的热血系列节目。设有多种必杀技可使用。",
+ "url": "roms/fcrom/Technos%20Samurai%20-%20Downtown%20Special%20(J).zip",
+ "imgUrl": "images/fcrom/Technos%20Samurai%20-%20Downtown%20Special%20(J).JPG",
"hash": "",
- "romName": "热血高校-足球篇",
- "url": "images/fcrom/Nekketsu%20Koukou%20Dodgeball%20Bu%20-%20Soccer%20Hen%20(J).JPG",
- "imgUrl": "roms/fcrom/Nekketsu%20Koukou%20Dodgeball%20Bu%20-%20Soccer%20Hen%20(J).zip"
- },
- {
- "id": 588,
- "hash": "",
- "romName": "热血新记录",
- "url": "images/fcrom/Nekketsu%20Shinkiroku%20-%20Harukanaru%20Kin%20Medal%20(J).JPG",
- "imgUrl": "roms/fcrom/Nekketsu%20Shinkiroku%20-%20Harukanaru%20Kin%20Medal%20(J).zip"
+ "stars": 0
}
]
}
@@ -65,20 +80,51 @@ Response:
序列化C#实体类示例
```
-class Resp_GameList
-{
- public int Page { get; set; }
- public int MaxPage { get; set; }
- public int ResultAllCount { get; set; }
- public List GameList { get; set; }
-}
+ enum PlatformType : byte
+ {
+ All = 0,
+ Nes,
+ }
-public class Resp_RomInfo
-{
- public int ID { get; set; }
- public string Hash { get; set; }
- public string RomName { get; set;}
- public string Url { get; set; }
- public string ImgUrl { get; set; }
-}
+ enum GameType : byte
+ {
+ NONE = 0,
+ ACT,
+ ARPG,
+ AVG,
+ ETC,
+ FTG,
+ PUZ,
+ RAC,
+ RPG,
+ SLG,
+ SPG,
+ SRPG,
+ STG,
+ TAB,
+ ///
+ /// 合卡
+ ///
+ ALLINONE,
+ }
+
+ class Resp_GameList
+ {
+ public int page { get; set; }
+ public int maxPage { get; set; }
+ public int resultAllCount { get; set; }
+ public List gameList { get; set; }
+ }
+
+ public class Resp_RomInfo
+ {
+ public int id { get; set; }
+ public string romName { get; set;}
+ public string gType { get; set; }
+ public string desc { get; set; }
+ public string url { get; set; }
+ public string imgUrl { get; set; }
+ public string hash { get; set; }
+ public int stars { get; set; }
+ }
```
\ No newline at end of file