Sorry, I don't like ePSXe too much, only use it when I have to...
What you are about to read/see is based on using Windows XP.
First off, my method here requires you to get the conversion formula from either:
1. Booting the game on real hardware, with a GameShark Pro OR
2. Being able to re-create an already made GameShark code
pSX v1.13 with BIOS and possibly 'that DLL'
maybe Daemon Tools Lite
1. Load the game, for this example, it will be "Blast Chamber USA PS1"
2. Open Cheat Engine and press the small button to select psxfin.exe
3. Change "Value Type" to byte (or 2 bytes just depends)
4. Now, the goal is to re-create a GameShark code using Cheat Engine...
In this example I see that the page for Blast Chamber USA PS1 have these codes:
I will choose "Player 1 Infinite Time" 800B438A 0037.
1 Infinite Chamber Time 800B504E 00B4
2 Infinite P1 Time 800B438A 0037
3 Infinite P2 Time 800B44F6 0037
4 Infinite P3 Time 800B4662 0037
5 Infinite P4 Time 800B47CE 0037
6 Infinite Lives 800B438C 0009
Really this code should be 300B438A 0037...
5. Open the Calculator by Start->Run->calc and enter key then go to View->Scientific
GameShark - 300B438A 0037 Means
Address - 300B438A
Value - 0037
The code's value can be converted from Hex to Decimal by clicking the circle that says "Hex" and entering in 37, then clicking "Dec" circle
After Clicking Dec...
Value = 55 Decimal
6. After starting a level, the first thing I see is the time starts off at 55.
So, that's where I will start my first scan...
A good thing about pSX is (by default) soon as you click off of the screen, the emulator pauses.
So I click off of the emulator to pause the action, and make a byte scan for the decimal value of 55
There are 15,000 possible codes...
7. You should know how to do these simple scans if you are reading this...
I'm lazy, so my way (to avoid typing) would be let the value go down by 1 (54) and search "Decreased value by 1" and repeat
14 possible codes...
8. In this example, I repeat step 7 and let the value go down to 53 and just click next scan (since it once again decreased by 1)
Only 9 possible codes, so it's just time to start testing now...
In the "Found Addresses" at the top to Cheat Engine hit Ctrl+A to select all the codes, or double click a single one.
Click the small red arrow to send all possible codes to the bottom so you can lock the values.
9. Click a code one at a time (or not) to "Freeze" the value and return to the game to see if it's the proper code.
In this example, the very first one was the correct one...
If it's not for you, simply uncheck that wrong address and freeze the next one and return to the game for testing etc.
10. The hard part is over with, now you have a code in Cheat Engine Address and the same code in GameShark Address.
The only thing you need to do now is go back to your HEX calculator and find the difference between the two...
In this example: CE - _ = GS (Cheat Engine Minus Something Equals GameShark)
CE Code - 1C343AA
GS Code - 300B438A
The 30/80 of a GameShark code can be taken away from the equation 30 means it's a Byte code, and 80 means 2 bytes are being modified.
CE - GS = Difference
1C343AA - B438A = 1B80020
So that's the "Something" for the formula above.
CE - _ = GS
CE - 1B80020 = GS
GS + 1B80020 = CE
Note that you have to do this with each game, even different regions of the same game.
Also note that if a code freezes the emulator, the address may not even be the same when you re-open it and load your codelist...
11. So to test my formula for this game I've made a code with CE and am ready to convert it for GameShark usage...
CE Code = 01C0E638
Steps 1-10 determined that CE - 1B80020 = GS
CE - ThatSpecialSomething = GameShark
1C0E638 - 1B80020 = 8E618
Remember to add either the 30 for byte or 80 for two bytes...
And if your code is not EIGHT characters, then add a 0 after the 30/80
So 308E618 becomes 3008E618 address value of 6
Sorry if that's confusing, I made it very quickly...
To test the code, either use ePSXe and PEC, or use pSX emulator and a cheat disc such as CodeBreaker. Or even better, boot the cd on real hardware and test it out.