11 March 2016 - Forum Rules

Main Menu

Where did you learn assembly from?

Started by LatchGameDev, August 13, 2017, 02:52:14 AM

Previous topic - Next topic


My reason for learning ... I saw that some changes I wanted to make in FF1 weren't possible using FFHackster, I decided to learn 6502 so I could implement those features myself.

Step 1) I used the 6502 site's tutorial and reference docs to start learning it (still learning of course).

Step 2)'s tutorial page links to slickdrick's Easy6502 page, which lets you assemble and run code samples in virtual machines embedded into the page. At the end of that page, it guides you in writing a version of Snake (Snake6502) that also runs on the page's VM (309 bytes).

Step 3) Read through both Disch's and Anomie's FF1 disassemblies.

Dr. Floppy

Quote from: RedComet on August 17, 2017, 10:08:06 PM
Rodney Zaks' "Programming the 6502"

^This^, particularly chapters 1 and 4.

Also, many glorious hours analyzing 6502 routines in FCEUxD's debug window. Diet Cherry Pepsiâ„¢ and Adderallâ„¢ likely helped promote and reinforce the concepts.


I learned assembly from a Lego set....

But seriously, I did it the hard way, staring at the disassembly screen in the pSX emulator while looking up the op-codes on a MIPS reference list.

Assembly by itself is such incredibly basic math that I don't think it's hard to grasp. The hard part is comprehending how geniuses have taken that 'basic math' and turned it into what you see on screen in a video game. That understanding came slowly, and from many different sources including the wonderfully helpful people here on this forum.  :cookie:


Quote from: weissvulf on October 24, 2017, 12:35:04 AM
Assembly by itself is such incredibly basic math that I don't think it's hard to grasp.

Exactly the revelation I discovered myself. I'd been conditioned to assume that BASIC was easy, C was medium and machine code/assembly was hard. Not at all. :)

Dr. Floppy

Back when I used to tutor Chem students, I'd begin the first session by displaying an intimidating poster of the Periodic Table. When they looked uncomfortable enough, I'd tell them to ignore 90% of it.

Similarly, one thing I stress with 6502 newcomers is that most of the 151 instructions are rarely/never used. I count the number of commands considered high/routine use at 36.


While I could probably twist that into something I would do I am not so sure I would go that way for chemistry -- while I agree most people have probably never had to, and may never have to, deal with the chemistry of Rhenium I would usually spend the effort making sure they could know what each of the things on the average table are and have the ability to use them on lock. On the other hand if learning=memorisation (a sad state of affairs but a common one) for people then that has a basis.

That said I do try to focus on the idea of core instructions, or instruction types (have arithmetic, register manipulation and program flow, the rest is something you can look up and that counts whether you are doing something simple or horrific like modern X86).

Dr. Floppy

Ah, I should've specified organic chemistry, 90% of which is dominated by just four elements!

Core instructions and addressing modes are definitely key. If 6502 ASM were a typical 15-week college course, learning the eight different ways to LDA would easily be worth 2-3 weeks of time.


I should probably "learn assembly" one day.

I just wanted to make fan-content for my fandom, and stumbled onto ram edits that I wanted to apply to rom, such as moving items around, changing values, ect. So, I looked up documentation on Romhacking and eventually PS1 debuggers.

I honestly keep a chart of what "basic assembly functions" do for MIPS r3000, as well as x86 (no$psx uses x86 syntax for some reason), but I don't know barely anything about it except to read what's in front of me and calculate backwards what the PSX is getting it's numbers from. Where the memory address is, where the code that fills it is, ect.

Other than that, I don't know anything about "opcode", except "what" it is.
Apathetic, yet Helpful. :beer:
Project: Megaman Legends Remix


Quote from: kuja killer on August 13, 2017, 03:35:31 PM
from a #rom-hacking IRC log by DahrkDaiz i found one day on google search.
Daiz was teaching a couple people like "Solid T-Snake" (some name like that) how to do some simple things with Mario 1 NES. It was a super extremely long conversation, and that's how i learned how to do NES programming. Just because of reading a IRC chat log. :)

Solid T-Bone

I don't suppose you have a link to that log? I'd like to read it.