Git Product home page Git Product logo

luachip8's Introduction

Lua Chip 8 Emulator

My personal first lua program made to learn about emulation and lua the programming language itself, implementations and design of code may be a mess as this is my first lua program.

Requires Love2D to run.

Usage

  • Roms can be placed in the roms folder and chaning the ROM_FILENAME value to the new file in settings.lua
  • Other settings can also be adjusted in settings.lua such as INSTRUCTIONS_PER_FRAME or FRAMES_PER_SECOND according to different roms as it may vary

Notes

  • Can load up most ROMS in the folder (Disclaimer:None of them are mine)
  • Audio is not done yet
  • Console window for LOVE2D can be enabled/disabled through changing the value in conf.lua

Rom Tests

  • IBM logo test
  • Corax+ Opcode test
  • Flags test - Several failed opcodes for "HAPPY path" 8xy5, 8xy6, 8xyE
  • Keypad test - Minor issue with Wait for key press Not halting

All features should work fine regardless of test results as most roms can be loaded, just not the most accurate implementation.

Addtional Controls

Key Description
ESC End the program
B Pause the emulator
N Call Cpu:Cycle()
M Turn on debug mode, which shows some information in the background
K Increment the amount of instructions to run per cpu cycle by 1, default 10
L Decrement the amount of instructions to run per cpu cycle by 1, default 10
O Increment frames per second by 5, default 60 according to the default 60Hz
P Decrement frames per second by 5, default 60 according to the default 60Hz

Planned Feature

  • Rom loading through file selection perhaps

References

luachip8's People

Contributors

hagefx-78 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.