From d4b09f147b88e72ed0fca7ad7512046dc0dd657b Mon Sep 17 00:00:00 2001
From: Lightos1 <124387232+Lightos1@users.noreply.github.com>
Date: Sat, 2 May 2026 16:17:09 +0200
Subject: [PATCH] add back emc data that I forgot
---
.../secmon_define_emc_access_table.inc | 25 +
.../secmon_emc_access_table_data.inc | 1040 +++++++++++++++++
2 files changed, 1065 insertions(+)
create mode 100644 Source/Atmosphere-Patches/secmon_define_emc_access_table.inc
create mode 100644 Source/Atmosphere-Patches/secmon_emc_access_table_data.inc
diff --git a/Source/Atmosphere-Patches/secmon_define_emc_access_table.inc b/Source/Atmosphere-Patches/secmon_define_emc_access_table.inc
new file mode 100644
index 00000000..161f77c6
--- /dev/null
+++ b/Source/Atmosphere-Patches/secmon_define_emc_access_table.inc
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#define __ACCESS_TABLE_NAME__ EmcAccessTable
+#define __ACCESS_TABLE_ADDRESS__ MemoryRegionPhysicalDeviceExternalMemoryController.GetAddress()
+#define __ACCESS_TABLE_INC__ "secmon_emc_access_table_data.inc"
+
+#include "secmon_define_access_table.inc"
+
+#undef __ACCESS_TABLE_INC__
+#undef __ACCESS_TABLE_ADDRESS__
+#undef __ACCESS_TABLE_NAME__
diff --git a/Source/Atmosphere-Patches/secmon_emc_access_table_data.inc b/Source/Atmosphere-Patches/secmon_emc_access_table_data.inc
new file mode 100644
index 00000000..a3718c5e
--- /dev/null
+++ b/Source/Atmosphere-Patches/secmon_emc_access_table_data.inc
@@ -0,0 +1,1040 @@
+/*
+ * Copyright (c) Atmosphère-NX
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+SetRegisterAllowed(0x0);
+SetRegisterAllowed(0x4);
+SetRegisterAllowed(0x8);
+SetRegisterAllowed(0xC);
+SetRegisterAllowed(0x10);
+SetRegisterAllowed(0x14);
+SetRegisterAllowed(0x18);
+SetRegisterAllowed(0x1C);
+SetRegisterAllowed(0x20);
+SetRegisterAllowed(0x24);
+SetRegisterAllowed(0x28);
+SetRegisterAllowed(0x2C);
+SetRegisterAllowed(0x30);
+SetRegisterAllowed(0x34);
+SetRegisterAllowed(0x38);
+SetRegisterAllowed(0x3C);
+SetRegisterAllowed(0x40);
+SetRegisterAllowed(0x44);
+SetRegisterAllowed(0x48);
+SetRegisterAllowed(0x4C);
+SetRegisterAllowed(0x50);
+SetRegisterAllowed(0x54);
+SetRegisterAllowed(0x58);
+SetRegisterAllowed(0x5C);
+SetRegisterAllowed(0x60);
+SetRegisterAllowed(0x64);
+SetRegisterAllowed(0x68);
+SetRegisterAllowed(0x6C);
+SetRegisterAllowed(0x70);
+SetRegisterAllowed(0x74);
+SetRegisterAllowed(0x78);
+SetRegisterAllowed(0x7C);
+SetRegisterAllowed(0x80);
+SetRegisterAllowed(0x84);
+SetRegisterAllowed(0x88);
+SetRegisterAllowed(0x8C);
+SetRegisterAllowed(0x90);
+SetRegisterAllowed(0x94);
+SetRegisterAllowed(0x98);
+SetRegisterAllowed(0x9C);
+SetRegisterAllowed(0xA0);
+SetRegisterAllowed(0xA4);
+SetRegisterAllowed(0xA8);
+SetRegisterAllowed(0xAC);
+SetRegisterAllowed(0xB0);
+SetRegisterAllowed(0xB4);
+SetRegisterAllowed(0xB8);
+SetRegisterAllowed(0xBC);
+SetRegisterAllowed(0xC0);
+SetRegisterAllowed(0xC4);
+SetRegisterAllowed(0xC8);
+SetRegisterAllowed(0xCC);
+SetRegisterAllowed(0xD0);
+SetRegisterAllowed(0xD4);
+SetRegisterAllowed(0xD8);
+SetRegisterAllowed(0xDC);
+SetRegisterAllowed(0xE0);
+SetRegisterAllowed(0xE4);
+SetRegisterAllowed(0xE8);
+SetRegisterAllowed(0xEC);
+SetRegisterAllowed(0xF0);
+SetRegisterAllowed(0xF4);
+SetRegisterAllowed(0xF8);
+SetRegisterAllowed(0xFC);
+SetRegisterAllowed(0x100);
+SetRegisterAllowed(0x104);
+SetRegisterAllowed(0x108);
+SetRegisterAllowed(0x10C);
+SetRegisterAllowed(0x110);
+SetRegisterAllowed(0x114);
+SetRegisterAllowed(0x118);
+SetRegisterAllowed(0x11C);
+SetRegisterAllowed(0x120);
+SetRegisterAllowed(0x124);
+SetRegisterAllowed(0x128);
+SetRegisterAllowed(0x12C);
+SetRegisterAllowed(0x130);
+SetRegisterAllowed(0x134);
+SetRegisterAllowed(0x138);
+SetRegisterAllowed(0x13C);
+SetRegisterAllowed(0x140);
+SetRegisterAllowed(0x144);
+SetRegisterAllowed(0x148);
+SetRegisterAllowed(0x14C);
+SetRegisterAllowed(0x150);
+SetRegisterAllowed(0x154);
+SetRegisterAllowed(0x158);
+SetRegisterAllowed(0x15C);
+SetRegisterAllowed(0x160);
+SetRegisterAllowed(0x164);
+SetRegisterAllowed(0x168);
+SetRegisterAllowed(0x16C);
+SetRegisterAllowed(0x170);
+SetRegisterAllowed(0x174);
+SetRegisterAllowed(0x178);
+SetRegisterAllowed(0x17C);
+SetRegisterAllowed(0x180);
+SetRegisterAllowed(0x184);
+SetRegisterAllowed(0x188);
+SetRegisterAllowed(0x18C);
+SetRegisterAllowed(0x190);
+SetRegisterAllowed(0x194);
+SetRegisterAllowed(0x198);
+SetRegisterAllowed(0x19C);
+SetRegisterAllowed(0x1A0);
+SetRegisterAllowed(0x1A4);
+SetRegisterAllowed(0x1A8);
+SetRegisterAllowed(0x1AC);
+SetRegisterAllowed(0x1B0);
+SetRegisterAllowed(0x1B4);
+SetRegisterAllowed(0x1B8);
+SetRegisterAllowed(0x1BC);
+SetRegisterAllowed(0x1C0);
+SetRegisterAllowed(0x1C4);
+SetRegisterAllowed(0x1C8);
+SetRegisterAllowed(0x1CC);
+SetRegisterAllowed(0x1D0);
+SetRegisterAllowed(0x1D4);
+SetRegisterAllowed(0x1D8);
+SetRegisterAllowed(0x1DC);
+SetRegisterAllowed(0x1E0);
+SetRegisterAllowed(0x1E4);
+SetRegisterAllowed(0x1E8);
+SetRegisterAllowed(0x1EC);
+SetRegisterAllowed(0x1F0);
+SetRegisterAllowed(0x1F4);
+SetRegisterAllowed(0x1F8);
+SetRegisterAllowed(0x1FC);
+SetRegisterAllowed(0x200);
+SetRegisterAllowed(0x204);
+SetRegisterAllowed(0x208);
+SetRegisterAllowed(0x20C);
+SetRegisterAllowed(0x210);
+SetRegisterAllowed(0x214);
+SetRegisterAllowed(0x218);
+SetRegisterAllowed(0x21C);
+SetRegisterAllowed(0x220);
+SetRegisterAllowed(0x224);
+SetRegisterAllowed(0x228);
+SetRegisterAllowed(0x22C);
+SetRegisterAllowed(0x230);
+SetRegisterAllowed(0x234);
+SetRegisterAllowed(0x238);
+SetRegisterAllowed(0x23C);
+SetRegisterAllowed(0x240);
+SetRegisterAllowed(0x244);
+SetRegisterAllowed(0x248);
+SetRegisterAllowed(0x24C);
+SetRegisterAllowed(0x250);
+SetRegisterAllowed(0x254);
+SetRegisterAllowed(0x258);
+SetRegisterAllowed(0x25C);
+SetRegisterAllowed(0x260);
+SetRegisterAllowed(0x264);
+SetRegisterAllowed(0x268);
+SetRegisterAllowed(0x26C);
+SetRegisterAllowed(0x270);
+SetRegisterAllowed(0x274);
+SetRegisterAllowed(0x278);
+SetRegisterAllowed(0x27C);
+SetRegisterAllowed(0x280);
+SetRegisterAllowed(0x284);
+SetRegisterAllowed(0x288);
+SetRegisterAllowed(0x28C);
+SetRegisterAllowed(0x290);
+SetRegisterAllowed(0x294);
+SetRegisterAllowed(0x298);
+SetRegisterAllowed(0x29C);
+SetRegisterAllowed(0x2A0);
+SetRegisterAllowed(0x2A4);
+SetRegisterAllowed(0x2A8);
+SetRegisterAllowed(0x2AC);
+SetRegisterAllowed(0x2B0);
+SetRegisterAllowed(0x2B4);
+SetRegisterAllowed(0x2B8);
+SetRegisterAllowed(0x2BC);
+SetRegisterAllowed(0x2C0);
+SetRegisterAllowed(0x2C4);
+SetRegisterAllowed(0x2C8);
+SetRegisterAllowed(0x2CC);
+SetRegisterAllowed(0x2D0);
+SetRegisterAllowed(0x2D4);
+SetRegisterAllowed(0x2D8);
+SetRegisterAllowed(0x2DC);
+SetRegisterAllowed(0x2E0);
+SetRegisterAllowed(0x2E4);
+SetRegisterAllowed(0x2E8);
+SetRegisterAllowed(0x2EC);
+SetRegisterAllowed(0x2F0);
+SetRegisterAllowed(0x2F4);
+SetRegisterAllowed(0x2F8);
+SetRegisterAllowed(0x2FC);
+SetRegisterAllowed(0x300);
+SetRegisterAllowed(0x304);
+SetRegisterAllowed(0x308);
+SetRegisterAllowed(0x30C);
+SetRegisterAllowed(0x310);
+SetRegisterAllowed(0x314);
+SetRegisterAllowed(0x318);
+SetRegisterAllowed(0x31C);
+SetRegisterAllowed(0x320);
+SetRegisterAllowed(0x324);
+SetRegisterAllowed(0x328);
+SetRegisterAllowed(0x32C);
+SetRegisterAllowed(0x330);
+SetRegisterAllowed(0x334);
+SetRegisterAllowed(0x338);
+SetRegisterAllowed(0x33C);
+SetRegisterAllowed(0x340);
+SetRegisterAllowed(0x344);
+SetRegisterAllowed(0x348);
+SetRegisterAllowed(0x34C);
+SetRegisterAllowed(0x350);
+SetRegisterAllowed(0x354);
+SetRegisterAllowed(0x358);
+SetRegisterAllowed(0x35C);
+SetRegisterAllowed(0x360);
+SetRegisterAllowed(0x364);
+SetRegisterAllowed(0x368);
+SetRegisterAllowed(0x36C);
+SetRegisterAllowed(0x370);
+SetRegisterAllowed(0x374);
+SetRegisterAllowed(0x378);
+SetRegisterAllowed(0x37C);
+SetRegisterAllowed(0x380);
+SetRegisterAllowed(0x384);
+SetRegisterAllowed(0x388);
+SetRegisterAllowed(0x38C);
+SetRegisterAllowed(0x390);
+SetRegisterAllowed(0x394);
+SetRegisterAllowed(0x398);
+SetRegisterAllowed(0x39C);
+SetRegisterAllowed(0x3A0);
+SetRegisterAllowed(0x3A4);
+SetRegisterAllowed(0x3A8);
+SetRegisterAllowed(0x3AC);
+SetRegisterAllowed(0x3B0);
+SetRegisterAllowed(0x3B4);
+SetRegisterAllowed(0x3B8);
+SetRegisterAllowed(0x3BC);
+SetRegisterAllowed(0x3C0);
+SetRegisterAllowed(0x3C4);
+SetRegisterAllowed(0x3C8);
+SetRegisterAllowed(0x3CC);
+SetRegisterAllowed(0x3D0);
+SetRegisterAllowed(0x3D4);
+SetRegisterAllowed(0x3D8);
+SetRegisterAllowed(0x3DC);
+SetRegisterAllowed(0x3E0);
+SetRegisterAllowed(0x3E4);
+SetRegisterAllowed(0x3E8);
+SetRegisterAllowed(0x3EC);
+SetRegisterAllowed(0x3F0);
+SetRegisterAllowed(0x3F4);
+SetRegisterAllowed(0x3F8);
+SetRegisterAllowed(0x3FC);
+SetRegisterAllowed(0x400);
+SetRegisterAllowed(0x404);
+SetRegisterAllowed(0x408);
+SetRegisterAllowed(0x40C);
+SetRegisterAllowed(0x410);
+SetRegisterAllowed(0x414);
+SetRegisterAllowed(0x418);
+SetRegisterAllowed(0x41C);
+SetRegisterAllowed(0x420);
+SetRegisterAllowed(0x424);
+SetRegisterAllowed(0x428);
+SetRegisterAllowed(0x42C);
+SetRegisterAllowed(0x430);
+SetRegisterAllowed(0x434);
+SetRegisterAllowed(0x438);
+SetRegisterAllowed(0x43C);
+SetRegisterAllowed(0x440);
+SetRegisterAllowed(0x444);
+SetRegisterAllowed(0x448);
+SetRegisterAllowed(0x44C);
+SetRegisterAllowed(0x450);
+SetRegisterAllowed(0x454);
+SetRegisterAllowed(0x458);
+SetRegisterAllowed(0x45C);
+SetRegisterAllowed(0x460);
+SetRegisterAllowed(0x464);
+SetRegisterAllowed(0x468);
+SetRegisterAllowed(0x46C);
+SetRegisterAllowed(0x470);
+SetRegisterAllowed(0x474);
+SetRegisterAllowed(0x478);
+SetRegisterAllowed(0x47C);
+SetRegisterAllowed(0x480);
+SetRegisterAllowed(0x484);
+SetRegisterAllowed(0x488);
+SetRegisterAllowed(0x48C);
+SetRegisterAllowed(0x490);
+SetRegisterAllowed(0x494);
+SetRegisterAllowed(0x498);
+SetRegisterAllowed(0x49C);
+SetRegisterAllowed(0x4A0);
+SetRegisterAllowed(0x4A4);
+SetRegisterAllowed(0x4A8);
+SetRegisterAllowed(0x4AC);
+SetRegisterAllowed(0x4B0);
+SetRegisterAllowed(0x4B4);
+SetRegisterAllowed(0x4B8);
+SetRegisterAllowed(0x4BC);
+SetRegisterAllowed(0x4C0);
+SetRegisterAllowed(0x4C4);
+SetRegisterAllowed(0x4C8);
+SetRegisterAllowed(0x4CC);
+SetRegisterAllowed(0x4D0);
+SetRegisterAllowed(0x4D4);
+SetRegisterAllowed(0x4D8);
+SetRegisterAllowed(0x4DC);
+SetRegisterAllowed(0x4E0);
+SetRegisterAllowed(0x4E4);
+SetRegisterAllowed(0x4E8);
+SetRegisterAllowed(0x4EC);
+SetRegisterAllowed(0x4F0);
+SetRegisterAllowed(0x4F4);
+SetRegisterAllowed(0x4F8);
+SetRegisterAllowed(0x4FC);
+SetRegisterAllowed(0x500);
+SetRegisterAllowed(0x504);
+SetRegisterAllowed(0x508);
+SetRegisterAllowed(0x50C);
+SetRegisterAllowed(0x510);
+SetRegisterAllowed(0x514);
+SetRegisterAllowed(0x518);
+SetRegisterAllowed(0x51C);
+SetRegisterAllowed(0x520);
+SetRegisterAllowed(0x524);
+SetRegisterAllowed(0x528);
+SetRegisterAllowed(0x52C);
+SetRegisterAllowed(0x530);
+SetRegisterAllowed(0x534);
+SetRegisterAllowed(0x538);
+SetRegisterAllowed(0x53C);
+SetRegisterAllowed(0x540);
+SetRegisterAllowed(0x544);
+SetRegisterAllowed(0x548);
+SetRegisterAllowed(0x54C);
+SetRegisterAllowed(0x550);
+SetRegisterAllowed(0x554);
+SetRegisterAllowed(0x558);
+SetRegisterAllowed(0x55C);
+SetRegisterAllowed(0x560);
+SetRegisterAllowed(0x564);
+SetRegisterAllowed(0x568);
+SetRegisterAllowed(0x56C);
+SetRegisterAllowed(0x570);
+SetRegisterAllowed(0x574);
+SetRegisterAllowed(0x578);
+SetRegisterAllowed(0x57C);
+SetRegisterAllowed(0x580);
+SetRegisterAllowed(0x584);
+SetRegisterAllowed(0x588);
+SetRegisterAllowed(0x58C);
+SetRegisterAllowed(0x590);
+SetRegisterAllowed(0x594);
+SetRegisterAllowed(0x598);
+SetRegisterAllowed(0x59C);
+SetRegisterAllowed(0x5A0);
+SetRegisterAllowed(0x5A4);
+SetRegisterAllowed(0x5A8);
+SetRegisterAllowed(0x5AC);
+SetRegisterAllowed(0x5B0);
+SetRegisterAllowed(0x5B4);
+SetRegisterAllowed(0x5B8);
+SetRegisterAllowed(0x5BC);
+SetRegisterAllowed(0x5C0);
+SetRegisterAllowed(0x5C4);
+SetRegisterAllowed(0x5C8);
+SetRegisterAllowed(0x5CC);
+SetRegisterAllowed(0x5D0);
+SetRegisterAllowed(0x5D4);
+SetRegisterAllowed(0x5D8);
+SetRegisterAllowed(0x5DC);
+SetRegisterAllowed(0x5E0);
+SetRegisterAllowed(0x5E4);
+SetRegisterAllowed(0x5E8);
+SetRegisterAllowed(0x5EC);
+SetRegisterAllowed(0x5F0);
+SetRegisterAllowed(0x5F4);
+SetRegisterAllowed(0x5F8);
+SetRegisterAllowed(0x5FC);
+SetRegisterAllowed(0x600);
+SetRegisterAllowed(0x604);
+SetRegisterAllowed(0x608);
+SetRegisterAllowed(0x60C);
+SetRegisterAllowed(0x610);
+SetRegisterAllowed(0x614);
+SetRegisterAllowed(0x618);
+SetRegisterAllowed(0x61C);
+SetRegisterAllowed(0x620);
+SetRegisterAllowed(0x624);
+SetRegisterAllowed(0x628);
+SetRegisterAllowed(0x62C);
+SetRegisterAllowed(0x630);
+SetRegisterAllowed(0x634);
+SetRegisterAllowed(0x638);
+SetRegisterAllowed(0x63C);
+SetRegisterAllowed(0x640);
+SetRegisterAllowed(0x644);
+SetRegisterAllowed(0x648);
+SetRegisterAllowed(0x64C);
+SetRegisterAllowed(0x650);
+SetRegisterAllowed(0x654);
+SetRegisterAllowed(0x658);
+SetRegisterAllowed(0x65C);
+SetRegisterAllowed(0x660);
+SetRegisterAllowed(0x664);
+SetRegisterAllowed(0x668);
+SetRegisterAllowed(0x66C);
+SetRegisterAllowed(0x670);
+SetRegisterAllowed(0x674);
+SetRegisterAllowed(0x678);
+SetRegisterAllowed(0x67C);
+SetRegisterAllowed(0x680);
+SetRegisterAllowed(0x684);
+SetRegisterAllowed(0x688);
+SetRegisterAllowed(0x68C);
+SetRegisterAllowed(0x690);
+SetRegisterAllowed(0x694);
+SetRegisterAllowed(0x698);
+SetRegisterAllowed(0x69C);
+SetRegisterAllowed(0x6A0);
+SetRegisterAllowed(0x6A4);
+SetRegisterAllowed(0x6A8);
+SetRegisterAllowed(0x6AC);
+SetRegisterAllowed(0x6B0);
+SetRegisterAllowed(0x6B4);
+SetRegisterAllowed(0x6B8);
+SetRegisterAllowed(0x6BC);
+SetRegisterAllowed(0x6C0);
+SetRegisterAllowed(0x6C4);
+SetRegisterAllowed(0x6C8);
+SetRegisterAllowed(0x6CC);
+SetRegisterAllowed(0x6D0);
+SetRegisterAllowed(0x6D4);
+SetRegisterAllowed(0x6D8);
+SetRegisterAllowed(0x6DC);
+SetRegisterAllowed(0x6E0);
+SetRegisterAllowed(0x6E4);
+SetRegisterAllowed(0x6E8);
+SetRegisterAllowed(0x6EC);
+SetRegisterAllowed(0x6F0);
+SetRegisterAllowed(0x6F4);
+SetRegisterAllowed(0x6F8);
+SetRegisterAllowed(0x6FC);
+SetRegisterAllowed(0x700);
+SetRegisterAllowed(0x704);
+SetRegisterAllowed(0x708);
+SetRegisterAllowed(0x70C);
+SetRegisterAllowed(0x710);
+SetRegisterAllowed(0x714);
+SetRegisterAllowed(0x718);
+SetRegisterAllowed(0x71C);
+SetRegisterAllowed(0x720);
+SetRegisterAllowed(0x724);
+SetRegisterAllowed(0x728);
+SetRegisterAllowed(0x72C);
+SetRegisterAllowed(0x730);
+SetRegisterAllowed(0x734);
+SetRegisterAllowed(0x738);
+SetRegisterAllowed(0x73C);
+SetRegisterAllowed(0x740);
+SetRegisterAllowed(0x744);
+SetRegisterAllowed(0x748);
+SetRegisterAllowed(0x74C);
+SetRegisterAllowed(0x750);
+SetRegisterAllowed(0x754);
+SetRegisterAllowed(0x758);
+SetRegisterAllowed(0x75C);
+SetRegisterAllowed(0x760);
+SetRegisterAllowed(0x764);
+SetRegisterAllowed(0x768);
+SetRegisterAllowed(0x76C);
+SetRegisterAllowed(0x770);
+SetRegisterAllowed(0x774);
+SetRegisterAllowed(0x778);
+SetRegisterAllowed(0x77C);
+SetRegisterAllowed(0x780);
+SetRegisterAllowed(0x784);
+SetRegisterAllowed(0x788);
+SetRegisterAllowed(0x78C);
+SetRegisterAllowed(0x790);
+SetRegisterAllowed(0x794);
+SetRegisterAllowed(0x798);
+SetRegisterAllowed(0x79C);
+SetRegisterAllowed(0x7A0);
+SetRegisterAllowed(0x7A4);
+SetRegisterAllowed(0x7A8);
+SetRegisterAllowed(0x7AC);
+SetRegisterAllowed(0x7B0);
+SetRegisterAllowed(0x7B4);
+SetRegisterAllowed(0x7B8);
+SetRegisterAllowed(0x7BC);
+SetRegisterAllowed(0x7C0);
+SetRegisterAllowed(0x7C4);
+SetRegisterAllowed(0x7C8);
+SetRegisterAllowed(0x7CC);
+SetRegisterAllowed(0x7D0);
+SetRegisterAllowed(0x7D4);
+SetRegisterAllowed(0x7D8);
+SetRegisterAllowed(0x7DC);
+SetRegisterAllowed(0x7E0);
+SetRegisterAllowed(0x7E4);
+SetRegisterAllowed(0x7E8);
+SetRegisterAllowed(0x7EC);
+SetRegisterAllowed(0x7F0);
+SetRegisterAllowed(0x7F4);
+SetRegisterAllowed(0x7F8);
+SetRegisterAllowed(0x7FC);
+SetRegisterAllowed(0x800);
+SetRegisterAllowed(0x804);
+SetRegisterAllowed(0x808);
+SetRegisterAllowed(0x80C);
+SetRegisterAllowed(0x810);
+SetRegisterAllowed(0x814);
+SetRegisterAllowed(0x818);
+SetRegisterAllowed(0x81C);
+SetRegisterAllowed(0x820);
+SetRegisterAllowed(0x824);
+SetRegisterAllowed(0x828);
+SetRegisterAllowed(0x82C);
+SetRegisterAllowed(0x830);
+SetRegisterAllowed(0x834);
+SetRegisterAllowed(0x838);
+SetRegisterAllowed(0x83C);
+SetRegisterAllowed(0x840);
+SetRegisterAllowed(0x844);
+SetRegisterAllowed(0x848);
+SetRegisterAllowed(0x84C);
+SetRegisterAllowed(0x850);
+SetRegisterAllowed(0x854);
+SetRegisterAllowed(0x858);
+SetRegisterAllowed(0x85C);
+SetRegisterAllowed(0x860);
+SetRegisterAllowed(0x864);
+SetRegisterAllowed(0x868);
+SetRegisterAllowed(0x86C);
+SetRegisterAllowed(0x870);
+SetRegisterAllowed(0x874);
+SetRegisterAllowed(0x878);
+SetRegisterAllowed(0x87C);
+SetRegisterAllowed(0x880);
+SetRegisterAllowed(0x884);
+SetRegisterAllowed(0x888);
+SetRegisterAllowed(0x88C);
+SetRegisterAllowed(0x890);
+SetRegisterAllowed(0x894);
+SetRegisterAllowed(0x898);
+SetRegisterAllowed(0x89C);
+SetRegisterAllowed(0x8A0);
+SetRegisterAllowed(0x8A4);
+SetRegisterAllowed(0x8A8);
+SetRegisterAllowed(0x8AC);
+SetRegisterAllowed(0x8B0);
+SetRegisterAllowed(0x8B4);
+SetRegisterAllowed(0x8B8);
+SetRegisterAllowed(0x8BC);
+SetRegisterAllowed(0x8C0);
+SetRegisterAllowed(0x8C4);
+SetRegisterAllowed(0x8C8);
+SetRegisterAllowed(0x8CC);
+SetRegisterAllowed(0x8D0);
+SetRegisterAllowed(0x8D4);
+SetRegisterAllowed(0x8D8);
+SetRegisterAllowed(0x8DC);
+SetRegisterAllowed(0x8E0);
+SetRegisterAllowed(0x8E4);
+SetRegisterAllowed(0x8E8);
+SetRegisterAllowed(0x8EC);
+SetRegisterAllowed(0x8F0);
+SetRegisterAllowed(0x8F4);
+SetRegisterAllowed(0x8F8);
+SetRegisterAllowed(0x8FC);
+SetRegisterAllowed(0x900);
+SetRegisterAllowed(0x904);
+SetRegisterAllowed(0x908);
+SetRegisterAllowed(0x90C);
+SetRegisterAllowed(0x910);
+SetRegisterAllowed(0x914);
+SetRegisterAllowed(0x918);
+SetRegisterAllowed(0x91C);
+SetRegisterAllowed(0x920);
+SetRegisterAllowed(0x924);
+SetRegisterAllowed(0x928);
+SetRegisterAllowed(0x92C);
+SetRegisterAllowed(0x930);
+SetRegisterAllowed(0x934);
+SetRegisterAllowed(0x938);
+SetRegisterAllowed(0x93C);
+SetRegisterAllowed(0x940);
+SetRegisterAllowed(0x944);
+SetRegisterAllowed(0x948);
+SetRegisterAllowed(0x94C);
+SetRegisterAllowed(0x950);
+SetRegisterAllowed(0x954);
+SetRegisterAllowed(0x958);
+SetRegisterAllowed(0x95C);
+SetRegisterAllowed(0x960);
+SetRegisterAllowed(0x964);
+SetRegisterAllowed(0x968);
+SetRegisterAllowed(0x96C);
+SetRegisterAllowed(0x970);
+SetRegisterAllowed(0x974);
+SetRegisterAllowed(0x978);
+SetRegisterAllowed(0x97C);
+SetRegisterAllowed(0x980);
+SetRegisterAllowed(0x984);
+SetRegisterAllowed(0x988);
+SetRegisterAllowed(0x98C);
+SetRegisterAllowed(0x990);
+SetRegisterAllowed(0x994);
+SetRegisterAllowed(0x998);
+SetRegisterAllowed(0x99C);
+SetRegisterAllowed(0x9A0);
+SetRegisterAllowed(0x9A4);
+SetRegisterAllowed(0x9A8);
+SetRegisterAllowed(0x9AC);
+SetRegisterAllowed(0x9B0);
+SetRegisterAllowed(0x9B4);
+SetRegisterAllowed(0x9B8);
+SetRegisterAllowed(0x9BC);
+SetRegisterAllowed(0x9C0);
+SetRegisterAllowed(0x9C4);
+SetRegisterAllowed(0x9C8);
+SetRegisterAllowed(0x9CC);
+SetRegisterAllowed(0x9D0);
+SetRegisterAllowed(0x9D4);
+SetRegisterAllowed(0x9D8);
+SetRegisterAllowed(0x9DC);
+SetRegisterAllowed(0x9E0);
+SetRegisterAllowed(0x9E4);
+SetRegisterAllowed(0x9E8);
+SetRegisterAllowed(0x9EC);
+SetRegisterAllowed(0x9F0);
+SetRegisterAllowed(0x9F4);
+SetRegisterAllowed(0x9F8);
+SetRegisterAllowed(0x9FC);
+SetRegisterAllowed(0xA00);
+SetRegisterAllowed(0xA04);
+SetRegisterAllowed(0xA08);
+SetRegisterAllowed(0xA0C);
+SetRegisterAllowed(0xA10);
+SetRegisterAllowed(0xA14);
+SetRegisterAllowed(0xA18);
+SetRegisterAllowed(0xA1C);
+SetRegisterAllowed(0xA20);
+SetRegisterAllowed(0xA24);
+SetRegisterAllowed(0xA28);
+SetRegisterAllowed(0xA2C);
+SetRegisterAllowed(0xA30);
+SetRegisterAllowed(0xA34);
+SetRegisterAllowed(0xA38);
+SetRegisterAllowed(0xA3C);
+SetRegisterAllowed(0xA40);
+SetRegisterAllowed(0xA44);
+SetRegisterAllowed(0xA48);
+SetRegisterAllowed(0xA4C);
+SetRegisterAllowed(0xA50);
+SetRegisterAllowed(0xA54);
+SetRegisterAllowed(0xA58);
+SetRegisterAllowed(0xA5C);
+SetRegisterAllowed(0xA60);
+SetRegisterAllowed(0xA64);
+SetRegisterAllowed(0xA68);
+SetRegisterAllowed(0xA6C);
+SetRegisterAllowed(0xA70);
+SetRegisterAllowed(0xA74);
+SetRegisterAllowed(0xA78);
+SetRegisterAllowed(0xA7C);
+SetRegisterAllowed(0xA80);
+SetRegisterAllowed(0xA84);
+SetRegisterAllowed(0xA88);
+SetRegisterAllowed(0xA8C);
+SetRegisterAllowed(0xA90);
+SetRegisterAllowed(0xA94);
+SetRegisterAllowed(0xA98);
+SetRegisterAllowed(0xA9C);
+SetRegisterAllowed(0xAA0);
+SetRegisterAllowed(0xAA4);
+SetRegisterAllowed(0xAA8);
+SetRegisterAllowed(0xAAC);
+SetRegisterAllowed(0xAB0);
+SetRegisterAllowed(0xAB4);
+SetRegisterAllowed(0xAB8);
+SetRegisterAllowed(0xABC);
+SetRegisterAllowed(0xAC0);
+SetRegisterAllowed(0xAC4);
+SetRegisterAllowed(0xAC8);
+SetRegisterAllowed(0xACC);
+SetRegisterAllowed(0xAD0);
+SetRegisterAllowed(0xAD4);
+SetRegisterAllowed(0xAD8);
+SetRegisterAllowed(0xADC);
+SetRegisterAllowed(0xAE0);
+SetRegisterAllowed(0xAE4);
+SetRegisterAllowed(0xAE8);
+SetRegisterAllowed(0xAEC);
+SetRegisterAllowed(0xAF0);
+SetRegisterAllowed(0xAF4);
+SetRegisterAllowed(0xAF8);
+SetRegisterAllowed(0xAFC);
+SetRegisterAllowed(0xB00);
+SetRegisterAllowed(0xB04);
+SetRegisterAllowed(0xB08);
+SetRegisterAllowed(0xB0C);
+SetRegisterAllowed(0xB10);
+SetRegisterAllowed(0xB14);
+SetRegisterAllowed(0xB18);
+SetRegisterAllowed(0xB1C);
+SetRegisterAllowed(0xB20);
+SetRegisterAllowed(0xB24);
+SetRegisterAllowed(0xB28);
+SetRegisterAllowed(0xB2C);
+SetRegisterAllowed(0xB30);
+SetRegisterAllowed(0xB34);
+SetRegisterAllowed(0xB38);
+SetRegisterAllowed(0xB3C);
+SetRegisterAllowed(0xB40);
+SetRegisterAllowed(0xB44);
+SetRegisterAllowed(0xB48);
+SetRegisterAllowed(0xB4C);
+SetRegisterAllowed(0xB50);
+SetRegisterAllowed(0xB54);
+SetRegisterAllowed(0xB58);
+SetRegisterAllowed(0xB5C);
+SetRegisterAllowed(0xB60);
+SetRegisterAllowed(0xB64);
+SetRegisterAllowed(0xB68);
+SetRegisterAllowed(0xB6C);
+SetRegisterAllowed(0xB70);
+SetRegisterAllowed(0xB74);
+SetRegisterAllowed(0xB78);
+SetRegisterAllowed(0xB7C);
+SetRegisterAllowed(0xB80);
+SetRegisterAllowed(0xB84);
+SetRegisterAllowed(0xB88);
+SetRegisterAllowed(0xB8C);
+SetRegisterAllowed(0xB90);
+SetRegisterAllowed(0xB94);
+SetRegisterAllowed(0xB98);
+SetRegisterAllowed(0xB9C);
+SetRegisterAllowed(0xBA0);
+SetRegisterAllowed(0xBA4);
+SetRegisterAllowed(0xBA8);
+SetRegisterAllowed(0xBAC);
+SetRegisterAllowed(0xBB0);
+SetRegisterAllowed(0xBB4);
+SetRegisterAllowed(0xBB8);
+SetRegisterAllowed(0xBBC);
+SetRegisterAllowed(0xBC0);
+SetRegisterAllowed(0xBC4);
+SetRegisterAllowed(0xBC8);
+SetRegisterAllowed(0xBCC);
+SetRegisterAllowed(0xBD0);
+SetRegisterAllowed(0xBD4);
+SetRegisterAllowed(0xBD8);
+SetRegisterAllowed(0xBDC);
+SetRegisterAllowed(0xBE0);
+SetRegisterAllowed(0xBE4);
+SetRegisterAllowed(0xBE8);
+SetRegisterAllowed(0xBEC);
+SetRegisterAllowed(0xBF0);
+SetRegisterAllowed(0xBF4);
+SetRegisterAllowed(0xBF8);
+SetRegisterAllowed(0xBFC);
+SetRegisterAllowed(0xC00);
+SetRegisterAllowed(0xC04);
+SetRegisterAllowed(0xC08);
+SetRegisterAllowed(0xC0C);
+SetRegisterAllowed(0xC10);
+SetRegisterAllowed(0xC14);
+SetRegisterAllowed(0xC18);
+SetRegisterAllowed(0xC1C);
+SetRegisterAllowed(0xC20);
+SetRegisterAllowed(0xC24);
+SetRegisterAllowed(0xC28);
+SetRegisterAllowed(0xC2C);
+SetRegisterAllowed(0xC30);
+SetRegisterAllowed(0xC34);
+SetRegisterAllowed(0xC38);
+SetRegisterAllowed(0xC3C);
+SetRegisterAllowed(0xC40);
+SetRegisterAllowed(0xC44);
+SetRegisterAllowed(0xC48);
+SetRegisterAllowed(0xC4C);
+SetRegisterAllowed(0xC50);
+SetRegisterAllowed(0xC54);
+SetRegisterAllowed(0xC58);
+SetRegisterAllowed(0xC5C);
+SetRegisterAllowed(0xC60);
+SetRegisterAllowed(0xC64);
+SetRegisterAllowed(0xC68);
+SetRegisterAllowed(0xC6C);
+SetRegisterAllowed(0xC70);
+SetRegisterAllowed(0xC74);
+SetRegisterAllowed(0xC78);
+SetRegisterAllowed(0xC7C);
+SetRegisterAllowed(0xC80);
+SetRegisterAllowed(0xC84);
+SetRegisterAllowed(0xC88);
+SetRegisterAllowed(0xC8C);
+SetRegisterAllowed(0xC90);
+SetRegisterAllowed(0xC94);
+SetRegisterAllowed(0xC98);
+SetRegisterAllowed(0xC9C);
+SetRegisterAllowed(0xCA0);
+SetRegisterAllowed(0xCA4);
+SetRegisterAllowed(0xCA8);
+SetRegisterAllowed(0xCAC);
+SetRegisterAllowed(0xCB0);
+SetRegisterAllowed(0xCB4);
+SetRegisterAllowed(0xCB8);
+SetRegisterAllowed(0xCBC);
+SetRegisterAllowed(0xCC0);
+SetRegisterAllowed(0xCC4);
+SetRegisterAllowed(0xCC8);
+SetRegisterAllowed(0xCCC);
+SetRegisterAllowed(0xCD0);
+SetRegisterAllowed(0xCD4);
+SetRegisterAllowed(0xCD8);
+SetRegisterAllowed(0xCDC);
+SetRegisterAllowed(0xCE0);
+SetRegisterAllowed(0xCE4);
+SetRegisterAllowed(0xCE8);
+SetRegisterAllowed(0xCEC);
+SetRegisterAllowed(0xCF0);
+SetRegisterAllowed(0xCF4);
+SetRegisterAllowed(0xCF8);
+SetRegisterAllowed(0xCFC);
+SetRegisterAllowed(0xD00);
+SetRegisterAllowed(0xD04);
+SetRegisterAllowed(0xD08);
+SetRegisterAllowed(0xD0C);
+SetRegisterAllowed(0xD10);
+SetRegisterAllowed(0xD14);
+SetRegisterAllowed(0xD18);
+SetRegisterAllowed(0xD1C);
+SetRegisterAllowed(0xD20);
+SetRegisterAllowed(0xD24);
+SetRegisterAllowed(0xD28);
+SetRegisterAllowed(0xD2C);
+SetRegisterAllowed(0xD30);
+SetRegisterAllowed(0xD34);
+SetRegisterAllowed(0xD38);
+SetRegisterAllowed(0xD3C);
+SetRegisterAllowed(0xD40);
+SetRegisterAllowed(0xD44);
+SetRegisterAllowed(0xD48);
+SetRegisterAllowed(0xD4C);
+SetRegisterAllowed(0xD50);
+SetRegisterAllowed(0xD54);
+SetRegisterAllowed(0xD58);
+SetRegisterAllowed(0xD5C);
+SetRegisterAllowed(0xD60);
+SetRegisterAllowed(0xD64);
+SetRegisterAllowed(0xD68);
+SetRegisterAllowed(0xD6C);
+SetRegisterAllowed(0xD70);
+SetRegisterAllowed(0xD74);
+SetRegisterAllowed(0xD78);
+SetRegisterAllowed(0xD7C);
+SetRegisterAllowed(0xD80);
+SetRegisterAllowed(0xD84);
+SetRegisterAllowed(0xD88);
+SetRegisterAllowed(0xD8C);
+SetRegisterAllowed(0xD90);
+SetRegisterAllowed(0xD94);
+SetRegisterAllowed(0xD98);
+SetRegisterAllowed(0xD9C);
+SetRegisterAllowed(0xDA0);
+SetRegisterAllowed(0xDA4);
+SetRegisterAllowed(0xDA8);
+SetRegisterAllowed(0xDAC);
+SetRegisterAllowed(0xDB0);
+SetRegisterAllowed(0xDB4);
+SetRegisterAllowed(0xDB8);
+SetRegisterAllowed(0xDBC);
+SetRegisterAllowed(0xDC0);
+SetRegisterAllowed(0xDC4);
+SetRegisterAllowed(0xDC8);
+SetRegisterAllowed(0xDCC);
+SetRegisterAllowed(0xDD0);
+SetRegisterAllowed(0xDD4);
+SetRegisterAllowed(0xDD8);
+SetRegisterAllowed(0xDDC);
+SetRegisterAllowed(0xDE0);
+SetRegisterAllowed(0xDE4);
+SetRegisterAllowed(0xDE8);
+SetRegisterAllowed(0xDEC);
+SetRegisterAllowed(0xDF0);
+SetRegisterAllowed(0xDF4);
+SetRegisterAllowed(0xDF8);
+SetRegisterAllowed(0xDFC);
+SetRegisterAllowed(0xE00);
+SetRegisterAllowed(0xE04);
+SetRegisterAllowed(0xE08);
+SetRegisterAllowed(0xE0C);
+SetRegisterAllowed(0xE10);
+SetRegisterAllowed(0xE14);
+SetRegisterAllowed(0xE18);
+SetRegisterAllowed(0xE1C);
+SetRegisterAllowed(0xE20);
+SetRegisterAllowed(0xE24);
+SetRegisterAllowed(0xE28);
+SetRegisterAllowed(0xE2C);
+SetRegisterAllowed(0xE30);
+SetRegisterAllowed(0xE34);
+SetRegisterAllowed(0xE38);
+SetRegisterAllowed(0xE3C);
+SetRegisterAllowed(0xE40);
+SetRegisterAllowed(0xE44);
+SetRegisterAllowed(0xE48);
+SetRegisterAllowed(0xE4C);
+SetRegisterAllowed(0xE50);
+SetRegisterAllowed(0xE54);
+SetRegisterAllowed(0xE58);
+SetRegisterAllowed(0xE5C);
+SetRegisterAllowed(0xE60);
+SetRegisterAllowed(0xE64);
+SetRegisterAllowed(0xE68);
+SetRegisterAllowed(0xE6C);
+SetRegisterAllowed(0xE70);
+SetRegisterAllowed(0xE74);
+SetRegisterAllowed(0xE78);
+SetRegisterAllowed(0xE7C);
+SetRegisterAllowed(0xE80);
+SetRegisterAllowed(0xE84);
+SetRegisterAllowed(0xE88);
+SetRegisterAllowed(0xE8C);
+SetRegisterAllowed(0xE90);
+SetRegisterAllowed(0xE94);
+SetRegisterAllowed(0xE98);
+SetRegisterAllowed(0xE9C);
+SetRegisterAllowed(0xEA0);
+SetRegisterAllowed(0xEA4);
+SetRegisterAllowed(0xEA8);
+SetRegisterAllowed(0xEAC);
+SetRegisterAllowed(0xEB0);
+SetRegisterAllowed(0xEB4);
+SetRegisterAllowed(0xEB8);
+SetRegisterAllowed(0xEBC);
+SetRegisterAllowed(0xEC0);
+SetRegisterAllowed(0xEC4);
+SetRegisterAllowed(0xEC8);
+SetRegisterAllowed(0xECC);
+SetRegisterAllowed(0xED0);
+SetRegisterAllowed(0xED4);
+SetRegisterAllowed(0xED8);
+SetRegisterAllowed(0xEDC);
+SetRegisterAllowed(0xEE0);
+SetRegisterAllowed(0xEE4);
+SetRegisterAllowed(0xEE8);
+SetRegisterAllowed(0xEEC);
+SetRegisterAllowed(0xEF0);
+SetRegisterAllowed(0xEF4);
+SetRegisterAllowed(0xEF8);
+SetRegisterAllowed(0xEFC);
+SetRegisterAllowed(0xF00);
+SetRegisterAllowed(0xF04);
+SetRegisterAllowed(0xF08);
+SetRegisterAllowed(0xF0C);
+SetRegisterAllowed(0xF10);
+SetRegisterAllowed(0xF14);
+SetRegisterAllowed(0xF18);
+SetRegisterAllowed(0xF1C);
+SetRegisterAllowed(0xF20);
+SetRegisterAllowed(0xF24);
+SetRegisterAllowed(0xF28);
+SetRegisterAllowed(0xF2C);
+SetRegisterAllowed(0xF30);
+SetRegisterAllowed(0xF34);
+SetRegisterAllowed(0xF38);
+SetRegisterAllowed(0xF3C);
+SetRegisterAllowed(0xF40);
+SetRegisterAllowed(0xF44);
+SetRegisterAllowed(0xF48);
+SetRegisterAllowed(0xF4C);
+SetRegisterAllowed(0xF50);
+SetRegisterAllowed(0xF54);
+SetRegisterAllowed(0xF58);
+SetRegisterAllowed(0xF5C);
+SetRegisterAllowed(0xF60);
+SetRegisterAllowed(0xF64);
+SetRegisterAllowed(0xF68);
+SetRegisterAllowed(0xF6C);
+SetRegisterAllowed(0xF70);
+SetRegisterAllowed(0xF74);
+SetRegisterAllowed(0xF78);
+SetRegisterAllowed(0xF7C);
+SetRegisterAllowed(0xF80);
+SetRegisterAllowed(0xF84);
+SetRegisterAllowed(0xF88);
+SetRegisterAllowed(0xF8C);
+SetRegisterAllowed(0xF90);
+SetRegisterAllowed(0xF94);
+SetRegisterAllowed(0xF98);
+SetRegisterAllowed(0xF9C);
+SetRegisterAllowed(0xFA0);
+SetRegisterAllowed(0xFA4);
+SetRegisterAllowed(0xFA8);
+SetRegisterAllowed(0xFAC);
+SetRegisterAllowed(0xFB0);
+SetRegisterAllowed(0xFB4);
+SetRegisterAllowed(0xFB8);
+SetRegisterAllowed(0xFBC);
+SetRegisterAllowed(0xFC0);
+SetRegisterAllowed(0xFC4);
+SetRegisterAllowed(0xFC8);
+SetRegisterAllowed(0xFCC);
+SetRegisterAllowed(0xFD0);
+SetRegisterAllowed(0xFD4);
+SetRegisterAllowed(0xFD8);
+SetRegisterAllowed(0xFDC);
+SetRegisterAllowed(0xFE0);
+SetRegisterAllowed(0xFE4);
+SetRegisterAllowed(0xFE8);
+SetRegisterAllowed(0xFEC);
+SetRegisterAllowed(0xFF0);
+SetRegisterAllowed(0xFF4);
+SetRegisterAllowed(0xFF8);
+SetRegisterAllowed(0xFFC);