Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

GoHANmem Vita: Difference between revisions

From GameBrew
No edit summary
No edit summary
 
(11 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 : [语言]-[English]
PS: Set English language [语言]-[English]


==User guide==
===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 cyclic code.
*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 +.
*Number of cycles: Decimal value. Applies only in cyclic code. Does not work with normal code, but needs to be filled with this, available as 0.
*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, but this needs to be filled, in that case use 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.
*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: The decimal value. Only works with loop code. Does not work with normal code, but needs to be filled with this, available as 0.
*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: Common code, address 0x81D433E0, modify 4 bytes, the value of decimal 88888888.
 
Note that other 0 values also need to be filled in accordance with the format, otherwise the execution will be wrong.
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: ordinary pointer code, the value within the address 0x845042A5 is the new address, for example, 0x81335561,forward offset 0x00000008, that is, 0x81335569, address 0x81335569 modified 4 bytes, the value of decimal value 88888888.
 
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, ordinary address 0x81D433E8, negative offset 0x00000002, that is, 0x81D433E6, loop 5 times to modify, each address increment 0x00000100, modify byte 4, the initial value of 1000, each positive increase in value 20.
 
The first modification address 0x81D433E6 4 bytes value 1000
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 (if there are any Chinese characters):
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 the extracted memory files===
===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.


Then use your computer to analyze and modify the file, then remove the suffix number "_001", etc., and you can use "Recover Memory" to import it back into the PSV memory.
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 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
Gohanmemvita2.png
General
AuthorOneRice07
TypePlugins
Version3.01
LicenseUnlicense
Last Updated2017/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

gohanmemvita3.png

gohanmemvita4.png

gohanmemvita5.png

gohanmemvita6.png

gohanmemvita7.png

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


Advertising: