Study of the Techniques for Emulation Programming

Total Page:16

File Type:pdf, Size:1020Kb

Study of the Techniques for Emulation Programming Study of the techniques for emulation programming (By a bored and boring guy) The Author: Victor Moya del Barrio Director: Agustin Fernandez Computer Science Engenieering – FIB UPC 18 June 2001 2 Contents Chapter 1. Introduction. 9 1. Motivation and purpose of the study. 9 2. What do we call an emulator? 10 3. Small history of emulation. 11 4. Related topics. 12 Chapter 2. Introduction to the process of emulation. 14 1. Basic structure/algortihm of an emulator. 14 2. The CPU emulation core. 17 2.1. CPU emulator: Interpreter 18 2.2. CPU emulator: Binary Translation. 18 3. The memory emulation subsistem. 20 4. CPU and emulated devices communication. Interrupts and timing. 21 5. Graphic hardware emulation. 22 6. Sound hardware emulation. 23 7. Other devices. 24 8. Testing the emulator. 24 9. Searching for information and other aspects of emulation. 25 Chapter 3. CPU emulation: Interpreters. 26 1. Basic interpreter CPU emulator. 26 The CPU status. 26 The fetch-decode loop. 30 Instruction emulation. 36 Flags. 38 Memory. 39 Interrupts. 41 Core interface. 42 Appendix A: Space Invaders/i8080 Tutorial. 44 2. Assembly Emulators. 44 Portabilty vs performace. 45 Similiraties between CPUs. 46 Register usage. 46 Optimizations. 47 Code emitters vs assembly macros. 50 3. Threaded Code. 51 3 Basic concept behind threaded code. 52 Types of threaded code. 55 Implementation of threaded code. 56 Related works. 58 4. Advanced questions about interpreters. 58 Intepreters for simulators. 58 First pass interpreter and profiler. 59 Advanced: Inlining. Pipelined interpreters for VLIW CPUs. 60 Integrated CPU cores. 61 Using library CPU cores. 62 Related works. 62 Chapter 4. CPU emulation: Binary translation. 64 1. Introduction to binary translation. 64 Binary translation. 64 Types of binary translation. 67 Basic concepts. 69 Examples. 69 2. Static binary translation. 70 Basic algorithm. 71 Intermediate representations. 72 Local and global optimizations. 73 Code generation. 74 Run-time. 75 Implementations. 76 3. Dynamic binary translation. 77 Basic algorithm of dynamic binary translation. 78 Translation cache. 82 Interpreter and profiler. 83 Translation unit. 84 Optimizations. 85 Register allocation. 86 Code generation. 86 Implementations. 87 Chapter 5. Memory, Interrupts and Timing. 89 1. Memory Emulation. 89 Memory Map. Region list. 91 Memory banking. 93 Other implementations. 94 Memory management unit (MMU). 95 Endianness and CPU data size. 97 2. Interrupts and exceptions. 100 Interrupts. 100 Exceptions. 101 3. Timing. 101 4. Others. 103 High level emulation (HLE). 104 Float point emulation. 104 Vector instruction emulation. 105 4 Chapter 6. Graphic emulation. 106 1. Graphics in computers. 106 2. Types of graphic hardware. 107 3. Tiled basedgraphic engine emulation. 110 The SMS VDP. 111 The background layer. 111 The sprite layer. 113 Handling priorities. 113 The palette. 116 Vertical and horziontal interrupts. 117 Emulating the SMS VDP. 118 A more advanced VDP: Genesis. 121 4. Plain 2D graphic generation. 123 5. How to find more information. 124 Chapter 7. Sound emulation. 126 1. Sound in computers. 126 2. Types of sound hardware. 126 3. Wave generator based sound hardware. 128 PSG emulation. 129 FM emulation. 133 4. Sample based sound generation. 135 5. How to find more information. 137 Chapter 8. Information, testing and legal. 138 1. The information. Research. Reverse engineering. 138 2. Testing and debugging. 138 3. Legal and commercial aspects of emulation. 139 Chapter 9. Conclusions. 141 1. Initial objectives. 141 2. Objectives acomplished. 141 3. Further work. 142 References. 143 Bibliography. 145 5 Acknowledgements. 151 Appendix A. Space Invaders and i8080 emulation tutorial. 152 Appendix B. CD-ROM contents. 152 Appendix C. User manuals. 152 6 Index of figures. Figure 1. Von Neuman architectore. 14 Figure 2. Basic emulator main algorithm. 15 Figure 3. Interpreter emulator. 18 Figure 4. Endianness. 21 Figure 5. CPU context structure (i8080 emulator). 28 Figure 6. Multisize register emulation using union data type. 29 Figure 7. Multisize register emulation using pointers and type cast. 29 Figure 8. Example of CPU flags. 30 Figure 9. Opcode examples. 31 Figure 10. CPU core main loop. 32 Figure 11. RISC instruction decoding (fixed lenght). 33 Figure 12. RISC instruction decoding (variable lenght). 33 Figure 13. Decoding using conditional statements. 34 Figure 14. Decoding using switch-case statement. 35 Figure 15. i8080 instruction description (8080 datasheet). 36 Figure 16. Instruction basic algorithm. 36 Figure 17. Some i8080 instruction implementation. 38 Figure 18. Flag calculation in the i8080 emulator. 39 Figure 19. Direct access to the memory buffer. 40 Figure 20. Access through a list of memory regions. 40 Figure 21. Memory banks and emulation. 41 Figure 22. i8080 emulator CPU interface. 44 Figure 23. Z80 to x86 flag calculation. C and asm version. 48 Figure 24. m68000 SUBX instruction in x86 (Bart Trzy Gen68K). 48 Figure 25. Timing update and instruction decode inlined at the end of the instruction. 49 Figure 26. A single function or multiple functions for each instruction type (mov rd. rs) 50 Figure 27. Using macros for expanding generic instruction implementation. 50 Figure 28. Using a code emitter for generating multiple versions. 51 Figure 29. Normal emulation vs threaded code emulation. 53 Figure 30. Static threaded code emulator. 54 Figure 31. Dynamic threaded code emulator. 54 Figure 32. Example of NEXT. 55 Figure 33. Indirect threaded code. 55 Figure 34. High level emulation of threaded code. 57 Figure 35. Threaded code and macroopcodes. 60 Figure 36. Interpreter pipelining. 61 Figure 37. Binary translation and compilers phases. 65 Figure 38. Binary translation with or without IR. 65 Figure 39. Types of binary translation. 67 Figure 40. Static translation algorithm. 71 Figure 41. Dynamic binary translation algorithm (interpreter profiler based). 79 Figure 42. Dynamic binary translation algorithm (pure). 81 Figure 43. Translation cache. 83 Figure 44. Intrepreter + profiler. 83 Figure 45. Master System memory map (banks, page registers). 90 Figure 46. Genesis memory map (with memory mapped IO). 91 Figure 47. Master System memory and IO region lists. 92 Figure 48. ReadByte() through a memory region list. 93 Figure 49. Bank access emulation. 94 Figure 50. Vector based memory access. 95 Figure 51. Endianness. 97 Figure 52. Endianness conversion algorithm (basic). 98 Figure 53. Access modes for byte swapped memory buffers. 99 Figure 54. Screenshot of Star Wars vector game. 108 Figure 55. Framebuffer and palette graphic system overview. 109 Figure 56. BG and sprite layers. 111 Figure 57. Background layer. 112 7 Figure 58. Background and scrolling. 113 Figure 59. Background and sprite layer with priorities in the Master System. 115 Figure 60. Palette overview. 116 Figure 61. Vertical and Horizontal retrace and signals. 118 Figure 62. Pixel codification in Master System pattern lines. 119 Figure 63. Genesis VDP overview. 121 Figure 64. Framebuffer based system. Blit. 124 Figure 65. SN6489 schematics. 130 Figure 66. PSG sound generation algorithm. 132 Figure 67. Envelopes for FM sound generation. 134 Figure 68. YM2413 schematics. 135 Figure 69. Sample based sound generation. 137 8 Chapter 1. Introduction. 1. Motivation and Purpose of the Study. I still remember the first emulator I ever tested, it was Marat Fayzullin’s VGB-DOS, an early GameBoy emulator for MS-DOS, ... or it was FMSX-DOS, the MSX emulator by the same author? In any case that was my first introduction to emulation. Since that date, in the last six years, I have been using, playing and enjoying with console, home computer and arcade machine emulators. And perhaps also learning a bit, about how those machines worked, about how (good, very good) the games were and how an emulator works. I planned many times how I could introduce myself in the world of emulation. Programming an emulator was the first choice in any case, I have been more or less a programmer for almost ten years now so it made sense. I always have enjoyed with the hardware internals and assembler programming. And although now I’m a (modest one) emulator programmer I want also to contribute in another way (because who will actually play with my boring emus?) to the emulation scene. In the time I started to learn about how an emulator is programmed I found that there was a limited amount of documentation. Documentation about how an emulator should be programmed or about the characteristics of the machines to be emulated. Thinking about how to contribute to the emulation I found that the second part would mean the construction of a database with all the information available of a large amount of computers and systems. This wasn’t very suited neither with a university project for with my own preferences, and there are a few sites in Internet which more or less serve to that purpose. The first part meant to study and learn the various techniques and knowledges related to emulator programming. Since I like a lot learning and also writing I thought that could be my way to contribute. So I thought it would be nice to have a large, ordered and precise documentation about how to program an emulator. That is the purpose of this document and my work in the last months. After about a year of study, programming and thinking (well, only sometimes) I think now that a ‘complete’ document about emulation programming is almost impossible. There are too many specific techniques, too many ways to implement things and many kinds of hardware to emulate. And for each kind of hardware there are ways best suited than others. Nor to say that every programmer has it owns ideas and preferences, and they can be all correct. So I think that finally this document will be just generic, rather complete, but specific in some important points, about programming emulators. Perhaps it will not arrive to be a real reference about emulation programming but I hope it will be useful for someone, like many other documents from other people were useful for me.
Recommended publications
  • Master Thesis
    Faculty of Computer Science and Management Field of study: COMPUTER SCIENCE Specialty: Information Systems Design Master Thesis Multithreaded game engine architecture Adrian Szczerbiński keywords: game engine multithreading DirectX 12 short summary: Project, implementation and research of a multithreaded 3D game engine architecture using DirectX 12. The goal is to create a layered architecture, parallelize it and compare the results in order to state the usefulness of multithreading in game engines. Supervisor ...................................................... ............................ ……………………. Title/ degree/ name and surname grade signature The final evaluation of the thesis Przewodniczący Komisji egzaminu ...................................................... ............................ ……………………. dyplomowego Title/ degree/ name and surname grade signature For the purposes of archival thesis qualified to: * a) Category A (perpetual files) b) Category BE 50 (subject to expertise after 50 years) * Delete as appropriate stamp of the faculty Wrocław 2019 1 Streszczenie W dzisiejszych czasach, gdy społeczność graczy staje się coraz większa i stawia coraz większe wymagania, jak lepsza grafika, czy ogólnie wydajność gry, pojawia się potrzeba szybszych i lepszych silników gier, ponieważ większość z obecnych jest albo stara, albo korzysta ze starych rozwiązań. Wielowątkowość jest postrzegana jako trudne zadanie do wdrożenia i nie jest w pełni rozwinięta. Programiści często unikają jej, ponieważ do prawidłowego wdrożenia wymaga wiele pracy. Według mnie wynikający z tego wzrost wydajności jest warty tych kosztów. Ponieważ nie ma wielu silników gier, które w pełni wykorzystują wielowątkowość, celem tej pracy jest zaprojektowanie i zaproponowanie wielowątkowej architektury silnika gry 3D, a także przedstawienie głównych systemów używanych do stworzenia takiego silnika gry 3D. Praca skupia się na technologii i architekturze silnika gry i jego podsystemach wraz ze strukturami danych i algorytmami wykorzystywanymi do ich stworzenia.
    [Show full text]
  • Driver Riva Tnt2 64
    Driver riva tnt2 64 click here to download The following products are supported by the drivers: TNT2 TNT2 Pro TNT2 Ultra TNT2 Model 64 (M64) TNT2 Model 64 (M64) Pro Vanta Vanta LT GeForce. The NVIDIA TNT2™ was the first chipset to offer a bit frame buffer for better quality visuals at higher resolutions, bit color for TNT2 M64 Memory Speed. NVIDIA no longer provides hardware or software support for the NVIDIA Riva TNT GPU. The last Forceware unified display driver which. version now. NVIDIA RIVA TNT2 Model 64/Model 64 Pro is the first family of high performance. Drivers > Video & Graphic Cards. Feedback. NVIDIA RIVA TNT2 Model 64/Model 64 Pro: The first chipset to offer a bit frame buffer for better quality visuals Subcategory, Video Drivers. Update your computer's drivers using DriverMax, the free driver update tool - Display Adapters - NVIDIA - NVIDIA RIVA TNT2 Model 64/Model 64 Pro Computer. (In Windows 7 RC1 there was the build in TNT2 drivers). http://kemovitra. www.doorway.ru Use the links on this page to download the latest version of NVIDIA RIVA TNT2 Model 64/Model 64 Pro (Microsoft Corporation) drivers. All drivers available for. NVIDIA RIVA TNT2 Model 64/Model 64 Pro - Driver Download. Updating your drivers with Driver Alert can help your computer in a number of ways. From adding. Nvidia RIVA TNT2 M64 specs and specifications. Price comparisons for the Nvidia RIVA TNT2 M64 and also where to download RIVA TNT2 M64 drivers. Windows 7 and Windows Vista both fail to recognize the Nvidia Riva TNT2 ( Model64/Model 64 Pro) which means you are restricted to a low.
    [Show full text]
  • Development of Synthetic Cameras for Virtual Commissioning
    DEVELOPMENT OF SYNTHETHIC CAMERAS FOR VIRTUAL COMMISSIONING Bachelor Degree Project in Automation Engineer 2020 DEVELOPMENT OF SYNTHETIC CAMERAS FOR VIRTUAL COMMISSIONING Bachelor Degree Project in Automation Engineering Bachelor Level 30 ECTS Spring term 2020 Francisco Vico Arjona Daniel Pérez Torregrosa Company supervisor: Mikel Ayani University supervisor: Wei Wang Examiner: Stefan Ericson 1 DEVELOPMENT OF SYNTHETHIC CAMERAS FOR VIRTUAL COMMISSIONING Bachelor Degree Project in Automation Engineer 2020 Abstract Nowadays, virtual commissioning has become an incredibly useful technology which has raised its importance hugely in the latest years. Creating virtual automated systems, as similar to reality as possible, to test their behaviour has become into a great tool for avoiding waste of time and cost in the real commissioning stage of any manufacturing system. Currently, lots of virtual automated systems are controlled by different vision tools, however, these tools are not integrated in most of emulation platforms, so it precludes testing the performance of numerous virtual systems. This thesis intends to give a solution to this limitation that nowadays exists for virtual commissioning. The main goal is the creation of a synthetic camera that allows to obtain different types of images inside any virtual automated system in the same way it would have been obtained in a real system. Subsequently, a virtual demonstrator of a robotic cell controlled by computer vision is developed to show the immense opportunities that synthetic camera can open for testing vision systems. 2 DEVELOPMENT OF SYNTHETIC CAMERAS FOR VIRTUAL COMMISSIONING Bachelor Degree Project in Automation Engineering 2020 Certify of Authenticity This thesis has been submitted by Francisco Vico Arjona and Daniel Pérez Torregrosa to the University of Skövde as a requirement for the degree of Bachelor of Science in Production Engineering.
    [Show full text]
  • The Legality and Morality of Video Game Emulation (Research-In- Progress)
    View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by AIS Electronic Library (AISeL) Association for Information Systems AIS Electronic Library (AISeL) SAIS 2020 Proceedings Southern (SAIS) Fall 9-11-2020 The Legality and Morality of Video Game Emulation (Research-In- Progress) Mehruz Kamal State University of New York at Brockport, [email protected] Xavier Vogel State University of New York at Brockport, [email protected] Follow this and additional works at: https://aisel.aisnet.org/sais2020 Recommended Citation Kamal, Mehruz and Vogel, Xavier, "The Legality and Morality of Video Game Emulation (Research-In- Progress)" (2020). SAIS 2020 Proceedings. 14. https://aisel.aisnet.org/sais2020/14 This material is brought to you by the Southern (SAIS) at AIS Electronic Library (AISeL). It has been accepted for inclusion in SAIS 2020 Proceedings by an authorized administrator of AIS Electronic Library (AISeL). For more information, please contact [email protected]. Kamal & Vogel The Legality and Morality of Video Game Emulation THE LEGALITY AND MORALITY OF VIDEO GAME EMULATION Mehruz Kamal Xavier Vogel State University of New York at Brockport State University of New York at Brockport [email protected] [email protected] ABSTRACT The purpose of this paper is to examine the various factors surrounding video game emulation as well as the legal and moral implications of the technology. Firstly, the background and history of the technology is described and explored. Next, the laws surrounding emulation are examined, with it being shown that a great deal of people are not aware of how the law impacts the technology and the consequences of this.
    [Show full text]
  • Vintage Game Consoles: an INSIDE LOOK at APPLE, ATARI
    Vintage Game Consoles Bound to Create You are a creator. Whatever your form of expression — photography, filmmaking, animation, games, audio, media communication, web design, or theatre — you simply want to create without limitation. Bound by nothing except your own creativity and determination. Focal Press can help. For over 75 years Focal has published books that support your creative goals. Our founder, Andor Kraszna-Krausz, established Focal in 1938 so you could have access to leading-edge expert knowledge, techniques, and tools that allow you to create without constraint. We strive to create exceptional, engaging, and practical content that helps you master your passion. Focal Press and you. Bound to create. We’d love to hear how we’ve helped you create. Share your experience: www.focalpress.com/boundtocreate Vintage Game Consoles AN INSIDE LOOK AT APPLE, ATARI, COMMODORE, NINTENDO, AND THE GREATEST GAMING PLATFORMS OF ALL TIME Bill Loguidice and Matt Barton First published 2014 by Focal Press 70 Blanchard Road, Suite 402, Burlington, MA 01803 and by Focal Press 2 Park Square, Milton Park, Abingdon, Oxon OX14 4RN Focal Press is an imprint of the Taylor & Francis Group, an informa business © 2014 Taylor & Francis The right of Bill Loguidice and Matt Barton to be identified as the authors of this work has been asserted by them in accordance with sections 77 and 78 of the Copyright, Designs and Patents Act 1988. All rights reserved. No part of this book may be reprinted or reproduced or utilised in any form or by any electronic, mechanical, or other means, now known or hereafter invented, including photocopying and recording, or in any information storage or retrieval system, without permission in writing from the publishers.
    [Show full text]
  • Download Project 64 Emulator Latest Version Nintendo 64
    download project 64 emulator latest version Nintendo 64. For a Pokemon Emulator, it is especially important that it correctly supports the RTC - Real Time Clock function needed for time-based events in Pokemon games. Otherwise, you will not be able to catch nocturnal Pokemon that come out only at night. And it is imperative that Link cable emulation function for trading in Cable Club works as it is no fun playing alone. N64 PoKeMoN Emulator. Download Nintendo 64 Pokemon game Emu. The latest version of Project64 N64 emu is provided with an automated Windows installer. 1. Download and dual click the invest folder. 2. You will be prompted for the corridor on your hard coerce where you would like Project64 to reside (or use the duck course, which is in Program Files) and remain to click Next through the installer. 3. Run Project64 from the shortcut in your Start Menu. All the vital files to get you ongoing and live N64 playoffs are included (distant from the sport themselves!). You will be asked to show a talking the first time PJ64 is run. Project64 N64 Emulator. Best emulator for Nintendo 64 Pokemon. Emulate Nintendo64 If you are not convinced what to do next, want submit to the Using Project64 piece of this handbook. There are no playoffs complete with Project64! It is your responsibility to acquire games. The Project64 team cannot help you find commercial games, for certified reasons. Requests for ROMs not meet in official Project64 areas of the Internet. To use a sport in Project64, the ROM organize of that match modestly requests to be unfilled locally on your scheme.
    [Show full text]
  • The Linux Command Line
    The Linux Command Line Second Internet Edition William E. Shotts, Jr. A LinuxCommand.org Book Copyright ©2008-2013, William E. Shotts, Jr. This work is licensed under the Creative Commons Attribution-Noncommercial-No De- rivative Works 3.0 United States License. To view a copy of this license, visit the link above or send a letter to Creative Commons, 171 Second Street, Suite 300, San Fran- cisco, California, 94105, USA. Linux® is the registered trademark of Linus Torvalds. All other trademarks belong to their respective owners. This book is part of the LinuxCommand.org project, a site for Linux education and advo- cacy devoted to helping users of legacy operating systems migrate into the future. You may contact the LinuxCommand.org project at http://linuxcommand.org. This book is also available in printed form, published by No Starch Press and may be purchased wherever fine books are sold. No Starch Press also offers this book in elec- tronic formats for most popular e-readers: http://nostarch.com/tlcl.htm Release History Version Date Description 13.07 July 6, 2013 Second Internet Edition. 09.12 December 14, 2009 First Internet Edition. 09.11 November 19, 2009 Fourth draft with almost all reviewer feedback incorporated and edited through chapter 37. 09.10 October 3, 2009 Third draft with revised table formatting, partial application of reviewers feedback and edited through chapter 18. 09.08 August 12, 2009 Second draft incorporating the first editing pass. 09.07 July 18, 2009 Completed first draft. Table of Contents Introduction....................................................................................................xvi
    [Show full text]
  • Mac Os Versions in Order
    Mac Os Versions In Order Is Kirby separable or unconscious when unpins some kans sectionalise rightwards? Galeate and represented Meyer videotapes her altissimo booby-trapped or hunts electrometrically. Sander remains single-tax: she miscalculated her throe window-shopped too epexegetically? Fixed with security update it from the update the meeting with an infected with machine, keep your mac close pages with? Checking in macs being selected text messages, version of all sizes trust us, now became an easy unsubscribe links. Super user in os version number, smartphones that it is there were locked. Safe Recover-only Functionality for Lost Deleted Inaccessible Mac Files Download Now Lost grate on Mac Don't Panic Recover Your Mac FilesPhotosVideoMusic in 3 Steps. Flex your mac versions; it will factory reset will now allow users and usb drive not lower the macs. Why we continue work in mac version of the factory. More secure your mac os are subject is in os x does not apply video off by providing much more transparent and the fields below. Receive a deep dive into the plain screen with the technology tally your search. MacOS Big Sur A nutrition sheet TechRepublic. Safari was in order to. Where can be quit it straight from the order to everyone, which can we recommend it so we come with? MacOS Release Dates Features Updates AppleInsider. It in order of a version of what to safari when using an ssd and cookies to alter the mac versions. List of macOS version names OS X 10 beta Kodiak 13 September 2000 OS X 100 Cheetah 24 March 2001 OS X 101 Puma 25.
    [Show full text]
  • 3D Computer Graphics Compiled By: H
    animation Charge-coupled device Charts on SO(3) chemistry chirality chromatic aberration chrominance Cinema 4D cinematography CinePaint Circle circumference ClanLib Class of the Titans clean room design Clifford algebra Clip Mapping Clipping (computer graphics) Clipping_(computer_graphics) Cocoa (API) CODE V collinear collision detection color color buffer comic book Comm. ACM Command & Conquer: Tiberian series Commutative operation Compact disc Comparison of Direct3D and OpenGL compiler Compiz complement (set theory) complex analysis complex number complex polygon Component Object Model composite pattern compositing Compression artifacts computationReverse computational Catmull-Clark fluid dynamics computational geometry subdivision Computational_geometry computed surface axial tomography Cel-shaded Computed tomography computer animation Computer Aided Design computerCg andprogramming video games Computer animation computer cluster computer display computer file computer game computer games computer generated image computer graphics Computer hardware Computer History Museum Computer keyboard Computer mouse computer program Computer programming computer science computer software computer storage Computer-aided design Computer-aided design#Capabilities computer-aided manufacturing computer-generated imagery concave cone (solid)language Cone tracing Conjugacy_class#Conjugacy_as_group_action Clipmap COLLADA consortium constraints Comparison Constructive solid geometry of continuous Direct3D function contrast ratioand conversion OpenGL between
    [Show full text]
  • Session 3 15
    Proceedings of CGAMES’2006 8th International Conference on Computer Games: Artificial Intelligence and Mobile Systems 24-27 July 2006 Hosted by Galt House Hotel Louisville, Kentucky, USA Organised by University of Wolverhampton in association with University of Louisville and IEEE Computer Society Society for Modelling and Simulation (SCS-Europe) Institution of Electrical Engineers (IEE) British Computer Society (BCS) Digital Games Research Association (DiGRA) International Journal of Intelligent Games and Simulation (IJIGS) Edited by: Quasim Mehdi Guest Editor: Adel Elmaghraby Published by The University of Wolverhampton School of Computing and Information Technology Printed in Wolverhampton, UK ©2006 The University of Wolverhampton Responsibility for the accuracy of all material appearing in the papers is the responsibility of the authors alone. Statements are not necessarily endorsed by the University of Wolverhampton, members of the Programme Committee or associated organisations. Permission is granted to photocopy the abstracts and other portions of this publication for personal use and for the use of students providing that credit is given to the conference and publication. Permission does not extend to other types of reproduction nor to copying for use in any profit-making purposes. Other publications are encouraged to include 300-500 word abstracts or excerpts from any paper, provided credits are given to the author, conference and publication. For permission to publish a complete paper contact Quasim Mehdi, SCIT, University of Wolverhampton, Wulfruna Street, Wolverhampton, WV1 1SB, UK, [email protected]. All author contact information in these Proceedings is covered by the European Privacy Law and may not be used in any form, written or electronic without the explicit written permission of the author and/or the publisher.
    [Show full text]
  • Towards Expressive Speech Synthesis in English on a Robotic Platform
    PAGE 130 Towards Expressive Speech Synthesis in English on a Robotic Platform Sigrid Roehling, Bruce MacDonald, Catherine Watson Department of Electrical and Computer Engineering University of Auckland, New Zealand s.roehling, b.macdonald, [email protected] Abstract Affect influences speech, not only in the words we choose, but in the way we say them. This pa- per reviews the research on vocal correlates in the expression of affect and examines the ability of currently available major text-to-speech (TTS) systems to synthesize expressive speech for an emotional robot guide. Speech features discussed include pitch, duration, loudness, spectral structure, and voice quality. TTS systems are examined as to their ability to control the fea- tures needed for synthesizing expressive speech: pitch, duration, loudness, and voice quality. The OpenMARY system is recommended since it provides the highest amount of control over speech production as well as the ability to work with a sophisticated intonation model. Open- MARY is being actively developed, is supported on our current Linux platform, and provides timing information for talking heads such as our current robot face. 1. Introduction explicitly stated otherwise the research is concerned with the English language. Affect influences speech, not only in the words we choose, but in the way we say them. These vocal nonverbal cues are important in human speech as they communicate 2.1. Pitch information about the speaker’s state or attitude more effi- ciently than the verbal content (Eide, Aaron, Bakis, Hamza, Pitch contour seems to be one of the clearest indica- Picheny, and Pitrelli 2004).
    [Show full text]
  • Graphical Process Unit a New Era
    Nov 2014 (Volume 1 Issue 6) JETIR (ISSN-2349-5162) Graphical Process Unit A New Era Santosh Kumar, Shashi Bhushan Jha, Rupesh Kumar Singh Students Computer Science and Engineering Dronacharya College of Engineering, Greater Noida, India Abstract - Now in present days every computer is come with G.P.U (graphical process unit). The graphics processing unit (G.P.U) has become an essential part of today's mainstream computing systems. Over the past 6 years, there has been a marked increase in the performance and potentiality of G.P.U. The modern G.P.Us is not only a powerful graphics engine but also a deeply parallel programmable processor showing peak arithmetic and memory bandwidth that substantially outpaces its CPU counterpart. The G.P.U's speedy increase in both programmability and capability has spawned a research community that has successfully mapped a broad area of computationally demanding, mixed problems to the G.P.U. This effort in general-purpose computing on the G.P.Us, also known as G.P.U computing, has positioned the G.P.U as a compelling alternative to traditional microprocessors in high-performance computer systems of the future. We illustrate the history, hardware, and programming model for G.P.U computing, abstract the state of the art in tools and techniques, and present 4 G.P.U computing successes in games physics and computational physics that deliver order-of- magnitude performance gains over optimized CPU applications. Index Terms - G.P.U, History of G.P.U, Future of G.P.U, Problems in G.P.U, eG.P.U, Integrated graphics ________________________________________________________________________________________________________ I.
    [Show full text]