|
|
|||||||
| About Us | Register | FAQ | Members List | Calendar | Mark Forums Read |
![]() |
|
|
LinkBack | Thread Tools | Display Modes |
|
|
#1 (permalink) |
|
Registered User
Join Date: Feb 2008
Location: Berlin
Posts: 5
|
How to view memory values?
Hi,
I messed around a little bit with PEC and used some codes. Now I am interested to know which the _original_ values were before I changed them. Is there any way to take a look at that with ePSXe? I have several saves where the values were not changed and I know the addresses from having the codes. Someone told me, I needed some kind of "Memory Viewer"... Does ePSXe (or any plugin) provide one? Thanks in advance for any ideas. greetings abgreifen |
|
|
|
|
|
#2 (permalink) |
|
Moderator
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Join Date: Feb 2006
Location: Croatia
Posts: 3,805
|
For ePSXe AFAIK there are none, but you can use pSX's debugger.
__________________
|
|
|
|
|
|
#3 (permalink) |
|
Registered User
Join Date: Feb 2008
Location: Berlin
Posts: 5
|
Thanks for the information.
But I don't quite understand that I think. I downloaded this emulator and used Debug to view Memory. The list ends at some point and after that I have to scroll down by keys on my keyboard. Is there any way to "search and find" some values or am I just doing something wrong at the moment? Another information would be very nice, please ^^ |
|
|
|
|
|
#6 (permalink) |
|
Registered User
Join Date: Feb 2008
Location: Berlin
Posts: 5
|
Thank you for your answers.
PEC: I tried it, but I couldn't view a specific address, just search ranges - which didn't help me really, because I don't know how to use this... Dump: Perhaps I am just stupid, but I don't find such an option. I can save VRAM (as bin and open it in a HEX-editor), but it doesn't show me the "right" addresses. Do I have to do something else or something specific? |
|
|
|
|
|
#8 (permalink) |
|
Registered User
Join Date: Feb 2008
Location: Berlin
Posts: 5
|
Thanks.
Now that I did that I got a file, which I opened in Free HexEditor. I am searching for these addresses. D0014A40 52AD 80014A5A 00E0 So I assumed, I had to use 80014A5A for example (00E0 would be value I think). Doing so I got one address, but the value didn't tell me much. The other one, D0014A40 couldn't be found at all... Well, I know what they look like after using the code. Is it possible to open a save from ePSXe in pSX 1.13? |
|
|
|
|
|
#10 (permalink) |
|
Registered User
Join Date: Feb 2008
Location: Berlin
Posts: 5
|
Well, I don't know.
It was some kind of stupid laziness. My english patched and then burned Tales of Phantasia didn't work on my "real" PSX/PS2. So I tried ePSXe and of course I was to lazy to collect everything again and again (as I already have some saves on my console) and just used the codes above to have infinitive items - problem is that I cannot deactivate it again :/ So I search the values it has changed - I think, a savegame would be the right place to search... I thought of searching the address in a "no codes"-save and then take these values to replace the "cheated" ones... Opening a savegame from ePSXe works and I get some values. If I search for "80014A5A", I get offset "80014=0x1388e" => is this the same? Again, the "D0014A40" term cannot be found in any savegame. Am I using the wrong hex editor with free hexeditor 156? Is there any way to retrieve the original values at all? |
|
|
|
|
|
#11 (permalink) |
|
GameShark H4xxorz Elite
Join Date: Feb 2008
Location: Seattle WA
Posts: 39
|
Okay, you need a REAL reply here, from a REAL coder, so here it is:
First, be sure you have installed a hex-editor program and configured it through [pec] in the "Hex editor" tab, Press ctrl-k with PEC running during the game to get to the [pec] configurator, and go to the "hex-editor" tab. Use the button to the immediate-right of the field named "Executeable-filename :" (...) to find the path to your hex editor. Locate the exe file and hit OK. Once set, pressing ctrl-j during gameplay will halt the emulation and produce a temporary memory dump of the current PSX memory using your configured hex-editor as a template. I recommend the hex-editor XVI32, as it works perfectly with this emulation, as well as many other uses. Simply tell it to go to the desired address in the "address" title-bar menu selection (on top, with file, edit, etc....), and then you can view it at the instant you halted the program by pressing ctrl-J. Enter the address as hex (like you would for a gameshark code, just omit the first two digits [80xxxxxxx]), and you can see the state of the address as it is normally, so long as you did not activate a code to change it. Otherwise, hit ctrl-D, and it will dump the current memory into a file into the ePSXe directory, and you can search for the address in that file, but a hex-editor will still be necessary to avoid unnecessary byte-counting by hand, and to verify you are looking at the right bytes in the file. You should only be using byte offsets for hacking patches, or reverse-engineering gamesaves from their original files. An easier way is to change values in-game, and save those to make a clean save and bypass any necessary offsets, as ePSXE stores memory card data in a cache, writing only when it is closed (likely to make up for potential corruption as a result of lag in emulation...Keeps the data in-sync to avoid write-errors before making a hard-write?).... "If I search for "80014A5A", I get offset "80014=0x1388e" => is this the same? Again, the "D0014A40" term cannot be found in any savegame." No, it is not the same, and you will not find the same address in the game as you will in a save file. Also remember that D0xxxxxx is not a valid address at all. the prefix "D0" is an if-then command for a gameshark, or emulations of such. All real addresses are prefixed with "80" in this environment, or 0x, in the actual sense. You are looking at the code in the wrong way, but I don't blame you at all, it's almost meant to be confusing at first. Simply put, use the hex-editor I recommend and configured to pec, and try the hotkeys. search for the address of the "gameshark code" you were intending to read the actual value of, in actual real-time memory, without executing any code that may alter that address....preferably, using no codes at all, and read the real-time memory dump when you hit ctrl-J. Use the editor to locate the address int he file and it will match the address of your code....again, beware of reverse-bytes...but in any case, it's as simple as that... For example, I want to verify the day modifier for Gran Turismo 2, say the gameshark code is 801C99D8, so, using the gameshark code, I interrupt the game by hitting ctrl-J to generate a memory dump on my hex-editor. I tell it to go to the address "1C99D8", and there I am. I can say it's day 10, or day 255....I close the editor and allow it to save the changes, and the emulation resumes with the modified value(s). It's really just that easy. If your "gameshark" or d-word address is 8015CD68, press ctrl-J during gameplay and tell the editor to goto "0x15CD68" or just "15CD68", and in almost any editor, the value should be highlighted for you, right at the location you specified. If you need any further help, preferably reply to this post, I'll be glad to help you locate the original values for what you are looking for. Keep in mind, some games use "different math", meaning some games write data to memory in order of 1234 [hex], as you'd expect, but games such as Gran Turismo 2, write the same data as DEBC [hex] (inverted 2143 in x16h), via reverse-inverted bytes. This may be greek to you initially, but a little practice and you'll get it. I hope this is of some help to you... |
|
|
|
|
|
#12 (permalink) |
|
Registered User
Join Date: Jul 2008
Location: USA, FL
Posts: 1
|
Plz help if can plz and ty
Codemonkey ty for your information before it has helped me alot but i was also wondering if there was a possibility of identifying what address is what. Meaning if i have the gameshark code then i can find the address fine and do whatever i feel with it but if im trying to find an item/address and i do not know what the address is before hand how do i find it. Example if i was playing star ocean and i wanted to change my fol to infinite and i do not know the gameshark code for that. How do I find it without looking up on the web? Ive been messing around and i see no simple way for a nub to figure it out, but i assume there has to be away cause there a many of lists for games. for example star ocean 8009BFB0 FFFF is infinite fol but how did the first person figure out that that specific address(9BFB0 i think...) is fol. Sorry if this is kinda confusing im purely a nub and just been messing around trial and error so im having a bit of a hard time explaining.
|
|
|
|
|
|
#13 (permalink) |
|
GameShark H4xxorz Elite
Join Date: Feb 2008
Location: Seattle WA
Posts: 39
|
Don't worry, I completely understand your question, and I'll answer as best as I can:
Many people find gameshark codes by using the "shark-link" cable system available separately. This also allows you to dump your codes to your PC and back to the gameshark (if the text file you are using is in the proper format). Others use emulations such as ePSXe along with PEC (Playstation Emulation Cheater) to get these codes. PEC works just like the gameshark does, except you have the ability to search for your own codes quite easily. Search Google for the emulator, the emulator BIOS file (SCPH1001.bin is preferred), download "pec-chu" and set it up as a video plugin. If you followed directions, you should be ready to go, and you simply need only to insert your game into your cd-rom drive and play the game on your PC. Using the emulation and the "gameshark" plugin, you can find your own codes. Sometimes there are many different versions of a game, which result in different codes. For example, "Gran Turismo 2" has three different versions that were released just for the USA region alone. If you have a code that you know works for your version, and can match it from a code for another version that works the same way, you can do what is called "porting". "Porting" a code works as follows: (game) v1.0 infinite lives: 800974FB 0003 (game) v1.1 infinite lives: 800963EB 0003 The difference (specifically called an "offset") between these two is a hexadecimal value of -0x001110 (an unusual example, usually higher versions add more code, so the offset would be positive, but this happens on occasion, depending on the game). If you use a hex-calculator, you can port another similar code from a different version: (game) v1.0 infinite money: 800965AA FFFF Try this as practice. If you ported the code correctly for v1.1, you should come up with this: (game) v1.1 infinite money: 8009549A FFFF This does not always work as sometimes the changes made in a game will move an entire area around. Your best bet is to use emulation (yes your cd-rom drive can read PSX games just fine), and use the emulator to find you the codes you want. You can then transfer them to your gameshark if you wish. If you run into a stalemate with finding a code, look at your other codes for a similar one that may be int eh same area of memory. The closer it is to a code you already have, the more likely it is probably the code you want. I found most of my codes for "Driver" and "Driver 2" by just probing addresses near to codes I already had, and observing an effect, if any. Eventually things began to show, and I worked on the values and found good codes with good values for them, and that is why I have the largest archive of unpublished codes for that game than anyone. Over time, I understood the program better and better, and now I am god on both, even if a little out of practice. Many people would not have some codes for many games if I hadn't ported the codes for them. And it's "Noob" not "nub" ![]() ![]() ...but that's okay. If you need more help, just post, I can even find the code for you, but I'd prefer to teach you how to find it yourself.
Last edited by Code Monkey; 4 Weeks Ago at 09:45. |
|
|
|
![]() |
| Thread Tools | |
| Display Modes | |
|
|