+  RHDN Forum Archive
|-+  Romhacking
| |-+  General Romhacking
| | |-+  Rom Hacking Like a Pro Tutorials
Pages: [1]
Author Topic: Rom Hacking Like a Pro Tutorials  (Read 1006 times)
bbitmaster
Guest
« on: January 10, 2007, 11:15:23 pm »

I have seen a lot of people saying they want to learn ASM and need help, and I felt like there was a need in the community for something like this. So, I began writing them a few days ago. This is going to be a huge project, and I don't know if I'll finish writing them all. I probably need to write a total of 10 or 20 more.

My goal is to teach everything you need to be able to do really serious rom hacks. Starting with the very basics of 6502 ASM. I have never done much writing like this, ever in my life. So, I really don't know what I'm getting myself into here.

Anyway, I have the intro, and the first 2 written. I really want feedback on these. Let me know if there's any problems, or if they were hard to follow. Or, even if you liked them and want me to hurry and finish the rest. Let me know that too. I get discouraged and may quit easily, feedback keeps me going.

Here's the links
http://bbitmaster.com/neshackingintro.txt
http://bbitmaster.com/neshackingtutorial1.txt
http://bbitmaster.com/neshackingtutorial2.txt

Oh, and I don't want anyone else hosting them yet. At least not until I get more written, as I'm still doing revisions and corrections and stuff.

I'll post more as I write them.
tomaitheous
Guest
« Reply #1 on: January 11, 2007, 12:27:40 am »

Just some input Grin

Tutorial 2 seems to jump ahead. IMO, I'd at least discuss the compare instruction in conjunction with BNE/BEQ first. You don't need to know about the processor flag in order to understand BNE and BEQ. Most books or tutorials reserve discuss the processor flag in depth at a later point or at least not in the beginning.

Tutorial 1 needs more basics too. I wouldn't jump right into zeropage addressing - use absolute addresses since you're referring to the CPU's address range ($0000-$FFFF ). Even though they might have a instruction set doc that gives a description of each instruction, it's easier for a beginner to understand them when used and exampled in an example. Maybe another tutorial between 1 & 2 explaining them (and the absence of multiply/divide instructions).

~Rich
Nightcrawler
Guest
« Reply #2 on: January 11, 2007, 10:13:17 am »

All in all, pretty good so far. I think it's at a good level. one common pitful many fall into is not dumbing it down enough. But I think you've done a good job breaking things down. Keep that pace up. Assume the audience knowns nothing.

I happen to agree with throwing in the binary arithmetic and carry status bit early on. It's so heavily used. Carry and Zero bits are a necessity. I would add in a bit about the zero flag and BNE and BEQ.

I think there might be too much emphasis on C. A good number of people learned assembly first. In fact, it's Assembly that will give you a greater understanding of C. Trying to throw C into the mix may confuse as many people as it would help.

As far as presentation goes, have you considered HTML over plain text? Just a thought. I could go either way in my preferences.

snesmaster40
Guest
« Reply #3 on: January 11, 2007, 10:29:16 am »

Thanks for providing these bbitmaster
RedComet
Guest
« Reply #4 on: January 11, 2007, 12:44:10 pm »

Very nice so far. I think you should mention the status register a little sooner than you did. I tried to approach reading these as if I were a complete newb, and when you said "we need a carry bit", I was all "whaaaat?" Other than that, I like it.
Nightcrawler
Guest
« Reply #5 on: January 11, 2007, 01:12:23 pm »

Well that's just plain math. You need a 'carry'. That's common addition rules. I get your point though. Perhaps it should be reworded. Say that, as in all addition in math, you need to 'carry'. And then go on to explain that in binary math, you do the same thing by allowing one bit of carry which is actually a special bit in the CPU status register.
Moulinoski
Guest
« Reply #6 on: January 11, 2007, 06:51:12 pm »

I haven't read these tutorials yet (and I might not until I get a new computer or my computer's power slot gets fixed) but there is thing that I hate from some tutorials (and math books!): The terms and how they think the reader seems to at least know a bit about what they're talking about.
hippiejake
Guest
« Reply #7 on: January 11, 2007, 07:24:41 pm »

Lets do another one

 1    1
  1100010
+ 1011010
  -------
 10111110

If you'll notice, the result couldn't fit into 8 bits this time! It had to go
into 9.


Unless I'm mistaken, you're adding 7-bit numbers and coming up with an 8-bit result...
I don't think that's what you were aiming for. Wink

Other than that, everything looks good.
Aerdan
Guest
« Reply #8 on: January 11, 2007, 08:50:43 pm »

This is why it's important to have a text editor that tells you what column you're at. :p

[Any editor worth its salt has a columns indicator of some sort.]
jwurmz
Guest
« Reply #9 on: January 17, 2007, 09:33:03 pm »

speaking on behalf of the ASM n00bs, those tutorials are pretty damn helpful, keep 'em coming!

...but the binary addition examples, i'd double check those answers Tongue </nitpick>
nicolug
Guest
« Reply #10 on: January 24, 2007, 03:17:57 am »

I'll be giving these a try! As I'm pretty much a n00b, I might have some questions for you at some point though. Hopefully they will serve to help you improve the tutorials rather then bug you. Thank you so much for making these! I hope to see more soon!

~N~
r0xm2n
Guest
« Reply #11 on: January 24, 2007, 05:10:29 am »

These could be helpful .... I want to do some ASM hacks to FF3 later on if possible.
 Cool
der Warst
Guest
« Reply #12 on: January 24, 2007, 06:27:09 am »

correct me if I'm wrong, but wouldn't your first sample addition look better like this?
(apart from being a different first sample addition than the one you had a few lines earlier):

  1  111
  01101110
+ 01000101
   --------
  10110011

Sorry for being a smartass, I really appreciate what you're doing. Especially since I am n00b as n00b can be.

der Warst
Pages: [1]  


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