Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
How we fit an NES game into 40 Kilobytes [video] (youtube.com)
163 points by scott_s on Sept 6, 2018 | hide | past | favorite | 13 comments


Retro City Rampage for NES did something similar (32KB program ROM, 256KB graphics ROM), but the author also developed a High Level Assembler so you he could write structured code more directly: https://www.youtube.com/watch?v=Hvx4xXhZMrU


A lot of asm work back in the days was with fairly powerful macro assemblers that let you 80/20 rule yourself to fairly structured code.


Well this video is about fitting all of the vertically-scrolling 4-player run-and-jump action into 40 KB, with some very neat tricks to shave and save everywhere. Really interesting if you're into low-level stuff. The NES looks kind of fun to develop for ...


It is actually - I've done quite a bit over the past two or three years and 6502 assembly is really nice to program - it's hard to explain, but the fact it only has three registers combined with a relative ton of storage space for variables means you're constantly doing this three-card Monte shuffle that is very satisfying.

It's also all eight bit, obviously, so you're also dealing with nice, human manageable numbers of 0 to 255.


Haven't watched this but follow the nes dev scene closely, and I'm looking forward to this.

Some other good new releases(all three of these are freely downloadable):

Project blue: http://forums.nesdev.com/viewtopic.php?f=33&t=16785

Star Evil and FF: http://forums.nesdev.com/viewtopic.php?f=33&t=16993

For anyone interested in doing some new programming, I recommend starting with nesdougs tutorials, which'll get you started with a dev environment in c:

https://nesdoug.com/

And checking out forums.nesdev.com in general.


Oh and should probably mention there's another nes kickstarter on now, nebs n debs, which is looking good:

https://www.kickstarter.com/projects/dullahan-software/nebs-...


In addition to this talk, I recommend watching a documentary, Beep, about how musician-programmers managed to compose meaningful sounds and music in memory constrained systems.

http://www.gamessound.com/


quick summary : (video still interesting)

- optimize sprites as 8x8 tiles, use symmetry

- reuse sprites / tiles with different palettes

- define levels as metatiles of 32x32 made of 4x4 tiles

- set levels as symmetric, use high bit of metatile indices to define rotation of each metatile line.

- delta-encode hard mode wrt standard mode


It's an interesting project, and I enjoyed watching the video, Thanks for sharing.


How big are they normally?


Offical NES games were between 24KB (e.g. Excitebike) and 768KB (Kirby's Adventure) in size. The Japanese Famicom even had a 16KB game (Galaxian).


Famicom also had a 1024KB game (Metal Slader Glory).


256kb, 512kb?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: