tmerritt
a978ddc41e
adding SChip features
2024-10-23 09:08:20 -04:00
tmerritt
882f95bc73
more roms
2024-10-23 09:08:07 -04:00
tmerritt
eccc3fe9e3
evolve egui interface
...
move more control back up to the ComputerManager
2024-10-22 08:25:08 -04:00
tmerritt
665309c2e4
disassembler disassembles
2024-10-21 13:18:46 -04:00
tmerritt
e927f6785f
more work
2024-10-20 06:12:12 -04:00
tmerritt
f6751557c6
rename instructions while working on assembler/disassembler
2024-10-19 11:55:29 -04:00
tmerritt
dea4b1aa92
Gemma:
...
- Adding SCHIP instructions
SDL2:
- Sorting out Joystick/Gamepad/Whatever
Util:
- Disassembler in progress
2024-10-19 08:24:43 -04:00
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