+  RHDN Forum Archive
|-+  Romhacking
| |-+  ROM Hacking Discussion
| | |-+  Where to start off with PSX Hacking?
Pages: [1] 2
Author Topic: Where to start off with PSX Hacking?  (Read 2 times)
Rai
Guest
« on: June 06, 2008, 04:13:06 am »

From my experience, I've noticed from a Rom Hacking perspective that PSX can be different than hacking a regular rom. Basically in PSX Hacking everything can't just be solved by being good at ASM hacking. but you also need to learn how to code, write extractors and inserters, it's really a step above normal ROM hacking. The PSX game I'm hacking right now needs an extractor and inserter for certain files and I want to know where I'd get started on writing one. Basically this game has some .bin files where there are several KEY files and folders compressed into them and I want to write an extractor and insertor for those files. The compressed folder names are inside the file, but I have no idea where to start on writing an extractor and insertor for them.

And this is what makes most PSX games hard to hack, the fact that many PSX games use files similar to that, where several key files and folders are compressed into one file. So yeah, where would I start learning how to write an extractor and insertor?

Also one last question unrelated that has to do with ASM. Okay so the game I'm hacking, SD Gundam G Generation, only supports 2 byte English and I want to make it so that the game reads 2 byte English as 1 byte English. Currently the game DOESN'T support 1 byte characters, but I want to make it so that it does. Basically I'm trying to make it so that instead of reading 2 byte characters, the game reads 1 byte characters. I know this'll require major ASM work, but I'm wondering if anyone could walk me through what I might need to do to make it happen. Also, after you've actually written the ASM code, where do you insert it in the rom so that it works?
RedComet
Guest
« Reply #1 on: June 06, 2008, 09:00:33 am »

http://www.romhacking.net/forum/index.php/topic,1298.0.html
http://www.romhacking.net/forum/index.php/topic,3261.0.html
http://www.romhacking.net/forum/index.php/topic,2892.0.html

Do you not read the posts people make in your threads?
Skeud
Guest
« Reply #2 on: June 06, 2008, 11:15:48 am »


Quote from: Rai on June 06, 2008, 04:13:06 am
From my experience, I've noticed from a Rom Hacking perspective that PSX can be different than hacking a regular rom.[...]you also need to learn how to code, write extractors and inserters[..]
Not really.. ROMS are multiple files merged into one, so, you can have the same structure as for a ISO-based game. For example, either on SNES or PSX you need to know asm if you want to crack a compression. And if it is non-standard, you'll have to write a decompressor/compressor yourself. If the game uses special pointer format, you also need to study the routine to understand how it works.
In fact, I'll give you the same advice you've been given one year ago : you have to learn by yourself. You just can't come here and ask for anyone to do the whole job for you. You won't learn anything by doing this.
If you want to do something, try for hours!
If you can't, so, you just have to find another hobby...


Quote from: Rai on June 06, 2008, 04:13:06 am
Basically I'm trying to make it so that instead of reading 2 byte characters, the game reads 1 byte characters. I know this'll require major ASM work, but I'm wondering if anyone could walk me through what I might need to do to make it happen.
I think you can ask him for some help :

2 bytes to 1 byte hacks can be really easy if the game uses only a few reading routine, so I'd say it is the easiest asm hack you can do.

Quote from: Rai on June 06, 2008, 04:13:06 am
Also one last question unrelated that has to do with ASM. Okay so the game I'm hacking, SD Gundam G Generation [..]
Also, after you've actually written the ASM code, where do you insert it in the rom so that it works?
SD GGG (real name is too long to write Cheesy) is a PSX game? So why are you talking about ROM?
Rai
Guest
« Reply #3 on: June 06, 2008, 01:46:06 pm »

Quote from: Skeud on June 06, 2008, 11:15:48 am

Quote from: Rai on June 06, 2008, 04:13:06 am
From my experience, I've noticed from a Rom Hacking perspective that PSX can be different than hacking a regular rom.[...]you also need to learn how to code, write extractors and inserters[..]
Not really.. ROMS are multiple files merged into one, so, you can have the same structure as for a ISO-based game. For example, either on SNES or PSX you need to know asm if you want to crack a compression. And if it is non-standard, you'll have to write a decompressor/compressor yourself. If the game uses special pointer format, you also need to study the routine to understand how it works.
In fact, I'll give you the same advice you've been given one year ago : you have to learn by yourself. You just can't come here and ask for anyone to do the whole job for you. You won't learn anything by doing this.
If you want to do something, try for hours!
If you can't, so, you just have to find another hobby...


Quote from: Rai on June 06, 2008, 04:13:06 am
Basically I'm trying to make it so that instead of reading 2 byte characters, the game reads 1 byte characters. I know this'll require major ASM work, but I'm wondering if anyone could walk me through what I might need to do to make it happen.
I think you can ask him for some help :

2 bytes to 1 byte hacks can be really easy if the game uses only a few reading routine, so I'd say it is the easiest asm hack you can do.

Quote from: Rai on June 06, 2008, 04:13:06 am
Also one last question unrelated that has to do with ASM. Okay so the game I'm hacking, SD Gundam G Generation [..]
Also, after you've actually written the ASM code, where do you insert it in the rom so that it works?
SD GGG (real name is too long to write Cheesy) is a PSX game? So why are you talking about ROM?
The thing is, when it comes to coding and writing decompressors and stuff, my knowledge us zero. What do I program it with?  How do I learn how to program with that? Writing an extractor and insertor is needed for tthis game since the only uncompressed text is sceanario text.

Problem with learning myself is programming just isn't something you CAN learn yourself. For instance there's plenty of docs on ASM, but the only thing you'll find on VWF's is source code and not really the logic behind creating one.

Thanks for the info on the ASM thing BTW.

Also though, are there any real time debuggers for the PSX?
DarknessSavior
Guest
« Reply #4 on: June 06, 2008, 01:52:33 pm »

Quote from: Rai on June 06, 2008, 01:46:06 pm
Also though, are there any real time debuggers for the PSX?

Main -> Utilities -> Category: Debuggers/Special Emulators, Platform: Playstation.

Take your pick.

~DS
Gemini
Guest
« Reply #5 on: June 06, 2008, 03:02:09 pm »

Quote from: Rai on June 06, 2008, 01:46:06 pm
The thing is, when it comes to coding and writing decompressors and stuff, my knowledge us zero. What do I program it with?  How do I learn how to program with that? Writing an extractor and insertor is needed for tthis game since the only uncompressed text is sceanario text.
Why don't you start searching on your own for ANY programming language out there using, let's say, Google? Whining here is not going to help you in any way, no matter how many times you try. Nobody's gonna tell you how to do everything, nobody's gonna guide you through each step to become an actual hacker, nobody's gonna help you with each new project you decide to start. If you can't even understand this, maybe it's time to find a better way to use your spare time.
DaMarsMan
Guest
« Reply #6 on: June 06, 2008, 03:13:32 pm »

I learned it myself. You have to start on easier systems though. You don't understand enough about SNES and NES to be able to program for psx. Things get more complicated because it uses a filesystem and the EXE (Code) get's injected and run from an area of ram that is specific in the header. You can use the debuggers to see if you can understand the code. Then if you do, you have to have a decent amount of ASM knowledge and probably code your own tool to inject a shitty binary that spAsm created into your EXE file. Then you can use WinImage to inject the EXE back into the ISO or you can code your own tool to rebuild it on the fly. Good luck sir. If this sounds too hard for you, that's because it probably is. See if you can complete an easier project from start to finish. If you get really good at another easier system, you wont need to ask these kind of questions.
Nightcrawler
Guest
« Reply #7 on: June 06, 2008, 03:16:25 pm »

Quote from: Rai on June 06, 2008, 01:46:06 pm
The thing is, when it comes to coding and writing decompressors and stuff, my knowledge us zero. What do I program it with?  How do I learn how to program with that? Writing an extractor and insertor is needed for tthis game since the only uncompressed text is sceanario text.

Problem with learning myself is programming just isn't something you CAN learn yourself. For instance there's plenty of docs on ASM, but the only thing you'll find on VWF's is source code and not really the logic behind creating one.

Thanks for the info on the ASM thing BTW.

Also though, are there any real time debuggers for the PSX?

What? There's literally thousands of sites on the Internet dedicated to programming in every existing language. All you need to do is read. After some google hunting, you'll know what compilers, or assemblers will allow you to program with the language you want. Then you just start doing it! Start with hello world and work from there. Just start doing it.

As for VWF's, do you know what a VWF is? Do you know assembly? If you the answer is truly yes, what more do you want? Start coding one and work until you get through it.

You need to start at the beginning of a task and continue at it until you get it done. You need to spend as many hours as it takes. Hour after hour you need to spend time experimenting, learning, and doing. You keep going in circles year after year man. If you can't put in the time, you shouldn't be here.




I'm tired of this vicious circle, here's what we're going to do...

You pick some task... whether it be coding something small, finding a font routine, whatever and you are going to start on that task and you are going to put as many hours into that task as it takes to complete it. I will personally assist in steering you in the right direction, answer specific questions in the learning process and help you help yourself, but I will not do work for you. If I cannot answer the question (a valid question during the learning process), we will find someone who can. Pick something good because it will probably take a few months. I'm serious. Nobody learns overnight. Also, you're going to have to pick something small enough to be achievable as a first step. So break it down to the very first step of what you want to do and let me know.

We will make a single topic for your learning process and that's how it will be. If you are serious about learning, it's time to get serious and commit to starting and doing it. I am dead serious. This is how we will proceed on this message board with you. Your questions will be confined to one topic on one task. All crap will be tossed out of it and it will be kept on topic. You choose if you are ready to commit to the learning process. If you aren't willing to commit to the learning process, don't bother our boards anymore with this. If you are, please select a task and we'll get started.
Rai
Guest
« Reply #8 on: June 06, 2008, 03:29:24 pm »

Quote from: Gemini on June 06, 2008, 03:02:09 pm
Quote from: Rai on June 06, 2008, 01:46:06 pm
The thing is, when it comes to coding and writing decompressors and stuff, my knowledge us zero. What do I program it with?  How do I learn how to program with that? Writing an extractor and insertor is needed for tthis game since the only uncompressed text is sceanario text.
Why don't you start searching on your own for ANY programming language out there using, let's say, Google? Whining here is not going to help you in any way, no matter how many times you try. Nobody's gonna tell you how to do everything, nobody's gonna guide you through each step to become an actual hacker, nobody's gonna help you with each new project you decide to start. If you can't even understand this, maybe it's time to find a better way to use your spare time.
Whining here? I'm doing this for my own better good, to improve my own skills. And yes, I suppose you're right, asking for suggestions is asking everyone to tell me how to do everything(Sarcasm). Yes, that last sentence was sarcastic because that's not what I'm doing. I'm not coming here asking "Hey, I want you guys to give me the code for blah blah blah. i want you to tell me how to do it blah blah". You very much misinterpetted my post and better yet my motives. If I was truly doing what you accuse me of I wouldn't even be attempting to learn any of this stuff and I'd truly, asks everything one to tell me everything.

Quote
I learned it myself. You have to start on easier systems though. You don't understand enough about SNES and NES to be able to program for psx. Things get more complicated because it uses a filesystem and the EXE (Code) get's injected and run from an area of ram that is specific in the header. You can use the debuggers to see if you can understand the code. Then if you do, you have to have a decent amount of ASM knowledge and probably code your own tool to inject a shitty binary that spAsm created into your EXE file. Then you can use WinImage to inject the EXE back into the ISO or you can code your own tool to rebuild it on the fly. Good luck sir. If this sounds too hard for you, that's because it probably is. See if you can complete an easier project from start to finish. If you get really good at another easier system, you wont need to ask these kind of questions.
Oh, nothings too hard, I just have to practice it and understand it.

The reason why I'm asking for recommendations on programming languages is, SOME cost money and that's not something I have on me at the moment. I could search google for "Free programming languages" but that'd take forever.

And yes, that sounds good Nightcrawler.
creaothceann
Guest
« Reply #9 on: June 06, 2008, 03:35:37 pm »

A language cannot be not free.

language ≠ compiler (or IDE)
Gemini
Guest
« Reply #10 on: June 06, 2008, 03:42:25 pm »

Quote from: Rai on June 06, 2008, 03:29:24 pm
Whining here?
That's exactly what you've done so far and what you are doing now. Every time you come up with a different "problem", asking everybody on the board how to magically solve it, but most of the times it just needs you spending some time actually trying, because you don't even try and that's clear like the light of the day. Again: Google is your friend, and so is the Documents section on this site.

Quote from: Rai on June 06, 2008, 03:29:24 pm
I'm not coming here asking "Hey, I want you guys to give me the code for blah blah blah. i want you to tell me how to do it blah blah".
Or, really? I thought your first message, where you said "The PSX game I'm hacking right now needs an extractor and inserter for certain files and I want to know where I'd get started on writing one", meant exactly the opposite. Also D already spoon-fed you posting an ENTIRE and functional de-archiver a long time ago, which you ignored as usual. Many already tried to help you with all means, but you just keep spamming the same stuff all over and over.
DaMarsMan
Guest
« Reply #11 on: June 06, 2008, 03:48:28 pm »

Start learning BASIC and then learn C and C++. After that, you can ask about PSX perhaps. An professional athlete doesn't become a pro by asking how to do it. They become pro because they do it. Then they get tired and confused and they figure out a way. Your approach seems to suggest that you are hoping for an easy solution. I've spent over 300 hours on the project I'm about to finish now. I say start a thread on a specific project and ask specific details for that project. Try moving text blocks and expanding menus. That's a good place to learn.
sb iq
Guest
« Reply #12 on: June 06, 2008, 08:24:29 pm »

Quote from: Rai on June 06, 2008, 01:46:06 pm
Problem with learning myself is programming just isn't something you CAN learn yourself.

Go to school dude.

I don't know jack shit about programming. The most I can do is write a command line program in C++ that does simple non-calculus calculations for my lab job (which ended 6 months ago).

Now I am back at school and I have to use the LabVIEW programming language to make a polygraph lie detector for my Engineering Physiology class, and the fucking thing is due in 2 weeks.

If I am willing to put in time and effort to pass this class, then you should put in time and effort for this hobby of yours. I mean, there is no stress or due date for a romhack after all.

My roommate is working on a PSX hacking project and needs some assistance, but I am reluctant to point you in his direction, for fear that you would nag us to death....
Tauwasser
Guest
« Reply #13 on: June 06, 2008, 09:23:07 pm »

Quote
I could search google for "Free programming languages" but that'd take forever.

First result in google, look for "free c++ compilers and interpreters", the first recommended is microsoft visual c++ 2008 express... How hard was that? And just to clarify, I didn`t spend eternity looking.

Seriously, NC has said it all. That is your best and last and finally only chance to achieve something here. You always let people down, because they see how you not even try their suggestions and fixes. Therefor you hinder yourself from achieving anything and you should either get a new hobby straight away or actually put some or your time and effor into it and make it worthwhile for you!

cYa,

Tauwasser
tomaitheous
Guest
« Reply #14 on: June 06, 2008, 10:21:42 pm »

Free? Dev-cpp or LCC-win32. (LCC has a better debugger)

 Learn C (C99). Skip BASIC, C++, and creating GUI based apps. A "console" C app has got to be the easiest thing you can learn and it all you need.


 If he actually takes NC's challenge and sees it through to the end, that would make a great tutorial for beginners.

Pages: [1] 2  


Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC