Commit Graph

  • 8d2399e431 mem.rs: Add Display for HiresCharset mem-refactor John Breaux 2023-08-31 22:43:01 -0500
  • 39fe4411d6 cpu.rs: Properly pause during multistep John Breaux 2023-08-31 22:41:24 -0500
  • 7ab0a596c9 cpu.rs, tests.rs: fix clippy lints (thanks clippy) John Breaux 2023-08-31 22:40:30 -0500
  • 8de4f42ff6 docs: Fix examples (now passes all doc tests again) John Breaux 2023-08-31 22:39:14 -0500
  • 31c904f89c chirp-disasm: Implement a graph parser for better output John Breaux 2023-08-31 22:34:55 -0500
  • f886aadc63 chirp: Break frontends into separate projects John Breaux 2023-08-31 18:16:38 -0500
  • bcd5499833 justfile: chirp is no longer the default John Breaux 2023-04-30 00:56:55 -0500
  • 5ae98346a0 chirp-imgui: Make sure ROM file exists. John Breaux 2023-04-30 00:55:56 -0500
  • e4f8001a16 CPU: Add hires font John Breaux 2023-04-30 00:54:58 -0500
  • 37b8b96683 instruction.rs: Clarify the purpose of Insn John Breaux 2023-04-29 23:34:28 -0500
  • 861020a8ab chirp-imgui: Argument parsing + colors in Settings John Breaux 2023-04-29 23:34:06 -0500
  • dcbdd1383d lib.rs: Remove Chip8 unused Chip8 struct (was moved) John Breaux 2023-04-29 23:33:11 -0500
  • 96b6038bbe Chirp: Bus Schism: Split into Mem (internal) and Screen (external) John Breaux 2023-04-29 23:32:14 -0500
  • f4d7e514bc auto_cast: Move out of bus module John Breaux 2023-04-29 19:52:38 -0500
  • beab7c968b Fix copy paste errors and read-out-of-bounds check John Breaux 2023-04-29 18:44:00 -0500
  • 33b6d0218e cpu/tests: Test invalid instructions more exhaustively John Breaux 2023-04-29 18:43:08 -0500
  • c7226bf9cc cpu.rs: Fix up ROM loading in new(), and doctests John Breaux 2023-04-29 18:42:19 -0500
  • 4ec9e2cb71 cpu/behavior: Tag each Insn implementation John Breaux 2023-04-29 18:39:44 -0500
  • 8b4d5be49d tests: Update tests for memory being CPU-internal John Breaux 2023-04-29 18:38:38 -0500
  • cb69af048f cpu: Change ST and DT back to u8 John Breaux 2023-04-29 18:37:29 -0500
  • 57c2ac681c cpu: fix renaming mistake "screen" -> "mem" John Breaux 2023-04-29 18:34:24 -0500
  • ea357be477 Monotonic: This flag is being deprecated soon, switch it for bool John Breaux 2023-04-29 18:20:49 -0500
  • a16d7fe732 chirp-imgui: Refactor menu definitions John Breaux 2023-04-29 18:15:19 -0500
  • 7d5718f384 cpu.rs: Separate lastkey from flags John Breaux 2023-04-29 12:08:26 -0500
  • 05fee3fb75 Begin work on graph-traversal disassembler? John Breaux 2023-04-23 12:16:50 -0500
  • 16a5e6a2a4 cpu.rs: Actually derive (De)Serialize if feature=serde John Breaux 2023-04-23 12:16:31 -0500
  • 5b5c5b41ab chirp: Update chirp for changes in cpu.rs John Breaux 2023-04-23 12:15:36 -0500
  • 04736f1153 mode.rs: Implement more traits for use in frontend John Breaux 2023-04-23 12:14:46 -0500
  • 59ba8ac20b bus/read.rs: Improve template code somewhat John Breaux 2023-04-23 12:14:04 -0500
  • e9f8d917a4 chirp-imgui: First prototype, using pixels demo as base John Breaux 2023-04-23 12:13:22 -0500
  • c1219e60f0 cpu.rs: Refactor for modularity - Break into submodules - Move bus into submodule of CPU - Keep program and charset rom inside CPU - Take only the screen on the external Bus - Refactor the disassembler into an instruction definition and the actual "Dis" item John Breaux 2023-04-23 12:10:02 -0500
  • 33da1089a2 AnyRange: Add AnyRange for taking any range in error John Breaux 2023-04-23 12:01:47 -0500
  • 92dc899510 Update copyright notices John Breaux 2023-04-23 11:58:57 -0500
  • 3839e90b15 chip8Archive: Update Submodule (adds wdl and octojam9!) John Breaux 2023-04-18 22:44:47 -0500
  • 1c1d4dafaf cpu.rs: Adjust doctests for new stack behavior John Breaux 2023-04-17 06:39:05 -0500
  • 0113dd95f6 ui.rs: Refactor debug screen dump: dumps to pwd with good name John Breaux 2023-04-17 06:35:16 -0500
  • 45adf0a2b8 cpu.rs: Remove stack from main memory John Breaux 2023-04-17 06:34:48 -0500
  • e842755d77 quirks: Fix description for screen_wrap John Breaux 2023-04-17 05:39:18 -0500
  • 88693f6c72 screens: Fix last-byte-bug in regression test cases John Breaux 2023-04-17 05:27:23 -0500
  • 381b2a69bd tests: load_region asserts that all data must be copied John Breaux 2023-04-17 05:26:49 -0500
  • 1573e00928 instruction.rs: Add edge wrapping for draw_lores_sprite, and fix the Last Byte Bug John Breaux 2023-04-17 05:15:12 -0500
  • 401b247c05 cpu: Remove reference to nonexistent "init" module John Breaux 2023-04-17 05:13:41 -0500
  • 95d4751cdd bus: Major refactor: auto-impl implicit casting for all numerics John Breaux 2023-04-17 05:12:37 -0500
  • 7d25a9f5f1 quirks.rs: Prepare screen_wrap quirk for future xochip compat John Breaux 2023-04-17 05:09:16 -0500
  • bafb576705 chip8-test-suite: Update to 4.0 John Breaux 2023-04-17 05:04:23 -0500
  • d54fb7eb2c Merge pull request 'v0.1.1 Partial Super Chip Support' (#11) from schip into main main John 2023-04-15 04:00:40 +0000
  • 43fa623da3 Improve workflow and docs somewhat, make minifb optional #11 John Breaux 2023-04-14 22:20:30 -0500
  • 674af62465 cpu.rs: Break into submodules John Breaux 2023-04-14 21:25:41 -0500
  • ae32d77757 readme.md: Update readme to indicate partial schip support John Breaux 2023-04-14 21:00:27 -0500
  • 973811ee8d csv: print multiple shots at a time John Breaux 2023-04-14 21:00:08 -0500
  • 4f6f91b69b bus.rs: Debug print screen with drawille, if enabled John Breaux 2023-04-14 20:58:28 -0500
  • d12f3fe710 cpu.rs: Fiddle with the alignment, to help me feel whole. John Breaux 2023-04-14 16:50:32 -0500
  • 78a5a9790a Misc: clean up in preparation for merge John Breaux 2023-04-14 16:33:54 -0500
  • 946a6031fb tests: Update test to match new expected behavior John Breaux 2023-04-03 05:47:42 -0500
  • 9bdc418a00 ui.rs: Implement dynamic resolution changing, revert colors for now John Breaux 2023-04-03 05:47:13 -0500
  • 8bb34f2593 schip: Improve architecture & compatibility somewhat John Breaux 2023-04-03 05:46:33 -0500
  • 9fcae555ce chirp-minifb: Add quirk toggles back in John Breaux 2023-04-03 05:45:22 -0500
  • acc7629516 schip: Add preliminary SuperChip support (no test) John Breaux 2023-04-03 02:01:25 -0500
  • 081dda9c8a Generate flamegraphs John Breaux 2023-04-02 15:29:34 -0500
  • 93bbf67433 cpu.rs: Double max IPF in dynamic timing by only getting the time once John Breaux 2023-04-02 14:48:34 -0500
  • 03a6934a59 tests.rs: BC_test tests flawed behavior. John Breaux 2023-04-02 14:47:33 -0500
  • 40cc81181b chip8_test_suite.rs: Load program only once John Breaux 2023-04-02 14:46:39 -0500
  • 83cc35c968 Move submodules to project root John Breaux 2023-04-02 14:45:32 -0500
  • 89f66c3d5b Add chip8Archive as a submodule, for testing John Breaux 2023-04-02 14:21:43 -0500
  • f27537b3b8 tests: Update tests to match current behavior. John Breaux 2023-04-01 02:31:51 -0500
  • a4c548d0ec lib.rs: Remove crate::prelude, re-export in lib.rs John Breaux 2023-04-01 02:31:06 -0500
  • bb8015f33c Quirks: Make the Cosmac VIP behavior default. John Breaux 2023-04-01 00:15:40 -0500
  • 7173b9e39b Break io into chirp-minifb, and refactor to use Results in more places John Breaux 2023-04-01 00:14:15 -0500
  • 3cc3aa534c Remove Cargo.lock and add to .gitignore John Breaux 2023-03-31 19:10:24 -0500
  • a744fa08c7 Merge branch 'imperative-rs' Rewrote the disassembler and cpu::tick() for code concision and massive speed improvements. John Breaux 2023-03-31 14:33:40 -0500
  • a676280ec8 clippy: Fix all clippy lints #1 John Breaux 2023-03-31 14:32:01 -0500
  • 627511282a chirp-minifb: Propagate errors up to main John Breaux 2023-03-30 10:46:35 -0500
  • c1f457814d disassembler: 100% line coverage John Breaux 2023-03-30 08:53:10 -0500
  • cc3bc3a7fe Major Refactor: Make invalid states unrepresentable™️ - Rewrote the instruction decoder as an enum - Used imperative_rs to auto-generate the bit twiddling logic - Implemented Display on that enum, for disassembly - Rewrote CPU::tick - Now >10x faster - Disassembly mode is still 5x slower though - Implemented time-based benchmarking - (use option -S to set the number of instructions per epoch) John Breaux 2023-03-30 08:27:06 -0500
  • 8ab9799913 cpu.rs: Fix some documentation errors John Breaux 2023-03-30 02:13:59 -0500
  • f60a4b3cc2 Refactor disassembler to use imperative-rs It's like MAGIC. Easily cut out 200 LOC John Breaux 2023-03-30 02:12:03 -0500
  • e54f66f6c4 disassemble.rs: Update function names to match cpu.rs John Breaux 2023-03-29 23:46:57 -0500
  • 6453a9f267 justfile: Update justfile to run tests by default John Breaux 2023-03-29 23:46:20 -0500
  • b9c35c0e68 lib.rs: Deny (missing docs) John Breaux 2023-03-29 23:45:39 -0500
  • c194a3c53a Error: Remove FunkyMathError and Stringly Typed context John Breaux 2023-03-29 23:42:41 -0500
  • 9195d439e3 Prepare for migration to iced John Breaux 2023-03-29 23:37:12 -0500
  • b7c3e3113d Fix the last few instances of "chumpulator" John Breaux 2023-03-29 12:29:07 -0500
  • ce0dc954d0 tests: Improve cpu.rs line coverage to >99% John Breaux 2023-03-28 12:31:56 -0500
  • 83c178413d tests: Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience. John Breaux 2023-03-28 08:57:24 -0500
  • f2f47e13d4 bus: Change named ranges from hashmap to array Improves performance by 0.4 seconds in unit tests John Breaux 2023-03-28 07:35:18 -0500
  • fbc0a0b2ea tests: Coverage and cleanup/speedup - Improved test coverage to >80% of lines, functions - When doctests are included. - Wrote new unit tests: - Explicit tests for invalid instructions in the ranges {5xyn, 8xyn, 9xyn, Fxbb} - rand Tests for 1052671 cycles, to ensure randomly generated number is < ANDed byte - Ex9E (sek), ExA1(snek) will press only the expected key, then every key except the expected key, for every address - Fx0A (waitk) asserts based on the waveform of a keypress. After all, an A press is an A press. - Improved test performance by printing slightly less - Removed nightly requirement - (now optional, with feature = "unstable") - Amended justfile to test with cargo nextest (nice) - Changed release builds to optlevel 3 John Breaux 2023-03-28 07:33:17 -0500
  • 66bed02a5e Add justfile for common commands, instead of aliases John Breaux 2023-03-28 04:38:16 -0500
  • 84361597cc tests: Clean up integration tests John Breaux 2023-03-27 21:31:54 -0500
  • 59a0b2fada bus.rs/cpu.rs: Improve doctest coverage John Breaux 2023-03-27 21:01:57 -0500
  • d5cfdc6802 tests: Move chip8-test-suite to integration tests. John Breaux 2023-03-27 21:01:33 -0500
  • b8720142c7 disassemble.rs: Make asm format more consistent. John Breaux 2023-03-27 18:31:18 -0500
  • 0e91b103ed LICENSE: Add MIT Licence John Breaux 2023-03-27 18:30:31 -0500
  • f90f1c49cc readme.md: Update readme.md with useful information John Breaux 2023-03-27 17:54:48 -0500
  • b74709ad1a Cargo.lock: Remove optional dependencies John Breaux 2023-03-27 17:28:29 -0500
  • 784845b6f5 cpu.rs: Make quirks individually configurable John Breaux 2023-03-27 17:27:55 -0500
  • 85956504d7 UI: Refactor library module to promote code reuse John Breaux 2023-03-27 17:27:05 -0500
  • dbc96648f1 bus.rs: Make hex-dumping optional to cut deps John Breaux 2023-03-27 17:23:41 -0500
  • a40ee94499 cpu/tests: Add chip8-test-suite, organize tests John Breaux 2023-03-27 17:21:23 -0500
  • 4b5de191d8 cpu/tests.rs: Use instruction function directly in non-parser tests John Breaux 2023-03-26 19:04:36 -0500
  • f9f6510c75 main.rs: Periods in helptext John Breaux 2023-03-26 19:03:25 -0500