Commit Graph

  • 7b6bb9b1f9 Merge pull request #49 from WizzardSK/ci-aarch64-release release Dorcey 2026-08-31 15:56:16 -07:00
  • 5951357bb1 ci: add a Linux aarch64 build WizzardSK 2026-07-25 22:59:01 +02:00
  • 32b007b639 Merge pull request #48 from WizzardSK/ci-linux-aarch64 develop Dorcey 2026-07-25 14:31:41 -07:00
  • dab953752e ci: add a Linux aarch64 build WizzardSK 2026-07-25 22:59:01 +02:00
  • b38c2c03e2 Add our suite to existing test framework AlexSutila 2026-06-03 21:18:42 -07:00
  • a8a0f06b9a Emulate stop behavior on timers, we pass our self written test case for it AlexSutila 2026-06-03 20:44:59 -07:00
  • 976d7201d4 Provide clear hints that the custom prio_queue should be de-virtualized AlexSutila 2026-05-30 12:28:17 -07:00
  • cb9dc1e249 Simplify child scheduler event index to reduce event construction overhead AlexSutila 2026-05-30 11:58:51 -07:00
  • ee1fb71e90 ChildScheduler refactor, remove GameBoyColor::step_peripherals() AlexSutila 2026-05-29 21:48:56 -07:00
  • 4a7939565a Test rom for DIV behavior with STOP AlexSutila 2026-05-29 16:04:27 -07:00
  • a24f06f092 Merge pull request 'synchronization-bug-fixes' (#66) from synchronization-bug-fixes into develop AlexDorce 2026-05-24 23:36:21 +00:00
  • 124280c839 Formatting (again bc I am dumb) AlexSutila 2026-05-24 16:34:51 -07:00
  • 7cee869988 Formatting AlexSutila 2026-05-24 16:29:17 -07:00
  • 4a48c021b3 Savestate support for PPU/APU child schedulers AlexSutila 2026-05-24 16:07:11 -07:00
  • 7446662e12 Remove un-needed flag in step_peripherals AlexSutila 2026-05-24 15:54:49 -07:00
  • 34360a1ed5 Port APU to scheduler, only scheduling individual clock cycles as of now AlexSutila 2026-05-24 15:40:37 -07:00
  • 98a38c0c2e Fix event order prioritization, need to use min_heap, not max_heap AlexSutila 2026-05-24 14:31:00 -07:00
  • f1525eee7b Correct various scheduler savestate issues AlexSutila 2026-05-24 13:30:28 -07:00
  • 053ef522f4 Port PPU over to scheduler (still needs a big refactor, just scheduling each cycle for now) AlexSutila 2026-05-21 17:40:14 -07:00
  • dc2fc36f06 More re-labelling fields and restructuring to prevent tree corruption AlexSutila 2026-05-20 18:53:22 -07:00
  • 875cb90857 Fix overlapping keys causing components to be missing from savestate tree AlexSutila 2026-05-20 17:42:44 -07:00
  • e177acf150 Check to make sure Im not being dumb and overwriting existing keys (I am) AlexSutila 2026-05-18 22:01:48 -07:00
  • 8d0378df3f Align clkrate for both big_step and step, one cycle now considers fast cycle of 2x mode AlexSutila 2026-05-18 18:19:21 -07:00
  • 47f337c4b5 Use third emulator instance to generate initial conditions AlexSutila 2026-05-17 16:08:33 -07:00
  • d2eaaf7cca LLM-written utility script to evaluate cycle stepper with optimized stepper AlexSutila 2026-05-17 15:39:05 -07:00
  • 4ce4f7b21a Expose savestate tree to python API as a dictionary AlexSutila 2026-05-17 15:37:59 -07:00
  • 7071565a28 Fix: win and vita toolchains cant deduce size of structures for savestate tree AlexSutila 2026-05-17 14:24:49 -07:00
  • 7254e8aa27 Refactor tree to be tightly coupled with writer, expose types directly tru header AlexSutila 2026-05-17 00:49:51 -07:00
  • 84285f1fd5 Bug fix, and keep alive mechanism for tree structure AlexSutila 2026-05-16 23:54:08 -07:00
  • e3d5d220c7 Optional tree-like construction of emulator savestate leveraging serialization code AlexSutila 2026-05-16 22:55:36 -07:00
  • 9f8a456459 Expose savestates tru pybind for upcoming experiments AlexSutila 2026-05-10 15:33:40 -07:00
  • ed659ef6c9 Serialize new unscheduling reverse mapping structure in child schedulers AlexSutila 2026-05-09 07:43:27 -07:00
  • 6970cb092d Merge 'develop' into release AlexSutila 2026-05-08 22:37:46 -07:00
  • d543e9507e Merge pull request 'Scheduler-optimizations' (#65) from Scheduler-optimizations into develop AlexDorce 2026-05-09 05:34:46 +00:00
  • 6169bfb93c Merge 'develop' into release AlexSutila 2026-05-08 22:29:59 -07:00
  • b5ff210cf5 Use traditional cycle stepped backend until scheduler is stable AlexSutila 2026-05-08 22:29:20 -07:00
  • 67e0154c93 Further optimize global system scheduler queue, unscheduling is more costly but thats fine AlexSutila 2026-05-08 21:41:38 -07:00
  • bdedad6899 Reduce heap allocations for scheduler e_index mapping AlexSutila 2026-05-08 20:31:04 -07:00
  • b3783b7424 Additional runtime context in scheduler logs AlexSutila 2026-05-08 17:02:31 -07:00
  • f7b068522b Expose scheduler debug logging, need to fix broken iOS behavior AlexSutila 2026-05-08 15:57:20 -07:00
  • 8bec20de22 Fix multiple scheduler bugs AlexSutila 2026-05-06 20:43:36 -07:00
  • aad7ddeb97 Refactor MBC detection heuristic, coverage uneffected AlexSutila 2026-05-05 13:28:29 -07:00
  • b72d9efed8 Document heuristic test cases and usage AlexDorce 2026-05-05 04:39:16 +00:00
  • b44fb8421d Additional manual stuff for testing wisdom tree / sachen / mani 4 in 1 heuristics AlexSutila 2026-05-04 21:26:48 -07:00
  • 62d14a0906 MBC detection heuristic evaluation test cases AlexSutila 2026-05-04 20:41:17 -07:00
  • 75c3e51f0f Fix egregious UI bug in SDL3 frontend lol AlexSutila 2026-05-04 14:17:36 -07:00
  • b815eedce4 Update readme, mention Sachen compatability AlexDorce 2026-05-04 03:56:37 +00:00
  • 5cf0b4edd5 Introduce Sachen memory bank controller AlexSutila 2026-05-03 20:55:34 -07:00
  • 974d6aaa17 Emulate niche quirks with undocumented registers, fix inaccuracies in some existing MMIO AlexSutila 2026-05-03 13:44:52 -07:00
  • 16293e5390 Pass random RAM values in boot up state AlexSutila 2026-05-03 13:27:19 -07:00
  • e4d79bc188 Fix broken MBC3 test script (emucore is fine) AlexSutila 2026-05-03 13:11:12 -07:00
  • 195809903d Include configurable breakpoints for both queueing and popping events AlexSutila 2026-05-03 13:09:27 -07:00
  • cc800325fb Jank script based on event breakpoint callbacks to visually inspect scheduler timings AlexSutila 2026-05-02 22:09:46 -07:00
  • ad95a4e19b Add event context to BreakContext for scheduler based breakpoint callbacks AlexSutila 2026-05-02 21:32:05 -07:00
  • ae236a3ab2 Allow for debug hooks into event queueing system AlexSutila 2026-05-02 21:16:35 -07:00
  • 99b492bd52 Improve debugger context passed to breakpoint callbacks (going to need for scheduler debugging) AlexSutila 2026-05-02 19:05:43 -07:00
  • 3a5ec0a41c Pybind QOL: pass GameBoyColor object into breakpoint callback AlexSutila 2026-05-02 13:20:24 -07:00
  • c29775a3e5 fix runtime info init bc vita-sdk was complaining about it AlexSutila 2026-05-01 15:24:22 -07:00
  • 68258429be Merge pull request 'Move towards scheduler architecture + DMA refactor' (#64) from Scheduler-architecture into develop AlexDorce 2026-05-01 21:41:39 +00:00
  • d2d583cc10 Refactor save states for OAMDMA/VDMA AlexSutila 2026-05-01 14:29:45 -07:00
  • 98a2796960 Improve FF55 active bit, fixes DK and PK crystal (VDMA seems stable now) AlexSutila 2026-05-01 14:08:46 -07:00
  • da24132b2a Fix stupid awful VDMA byte transfer bug, and SDL3 debugger AlexSutila 2026-04-30 23:18:28 -07:00
  • e3071b8491 Emulate internal increment of VDMA address registers, fixes stupid mermaid pinball AlexSutila 2026-04-29 22:59:08 -07:00
  • f6d26344b1 VDMA seems much more stable now (stupid mermaid pinball is still borked) AlexSutila 2026-04-29 19:13:03 -07:00
  • be8e7b3765 HDMA+GDMA kinda works again, but still very buggy AlexSutila 2026-04-29 15:32:59 -07:00
  • 404c861482 CPU pauses during DMA, we zip through the idle cycles, PK yellow looks good AlexSutila 2026-04-27 21:17:13 -07:00
  • 4bb3b30d3c Very rudimentary GDMA (CPU execution doesnt stop so things get corrupted) AlexSutila 2026-04-27 19:26:08 -07:00
  • ed7ee29c34 Preparing for big VDMA rewrite AlexSutila 2026-04-27 17:14:20 -07:00
  • a56424003a Double speed DMA is functional (I think), but the step methods are a disaster AlexSutila 2026-04-26 20:40:04 -07:00
  • 22ffe1aba9 Scheduler serialization routines, savestates seem stable AlexSutila 2026-04-26 19:08:17 -07:00
  • 1aae5fda4b Shorten size of sys w bitpacking, remove dma->step(), fix dma state debug struct AlexSutila 2026-04-26 16:15:04 -07:00
  • 6e8dd0c91a step and big_step now work with scheduler (double speed is prob broken) AlexSutila 2026-04-26 15:37:32 -07:00
  • 99f8f68dc3 Rewrite OAM DMA with scheduler for (test coverage is unchanged for big_step) AlexSutila 2026-04-26 13:35:49 -07:00
  • a5fe4380d7 Minor tweaks on MMM01 detection (just gunna live with it lol) AlexSutila 2026-04-24 13:37:08 -07:00
  • 639f6a2a44 Rework MMM01 detection logic (could use a clean up) AlexSutila 2026-04-24 00:39:09 -07:00
  • fb509e9fdc Pass mbctester MBC3 banking tests (trying to fix stupid 4-in-1 game) AlexSutila 2026-04-23 23:54:21 -07:00
  • 9b13009119 Bug fix: Continue pushing blank frames when ppu disabled to prevent emulator thread from hanging AlexSutila 2026-04-23 19:11:47 -07:00
  • 69b58ae8d4 Speed up visual test cases AlexSutila 2026-04-23 18:17:33 -07:00
  • adce58f24e Merge pull request 'Big-step-cpu-optimization' (#63) from Big-step-cpu-optimization into develop AlexDorce 2026-04-23 23:25:12 +00:00
  • b6e883a42e big_step seems stable with interleaved VDMA and double speed AlexSutila 2026-04-23 13:37:55 -07:00
  • 5b4e15622e Fix insane synchronization bug AlexSutila 2026-04-22 19:58:21 -07:00
  • 6e70575f1c Big step driver kinda works for DMG mode?? AlexSutila 2026-04-22 19:42:33 -07:00
  • 53ac4996e4 Modify tests to test big_step and regular step AlexSutila 2026-04-22 17:55:05 -07:00
  • 60902cbc67 Refactor mooneye test stuff to accept driver as configurable AlexSutila 2026-04-22 17:37:45 -07:00
  • 4cc8dc2ef8 Create big_step(), expose from python API AlexSutila 2026-04-22 17:24:00 -07:00
  • 753f40763e Remove dumb old naming and redundant return values from Instruction::exec() AlexSutila 2026-04-22 16:03:19 -07:00
  • f4d731fb1e Merge pull request 'CPU-tinkering' (#62) from CPU-tinkering into develop AlexDorce 2026-04-22 01:09:59 +00:00
  • 58e73fe827 Code clean up AlexSutila 2026-04-21 17:59:15 -07:00
  • 708c337bf1 Remove even more code bloat (branch templating) AlexSutila 2026-04-21 17:37:52 -07:00
  • 8288e00a43 Reduce code bloat (bitops was the worst offender by far) AlexSutila 2026-04-21 16:54:59 -07:00
  • 0ffd4ab728 Reduce code bloat (ALU instruction templating) AlexSutila 2026-04-21 16:16:36 -07:00
  • 261795086e Reduce code bloat (move instruction templating) AlexSutila 2026-04-21 16:06:15 -07:00
  • 2d25c9f82d Return instruction timing information from parse() since thats when we evaluate conditional expressions AlexSutila 2026-04-19 21:19:39 -07:00
  • e742ad8fed Make do_exec() slightly less terrible, getting ready for big refactors AlexSutila 2026-04-19 20:25:28 -07:00
  • af8f4158d3 New timing info metadata for instructions AlexSutila 2026-04-19 19:16:24 -07:00
  • cd3efffd44 Remove un-needed instruction state, idk what I was thinking here AlexSutila 2026-04-18 22:16:27 -07:00
  • 8f103dd837 Simplify CPU code, preparing for heavy optimizations AlexSutila 2026-04-18 18:16:08 -07:00
  • 0c1db6d228 Expose our internal logger queue messaging to libretro AlexSutila 2026-04-18 17:46:58 -07:00
  • b4134b73b0 Merge branch 'develop' into release AlexSutila 2026-04-17 12:32:13 -07:00
  • d5d685e2a5 100% completion on magen tests AlexSutila 2026-04-16 21:29:17 -07:00