Minecraft Clone on the NES

A place where you can keep others updated about your NES-related projects through screenshots, videos or information in general.

Moderator: Moderators

WinXP2001
Posts: 2
Joined: Sat May 16, 2020 9:04 am

Minecraft Clone on the NES

Post by WinXP2001 » Sat May 16, 2020 9:27 am

Is it possible to port a 2D Minecraft clone on the NES, with the limited number of Kilobytes available. If so, port the game to the NES and see the final results.

Since the NES has 2 Buttons (A/B), 2 Side-Buttons (Select, Start) and a D-PAD, we should limit 2D Minecraft in a big way, so that it would make use of the NES Controls.

Since the NES has limitations like 4 colors per sprite available, we should limit the Minecraft Textures/Sprites to only 4 colors.

Scrolling in Minecraft NES will be decent, as it reads every block data available per line (as several NES games do this, like Kirby's Adventure and Super Mario Bros/SMB2/SMB3)

Mobs in this Minecraft NES Clone may cause a bit of frame-rate slowdown with your player, but it's normal with the NES, in Creative Mode, we must limit the number of mobs that it will be placed (much like other Legacy Console/Handheld versions of Minecraft, like the New Nintendo 3DS Edition).

Creative Mode and Survival Mode will be decent enough, for Survival & Creative, Each world will be 256 high (up) by 256 low (bottom), as the NES can('t) really do infinite worlds, and a world border would be fine enough for this NES Clone.

After you lost all your health in this Clone and want to respawn, Respawning would read every single line of data for the NES and restore the data in where you were in previously.

Mining, Generating and Placing Blocks, well, Remove only one sprite and add back the same sprite without any issues with sprites, Generating Blocks when making a New World however, it must place every sprite without having issues with it.

Your player will move when a block is placed or generated automatically, but will fall when the block is not placed or generated (mostly mined)

Physics like Water and Lava may work out nice, but may take some time to get use to with NES Code, as we don't want to take up too much space for this NES Minecraft clone project.

We will NOT add in Multiplayer to this NES Minecraft clone, as it would take up more data in this NES Homebrew clone.

User avatar
tokumaru
Posts: 11646
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: Minecraft Clone on the NES

Post by tokumaru » Sat May 16, 2020 10:00 am

The biggest problem in making something like Minecraft on the NES is the large amount of RAM necessary to represent large modifiable worlds. If the world was 256x256 blocks, which's not particularly large IMO, you'd need 64KB of RAM, which's doable, although not common, on the NES.

Ideally we'd be able to make worlds much larger by implementing some form of compression on the fly, on the basis that's it's very unlikely that a player will modify every single block in the map.

WinXP2001
Posts: 2
Joined: Sat May 16, 2020 9:04 am

Re: Minecraft Clone on the NES

Post by WinXP2001 » Sat May 16, 2020 10:15 am

Like, Angry Birds was able to run on the NES almost perfectly with a bootleg clone called Super Angry Birds (and an impressive one as well, with 386KB for this bootleg port alone): https://www.youtube.com/watch?v=FgxmtuEodDg

So, we may limit large worlds in a big way with this Minecraft NES Homebrew clone to save up Kilobytes and block data.

User avatar
Memblers
Site Admin
Posts: 3820
Joined: Mon Sep 20, 2004 6:04 am
Location: Indianapolis
Contact:

Re: Minecraft Clone on the NES

Post by Memblers » Sat May 16, 2020 10:51 am

For a (long!) while I've been thinking about how FlashROM would be perfect for a large, editable, persistent world. There are some technical challenges though, the boards that are self-flashable I think typically don't include WRAM. UNROM-512 and GTROM are a couple low-cost boards with 512kB flash. One can write to FlashROM easily enough, but modifying a programmed byte requires erasing a 4kB sector. On GTROM at least, there is enough PPU RAM available for temporary storage when rewriting sectors. Or one could just swap between sectors directly, marking the old one as erasable/outdated.

User avatar
tokumaru
Posts: 11646
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: Minecraft Clone on the NES

Post by tokumaru » Sat May 16, 2020 11:02 am

WinXP2001 wrote:
Sat May 16, 2020 10:15 am
Angry Birds was able to run on the NES almost perfectly
Except that this Angry Birds clone killed one of the key aspects of the game, which was the structures crumbling and killing the pigs. Not only is the NES CPU too slow for complex physics calculations, but the sprite capabilities of the system make it impossible to draw structures made of many moving pieces.

User avatar
dougeff
Posts: 2673
Joined: Fri May 08, 2015 7:17 pm
Location: DIGDUG
Contact:

Re: Minecraft Clone on the NES

Post by dougeff » Sat May 16, 2020 11:44 am

I'm working on a Minecraft / Terreria style game. With SXROM and 32 kB SRAM.

https://youtu.be/8jakriB2Q-o
nesdoug.com -- blog/tutorial on programming for the NES

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

Re: Minecraft Clone on the NES

Post by Erockbrox » Sat May 16, 2020 2:47 pm

I think someone using NESmaker already did something like this. It was called XIO or something. The controls were confusing at first but you mine blocks and then relocate them. Look up 2019 byte off games to find it.

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

Re: Minecraft Clone on the NES

Post by lidnariq » Sat May 16, 2020 5:40 pm

Any chance you mean Momoc?

It's conspicuously lacking any kind of backtracking, so there's no persistent world. It looks like it's a puzzle game separated by grinding for resources.

User avatar
Alp
Posts: 220
Joined: Mon Oct 06, 2014 12:37 am

Re: Minecraft Clone on the NES

Post by Alp » Sat May 16, 2020 7:08 pm

Didn't Notch make a NES-like Minecraft game, for Ludum Dare, a few years back?

Edit:
I found it: http://ludumdare.com/compo/ludum-dare-2 ... ew&uid=398

He had kept things simple, with each region split into different Overworld maps, separated by staircases. (Underground, Overworld, Sky)

Something like that seems like it'd be doable on the NES.

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

Re: Minecraft Clone on the NES

Post by calima » Sun May 17, 2020 1:03 am

And how many writes can unrom-512 and gtrom flash tolerate? The worst modern flash is only 100 writes, you'd kill it in half an hour of minecrafting.

M_Tee
Posts: 412
Joined: Sat Mar 30, 2013 12:24 am
Contact:

Re: Minecraft Clone on the NES

Post by M_Tee » Sun May 17, 2020 3:17 am

Could something like Broke Studios' wifi adapter be used to store the data server side?

User avatar
Memblers
Site Admin
Posts: 3820
Joined: Mon Sep 20, 2004 6:04 am
Location: Indianapolis
Contact:

Re: Minecraft Clone on the NES

Post by Memblers » Sun May 17, 2020 4:23 am

calima wrote:
Sun May 17, 2020 1:03 am
And how many writes can unrom-512 and gtrom flash tolerate? The worst modern flash is only 100 writes, you'd kill it in half an hour of minecrafting.
For SST39SF it's 100K per sector, 4kB in size, so there are 128 in total. I've noticed older versions of the datasheet say 1 million, but from what I've read, 100K was chosen as a trade-off for faster erase performance, and it's pretty good. IIRC, sector erase is on the scale of about 1 NES frame.

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

Re: Minecraft Clone on the NES

Post by lidnariq » Sun May 17, 2020 12:10 pm

The most immediate problem to me with trying to store a massively mutable world in flash with a 4K erase size is that the NES only has 2K of RAM. And although SST flash (like most flash) supports partial burns (i.e. 1 can be changed to 0 at any time, regardless of whether the other bits in the same byte are already 0), you still have to hold the entire contents of the sector for re-programming when you erase it.

Some kind of log-structured filesystem will help too.

User avatar
qbradq
Posts: 951
Joined: Wed Oct 15, 2008 11:50 am

Re: Minecraft Clone on the NES

Post by qbradq » Wed May 20, 2020 7:27 pm

My 2 cents, you can fit a 30x256 map neatly into the 8KB WRAM and still have 512 (non-continuous) bytes for misc. save storage. Plus you could use the SMB3 "fake four-way" if you're into that sort of thing.

User avatar
tokumaru
Posts: 11646
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: Minecraft Clone on the NES

Post by tokumaru » Wed May 20, 2020 9:19 pm

qbradq wrote:
Wed May 20, 2020 7:27 pm
My 2 cents, you can fit a 30x256 map neatly into the 8KB WRAM
That'd be incredibly small for a customizable world... you wouldn't even be able to build a skyscraper! My 2 cents: if you want to accomplish something extraordinary on the NES, you can't do it using ordinary techniques. An uncompressed array of blocks in WRAM is the most straightforward thing a programmer could do when implementing large dynamic maps, but in the context of Minecraft, which's supposed to offer world-sized worlds, what you can implement that way isn't really that large.

I think it would be better to go for a dynamic memory allocation approach. You'd start with a seemingly infinite procedural map, without much detail, requiring little to no memory, and as the player modified it you'd allocate blocks of memory to hold the customized regions (preferably using some kind of compression). Drawing the world would require generating the procedural parts and then overlaying the customized regions. For better performance when scrolling, the area around the player could be cached, like in SMB. This approach would cause the memory to be used wherever it was needed, without limiting the player too much. The memory would eventually end, of course, and at that point you could either be honest about it and prevent the player from further modifying the map, or be a dick and silently destroy the customized regions that were farther away and claim the memory they were using.

Post Reply