Releases: Diesel-Net/kiwi-8
Kiwi8 v1.03
The application is now back to running on a single thread while keeping the CPU usage down to a minimum. Most of the work in this release was done on the GUI and getting Audio up and running. Switched from using SDL's 2D-rendering API to raw OpenGL 2.0 which allowed for compatibility with ImGui. The Project will now be referred to as Kiwi8.
Improvements/changes:
- Project name change
- GUI
- Audio
Here's an incomplete list of programs and their required quirks to run properly: ROM Compatibility
*Binaries built and tested on Windows 10 and MacOS Sierra.
Planned for future releases:
- GUI debugger
- Assembler/Disassembler
- SCHIP support
Chip8 v1.02
Improvements/Changes:
- Passes all standard CHIP-8 tests with "SC Test.ch8" (displays error 23, which is the first SCHIP test)
- Rendering/event/timing systems overhauled
- Opcode fixes (DXYN, 8XYE, FX0A, and others)
- Two more command line options (chip-8 quirks)
- Variable instruction speed
Overall, this build is much more stable and offers significantly higher ROM compatibility. The instruction speed is now adjustable with the PageUp and PageDown keys (Fn + ArrowUp and Fn+ ArrowDown on MacOS).
All the rendering is now done on the main thread since SDL's Render API is not designed to be used from multiple threads. This finally knocked out the full-screen toggling issue on MacOS while keeping the CPU usage extremely low. There are two new options added to the interpreter that allow you to enable the two quirks of the CHIP-8 CPU.
Some games require these quirks to be ENABLED to run correctly. They are DISABLED by default.
Load/Store quirks - Instructions 0xFX55 and 0xFX65 increment the value of the I register but some CHIP-8 programs assume that they don't. Enabling this quirk causes the I register to become unchanged after the instruction.
Shift quirks - Shift instructions 0x8XY6 and 0x8XYE originally shift register VY and store the result in register VX. Some CHIP-8 programs incorrectly assume that the VX register is shifted by this instruction, and that VY remains unmodified. Enabling this quirk causes VX to become shifted with VY remaining untouched.
Here's an incomplete list of programs and their required quirks to run properly: #9
*Binaries built and tested on Windows 10 and MacOS Sierra.
Planned for future releases:
- Config files support
- Audio
- Built in GUI debugger
- Assembler/Disassembler
- SCHIP instructions support
Chip8 v1.01
New multi-threaded implementation that drastically reduces CPU usage. Removed deprecated MacOS function call. Major improvements to full-screen toggling (much smoother and no more flicker).
*Binaries built and tested on Windows 10 and MacOS Sierra.
Planned for future releases:
- Variable instruction execution speed
- Audio
- Built in GUI debugger
- Assembler/Disassembler
- SCHIP instructions support
Chip8 v1.0
This is a good point for a first stable release. All core features are implemented with the exception of audio. Most games/programs are playable at this point. The interpreter executes approximately 540 instructions per second (~2ms delay between instructions) and the timers count down at 60hz (~16ms delay between decrements).
*Binaries built and tested on Windows 10 and Mac OS X El Capitan.
Planned for future releases:
- Variable instruction execution speed
- Audio
- Built in GUI debugger
- Assembler/Disassembler
- SCHIP instructions support