Nirvada

PPSSPP Printing stuff script

Feb 23rd, 2026
14
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.06 KB | None | 0 0
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <CheatTable>
  3. <CheatEntries>
  4. <CheatEntry>
  5. <ID>415324</ID>
  6. <Description>"C.E Address to CwCheat Address"</Description>
  7. <LastState/>
  8. <VariableType>Auto Assembler Script</VariableType>
  9. <AssemblerScript>[ENABLE]
  10. {$lua}
  11.  
  12. local al = getAddressList()
  13.  
  14. -- Resolve dynamic base
  15. local base = getAddress(readQword('PPSSPPWindows64.exe+115D048'))
  16.  
  17. for i = 0, al.Count - 1 do
  18. local record = al.getMemoryRecord(i)
  19.  
  20. if record.CurrentAddress then
  21. local offset = (record.CurrentAddress - base) - 0x08800000
  22. print(string.format("%07X", offset))
  23. end
  24. end
  25.  
  26. [DISABLE]
  27. {$asm}
  28. </AssemblerScript>
  29. </CheatEntry>
  30. <CheatEntry>
  31. <ID>415322</ID>
  32. <Description>"PPSSPP Print Description's Name"</Description>
  33. <LastState/>
  34. <VariableType>Auto Assembler Script</VariableType>
  35. <AssemblerScript>[ENABLE]
  36. {$lua}
  37.  
  38. local al = getAddressList()
  39. for i = 0, al.Count - 1 do
  40. local record = al.getMemoryRecord(i)
  41. print(record.Description or "N/A")
  42. end
  43. getMemoryRecordByID(memrec.ID).Active = false
  44. [DISABLE]
  45. {$lua}
  46. </AssemblerScript>
  47. </CheatEntry>
  48. <CheatEntry>
  49. <ID>415325</ID>
  50. <Description>"PPSSPP Print Value old"</Description>
  51. <LastState/>
  52. <VariableType>Auto Assembler Script</VariableType>
  53. <AssemblerScript>[ENABLE]
  54. {$lua}
  55.  
  56. local al = getAddressList()
  57.  
  58. -- Resolve dynamic base
  59. local base = getAddress(readQword('PPSSPPWindows64.exe+115D048'))
  60.  
  61. for i = 0, al.Count - 1 do
  62. local record = al.getMemoryRecord(i)
  63.  
  64. if record and record.CurrentAddress then
  65.  
  66. local addr = record.CurrentAddress
  67. local offset = (addr - base) - 0x08800000
  68.  
  69. local value = ""
  70.  
  71. if record.Type == vtByte then
  72. value = readBytes(addr)
  73. elseif record.Type == vtWord then
  74. value = readSmallInteger(addr)
  75. elseif record.Type == vtDword then
  76. value = readInteger(addr)
  77. elseif record.Type == vtQword then
  78. value = readQword(addr)
  79. elseif record.Type == vtFloat then
  80. value = readFloat(addr)
  81. elseif record.Type == vtDouble then
  82. value = readDouble(addr)
  83.  
  84. -- ✅ STRING SUPPORT
  85. elseif record.Type == vtString then
  86. local strLength = record.StringSize or 32
  87. value = readString(addr, strLength, false) or "N/A"
  88. end
  89.  
  90. -- ✅ Convert numeric values to HEX automatically
  91. local displayValue = value
  92. if type(value) == "number" then
  93. displayValue = string.format("%X", value)
  94. end
  95.  
  96. print(string.format(
  97. "%s",
  98. tostring(displayValue)
  99. ))
  100. end
  101. end
  102. getMemoryRecordByID(memrec.ID).Active = false
  103. [DISABLE]
  104. {$asm}
  105. </AssemblerScript>
  106. </CheatEntry>
  107. <CheatEntry>
  108. <ID>415326</ID>
  109. <Description>"PPSSPP Print Value"</Description>
  110. <LastState/>
  111. <VariableType>Auto Assembler Script</VariableType>
  112. <AssemblerScript>[ENABLE]
  113. {$lua}
  114.  
  115. local al = getAddressList()
  116.  
  117. -- Resolve dynamic base
  118. local base = getAddress(readQword('PPSSPPWindows64.exe+115D048'))
  119.  
  120. for i = 0, al.Count - 1 do
  121. local record = al.getMemoryRecord(i)
  122.  
  123. if record and record.CurrentAddress then
  124.  
  125. local addr = record.CurrentAddress
  126. local offset = (addr - base) - 0x08800000
  127.  
  128. local value = ""
  129.  
  130. if record.Type == vtByte then
  131. value = readBytes(addr)
  132. elseif record.Type == vtWord then
  133. value = readSmallInteger(addr)
  134. elseif record.Type == vtDword then
  135. value = readInteger(addr)
  136. elseif record.Type == vtQword then
  137. value = readQword(addr)
  138. elseif record.Type == vtFloat then
  139. value = readFloat(addr)
  140. elseif record.Type == vtDouble then
  141. value = readDouble(addr)
  142.  
  143. -- ✅ STRING SUPPORT
  144. elseif record.Type == vtString then
  145. local strLength = record.StringSize or 32
  146. value = readString(addr, strLength, false) or "N/A"
  147. end
  148.  
  149. -- ✅ Convert numeric values to HEX automatically
  150. local displayValue = value
  151.  
  152. if type(value) == "number" then
  153.  
  154. -- Force size based on record type
  155. if record.Type == vtByte then
  156. displayValue = string.format("%02X", value &amp; 0xFF)
  157.  
  158. elseif record.Type == vtWord then
  159. displayValue = string.format("%04X", value &amp; 0xFFFF)
  160.  
  161. elseif record.Type == vtDword then
  162. displayValue = string.format("%08X", value &amp; 0xFFFFFFFF)
  163.  
  164. elseif record.Type == vtQword then
  165. displayValue = string.format("%016X", value)
  166.  
  167. else
  168. -- Default fallback
  169. displayValue = string.format("%X", value)
  170. end
  171. end
  172.  
  173. print(string.format(
  174. "%s",
  175. tostring(displayValue)
  176. ))
  177. end
  178. end
  179. getMemoryRecordByID(memrec.ID).Active = false
  180. [DISABLE]
  181. {$asm}
  182. </AssemblerScript>
  183. </CheatEntry>
  184. </CheatEntries>
  185. </CheatTable>
  186.  
Advertisement
Add Comment
Please, Sign In to add comment