Monday 30 January 2017

Introduction

Foreword

In the Eighties there were a number of popular 8-bit game consoles.

One of them was the NES (Nintendo Entertainment System).

The CPU of the NES was also based on a very popular 8-bit CPU of that time , which was the 6502.

Last year I spend some time writing two blogs on writing an emulator emulating another 6502 machine, the C64 for both JavaScript and Android.

I reckoned that if you have tackled the emulation of the 6502, you can apply the knowledge emulating another 6502-based console.

Hence, in this series of blog posts I will be attempting the same approach for a NES emulator for JavaScript.

Again we will be following the approach of starting from scratch and building it up bit by bit as required.

The CPU part of things, however, I will not be developing from scratch since I have already done a JavaScript implementation of the 6502 for the C64, which I will use in my NES JavaScript emulator. Of course I will modify the 6502 emulation code a bit to fit within the NES-context.

Approach

As mentioned in the previous section, I will be leveraging off my C64 emulator code for the CPU implementation. In fact, I will be starting with the code of my C64 emulator as baseline, of course stripping out C64 specific functionality such as tape-emulation, VIC-II emulation and so on.

We will work towards emulating a specific game cartridge. The one we will be using will be Paperboy.

In Summary

In this blog I gave a brief outline on what the posts I have planned for this Blog.

In this blog we will be developing a NES emulator in JavaScript using the code of my previous C64 JavaScript Emulator as baseline.

We will work towards emulating the game cartridge PaperBoy.

In the next post we will have a look at the NES image file format. This file format is basically a file image of all the contents of a NES game cartridge.

We will also try to get our emulator to single step through the 6502 machine code on the cartridge.

Till next time!