From e83beaa81365e14f74347222693b837243b22fab Mon Sep 17 00:00:00 2001 From: "ALIENJACK\\alien" Date: Mon, 22 Jul 2024 13:09:27 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=A2=9E=E5=8A=A0il2cppSetOption?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AxibugEmuOnline.Client/Assets/MyNes.Core/Bandai.cs | 4 ++++ AxibugEmuOnline.Client/Assets/MyNes.Core/BankInfo.cs | 5 +++++ .../Assets/MyNes.Core/BankInfoSorter.cs | 4 ++++ .../Assets/MyNes.Core/BlankJoypad.cs | 5 +++++ .../Assets/MyNes.Core/BlankShortuctsHandler.cs | 5 +++++ AxibugEmuOnline.Client/Assets/MyNes.Core/Board.cs | 4 ++++ .../Assets/MyNes.Core/BoardInfoAttribute.cs | 4 ++++ .../Assets/MyNes.Core/BoardInfoObject.cs | 5 +++++ AxibugEmuOnline.Client/Assets/MyNes.Core/Crc32.cs | 4 ++++ .../Assets/MyNes.Core/EmuSettings.cs | 4 ++++ AxibugEmuOnline.Client/Assets/MyNes.Core/Eprom.cs | 4 ++++ AxibugEmuOnline.Client/Assets/MyNes.Core/FFE.cs | 4 ++++ .../Assets/MyNes.Core/GameGenie.cs | 4 ++++ .../Assets/MyNes.Core/HassIssuesAttribute.cs | 4 ++++ .../Assets/MyNes.Core/HelperTools.cs | 4 ++++ .../Assets/MyNes.Core/IJoypadConnecter.cs | 5 +++++ AxibugEmuOnline.Client/Assets/MyNes.Core/IRom.cs | 5 +++++ .../Assets/MyNes.Core/ISettings.cs | 4 ++++ .../Assets/MyNes.Core/IVSUnisystemDIPConnecter.cs | 5 +++++ .../Assets/MyNes.Core/IZapperConnecter.cs | 5 +++++ AxibugEmuOnline.Client/Assets/MyNes.Core/MMC2.cs | 4 ++++ AxibugEmuOnline.Client/Assets/MyNes.Core/MMC5Pcm.cs | 4 ++++ AxibugEmuOnline.Client/Assets/MyNes.Core/MMC5Sqr.cs | 4 ++++ .../Assets/MyNes.Core/MNInterfaceLanguage.cs | 5 +++++ .../Assets/MyNes.Core/Mapper004.cs | 4 ++++ .../Assets/MyNes.Core/MyNes.Core.asmdef | 4 +++- .../Assets/MyNes.Core/MyNesMain.cs | 4 ++++ .../Assets/MyNes.Core/Namcot106.cs | 4 ++++ .../Assets/MyNes.Core/NesCartDatabase.cs | 4 ++++ .../MyNes.Core/NesCartDatabaseCartridgeInfo.cs | 4 ++++ .../Assets/MyNes.Core/NesCartDatabaseGameInfo.cs | 4 ++++ AxibugEmuOnline.Client/Assets/MyNes.Core/NesEmu.cs | 10 ++++++++++ .../Assets/MyNes.Core/PALBPaletteGenerator.cs | 4 ++++ .../Assets/MyNes.Core/PaletteFileWrapper.cs | 4 ++++ .../Assets/MyNes.Core/RendererSettings.cs | 4 ++++ .../Assets/MyNes.Core/SoundDCBlockerFilter.cs | 5 +++++ .../Assets/MyNes.Core/SoundHighPassFilter.cs | 4 ++++ .../Assets/MyNes.Core/SoundLowPassFilter.cs | 4 ++++ .../Assets/MyNes.Core/Sunsoft5BChnl.cs | 4 ++++ AxibugEmuOnline.Client/Assets/MyNes.Core/Tracer.cs | 4 ++++ .../Assets/MyNes.Core/TracerEventArgs.cs | 4 ++++ .../Assets/MyNes.Core/VRC6Pulse.cs | 4 ++++ .../Assets/MyNes.Core/VRC6Sawtooth.cs | 4 ++++ .../Assets/MyNes.Core/WaveRecorder.cs | 4 ++++ .../Assets/MyNes.Core/WithExternalSoundAttribute.cs | 4 ++++ AxibugEmuOnline.Client/Assets/Scene/EmuTest.unity | 12 ++++++++++++ 46 files changed, 207 insertions(+), 1 deletion(-) diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/Bandai.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/Bandai.cs index 549faaa..01cf683 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/Bandai.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/Bandai.cs @@ -1,7 +1,11 @@ using System.IO; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] internal abstract class Bandai : Board { private bool irq_enable; diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/BankInfo.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/BankInfo.cs index c163c46..a435e93 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/BankInfo.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/BankInfo.cs @@ -1,5 +1,10 @@ +using Unity.IL2CPP.CompilerServices; + namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] internal struct BankInfo { public bool IsRAM; diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/BankInfoSorter.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/BankInfoSorter.cs index 3a8f338..1393c5b 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/BankInfoSorter.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/BankInfoSorter.cs @@ -1,7 +1,11 @@ using System.Collections.Generic; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] internal class BankInfoSorter : IComparer { public int Compare(BankInfo x, BankInfo y) diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/BlankJoypad.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/BlankJoypad.cs index b3e27a8..5fad7bc 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/BlankJoypad.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/BlankJoypad.cs @@ -1,5 +1,10 @@ +using Unity.IL2CPP.CompilerServices; + namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] internal class BlankJoypad : IJoypadConnecter { public override void Update() diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/BlankShortuctsHandler.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/BlankShortuctsHandler.cs index c061471..7414228 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/BlankShortuctsHandler.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/BlankShortuctsHandler.cs @@ -1,5 +1,10 @@ +using Unity.IL2CPP.CompilerServices; + namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] internal class BlankShortuctsHandler : IShortcutsHandler { public void Update() diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/Board.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/Board.cs index 7cbff07..7d810ea 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/Board.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/Board.cs @@ -1,9 +1,13 @@ using System; using System.Collections.Generic; using System.IO; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] internal abstract class Board { protected byte[][] PRG_RAM; diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/BoardInfoAttribute.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/BoardInfoAttribute.cs index 19b833d..7ca8060 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/BoardInfoAttribute.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/BoardInfoAttribute.cs @@ -1,7 +1,11 @@ using System; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] internal class BoardInfoAttribute : Attribute { public string Name { get; private set; } diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/BoardInfoObject.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/BoardInfoObject.cs index e76fff6..bf1d238 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/BoardInfoObject.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/BoardInfoObject.cs @@ -1,5 +1,10 @@ +using Unity.IL2CPP.CompilerServices; + namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] public class BoardInfoObject { public string Name { get; internal set; } diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/Crc32.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/Crc32.cs index bfab88d..db98f0f 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/Crc32.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/Crc32.cs @@ -1,7 +1,11 @@ using System.Security.Cryptography; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] public class Crc32 : HashAlgorithm { public const uint DefaultPolynomial = 3988292384u; diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/EmuSettings.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/EmuSettings.cs index 2b42df6..6718559 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/EmuSettings.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/EmuSettings.cs @@ -1,7 +1,11 @@ using System.IO; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] public class EmuSettings : ISettings { public string SnapsFolder = "Snaps"; diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/Eprom.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/Eprom.cs index d0c1455..a0dcfa3 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/Eprom.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/Eprom.cs @@ -1,8 +1,12 @@ using System; using System.IO; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] internal class Eprom { private enum EpromDevice diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/FFE.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/FFE.cs index 29d7191..880b175 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/FFE.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/FFE.cs @@ -1,7 +1,11 @@ using System.IO; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] internal abstract class FFE : Board { protected bool irqEnable; diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/GameGenie.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/GameGenie.cs index bd99f97..29c8c57 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/GameGenie.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/GameGenie.cs @@ -1,7 +1,11 @@ using System.Collections.Generic; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] public class GameGenie { public string[] LettersTable = new string[16] diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/HassIssuesAttribute.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/HassIssuesAttribute.cs index db75fef..f7b92d3 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/HassIssuesAttribute.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/HassIssuesAttribute.cs @@ -1,7 +1,11 @@ using System; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] internal class HassIssuesAttribute : Attribute { } diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/HelperTools.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/HelperTools.cs index 90b35d7..c7d1077 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/HelperTools.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/HelperTools.cs @@ -1,8 +1,12 @@ using System.IO; using System.Security.Cryptography; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] public class HelperTools { public static string GetFileSize(string FilePath) diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/IJoypadConnecter.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/IJoypadConnecter.cs index 8abde02..f5e4bd8 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/IJoypadConnecter.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/IJoypadConnecter.cs @@ -1,5 +1,10 @@ +using Unity.IL2CPP.CompilerServices; + namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] public abstract class IJoypadConnecter { protected byte DATA; diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/IRom.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/IRom.cs index 822829b..e88bbae 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/IRom.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/IRom.cs @@ -1,5 +1,10 @@ +using Unity.IL2CPP.CompilerServices; + namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] public abstract class IRom { public bool IsValid { get; set; } diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/ISettings.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/ISettings.cs index d486221..d3f4652 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/ISettings.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/ISettings.cs @@ -2,9 +2,13 @@ using System; using System.Collections.Generic; using System.IO; using System.Reflection; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] public abstract class ISettings { protected string filePath; diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/IVSUnisystemDIPConnecter.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/IVSUnisystemDIPConnecter.cs index 407fe70..db70a23 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/IVSUnisystemDIPConnecter.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/IVSUnisystemDIPConnecter.cs @@ -1,5 +1,10 @@ +using Unity.IL2CPP.CompilerServices; + namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] public abstract class IVSUnisystemDIPConnecter { public abstract void Update(); diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/IZapperConnecter.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/IZapperConnecter.cs index f4b005a..2d9ef3a 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/IZapperConnecter.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/IZapperConnecter.cs @@ -1,5 +1,10 @@ +using Unity.IL2CPP.CompilerServices; + namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] public abstract class IZapperConnecter { protected bool Trigger; diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/MMC2.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/MMC2.cs index c426604..78b223c 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/MMC2.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/MMC2.cs @@ -1,7 +1,11 @@ using System.IO; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] internal abstract class MMC2 : Board { private byte chr_reg0A; diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/MMC5Pcm.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/MMC5Pcm.cs index f71e63e..8e67a5b 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/MMC5Pcm.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/MMC5Pcm.cs @@ -1,7 +1,11 @@ using System.IO; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] internal class MMC5Pcm { internal byte output; diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/MMC5Sqr.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/MMC5Sqr.cs index dea8a12..7e1c39e 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/MMC5Sqr.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/MMC5Sqr.cs @@ -1,7 +1,11 @@ using System.IO; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] internal class MMC5Sqr { private byte[][] duty_cycle_sequences = new byte[4][] diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/MNInterfaceLanguage.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/MNInterfaceLanguage.cs index 2dc7e53..decd246 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/MNInterfaceLanguage.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/MNInterfaceLanguage.cs @@ -1,5 +1,10 @@ +using Unity.IL2CPP.CompilerServices; + namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] public class MNInterfaceLanguage { public static string Message_RomInfoCanBeOnlyShown = "Rom info can be shown only when emulation is on (i.e. game is loaded)"; diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/Mapper004.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/Mapper004.cs index 615f2c0..1f8e5e7 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/Mapper004.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/Mapper004.cs @@ -1,7 +1,11 @@ using System.IO; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] [BoardInfo("MMC3", 4, true, true)] internal class Mapper004 : Board { diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/MyNes.Core.asmdef b/AxibugEmuOnline.Client/Assets/MyNes.Core/MyNes.Core.asmdef index 0ef90c8..4637f1d 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/MyNes.Core.asmdef +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/MyNes.Core.asmdef @@ -1,7 +1,9 @@ { "name": "MyNes.Core", "rootNamespace": "", - "references": [], + "references": [ + "GUID:1c66728ad60364b82bf095d383b87458" + ], "includePlatforms": [], "excludePlatforms": [], "allowUnsafeCode": false, diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/MyNesMain.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/MyNesMain.cs index fe0b6af..eeb781b 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/MyNesMain.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/MyNesMain.cs @@ -2,9 +2,13 @@ using System; using System.Collections.Generic; using System.IO; using System.Linq; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] public class MyNesMain { public static EmuSettings EmuSettings { get; private set; } diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/Namcot106.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/Namcot106.cs index ba7d96b..9a44427 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/Namcot106.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/Namcot106.cs @@ -1,7 +1,11 @@ using System.IO; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] [WithExternalSound] internal abstract class Namcot106 : Board { diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/NesCartDatabase.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/NesCartDatabase.cs index 117f832..cf42c2e 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/NesCartDatabase.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/NesCartDatabase.cs @@ -1,9 +1,13 @@ using System.Collections.Generic; using System.IO; using System.Xml; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] public class NesCartDatabase { private static List _databaseRoms = new List(); diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/NesCartDatabaseCartridgeInfo.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/NesCartDatabaseCartridgeInfo.cs index 1258227..3759c2c 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/NesCartDatabaseCartridgeInfo.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/NesCartDatabaseCartridgeInfo.cs @@ -1,7 +1,11 @@ using System.Collections.Generic; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] public class NesCartDatabaseCartridgeInfo { public string System; diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/NesCartDatabaseGameInfo.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/NesCartDatabaseGameInfo.cs index aab3394..ee111ea 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/NesCartDatabaseGameInfo.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/NesCartDatabaseGameInfo.cs @@ -1,7 +1,11 @@ using System.Collections.Generic; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] public struct NesCartDatabaseGameInfo { public string Game_Name; diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/NesEmu.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/NesEmu.cs index aa204c2..8b2e57e 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/NesEmu.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/NesEmu.cs @@ -1,3 +1,4 @@ +using Google.Protobuf.WellKnownTypes; using System; using System.Collections.Generic; using System.Diagnostics; @@ -5,9 +6,15 @@ using System.IO; using System.Runtime.InteropServices; using System.Threading; using System.Xml; +using Unity.IL2CPP.CompilerServices; +using Option = Unity.IL2CPP.CompilerServices.Option; + namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] public class NesEmu { [StructLayout(LayoutKind.Explicit)] @@ -4063,6 +4070,9 @@ namespace MyNes.Core ppu_clock_v = 0; } + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] private static void PPUClock() { mem_board.OnPPUClock(); diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/PALBPaletteGenerator.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/PALBPaletteGenerator.cs index 8a6cb99..873a4bd 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/PALBPaletteGenerator.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/PALBPaletteGenerator.cs @@ -1,7 +1,11 @@ using System; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] public class PALBPaletteGenerator { public const float default_saturation = 1.496f; diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/PaletteFileWrapper.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/PaletteFileWrapper.cs index 1a59074..7436c77 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/PaletteFileWrapper.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/PaletteFileWrapper.cs @@ -1,8 +1,12 @@ using System.Collections.Generic; using System.IO; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] public class PaletteFileWrapper { public static bool LoadFile(Stream fileStream, out int[] palette) diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/RendererSettings.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/RendererSettings.cs index 28e5970..086d0ec 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/RendererSettings.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/RendererSettings.cs @@ -1,7 +1,11 @@ using System.IO; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] public class RendererSettings : ISettings { public string Video_ProviderID = ""; diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/SoundDCBlockerFilter.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/SoundDCBlockerFilter.cs index e5cad92..da849fe 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/SoundDCBlockerFilter.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/SoundDCBlockerFilter.cs @@ -1,5 +1,10 @@ +using Unity.IL2CPP.CompilerServices; + namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] internal class SoundDCBlockerFilter { private double R; diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/SoundHighPassFilter.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/SoundHighPassFilter.cs index 3045913..c83ced1 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/SoundHighPassFilter.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/SoundHighPassFilter.cs @@ -1,7 +1,11 @@ using System; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] internal class SoundHighPassFilter { private double K; diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/SoundLowPassFilter.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/SoundLowPassFilter.cs index b1e7f39..2d52392 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/SoundLowPassFilter.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/SoundLowPassFilter.cs @@ -1,7 +1,11 @@ using System; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] internal class SoundLowPassFilter { private double K; diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/Sunsoft5BChnl.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/Sunsoft5BChnl.cs index 9a1a687..cebef8b 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/Sunsoft5BChnl.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/Sunsoft5BChnl.cs @@ -1,7 +1,11 @@ using System.IO; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] internal class Sunsoft5BChnl { internal bool Enabled; diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/Tracer.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/Tracer.cs index 43cda90..2fc0264 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/Tracer.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/Tracer.cs @@ -1,9 +1,13 @@ #define TRACE using System; +using Unity.IL2CPP.CompilerServices; using UnityEngine; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] public sealed class Tracer { public static event EventHandler EventRaised; diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/TracerEventArgs.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/TracerEventArgs.cs index b9fde5e..0c8a68b 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/TracerEventArgs.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/TracerEventArgs.cs @@ -1,7 +1,11 @@ using System; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] public class TracerEventArgs : EventArgs { public string Message { get; private set; } diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/VRC6Pulse.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/VRC6Pulse.cs index 84ce43f..07cd398 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/VRC6Pulse.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/VRC6Pulse.cs @@ -1,7 +1,11 @@ using System.IO; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] internal class VRC6Pulse { private int dutyForm; diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/VRC6Sawtooth.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/VRC6Sawtooth.cs index d97b430..3d06632 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/VRC6Sawtooth.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/VRC6Sawtooth.cs @@ -1,7 +1,11 @@ using System.IO; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] internal class VRC6Sawtooth { private byte AccumRate; diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/WaveRecorder.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/WaveRecorder.cs index 513be7c..a117145 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/WaveRecorder.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/WaveRecorder.cs @@ -1,9 +1,13 @@ using System; using System.IO; using System.Text; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] public class WaveRecorder { private string _fileName; diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/WithExternalSoundAttribute.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/WithExternalSoundAttribute.cs index f224f7f..0ed7069 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/WithExternalSoundAttribute.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/WithExternalSoundAttribute.cs @@ -1,7 +1,11 @@ using System; +using Unity.IL2CPP.CompilerServices; namespace MyNes.Core { + [Il2CppSetOption(Option.NullChecks, false)] + [Il2CppSetOption(Option.ArrayBoundsChecks, false)] + [Il2CppSetOption(Option.DivideByZeroChecks, false)] internal class WithExternalSoundAttribute : Attribute { } diff --git a/AxibugEmuOnline.Client/Assets/Scene/EmuTest.unity b/AxibugEmuOnline.Client/Assets/Scene/EmuTest.unity index a568da5..d9156af 100644 --- a/AxibugEmuOnline.Client/Assets/Scene/EmuTest.unity +++ b/AxibugEmuOnline.Client/Assets/Scene/EmuTest.unity @@ -372,6 +372,18 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 0} m_Modifications: + - target: {fileID: 8662582775359084755, guid: d75df7d1f5a2c824ab5013cbd79da7a4, type: 3} + propertyPath: m_AnchoredPosition.x + value: -124 + objectReference: {fileID: 0} + - target: {fileID: 8662582775359084755, guid: d75df7d1f5a2c824ab5013cbd79da7a4, type: 3} + propertyPath: m_AnchoredPosition.y + value: 109 + objectReference: {fileID: 0} + - target: {fileID: 8662582775359084756, guid: d75df7d1f5a2c824ab5013cbd79da7a4, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 8662582775964487076, guid: d75df7d1f5a2c824ab5013cbd79da7a4, type: 3} propertyPath: m_RootOrder value: 3 From c3c9d97f7def3d85b4ebef4e1284315fc44f9bd6 Mon Sep 17 00:00:00 2001 From: "ALIENJACK\\alien" Date: Mon, 22 Jul 2024 13:09:42 +0800 Subject: [PATCH 2/2] Il2CppSetOptionAttribute --- .../MyNes.Core/Il2CppSetOptionAttribute.cs | 74 +++++++++++++++++++ .../Il2CppSetOptionAttribute.cs.meta | 11 +++ 2 files changed, 85 insertions(+) create mode 100644 AxibugEmuOnline.Client/Assets/MyNes.Core/Il2CppSetOptionAttribute.cs create mode 100644 AxibugEmuOnline.Client/Assets/MyNes.Core/Il2CppSetOptionAttribute.cs.meta diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/Il2CppSetOptionAttribute.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/Il2CppSetOptionAttribute.cs new file mode 100644 index 0000000..e7453df --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/Il2CppSetOptionAttribute.cs @@ -0,0 +1,74 @@ +using System; + +namespace Unity.IL2CPP.CompilerServices +{ + /// + /// The code generation options available for IL to C++ conversion. + /// Enable or disabled these with caution. + /// + public enum Option + { + /// + /// Enable or disable code generation for null checks. + /// + /// Global null check support is enabled by default when il2cpp.exe + /// is launched from the Unity editor. + /// + /// Disabling this will prevent NullReferenceException exceptions from + /// being thrown in generated code. In *most* cases, code that dereferences + /// a null pointer will crash then. Sometimes the point where the crash + /// happens is later than the location where the null reference check would + /// have been emitted though. + /// + NullChecks = 1, + /// + /// Enable or disable code generation for array bounds checks. + /// + /// Global array bounds check support is enabled by default when il2cpp.exe + /// is launched from the Unity editor. + /// + /// Disabling this will prevent IndexOutOfRangeException exceptions from + /// being thrown in generated code. This will allow reading and writing to + /// memory outside of the bounds of an array without any runtime checks. + /// Disable this check with extreme caution. + /// + ArrayBoundsChecks = 2, + /// + /// Enable or disable code generation for divide by zero checks. + /// + /// Global divide by zero check support is disabled by default when il2cpp.exe + /// is launched from the Unity editor. + /// + /// Enabling this will cause DivideByZeroException exceptions to be + /// thrown in generated code. Most code doesn't need to handle this + /// exception, so it is probably safe to leave it disabled. + /// + DivideByZeroChecks = 3, + } + + /// + /// Use this attribute on an assembly, struct, class, method, or property to inform the IL2CPP code conversion utility to override the + /// global setting for one of a few different runtime checks. + /// + /// Example: + /// + /// [Il2CppSetOption(Option.NullChecks, false)] + /// public static string MethodWithNullChecksDisabled() + /// { + /// var tmp = new Object(); + /// return tmp.ToString(); + /// } + /// + [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Struct | AttributeTargets.Class | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Delegate, Inherited = false, AllowMultiple = true)] + public class Il2CppSetOptionAttribute : Attribute + { + public Option Option { get; private set; } + public object Value { get; private set; } + + public Il2CppSetOptionAttribute(Option option, object value) + { + Option = option; + Value = value; + } + } +} diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/Il2CppSetOptionAttribute.cs.meta b/AxibugEmuOnline.Client/Assets/MyNes.Core/Il2CppSetOptionAttribute.cs.meta new file mode 100644 index 0000000..956232b --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/Il2CppSetOptionAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1fa3bc95a1fade84eb4f44a94a7409b5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: