Author
|
Topic: Fastrom help?? (Read 2 times)
|
stryfe23
Guest
|
|
« Reply #15 on: October 02, 2008, 11:22:53 am » |
|
Wow....
Thats a lot to take in. Well, I have to start somewhere I guess.
So, wouldn't studying a specific programming language first help with the process? Instead of trying basically to reverse engineer learn how to hack SNES rom code?
What language would be best suit me as a starting point, or do I have to go directly to trying out 65c816?
The idea about changing the emulator to read slow rom banks as fastrom looks interesting as well. Maybe I could try SNES9x as it is ported so often to other operating systems or platforms. There are ported versions for PSP, DC, XBOX, DS, etc...
Well, thanks for the heads up anyways.
|
|
|
|
Ryusui
Guest
|
|
« Reply #16 on: October 02, 2008, 12:37:00 pm » |
|
It'd help if you already had some programming experience. Mind you, ASM is low-level stuff; you won't be able to apply what you know about higher-level languages such as BASIC and C++ directly. Much of the same principles apply, but the methods for accomplishing them are much different. And if you don't know how to count in hex...learn.
|
|
|
|
creaothceann
Guest
|
|
« Reply #17 on: October 02, 2008, 12:53:43 pm » |
|
I'd recommend starting with Assembler. The higher-level languages just make typing the code easier; you still have to should know the stuff that happens below.
(Though that is for learning what the hardware does. Software concepts such as stacks, linked lists, sorting etc. are a bit easier with high-level languages...)
|
|
|
|
Karatorian
Guest
|
|
« Reply #18 on: October 02, 2008, 08:52:35 pm » |
|
Well, that seems pretty much shot down then. I wasn't really thinking of writing such a thing myself, more just exploring the idea of whether it could (in theory) be automated (as the OP may have thought).
So often, inexperianced hackers seem to think that a lot more can be done with generic utils than is actually possible. Usually, you just tell them they'll have to hand hack it and that's the end of it. In this case however, it seemed to me that it could possibly be done. After getting input from some of the people who actually know SNES internals, I guess it's not as simple as it appears at first. (Then again, what ever is?)
In regards to byuu's example of code where it'd go horribly wrong: Now that I think about it, such code is probably actually fairly common. At least in the games I've messed with, they seem to have been written by assembly gurus who know and use every trick in the book. Once I ran into an odd problem with a mapper change (on an NES game) because the bank switch routine left a value in a register and the at one point the game used said value. It didn't leave the value as a return or anything, just as a side effect. However, the programmer knew about it and saved himself one load.
As for which programming language to learn, assembly could be a good choice. While it has a reputation as hard, it's not actually that bad. I suspect (but don't know for sure) that learning assmbly after learning high level languages would actually be harder. ASM coding is fairly straight forward and maps directly to hardware capabilities. Whereas once you know HLLs, you learn to think in a way removed from the hardware; which can sometimes tempt you to use techniques that can be tricky in ASM. (Not that there's anything wrong with HLL, they're great.)
In addition to learning computer architecture fundamentals (as mentioned above), it is especially useful if your interest in learning to program is related to ROM hacking, where ASM is pretty essensial. It might not acually be a bad idea to jump in and get your feet wet with some ASM hacks. Of course, reading some tutorials and learning the instruction set would be required, but there is something to be said for working with full featured production code.
On the other tentacle, a fastrom hack probably isn't the best starting point for a newbie. From what I know about it, it could involve complex timing issues and would be fairly difficult to verify that it was complete and working properly. Playing around with something more obviously visible would be better. In any case, I think it could be a great learning experiance. (Personally, I already knew how to program (including a little x86 ASM) before staring ROM hacking, but learned the 6502 (NES) and how to really handle ASM by hacking projects.)
Best of luck.
|
|
|
|
|