Here’s a post about loading CHR data! NESMaker uses a macro, which in turn uses a subroutine, to load the graphic tiles into the PPU. In this post, I will dissect what NESMaker does under the hood exactly, while adding some context to how the NES loads tiles from the game into its picture processing unit.
kevin81
Assembly 101: The status register
The 6502 registers youre probably most familiar with, are the accumulator and the X- and Y-registers. There are three more registers though, which you may not access directly through code, but are at least as important as the former three. In this post, I’ll explain all about the Status register, and how this works with other instructions. This is a somewhat longer post, so buckle up and dive in!
Assembly 101: Dynamic subroutines
Earlier, I wrote something about subroutines, how they work, what they do and why you need them. This time, I’ll explore the somewhat more advanced concept of dynamic subroutines, i.e. calling one of a few possible subroutines based on an external value.
Assembly 101: Lookup tables
Lookup tables, or LUTs for short, are a quick and easy way to reference indexed data. This post will try to explain how to use them in your game, using a general example.
Assembly 101: Labels
Labeling memory addresses will save you a lot of hassle. It’s easier to remember and reference “Object_speed” rather than its physical memory address, which could be something like $0337. How does labeling work, when are labels applied, and what’s up with that “Label already defined” error message?
Assembly 101: Subroutines
When developing in Assembly, you will definitely have to use a subroutine or two. JSR and RTS are the two main instructions that make subroutines work. What is a subroutine, how does it work and what are the possible pitfalls? Read all about it here.
Deep Dive: DrawSprite
In this post, we’re gonna take a look at the DrawSprite macro and see what it does and how it does it (as a whole and per segment of code).
Deep Dive: NESmaker Summer Camp ’22
This is a news message more than an insightful post, but it absolutely belongs to the Deep Dive category. Starting on wedNESday, july 6th 2022, Joe Granato (founder and creator of NESmaker) is organizing a five weeks long online boot camp for NESmaker developers, going deeper into Assembly coding then ever. The main topic will be the Empty module, one that has been untouched in tutorials up until now.
FAQ: Why won’t my music import?
Good music and sound effects are what can set your game apart from the others. NESmaker uses ggsound as its sound engine, which works quite nicely together with text files, exported via tools like Famitracker and Famistudio. There are a few caveats though; not everything Famitracker and Famistudio supports, is supported by ggsound in general, or NESmaker’s implementation specifically. Are you getting errors upon importing music or exporting the ROM file, or do things sound off after exporting? Here are some of the most common errors, and a way to help you fix them.
Assembly 101: Explaining addressing modes using LDA as an example
LDA is the assembly instruction to load a value into the accumulator. How does it work exactly, and which options are available with this instruction?