N64 Assembly

Updated: N64 Assembly YouTube Series

The same content updated with more explanation and showing how it's done. Twitch stream style.

https://www.youtube.com/playlist?list=PLjwOF_LvxhqTXVUdWZJEVZxEUG5qt8fsA

Why?

  • MIPS Assembly is easy to learn

  • 3D games in Assembly language

  • Simple Development Tools

I have wanted to learn an assembly language but felt like it was an overwhelming task and didn't have a good tutor/mentor to help me out. About a year ago I found Peter Lemon's Github and started to read everything there. When I found the really short ones and they had great comments it really felt approachable.

How can you write a 3D game in assembly language? On other platforms it requires large libraries of code that could be called from Assembly. On the N64 3D is 'native' and can be done with just a few instructions. Complicated games with 3D models are still complicated but simple shapes and objects remain simple even in assembly language.

I also struggled with the learning curve of setting up a Makefile and all of the other tools needed to develop C\C++ for N64.

  • Old tools require old operating systems

    • 16-bit doesn't run on 64-bit

  • GCC Command line tools are tricky to setup on Windows and generally better if you know *nix.

  • Most homebrew libraries haven't been updated in years

The 'bass' assembler is robust in supporting multiple platforms so basic knowledge stays the same. Try NES, GB, GBC, SNES, GBA, and a couple of others!

This tutorial would be considered a "Bottom -> Up" tutorial, it starts very simple with 5 instructions and even 5 lessons in we are only up to 10 instructions. What makes that interesting is the amount of work that can be done with 10 very simple instructions. The goal is that around lesson 10+ it's possible to make something very similar to Pong.