I tried to make an account at 'AssemblerGames' to post this because it seemed more fitting of a place, but they either don't like my name or the mods don't check their stuff enough.
-
I've been reverse engineering an odd little PS1 title called 'Battle Hunter' for the past two years, and after figuring out the file formats I decided to take a crack at reversing the assembled code (Pre warning I'm not too familiar with the general terminology for these things, as I've learnt what I know as I go).
I noticed that the EXE is bigger than I expected, so I decided to load it up in a hex editor, only to find that there's a bunch of method names for the games code stored inside, for example 'HntSysFontInit(HNTFONTst)'. It also has a bunch of strings and what look like variable names. I wonder if this could be left over debugging information, or as I've heard a .SYM file. I've read in a few places that developers normally strip this information from the EXE, but as the game is from the 'SuperLite 1500' series, I'd be willing to bet they didn't bother.
Anyone heard of anything like this, and if so is it possible to split this data from the code? Would someone be willing to tell me how?
.SYM files inside PS1 exe?
-
- What is PSXDEV?
- Posts: 2
- Joined: Sep 16, 2018
- I am a: Programmer
- PlayStation Model: SCPH-5502
-
LameGuy64 Verified
- Psy-Q Enthusiast
- Posts: 388
- Joined: Apr 10, 2013
- I am a: Hobbyist Game Developer
- Motto: Commercial or not, play it!
- PlayStation Model: H2000/7000
- Location: Philippines
- Contact:
That's interesting, with the standard Programmer's Tool SDK the symbol data is usually generated to a separate file with a .sym file extension and symbols are typically not stored inside of a PS-EXE.
It might be a PS-EXE created using CodeWarrior which uses its own compiler (MIPSPRO) and from what I remember the last time I used it, it does not produce a separate symbols file. I'm going to check again when I get home.
It might be a PS-EXE created using CodeWarrior which uses its own compiler (MIPSPRO) and from what I remember the last time I used it, it does not produce a separate symbols file. I'm going to check again when I get home.
Please don't forget to include my name if you share my work around. Credit where it is due.
Dev. Console: SCPH-7000 with SCPH-7501 ROM, MM3, PAL color fix, Direct AV ports, DB-9 port for Serial I/O, and a Xplorer FX with Caetla 0.35.
DTL-H2000 PC: Dell Optiplex GX110, Windows 98SE & Windows XP, Pentium III 933MHz, 384MB SDRAM, ATI Radeon 7000 VE 64MB, Soundblaster Audigy, 40GB Seagate HDD, Hitachi Lite-on CD-RW Drive, ZIP 250 and 3.5" Floppy.
Dev. Console: SCPH-7000 with SCPH-7501 ROM, MM3, PAL color fix, Direct AV ports, DB-9 port for Serial I/O, and a Xplorer FX with Caetla 0.35.
DTL-H2000 PC: Dell Optiplex GX110, Windows 98SE & Windows XP, Pentium III 933MHz, 384MB SDRAM, ATI Radeon 7000 VE 64MB, Soundblaster Audigy, 40GB Seagate HDD, Hitachi Lite-on CD-RW Drive, ZIP 250 and 3.5" Floppy.
-
- What is PSXDEV?
- Posts: 2
- Joined: Sep 16, 2018
- I am a: Programmer
- PlayStation Model: SCPH-5502
Thank you for taking the time to reply and telling me this. I thought it would've been stored in a seperate file myself, as with the few retail games that do contain debugging information. I'd normally think that I'm looking at it the wrong way, but the EXE is 600KB+, and all the games assets are stored in seperate files... I really do doubt that the assembled code could take that much room, as it is very simple.
Would that be possible? This game uses PsyQ (what I assume to be version 4.4 of the library, due to FLIRT signatures in IDA, and the date of the game) so I'd of thought they'd use the compiler that came with PsyQ (GCC, if I'm not mistaken?).It might be a PS-EXE created using CodeWarrior which uses its own compiler (MIPSPRO) and from what I remember the last time I used it, it does not produce a separate symbols file. I'm going to check again when I get home.
-
LameGuy64 Verified
- Psy-Q Enthusiast
- Posts: 388
- Joined: Apr 10, 2013
- I am a: Hobbyist Game Developer
- Motto: Commercial or not, play it!
- PlayStation Model: H2000/7000
- Location: Philippines
- Contact:
Well, CodeWarrior also does not appear to store any symbol data inside of a PS-EXE either. Its possible those symbol strings you've found are just strings in some libraries used for debug messages.
CodeWarrior would actually produce an ELF file (named as a .pse file) but it does not appear to contain any symbol data even though the file format supports DWARF symbols embedded into it. It instead stores such information in a .tgt file which is its own file format so neither of the development tools would embed symbol data into a PS-EXE.
CodeWarrior would actually produce an ELF file (named as a .pse file) but it does not appear to contain any symbol data even though the file format supports DWARF symbols embedded into it. It instead stores such information in a .tgt file which is its own file format so neither of the development tools would embed symbol data into a PS-EXE.
Please don't forget to include my name if you share my work around. Credit where it is due.
Dev. Console: SCPH-7000 with SCPH-7501 ROM, MM3, PAL color fix, Direct AV ports, DB-9 port for Serial I/O, and a Xplorer FX with Caetla 0.35.
DTL-H2000 PC: Dell Optiplex GX110, Windows 98SE & Windows XP, Pentium III 933MHz, 384MB SDRAM, ATI Radeon 7000 VE 64MB, Soundblaster Audigy, 40GB Seagate HDD, Hitachi Lite-on CD-RW Drive, ZIP 250 and 3.5" Floppy.
Dev. Console: SCPH-7000 with SCPH-7501 ROM, MM3, PAL color fix, Direct AV ports, DB-9 port for Serial I/O, and a Xplorer FX with Caetla 0.35.
DTL-H2000 PC: Dell Optiplex GX110, Windows 98SE & Windows XP, Pentium III 933MHz, 384MB SDRAM, ATI Radeon 7000 VE 64MB, Soundblaster Audigy, 40GB Seagate HDD, Hitachi Lite-on CD-RW Drive, ZIP 250 and 3.5" Floppy.
-
- What is PSXDEV?
- Posts: 1
- Joined: Feb 12, 2019
Heyas TheStolenBattenberg!
Would you be willing to share the information you have found? I am implementing this game as a testbed in my game engine and there are some things I would like to know (such as, are the dungeon maps stored assets or randomly generated at runtime. Could they/the algorithm be extracted? etc.).TheStolenBattenberg wrote: ↑December 14th, 2018, 11:48 am I've been reverse engineering an odd little PS1 title called 'Battle Hunter' for the past two years
I want to do some reverse engineering on this game .
I'd like to know things like the % chance that an enemy spawns at the end of each turn. How it determines which enemy type it is?
Things like... which items can be found in boxes at each relic level...
and so on...
Anyone have any of this stuff for this game?
I'd like to know things like the % chance that an enemy spawns at the end of each turn. How it determines which enemy type it is?
Things like... which items can be found in boxes at each relic level...
and so on...
Anyone have any of this stuff for this game?
Who is online
Users browsing this forum: Bing [Bot] and 1 guest