├── .gitignore ├── .java-version ├── LICENSE ├── README.md ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── src └── main └── kotlin ├── Emulator.kt ├── Main.kt ├── apu ├── Apu.kt ├── EnvelopeGenerator.kt ├── FrameCounter.kt ├── LengthCounter.kt ├── NoiseChannel.kt ├── PulseChannel.kt ├── Speaker.kt ├── SweepUnit.kt ├── Timer.kt ├── TriangleChannel.kt └── Utils.kt ├── cartridge ├── Cartridge.kt └── Rom.kt ├── cpu ├── Cpu.kt ├── CpuBus.kt ├── CpuRegister.kt └── Opcode.kt ├── dma └── Dma.kt ├── exception └── UnknownOpcodeException.kt ├── ext ├── BooleanExt.kt ├── ByteArrayExt.kt ├── ByteExt.kt └── FileInputStreamExt.kt ├── interrupts └── Interrupts.kt ├── pad ├── JavaFXKeyEvent.kt ├── Key.kt ├── KeyEvent.kt └── Pad.kt ├── ppu ├── Canvas.kt ├── JavaFXCanvas.kt ├── PaletteRam.kt └── Ppu.kt ├── ram └── Ram.kt └── util └── Util.kt /.gitignore: -------------------------------------------------------------------------------- 1 | out/ 2 | .idea/ 3 | .gradle/ 4 | src/main/resources/ 5 | build 6 | -------------------------------------------------------------------------------- /.java-version: -------------------------------------------------------------------------------- 1 | 17 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/README.md -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/gradlew -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/gradlew.bat -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'kotnes' 2 | 3 | -------------------------------------------------------------------------------- /src/main/kotlin/Emulator.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/Emulator.kt -------------------------------------------------------------------------------- /src/main/kotlin/Main.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/Main.kt -------------------------------------------------------------------------------- /src/main/kotlin/apu/Apu.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/apu/Apu.kt -------------------------------------------------------------------------------- /src/main/kotlin/apu/EnvelopeGenerator.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/apu/EnvelopeGenerator.kt -------------------------------------------------------------------------------- /src/main/kotlin/apu/FrameCounter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/apu/FrameCounter.kt -------------------------------------------------------------------------------- /src/main/kotlin/apu/LengthCounter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/apu/LengthCounter.kt -------------------------------------------------------------------------------- /src/main/kotlin/apu/NoiseChannel.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/apu/NoiseChannel.kt -------------------------------------------------------------------------------- /src/main/kotlin/apu/PulseChannel.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/apu/PulseChannel.kt -------------------------------------------------------------------------------- /src/main/kotlin/apu/Speaker.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/apu/Speaker.kt -------------------------------------------------------------------------------- /src/main/kotlin/apu/SweepUnit.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/apu/SweepUnit.kt -------------------------------------------------------------------------------- /src/main/kotlin/apu/Timer.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/apu/Timer.kt -------------------------------------------------------------------------------- /src/main/kotlin/apu/TriangleChannel.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/apu/TriangleChannel.kt -------------------------------------------------------------------------------- /src/main/kotlin/apu/Utils.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/apu/Utils.kt -------------------------------------------------------------------------------- /src/main/kotlin/cartridge/Cartridge.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/cartridge/Cartridge.kt -------------------------------------------------------------------------------- /src/main/kotlin/cartridge/Rom.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/cartridge/Rom.kt -------------------------------------------------------------------------------- /src/main/kotlin/cpu/Cpu.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/cpu/Cpu.kt -------------------------------------------------------------------------------- /src/main/kotlin/cpu/CpuBus.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/cpu/CpuBus.kt -------------------------------------------------------------------------------- /src/main/kotlin/cpu/CpuRegister.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/cpu/CpuRegister.kt -------------------------------------------------------------------------------- /src/main/kotlin/cpu/Opcode.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/cpu/Opcode.kt -------------------------------------------------------------------------------- /src/main/kotlin/dma/Dma.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/dma/Dma.kt -------------------------------------------------------------------------------- /src/main/kotlin/exception/UnknownOpcodeException.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/exception/UnknownOpcodeException.kt -------------------------------------------------------------------------------- /src/main/kotlin/ext/BooleanExt.kt: -------------------------------------------------------------------------------- 1 | package ext 2 | 3 | fun Boolean.toInt() = if (this) 1 else 0 4 | -------------------------------------------------------------------------------- /src/main/kotlin/ext/ByteArrayExt.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/ext/ByteArrayExt.kt -------------------------------------------------------------------------------- /src/main/kotlin/ext/ByteExt.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/ext/ByteExt.kt -------------------------------------------------------------------------------- /src/main/kotlin/ext/FileInputStreamExt.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/ext/FileInputStreamExt.kt -------------------------------------------------------------------------------- /src/main/kotlin/interrupts/Interrupts.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/interrupts/Interrupts.kt -------------------------------------------------------------------------------- /src/main/kotlin/pad/JavaFXKeyEvent.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/pad/JavaFXKeyEvent.kt -------------------------------------------------------------------------------- /src/main/kotlin/pad/Key.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/pad/Key.kt -------------------------------------------------------------------------------- /src/main/kotlin/pad/KeyEvent.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/pad/KeyEvent.kt -------------------------------------------------------------------------------- /src/main/kotlin/pad/Pad.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/pad/Pad.kt -------------------------------------------------------------------------------- /src/main/kotlin/ppu/Canvas.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/ppu/Canvas.kt -------------------------------------------------------------------------------- /src/main/kotlin/ppu/JavaFXCanvas.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/ppu/JavaFXCanvas.kt -------------------------------------------------------------------------------- /src/main/kotlin/ppu/PaletteRam.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/ppu/PaletteRam.kt -------------------------------------------------------------------------------- /src/main/kotlin/ppu/Ppu.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/ppu/Ppu.kt -------------------------------------------------------------------------------- /src/main/kotlin/ram/Ram.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/ram/Ram.kt -------------------------------------------------------------------------------- /src/main/kotlin/util/Util.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuiki/kotnes/HEAD/src/main/kotlin/util/Util.kt --------------------------------------------------------------------------------