gabriel honoré

36
Gabriel Honoré 1

Upload: lillian-daugherty

Post on 30-Dec-2015

32 views

Category:

Documents


0 download

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

Page 1: Gabriel  Honoré

Gabriel Honoré

1

Page 2: Gabriel  Honoré

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

Page 3: Gabriel  Honoré

What is it?

• 1º - A Commodore 64 emulator

3

Page 4: Gabriel  Honoré

What is it?

• 2º - A Nintendo EntertainmentSystem (NES) emulator

4

Page 5: Gabriel  Honoré

What is it?

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

?…

FRAMEWORK

5

Page 6: Gabriel  Honoré

Short demo

6

Page 7: Gabriel  Honoré

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

Page 8: Gabriel  Honoré

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

Page 9: Gabriel  Honoré

How are theemulators made?

9

Page 10: Gabriel  Honoré

The system entities

• A common C64 system has:

10

Page 11: Gabriel  Honoré

The user side entities

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

11

Page 12: Gabriel  Honoré

Groups of entities

User’s IOdevices

The systementities

Objects fortranslation

12

Page 13: Gabriel  Honoré

Groups of entities

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

communication between thetwo worlds

13

Page 14: Gabriel  Honoré

The system modelPOWERSUPPLY

PERIPHERALS

SOFTWAREMEDIA

MAIN UNIT

14

Page 15: Gabriel  Honoré

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

Page 16: Gabriel  Honoré

The system model

• The main unit

16

Page 17: Gabriel  Honoré

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

Page 18: Gabriel  Honoré

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

Page 19: Gabriel  Honoré

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

Page 20: Gabriel  Honoré

The system model

• The peripherals:

20

Page 21: Gabriel  Honoré

The system model

• The media

21

Page 22: Gabriel  Honoré

The system model

Powersource

Videochip

Framebuffer

Colorgenerator

Palette

Converter

TVExternalinterface

RETROBJECTSSIDE

DEVELOPER ONLYNEEDS TO IMPLEMENTTHESE TWO OBJECTS

The Video system

22

Page 23: Gabriel  Honoré

The system model

SamplerSoundchip Speaker

Externalinterface

BufferStrategy

Powersource

RETROBJECTS SIDE

DEVELOPER ONLYNEEDS TO IMPLEMENT

THIS OBJECT

The Audio system

23

Page 24: Gabriel  Honoré

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

Page 25: Gabriel  Honoré

Groups of entities

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

communication between thetwo worlds

25

Page 26: Gabriel  Honoré

The user’s IO devices

• External interfaces:

FMODEx

SDL &OpenGL

SDL & xffd

Files

26

Page 27: Gabriel  Honoré

Groups of entities

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

communication between thetwo “worlds”

27

Page 28: Gabriel  Honoré

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

Page 29: Gabriel  Honoré

There are lots of thingsthat could be reusedon other emulators!

29

Page 30: Gabriel  Honoré

The framework

• Some abstractions:– Devices– I/O chips

• Sound chips• Video chips

– Scheduling process

30

Page 31: Gabriel  Honoré

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

Page 32: Gabriel  Honoré

The framework

• Tools:– Not many so far – Goal:

• More interactive development,doing less programming.

32

Page 33: Gabriel  Honoré

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

Page 34: Gabriel  Honoré

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

Page 35: Gabriel  Honoré

Questions?

35

Page 36: Gabriel  Honoré

THANK YOU!

Gabriel Honoré

[email protected]

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

36