Total newb
Moderator: Moderators
Total newb
OK, here goes nothing. I have never programmed in assembler before, and the extent of my NES hacking has gone about as far as making a couple NROM mapper eprom carts with ROMS on them from teh internets. I want to learn how to make something of my own for the NES. Where should I start? My current programming knowledge consists of mostly very old variants of BASIC like Tandy 102 basic and Applesoft. I don't know any C either. Any suggestions?
You'll also need to learn about the 6502 CPU. http://www.6502.org has alot of information.
Learn numbering systems like hex and binary. Know how to use a hex editor.
The first thing I did was find source code that I could assemble, and started messing around with that. I'd say to jump right in. I had no programming background when I started, other than (ab)using QBASIC.
And as for C, it's a language where you describe to a compiler the assembly code you want it to create. It's a generic description of assembly, you won't need to know it.
The first thing I did was find source code that I could assemble, and started messing around with that. I'd say to jump right in. I had no programming background when I started, other than (ab)using QBASIC.
And as for C, it's a language where you describe to a compiler the assembly code you want it to create. It's a generic description of assembly, you won't need to know it.
But you should know at least one language used for making PC programs, even if only to make the tools for converting data to be used by your NES programs.Memblers wrote:And as for C, it's a language where you describe to a compiler the assembly code you want it to create. It's a generic description of assembly, you won't need to know it.
Celius and Memblers seem to like making their tools for the NES itself. After all, if we use PC tools to make PC programs, why not on the NES? =)tepples wrote:But you should know at least one language used for making PC programs, even if only to make the tools for converting data to be used by your NES programs.
Seriously, I know that some things just can't be done on the NES. My BMP to level map converter is a pretty good example, as it works with images as big as 20MB. and editing everything tile by tile on the NES would be a pain in the ass.
So yeah, I agree that knowing how to program for a PC does help a lot.
If you have a chance, try this 6502 simulator here. This is very useful for testing how your code react when you start to learn this language.
I used it a few time to debug some code and I could see which register were affected, trace it, find where the bug was.
Now what I want is a Nes simulator
I used it a few time to debug some code and I could see which register were affected, trace it, find where the bug was.
Now what I want is a Nes simulator
There are a few problems with that:tokumaru wrote:Celius and Memblers seem to like making their tools for the NES itself. After all, if we use PC tools to make PC programs, why not on the NES? =)
- Sometimes you have to use floating-point math and transcendental functions such as cos() and exp() to make frequency lookup tables for music players or trig lookup tables for aiming code. Those are part of the C standard library on PCs, but not everybody wants to try extracting them from the version of Applesoft BASIC that comes with AppleWin just to use them in an NES program.
- PC-based tools can close themselves automatically when they finish, allowing use from within makefiles. Which major NES emulator lets the emulated ROM cause the emulator to either exit or load a different ROM?
- You still have to extract the completed data from SRAM in order to put it into your finished ROM.
Does FCEU-ABCSOUP comes close?Banshaku wrote:Now what I want is a Nes simulator
FCEU-ABCSOUP refers to the alphabet soup of FCE Ultra debugger mods: FCEUD, FCEUXD, FCEUXD SP, FCEUX, etc. Readers can substitute their favorite.