gabriel honoré 1. what is it? a collection of software emulators –a software emulator is a...

36
Gabriel Honoré 1

Upload: deshaun-wayman

Post on 29-Mar-2015

217 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Gabriel Honoré 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

Gabriel Honoré

1

Page 2: Gabriel Honoré 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

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é 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

What is it?

• 1º - A Commodore 64 emulator

3

Page 4: Gabriel Honoré 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

What is it?

• 2º - A Nintendo EntertainmentSystem (NES) emulator

4

Page 5: Gabriel Honoré 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

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é 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

Short demo

6

Page 7: Gabriel Honoré 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

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é 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

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é 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

How are theemulators made?

9

Page 10: Gabriel Honoré 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

The system entities

• A common C64 system has:

10

Page 11: Gabriel Honoré 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

The user side entities

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

11

Page 12: Gabriel Honoré 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

Groups of entities

User’s IOdevices

The systementities

Objects fortranslation

12

Page 13: Gabriel Honoré 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

Groups of entities

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

communication between thetwo worlds

13

Page 14: Gabriel Honoré 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

The system modelPOWERSUPPLY

PERIPHERALS

SOFTWAREMEDIA

MAIN UNIT

14

Page 15: Gabriel Honoré 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

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é 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

The system model

• The main unit

16

Page 17: Gabriel Honoré 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

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é 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

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é 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

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é 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

The system model

• The peripherals:

20

Page 21: Gabriel Honoré 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

The system model

• The media

21

Page 22: Gabriel Honoré 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

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é 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

The system model

SamplerSoundchip Speaker

Externalinterface

BufferStrategy

Powersource

RETROBJECTS SIDE

DEVELOPER ONLYNEEDS TO IMPLEMENT

THIS OBJECT

The Audio system

23

Page 24: Gabriel Honoré 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

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é 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

Groups of entities

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

communication between thetwo worlds

25

Page 26: Gabriel Honoré 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

The user’s IO devices

• External interfaces:

FMODEx

SDL &OpenGL

SDL & xffd

Files

26

Page 27: Gabriel Honoré 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

Groups of entities

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

communication between thetwo “worlds”

27

Page 28: Gabriel Honoré 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

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é 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

There are lots of thingsthat could be reusedon other emulators!

29

Page 30: Gabriel Honoré 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

The framework

• Some abstractions:– Devices– I/O chips

• Sound chips• Video chips

– Scheduling process

30

Page 31: Gabriel Honoré 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

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é 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

The framework

• Tools:– Not many so far – Goal:

• More interactive development,doing less programming.

32

Page 33: Gabriel Honoré 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

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é 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

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é 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

Questions?

35

Page 36: Gabriel Honoré 1. What is it? A collection of software emulators –A software emulator is a computer program that imitates an electronic device or another

THANK YOU!

Gabriel Honoré

[email protected]

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

36