Deep Dive: Bankswitching

So, earlier on, I explained that NESmaker projects use Mapper 30, which has 32 banks of 16KB data. The NES console itself can only handle up to 32KB – or 2 NESmaker banks – of program data though. So how can we get access to all the data we have available on the cartridge? Well, this is where bankswitching comes in handy.

Read more

FAQ: What’s in the bank?

Some questions that pop up every now and then across several community channels – whether it’s the Facebook group, the NESmakers forum or Discord – are about the banks a NESmaker project use. How many banks are there, what’s (by default) in which bank, and what is this bankswitching thing all about? Let me try and explain them.

Read more

Enhance! Two ways to battle sprite limits

The NES, although being an awesome console (especially considering its age), is not without its limitations. For example, the NES can draw up to 64 sprites on screen. A sprite is an 8×8 pixel image that can move freely on screen. So for instance when your main character is a 16×16 pixel character, it will use 4 of the 64 available sprites. To make matters worse, whenever there are more than 8 sprites on a horizontal scanline, additional sprites on that line won’t be drawn. Here are two code modifications which can help you overcome this limitation.

Read more

Enhance! Enabling user screen bytes

NESmaker is a nifty piece of software, enabling beginning developers to create a game for the NES. It’s not without its culprits though. For example, some of the UI elements are no longer supported by the accompanying Assembly scripts. Luckily, there’s a sizable community helping each other out getting the most out of NESmaker. The Enhance! series on this website will help you using NESmaker to its full potential, by re-enabling deprecated scripts, fixing bugs and optimizing core code. This article explains how to enable the user screen bytes in the NESmaker UI.

Read more