96kb FPS

Discuss technical or other issues relating to programming the Nintendo Entertainment System, Famicom, or compatible systems.

Moderator: Moderators

Post Reply
Erockbrox
Posts: 388
Joined: Sun Nov 23, 2014 12:16 pm

96kb FPS

Post by Erockbrox » Sat Apr 24, 2021 8:38 pm

I just saw this video about how a team of coders used some special techniques and make a really nice looking game fit within a very small space 96 kilobytes. I was wondering, could similar methods also be used for making NES games.

https://www.youtube.com/watch?v=bD1wWY1YD-M

Like for instance, they used algorithms to draw the graphics so that they didn't have to store textures. It's a pretty interesting video.

User avatar
Gilbert
Posts: 476
Joined: Sun Dec 12, 2010 10:27 pm
Location: Hong Kong
Contact:

Re: 96kb FPS

Post by Gilbert » Sat Apr 24, 2021 9:14 pm

I remember trying this game and was amazed by it. Never dug into how it's done (so thanks for the video!) but I figured that (nearly) everything was procedurally generated.

My virus scanner later treated the executable as a threat (possibly because it did a lot of hacky stuff at low level) and deleted it automatically. I just didn't care as I was disgusted by FPS and quit playing them since around the turn of the millenium.

lidnariq
Posts: 10663
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: 96kb FPS

Post by lidnariq » Sat Apr 24, 2021 9:56 pm

Not really. These very tiny demoscene products are relying on the other side of space-vs-time tradeoffs: a fast CPU, and lots of space to store the results of dynamic generation.. The NES is both slow and has a paucity of RAM, so dynamic generation of anything noticeably more complex than, say, 2600 Pitfall's LFSR-based level design is going to be difficult.

You might look at the small demos for all legacy machines to see what's reasonably in scope. The favorites on Pouet (in terms of "most thumbs up" which is roughly equal parts "popularity" and "interesting"), filtered for older devices and demos that are 32KB or smaller, comes up with a bunch for the comparatively beefy Amiga AGA, and ... a bunch of others that are probably actually a reasonably proxy for what's doable on the NES.

More reading: search for "bytebeat"

calima
Posts: 1373
Joined: Tue Oct 06, 2015 10:16 am

Re: 96kb FPS

Post by calima » Sun Apr 25, 2021 12:45 am

Sure, but it would take an eternity in loading times. Even that had long loading times on a PC.

It would also require a board with tons of banked CHR RAM and RAM, otherwise you'd get those loading times every level/whatever.

A roughly comparable scenario is very advanced compression. Someone used rABS (1-bit asymmetric numerical coding) to get very high compression for some 4kb demo on a 6502 IIRC, but it had a loading time like a minute.

Erockbrox
Posts: 388
Joined: Sun Nov 23, 2014 12:16 pm

Re: 96kb FPS

Post by Erockbrox » Sun Apr 25, 2021 11:12 pm

But what about trying to do something like this with the N8 everdrive pro with its cyclone 4 FPGA and extra RAM.

lidnariq
Posts: 10663
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: 96kb FPS

Post by lidnariq » Sun Apr 25, 2021 11:41 pm

... You already asked that question. viewtopic.php?t=21800

calima
Posts: 1373
Joined: Tue Oct 06, 2015 10:16 am

Re: 96kb FPS

Post by calima » Mon Apr 26, 2021 12:22 am

Plus that doesn't make any sense: if you're targeting the Everdrive, you can already access gigabytes.

tepples
Posts: 22377
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: 96kb FPS

Post by tepples » Mon Apr 26, 2021 5:53 am

How convenient is it for a program running on the EverDrive N8 or EverDrive N8 Pro to access data outside the ROM and save game, even if restricted to the same directory? I ask because for comparison, on the Game Boy, a means hasn't been found for a ROM running on an EverDrive GB X3/X5 to read and write other files, and this has caused inconvenience for a particular Super Game Boy-related project.

calima
Posts: 1373
Joined: Tue Oct 06, 2015 10:16 am

Re: 96kb FPS

Post by calima » Mon Apr 26, 2021 10:28 am

I haven't looked. Ed64 has a SD card API, N8 (/pro) likely has something similar. Dig around in krikzz.com/pub.

edit: Remembered the Mega Everdrive Pro's video player also uses a similar API to access huge files.

Post Reply