From e269fcc7a4b1b171097cb58669bc3582a8eb1488 Mon Sep 17 00:00:00 2001 From: easyworld Date: Wed, 7 Sep 2016 20:51:43 +0800 Subject: [PATCH] fix bug --- bin/homebrew.elf | Bin 86528 -> 86828 bytes cheat.plg | Bin 31548 -> 31564 bytes homebrew.map | 727 +++++++++++++++++++++++------------------------ obj/gameplg.o | Bin 11468 -> 11840 bytes payload.bin | Bin 31460 -> 31564 bytes source/gameplg.c | 15 +- 6 files changed, 372 insertions(+), 370 deletions(-) diff --git a/bin/homebrew.elf b/bin/homebrew.elf index 8de58a6f958161988fee5bd96229d32f92a77783..3877dd9ff54ac9bc13e6a361e434b0f5512ec6a0 100644 GIT binary patch delta 25457 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 bRMY>bzr=3w(@o(Izc<;$s>z9xkB|Nb!Xet# diff --git a/homebrew.map b/homebrew.map index 3aae8fe..5d6a54a 100644 --- a/homebrew.map +++ b/homebrew.map @@ -25,7 +25,7 @@ Linker script and memory map 0x00100100 . = 0x100100 0x00100100 . = ALIGN (0x4) -.text 0x00100100 0x28e4 +.text 0x00100100 0x2934 0x00100100 __text_start = . bootloader.o(.text*) .text 0x00100100 0xb0 bootloader.o @@ -34,7 +34,7 @@ Linker script and memory map 0x00100190 plgGetIoBase 0x00100198 copyRemoteMemory *(.text*) - .text 0x001001b0 0x360 gameplg.o + .text 0x001001b0 0x3b8 gameplg.o 0x001001b0 getKey 0x001001d0 waitKeyUp 0x00100200 initMenu @@ -45,321 +45,320 @@ Linker script and memory map 0x0010033c addCheatMenuEntry 0x00100368 onCheatItemChanged 0x0010037c freezeCheatValue - 0x001003c4 updateCheatEnableDisplay - 0x001003f8 scanCheatMenu - 0x00100434 initCheatMenu - 0x0010045c gamePluginEntry - .text 0x00100510 0x144 lib\AC.o - 0x00100510 ACU_cmd1 - 0x00100560 ACU_cmd26 - 0x001005c0 ACU_GetWifiStatus - 0x001005f8 ACU_WaitInternetConnection - .text 0x00100654 0x30 lib\entry.o - 0x00100654 c_entry - 0x00100680 IRQHandler - .text 0x00100684 0x50c lib\FS.o - 0x00100684 FSUSER_Initialize - 0x001006b8 FSUSER_OpenFile - 0x00100758 FSUSER_OpenFileDirectly - 0x00100818 FSUSER_OpenArchive - 0x0010089c FSUSER_OpenDirectory - 0x00100928 FSUSER_CloseArchive - 0x00100978 FSFILE_Close - 0x001009a8 FSFILE_Read - 0x00100a10 FSFILE_Write - 0x00100a80 FSFILE_GetSize - 0x00100ac4 FSFILE_SetSize - 0x00100afc FSDIR_Read - 0x00100b60 FSDIR_Close - .text 0x00100b90 0x28 lib\main.o - 0x00100b90 threadStart - .text.startup 0x00100bb8 0x80 lib\main.o - 0x00100bb8 main - *fill* 0x00100c38 0x8 - .text 0x00100c40 0x10 lib\misc.o - 0x00100c40 sleep - .text 0x00100c50 0x3c lib\OS.o - 0x00100c50 OS_ConvertVaddr2Physaddr - .text 0x00100c8c 0xd4 lib\pm.o - 0x00100c8c dumpKernel - 0x00100c90 getCurrentProcessId - 0x00100cb4 getCurrentProcessHandle - 0x00100d1c protectRemoteMemory - 0x00100d40 protectMemory - .text 0x00100d60 0x54c lib\rt.o - 0x00100d60 rtInitLock - 0x00100d6c rtAcquireLock - 0x00100da0 rtReleaseLock - 0x00100dac rtAlignToPageSize - 0x00100dbc rtGetPageOfAddress - 0x00100dc8 rtCheckRemoteMemoryRegionSafeForWrite - 0x00100e18 rtSafeCopyMemory - 0x00100e70 rtRecvSocket - 0x00100ed0 rtSendSocket - 0x00100f2c rtIntToPortNumber - 0x00100f48 rtGetFileSize - 0x00101034 rtLoadFileToBuffer - 0x0010117c rtGenerateJumpCode - 0x00101194 rtFlushInstructionCache - 0x001011ac rtInitHook - 0x00101224 rtEnableHook - 0x00101268 rtDisableHook - .text 0x001012ac 0x10c lib\sharedfunc.o - 0x001012ac initSharedFunc - .text 0x001013b8 0xef8 lib\SOC.o - 0x001013f4 socu_cmd1 - 0x00101444 SOC_Shutdown - 0x00101480 SOC_Initialize - 0x001014e8 SOC_GetErrno - 0x001014f8 socket - 0x00101560 closesocket - 0x001015c0 shutdown - 0x00101624 listen - 0x00101688 accept - 0x00101784 bind - 0x00101854 connect - 0x00101924 socuipc_cmd7 - 0x00101a40 socuipc_cmd8 - 0x00101b80 socuipc_cmd9 - 0x00101c90 socuipc_cmda - 0x00101da4 recvfrom - 0x00101dd0 sendto - 0x00101dfc recv - 0x00101e18 send - 0x00101e34 getsockopt - 0x00101ee4 setsockopt - 0x00101f6c fcntl - 0x00102034 sockatmark - 0x00102094 gethostid - 0x001020d0 getsockname - 0x001021c0 getpeername - .text 0x001022b0 0x118 lib\srv.o - 0x001022b0 exitSrv - 0x001022c8 srv_RegisterClient - 0x00102308 initSrv - 0x0010233c srv_getServiceHandle - .text 0x001023c8 0x40 lib\stub.o - 0x001023c8 showDbg - 0x001023d0 nsDbgPrint - 0x001023d8 plgRegisterMenuEntry - 0x001023e0 plgGetSharedServiceHandle - 0x001023e8 plgRequestMemory - 0x001023f0 plgRegisterCallback - 0x001023f8 xsprintf - 0x00102400 controlVideo - *fill* 0x00102408 0x8 - .text 0x00102410 0x2a0 lib\svc.o - 0x00102410 getThreadCommandBuffer - 0x0010241c svc_controlMemory - 0x0010243c svc_exitProcess - 0x00102444 svc_createThread - 0x00102464 svc_exitThread - 0x0010246c svc_sleepThread - 0x00102474 svc_createMutex - 0x00102488 svc_releaseMutex - 0x00102490 svc_releaseSemaphore - 0x001024a4 svc_createEvent - 0x001024b8 svc_signalEvent - 0x001024c0 svc_clearEvent - 0x001024c8 svc_createMemoryBlock - 0x001024e0 svc_mapMemoryBlock - 0x001024e8 svc_unmapMemoryBlock - 0x001024f0 svc_arbitrateAddress - 0x001024f8 svc_closeHandle - 0x00102500 svc_waitSynchronization1 - 0x00102508 svc_waitSynchronizationN - 0x00102528 svc_getSystemTick - 0x00102530 svc_getSystemInfo - 0x0010254c svc_getProcessInfo - 0x00102568 svc_connectToPort - 0x0010257c svc_sendSyncRequest - 0x00102584 svc_getProcessId - 0x00102598 svc_getThreadId - 0x001025ac svc_setThreadIdealProcessor - 0x001025b4 svc_openThread - 0x001025c8 svc_flushProcessDataCache - 0x001025d0 svc_invalidateProcessDataCache - 0x001025d8 svc_queryMemory - 0x001025e0 svc_addCodeSegment - 0x001025e8 svc_openProcess - 0x001025fc svc_controlProcessMemory - 0x00102614 svc_mapProcessMemory - 0x0010261c svc_startInterProcessDma - 0x0010263c svc_getDmaState - 0x00102650 svc_backDoor - 0x00102658 svc_getProcessList - 0x0010266c svc_getThreadList - 0x00102680 svc_getThreadContext - 0x00102688 svc_debugActiveProcess - 0x0010269c svc_readProcessMemory - 0x001026a4 svc_writeProcessMemory - .text 0x001026b0 0xf0 ./lib\libc.a(lib_a-memcpy-stub.o) - 0x001026b0 memcpy - .text 0x001027a0 0xf4 ./lib\libc.a(lib_a-memset.o) - 0x001027a0 memset - .text 0x00102894 0xf0 ./lib\libc.a(lib_a-strcpy.o) - 0x00102894 strcpy - .text 0x00102984 0x60 ./lib\libc.a(lib_a-strlen.o) - 0x00102984 strlen - -.glue_7 0x001029e4 0x0 - .glue_7 0x001029e4 0x0 linker stubs - -.glue_7t 0x001029e4 0x0 - .glue_7t 0x001029e4 0x0 linker stubs - -.vfp11_veneer 0x001029e4 0x0 - .vfp11_veneer 0x001029e4 0x0 linker stubs - -.v4_bx 0x001029e4 0x0 - .v4_bx 0x001029e4 0x0 linker stubs - -.plt 0x001029e4 0x0 - .plt 0x001029e4 0x0 bootloader.o - -.iplt 0x001029e4 0x0 - .iplt 0x001029e4 0x0 bootloader.o - 0x001029e4 . = ALIGN (0x4) - -.data 0x001029e4 0x8 + 0x00100410 updateCheatEnableDisplay + 0x00100444 scanCheatMenu + 0x00100480 initCheatMenu + 0x001004b4 gamePluginEntry + .text 0x00100568 0x144 lib\AC.o + 0x00100568 ACU_cmd1 + 0x001005b8 ACU_cmd26 + 0x00100618 ACU_GetWifiStatus + 0x00100650 ACU_WaitInternetConnection + .text 0x001006ac 0x30 lib\entry.o + 0x001006ac c_entry + 0x001006d8 IRQHandler + .text 0x001006dc 0x50c lib\FS.o + 0x001006dc FSUSER_Initialize + 0x00100710 FSUSER_OpenFile + 0x001007b0 FSUSER_OpenFileDirectly + 0x00100870 FSUSER_OpenArchive + 0x001008f4 FSUSER_OpenDirectory + 0x00100980 FSUSER_CloseArchive + 0x001009d0 FSFILE_Close + 0x00100a00 FSFILE_Read + 0x00100a68 FSFILE_Write + 0x00100ad8 FSFILE_GetSize + 0x00100b1c FSFILE_SetSize + 0x00100b54 FSDIR_Read + 0x00100bb8 FSDIR_Close + .text 0x00100be8 0x28 lib\main.o + 0x00100be8 threadStart + .text.startup 0x00100c10 0x80 lib\main.o + 0x00100c10 main + .text 0x00100c90 0x10 lib\misc.o + 0x00100c90 sleep + .text 0x00100ca0 0x3c lib\OS.o + 0x00100ca0 OS_ConvertVaddr2Physaddr + .text 0x00100cdc 0xd4 lib\pm.o + 0x00100cdc dumpKernel + 0x00100ce0 getCurrentProcessId + 0x00100d04 getCurrentProcessHandle + 0x00100d6c protectRemoteMemory + 0x00100d90 protectMemory + .text 0x00100db0 0x54c lib\rt.o + 0x00100db0 rtInitLock + 0x00100dbc rtAcquireLock + 0x00100df0 rtReleaseLock + 0x00100dfc rtAlignToPageSize + 0x00100e0c rtGetPageOfAddress + 0x00100e18 rtCheckRemoteMemoryRegionSafeForWrite + 0x00100e68 rtSafeCopyMemory + 0x00100ec0 rtRecvSocket + 0x00100f20 rtSendSocket + 0x00100f7c rtIntToPortNumber + 0x00100f98 rtGetFileSize + 0x00101084 rtLoadFileToBuffer + 0x001011cc rtGenerateJumpCode + 0x001011e4 rtFlushInstructionCache + 0x001011fc rtInitHook + 0x00101274 rtEnableHook + 0x001012b8 rtDisableHook + .text 0x001012fc 0x10c lib\sharedfunc.o + 0x001012fc initSharedFunc + .text 0x00101408 0xef8 lib\SOC.o + 0x00101444 socu_cmd1 + 0x00101494 SOC_Shutdown + 0x001014d0 SOC_Initialize + 0x00101538 SOC_GetErrno + 0x00101548 socket + 0x001015b0 closesocket + 0x00101610 shutdown + 0x00101674 listen + 0x001016d8 accept + 0x001017d4 bind + 0x001018a4 connect + 0x00101974 socuipc_cmd7 + 0x00101a90 socuipc_cmd8 + 0x00101bd0 socuipc_cmd9 + 0x00101ce0 socuipc_cmda + 0x00101df4 recvfrom + 0x00101e20 sendto + 0x00101e4c recv + 0x00101e68 send + 0x00101e84 getsockopt + 0x00101f34 setsockopt + 0x00101fbc fcntl + 0x00102084 sockatmark + 0x001020e4 gethostid + 0x00102120 getsockname + 0x00102210 getpeername + .text 0x00102300 0x118 lib\srv.o + 0x00102300 exitSrv + 0x00102318 srv_RegisterClient + 0x00102358 initSrv + 0x0010238c srv_getServiceHandle + .text 0x00102418 0x40 lib\stub.o + 0x00102418 showDbg + 0x00102420 nsDbgPrint + 0x00102428 plgRegisterMenuEntry + 0x00102430 plgGetSharedServiceHandle + 0x00102438 plgRequestMemory + 0x00102440 plgRegisterCallback + 0x00102448 xsprintf + 0x00102450 controlVideo + *fill* 0x00102458 0x8 + .text 0x00102460 0x2a0 lib\svc.o + 0x00102460 getThreadCommandBuffer + 0x0010246c svc_controlMemory + 0x0010248c svc_exitProcess + 0x00102494 svc_createThread + 0x001024b4 svc_exitThread + 0x001024bc svc_sleepThread + 0x001024c4 svc_createMutex + 0x001024d8 svc_releaseMutex + 0x001024e0 svc_releaseSemaphore + 0x001024f4 svc_createEvent + 0x00102508 svc_signalEvent + 0x00102510 svc_clearEvent + 0x00102518 svc_createMemoryBlock + 0x00102530 svc_mapMemoryBlock + 0x00102538 svc_unmapMemoryBlock + 0x00102540 svc_arbitrateAddress + 0x00102548 svc_closeHandle + 0x00102550 svc_waitSynchronization1 + 0x00102558 svc_waitSynchronizationN + 0x00102578 svc_getSystemTick + 0x00102580 svc_getSystemInfo + 0x0010259c svc_getProcessInfo + 0x001025b8 svc_connectToPort + 0x001025cc svc_sendSyncRequest + 0x001025d4 svc_getProcessId + 0x001025e8 svc_getThreadId + 0x001025fc svc_setThreadIdealProcessor + 0x00102604 svc_openThread + 0x00102618 svc_flushProcessDataCache + 0x00102620 svc_invalidateProcessDataCache + 0x00102628 svc_queryMemory + 0x00102630 svc_addCodeSegment + 0x00102638 svc_openProcess + 0x0010264c svc_controlProcessMemory + 0x00102664 svc_mapProcessMemory + 0x0010266c svc_startInterProcessDma + 0x0010268c svc_getDmaState + 0x001026a0 svc_backDoor + 0x001026a8 svc_getProcessList + 0x001026bc svc_getThreadList + 0x001026d0 svc_getThreadContext + 0x001026d8 svc_debugActiveProcess + 0x001026ec svc_readProcessMemory + 0x001026f4 svc_writeProcessMemory + .text 0x00102700 0xf0 ./lib\libc.a(lib_a-memcpy-stub.o) + 0x00102700 memcpy + .text 0x001027f0 0xf4 ./lib\libc.a(lib_a-memset.o) + 0x001027f0 memset + .text 0x001028e4 0xf0 ./lib\libc.a(lib_a-strcpy.o) + 0x001028e4 strcpy + .text 0x001029d4 0x60 ./lib\libc.a(lib_a-strlen.o) + 0x001029d4 strlen + +.glue_7 0x00102a34 0x0 + .glue_7 0x00102a34 0x0 linker stubs + +.glue_7t 0x00102a34 0x0 + .glue_7t 0x00102a34 0x0 linker stubs + +.vfp11_veneer 0x00102a34 0x0 + .vfp11_veneer 0x00102a34 0x0 linker stubs + +.v4_bx 0x00102a34 0x0 + .v4_bx 0x00102a34 0x0 linker stubs + +.plt 0x00102a34 0x0 + .plt 0x00102a34 0x0 bootloader.o + +.iplt 0x00102a34 0x0 + .iplt 0x00102a34 0x0 bootloader.o + 0x00102a34 . = ALIGN (0x4) + +.data 0x00102a34 0x8 *(.data) - .data 0x001029e4 0x0 bootloader.o - .data 0x001029e4 0x4 gameplg.o - 0x001029e4 IoBasePad - .data 0x001029e8 0x0 lib\AC.o - .data 0x001029e8 0x0 lib\entry.o - .data 0x001029e8 0x0 lib\FS.o - .data 0x001029e8 0x4 lib\main.o - 0x001029e8 socuRet - .data 0x001029ec 0x0 lib\misc.o - .data 0x001029ec 0x0 lib\OS.o - .data 0x001029ec 0x0 lib\pm.o - .data 0x001029ec 0x0 lib\rt.o - .data 0x001029ec 0x0 lib\sharedfunc.o - .data 0x001029ec 0x0 lib\SOC.o - .data 0x001029ec 0x0 lib\srv.o - .data 0x001029ec 0x0 lib\stub.o - .data 0x001029ec 0x0 lib\svc.o - .data 0x001029ec 0x0 ./lib\libc.a(lib_a-memcpy-stub.o) - .data 0x001029ec 0x0 ./lib\libc.a(lib_a-memset.o) - .data 0x001029ec 0x0 ./lib\libc.a(lib_a-strcpy.o) - .data 0x001029ec 0x0 ./lib\libc.a(lib_a-strlen.o) - -.dynamic 0x001029ec 0x80 - .dynamic 0x001029ec 0x80 bootloader.o - 0x001029ec _DYNAMIC - -.got 0x00102a6c 0x0 - .got 0x00102a6c 0x0 bootloader.o - -.got.plt 0x00102a6c 0xc - .got.plt 0x00102a6c 0xc bootloader.o - 0x00102a6c _GLOBAL_OFFSET_TABLE_ - -.igot.plt 0x00102a78 0x0 - .igot.plt 0x00102a78 0x0 bootloader.o - 0x00102a78 . = ALIGN (0x4) - 0x00102a78 . = ALIGN (0x4) - -.rel.dyn 0x00102a78 0x278 + .data 0x00102a34 0x0 bootloader.o + .data 0x00102a34 0x4 gameplg.o + 0x00102a34 IoBasePad + .data 0x00102a38 0x0 lib\AC.o + .data 0x00102a38 0x0 lib\entry.o + .data 0x00102a38 0x0 lib\FS.o + .data 0x00102a38 0x4 lib\main.o + 0x00102a38 socuRet + .data 0x00102a3c 0x0 lib\misc.o + .data 0x00102a3c 0x0 lib\OS.o + .data 0x00102a3c 0x0 lib\pm.o + .data 0x00102a3c 0x0 lib\rt.o + .data 0x00102a3c 0x0 lib\sharedfunc.o + .data 0x00102a3c 0x0 lib\SOC.o + .data 0x00102a3c 0x0 lib\srv.o + .data 0x00102a3c 0x0 lib\stub.o + .data 0x00102a3c 0x0 lib\svc.o + .data 0x00102a3c 0x0 ./lib\libc.a(lib_a-memcpy-stub.o) + .data 0x00102a3c 0x0 ./lib\libc.a(lib_a-memset.o) + .data 0x00102a3c 0x0 ./lib\libc.a(lib_a-strcpy.o) + .data 0x00102a3c 0x0 ./lib\libc.a(lib_a-strlen.o) + +.dynamic 0x00102a3c 0x80 + .dynamic 0x00102a3c 0x80 bootloader.o + 0x00102a3c _DYNAMIC + +.got 0x00102abc 0x0 + .got 0x00102abc 0x0 bootloader.o + +.got.plt 0x00102abc 0xc + .got.plt 0x00102abc 0xc bootloader.o + 0x00102abc _GLOBAL_OFFSET_TABLE_ + +.igot.plt 0x00102ac8 0x0 + .igot.plt 0x00102ac8 0x0 bootloader.o + 0x00102ac8 . = ALIGN (0x4) + 0x00102ac8 . = ALIGN (0x4) + +.rel.dyn 0x00102ac8 0x280 *(.__rel_dyn_start) .__rel_dyn_start - 0x00102a78 0x0 bootloader.o + 0x00102ac8 0x0 bootloader.o *(.rel*) - .rel.got 0x00102a78 0x0 bootloader.o - .rel.plt 0x00102a78 0x0 bootloader.o - .rel.iplt 0x00102a78 0x0 bootloader.o - .rel.text 0x00102a78 0x258 bootloader.o + .rel.got 0x00102ac8 0x0 bootloader.o + .rel.plt 0x00102ac8 0x0 bootloader.o + .rel.iplt 0x00102ac8 0x0 bootloader.o + .rel.text 0x00102ac8 0x260 bootloader.o .rel.text.startup - 0x00102cd0 0x20 bootloader.o + 0x00102d28 0x20 bootloader.o *(.rel.*) *(.__rel_dyn_end) .__rel_dyn_end - 0x00102cf0 0x0 bootloader.o - 0x00102cf0 __code_end = . + 0x00102d48 0x0 bootloader.o + 0x00102d48 __code_end = . -.interp 0x00102cf0 0x11 - .interp 0x00102cf0 0x11 bootloader.o +.interp 0x00102d48 0x11 + .interp 0x00102d48 0x11 bootloader.o -.gnu.version_d 0x00102d04 0x0 +.gnu.version_d 0x00102d5c 0x0 .gnu.version_d - 0x00102d04 0x0 bootloader.o + 0x00102d5c 0x0 bootloader.o -.gnu.version 0x00102d02 0x0 - .gnu.version 0x00102d02 0x0 bootloader.o +.gnu.version 0x00102d5a 0x0 + .gnu.version 0x00102d5a 0x0 bootloader.o -.gnu.version_r 0x00102d04 0x0 +.gnu.version_r 0x00102d5c 0x0 .gnu.version_r - 0x00102d04 0x0 bootloader.o + 0x00102d5c 0x0 bootloader.o -.dynsym 0x00102d04 0x60 - .dynsym 0x00102d04 0x60 bootloader.o +.dynsym 0x00102d5c 0x60 + .dynsym 0x00102d5c 0x60 bootloader.o -.dynstr 0x00102d64 0x21 - .dynstr 0x00102d64 0x21 bootloader.o +.dynstr 0x00102dbc 0x21 + .dynstr 0x00102dbc 0x21 bootloader.o -.hash 0x00102d88 0x2c - .hash 0x00102d88 0x2c bootloader.o +.hash 0x00102de0 0x2c + .hash 0x00102de0 0x2c bootloader.o -.rodata.str1.1 0x00102db4 0xf0 +.rodata.str1.1 0x00102e0c 0x100 .rodata.str1.1 - 0x00102db4 0x2e gameplg.o + 0x00102e0c 0x3e gameplg.o .rodata.str1.1 - 0x00102de2 0x5 lib\AC.o + 0x00102e4a 0x5 lib\AC.o .rodata.str1.1 - 0x00102de7 0x20 lib\main.o + 0x00102e4f 0x20 lib\main.o .rodata.str1.1 - 0x00102e07 0x1e lib\pm.o + 0x00102e6f 0x1e lib\pm.o .rodata.str1.1 - 0x00102e25 0x74 lib\rt.o + 0x00102e8d 0x74 lib\rt.o .rodata.str1.1 - 0x00102e99 0x6 lib\SOC.o + 0x00102f01 0x6 lib\SOC.o .rodata.str1.1 - 0x00102e9f 0x5 lib\srv.o + 0x00102f07 0x5 lib\srv.o -.rodata 0x00102ea4 0x4d - .rodata 0x00102ea4 0x4d lib\SOC.o - 0x00102ef4 . = ALIGN (0x4) +.rodata 0x00102f0c 0x4d + .rodata 0x00102f0c 0x4d lib\SOC.o + 0x00102f5c . = ALIGN (0x4) -.bss 0x00102ef4 0x4cf0 +.bss 0x00102f5c 0x4cf0 *(.__bss_start) - .__bss_start 0x00102ef4 0x0 bootloader.o - 0x00102ef4 __c_bss_start + .__bss_start 0x00102f5c 0x0 bootloader.o + 0x00102f5c __c_bss_start *(.bss COMMON) - .bss 0x00102ef4 0x0 bootloader.o - .bss 0x00102ef4 0x4 gameplg.o - 0x00102ef4 isNewNtr - COMMON 0x00102ef8 0x4cd8 gameplg.o - 0x00102ef8 gamePluginMenu - 0x00103b74 sdmcArchive - 0x00103b8c fsUserHandle - 0x00103b90 cheatEnabled - 0x00103bd0 threadStack - .bss 0x00107bd0 0x0 lib\AC.o - .bss 0x00107bd0 0x0 lib\entry.o - .bss 0x00107bd0 0x0 lib\FS.o - .bss 0x00107bd0 0x0 lib\main.o - .bss 0x00107bd0 0x0 lib\misc.o - .bss 0x00107bd0 0x0 lib\OS.o - .bss 0x00107bd0 0x8 lib\pm.o - 0x00107bd0 currentPid - 0x00107bd4 hCurrentProcess - .bss 0x00107bd8 0x0 lib\rt.o - .bss 0x00107bd8 0x0 lib\sharedfunc.o - .bss 0x00107bd8 0x8 lib\SOC.o - 0x00107bd8 SOCU_handle - .bss 0x00107be0 0x4 lib\srv.o - 0x00107be0 srvHandle - .bss 0x00107be4 0x0 lib\stub.o - .bss 0x00107be4 0x0 lib\svc.o - .bss 0x00107be4 0x0 ./lib\libc.a(lib_a-memcpy-stub.o) - .bss 0x00107be4 0x0 ./lib\libc.a(lib_a-memset.o) - .bss 0x00107be4 0x0 ./lib\libc.a(lib_a-strcpy.o) - .bss 0x00107be4 0x0 ./lib\libc.a(lib_a-strlen.o) + .bss 0x00102f5c 0x0 bootloader.o + .bss 0x00102f5c 0x4 gameplg.o + 0x00102f5c isNewNtr + COMMON 0x00102f60 0x4cd8 gameplg.o + 0x00102f60 gamePluginMenu + 0x00103bdc sdmcArchive + 0x00103bf4 fsUserHandle + 0x00103bf8 cheatEnabled + 0x00103c38 threadStack + .bss 0x00107c38 0x0 lib\AC.o + .bss 0x00107c38 0x0 lib\entry.o + .bss 0x00107c38 0x0 lib\FS.o + .bss 0x00107c38 0x0 lib\main.o + .bss 0x00107c38 0x0 lib\misc.o + .bss 0x00107c38 0x0 lib\OS.o + .bss 0x00107c38 0x8 lib\pm.o + 0x00107c38 currentPid + 0x00107c3c hCurrentProcess + .bss 0x00107c40 0x0 lib\rt.o + .bss 0x00107c40 0x0 lib\sharedfunc.o + .bss 0x00107c40 0x8 lib\SOC.o + 0x00107c40 SOCU_handle + .bss 0x00107c48 0x4 lib\srv.o + 0x00107c48 srvHandle + .bss 0x00107c4c 0x0 lib\stub.o + .bss 0x00107c4c 0x0 lib\svc.o + .bss 0x00107c4c 0x0 ./lib\libc.a(lib_a-memcpy-stub.o) + .bss 0x00107c4c 0x0 ./lib\libc.a(lib_a-memset.o) + .bss 0x00107c4c 0x0 ./lib\libc.a(lib_a-strcpy.o) + .bss 0x00107c4c 0x0 ./lib\libc.a(lib_a-strlen.o) *(.__bss_end) - .__bss_end 0x00107be4 0x0 bootloader.o - 0x00107be4 __c_bss_end - 0x00107be4 __end__ = . + .__bss_end 0x00107c4c 0x0 bootloader.o + 0x00107c4c __c_bss_end + 0x00107c4c __end__ = . LOAD bootloader.o LOAD gameplg.o LOAD lib\AC.o @@ -379,8 +378,8 @@ LOAD ./lib\libc.a LOAD ./lib\libgcc.a OUTPUT(a.out elf32-littlearm) -.dynbss 0x00107be4 0x0 - .dynbss 0x00107be4 0x0 bootloader.o +.dynbss 0x00107c4c 0x0 + .dynbss 0x00107c4c 0x0 bootloader.o .ARM.attributes 0x00000000 0x27 @@ -442,43 +441,43 @@ OUTPUT(a.out elf32-littlearm) .comment 0x00000044 0x23 ./lib\libc.a(lib_a-strcpy.o) .comment 0x00000044 0x23 ./lib\libc.a(lib_a-strlen.o) -.debug_info 0x00000000 0x44ac - .debug_info 0x00000000 0x929 gameplg.o - .debug_info 0x00000929 0x368 lib\AC.o - .debug_info 0x00000c91 0x11f lib\entry.o - .debug_info 0x00000db0 0x8a9 lib\FS.o - .debug_info 0x00001659 0x3ed lib\main.o - .debug_info 0x00001a46 0xc0 lib\OS.o - .debug_info 0x00001b06 0x335 lib\pm.o - .debug_info 0x00001e3b 0xc82 lib\rt.o - .debug_info 0x00002abd 0x335 lib\sharedfunc.o - .debug_info 0x00002df2 0x13dc lib\SOC.o - .debug_info 0x000041ce 0x2de lib\srv.o - -.debug_abbrev 0x00000000 0x11cd - .debug_abbrev 0x00000000 0x2ed gameplg.o - .debug_abbrev 0x000002ed 0x13f lib\AC.o - .debug_abbrev 0x0000042c 0xcc lib\entry.o - .debug_abbrev 0x000004f8 0x144 lib\FS.o - .debug_abbrev 0x0000063c 0x1ad lib\main.o - .debug_abbrev 0x000007e9 0x6d lib\OS.o - .debug_abbrev 0x00000856 0x15f lib\pm.o - .debug_abbrev 0x000009b5 0x2aa lib\rt.o - .debug_abbrev 0x00000c5f 0xfb lib\sharedfunc.o - .debug_abbrev 0x00000d5a 0x304 lib\SOC.o - .debug_abbrev 0x0000105e 0x16f lib\srv.o - -.debug_loc 0x00000000 0x29e8 - .debug_loc 0x00000000 0x138 gameplg.o - .debug_loc 0x00000138 0x1cc lib\AC.o - .debug_loc 0x00000304 0x34 lib\entry.o - .debug_loc 0x00000338 0x7db lib\FS.o - .debug_loc 0x00000b13 0x76 lib\main.o - .debug_loc 0x00000b89 0x5c lib\OS.o - .debug_loc 0x00000be5 0xfa lib\pm.o - .debug_loc 0x00000cdf 0x6b8 lib\rt.o - .debug_loc 0x00001397 0x152b lib\SOC.o - .debug_loc 0x000028c2 0x126 lib\srv.o +.debug_info 0x00000000 0x4518 + .debug_info 0x00000000 0x995 gameplg.o + .debug_info 0x00000995 0x368 lib\AC.o + .debug_info 0x00000cfd 0x11f lib\entry.o + .debug_info 0x00000e1c 0x8a9 lib\FS.o + .debug_info 0x000016c5 0x3ed lib\main.o + .debug_info 0x00001ab2 0xc0 lib\OS.o + .debug_info 0x00001b72 0x335 lib\pm.o + .debug_info 0x00001ea7 0xc82 lib\rt.o + .debug_info 0x00002b29 0x335 lib\sharedfunc.o + .debug_info 0x00002e5e 0x13dc lib\SOC.o + .debug_info 0x0000423a 0x2de lib\srv.o + +.debug_abbrev 0x00000000 0x11f0 + .debug_abbrev 0x00000000 0x310 gameplg.o + .debug_abbrev 0x00000310 0x13f lib\AC.o + .debug_abbrev 0x0000044f 0xcc lib\entry.o + .debug_abbrev 0x0000051b 0x144 lib\FS.o + .debug_abbrev 0x0000065f 0x1ad lib\main.o + .debug_abbrev 0x0000080c 0x6d lib\OS.o + .debug_abbrev 0x00000879 0x15f lib\pm.o + .debug_abbrev 0x000009d8 0x2aa lib\rt.o + .debug_abbrev 0x00000c82 0xfb lib\sharedfunc.o + .debug_abbrev 0x00000d7d 0x304 lib\SOC.o + .debug_abbrev 0x00001081 0x16f lib\srv.o + +.debug_loc 0x00000000 0x29fb + .debug_loc 0x00000000 0x14b gameplg.o + .debug_loc 0x0000014b 0x1cc lib\AC.o + .debug_loc 0x00000317 0x34 lib\entry.o + .debug_loc 0x0000034b 0x7db lib\FS.o + .debug_loc 0x00000b26 0x76 lib\main.o + .debug_loc 0x00000b9c 0x5c lib\OS.o + .debug_loc 0x00000bf8 0xfa lib\pm.o + .debug_loc 0x00000cf2 0x6b8 lib\rt.o + .debug_loc 0x000013aa 0x152b lib\SOC.o + .debug_loc 0x000028d5 0x126 lib\srv.o .debug_aranges 0x00000000 0x168 .debug_aranges @@ -504,55 +503,55 @@ OUTPUT(a.out elf32-littlearm) .debug_aranges 0x00000148 0x20 lib\srv.o -.debug_line 0x00000000 0x12bf - .debug_line 0x00000000 0x199 gameplg.o - .debug_line 0x00000199 0x12e lib\AC.o - .debug_line 0x000002c7 0xe1 lib\entry.o - .debug_line 0x000003a8 0x1d0 lib\FS.o - .debug_line 0x00000578 0x155 lib\main.o - .debug_line 0x000006cd 0xed lib\OS.o - .debug_line 0x000007ba 0x120 lib\pm.o - .debug_line 0x000008da 0x27f lib\rt.o - .debug_line 0x00000b59 0x102 lib\sharedfunc.o - .debug_line 0x00000c5b 0x4ed lib\SOC.o - .debug_line 0x00001148 0x177 lib\srv.o - -.debug_str 0x00000000 0xd8c - .debug_str 0x00000000 0x4ab gameplg.o - 0x553 (size before relaxing) - .debug_str 0x000004ab 0x112 lib\AC.o +.debug_line 0x00000000 0x12cd + .debug_line 0x00000000 0x1a7 gameplg.o + .debug_line 0x000001a7 0x12e lib\AC.o + .debug_line 0x000002d5 0xe1 lib\entry.o + .debug_line 0x000003b6 0x1d0 lib\FS.o + .debug_line 0x00000586 0x155 lib\main.o + .debug_line 0x000006db 0xed lib\OS.o + .debug_line 0x000007c8 0x120 lib\pm.o + .debug_line 0x000008e8 0x27f lib\rt.o + .debug_line 0x00000b67 0x102 lib\sharedfunc.o + .debug_line 0x00000c69 0x4ed lib\SOC.o + .debug_line 0x00001156 0x177 lib\srv.o + +.debug_str 0x00000000 0xd98 + .debug_str 0x00000000 0x4b7 gameplg.o + 0x55f (size before relaxing) + .debug_str 0x000004b7 0x112 lib\AC.o 0x1e9 (size before relaxing) - .debug_str 0x000005bd 0x3c lib\entry.o + .debug_str 0x000005c9 0x3c lib\entry.o 0x14a (size before relaxing) - .debug_str 0x000005f9 0x163 lib\FS.o + .debug_str 0x00000605 0x163 lib\FS.o 0x367 (size before relaxing) - .debug_str 0x0000075c 0xb8 lib\main.o + .debug_str 0x00000768 0xb8 lib\main.o 0x2a1 (size before relaxing) - .debug_str 0x00000814 0x33 lib\OS.o + .debug_str 0x00000820 0x33 lib\OS.o 0x123 (size before relaxing) - .debug_str 0x00000847 0xb0 lib\pm.o + .debug_str 0x00000853 0xb0 lib\pm.o 0x229 (size before relaxing) - .debug_str 0x000008f7 0x1f4 lib\rt.o + .debug_str 0x00000903 0x1f4 lib\rt.o 0x4f0 (size before relaxing) - .debug_str 0x00000aeb 0x1e lib\sharedfunc.o + .debug_str 0x00000af7 0x1e lib\sharedfunc.o 0x22f (size before relaxing) - .debug_str 0x00000b09 0x240 lib\SOC.o + .debug_str 0x00000b15 0x240 lib\SOC.o 0x420 (size before relaxing) - .debug_str 0x00000d49 0x43 lib\srv.o + .debug_str 0x00000d55 0x43 lib\srv.o 0x1e1 (size before relaxing) -.debug_frame 0x00000000 0xa5c - .debug_frame 0x00000000 0x140 gameplg.o - .debug_frame 0x00000140 0x8c lib\AC.o - .debug_frame 0x000001cc 0x30 lib\entry.o - .debug_frame 0x000001fc 0x1ac lib\FS.o - .debug_frame 0x000003a8 0x48 lib\main.o - .debug_frame 0x000003f0 0x20 lib\OS.o - .debug_frame 0x00000410 0x90 lib\pm.o - .debug_frame 0x000004a0 0x1a8 lib\rt.o - .debug_frame 0x00000648 0x2c lib\sharedfunc.o - .debug_frame 0x00000674 0x370 lib\SOC.o - .debug_frame 0x000009e4 0x78 lib\srv.o +.debug_frame 0x00000000 0xa64 + .debug_frame 0x00000000 0x148 gameplg.o + .debug_frame 0x00000148 0x8c lib\AC.o + .debug_frame 0x000001d4 0x30 lib\entry.o + .debug_frame 0x00000204 0x1ac lib\FS.o + .debug_frame 0x000003b0 0x48 lib\main.o + .debug_frame 0x000003f8 0x20 lib\OS.o + .debug_frame 0x00000418 0x90 lib\pm.o + .debug_frame 0x000004a8 0x1a8 lib\rt.o + .debug_frame 0x00000650 0x2c lib\sharedfunc.o + .debug_frame 0x0000067c 0x370 lib\SOC.o + .debug_frame 0x000009ec 0x78 lib\srv.o .debug_ranges 0x00000000 0x68 .debug_ranges 0x00000000 0x18 lib\main.o diff --git a/obj/gameplg.o b/obj/gameplg.o index 7004a799bd1953dd53fbb376820c2ac86fd9d47a..65d4da859cfe0eb0b61b7ec9ea280dbb019651ce 100644 GIT binary patch delta 4866 zcmY*cdvH|M8UN1Rd-vX(7n@|0>}IpcvLWwmvKx~nV0Z-R0%8d8o_?h5})BsNAzPEhEb6GWY#rg*kzuL+Ih^m|^(5mH+UzQA)d zN1$#2^lRv7&NVbtSAFO=v}Tl3ucl2MM><(`ofo(AiL zpswQ_<9W~DawxhzTZz7s1D~9e#82}vEEej zM2&S^IhBY-qa~ra-Tli~gnGOCduY%kQte2p*ySQh(*;o(41V@VR1E#k3Xx0IR<7$O zMb+O0Qw+_5uVSb(mPIY9E$L%WbRTjms`e=osBf?| zXA8eo{W?^rZ{p?3xeAJUmh(XGoE0nh~H`5cnzevi|1#y|0f)&)g358$2l zIoul+J$x^^XYOF9V(t)`8?3|byu?=sp_lRGq?t3hww!A{<}ubQ?5>+1B7|Paw$E%~ zy_z!?m|t_28XkSfe2(>6_StTZv4529CruC1>UEra2TfvW8%)n`7|TiBtR_%fe+m(@ zw?h}J!~uYJb)EVIok13YuVLnM6T%yQOwms-8y2|D*l4gedUWM1=c26(zh0uTrGgho(rQ+=khH5?aho+rgZQ=VR}Q25xf@Wh06h-T`gOFi%sQ zO+0$ZJOmL_d8$$%mD1$io_-S3x#7*oPi1fM1YXKq8SF2QaqA{#zeTB7g&~R`h2Ro6 z0^VezdnaLB4r4Lmp?ji%!u(ZsLb}H12vQ^C`4;!PkOh$iuIas!&kEnUU?cMrV0cH;X`Q~fq16;k8_p34rZ`W^5Pgdtvk zG5iLcYMy~svlp-0atyo?t@kJ8D9a`Ar$7Pfc>7a+8^^zADY(78htI-0#vjE!_K@2t zUxA-^U)sveha%aB4FKt1f2H4#ltRJ8{uO2(%nbKSpGJo^;h01w{y?RKMf5u?BWB%ayueX{j! z6Iy?Nlmxb*mX|276$Y04_#d{5T?VNy&}h06#8zTRhA= zC~TcgJAY*;Rb*oo>&azIPrWp?6(k2FBS~^=#4Nu<%lwXWo;JbR2lBnM-x3*lt@-0k zGDVhqwr^XrpOXaczgtkIh`}s?DI7Dn8LHwNY{o%f=*W*W``M|;>dx>dLgU$#JbXvv zJ!KkB2I2(8c;)7fL2NHrbskMS3b5cT>R2K@)OtoU9^6jx`fAS~;O3 z@U5!Bz@KZ&;5@b5HN+VBWnV=5;!nJjCh73}cgm z>t~wOlgBc~Z9hZS9DkrNc~&+%-tC89&9Hwa*hO`X{>;BbNzBLCokvhA433oK88Eg? z;9SqgyYmR*`a=^q*K(a16E(@vUZF=vuP?YnnK=Y83yZ?H-{feRUk0B1 zNnw69cye6Kmw{s}uNR(H5yGQQ`U#lcuU|L4>n#2z!o|O0{Bl`HQwef%~IdYI0aXT#~g!pNc@X**e~%YBLee1o)do|`8N`C za1bL9$K`YVzjVnj!dO8#%jFG!xQJN~(hNH|Sm zv&8v~Ww_!>-YszzFu@Ie&H{RPm#lbL@<%1#DfzRK?`13_dRg+%B%YPXH(8ErN-U5# zQ(}k2g$CB29XCqhE{P8?BEdGsHlkt4cQ9T-^jFDWXPi&;mgFBWwi10J`58uhl;i@@{N(49Zr=L&QyAoaF+F5WvOzk!YZvQ)ta-2{)D<>+M{d_SPwzm K5F&byQ~e+4*{h!b delta 4486 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 diff --git a/payload.bin b/payload.bin index 2d64c6ec3be550345fc9fcb15a4ad70c5e2d4c17..191727fbf80d869b6bcd6f2bf5c5eedb078df124 100644 GIT binary patch delta 1942 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 diff --git a/source/gameplg.c b/source/gameplg.c index eb71b6d..fbeed69 100644 --- a/source/gameplg.c +++ b/source/gameplg.c @@ -104,12 +104,12 @@ void onCheatItemChanged(int id, int enable) { // freeze the value void freezeCheatValue() { - u32 key; + u32 key,pointer; if (cheatEnabled[0]) { - WRITEU8(0x08c84274, 0xA); + WRITEU8(0x08C83D94, 0xA); } if (cheatEnabled[1]) { - WRITEU16(0x08C6FE55, 0x0101); + WRITEU16(0x08C6F975, 0x0101); } if (cheatEnabled[2]) {//TODO: need to be a function key = getKey(); @@ -119,9 +119,12 @@ void freezeCheatValue() { // wait until key is up waitKeyUp(); } - if (cheatEnabled) { - WRITEU8(*(vu32*)(0x81FB9F0)+0xB2,0x1); - cheatEnabled[2] = 0; + if (cheatEnabled[2]) { + pointer = *(vu32*)(0x81FB510); + if(pointer != 0x5D48C0){//magic number + WRITEU8(pointer+0xB2,0x1); + cheatEnabled[2] = 0; + } } } // TODO: handle your own cheat items