More actions
No edit summary |
No edit summary |
||
(12 intermediate revisions by the same user not shown) | |||
Line 15: | Line 15: | ||
|license=Unlicense | |license=Unlicense | ||
|download=https://dlhb.gamebrew.org/vitahomebrews/gohanmemvita.7z | |download=https://dlhb.gamebrew.org/vitahomebrews/gohanmemvita.7z | ||
|website= | |website=https://github.com/OneRice07/GoHANmem | ||
|source=https://github.com/OneRice07/GoHANmem | |source=https://github.com/OneRice07/GoHANmem | ||
}} | }} | ||
Line 23: | Line 23: | ||
Unzip and copy the files to PS Vita memory card root ux0: according to the directory structure. | Unzip and copy the files to PS Vita memory card root ux0: according to the directory structure. | ||
==User guide== | |||
While in game, press Right+Select or L+Start (or use key.txt to customize key, default is the Up+Start) to open the modifier. | While in game, press Right+Select or L+Start (or use key.txt to customize key, default is the Up+Start) to open the modifier. | ||
In the modifier, press Select or Start to return to the game. | In the modifier, press Select or Start to return to the game. | ||
PS:Set English language | PS: Set English language [语言]-[English] | ||
===Basic tutorial=== | ===Basic tutorial=== | ||
In the game, write down the value you want to modify, for example, 86986 gold coins. | In the game, write down the value you want to modify, for example, 86986 gold coins. | ||
Line 46: | Line 46: | ||
Currently it supports normal code, pointer code and loop code. | Currently it supports normal code, pointer code and loop code. | ||
@code type, address type, address value, address offset direction, address offset amount, loop count, loop address increment direction, loop address increment each time, byte count, value, value increment direction, value per increment | @code type, address type, address value, address offset direction, | ||
address offset amount, loop count, loop address increment direction, | |||
loop address increment each time, byte count, value, value increment | |||
direction, value per increment | |||
*Code type: 0 normal code, 1 | *Code type: 0 normal code, 1 loop code. | ||
*Address type: 0 normal address, 1 pointer address. | *Address type: 0 normal address, 1 pointer address. | ||
*Address value: 0x81222222 something like this. | *Address value: 0x81222222 something like this. | ||
*Offset direction: 0 for negative offset -, 1 for positive offset +. | *Offset direction: 0 for negative offset -, 1 for positive offset +. | ||
* | *Loop count: Decimal value. Applies only to loop code. Does not work with normal code, so you can just write 0x00000000. | ||
*Loop address increment: 0x81222222 something like this. Applies only to loop code. Does not work with normal code, | *Loop address increment: 0x81222222 something like this. Applies only to loop code. Does not work with normal code, so you can just write 0x00000000. | ||
*Byte count: The number of bytes of the value to be modified, in decimal, between 1 and 4. | *Byte count: The number of bytes of the value to be modified, in decimal, between 1 and 4. | ||
*Numeric value: The value to be modified, decimal. | *Numeric value: The value to be modified, decimal. | ||
*Value per increment: | *Value per increment: Decimal value. Only works with loop code. Does not work with normal code, so you can just write 0. | ||
===Example=== | ===Example=== | ||
Line 63: | Line 66: | ||
#gold888888 | #gold888888 | ||
@0,0,0x81D433E0,0,0x00000000,0,0,0x00000000,4,88888888,0,0 | @0,0,0x81D433E0,0,0x00000000,0,0,0x00000000,4,88888888,0,0 | ||
Description: | |||
Note that other 0 values also need to be filled in accordance with the format | Description: Normal code, address 0x81D433E0, modify 4 bytes, | ||
value is 88888888 in decimal. Note that other 0 values also | |||
need to be filled in accordance with the format. | |||
Pointer code format | Pointer code format | ||
#gold888888 | #gold888888 | ||
@0,1,0x845042A5,1,0x00000008,0,0,0x00000000,4,88888888,0,0 | @0,1,0x845042A5,1,0x00000008,0,0,0x00000000,4,88888888,0,0 | ||
Description: | |||
Description: Pointer code, the value within the address | |||
0x845042A5 is the new address, for example, 0x81335561 with | |||
positive offset 0x00000008, that is, 0x81335569, from address | |||
0x81335569 modify 4 bytes, value is 88888888 in decimal. | |||
Loop code format | Loop code format | ||
#Goldencoin888888 | #Goldencoin888888 | ||
@1,0,0x81D433E8,0,0x00000002,5,1,0x00000100,4,1000,1,20 | @1,0,0x81D433E8,0,0x00000002,5,1,0x00000100,4,1000,1,20 | ||
Description: Loop code, | |||
The first modification | Description: Loop code, address 0x81D433E8 with negative | ||
offset 0x00000002 is 0x81D433E6, loop 5 times to modify, | |||
each address increment 0x00000100, modify 4 bytes, the | |||
initial value of 1000, each positive increase in value 20. | |||
The first modification Address 0x81D433E6 4 bytes value 1000 | |||
Second modification Address 0x81D434E6 4 bytes Value 1020 | Second modification Address 0x81D434E6 4 bytes Value 1020 | ||
Third modification Address 0x81D435E6 4 bytes Value 1040 | Third modification Address 0x81D435E6 4 bytes Value 1040 | ||
Line 87: | Line 101: | ||
After that, you can either write your own GoHANmem code, or modify the extracted memory file (remove the "_00x" after the file name), transfer it back to the ux0:data/GoHANmem/mem/ on the Vita, and import the file into the memory in the "Memory" management page (the starting address must be the same as the file, and the end address must be less than or equal to the file size boundary). | After that, you can either write your own GoHANmem code, or modify the extracted memory file (remove the "_00x" after the file name), transfer it back to the ux0:data/GoHANmem/mem/ on the Vita, and import the file into the memory in the "Memory" management page (the starting address must be the same as the file, and the end address must be less than or equal to the file size boundary). | ||
GoHANmem code example | GoHANmem code (example with Chinese characters): | ||
#YellowSoul99999999 | #YellowSoul99999999 | ||
Line 100: | Line 114: | ||
When saving in Notepad under windows, just select ANSI encoding. | When saving in Notepad under windows, just select ANSI encoding. | ||
===Importing | ===Importing memory files=== | ||
The file name format is | The file name format is | ||
GameID_mem_0xExtraction Range Start Address.bin | GameID_mem_0xExtraction Range Start Address.bin | ||
Line 115: | Line 129: | ||
Each time it is extracted, "_00x" is automatically added to the end of the file name. | Each time it is extracted, "_00x" is automatically added to the end of the file name. | ||
The memory files can be found in ux0:data/GoHANmem/mem/. | The memory files can be found in ux0:data/GoHANmem/mem/, which you can copy over to your computer. | ||
After you finished modifying the file, remove the suffix number "_00x" and import it back into the PSV memory with the "Recover Memory" function. | |||
Before using "Recover Memory", make sure the file name PCSB00294_mem_0x84D00000.bin matches the "Extraction Range Start" value. | Before using "Recover Memory", make sure the file name PCSB00294_mem_0x84D00000.bin matches the "Extraction Range Start" value. | ||
Line 144: | Line 158: | ||
==Screenshots== | ==Screenshots== | ||
gohanmemvita3.png | https://dlhb.gamebrew.org/vitahomebrews/gohanmemvita3.png | ||
gohanmemvita4.png | https://dlhb.gamebrew.org/vitahomebrews/gohanmemvita4.png | ||
gohanmemvita5.png | https://dlhb.gamebrew.org/vitahomebrews/gohanmemvita5.png | ||
gohanmemvita6.png | https://dlhb.gamebrew.org/vitahomebrews/gohanmemvita6.png | ||
gohanmemvita7.png | https://dlhb.gamebrew.org/vitahomebrews/gohanmemvita7.png | ||
==Changelog== | ==Changelog== | ||
Line 176: | Line 190: | ||
* GitHub - https://github.com/OneRice07/GoHANmem | * GitHub - https://github.com/OneRice07/GoHANmem | ||
* VitaDB - https://vitadb.rinnegatamante.it/#/info/119 | * VitaDB - https://vitadb.rinnegatamante.it/#/info/119 | ||
<!---This page is mostly done by google translate.....---> |
Latest revision as of 06:53, 7 Ocak 2023
GoHANmem | |
---|---|
General | |
Author | OneRice07 |
Type | Plugins |
Version | 3.01 |
License | Unlicense |
Last Updated | 2017/08/04 |
Links | |
Download | |
Website | |
Source | |
GoHANmem is a memory editor for PS Vita. Allows to edit game memory in realtime.
Installation
Unzip and copy the files to PS Vita memory card root ux0: according to the directory structure.
User guide
While in game, press Right+Select or L+Start (or use key.txt to customize key, default is the Up+Start) to open the modifier.
In the modifier, press Select or Start to return to the game.
PS: Set English language [语言]-[English]
Basic tutorial
In the game, write down the value you want to modify, for example, 86986 gold coins.
Use the hotkey to open the modifier and search for 86986, you will get several matching addresses.
Return to the game and change the value of the gold coins, such as purchasing items, now the gold coins become 85335.
Use the hotkey to bring up the modifier again, search for 85335, and you will also get the pairing address, but the pairing number will be less than before. If there are still many available pairs, repeat the previous step.
When there are only one or two pairs remain, you can start modifying the value corresponding to these two pairing addresses, for example, change it to 999999999.
If succeed, the number of gold coins will be 999999999.
Cheat code format
Currently it supports normal code, pointer code and loop code.
@code type, address type, address value, address offset direction, address offset amount, loop count, loop address increment direction, loop address increment each time, byte count, value, value increment direction, value per increment
- Code type: 0 normal code, 1 loop code.
- Address type: 0 normal address, 1 pointer address.
- Address value: 0x81222222 something like this.
- Offset direction: 0 for negative offset -, 1 for positive offset +.
- Loop count: Decimal value. Applies only to loop code. Does not work with normal code, so you can just write 0x00000000.
- Loop address increment: 0x81222222 something like this. Applies only to loop code. Does not work with normal code, so you can just write 0x00000000.
- Byte count: The number of bytes of the value to be modified, in decimal, between 1 and 4.
- Numeric value: The value to be modified, decimal.
- Value per increment: Decimal value. Only works with loop code. Does not work with normal code, so you can just write 0.
Example
Normal code format #gold888888 @0,0,0x81D433E0,0,0x00000000,0,0,0x00000000,4,88888888,0,0 Description: Normal code, address 0x81D433E0, modify 4 bytes, value is 88888888 in decimal. Note that other 0 values also need to be filled in accordance with the format. Pointer code format #gold888888 @0,1,0x845042A5,1,0x00000008,0,0,0x00000000,4,88888888,0,0 Description: Pointer code, the value within the address 0x845042A5 is the new address, for example, 0x81335561 with positive offset 0x00000008, that is, 0x81335569, from address 0x81335569 modify 4 bytes, value is 88888888 in decimal. Loop code format #Goldencoin888888 @1,0,0x81D433E8,0,0x00000002,5,1,0x00000100,4,1000,1,20 Description: Loop code, address 0x81D433E8 with negative offset 0x00000002 is 0x81D433E6, loop 5 times to modify, each address increment 0x00000100, modify 4 bytes, the initial value of 1000, each positive increase in value 20. The first modification Address 0x81D433E6 4 bytes value 1000 Second modification Address 0x81D434E6 4 bytes Value 1020 Third modification Address 0x81D435E6 4 bytes Value 1040 Fourth modification Address 0x81D436E6 4 bytes Value 1060 Fifth modification Address 0x81D437E6 4 bytes Value 1080
Other notes
You can use the "Memory Extraction" function to extract the memory (with "_00x" at the end of the file name), and transfer them to the computer for analyze.
After that, you can either write your own GoHANmem code, or modify the extracted memory file (remove the "_00x" after the file name), transfer it back to the ux0:data/GoHANmem/mem/ on the Vita, and import the file into the memory in the "Memory" management page (the starting address must be the same as the file, and the end address must be less than or equal to the file size boundary).
GoHANmem code (example with Chinese characters):
#YellowSoul99999999 @0,0,0x81D433E0,0,0x00000000,0,0,0x00000000,4,999999999,0,0 #Infinite Magic @0,0,0x81D491F0,0,0x00000000,0,0,0x00000000,4,262148000,0,0 #无限InfiniteHP1 @0,0,0x81D491CC,0,0x00000000,0,0,0x00000000,4,655370000,0,0 #无限InfiniteHP2 @0,0,0x81D491E0,0,0x00000000,0,0,0x00000000,4,655370000,0,0
When saving in Notepad under windows, just select ANSI encoding.
Importing memory files
The file name format is
GameID_mem_0xExtraction Range Start Address.bin
For example
PCSB00294_mem_0x84D00000.bin
This file can be obtained using the "Extract Memory" function:
PCSB00294_mem_0x84D00000_001.bin PCSB00294_mem_0x84D00000_002.bin PCSB00294_mem_0x84D00000_003.bin
Each time it is extracted, "_00x" is automatically added to the end of the file name.
The memory files can be found in ux0:data/GoHANmem/mem/, which you can copy over to your computer.
After you finished modifying the file, remove the suffix number "_00x" and import it back into the PSV memory with the "Recover Memory" function.
Before using "Recover Memory", make sure the file name PCSB00294_mem_0x84D00000.bin matches the "Extraction Range Start" value.
key.txt
key.txt location is ux0:data/GoHANmem/cfg/key.txt.
If key.txt does not exist or the configuration content of key.txt is incorrect, it will revert to the default hotkeys Right+Select or L+Start.
The key.txt configuration requires only two capital letters to be modified (A-L).
For example, if you want to set hotkeys to Up+Start, write CB at the beginning of key.txt and then save it.
- (A) Select button
- (B) Start button
- (C) D-Pad Up
- (D) D-Pad Right
- (E) D-Pad Down
- (F) D-Pad Left
- (G) Left trigger
- (H) Right trigger
- (I) Triangle button
- (J) Circle button
- (K) Cross button
- (L) Square button
Screenshots
Changelog
v3.01
- Added Thank you list, thank you to everyone who gave funding or technical help.
- Other corrections
- This is the end of this project, if there is a chance later, see you in the next project!
v3.00beta
- Redefined the code format of GoHANmem, now supports normal code, pointer code and loop code
- Added the function of [Restore Memory].
- Added customizable call-out button
- Fixed the function of [Archive Restore].
- Other fixes
v2.00
- Added English language.
v1.01beta1
- First Release.
External links