Commit Graph

51 Commits

Author SHA1 Message Date
tmerritt be6e652982 Adds 'name' and 'operand' to Chip8Instruction 2024-10-18 15:34:49 -04:00
tmerritt 1eeb746ccf control moved into gemma for launch/stop/step of cpu core 2024-10-18 10:52:39 -04:00
tmerritt d829b9f03f Adds ComputerManager so no write access to the computer directly happens.
ComputerManager has a thread to run the CPU whenever its told to either
step or run.  It can be told to stop the CPU too.  Cycle count and keystate
feedback is available along with read-only of the computer from status()
2024-10-18 09:59:43 -04:00
tmerritt 902d5c1875 Adds gemmasdl2
-> needs work but starts and runs and steps through the 1-chip8
 -> has debugging level code for determining what buttons are being pushed
2024-10-17 14:50:15 -04:00
tmerritt a467c8e6b0 microoptimization for rendering 2024-10-17 11:35:03 -04:00
tmerritt 4cc56db489 lots more docs in the instructions
more speedups
2024-10-16 16:04:45 -04:00
tmerritt 128100c54e removed code that was only there to be tested 2024-10-16 11:57:57 -04:00
tmerritt b4b8bfb24b more validation tests for gemma video rendering
Adds 'doom like' 3dviprmaze-vip for demo (VERY VERY SLOW)
updates egui interface to let user select from files in resources/roms
updates cargo to centralize dependencies
95 passing tests
2024-10-16 11:45:01 -04:00
tmerritt 939fd83e80 add chatgpt driven changes to video rendering 2024-10-16 07:28:03 -04:00
tmerritt 448aeab154 BUGFIX: Collision works better, not 100%
BUGFIX: Video Reset works.
2024-10-14 12:13:46 -04:00
tmerritt 5e290d825b more roms 2024-10-14 12:13:33 -04:00
tmerritt 683b0fc51a more roms to play with
egui now renders the video correctly
2024-10-12 14:16:14 -04:00
tmerritt 6be443fa2b BUGFIX: Video was not being XORed but just set. 2024-10-12 13:47:15 -04:00
tmerritt bfb615cfe7 more dump of "Emma" for Gemma
Video reset now tests ok
gemma egui interface now implements stupid workaround for video reset
2024-10-12 11:22:37 -04:00
tmerritt c9ef6d4e04 working on gemmaegui to build a usable UI 2024-10-11 15:02:15 -04:00
tmerritt ef0250b519 improve core to handle looping of video 2024-10-11 13:12:13 -04:00
tmerritt c455175447 adds more sample roms.
21 is the random number now i guess
2024-10-11 13:11:52 -04:00
tmerritt 6f7b894e92 Gemma now has a test that runs the IBM Logo and verifies the video is as expected when done. 2024-10-11 09:50:01 -04:00
tmerritt 2ef8a78c32 start of computer integration tests 2024-10-11 08:51:44 -04:00
tmerritt 4fc0bfd3d8 now passes the flags test rom 2024-10-10 16:40:25 -04:00
tmerritt e176ee5638 8xy4 and 8xy5 pass.
more flag tests passing

removes legacy code
moves 'gemmaemu' into 'gemma' crate
moves 'gemmaimgui' into its own crate

update to gemma
2024-10-10 15:26:56 -04:00
tmerritt c7c3c6aa04 resize parameters 2024-10-10 09:19:08 -04:00
tmerritt 4217571ded rename to gemma
add gemmaegui
2024-10-09 15:16:47 -04:00
tmerritt 067164c657 adds more test roms
adds list of test roms and ability to load as desired
passes the Corax+ opcode test now
2024-10-09 11:04:44 -04:00
tmerritt 6fe644ef46 adds support for showing/hiding the 3 windows
- memory
- video
- registers
2024-10-08 19:59:00 -04:00
tmerritt d06bc3fd87 stack now traps overflow and underflow
fixes missing whitespace
adds multi_sprite test output

----
Timendus'
Chip-8
Test Suite

Runs!

switch to hard test
2024-10-08 14:36:27 -04:00
tmerritt b4383436aa emmagui isnt rendering correctly.
backend isnt writing a sprite correctly and attempting to poke outside memory
2024-10-07 13:33:35 -04:00
tmerritt d4273dfb13 fixes pc 2024-10-07 11:08:02 -04:00
tmerritt 495745c19c DrawSprite passes test now. 2024-10-07 08:37:47 -04:00
tmerritt 24634637b2 video rendering might work. cant focus 2024-10-06 12:32:18 -04:00
tmerritt 8c3cc5085c updates tests to cover most code.
-> Draw Sprite
-> Ret
-> Call
2024-10-06 10:33:02 -04:00
tmerritt d1e39307a7 more byte poke tests 2024-10-04 14:58:06 -04:00
tmerritt f1c8c9a683 peek/poke tests 2024-10-04 14:55:06 -04:00
tmerritt ef1b6e70f7 go to lunch 2024-10-02 12:02:50 -04:00
tmerritt 9d3fabe0c3 more test suite evolution 2024-10-02 10:54:58 -04:00
tmerritt 24ea413848 more test etc.
video needs stuff bad
2024-09-28 22:20:51 -04:00
tmerritt 731f20d894 more fixed tests and covered text. 2024-09-28 08:55:35 -04:00
tmerritt fc62512edd now blows up with the hard test. the easy one runs but the rendering is still not done 2024-09-26 13:21:19 -04:00
tmerritt 7436200a6f adds better handling for invalid instructions
adds tests for invalid instructions
adds tarpaulin for generating coverage
2024-09-26 12:46:26 -04:00
tmerritt 9c60454270 coverage at 100%
- delay_timer
- keypad
- sound_timers
- video
- util

close
- system_memory
- registers
- instructions
2024-09-26 11:12:44 -04:00
tmerritt 7b36061268 registers better integrated
more tests and docs to the executors
2024-09-25 11:26:09 -04:00
tmerritt 0075c5ef7d more tests.
registers are their own struct now
2024-09-25 09:05:25 -04:00
tmerritt d00d093b11 moves instruction code into instruction from computer
adds test suite to verify encode/decode of instructions.
(( next is execution of instructions ))
moves utility code for splitting parts of instructions to its own place with tests
2024-09-24 12:51:22 -04:00
tmerritt 9eb735a858 timers closer
display closer
2024-09-24 10:00:13 -04:00
tmerritt d6f7c73de3 add test chip8 file
more decoder and executor code
lots and lots more tests.  lots and lots and lots and lots more needed
2024-09-23 16:12:52 -04:00
tmerritt c8259157c5 laptop work 2024-09-21 14:31:21 -04:00
tmerritt a12b5f254c growth 2024-09-14 08:04:11 -04:00
tmerritt 95d4e6c32c box swap 2024-09-11 13:39:20 -04:00
tmerritt 1a59524f02 gotta take a break 2024-08-18 18:15:42 -04:00
tmerritt 6dc9ce3721 emma now has ability to decode an instruction and to display video and system memory 2024-08-17 13:40:19 -04:00