By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables...

27
Emulating the Nintendo Entertainment System By Danny Matthews Supervised by Dr Des Watson

Transcript of By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables...

Page 1: By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.

Emulating the Nintendo Entertainment System

By Danny Matthews

Supervised by Dr Des Watson

Page 2: By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.

“A very precise form of simulation which enables one type of computer to operate as if

it were a different type of computer.” - BCS

Emulation

NES Software

NESEmulator

Executes on

Executed on

Executed on

Executed onExecuted on

Page 3: By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.

8 Bit Video Games Console Released in 1983

Hugely Successful: 60 Million Units Sold Over 1000 Released Titles

Finally Discontinued in 1995: Super Nintendo - 1990 Sony Playstation – 1994

Major Player in Revitalising the Market After the Crash of 1983

NES Overview

Page 4: By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.

NESFour Main Units

Central Processing Unit (CPU)Picture Processing Unit (PPU)Audio Processing Unit (APU)Input

Development ToolsDebuggerName Table ViewerPattern Table ViewerImplemented using Java 1.5

Project Overview

Page 5: By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.

Long Time interest in Computer EmulationThe NES in particular, for reasons of

nostalgia

Interest in the logic behind the Hardware

Respect for the developers forced to work with such a constrained environment

Great Extension Possibilities

Motivations

Page 6: By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.

Central Processing Unit (CPU)• 151 Official Op-codes• 13 Addressing Modes• 7 Registers•7 Regions of Memory

Page 7: By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.

Memory Mapping

Uses Memory Mapping to Interact With External Hardware.

Reading/Writing to Certain Locations in Memory Actually reads/writes to external memory and registers.

Memory Mirroring

Certain Locations in Memory "mirror" the Contents of Other Locations.

Writing to a Mirrored Location Will Change the Content in All Mirroring Locations Also.

Central Processing Unit (CPU)

Page 8: By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.

Central Processing Unit (CPU)

Reads From The NES Cartridge

Reads/writes to the PPU,APU and I/O Registers

Writing to $0800-$2000Behaves identically to writing to $0000-$07FF

Page 9: By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.

Renders the Generated Images to the Television

Four Main IssuesColour PalettesPattern TablesName TablesSprites

Picture Processing Unit (PPU)

Page 10: By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.

Colour Palettes

52 Possible Colours (Master Palette) Two Useable Palettes:

Image Palette Sprite Palette

25 Colours on Screen at Any One Time

Picture Processing Unit (PPU)

Master Palette

Page 11: By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.

Pattern Tables

Store 8x8 Tiles

256 Tiles Per Table

Picture Processing Unit (PPU)

Page 12: By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.

Picture Processing Unit (PPU)

Spr i te Tab le Image Tab le

Page 13: By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.

Sprites

Images Capable of Independent Movement Around the Screen

Sometimes Controllable by the User Made up of tiles from the Pattern Tables

Picture Processing Unit (PPU)

Made up of 8 Tiles

Made up of 4 Tiles

Page 14: By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.

Name Tables

32 x 30 Table Each Element Stores a Reference to a Tile in one of the

Pattern Tables

These Tables are Used to Form the Backgrounds

Picture Processing Unit (PPU)

Name Table

Contains References toInterpreted by the PPU as

Page 15: By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.

Picture Processing Unit (PPU)

Spr i tes

Images

Pattern Tables

Sprites

Name

Tables

Page 16: By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.

5 Sound Channels2 Pulse ChannelsTriangle ChannelNoise ChannelDelta Modulation Channel (DMC)

Mixer

Audio Processing Unit (APU)

Page 17: By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.

Waveform Channels

Each contain a sequence of values to be output. This sequence is stepped through at a user-defined rate

(period) Until the sequence is progressed, the current sequence

value is output periodically

e.g. given the sequence {0,1} and a period of 5:

[0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0…]

Audio Processing Unit (APU)

Page 18: By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.

Pulse Channel

Two Possible Voltages (0 or 1)

Four Possible Duty Cycles

16 Level Volume

Pitch Bending Capabilities

Audio Processing Unit (APU)

Page 19: By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.

Triangle Channel

16 Possible Voltages (0-15)

Fixed Volume

Capable of Longer play duration than the other channels

Audio Processing Unit (APU)

Page 20: By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.

Noise Channel

Outputs a Pseudo-Random sequence of bits

Two Modes: 93 Possible Voltages 32767 Possible Voltages

16 Level Volume

Audio Processing Unit (APU)

Page 21: By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.

Delta Modulation Channel (DMC)

Allows the Playback of Audio Samples From Memory Achieved Through the Use of Three Units:

Memory Reader Sample Buffer Output Unit

Audio Processing Unit (APU)

Page 22: By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.

Mixer

Input: The Output of all 5 Sound Channels Output: An Analogue Audio Signal

Audio Processing Unit (APU)

Pulse 1Pulse 2

Triangle

Noise

DMC

Mixer Analogue Signal

Page 23: By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.

InputStandard Controller

• Movement in Four Directions• Two “Action” buttons• Two “Control” Buttons

Movement

“Control”“Action”

Page 24: By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.

Debugger

Development Tools

System State

CPU Registers

PPU Registers

PPU State

Breakpoint System Interrupt Points Register Value Points

Step/Resume

Functionality

Disassembler

Memory Viewer

CPU Memory

PPU Memory

Page 25: By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.

Name Table Viewer

Development ToolsName Tables

Scroll Lines

Attribute Table

Information

Name Table Data Display

Display Options

Page 26: By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.

Development ToolsPattern Table Viewer

Pattern TablesTile and Palette

Information

Display

OptionsPalettes

Page 27: By Danny Matthews Supervised by Dr Des Watson. “ A very precise form of simulation which enables one type of computer to operate as if it were a different.

The Software in Action

Graphical Auditory