Author
|
Topic: ROM Hacking Documents: What's Missing? (Read 2 times)
|
Neil
Guest
|
|
« on: February 24, 2007, 08:14:21 am » |
|
We've got a fairly large database here of romhacking related documents covering a myriad of different topics. I figured I'd start a thread to see if there were any topics you think are missing. I'm not saying I'll write a doc for it, but maybe someone else will say "oh, that's easy" and write one. So I guess this is kinda like the translation request thread, except for documents. Any wishes?
|
|
|
|
KaioShin
Guest
|
|
« Reply #1 on: February 24, 2007, 11:18:02 am » |
|
What I'd like to see are documents for the PC, mainly assembly.
Most if not all hacking concepts apply to the PC too of course, and yet there are some differences which make it quite different to work with it. From my experience, a lot of the usual hacking gruntwork isn't needed on the PC, as the games are usually much more standardised and modulized. Tables are practically never an issue, since the games use standard encodings, file formats are often interchangeable, and space issues apparently don't even exist there. These are no problems however, instead this stuff makes hacking PC games often much easier than hacking console games, all you need usually is to code some custom tools.
However, one thing from my limited experience is quite different to consoles - working with PC assembly.
Instead of working with hardware registers, one has to deal mostly or at least a lot with OS calls from what I gathered. And I'm curious about debugging. There are a few disassemblers for PC, but how would I go about debugging? This is a really a black book for me ATM, and we have zero information on this on our site. We don't even have a general x86 asm doc, but there will be plenty on the net I'm sure. If one could write / find documents which relate to aspects of this topic I'd be more than grateful.
I plan on messing with some PC games. I'll figure it out on my own if need be, and I might write something myself then if there are still no docs. But that will be left for the future for now.
|
|
|
|
hippiejake
Guest
|
|
« Reply #2 on: February 24, 2007, 02:32:31 pm » |
|
Common methods to finding odd things like level, sound, or AI data. You know, not a universal walkthrough[impossible], but just several ways you can go about attempting to locate the stuff amidst all the other whatnot that's whizzing through the tracer without resorting to corruption.
Yeah, and some PC stuff specifically related to hacking would be nice as well.
|
|
|
|
Aerdan
Guest
|
|
« Reply #3 on: February 24, 2007, 02:36:26 pm » |
|
x86 ASMY'know, a simple google search for 'x86 ASM' would've turned up a wealth of information about 'PC' asm. There's also MIPS, PPC, x86_64, HPPA, and a whole host of other PC-related assembly languages. Given that Windows only runs on x86 and x86_64 platforms, however, those are the two platforms you should google for. :p
|
|
|
|
KaioShin
Guest
|
|
« Reply #4 on: February 24, 2007, 02:59:00 pm » |
|
Y'know, a simple google search for 'x86 ASM' would've turned up a wealth of information about 'PC' asm. There's also MIPS, PPC, x86_64, HPPA, and a whole host of other PC-related assembly languages. Given that Windows only runs on x86 and x86_64 platforms, however, those are the two platforms you should google for. :p
AWESOME, you are so intelligent, thank you so very much. I said myself that there will be plenty of general x86 asm docs on the net. Having a list of opcodes is only half the battle, you know? Just look at the Intel doc on x86 asm, it's 750 pages long. There are tons of stuff, but a lot won't be of any interest for a hacker. When I talk about ROMHACKING docs of PC ASM I mean ASM docs which are aimed at romhacking. Which explains those parts you need, which explains methods of doing stuff you need for romhacking.
|
|
|
|
Nightcrawler
Guest
|
|
« Reply #5 on: February 24, 2007, 03:07:35 pm » |
|
x86 ASMY'know, a simple google search for 'x86 ASM' would've turned up a wealth of information about 'PC' asm. There's also MIPS, PPC, x86_64, HPPA, and a whole host of other PC-related assembly languages. Given that Windows only runs on x86 and x86_64 platforms, however, those are the two platforms you should google for. :p That's going to tell you absolutely nothing about hacking a PC game. Quit being an unhelpful ass. What's being asked for here is how to deal with hacking PC games, not really the assembly language itself.
|
|
|
|
Cyberman
Guest
|
|
« Reply #6 on: February 24, 2007, 03:16:34 pm » |
|
Regarding X86 ASM Yes there are a wealth of them, however keep in mind this. The era of 1984 to 1992 is barely available in terms of the 8086 to 286 on various information on these platforms. In particular it's hard to find a coherent description of how to make a 'DOS' EXE. I have several packed files that need unpacked. I suppose one way to unpack them would be to run then in memory then dump the memory image. This is messy (I've found), and requires one to hand wire things together. Granted it's good for dumping a program and dissassembling it. It's not good for making a straight up loadable executable I've been working on a project off and on for 2 years, and have yet to find a good description of how to make a plain EXE with relocatable segments that DOS is supposed to do the relocation for. It's rather odd no? Most of these are proprietary. Microsoft used there own Borland used there own Watcom.. well needless to say everyone did there own thing when it came to this. Also you need to realize that in the era between 1990 and 2007 there have been a CONSIDERABLE number of different generations of processors as well as coprocessors. There is a huge gamut of devices in there. I remember I had an off brand 40mhz coprocessor with my AMD386DX (woo a whole 8M ram too). Wikipedia gives a small sampling. Not only did Intel's types vary widely so did AMD's. You have strange processors all through there. Also you cannot ignore PC104 standard which used even stranger chips from Intel and AMD than the PC's even used. So assuming that x86 assembly is all that's needed is wearing blinders. I know I had a 'lot of fun' writting an FTP client in 2001 for a weird Intel processor (it was an AT computer on a chip with a 386 processors basically). There are a lot of things that one needs to keep in mind with these nasty beasts (such as coprocessor emulation etc.) In any case Google would be just a start. I've noticed several sources have slowly been evaporating from the internet on this. I think preserving the information before it disappears is a good idea. Ralph Browns PC Interrupt list is a good start. Another one is Delories information on executable formats. My personal anoyance is Microsoft Packed file format. I am going to see if I can DUMP a memory image from the executable before it runs the start code for the program. Then do a binary image disassembly (since I know the start of code space it should be able to find most things). I've professionally hacked a lot of things and the PC is still the most clueless area I've found in the pile of machines out there. Namely because nothing is really organized too well. Or I'm clueless myself. x86 assemly in itself is not a big deal I suppose but all the weird variations and binary file types are a problem. Windows PE format for example is STILL being documented! So .. I would like to see more PC stuff myself. When I finish with the Microsoft Packed format information I'll add that to some of the PC information so people won't scream like I did when I had this horror. At least Borland's format is fairly straight forward to unpack (small help for me). Cyb PS after internal document search (because I needed it for hacking believe it or not) 8086 Assembly Language <-- important information about the processor 8086 Instruction Set <-- all those bloody instructions! Clarified like butter. Intels Available information on there processors isn't terribly exciting. The data sheet for the 8086 included the entire Instruction Set listing (good thing). I'll add more links as I dig around my computers. I have roughly 390,000 files on my linux box. Go figure maybe I should clean up sometime?
|
|
« Last Edit: February 24, 2007, 06:08:09 pm by Cyberman »
|
|
|
|
Griff Morivan
Guest
|
|
« Reply #7 on: February 24, 2007, 05:15:05 pm » |
|
Perhaps a document or the addition of a document of how to edit the beginning of FF1 without making it eat itself?
|
|
|
|
RedComet
Guest
|
|
« Reply #8 on: February 24, 2007, 06:26:40 pm » |
|
Perhaps a document or the addition of a document of how to edit the beginning of FF1 without making it eat itself?
Could you be any more vague?
|
|
|
|
Griff Morivan
Guest
|
|
« Reply #9 on: February 24, 2007, 06:29:44 pm » |
|
Sure then.
I keep editing the text in the fade-in opening, and it goes boom. -leavin-
|
|
|
|
Dragonsbrethren
Guest
|
|
« Reply #10 on: February 24, 2007, 06:44:34 pm » |
|
Sure then.
I keep editing the text in the fade-in opening, and it goes boom. -leavin-
Stop borking control codes! (Ask a vague question, get a vague answer )
|
|
|
|
Spikeman
Guest
|
|
« Reply #11 on: February 24, 2007, 09:54:27 pm » |
|
I'd like to see documents for platforms other than NES/SNES. Specifically, systems like the Wonderswan.
|
|
|
|
creaothceann
Guest
|
|
« Reply #12 on: February 24, 2007, 10:33:30 pm » |
|
|
|
|
|
Kitsune Sniper
Guest
|
|
« Reply #13 on: February 24, 2007, 11:55:22 pm » |
|
Quit being an unhelpful ass.
Can you ask the sun to stop shining, or the moon to be full for all time? I've always wanted to write docs and stuff, but I'm so visual that I couldn't do it without adding tons of images...
|
|
|
|
KaioShin
Guest
|
|
« Reply #14 on: February 25, 2007, 04:52:34 am » |
|
I've always wanted to write docs and stuff, but I'm so visual that I couldn't do it without adding tons of images...
What's the problem with that? Many people will also understand docs with many pictures much better than plain text ones.
|
|
|
|
|