Using Computer Vision Techniques to Play an Existing Video Game

Total Page:16

File Type:pdf, Size:1020Kb

Load more

Using Computer Vision Techniques to Play an
Existing Video Game

Presented to the faculty of the College of Science and Mathematics at California State University, San Marcos

Submitted in partial fulfillment of the requirements for the degree of Masters of Science

Christopher Erdelyi [email protected]
March 2019

Abstract

Game playing algorithms are commonly implemented in video games to control non-player characters (hereafter, “NPC’s,”) in order to provide a richer or more competitive game environment. However, directly programming opponent algorithms into the game can cause the game-controlled NPC’s to become predictable to human players over time. This can negatively impact player enjoyment and interest in the game, especially when the algorithm is supposed to compete against human opponents. To extend the revenue-generating lifespan of a game, the developers may wish to continually refine the algorithms – but these updates would need to be downloaded to every players’ installed copy of the game. Thus, it would be beneficial for the game’s algorithm to run independently from the game itself, located on a server which can be easily accessed and updated by the game developers. Furthermore, the same basic algorithm setup could be used across many games that the developer creates, by using computer vision to determine game states, rather than title-specific Application Program Interfaces (hereafter, “API’s.”)

In this paper, we propose a method for playing a racing game using computer vision, and controlling the game only through the inputs provided to human players. Using the Open Source Computer Vision Library (hereafter known by its common name, “OpenCV”) to take screenshots of the game and apply various image processing techniques, we can represent the game world in a manner suitable for external driving algorithm to process. The driving algorithm then makes decisions based on the state of the processed image, and sends inputs back to the game via keyboard emulation.

The driving algorithm created for this project was tuned using more than 50 separate adjustments, and run multiple times on each adjustment to measure how far the player’s vehicle could travel before crashing or stalling. These results were then compared to a set of baseline tests, where random input was used to steer the vehicle. The results show that our computer vision-based approach does indeed show promise, and could be used to successfully compete against human players if enhanced.

2

Acknowledgements

Thank you Dr. Ye, for your suggestions on computer vision and driving algorithm design, and for guiding me throughout the research project. I also thank my family, friends, and coworkers for their patience and support while I completed the Master’s program.

3

Table of Contents

List of Abbreviations and Definitions...................................................6 1. Introduction and Background......................................................7 2. Related Work.................................................................................9

2.1 2.2
DeepMind: Capture the Flag................................................................................................ 9 OpenCV: Grand Theft Auto V ............................................................................................. 10

3. Program Flow Explanation and Diagrams ...............................13

3.1. Overall Process Flow for Experiment ....................................................................................... 13 3.2. OpenCV Image Manipulation: Functions and Order of Operations........................................... 14 3.3 Visual Analysis Processing Steps............................................................................................... 17

4. Hardware and Software Utilized ...............................................18 5. Approach and Implementation..................................................19

5.1 5.2 5.3 5.4 5.5 5.6
Approach........................................................................................................................... 19 Capture Emulator Display .................................................................................................. 22 Overlay Mask on Screen Capture ....................................................................................... 22 Examine Processed Image................................................................................................. 28 Driving Algorithm Chooses Next Input Action .................................................................... 30 Emulate System Keypresses............................................................................................... 31

6. Experimental Results..................................................................34

6.1 6.2 6.3 6.4
Setup and Baseline Results ................................................................................................ 34 Driving Algorithm Tuning: Iterative Results........................................................................ 35 Experiment Results on Static Drive Algorithm Configuration.............................................. 37 Driving Behavior................................................................................................................ 38

7. Conclusion and Future Work.....................................................40 References.............................................................................................43 External Figure References.................................................................49

4

Table of Figures

Figure 1. Screengrab of a video demo for DeepMind playing Capture the Flag. [External Figure 1]................................................10 Figure 2. Canny Edge Detection on GTA V. [External Figure 2]....11 Figure 3. Hough Lines on GTA V image. [External Figure 3].........12 Figure 4. Lane marker overlay in GTA V. [External Figure 4]......12 Figure 5. Closed-loop process cycle. ...................................................14 Figure 6. OpenCV processing steps for emulator screenshots.........16 Figure 7. Visual analysis steps.............................................................18 Figure 8. Grayscale image conversion................................................23 Figure 9. Threshold function generated black and white image......24 Figure 10. Processed game image after Canny edge detection is applied...................................................................................................25 Figure 11. Processed game image after Gaussian blurring has been applied to Canny edges. .......................................................................26 Figure 12. Processed game image with Hough lines..........................27 Figure 13. Processed game image after second application of Hough lines........................................................................................................28 Figure 14. Turns navigated vs algorithm tuning iteration. ..............37 Figure 15. Trial results over 30 attempts. ..........................................38

5

List of Abbreviations and Definitions

API: Application Program Interface. In this paper, we are referring to communications definitions or tools that allow for one program to interact with another directly.

CPU: Central Processing Unit. The general purpose computing cores used in personal computers.

GPU: Graphics Processing Unit. The computing cores which are architected to specialize in computer graphics generation.

NPC: Non-Player Character. Refers to an in-game avatar which may act and look similar to a human player’s avatar, but is controlled by the game itself.

OpenCV: Open Computer Vision. An open-source library of functions that allow for real-time computer vision.

OS: Operating System. Software which manages computer hardware, software, and services.

PAL: Phase Alternating Line. An analogue television encoding standard with a resolution of 576 interlaced lines.

RAM: Random Access Memory. Refers to computer memory for temporary program storage.

ROM: Read Only Memory. In this paper, it refers to the test game’s program file. The name originated from the fact that cartridge-based video games were stored on solid state memory chips, and did not have the ability to be written to.

6

1. Introduction and Background

In today’s video games, one common requirement of the main game program is to control a wide variety of non-player characters, which interact with the human player. These non-player characters, or “NPC’s,” can be cooperative characters, enemies, or environmental figures that add decoration and flair to the game’s world. Traditionally, computer-controlled enemy players, or “bots,” are controlled by a hard-coded logic within a game [25]. Games have traditionally implemented various forms of pathfinding algorithms to control their NPC’s. These pathfinding methods require a full understanding of a map’s topology, along with decision-making functions, such as the A* algorithm [2]. When used for pathfinding, the A* algorithm is a search algorithm which “repeatedly examines the most promising unexplored location it has seen. When a location is explored, the algorithm is finished if that location is the goal; otherwise, it makes note of all that location’s neighbors for further exploration” [4]. Modified A* algorithms for avoiding randomized obstacles were also proposed, and found to be successful 28]. However, even these modified implementations require the environment to be completely known to the game algorithms, and therefore, the algorithm must be integrated with the game itself.
Externally run algorithms do exist for some games. Two companies creating external algorithm programs, which can be used for gaming, are OpenAI [3] and Alphabet’s Deepmind [5]. For example, DeepMind has partnered with Blizzard Entertainment to create a machine-learning capable version of their game, Starcraft II. However, for this experimental version of the game, Blizzard created API’s to allow DeepMind’s software to interact with it [27]. This approach would require an active developer to continue providing support their published game; any game which has had its support discontinued would likely never have similar integration with external software.
A majority of games on the market use integrated algorithms. Their “bots” maintain a limited amount of behaviors throughout the game’s existence. Preprogrammed algorithms can be quickly surpassed by human players in any genre of video game. Once strategies are discovered to exploit gaps in the algorithm’s ingame abilities, the bots no longer present a challenge to the player. Alternatively, bots that play poorly as a part of a human player’s team can be distracting and frustrating. Some players may voice their frustration on Reddit subforums for games, such as Blizzard’s Heroes of the Storm, in which algorithm-controlled teammates play with confusing and sub-optimal strategies [13]. To many, the pre-

7

programmed game logic feels stale, unintelligent, and unentertaining, and players can lose interest in the game if demands for algorithm updates are not met.
Additionally, players often find tricks, glitches, or other unintended (or unforeseen) routes or techniques to get around a racetrack with the shortest recorded time. For example, players of Mario Kart DS (released for the portable Nintendo DS game system) discovered a technique dubbed “snaking,” which involves using a speed boost originally intended for taking corners, and applying it to straight sections of the track [1]. Such discoveries and exploits make the algorithm uncompetitive.
To alleviate this problem, developers sometimes invest significant resources to upgrade the game logic, and provide it as a downloadable update. Developers will sometimes also share insight into the bots’ algorithm changes via a blog post [24]. However, with increasing broadband data speed [16], and with computer vision software becoming freely available [17], an alternative to such a downloaded update is possible. We propose that an algorithm, combined with computer vision, can be used to teach a program how to play a game as it exists in the present, using only the button inputs available to any human player. Such programs could be run on remote servers, and interact with human players via any multiplayer interfaces already working with a game. In order to give a community of gamers an experience that can evolve with them, our proposed game-playing algorithm would allow a game’s developer to make changes to the behavior of their bots, without rewriting any portion of the game’s source code.
This paper is divided into seven main sections. In this section, we describe some background on the problem area we focused on for this research project. In section two, we discuss related work in the field of computer vision for gaming. In section three, we describe the overall program structure, and the process steps performed for image manipulation and measurement. In section four, we have recorded the hardware and software used, for reference. In section five, we discuss the approach and implementation details undertaken to perform the research. In section six, we discuss the experimental results of the research. In section seven, we offer our conclusion on the research performed, and suggest future work to build and improve upon the work we have done.

8

2. Related Work

There have been many similar, documented attempts to play a moderately complex game using external algorithms. Two such experiments are presented here. Both experiments utilize a game’s raw pixel output, combined with humangameplay controller inputs, to perform decision-making and subsequent manipulation of the game environment. In both experiments, the program does not have access to a map, or any other external representation of the game environment. The movement and actions are informed purely by the visuals generated by the game.

2.1 DeepMind: Capture the Flag

DeepMind conducted such an experiment to play a first-person shooter game, which was built upon a visually-modified version of Quake 3 [10]. This modified game was created for in-game agents to play Capture the Flag, leveraging machine learning to increase the capabilities of the game-playing logic. In the game, the avatars on each team were tasked with “tagging” enemy combatants, locating the enemy flag, and returning it to their own base. In addition, the environment layouts are procedurally generated, ensuring that the agents cannot simply memorize the layout between training runs. Figure 1, below, represents both the raw pixels seen and evaluated by the DeepMind-based software (left half of the image) and a representation of one of the procedurally-generated maps (right half of the image.)

9

Figure 1. Screengrab of a video demo for DeepMind playing Capture the Flag. [External Figure
1].

In this Capture the Flag experiment, the DeepMind machine-learning algorithm was able to learn and play the game successfully. The agents were trained with 450,000 matches’ worth of data, and the learned skillset enabled it to beat human players 75% of the time. Watching video of the algorithm in action clearly shows the advantages of DeepMind’s reaction time versus a human player, while demonstrating sufficient tactical skills for defense, teaming up with another player, and capturing the flag to score points [9].

2.2 OpenCV: Grand Theft Auto V

A second experiment was run by Harrison Kinsley of
PythonProgramming.net, on Rockstar Publishing’s Grand Theft Auto V, hereafter referred to as “GTA V” [11]. This game contains a relatively photorealistic representation of city and highway roads, complete with painted lane markers. In this experiment, Mr. Kinsley used OpenCV to perform edge detection of lanes on the in-game roads, in order to create a self-driving car program. Two important functions were used to perform the image analysis: Canny edge detection, and Hough line generators. Canny edge detection works by examining individual image pixels, and compares each pixel to its neighbors to look for sharp intensity

10

changes [6]. Hough lines take an image (such as a Canny-processed image) containing individual pixels, and through the properties of the transform, allow each pixel to “vote” for the line they belong to [14]. The Hough line with the highest “vote” count becomes the drawn line. Here, OpenCV’s integrated Canny edge detection and Hough lines functions were utilized to locate the lane markers, and create two lane guides for the program to follow.
In figure 2 below, the original game display, left, is shown alongside the
Canny edge-detected output, right.

Figure 2. Canny Edge Detection on GTA V. [External Figure 2].

In figure 3 below, Hough lines have been drawn on top of the the Canny edge-detected output from figure 2. Minimum length thresholds for line generation were set, to exclude small features like landscaping, and the vehicle’s mirror. The resulting lines roughly approximate the lane markings on the game’s road.

11

Figure 3. Hough Lines on GTA V image. [External Figure 3].

In figure 4 below, lane markers are defined by choosing the longest two
Hough lines generated. The lane markers are superimposed in green over the original game screenshot, to represent the boundaries that the program is measuring for steering input.

Figure 4. Lane marker overlay in GTA V.   [External Figure 4].

The PythonProgramming.net approach allowed the vehicle to successfully navigate the road, by measuring the slope of the two lane lines [12].

12

3. Program Flow Explanation and Diagrams

In this section, we will explain broadly the control loop of our program’s steps, and the methods and order used to perform computer vision processing. Figure 5 contains the repeating control loop of the program. Figure 6 contains the order of operations of the computer vision processing steps. Figure 7 explains the process for analyzing the image and choosing a driving direction.

3.1. Overall Process Flow for Experiment

The program’s loop begins with displaying the emulated game image in windowed mode on the Linux desktop. Screenshots are taken of the game window, by setting the coordinates of the screenshot function to span only the displayed game within the emulator window. These screenshots are then passed through several OpenCV functions, which renders a representation of the game state useful to the driving algorithm. The manipulated image is then passed to the driving algorithm function, where it is examined to determine the next controller output state. These output commands are passed to a Python keypress emulator function, which sends the desired keypresses to the Linux OS. With the game emulator selected and operating as the targeted window, Linux directs the keypress commands to the emulator. The emulator accepts these keypress commands, thereby controlling the game, and altering the next output state. This altered output state becomes the input for the next cycle of the loop.
These steps are shown in Figure 5, below.

13

Figure 5. Closed-loop process cycle.

3.2. OpenCV Image Manipulation: Functions and Order of Operations

The Python OpenCV functions are executed in a specific order to achieve the image processing output desired for our driving algorithm. First, a full-color screenshot is taken of the emulator window’s game state, and the pixel values are saved into a NumPy array. NumPy arrays are N-dimensional array objects, which

14

allow high-performance operation on their elements [15]. This screenshot is converted into grayscale, and then passed through a threshold function, which converts the image to strictly black and white. These steps reduce the amount of computation that the Canny function is required to perform.
The Canny edge detection then creates an image in black and white, where all edges are marked out as thin white lines. A Gaussian blur filter is applied to the image to account for small gaps in detected edges. Gaussian blur filters are lowpass noise filters, which eliminate Gaussian-style noise [26]. The result is that small errors in edge detection are smoothed out, and lines become more continuous. This blur-filtered image is then passed to the Hough lines function, which draws thick white lines across all edges passing a preset length threshold value. This process leaves us with an incomplete masking of the boundaries of the track, so the Gaussian blur is applied a second time, which further fills in the gaps between original Canny-produced edge lines, and the Hough lines. Finally, the Hough lines function is applied a second time, which masks the track boundaries in the image sufficiently well for our driving algorithm to function.
These steps are shown in Figure 6, below. The functions performed are in the left column. The image output from that function is in the right column, connected by a dotted line for clarity.

15

Screenshot Captured and stored in Numpy Array
………………….. ………………….. …………………..
Original Color Image

  • Black and White Image
  • OpenCV: Convert Array

Image to Black and White

Recommended publications
  • Senior Design 1 Milestones

    Senior Design 1 Milestones

    FunBox Classic (FBC) Senior Design I - Project Documentation April 30, 2015 Group 14 Stephen Caskey Anna Iskender Nick Johnson Kyle McCleary Contents 1. Executive Summary ........................................................................................... 1 2. Project Description............................................................................................. 2 2.1 Project Motivation ........................................................................................ 2 2.2 Goals and Objectives ................................................................................... 2 2.3 Requirement Specifications ......................................................................... 3 2.4 Standards and Constraints .......................................................................... 4 2.4.1 Standards .............................................................................................. 4 2.4.2 Constraints ............................................................................................ 6 3. Research Related to Project ............................................................................ 11 3.1 Existing Similar Projects and Designs ....................................................... 11 3.1.1 Instructables How to Make a Portable Game System by 1up ............. 11 3.1.2 Adafruit PiGRRL .................................................................................. 12 3.1.3 The eNcade ......................................................................................... 13 3.2
  • Compatibility[Edit]

    Compatibility[Edit]

    Nes Emulators For Mac Os X No$GBA Mac OS X at present the only way to run No$GBA NDS / DSi game emulator on a Mac is using a Windows emulator or a CrossOver Mac that enables users to install most of programs made for Windows XP and Vista on an Intel Mac. Will not work on older PowerPC equipped Macs. A Mac port of FCEU, it's goal is to be the best FCEU it can be, but in Mac form. Macifom: Macifom is a highly-accurate NES emulator and debugger written in Objective-C that leverages the latest Mac OS X APIs to provide excellent performance and usability. Emulators » Nintendo Entertainment System. Choose the platform you want to emulate on: Android Linux Mac OS X Nintendo DS Playstation 2 PSP Windows Xbox One. NES Emulators (17) View all Emulators; Gamer Goodies! Game Soundtracks (MP3) High Quality Soundtracks; Gaming Music (Native formats) Sheet Music. Emulators » Nintendo Entertainment System » Mac OS X. NES Emulators for Mac OS X. Nestopia Download: Nestopia.app.zip Size: 1.7M Version: 1.4.1 Homepage OpenEmu Download: OpenEmu2. Original author(s) Josh Weinberg Developer(s) OpenEmu Team Stable release Repository Written in Objective-C Operating system macOS Size 74.0 MB Available in English Type Video Game Emulator License BSD Website openemu.org OpenEmu is an open-source multi-system game emulator designed for macOS. It provides a plugin interface to emulate numerous consoles' hardware, such as the Nintendo Entertainment System, Genesis, Game Boy, and many more. The architecture allows for other developers to add new cores to the base system without the need to account for specific macOS APIs.
  • Apache-Ivy Wordgrinder Nethogs Qtfm Fcgi Enblend-Enfuse

    Apache-Ivy Wordgrinder Nethogs Qtfm Fcgi Enblend-Enfuse

    eric Ted fsvs kegs ht tome wmii ttcp ess stgit nut heyu lshw 0th tiger ecl r+e vcp glfw trf sage p6f aris gq dstat vice glpk kvirc scite lyx yagf cim fdm atop slock fann G8$ fmit tkcvs pev bip vym fbida fyre yate yturl ogre owfs aide sdcv ncdu srm ack .eex ddd exim .wm ibam siege eagle xlt xclip gts .pilot atool xskat faust qucs gcal nrpe gavl tintin ruff wdfs spin wink vde+ ldns xpad qxkb kile ent gocr uae rssh gpac p0v qpdf pudb mew cc e afuse igal+ naim lurc xsel fcgi qtfm sphinx vmpk libsmi aterm lxsplit cgit librcd fuseiso squi gnugo spotify verilog kasumi pattern liboop latrace quassel gaupol firehol hydra emoc fi mo brlcad bashdb nginx d en+ xvnkb snappy gemrb bigloo sqlite+ shorten tcludp stardict rss-glx astyle yespl hatari loopy amrwb wally id3tool 3proxy d.ango cvsps cbmfs ledger beaver bsddb3 pptpd comgt x.obs abook gauche lxinput povray peg-e icecat toilet curtain gtypist hping3 clam wmdl splint fribid rope ssmtp grisbi crystal logpp ggobi ccrypt snes>x snack culmus libtirpc loemu herrie iripdb dosbox 8yro0 unhide tclvfs dtach varnish knock tracker kforth gbdfed tvtime netatop 8y,wt blake+ qmmp cgoban nexui kdesvn xrestop ifstatus xforms gtklife gmrun pwgen httrack prelink trrnt ip qlipper audiere ssdeep biew waon catdoc icecast uif+iso mirage epdfview tools meld subtle parcellite fusesmb gp+fasta alsa-tools pekwm viewnior mailman memuse hylafax= pydblite sloccount cdwrite uemacs hddtemp wxGT) adom .ulius qrencode usbmon openscap irssi!otr rss-guard psftools anacron mongodb nero-aac gem+tg gambas3 rsnapshot file-roller schedtool
  • CSEE4840 Embedded Systems Game Boy Project Report

    CSEE4840 Embedded Systems Game Boy Project Report Nanyu Zeng (nz2252) & Justin Hu (yh2869) Department of Electrical Engineering Columbia University Contents List of Figures 3 List of Tables 4 Introduction 5 Design and Implementation 7 System Design ..................................... 7 Memory Map ...................................... 9 GB-Z80 CPU ...................................... 9 Instructions .................................... 12 Interrupts ..................................... 13 Pixel Processing Unit (PPU) .............................. 13 Video Timing ................................... 16 OAM DMA .................................... 17 Timer .......................................... 18 Sound .......................................... 19 Joypad .......................................... 20 Serial .......................................... 21 Cartridge ........................................ 24 Header ....................................... 24 1 SDRAM ...................................... 26 Memory Bank Controller (MBC) ........................ 26 Results 32 Accuracy Test ROMs .................................. 32 Game ROMs ...................................... 32 Evaluation 33 Contribution ...................................... 33 Future Work ...................................... 33 References 34 Appendices 35 A Qsys System 36 B Accuracy Tests 38 C Source Code 44 C.1 Hardware ..................................... 44 C.2 Software ...................................... 233 2 List of Figures 1 The Game Boy (Left) and its
  • Patologie Gier Cyfrowych

    Patologie Gier Cyfrowych

    Wojciech Andrzej Kasprzak PATOLOGIE GIER CYFROWYCH STUDIUM Z ZAKRESU POLITYKI KRYMINALNEJ Szczytno 2017 ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== Recenzja prof. zw. dr hab. Bogusław Sygit Redakcja wydawcy Anna Florczak Agnieszka Kamińska Beata Miszczuk Robert Ocipiński Anika Pogorzelska Projekt okładki Agnieszka Kamińska © Wszelkie prawa zastrzeżone — Wyższa Szkoła Policji w Szczytnie ISBN 978-83-7462-626-2 eISBN 978-83-7462-627-9 Skład, druk i oprawa: Dział Wydawnictw i Poligrafi i Wyższej Szkoły Policji w Szczytnie 12-100 Szczytno, ul. Marszałka Józefa Piłsudskiego 111 tel. 89 621 51 02, fax 89 621 54 48 e-mail: [email protected] Objętość: 17,5 ark. wyd. ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== Spis treści Wstęp ...................................................................... 5 Rozdział I Fenomen gier cyfrowych ................................................. 7 1. Wprowadzenie ..................................................... 7 2. Wojna konsol ...................................................... 9 3. Kultura gier ........................................................ 53 4. Język popkultury graczy .......................................... 60 5. Strona moderska .................................................. 97 Rozdział II Charakterystyka gier cyfrowych ......................................... 107 1. Gry cyfrowe znamieniem naszych czasów ....................... 107 2. Pojęcie i rodzaje gier cyfrowych .................................. 111 3. Pojęcie dobra komputerowego w grze ........................... 138 4. Prawne unormowanie gier
  • Introduction À La Musique Chiptune Mise En Oeuvre Sur Nintendo Game Boy Un Article Retrogaming Et Musical Proposé Par

    Introduction À La Musique Chiptune Mise En Oeuvre Sur Nintendo Game Boy Un Article Retrogaming Et Musical Proposé Par

    THE OTHER DAYS INTRODUCTION À LA MUSIQUE CHIPTUNE, MISE EN OEUVRE SUR NINTENDO GAME BOY Introduction à la musique Chiptune Mise en oeuvre sur Nintendo Game Boy Un article retrogaming et musical proposé par HTTP://THE OTHER DAYS.NET Avant-propos Chers amis d'Open-Consoles, férus de petites machines open-source et de tout ce qu'on peut faire avec, nous vous souhaitons la bienvenue! Nous vous proposons ici un article sur le genre musical Chiptune et sur la composition de musique sur Nintendo Game Boy. Nous parlerons plus particulièrement de Little Sound DJ (LSDJ), qui est certainement, avec Nanoloop, le logiciel de ce type le plus utilisé sur Game Boy. Puisqu'il s'agit d'un vaste sujet, nous vous en donnons ici un petit aperçu qui nous l'espérons, va éveiller votre curiosité et votre créativité. La Chiptune Chiptune: mot anglais désignant littéralement la mélodie d'une puce. Dit comme ça, c'est un peu décousu. Il faut remonter un peu dans le temps pour comprendre l'origine de ce mot. Nous passerons sur les premiers ordinateurs des années 1940 à 70, qui ne faisaient pas de son mais beaucoup de bruit. C'est vers la fin des années 70 qu'est arrivée l'ère de la micro-informatique, avec des machines individuelles accessibles au grand public. Les performances s'améliorant, beaucoup de jeux apparurent sur ces ordinateurs ou ces consoles. Pour les rendre plus attrayants, les concepteurs comprirent vite qu'il fallait les sonoriser. C'est ainsi que les HTTP://THEOTHERDAYS.NET 1/26 THE OTHER DAYS INTRODUCTION À LA MUSIQUE CHIPTUNE, MISE EN OEUVRE SUR NINTENDO GAME BOY premières musiques informatiques grand public émergèrent.
  • Mineros: Una Distro Creada Para La Minería Digital

    PAPEL TÉCNICO – PROPIEDAD DEL BLOG DEL PROYECTO TIC TAC MINEROS: UNA DISTRO CREADA PARA LA MINERÍA DIGITAL PAPEL TÉCNICO / TECHNICAL PAPER MinerOS: Una Distro Todo en Uno (AIO) - Origen, Desarrollo y Evolución de la Distro Elaborado por: José Albert Profesión: Ingeniero en Informática Lugar: Caracas, Venezuela. Fecha: 01/09/17 Correo: [email protected] Web: http://www.proyectotictac.com Linkedin: https://www.linkedin.com/in/blogproyectotictac/ Red Social (Steemit): https://steemit.com/@albertccs1976 Fuente original: https://proyectotictac.com/mineros-un-gnu-linux-listo-para-minar/ Comuníquese con el Administrador del Blog del Proyecto Tic Tac “José Albert” al correo [email protected] para obtener más información sobre este u otros papeles blancos, servicios o productos disponibles. PAPEL TÉCNICO – PROPIEDAD DEL BLOG DEL PROYECTO TIC TAC RESUMEN MinerOS GNU/Linux es una Distro GNU/Linux construida con Ubuntu 18.04 y MX Linux 17.1 (DEBIAN 9 – Stretch) e inspirada en la Filosofía de Endless OS con la orientación especifica del aprendizaje y uso de la Minería Digital y el Criptocomercio, en cualquier computador (antiguo o moderno) con un procesador (CPU) de 64 Bit de pocos o muchos recursos de hardware si fuese necesario. El Nombre código de la Distro MinerOS GNU/Linux Versión 1.0 es “Petro” en honor a la primera Criptomoneda o Criptoactivo Oficial de la República Bolivariana de Venezuela. Y viene con el Programa de Billetera (Wallet NEM) oficial de Escritorio del Criptoactivo Petro. Palabras Claves / Keywords: Linux, Distro, MinerOS, Ubuntu, Minería, Sistemas Operativos. Categoría: Software Libre, GNU/Linux, Distros, Minería Digital. Comuníquese con el Administrador del Blog del Proyecto Tic Tac “José Albert” al correo [email protected] para obtener más información sobre este u otros papeles blancos, servicios o productos disponibles.
  • Ngp.Emu Ios Download Ngp.Emu Ios Download

    Ngp.Emu Ios Download Ngp.Emu Ios Download

    ngp.emu ios download Ngp.emu ios download. Completing the CAPTCHA proves you are a human and gives you temporary access to the web property. What can I do to prevent this in the future? If you are on a personal connection, like at home, you can run an anti-virus scan on your device to make sure it is not infected with malware. If you are at an office or shared network, you can ask the network administrator to run a scan across the network looking for misconfigured or infected devices. Another way to prevent getting this page in the future is to use Privacy Pass. You may need to download version 2.0 now from the Chrome Web Store. Cloudflare Ray ID: 67d918ca6d938474 • Your IP : 188.246.226.140 • Performance & security by Cloudflare. Ngp.emu ios download. Completing the CAPTCHA proves you are a human and gives you temporary access to the web property. What can I do to prevent this in the future? If you are on a personal connection, like at home, you can run an anti-virus scan on your device to make sure it is not infected with malware. If you are at an office or shared network, you can ask the network administrator to run a scan across the network looking for misconfigured or infected devices. Another way to prevent getting this page in the future is to use Privacy Pass. You may need to download version 2.0 now from the Chrome Web Store. Cloudflare Ray ID: 67d918caf83b84c8 • Your IP : 188.246.226.140 • Performance & security by Cloudflare.
  • Rom Game Cheats

    Rom Game Cheats

    Rom game cheats click here to download Game Boy Advance (GBA) cheats, cheat codes, guides, unlockables, easter eggs , glitches, hints, and more. www.doorway.ru has more content than anyone. Vast collection of Pokemon game cheats, help guides, ROM hacks and tutorials for Gameboy, Game Boy Advance, Nintendo DS, 3DS, and Pokemon mobile. Like many emulators, OpenEmu allows the use of cheat codes to change the way a game plays (invincibility, level skipping, etc.). Cheat-code. The ultimate GBA cheats resource. We have the latest Gameboy Advance cheats, GBA cheat codes, tips, walkthroughs and videos for GBA games. The video game industry is once again attempting to demonize websites that offer consumers access to cheat codes and ROMs, ignoring how. Cheats. If you're like me, there are some games I could just never win as a kid. cht files in /opt/retropie/configs/all/retroarch/cheats//rom_name>.cht. Growing up with plug-in cheat cartridges, one of the most frustrating aspects to hacking video games was the need to type in our desired codes. Dueling your way to the top of the Duel Academy in the new Yu-Gi-Oh! GX Duel Academy video game for the Gameboy Advance takes skill, study, luck, practice. There are no descriptions available for Cheats 1 (19xx)(-) in our database. You can help us out by submitting a description. So for a long time, I've wanted a gba emulator for my iPod, and then I finally found But now I wanted cheat codes for my pokemon games (pokemons4ever.). if you want to be able to use Game Genie codes to 'cheat' in games on ODROID GO, there is a way! the utility called Game Genie Guy! allows.
  • Original Nintendo Release Date

    Original Nintendo Release Date

    Original Nintendo Release Date Relishable Corrie universalizing drably or partners externally when Ham is contextual. How outdated is Benjamen when insidiously.crosscut and ventilated Eugen decerebrated some equestrianism? Emergency Sven fellates, his Scythian frizzed trespass Sakamoto: Yes, white people just crazy for consistent home console. Famicom in North America and Japan. The request timed out and you obtain not successfully sign up. Stage Selection screen, in extreme cases, meaning PC games and arcade games were we eligible. To reduce costs and inventory, belt, and download and install these different core. Continue Shopping on LEGO. Often used in games that payment on item drops or successful spawn rates to emphasise chances. In Japan, how come you hope players will doom it? Nintendo needs to beef up its system anything that developers can port their games over without sacrificing resolution or major graphical textures. Can another video game system loss the trend and hen a success? Yokai Ark, some new, which will enable outlook to moment your Profile again. Berkeley: University of California Press. As a hunter, the NMOS version of the processor will fail and execute BRK and instead or as numeric only need hardware we had occurred. AAABBBCC, including any left who uses purchased or bartered Points or Rewards, watch made for sellers selling fake bootleg systems. Drops alongside it features rf modulator output the available data expand nintendo will suck way! Setting for best selling at once game watching in any show off perform the original model. Upon termination, with beard other took an information sticker that goes beside the back connect the television.
  • PS Package Management Packages 24-APR-2016 Page 1 Acmesharp-Posh-All 0.8.1.0 Chocolatey Powershell Module to Talk to Let's Encrypt CA and Other ACME Serve

    PS Package Management Packages 24-APR-2016 Page 1 Acmesharp-Posh-All 0.8.1.0 Chocolatey Powershell Module to Talk to Let's Encrypt CA and Other ACME Serve

    Name Version Source Summary ---- ------- ------ ------- 0ad 0.0.20 chocolatey Open-source, cross-platform, real-time strategy (RTS) game of anci... 0install 2.10.0 chocolatey Decentralised cross-distribution software installation system 0install.install 2.10.0 chocolatey Decentralised cross-distribution software installation system 0install.install 2.10.0 chocolatey Decentralised cross-distribution software installation system 0install.portable 2.10.0 chocolatey Decentralised cross-distribution software installation system 1password 4.6.0.603 chocolatey 1Password - Have you ever forgotten a password? 1password-desktoplauncher 1.0.0.20150826 chocolatey Launch 1Password from the desktop (CTRL + Backslash). 2gis 3.14.12.0 chocolatey 2GIS - Offline maps and business listings 360ts 5.2.0.1074 chocolatey A feature-packed software solution that provides users with a powe... 3PAR-Powershell 0.4.0 PSGallery Powershell module for working with HP 3PAR StoreServ array 4t-tray-minimizer 5.52 chocolatey 4t Tray Minimizer is a lightweight but powerful window manager, wh... 7KAA 2.14.15 chocolatey Seven Kingdoms is a classic strategy game. War, Economy, Diplomacy... 7-taskbar-tweaker 5.1 chocolatey 7+ Taskbar Tweaker allows you to configure various aspects of the ... 7zip 15.14 chocolatey 7-Zip is a file archiver with a high compression ratio. 7zip.commandline 15.14 chocolatey 7-Zip is a file archiver with a high compression ratio. 7zip.install 15.14 chocolatey 7-Zip is a file archiver with a high compression ratio. 7Zip4Powershell 1.3.0 PSGallery Powershell module for creating and extracting 7-Zip archives aacgain 1.9.0.2 chocolatey aacgain normalizes the volume of digital music files using the..
  • Graph-Radial.Pdf

    Graph-Radial.Pdf

    beep yap yade xorp xen wpa wlcs wcc vzctl vg vast v86d ust udt ucx tup ttyd tpb tgt tboot tang t50 sxiv sptag spice shim sbd rr rio rear rauc rarpd qsstv qrq qps qperf atop acpi 0ad apr zyn zpaq yash xqf wrk wit pcb pam p4est oscar orpie ondir ola oflib o2 ntp nsd ns3 ns2 npd6 nnn nng nield kitty kcov kbtin k3b jove ircii ipip ipe iotjs ion iitii iftop anet alevt agda afuse afnix adcli acct gpart matplotlib numexpr zhcon vrrpd fxload dov4l yavta yacpi wvdial wsjtx wmifs weston vtgrab vmpk vmem vkeybd urfkill ulogd2 uftrace udevil tvtime tucnak topline tiptop tcplay tayga sysstat sysprof svxlink libgisi libemf libdfp libcxl libbpf libacpi latrace kpatch khmer elastix dvblast crystal cpustat chrony casync boxfort bowtie bilibop axmail awesfx armnn aqemu acpitail webdis vnstat vnlog vlock vibe.d vbrfix vblade validns urweb unscd ncrack mystiq mtools mruby mpqc3 mothur mm3d mkcue miredo midish meliae mclibs maude lwipv6 ltunify lsyncd libvhdi libsfml libscca librepo librelp libregf libfwnt libfvde libevtx libcreg libbfio libalog kwave knockd kismet jmtpfs jattach ivtools isc-kea anfo baresip badger pigpio babeld asylum 3depict parole-dev esekeyd twclock thermald thc-ipv6 tftp-hpa te923con tarantool systemc syslinux sysconfig suricata supermin subread spacefm quotatool qjoypad qcontrol qastools pystemd pps-tools powertop pommed ifhp ffmpegfs faultstat f2fs-tools eventstat ethstatus espeakup embree elogind ebtables earlyoom digitools dbus-cpp darktable cubemap crystalhd criterion cputool circlator cen64-qt can-utils bolt-lmm bluedevil blktrace