Upload
evania
View
32
Download
0
Embed Size (px)
DESCRIPTION
Emulating the Nintendo Entertainment System. By Danny Matthews Supervised by Dr Des Watson. Emulation. “ A very precise form of simulation which enables one type of computer to operate as if it were a different type of computer. ” - BCS. Executed on. Executed on. NES Software. NES - PowerPoint PPT Presentation
Citation preview
Emulating the Nintendo Entertainment System
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 type of computer.” - BCS
Emulation
NES Software
NESEmulator
Executes on
Executed on
Executed on
Executed onExecuted on
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
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
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
Central Processing Unit (CPU)• 151 Official Op-codes• 13 Addressing Modes• 7 Registers•7 Regions of Memory
Memory MappingUses Memory Mapping to Interact With External Hardware.Reading/Writing to Certain Locations in Memory Actually reads/writes to external memory and registers.
Memory MirroringCertain 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)
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
Renders the Generated Images to the Television
Four Main IssuesColour PalettesPattern TablesName TablesSprites
Picture Processing Unit (PPU)
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
Pattern Tables Store 8x8 Tiles
256 Tiles Per Table
Picture Processing Unit (PPU)
Picture Processing Unit (PPU)
Spr i te Tab le Image Tab le
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
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 to Interpreted by the PPU as
Picture Processing Unit (PPU)
Spr i tes
Images
Pattern Tables
Sprites
Name Tables
5 Sound Channels2 Pulse ChannelsTriangle ChannelNoise ChannelDelta Modulation Channel (DMC)
Mixer
Audio Processing Unit (APU)
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)
Pulse Channel Two Possible Voltages (0 or 1)
Four Possible Duty Cycles
16 Level Volume
Pitch Bending Capabilities
Audio Processing Unit (APU)
Triangle Channel
16 Possible Voltages (0-15)
Fixed Volume
Capable of Longer play duration than the other channels
Audio Processing Unit (APU)
Noise Channel
Outputs a Pseudo-Random sequence of bits
Two Modes: 93 Possible Voltages 32767 Possible Voltages
16 Level Volume
Audio Processing Unit (APU)
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)
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
InputStandard Controller• Movement in Four Directions• Two “Action” buttons• Two “Control” Buttons
Movement
“Control”“Action”
Debugger
Development Tools
System State CPU Registers
PPU Registers
PPU State
Breakpoint System Interrupt Points Register Value Points
Step/Resume Functionality
DisassemblerMemory Viewer
CPU Memory
PPU Memory
Name Table Viewer
Development ToolsName Tables
Scroll Lines
Attribute Table Information
Name Table Data Display
Display Options
Development ToolsPattern Table Viewer
Pattern TablesTile and Palette
Information
Display Options
Palettes
The Software in Action
Graphical Auditory