*New This Update:*
- Links to tutorials, thanks to CartCollector
- ASM6: By Loopy!!!
- Highlighter for conTEXT Editor
- A tutorial to set NESASM up with ConTEXT Editor
- NotePad++ Language Definition Files by Fib Gibbley Miau and Banshaku
OK, less talk, more walk. so here it is. the sticky!!
(will get bigger with time) Please let me know if you would like to submit something!!!
* For those of you who just stumbled upon this forum and don't know about the nesdev homepage, it's here
* Nesdev Wiki here.
*** Assemblers/Compilers/Editors etc. ***
- NESICIDE Nintendo Entertainment System Integrated Development Environment. Looks pretty good.
and according to the author, it's "Everything you need in one package... "
- ConTEXT A text editor for windows with lots of different "highlighters", including one for 6502 Assembly language.
you can get it and the highlighter here, on the downloads page.
- NESASM Highlighter for ConTEXT Can be found here
NES Assembly highlighter(for NESASM by Me (opcodes, registers etc. ripped from Banshaku and Miau's LDFs Notepad++).
- Setting Up NESASM with ConTEXT Editor This shows you how to get NESASM running with ConTEXT, so you can hit F9 and go! Tutorial is Here
- Notepad++ can be found here. A nice code editor with some Language definition files by Fib Gibbley Miau and Banshaku
- 6502 Simulator Can be found here. I remember trying this out a long time ago. I'm glad i've found it again!!! I don't know if this is a new feature, but when you type an opcode, information pops up on the side panel, similar to intellisense!! nice!!!
"Integrated macro assembler, simulator and debugger for 650x microprocessor family.
Lets you write, test and run 6502/65c02 programs."
- ASM6 Loopy's Assembler!! Can be found here
- cc65 Can be found here
"cc65 is a complete cross development package for 65(C)02 systems, including a powerful macro assembler, a C compiler, linker, librarian and several other tools."
- WLA-DX Can be found here. i don't know much about this assembler, i'm still a NESASM n00b but i hear it's more accurate than NESASM. Some of its features are:
- SNES support
- SMS/GG support
- Gameboy support
- PC-Engine support
- NO$GMB symbol file writing
- Support for object and library files
- You can patch ROM images with code
- WLA GB-Z80 disassembler included
- Numerous ways to comment code away
- ROM image and program file compiling
- Multilevel macros (actually, functions)
- Some cool but unsupported stuff to compile it can be found here
- MagicKit v2.51 Can be found here
The archive contains :
- a NES assembler : NESASM
- a PC-Engine assembler : PCEAS
- a PC-Engine basic library (video, sound, joypad, interrupts)
- some documentation (assembler, hardware, tutorials)
- the source code of the assembler
- this site also keeps an archive of ASM demos for PCE or NES on the bottom of the page!!!! NICE I didn't notice that before!!!
- DASM - DASM is a versatile macro assembler, written in C, with support for target microprocessors including 6502, 68HC11, 68705, 6803, HD6303, F8 and 6507.
- NBASIC can be found here
NBASIC is a BASIC interpreter designed to mimic the operation of 8/16bit microcomputers of the early 1980’s like the Tandy Color Computer®, Apple ][e®, Commodore 64®, Texas Instruments TI-99/4A®, and others.
*** Setups ***
- (Celius) A simple WLA-DX NROM setup so people could start coding right away.
Get It Here
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Celius wrote:All you need to do is put the test code under the reset routine.
*** Exercises/Tutorials/Examples/Reading ***
- NESASM Tutorial Can be found here. "New version in the works" according to the author (bunnyboy).CartCollector wrote:This hasn't been updated in a while, but I just found some docs that I think should be included (though some are already on the main site).
- Assembly In One Step CartCollector: "(this is a great read if you're new to 6502 assembly)" Yep, I do remember this one!
- M.J. Malone's DR6502 docs, especially these ones for beginners: First lesson, Second lesson
There's an archive of all that he wrote for the DR6502, including some helpful programming examples, here
- Gravity FAQ (must read if you want to make a platformer) Ding!
- Another by bunnyboy Can be found here. Looks really cool, so get yourself and account and check it out.
- Opcodes Tutorial Can be found here.
Some cool stuff about Opcodes.
- NesHacking Can be found here Nice intro tutorial with some exercises at the end. Second one is here
- Commodore64 Programmer's Reference Guide Can be found here.
Loads of info, some might not be useful to you though. Check out chapter 5 (about page 176 of the PDF version)
- RomHacking.Net List of tutorials contributed by users, categorized as "Assembly".
- (electro) Shows us sound lovers how to ask the right questions!!!
- (Jeroen) makes his first ROM and contributes the *source* to the community!! Cool points for him!
- (scanty) make a simple demo that goes through all the colour s(more info to come)
- (kyuusaku) there are some building blocks that I think are EXTREMELY important to learn (actually to *know*!) in order to succeed:
- Number systems (decimal vs hexadecimal vs binary)
- Boolean gates (and, or, not, xor)
- Address space and word size
- Pointers (addresses in memory as opposed to data in memory)
- Roughly how an ALU works (especially the flags)
- Signed numbers ("two's complement")
- ROM Hacking tutorial - Super Mario Clouds you'll need DASM and NBASIC, along with the source code on the website
* Logic Operations
Code: Select all
;thanks blargg 1 1 0 0 A Inputs 1 0 1 0 B -------------------- 0 0 0 0 FALSE 0 0 0 1 NOR 0 0 1 0 JUST B 0 0 1 1 NOT A 0 1 0 0 JUST A 0 1 0 1 NOT B 0 1 1 0 A XOR B 0 1 1 1 A NAND B 1 0 0 0 A AND B 1 0 0 1 A XNOR B 1 0 1 0 B 1 0 1 1 A IMP B 1 1 0 0 A 1 1 0 1 A LIMP B 1 1 1 0 A OR B 1 1 1 1 TRUE
NOT 0 = 1
NOT 1 = 0
0 AND 0 = 0
0 AND 1 = 0
1 AND 0 = 0
1 AND 1 = 1
0 OR 0 = 0
0 OR 1 = 1
1 OR 0 = 1
1 OR 1 = 1
0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0
NAND = AND with inverted (NOT) output
NOR = OR with inverted output
XNOR = XOR with inverted output