Skip to content

Latest commit

 

History

History
214 lines (168 loc) · 4.68 KB

TODO.md

File metadata and controls

214 lines (168 loc) · 4.68 KB

Basic setup

  • Basic protobuf setup
    • Ack
  • Client/server setup
  • Create initial emulator
    • Options
    • Ack

Initial debugger

  • OpenGL and UI
  • Initial startup screen (emulator or serial)
    • Run emulator (as thread)
  • Initial ack
    • Treat errors
  • Connect to real hardware
    • Auto-detect serial port
    • Start real hardware CHIP-8 project

RAM

  • Memory commands in proto
  • Memory commands in library (client/server)
  • Memory in emulator
  • Memory in debugger
  • Create debugger model
  • Memory in computer (CHIP-8)

Communication improvements

  • Ready signal
  • Treat communication errors

DLL

  • Can the user emulator be a DLL?

Debugger

  • Main menu
  • Config window
  • Demo window

Refactory

  • Move machine id to Lua and library
  • Move compilation to library
  • Implement Compile & Upload
  • Run emulator independently
  • What else can be moved to the library
  • Start emulator from client
    • Serial port synchronization
  • Refactor UI debugger
    • Review model
    • Add emulator path
    • Create own ini management
    • Fix error when loading machine multiple times

Compilation

  • Install and test chip-8 compiler
  • Create interfaces (debugging info, compiler output, ROM, and file list, location in memory)
  • Compile
  • Upload to ROM

Bugfixes

  • Memory is not uploading
  • Ordering issue when building in parallel
  • ./findserial.py path

Code

  • Protobuf messages
    • Registers in machine definition
    • Library request/response
  • Show code in window
    • Color PC
  • Syntax highlighting
  • Step (simple, advanced)
    • Protobuf
    • Library
    • UI
      • Move selected line
  • Breakpoints
    • Protobuf
    • Library
    • UI
    • Clear breakpoints button
  • What else is missing?

Registers

  • Registers/flags window

Memory changes

  • Stack in memory window
  • Show PC in memory window

Cycle

  • Cycle window

Run

  • Run
    • Start running
      • UI running (restrict buttons, show running indication)
    • Breakpoint hit
    • Scroll to position when breakpoint hit/pause
    • Get run updates
  • Pause
  • Next

Recompilation

  • Watch source code
  • Recompilation support

Reactory 2

  • Check if responses from server are correct (ex. number of registers match)
  • Choose theme
  • Configuration: debugging level
  • Check for message sizes

Protobuf modifications

  • Remove malloc from server
  • Autogenerate max from options file (?)
  • Increase message size (2 bytes or protobuf format)
    • Increase size of the arrays (max 2 kB)
  • Reduce int sizes

Terminal

  • Terminal size from Lua
  • Protobuf commands:
    • Terminal RX/TX proto
    • Client/server
  • Terminal UI
    • Terminal
      • Choose raw/ANSI
      • New line (CR, LF, CR+LF)
    • Clear button
    • Write to the terminal
      • Raw
      • ANSI
    • Save terminal config
  • Keyboard input
    • Mid-step
    • While running

Other devices

  • Multiple memories (for SDCard, etc...)
    • memories in Lua/machine
    • Protobuf / library
    • Multiple memories in debugger

Refactory 3

  • Config
    • Windows are keeping visible on restart, even after closed
  • UI
    • Cycle in reverse order
  • Lua library (client, server)
  • Documentation (sample emulator)
  • Server function to push character
  • Push character when running
  • Key capture: fix issue with SHIFT
  • Report error on incorrect instruction (or other error)
  • Versioning, packaging
    • Build release by default
    • Fix tests
    • make install
    • check for dependencies
    • compile on Linux
  • Documentation

Refactory 4

  • Redo build system
    • Reorganize dependencies
    • Fetch git submodules
    • Test on linux
    • Fix warnings
    • Debugging build?
    • Autodetect
    • Sample emulator?
    • Adjust README
  • Fix tests

Refactor 5

  • Separate library in a different repo
  • Fix tabs in the editor
  • Backspace not deleting previous character
  • Restart debugger
  • Add breakpoint while running
  • Save if last execution was emulator or real hardware
  • Better syntax highlighting (?)
  • Documentation

Video

Someday, likely never

  • LuaJIT and emulator in Lua (FFI support?)
  • Unix socket support (for emulator faster speed), TCP socket (for microcontroller wifi support)
  • Improve config class to manage variables as if they were C++ variables
  • Logging into a Window (see Demo -> Configuration -> Capture)