Hacker News Comments on
How we fit an NES game into 40 Kilobytes
Morphcat Games
·
Youtube
·
178
HN points
·
7
HN comments
- This course is unranked · view top recommended courses
Hacker News Stories and Comments
All the comments and stories posted to Hacker News that reference this video.⬐ alrlroipspSuper Mario Bros for NES is 32 KB
I love this video: https://youtu.be/ZWQ0591PAxMAs part of a Kickerstarter campaign, Morphcat Games made this video explaining how they eked out a really incredible game with only 40 Kb (a lot like Super Mario Bros 2). I definitely recommend checking this out as they go over interesting compression methods and more general thought processes.
⬐ noman-landThank you for sharing. These tricks are really clever!
⬐ WowfunhappyI really encourage you to want to watch this even if you're normally skeptical of video content. It uses the visual medium well, to show how large graphics can be made from a downright tiny number of tiles.
Does anyone know how it is done today, like with Micro Mages?
⬐ dormentoI do it in C (good enough for most purposes, although a little slow and bloated - most people do it straigh in ASM with extensions).I use Ubuntu, good old Sublime Text with C extension, FCEUX (Windows version on wine) and YY_CHR (for working with graphics). To compile, check out the awesome CC65 suite (it has a compiler, assembler, linker... the whole thing).
⬐ sircastorI used an emulator called NinTaco, a 6502 assembler, and VS Code. My game was very simple and completed in about 3 months (I didn’t have any sound and a very limited game)I think the crucial piece is the assembler and documentation about the start up and loop processes.
⬐ djmipsFor NES there are many development environments now... Probably dozens. The main modern advantage is emulators. I do enjoy folks who take a different approach like this dev who is using Lisp to make a NES game. http://www.dustmop.io/blog/2019/09/10/what-remains-technical...
⬐ WowfunhappyYou may want to watch this one even if you're generally skeptical of video content. It uses the visual medium well, to show how large graphics can be made from a downright tiny number of tiles.
⬐ WowfunhappyI know a lot of HN'ers are wary of videos, but I really do encourage watching this one. It's quite succinct, and it makes very good use of the visual medium as an explanatory tool. Super clever!
I'm absolutely blown away by some of the games they managed to make in under 13kb. This video "How we fit an NES game into 40 Kilobytes" is an interesting illustration of just how small these games are.
⬐ NortySpockAnd MicroMages (2019, featured in the video) was an excellent short game for the NES with tight controls. I bought a MicroMages cartridge in the IndieGogo campaign, gave it to a friend of mine who had an NES, and we had a blast playing the 2player mode. (also available as a standalone and emulated cartridge.)
I remember seeing this video on that about the clever compression tricks used to cram the sprites and map layouts into 40K.
See also Micro Mages https://youtu.be/ZWQ0591PAxM
ZFS for newbies https://www.youtube.com/watch?v=3oG-1U5AI9A main ideas behind ZFS and why it blows out the competition in many scenariosMaking C Less Dangerous in the Linux Kernel https://www.youtube.com/watch?v=FY9SbqTO5GQ
NUMA optimizations in the FreeBSD stack (Netflix) https://www.youtube.com/watch?v=8NSzkYSX5nY
How we fit a NES game in 40KiB https://www.youtube.com/watch?v=ZWQ0591PAxM
Very much agree with the parent.If you want a better idea on how you can cram everything into 40KB — using every trick in the book, including ones not considered 30+ years ago — take a look at a how a recently released NES game (Micro Mages) managed it.
Their primary design constrain was that they restricted themselves to 40KB, despite wanting to do far more than the games that were done in 40KB back in the 80s.
⬐ jpm_sdThis video is so well done! @dang this would make a much better top link than the nonsensical article posted originally
⬐ bopbopHaven'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:
And checking out forums.nesdev.com in general.
⬐ bopbop⬐ DowwieOh 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.⬐ makapufquick 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
⬐ mattseattleIt's an interesting project, and I enjoyed watching the video, Thanks for sharing.⬐ Hydraulix989How big are they normally?⬐ lostgame⬐ Scaevolus256kb, 512kb?⬐ firdakOffical NES games were between 24KB (e.g. Excitebike) and 768KB (Kirby's Adventure) in size. The Japanese Famicom even had a 16KB game (Galaxian).⬐ 0xcde4c3dbFamicom also had a 1024KB game (Metal Slader Glory).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⬐ unwindWell 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 ...⬐ bopbop⬐ monocasaIt 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.
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.