Nirvada

LunaMoo's modified script (Manual Mode)

Apr 14th, 2025 (edited)
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.20 KB | Gaming | 0 0
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <CheatTable>
  3. <CheatEntries>
  4. <CheatEntry>
  5. <ID>413265</ID>
  6. <Description>"Manual Mode for x64 1.18+"</Description>
  7. <Options moHideChildren="1"/>
  8. <LastState/>
  9. <VariableType>Auto Assembler Script</VariableType>
  10. <AssemblerScript>[ENABLE]
  11. {$lua}
  12. if syntaxcheck then return end
  13.  
  14. function setStartStop()
  15. local memrec = getAddressList().getMemoryRecordByDescription("PSP memory base address")
  16. if not memrec then return end
  17.  
  18. local process = getAddress("PPSSPPWindows64.exe")
  19. if not process then return end
  20.  
  21. local BaseAddress = readQword(process + 0xFBA860)
  22. if not BaseAddress then return end
  23.  
  24. memrec.Address = string.format("%016X", BaseAddress)
  25. end
  26.  
  27. setStartStop()
  28. {$asm}
  29. [DISABLE]
  30. {$lua}
  31. if syntaxcheck then return end
  32.  
  33. local memrec = getAddressList().getMemoryRecordByDescription("PSP memory base address")
  34. if memrec then
  35. memrec.Address = "0000000000000000"
  36. end
  37. {$asm}
  38. </AssemblerScript>
  39. <CheatEntries>
  40. <CheatEntry>
  41. <ID>413266</ID>
  42. <Description>"PSP memory base address"</Description>
  43. <ShowAsSigned>0</ShowAsSigned>
  44. <VariableType>4 Bytes</VariableType>
  45. <Address>0000020F60DC0000</Address>
  46. </CheatEntry>
  47. <CheatEntry>
  48. <ID>413267</ID>
  49. <Description>"Limit Scan Range"</Description>
  50. <LastState/>
  51. <VariableType>Auto Assembler Script</VariableType>
  52. <AssemblerScript>{$lua}
  53. function setStartStop()
  54. local controlMainForm = getMainForm()
  55. local addr = getAddressList().getMemoryRecordByDescription("PSP memory in CE(manual) - replace the address in here:").getCurrentAddress()
  56. local check = cheatEngineIs64Bit()
  57. local check2 = targetIs64Bit()
  58. if (check and check2) then
  59. start = string.format("%016X",addr + 0x8800000)
  60. st = string.format("%016X",addr + 0x8800000 + 25165824)
  61. else
  62. start = string.format("%08X",addr + 0x8800000)
  63. st = string.format("%08X",addr + 0x8800000 + 25165824)
  64. end
  65. controlMainForm.FromAddress.setCaption(start)
  66. controlMainForm.ToAddress.setCaption(st)
  67. end
  68. {$asm}
  69. [ENABLE]
  70. luaCall(setStartStop())
  71. [DISABLE]
  72. luaCall(setStartStop())
  73. </AssemblerScript>
  74. </CheatEntry>
  75. <CheatEntry>
  76. <ID>413268</ID>
  77. <Description>"Limit Scan Range(for HD remasters &amp; some homebrew)"</Description>
  78. <LastState/>
  79. <VariableType>Auto Assembler Script</VariableType>
  80. <AssemblerScript>{$lua}
  81. function setStartStop()
  82. local controlMainForm = getMainForm()
  83. local addr = getAddressList().getMemoryRecordByDescription("PSP memory in CE(manual) - replace the address in here:").getCurrentAddress()
  84. local check = cheatEngineIs64Bit()
  85. local check2 = targetIs64Bit()
  86. if (check and check2) then
  87. start = string.format("%016X",addr + 0x8800000)
  88. st = string.format("%016X",addr + 0x8800000 + 58720256)
  89. else
  90. start = string.format("%08X",addr + 0x8800000)
  91. st = string.format("%08X",addr + 0x8800000 + 58720256)
  92. end
  93. controlMainForm.FromAddress.setCaption(start)
  94. controlMainForm.ToAddress.setCaption(st)
  95. end
  96. {$asm}
  97. [ENABLE]
  98. luaCall(setStartStop())
  99. [DISABLE]
  100. luaCall(setStartStop())
  101. </AssemblerScript>
  102. </CheatEntry>
  103. <CheatEntry>
  104. <ID>413269</ID>
  105. <Description>"Select cheat entry and click on the square left from this text to convert address"</Description>
  106. <LastState/>
  107. <VariableType>Auto Assembler Script</VariableType>
  108. <AssemblerScript>{$lua}
  109. function PrintCW()
  110. selected = getAddressList().SelCount
  111. if (selected &gt; 0) then
  112. setable = getAddressList().getSelectedRecords().CurrentAddress
  113. all = getAddressList().Count
  114. j = 1
  115. local addrtable = {}
  116. for i = 0, all-1 do
  117. local sel = getAddressList().MemoryRecord[i].Selected
  118. local address = getAddressList().MemoryRecord[i].getCurrentAddress()
  119. if (sel and address &gt; 0) then
  120. print("")
  121. addrtable[j] = adr1
  122. local desc = getAddressList().MemoryRecord[i].getDescription()
  123. local val = getAddressList().MemoryRecord[i].Value
  124. local typ = getAddressList().MemoryRecord[i].Type
  125. local addr = getAddressList().getMemoryRecordByDescription("PSP memory in CE(manual) - replace the address in here:").getCurrentAddress()
  126. local disassembly = address - addr
  127. local cwcheat = disassembly + 0x8800000
  128. local check = cheatEngineIs64Bit()
  129. local check2 = targetIs64Bit()
  130. if (check and check2) then
  131. print("CE:",string.format("%016X",address)..", CWC:",string.format("%08X",cwcheat)..", Dissassembly:",string.format("%08X",disassembly)..", simple CWCheat:")
  132. else
  133. print("CE:",string.format("%08X",address)..", CWC:",string.format("%08X",cwcheat)..", Dissassembly:",string.format("%08X",disassembly)..", simple CWCheat:")
  134. end
  135. print("_C0 "..desc)
  136. local hex = getAddressList().MemoryRecord[i].ShowAsHex
  137. if (hex==false) then
  138. if (typ == 0) then
  139. val = string.format("%08X",val)
  140. cwcheat = string.format("%08X",cwcheat)
  141. end
  142. if (typ == 1) then
  143. val = string.format("%08X",val)
  144. cwcheat = string.format("%08X",cwcheat+0x10000000)
  145. end
  146. if (typ == 2) then
  147. val = string.format("%08X",val)
  148. cwcheat = string.format("%08X",cwcheat+0x20000000)
  149. end
  150. if (typ == 4) then
  151. local s=string.pack("f",val)
  152. local f=string.unpack("i4",s)
  153. val = string.format("%08X",f)
  154. cwcheat = string.format("%08X",cwcheat+0x20000000)
  155. end
  156. else
  157. if (typ == 0) then
  158. val = string.format("%08X",tonumber(val,16))
  159. cwcheat = string.format("%08X",cwcheat)
  160. end
  161. if (typ == 1) then
  162. val = string.format("%08X",tonumber(val,16))
  163. cwcheat = string.format("%08X",cwcheat+0x10000000)
  164. end
  165. if (typ == 2) then
  166. cwcheat = string.format("%08X",cwcheat+0x20000000)
  167. end
  168. if (typ == 4) then
  169. cwcheat = string.format("%08X",cwcheat+0x20000000)
  170. end
  171. end
  172. if (typ == 3 or typ &gt; 4) then
  173. print("Type unsupported")
  174. else
  175. print("_L 0x"..cwcheat,"0x"..val)
  176. end
  177. j=j+1
  178. end
  179. end
  180. else
  181. print("Select cheat entry first!")
  182. end
  183. end
  184. {$asm}
  185. [ENABLE]
  186. luaCall(PrintCW())
  187.  
  188. [DISABLE]
  189. luaCall(PrintCW())
  190. </AssemblerScript>
  191. </CheatEntry>
  192. </CheatEntries>
  193. </CheatEntry>
  194. <CheatEntry>
  195. <ID>413270</ID>
  196. <Description>"Manual Mode for x32 1.18+"</Description>
  197. <Options moHideChildren="1"/>
  198. <LastState/>
  199. <VariableType>Auto Assembler Script</VariableType>
  200. <AssemblerScript>[ENABLE]
  201. {$lua}
  202. if syntaxcheck then return end
  203.  
  204. function setStartStop()
  205. local memrec = getAddressList().getMemoryRecordByDescription("PSP memory base address")
  206. if not memrec then return end
  207.  
  208. local process = getAddress("PPSSPPWindows.exe")
  209. if not process then return end
  210.  
  211. local BaseAddress = readInteger(process + 0xCC65DC)
  212. if not BaseAddress then return end
  213.  
  214. memrec.Address = string.format("%016X", BaseAddress)
  215. end
  216.  
  217. setStartStop()
  218. {$asm}
  219. [DISABLE]
  220. {$lua}
  221. if syntaxcheck then return end
  222.  
  223. local memrec = getAddressList().getMemoryRecordByDescription("PSP memory base address")
  224. if memrec then
  225. memrec.Address = "0000000000000000"
  226. end
  227. {$asm}
  228. </AssemblerScript>
  229. <CheatEntries>
  230. <CheatEntry>
  231. <ID>413271</ID>
  232. <Description>"PSP memory base address"</Description>
  233. <ShowAsSigned>0</ShowAsSigned>
  234. <VariableType>4 Bytes</VariableType>
  235. <Address>0000000000000000</Address>
  236. </CheatEntry>
  237. <CheatEntry>
  238. <ID>413272</ID>
  239. <Description>"Limit Scan Range"</Description>
  240. <LastState/>
  241. <VariableType>Auto Assembler Script</VariableType>
  242. <AssemblerScript>{$lua}
  243. function setStartStop()
  244. local controlMainForm = getMainForm()
  245. local addr = getAddressList().getMemoryRecordByDescription("PSP memory in CE(manual) - replace the address in here:").getCurrentAddress()
  246. local check = cheatEngineIs64Bit()
  247. local check2 = targetIs64Bit()
  248. if (check and check2) then
  249. start = string.format("%016X",addr + 0x8800000)
  250. st = string.format("%016X",addr + 0x8800000 + 25165824)
  251. else
  252. start = string.format("%08X",addr + 0x8800000)
  253. st = string.format("%08X",addr + 0x8800000 + 25165824)
  254. end
  255. controlMainForm.FromAddress.setCaption(start)
  256. controlMainForm.ToAddress.setCaption(st)
  257. end
  258. {$asm}
  259. [ENABLE]
  260. luaCall(setStartStop())
  261. [DISABLE]
  262. luaCall(setStartStop())
  263. </AssemblerScript>
  264. </CheatEntry>
  265. <CheatEntry>
  266. <ID>413273</ID>
  267. <Description>"Limit Scan Range(for HD remasters &amp; some homebrew)"</Description>
  268. <LastState/>
  269. <VariableType>Auto Assembler Script</VariableType>
  270. <AssemblerScript>{$lua}
  271. function setStartStop()
  272. local controlMainForm = getMainForm()
  273. local addr = getAddressList().getMemoryRecordByDescription("PSP memory in CE(manual) - replace the address in here:").getCurrentAddress()
  274. local check = cheatEngineIs64Bit()
  275. local check2 = targetIs64Bit()
  276. if (check and check2) then
  277. start = string.format("%016X",addr + 0x8800000)
  278. st = string.format("%016X",addr + 0x8800000 + 58720256)
  279. else
  280. start = string.format("%08X",addr + 0x8800000)
  281. st = string.format("%08X",addr + 0x8800000 + 58720256)
  282. end
  283. controlMainForm.FromAddress.setCaption(start)
  284. controlMainForm.ToAddress.setCaption(st)
  285. end
  286. {$asm}
  287. [ENABLE]
  288. luaCall(setStartStop())
  289. [DISABLE]
  290. luaCall(setStartStop())
  291. </AssemblerScript>
  292. </CheatEntry>
  293. <CheatEntry>
  294. <ID>413274</ID>
  295. <Description>"Select cheat entry and click on the square left from this text to convert address"</Description>
  296. <LastState/>
  297. <VariableType>Auto Assembler Script</VariableType>
  298. <AssemblerScript>{$lua}
  299. function PrintCW()
  300. selected = getAddressList().SelCount
  301. if (selected &gt; 0) then
  302. setable = getAddressList().getSelectedRecords().CurrentAddress
  303. all = getAddressList().Count
  304. j = 1
  305. local addrtable = {}
  306. for i = 0, all-1 do
  307. local sel = getAddressList().MemoryRecord[i].Selected
  308. local address = getAddressList().MemoryRecord[i].getCurrentAddress()
  309. if (sel and address &gt; 0) then
  310. print("")
  311. addrtable[j] = adr1
  312. local desc = getAddressList().MemoryRecord[i].getDescription()
  313. local val = getAddressList().MemoryRecord[i].Value
  314. local typ = getAddressList().MemoryRecord[i].Type
  315. local addr = getAddressList().getMemoryRecordByDescription("PSP memory in CE(manual) - replace the address in here:").getCurrentAddress()
  316. local disassembly = address - addr
  317. local cwcheat = disassembly + 0x8800000
  318. local check = cheatEngineIs64Bit()
  319. local check2 = targetIs64Bit()
  320. if (check and check2) then
  321. print("CE:",string.format("%016X",address)..", CWC:",string.format("%08X",cwcheat)..", Dissassembly:",string.format("%08X",disassembly)..", simple CWCheat:")
  322. else
  323. print("CE:",string.format("%08X",address)..", CWC:",string.format("%08X",cwcheat)..", Dissassembly:",string.format("%08X",disassembly)..", simple CWCheat:")
  324. end
  325. print("_C0 "..desc)
  326. local hex = getAddressList().MemoryRecord[i].ShowAsHex
  327. if (hex==false) then
  328. if (typ == 0) then
  329. val = string.format("%08X",val)
  330. cwcheat = string.format("%08X",cwcheat)
  331. end
  332. if (typ == 1) then
  333. val = string.format("%08X",val)
  334. cwcheat = string.format("%08X",cwcheat+0x10000000)
  335. end
  336. if (typ == 2) then
  337. val = string.format("%08X",val)
  338. cwcheat = string.format("%08X",cwcheat+0x20000000)
  339. end
  340. if (typ == 4) then
  341. local s=string.pack("f",val)
  342. local f=string.unpack("i4",s)
  343. val = string.format("%08X",f)
  344. cwcheat = string.format("%08X",cwcheat+0x20000000)
  345. end
  346. else
  347. if (typ == 0) then
  348. val = string.format("%08X",tonumber(val,16))
  349. cwcheat = string.format("%08X",cwcheat)
  350. end
  351. if (typ == 1) then
  352. val = string.format("%08X",tonumber(val,16))
  353. cwcheat = string.format("%08X",cwcheat+0x10000000)
  354. end
  355. if (typ == 2) then
  356. cwcheat = string.format("%08X",cwcheat+0x20000000)
  357. end
  358. if (typ == 4) then
  359. cwcheat = string.format("%08X",cwcheat+0x20000000)
  360. end
  361. end
  362. if (typ == 3 or typ &gt; 4) then
  363. print("Type unsupported")
  364. else
  365. print("_L 0x"..cwcheat,"0x"..val)
  366. end
  367. j=j+1
  368. end
  369. end
  370. else
  371. print("Select cheat entry first!")
  372. end
  373. end
  374. {$asm}
  375. [ENABLE]
  376. luaCall(PrintCW())
  377.  
  378. [DISABLE]
  379. luaCall(PrintCW())
  380. </AssemblerScript>
  381. </CheatEntry>
  382. </CheatEntries>
  383. </CheatEntry>
  384. <CheatEntry>
  385. <ID>386547</ID>
  386. <Description>"DARK MODE"</Description>
  387. <LastState/>
  388. <VariableType>Auto Assembler Script</VariableType>
  389. <AssemblerScript>{$lua}
  390. [ENABLE]
  391. GetAddressList().Control[0].BackgroundColor=0x545454
  392. --getMainForm().color=0x545454
  393. [DISABLE]
  394. GetAddressList().Control[0].BackgroundColor=0xFFFFFF
  395. --getMainForm().color=0xf0f0f0
  396. </AssemblerScript>
  397. </CheatEntry>
  398. </CheatEntries>
  399. </CheatTable>
Advertisement
Add Comment
Please, Sign In to add comment