gabriel honoré

Post on 30-Dec-2015

32 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Gabriel Honoré. What is it?. A collection of software emulators A software emulator is a computer program that imitates an electronic device or another program . Examples : DOSBox MAME. What is it?. 1º - A Commodore 64 emulator. What is it?. - PowerPoint PPT Presentation

TRANSCRIPT

Gabriel Honoré

1

What is it?

• A collection of software emulators– A software emulator is a computer

program that imitates an electronicdevice or another program.

• Examples:– DOSBox– MAME

2

What is it?

• 1º - A Commodore 64 emulator

3

What is it?

• 2º - A Nintendo EntertainmentSystem (NES) emulator

4

What is it?

• 3º - A set of abstractions,components, and tools that can be helpful for making other emulators(WIP)

?…

FRAMEWORK

5

Short demo

6

Motivations

• I noticed that:– People always choose statically-typed

languages for making them.– Procedural designs are prefered when

compared to object-oriented designs.• Why is that?

– Performance issues.• Is that really a problem nowadays?

7

Goals

• What did I want to accomplish?– Write everything in Smalltalk! .– OO design first, then think about performance.– Recreate the feeling of the original machines– High quality emulation.– Create an easy to use framework

for writing computer & game consoleemulators

8

How are theemulators made?

9

The system entities

• A common C64 system has:

10

The user side entities

• The user wants to interact with the emulated system through:

11

Groups of entities

User’s IOdevices

The systementities

Objects fortranslation

12

Groups of entities

• The system model• The user’s IO devices• The objects that allow

communication between thetwo worlds

13

The system modelPOWERSUPPLY

PERIPHERALS

SOFTWAREMEDIA

MAIN UNIT

14

The system model

• The power supply– Implements the concept of “keeping alive”

electrical devices– Works at a specified frequency– Many devices can be plugged to it– It’s implemented with a

Smalltalk process

15

The system model

• The main unit

16

The system modelCPU

(MOS 6510)

Video chipMOS 6569

Sound chipMOS 6581

CIA 1

CIA 2

Main memory(64K RAM)

Basic (?K ROM)

Kernal (?K ROM)

Char (?K ROM)

Color (?K RAM)

MEMORIESIO CHIPS

REG

REG

REG

REG

Addressdecoder

The C64 architecture(simplified)

17

The system modelCPU

(MOS 6502)

Video chipPPU

Sound chipAPU

DMA

IO

Character internal memory (2K RAM)

Memory providedby the cartridge

MEMORIESIO CHIPS

REG

REG

REG

REG

Addressdecoder

Color palette(32 bytes RAM)

Sprite RAM(256 bytes)

The NES architecture(simplified)

18

The system model

• How do the machines work?• The CPU is clocked by the power supply• The CPU reads from and writes to the bus

– ie: at: anAddress put: aNumber

• Address decoder: Address interval -> Chip– (16r0000-16r7FFF) -> RAM (0000-7FFF)– (16r8000-16r800F) -> Video chip (0000-000F)

• The selected chip gets the request,and the registers interface map it into anaction.

19

The system model

• The peripherals:

20

The system model

• The media

21

The system model

Powersource

Videochip

Framebuffer

Colorgenerator

Palette

Converter

TVExternalinterface

RETROBJECTSSIDE

DEVELOPER ONLYNEEDS TO IMPLEMENTTHESE TWO OBJECTS

The Video system

22

The system model

SamplerSoundchip Speaker

Externalinterface

BufferStrategy

Powersource

RETROBJECTS SIDE

DEVELOPER ONLYNEEDS TO IMPLEMENT

THIS OBJECT

The Audio system

23

The system model

User pressesThe ‘A’ key

Externalinterface

Representationof user’skeyboard

AdaptorC64

keyboard

OUTSIDE RETROBJECTS

RETROBJECTS

DEVELOPER ONLYNEEDS TO IMPLEMENTTHESE TWO OBJECTS

The Input system

24

Groups of entities

• The system model• The user’s IO devices• The objects that allow

communication between thetwo worlds

25

The user’s IO devices

• External interfaces:

FMODEx

SDL &OpenGL

SDL & xffd

Files

26

Groups of entities

• The system model• The user’s IO devices• The objects that allow

communication between thetwo “worlds”

27

Translation objects

• Loaders– Take a file and converts it into the actual

software media, ie: T64, PRG, TAP.• Adaptors

– Take a user input event and convertsit into an action in the model.• ie: User’s keypress -> C64 keypress

• The GUIs

28

There are lots of thingsthat could be reusedon other emulators!

29

The framework

• Some abstractions:– Devices– I/O chips

• Sound chips• Video chips

– Scheduling process

30

The framework

• Some components:– TV, speaker, power supply– Digital pins, one-way and bi-directional ports– Address decoders: mapping, bank-switching,

mirroring– Memories: RAM, ROM and registers– Strobe registers– Counters and comparators– Buttons and switches– Video filters, samplers, etc.

31

The framework

• Tools:– Not many so far – Goal:

• More interactive development,doing less programming.

32

Conclusions

• Smalltalk can do that, too! • The Smalltalk environment is ideal

for modeling hardware.• Profiling is the key for getting great

performance without compromisingthe design.

33

Future works

• Make it cross-platform– Make it run in Mac & Linux

• Keep improving the emulators.• Keep evolving the framework.

– Documentation, please!– No tests

• Make more emulators!

34

Questions?

35

THANK YOU!

Gabriel Honoré

ghonore@gmail.com

http://www.zeek-it.com.ar/retrobjects/

36

top related