diff --git a/README.md b/README.md index eb35af5..e323e78 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# chip8 +# Chipsk-8 ## A [Chip-8](http://www.cs.columbia.edu/~sedwards/classes/2016/4840-spring/designs/Chip8.pdf) emulator written in Kotlin

- +

# How to run @@ -35,7 +35,7 @@ timerFuture = executor.scheduleAtFixedRate(timerTick, 0, 16L, TimeUnit.MILLISECO ```

- +

The next two bytes are then masked and turned into instructions. All the op codes can be found in the `[Ops.kt](https://github.com/cbeust/chip8/blob/master/src/main/kotlin/com/beust/chip8/Ops.kt)` file. Here is an example: @@ -66,18 +66,18 @@ interface Display { For example, here is a text based renderer:

- +

The emulator window will resize gracefully:

- +

You can also easily alter other aspects of the renderer:

- +

diff --git a/src/main/kotlin/com/beust/chip8/Main.kt b/src/main/kotlin/com/beust/chip8/Main.kt index f6ce501..517a79b 100644 --- a/src/main/kotlin/com/beust/chip8/Main.kt +++ b/src/main/kotlin/com/beust/chip8/Main.kt @@ -3,6 +3,7 @@ package com.beust.chip8 import com.beust.jcommander.JCommander import com.beust.jcommander.Parameter import javafx.application.Application +import javafx.application.Platform import javafx.beans.property.SimpleBooleanProperty import javafx.beans.property.SimpleStringProperty import javafx.event.EventHandler @@ -97,6 +98,10 @@ class MyFxApp : Application() { } primaryStage.title = "CHIP-8" + primaryStage.onCloseRequest = EventHandler { + Platform.exit() + exitProcess(0) + } val url = this::class.java.classLoader.getResource("main.fxml") val loader = FXMLLoader(url) val res = url.openStream() @@ -190,7 +195,7 @@ class MyFxApp : Application() { try { val key = Integer.parseInt(event.code.char, 16) keyListener.onKey(key) - } catch(ex: NumberFormatException) { + } catch (ex: NumberFormatException) { println("Can't parse key " + event.code.char + ", ignoring") } }