A downloadable ROM

Download NowName your own price

This game was a hobby project over a week or so in December 2018/January 2019, to see if I could make a game that would run on original NES hardware. Written in 6502 assembly and clocking in at a cool 24KB, I was successful! All you need is an NES emulator and you'll be able to run this rom.


I used the FCEUXD emulator for debugging, however I was developing on a mac, and using FCEUXD through Wine cause some slowdown and stutters. The other emulator I know of is Nestopia for mac. I am unsure about emulators for Linux, but it should have the same Wine options anyway.


You can find the code for this project on github

Download

Download NowName your own price

Click download now to get access to the following files:

pong.nes 24 kB

Development log

Comments

Log in with itch.io to leave a comment.

(+1)

Just curious if you followed the nerdy nights tutorial to learn for this project.

(1 edit)

I did! Fantastic resource, are you learning yourself? I have some links to other pages that helped me with this and current NES projects if you'd like.

(+1)

Hey there! Yes, I am looking to learn and was searching for examples of what the tutorial results in. You did a fantastic job. Great design, too. 

Thank you! It's super cool you're following along with it, and if you don't mind the info dump I have some links of things that were very helpful to me when I made this a couple years ago and more recently when I refreshed myself on NES dev. 

6502 Instruction Cheat Sheet - very helpful page that just no-frills lists all of the instructions for 6502 assembly.

6502 Instruction Reference - a deeper version of the previous pretty much, more like documentation. Although there isn't a wealth of information it's still a great reference.

6502 Registers - some information on each of the defined registers (X, Y, etc), mostly the Processor Status section is very useful as it defines what each bit in the status is used for.

NES Architecture Overview - fantastic resource all about how the NES is set up. What are each of the CPU/PPU port addresses and what do they do,  CPU and PPU memory maps, discusses the .nes file format and mappers used for memory bank switching and the like.

And then I don't know what you're using by way of compiler, but I started using CA65 and LD65 recently and I think it works well for me. I used NESASM for this project and it's much easier to follow nerdy nights because you're using all the same syntax, so if you check it out and it looks overwhelming then nevermind! But here's some info on CA65/LD65:

CA65 Documentation

LD65 Documentation

Building an LD65 config file

Example project on github using CA65 & LD65 to compile and link

Alright, that's a whole lot so I'm sorry, but hopefully some of it is helpful! I'd love to see your final result from nerdy nights and anything else you might make!

(+1)

Oh wow! This is all going to be helpful. You're very kind and generous to share the information like this. I'm sure it took considerable time to discover these things, so I really appreciate it. And yeah, I like your Pong and would like to see your other work also

(+1)

I'll have to check out your other uploads :)