// private const long SEL_PV_TIME_ADDRESS = 0x000000014CC12498L; internal DivaPatcher(Manipulator manipulator, Settings settings) { patches = new Dictionary <long, byte[]> { // Disable the keychip time bomb { 0x0000000140210820, new byte [] { 0xB8, 0x00, 0x00, 0x00, 0x00, 0xC3 } }, // Just completely ignore all SYSTEM_STARTUP errors { 0x00000001403F5080, new byte [] { 0xC3 } }, // Always exit TASK_MODE_APP_ERROR on the first frame { 0x00000001403F73A7, new byte [] { 0x90, 0x90 } }, { 0x00000001403F73C3, new byte [] { 0x89, 0xD1, 0x90 } }, // Ignore the EngineClear variable to clear the framebuffer at all resolutions { 0x0000000140501480, new byte [] { 0x90, 0x90 } }, { 0x0000000140501515, new byte [] { 0x90, 0x90 } }, // Don't update the touch slider state so we can write our own // { 0x000000014061579B, new byte [] { 0x90, 0x90, 0x90, 0x8B, 0x42, 0xE0, 0x90, 0x90, 0x90 } }, // *But of course we have a valid keychip*, return true { 0x000000014066E820, new byte [] { 0xB8, 0x01, 0x00, 0x00, 0x00, 0xC3 } }, // Skip parts of the network check state { 0x00000001406717B1, new byte [] { 0xE9, 0x22, 0x03, 0x00 } }, // Set the initial DHCP WAIT timer value to 0 { 0x00000001406724E7, new byte [] { 0x00, 0x00 } }, // Ignore SYSTEM_STARTUP Location Server checks { 0x00000001406732A2, new byte [] { 0x90, 0x90 } }, // Toon Shader Fix by lybxlpsv { 0x000000014050214F, new byte [] { 0x90, 0x90 } }, // Toon Shader Outline Fix by lybxlpsv { 0x0000000140641102, new byte [] { 0x01 } }, }; Manipulator = manipulator; Settings = settings; }
internal DivaScore(Manipulator manipulator) { isInitialized = false; Manipulator = manipulator; // Allocation for Scores, thanks somewhatlurker scoreArray = Manipulator.AllocateMemory(4 * 1000 * 2 * 0xE4).ToInt64(); for (int i = 0; i < 4; i++) { Manipulator.WriteInt64(PLAYER_DATA_ADDRESS + i * 0x18 + 0x5D0, scoreArray + i * 1000 * 2 * 0xE4); Manipulator.WriteInt64(PLAYER_DATA_ADDRESS + i * 0x18 + 0x5D8, scoreArray + (i + 1) * 1000 * 2 * 0xE4); } // Allocation for MyLists, thanks vladkorotnev myListArray = Manipulator.AllocateMemory(3 * 40 * 4).ToInt64(); for (int i = 0; i < 3; i++) { Manipulator.WriteInt64(PLAYER_DATA_ADDRESS + i * 0x18 + 0x588, myListArray + i * 40 * 4); Manipulator.WriteInt64(PLAYER_DATA_ADDRESS + i * 0x18 + 0x590, myListArray + (i + 1) * 40 * 4); } new Thread(new ThreadStart(Initialize)).Start(); }
internal Watchdog(Manipulator manipulator, Settings settings) { Manipulator = manipulator; Settings = settings; }
public CachedScore(Manipulator manipulator, long address) { Manipulator = manipulator; this.address = address; }
public ScaleComponent(Manipulator manipulator) { Manipulator = manipulator; }
// private const long ADV_TOUCH_IS_TAPPED = 0x140EC52D0L + 0x70L; internal TouchEmulator(Manipulator manipulator) { Manipulator = manipulator; }
// private uint playIdx; internal PlayerDataManager(Manipulator manipulator) { Manipulator = manipulator; }