Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
1 user currently in Rom Hacking: hukka | 2 guests
Acmlm's Board - I2 Archive - Rom Hacking - Allright. Im ready to learn ASM. | |
Pages: 1 2Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
Violent J

Melon Bug
Level: 41

Posts: 244/749
EXP: 479154
For next: 991

Since: 05-05-04
From: The Lotus Pod

Since last post: 8 hours
Last activity: 8 hours
Posted on 03-20-05 06:19 AM Link | Quote
*Sits back and waits for someone to post a tutorial becuase 18 Google searches got me absolutly nowhere, so if anyone posts, "Use googlzorz its joor friendz" im gonns get pissed and kill my lego hamster*
Setzer

Popo
Level: 36

Posts: 135/532
EXP: 290182
For next: 17928

Since: 04-22-04
From: Not Florida. because I'm going to sink it.

Since last post: 5 hours
Last activity: 48 min.
Posted on 03-20-05 06:25 AM Link | Quote
Use googlzorz its joor friendz


Yeh. you asked for it. anyways, check the technical documents section of Zophar's Domain and IIRC, there are a few documents on it at Romhacking.com
Violent J

Melon Bug
Level: 41

Posts: 245/749
EXP: 479154
For next: 991

Since: 05-05-04
From: The Lotus Pod

Since last post: 8 hours
Last activity: 8 hours
Posted on 03-20-05 07:04 AM Link | Quote
Lego Hampster: Abolished

Thank you for your help! I am going to get reading right away!
Black Lord

Level: 34

Posts: 229/453
EXP: 235639
For next: 18012

Since: 03-15-04
From: Nebraska, what's a Nebraska

Since last post: 8 days
Last activity: 1 day
Posted on 03-20-05 07:06 AM Link | Quote
NESDev
NES ASM Tutorial
SNES ASM Tutorial

I did a google search and came up with these... . That said, your google skills are teh sucks.

On the I'm ready to learn ASM note... I wouldn't just jump up and say I'm ready to learn it and expect it to be a one day thing. Cause if that's what you think, then your gonna fail miserably. And I'll laugh at you too.
Violent J

Melon Bug
Level: 41

Posts: 246/749
EXP: 479154
For next: 991

Since: 05-05-04
From: The Lotus Pod

Since last post: 8 hours
Last activity: 8 hours
Posted on 03-20-05 07:20 AM Link | Quote
Nah. Im not dumb. I know it will take alot of time weeks or months But I still need to learn it sooner or later. Anyways. Yes. Your google skills are superior. The end. Thanks also Black Lord!
Parasyte

Bullet Bill
Level: 35

Posts: 371/514
EXP: 267348
For next: 12588

Since: 05-25-04

Since last post: 104 days
Last activity: 32 days
Posted on 03-20-05 04:31 PM Link | Quote
Just a note about what Black Lord said: It is possible to learn an assembly language in one day. The prerequisite is knowing at least one assembly language before hand. I was able to learn SH4 (as in Dreamcast) in a matter of two hours, and PowerPC (as in GameCube) in about the same range of time.
Once you understand the concepts of assembly programming, it is very easy to pick up another language. That first step is something of a killer though. It will take more than a few weeks for first-timers. Expect no less than a month to become familiar enough with the language to use and hack it efficiently.

Oh right. And here's my contribution to the thread: 6502 reference. It's only the best 6502 reference anywhere. (It explains in detail the operation and flags set/used by each instruction. Something that a lot of tutorials and other references will not get into. This info is critical.)


(edited by Parasyte on 03-20-05 07:33 AM)
MathOnNapkins

Math n' Hacks
Level: 67

Posts: 1617/2189
EXP: 2495887
For next: 96985

Since: 03-18-04
From: Base Tourian

Since last post: 1 hour
Last activity: 32 min.
Posted on 03-20-05 04:53 PM Link | Quote
:\ in my mind the best references to ASM for our usual platforms (NES, GBA, and SNES) would be chock full of examples. Some are, some aren't. Understanding basics is not hard, it's the gory gory details that are killer for the beginning ASM student. Well, I lucked out a little having studied several high level languages like C before this, but still... I had to write several e-mails to people to get specifics on particular operations and such. Things like, "how will this effect the status register?" or "how do interrupts trigger and what are they?"
Violent J

Melon Bug
Level: 41

Posts: 250/749
EXP: 479154
For next: 991

Since: 05-05-04
From: The Lotus Pod

Since last post: 8 hours
Last activity: 8 hours
Posted on 03-20-05 07:48 PM Link | Quote
Allright. Heres what im doing. Im going to learn C++ first. From my friends who know it, it shouldent be hard. Then, I will get into NES ASM, then SNES ASM. It will take a LOOONG time, but it will be worth it. So thanks everyone for your contributions! *Gets started*
Glyph Phoenix

Level: 39

Posts: 122/745
EXP: 385876
For next: 18895

Since: 11-07-04

Since last post: 2 hours
Last activity: 2 hours
Posted on 03-20-05 08:36 PM Link | Quote
It may take even longer than you think if you think that C++ is such a great stepping stone for learning ASM. Heck, I know C++, but those references people linked to might as well have been written in Greek, because they're already a foreign language to me...
Violent J

Melon Bug
Level: 41

Posts: 251/749
EXP: 479154
For next: 991

Since: 05-05-04
From: The Lotus Pod

Since last post: 8 hours
Last activity: 8 hours
Posted on 03-20-05 08:44 PM Link | Quote
Wait. Those refrences said i should learn C++ first. But what your telling me is that i might as well not?
Glyph Phoenix

Level: 39

Posts: 124/745
EXP: 385876
For next: 18895

Since: 11-07-04

Since last post: 2 hours
Last activity: 2 hours
Posted on 03-20-05 08:51 PM Link | Quote
Well, I don't think it's so much the C++ syntax but a knowledge of variables and the kind of things that make up a language. But as for how much they'll help you learn ASM, I can't help you with that because I know C++ but it hasn't helped my nearly nonexistant understanding of ASM. Sorry.
Parasyte

Bullet Bill
Level: 35

Posts: 373/514
EXP: 267348
For next: 12588

Since: 05-25-04

Since last post: 104 days
Last activity: 32 days
Posted on 03-20-05 09:46 PM Link | Quote
The gory details are all explained within the reference I linked. The theoretical details (such as "what the hell are registers and addressing modes?") are for a tutorial. You may be able to get some of the information from a few tutorials, but few tutorials have all of the information. And that's why most tutorials are quite bad; if they aren't written by beginners, then they aren't written for beginners, either.

I'm sure if you take the time to look through the "Greek" 6502 reference, along side a debugger, you will begin to understand what's what and why. Jumping right in and learning from experience is the way to go. Even without much programming knowledge, most concepts have been learned in your early childhood; add, subtract, carry, borrow... And of course making decisions; true, false... If you can understand these concepts, and you have a nice, verbose debugger handy, you should be able to look at an instruction in said debugger, look it up in the reference, and read the description to understand what the instruction does. There's not much difficulty in that. You see, understanding an assembly language is one thing. Understanding what routines do at a higher level (for example, loading and displaying a sprite) is altogether different. No tutorial can teach these things. The best they can provide is an example of how one game may do something specific. Truth is, it is always very difficult to understand undocumented routines (especially when hacking) even for programmers and hackers with many years of experience. You just have to think a bit like the machine and put many pieces of a puzzle together.

So, what I'm saying is that tutorials can be good, but you need more than that. You need definitive resources. Whether those resources are low-level reference sheets, debuggers, or having friends with the knowledge you seek; use them all. Learning a high level language is by no means required. As long as you understand the three basics of programming; Arithmetic, Program Flow, and Data Load/Store.

And with that, I'll get back to hacking 'Lost Cheats'. (Maybe I should create an archive of these things...)


(edited by Parasyte on 03-21-05 08:39 PM)
Violent J

Melon Bug
Level: 41

Posts: 252/749
EXP: 479154
For next: 991

Since: 05-05-04
From: The Lotus Pod

Since last post: 8 hours
Last activity: 8 hours
Posted on 03-20-05 10:44 PM Link | Quote
That was better than George Bushs Presidential election speech! Ok, so I take it I could jump right into 6502 without doing C or C++. And what im getting out of you is; You dont know whats in a game and what can be edited and changed, you have to guess and check and such to find out. Im hoping thats right...

EDIT: If i were to get a debugger which one should i get. And what would i use with it, cuase I got to apply it all to something!


(edited by Sonicandtails on 03-20-05 01:48 PM)
Parasyte

Bullet Bill
Level: 35

Posts: 374/514
EXP: 267348
For next: 12588

Since: 05-25-04

Since last post: 104 days
Last activity: 32 days
Posted on 03-21-05 02:36 AM Link | Quote
No. I am saying that all you will see is a bunch of senseless instructions. You'll see some adds, bitwise logic, loads, stores, and branches. But those will not tell you what part of the game they are handling.
There is little guess and checking involved; generally an experienced hacker can deduce what each routine does by memory references and plain old reverse engineering logic. Anything can be "edited and changed" but finding it can be difficult. And this is due to what I've explained above. You don't get any simple references such as function and variable names. It's just a lot of code, and it all looks exactly the same.

The most obvious choice for a debugger is the one in FCEUXD. It contains almost everything that is needed.
Violent J

Melon Bug
Level: 41

Posts: 258/749
EXP: 479154
For next: 991

Since: 05-05-04
From: The Lotus Pod

Since last post: 8 hours
Last activity: 8 hours
Posted on 03-21-05 02:40 AM Link | Quote
Allright NOW. I gotcha. Heh. Thanks for your help!
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 3821/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 03-21-05 07:16 AM Link | Quote
What especially helps is to know the game and moreso system. Even if you know (or can guess at) 65816, this probably doesn't mean a lot to you:
LDA $0DBF
BEQ x
JSR $00F5B7
x: RTS
However, if you know that in Super Mario World, $0DBF holds your coins and $00F5B7 is the subroutine for killing Mario, it's clear enough what this would do (kill you if you have any coins). Not that you'll find this code in the actual SMW ROM, but yeah.
Violent J

Melon Bug
Level: 41

Posts: 264/749
EXP: 479154
For next: 991

Since: 05-05-04
From: The Lotus Pod

Since last post: 8 hours
Last activity: 8 hours
Posted on 03-21-05 07:22 AM Link | Quote
All i can see from that is LDA which is the loading pointer or something like that for A, the acumualator(i believe thats the word). So it wants to load the accumulator of i believe decimal 0DBF becuase theres no #. But I have no idea really what it all means. Just what it wants to do. I have studied quite much today so i think im making progress.


(edited by Sonicandtails on 03-20-05 10:23 PM)
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 3824/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 03-21-05 07:48 AM Link | Quote
Decimal 0DBF? It's hex, the $ indicates that. # marks a constant in 65816. (Eg: LDA $200 means get a value from address 0x200, LDA #$200 means set A to 0x200, and LDA #200 means set A to 200 (0xC8)). Other than that, that's pretty much the idea.
Violent J

Melon Bug
Level: 41

Posts: 267/749
EXP: 479154
For next: 991

Since: 05-05-04
From: The Lotus Pod

Since last post: 8 hours
Last activity: 8 hours
Posted on 03-21-05 07:52 AM Link | Quote
Bah! So i got them mixed. I will get it soon. I still got to find some way to print out my refrense material so i can look back and eventually have it down in my head. But anyways HH. What you just exampled there left me clueless. Dont explode my brain this early in the learning process!
Parasyte

Bullet Bill
Level: 35

Posts: 375/514
EXP: 267348
For next: 12588

Since: 05-25-04

Since last post: 104 days
Last activity: 32 days
Posted on 03-21-05 08:29 PM Link | Quote
I thin the idea is to get you familiar with code that makes no bloody sense. Because when hacking assembly, you will see a lot of it.
Pages: 1 2Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Rom Hacking - Allright. Im ready to learn ASM. | |


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.021 seconds.