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.

Slides:



Advertisements
Similar presentations
1
Advertisements

Feichter_DPG-SYKL03_Bild-01. Feichter_DPG-SYKL03_Bild-02.
© 2008 Pearson Addison Wesley. All rights reserved Chapter Seven Costs.
Copyright © 2003 Pearson Education, Inc. Slide 1 Computer Systems Organization & Architecture Chapters 8-12 John D. Carpinelli.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Chapter 1 The Study of Body Function Image PowerPoint
1 Copyright © 2013 Elsevier Inc. All rights reserved. Chapter 4 Computing Platforms.
Processes and Operating Systems
1 Copyright © 2013 Elsevier Inc. All rights reserved. Chapter 1 Embedded Computing.
Copyright © 2011, Elsevier Inc. All rights reserved. Chapter 6 Author: Julia Richards and R. Scott Hawley.
Author: Julia Richards and R. Scott Hawley
1 Copyright © 2013 Elsevier Inc. All rights reserved. Appendix 01.
1 Copyright © 2013 Elsevier Inc. All rights reserved. Chapter 3 CPUs.
Properties Use, share, or modify this drill on mathematic properties. There is too much material for a single class, so you’ll have to select for your.
Objectives: Generate and describe sequences. Vocabulary:
UNITED NATIONS Shipment Details Report – January 2006.
Business Transaction Management Software for Application Coordination 1 Business Processes and Coordination. Introduction to the Business.
18 Copyright © 2005, Oracle. All rights reserved. Distributing Modular Applications: Introduction to Web Services.
FIGURE 3.1 System for illustrating Boolean applications to control.
1 RA I Sub-Regional Training Seminar on CLIMAT&CLIMAT TEMP Reporting Casablanca, Morocco, 20 – 22 December 2005 Status of observing programmes in RA I.
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
FACTORING ax2 + bx + c Think “unfoil” Work down, Show all steps.
Year 6 mental test 10 second questions
Chapter 5 Input/Output 5.1 Principles of I/O hardware
Rhesy S.ppt proRheo GmbH
Excel Functions. Part 1. Introduction 2 An Excel function is a formula or a procedure that is performed in the Visual Basic environment, outside the.
Solve Multi-step Equations
REVIEW: Arthropod ID. 1. Name the subphylum. 2. Name the subphylum. 3. Name the order.
Week 2 The Object-Oriented Approach to Requirements
Our Digital World Second Edition
Copyright © 2007 Heathkit Company, Inc. All Rights Reserved PC Fundamentals Presentation 35 – Buses.
Figure 12–1 Basic computer block diagram.
Mehdi Naghavi Spring 1386 Operating Systems Mehdi Naghavi Spring 1386.
PP Test Review Sections 6-1 to 6-6
EU market situation for eggs and poultry Management Committee 20 October 2011.
EU Market Situation for Eggs and Poultry Management Committee 21 June 2012.
EIS Bridge Tool and Staging Tables September 1, 2009 Instructor: Way Poteat Slide: 1.
Use Case Diagrams.
CS 6143 COMPUTER ARCHITECTURE II SPRING 2014 ACM Principles and Practice of Parallel Programming, PPoPP, 2006 Panel Presentations Parallel Processing is.
2 |SharePoint Saturday New York City
IP Multicast Information management 2 Groep T Leuven – Information department 2/14 Agenda •Why IP Multicast ? •Multicast fundamentals •Intradomain.
Operating Systems Operating Systems - Winter 2010 Chapter 3 – Input/Output Vrije Universiteit Amsterdam.
VOORBLAD.
Name Convolutional codes Tomashevich Victor. Name- 2 - Introduction Convolutional codes map information to code bits sequentially by convolving a sequence.
1 RA III - Regional Training Seminar on CLIMAT&CLIMAT TEMP Reporting Buenos Aires, Argentina, 25 – 27 October 2006 Status of observing programmes in RA.
Factor P 16 8(8-5ab) 4(d² + 4) 3rs(2r – s) 15cd(1 + 2cd) 8(4a² + 3b²)
Basel-ICU-Journal Challenge18/20/ Basel-ICU-Journal Challenge8/20/2014.
1..
CONTROL VISION Set-up. Step 1 Step 2 Step 3 Step 5 Step 4.
© 2012 National Heart Foundation of Australia. Slide 2.
Understanding Generalist Practice, 5e, Kirst-Ashman/Hull
Global Analysis and Distributed Systems Software Architecture Lecture # 5-6.
Model and Relationships 6 M 1 M M M M M M M M M M M M M M M M
25 seconds left…...
Januar MDMDFSSMDMDFSSS
Analyzing Genes and Genomes
©Brooks/Cole, 2001 Chapter 12 Derived Types-- Enumerated, Structure and Union.
Essential Cell Biology
Intracellular Compartments and Transport
PSSA Preparation.
Essential Cell Biology
Immunobiology: The Immune System in Health & Disease Sixth Edition
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 13 Slide 1 Application architectures.
Energy Generation in Mitochondria and Chlorplasts
Presentation transcript:

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 program. Examples: –DOSBox –MAME 2

What is it? 1º - A Commodore 64 emulator 3

What is it? 2º - A Nintendo Entertainment System (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 console emulators 8

How are the emulators 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 Users IO devices The system entities Objects for translation 12

Groups of entities The system model The users IO devices The objects that allow communication between the two worlds 13

The system model POWER SUPPLY PERIPHERALS SOFTWARE MEDIA 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 –Its implemented with a Smalltalk process 15

The system model The main unit 16

The system model CPU (MOS 6510) CPU (MOS 6510) Video chip MOS 6569 Video chip MOS 6569 Sound chip MOS 6581 Sound chip MOS 6581 CIA 1 CIA 2 Main memory (64K RAM) Main memory (64K RAM) Basic (?K ROM) Kernal (?K ROM) Char (?K ROM) Color (?K RAM) MEMORIES IO CHIPS REGREG REGREG REGREG REGREG REGREG REGREG REGREG REGREG Address decoder Address decoder The C64 architecture (simplified) 17

The system model CPU (MOS 6502) CPU (MOS 6502) Video chip PPU Video chip PPU Sound chip APU Sound chip APU DMA IO Character internal memory (2K RAM) Memory provided by the cartridge Memory provided by the cartridge MEMORIES IO CHIPS REGREG REGREG REGREG REGREG REGREG REGREG REGREG REGREG Address decoder Address decoder Color palette (32 bytes RAM) Color palette (32 bytes RAM) Sprite RAM (256 bytes) 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 –(16r r7FFF) -> RAM (0000-7FFF) –(16r r800F) -> Video chip ( F) The selected chip gets the request, and the registers interface map it into an action. 19

The system model The peripherals: 20

The system model The media 21

The system model Power source Video chip Frame buffer Color generator Palette Converter TV External interface RETROBJECTS SIDE DEVELOPER ONLY NEEDS TO IMPLEMENT THESE TWO OBJECTS The Video system 22

The system model Sampler Sound chip Speaker External interface Buffer Strategy Power source RETROBJECTS SIDE DEVELOPER ONLY NEEDS TO IMPLEMENT THIS OBJECT The Audio system 23

The system model User presses The A key External interface Representation of users keyboard Adaptor C64 keyboard OUTSIDE RETROBJECTS RETROBJECTS DEVELOPER ONLY NEEDS TO IMPLEMENT THESE TWO OBJECTS The Input system 24

Groups of entities The system model The users IO devices The objects that allow communication between the two worlds 25

The users IO devices External interfaces: FMODEx SDL & OpenGL SDL & xffd Files 26

Groups of entities The system model The users IO devices The objects that allow communication between the two 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 converts it into an action in the model. ie: Users keypress -> C64 keypress The GUIs 28

There are lots of things that could be reused on 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 compromising the 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é 36