Most people learned how to make a ROM first, then how to write assembly code, then initiate the system, then how to optimize code.
I learned how to write assembly code first, then how to optimize code, then how to make a ROM, and then how to initiate the system.
Is there truly a "wrong order?" Each person/individual learns differently, and has had different experiences that lead them on different paths, hence different order-of-operation.
I've known 6502 asm for 30 years.
I don't think there's a proper order when we're talking about the kind of old technology we work with here. And if you're working with multiple systems, you might have to go through some of these steps multiple times, seeing as all systems are initialized differently and might use different CPUs, but a lot of the knowledge you can carry over.
psycopathicteen wrote:
Most people learned how to make a ROM first, then how to write assembly code, then initiate the system, then how to optimize code.
I learned how to write assembly code first, then how to optimize code, then how to make a ROM, and then how to initiate the system.
Can you expand in the idea of why "how to make a ROM" is its own category? Is there something special about making a ROM? Or do you mean more specifically data layout and structure in relation to a package (rom) vs just writing snippets of code to test on the system?
(Joking) You know, making a ROM, like
this.
tomaitheous wrote:
psycopathicteen wrote:
Most people learned how to make a ROM first, then how to write assembly code, then initiate the system, then how to optimize code.
I learned how to write assembly code first, then how to optimize code, then how to make a ROM, and then how to initiate the system.
Can you expand in the idea of why "how to make a ROM" is its own category? Is there something special about making a ROM? Or do you mean more specifically data layout and structure in relation to a package (rom) vs just writing snippets of code to test on the system?
I didn't know how to use a command prompt.
lidnariq wrote:
(Joking) You know, making a ROM, like
this.
That spaghetti!
A stack of those and a discrete game logic circuit = instant art scholarship. i DO have a bucket of diodes...
WheelInventor wrote:
lidnariq wrote:
(Joking) You know, making a ROM, like
this.
That spaghetti!
A stack of those and a discrete game logic circuit = instant art scholarship. i DO have a bucket of diodes...
Damn that's hard core! I'm going to build myself a 96 megabit SNES cartridge with those things!
I learned how to program in Applesoft BASIC, then the BASIC.SYSTEM prompt in Apple ProDOS, then 6502 assembly language, then C in CodeWarrior on a Mac, then the MS-DOS command prompt, then QBasic, then Borland Turbo C, then DJGPP (GCC for DOS), all before seeing my first NES emulator in 1999 or so. The main reason I started to learn to program the NES was that I had reached a limit in what I could comprehend at the time through hacking pattern tables, strings, etc.
Once I knew the DOS prompt, the Linux command prompt wasn't a big jump, and once I knew 6502 on the Apple II, the NES wasn't a big jump either.
I was first modifying game INI files and editing BMPs and stuff to mod games. Then, I used Batch files with a few commands. Then, I used C++ a bit, but didn't know anything. Then, I got into the Multimedia Fusion series which have totally ruined my vision of programming. Then, I tried QBASIC and learned plenty and even made my own ASCII labyrinth game. After that, my high school mentor told me to stop wasting my time and I learned C and C++. Later on a bit of assembly of AVR microcontrollers and C/C++ and Bascom for XMEGA microcontrollers. In the meanwhile, I've been learning Game Maker Language and I've been trying to make a game where one single object can be inherited and it contains all the important game physics stuff. Later, I tried the NES assembly and I was horrified because of how hard it is to program it. It has been a total adventure. And now I'm learning HTML and CSS in college and sucking so bad at it in terms of positioning divs with floats and blocks and etc..
My grandmother was the one who got me interested. She programmed cobol and fortran and had all these
manual programming sheet blocks, which of some were partly filled in, which she gave me. I got a 286 laptop the same year, started with doing text adventure games composited purely from batch files and catalogs, then found qbasic and have a lot of fond memories of that piece of software. Learned how to use
hexedit ResEdit for macOS 7.5 to modify graphics in shareware games. Then took a long pause over many years before gaining an interest in figuring out how to hack nintendo games, then starting to stalk this forum and finally create an account. Got stuff to assemble and have burned it onto carts, but still have a lot to learn before i can produce something that's fun in the most modest sense.
BASIC -> LOGO -> ResEdit -> NES Game Genie -> Hex editing Amiga binaries -> Pascal -> C++ -> ASM
A not-too-weird order, I think.
It was learning how to "program" non-randomly with the Game Genie that sparked my interest in low-level hacking, as opposed to HLL software, looking back. Thank you Game Genie!
ResEdit! Now i remember. Got flooded with memories
I do not remember what programming I have learned (I think it was BASIC), but I remember I learned the UNIX command line and utilities (before I ever touched a computer) before learning DOS, although I used a computer with DOS before using UNIX.
I'm not fully sure of the order of things anymore, but...
general messing around with computers -> Clickteam products (e.g. Klik n Play, Click and Create) -> N64 Gameshark codes and NES romhacking (also some editing of PC games for funsies) -> half-hearted Visual Basic attempt -> using the utilities of the N64 Gameshark Pro (which really helped, IMO; it's how I was introduced to bitfields) -> programming schooling (high school, college) -> learned 6502 assembly on my own after thinking it was unattainable for many years -> spending too much time working with a bunch of other retro consoles.
I guess I learned in the wrong order? Outside of messing with Basic and reading a few chapters on C++ (didn't write code though; read a few chapters of a book). My real experience is pretty much (in order); x86 assembly language, z80 and GBx80 assembly, HuC6280 (and 65x variants, including '816), learned C on PC, 68k assembly, PIC16f series assembly (horrible! but I made it into a video chip that output blocky composite video using resistor ladder), 810v asm (PC FX model), MIPS assembly, ARM assembly, SH2 asm.. some other processors in asm, and this year I've just learned Java and the basis of Object oriented programming. The trend is that I'm moving away from assembly :B
The way I learned programming led to a lot of misunderstandings. I knew I could optimize code a lot better than Capcom and Konami did, but had no way to prove it, because I didn't know how to get the code I wrote into a ROM.