Commit Graph

359 Commits

Author SHA1 Message Date
Lior Halphon 4f78e4b109 Guide users to use the 'help' command in the debugger, fix apu command line breaks 2022-09-09 15:59:03 +03:00
Lior Halphon c368c77d28 Use names for LCDC bits 2022-08-28 20:31:50 +03:00
Lior Halphon 9fcac76a03 New memory management APIs 2022-08-20 21:45:14 +03:00
Lior Halphon 52ab200544 Accurately emulate CGB first frame behavior. Fixes #432, fixes #482 2022-08-09 00:54:31 +03:00
Lior Halphon 44618f75c4 Optimize the memory viewer, GB_INTERNAL no longer required 2022-07-31 00:32:40 +03:00
Lior Halphon 6f9da353bd Add GBP model to the core (disables bouncing) 2022-07-24 14:22:49 +03:00
Lior Halphon 4b03cc05c1 Optimization to joypad code 2022-07-24 13:16:19 +03:00
Lior Halphon a524cc3105 Emulate key bouncing 2022-07-23 23:49:11 +03:00
Lior Halphon 33ba353c3a Emulate the JOYP mode switching delay on the DMG 2022-07-23 19:29:23 +03:00
Lior Halphon dd24801507
Merge pull request #476 from CasualPokePlayer/camera_improvements
Various GB Camera improvements
2022-07-23 13:24:50 +03:00
Lior Halphon 93c611e9bc
Values must be added to the end of a GB_SECTION for save state compatibility 2022-07-23 13:12:48 +03:00
CasualPokePlayer bb8f973fb4 Implement GB Camera timing (when no webcam is connected), misc camera accuracy improvements, use GB_random instead of rand for noise_seed 2022-07-22 20:15:00 -07:00
Lior Halphon 96d127e160 Remove the SLD command, reorder debugger commands 2022-07-01 16:14:52 +03:00
Lior Halphon aaf9a76b67 The vblank callback now reports the vblank type 2022-06-25 01:59:51 +03:00
Lior Halphon 22f8ab6509 Last fix was wrong, this is correct 2022-06-17 18:17:29 +03:00
Lior Halphon 4d90504688 HuC-1 mode is not a thing, fixes Robopon Japanese prototype 2022-06-11 20:57:02 +03:00
Lior Halphon d41c188cfd More accurate Camera MBC emulation 2022-06-11 14:44:06 +03:00
Lior Halphon 4f91b19a94 Added MBC7 BESS support, documented BESS TPP1 2022-06-05 14:09:33 +03:00
Lior Halphon bb836662dd More accurate emulation of Hblank skip, emulation of Mode 2 skip 2022-05-14 01:14:41 +03:00
Lior Halphon 4521bb4767 Fixed and accurate emulation of object at x=0 timings 2022-05-11 02:15:56 +03:00
Lior Halphon 6337e3e43a Remove unused 2022-05-07 20:24:28 +03:00
Lior Halphon ac29b4391e Refactor FIFOs 2022-05-07 19:27:25 +03:00
Lior Halphon b2edcc9543 Improve serial accuracy 2022-04-17 23:41:05 +03:00
Lior Halphon 5e119548e9 GDMA during mode 3 writes to both banks, list AGB_E as a future model 2022-03-09 00:32:50 +02:00
Lior Halphon c78a003712 MMM01 support 2022-03-05 21:20:42 +02:00
Lior Halphon a621803e82 More compact memory usage for symbol maps, removes the 0x200 bank limit 2022-02-28 23:30:31 +02:00
Lior Halphon 4c6bc91ded Add missing register 2022-02-14 22:59:05 +02:00
Lior Halphon a4209b47d0 Be consistent with hex casing 2022-02-13 16:58:44 +02:00
Lior Halphon 97c758ba75 More accurate internal bus behavior 2022-02-06 13:02:15 +02:00
Lior Halphon 4e27558ac2 Mode 2 OAM open bus behavior 2022-02-05 18:50:33 +02:00
Lior Halphon 1a41957b3c LCDOff behavior, basic halt/stop behavior 2022-01-31 01:02:31 +02:00
Lior Halphon a7f7530eed Preparation for future AGB-0 and B support 2022-01-30 18:11:35 +02:00
Lior Halphon 3a2d028efa GDMA/PPU conflicts 2022-01-30 14:38:58 +02:00
Lior Halphon 26656de44f Improvements to GDMA 2022-01-28 23:56:26 +02:00
Lior Halphon ab75858c86 DMA/PPU VRAM conflicts on the CGB/AGB 2022-01-17 22:07:24 +02:00
Lior Halphon b45761146f VRAM DMA during mode 3 2022-01-16 13:50:59 +02:00
Lior Halphon eaeeb49612 Minor stylistic changes 2022-01-14 22:26:23 +02:00
orbea adfc329cdf gb.h: Silence -Wembedded-directive warning with -pedantic
gb.h:731:2: warning: embedding a directive within macro arguments has undefined behavior [-Wembedded-directive]
\#define GB_REWIND_FRAMES_PER_KEY 255
 ^
2022-01-14 11:40:55 -08:00
orbea 5cf71b406e gb.h: Silence -Wembedded-directive warnings with -pedantic
gb.h:400:2: warning: embedding a directive within macro arguments has undefined behavior [-Wembedded-directive]
\#ifdef GB_BIG_ENDIAN
 ^
gb.h:410:2: warning: embedding a directive within macro arguments has undefined behavior [-Wembedded-directive]
\#endif
 ^
2022-01-14 11:40:55 -08:00
Lior Halphon d92148b461 Merge branch 'master' of https://github.com/LIJI32/SameBoy 2022-01-14 17:09:49 +02:00
Lior Halphon 4ce8e77796 More accurate OAM access timings 2022-01-14 15:07:50 +02:00
orbea fefb81ab65 gb.h: Silence -pedantic warnings
Silences warnings such as the following when including gb.h as a dependency.

gb.h:385:6: warning: extra ';' inside a struct [-Wextra-semi]
    );
     ^
2022-01-13 20:12:58 -08:00
Lior Halphon ec012cf9f8 is_dma_restarting hack no longer needed 2022-01-12 14:12:55 +02:00
Lior Halphon c4a14ac4db Simplify DMA code, fix DMA read timing 2022-01-12 00:26:18 +02:00
Lior Halphon b7f03dea8d Add CGB-A support 2022-01-05 21:55:46 +02:00
Lior Halphon ab1d4cd26e More DMA write conflicts 2022-01-05 21:40:10 +02:00
Lior Halphon 5e7bb0f891 DMA write conflict revision differences 2022-01-04 19:59:46 +02:00
Lior Halphon bc073e3d09 Expose PC 2021-12-30 23:53:24 +02:00
Lior Halphon b72c2ea225 DMG palette getter 2021-12-29 13:08:46 +02:00
Lior Halphon 66f7babe86 Cache the clock rate 2021-12-26 15:50:24 +02:00
Lior Halphon 69de3f0fae Implement a PPU fast path, up to 34% performance boost 2021-12-26 01:47:59 +02:00
Lior Halphon f3277ab8d3 Sorry C++ users 2021-12-20 18:59:51 +02:00
Lior Halphon e9629407a5 Fix potential alignment issues 2021-12-19 00:54:29 +02:00
Lior Halphon cdc3321c36 Add an API to allow illegal inputs 2021-12-19 00:28:24 +02:00
Lior Halphon 5127cb0022 Direct access to registers (#422) 2021-12-18 14:51:14 +02:00
Lior Halphon c63ddbe771 Lag frame detection API (#422) 2021-12-18 01:25:06 +02:00
Lior Halphon c3d9141b7c Replace the term sprite with object for consistency 2021-12-17 21:16:23 +02:00
Lior Halphon c1ae129ed4 Allow hiding background/object "layers" (#422) 2021-12-17 21:12:26 +02:00
Lior Halphon 7e5e672988 RTC speed multiplier, for TAS syncing (#422) 2021-12-11 02:51:21 +02:00
Lior Halphon a30247cf16 LCD line callback (for #422) 2021-12-10 19:49:52 +02:00
Lior Halphon 7508ddb0cf Execute callback (for #422) 2021-12-10 19:42:47 +02:00
Lior Halphon 25e3414974 Redesigned vblank callback scheduling scheme, should be more regular and less prune to various sorts of frontend DOS 2021-12-04 15:04:46 +02:00
Lior Halphon 486f8a2c10
Merge pull request #420 from SnowyMouse/cgb_mode
Add GB_is_cgb_in_cgb_mode
2021-11-26 14:10:35 +02:00
Lior Halphon 06b744259b Add memory write callback, optimize memory access with likely/unlikely 2021-11-26 14:09:41 +02:00
Lior Halphon bdbe02b043 Add a safe memory read API 2021-11-26 13:54:28 +02:00
Snowy d0a9d2f72a Add GB_is_cgb_in_cgb_mode 2021-11-25 17:16:11 -06:00
Lior Halphon ae930472f0 Units info 2021-11-14 13:18:58 +02:00
Lior Halphon c6f39bc60b Initial MBC7 support 2021-11-12 17:44:51 +02:00
Lior Halphon 02f55d12d3 Maybe one day GCC will stop being shit at handling __attribute__s 2021-11-07 14:13:52 +02:00
Lior Halphon 18e7a3f4fa Cleanup, better symbol handling, improves LTO 2021-11-07 13:39:18 +02:00
Lior Halphon fbf1bb7f98 Save state compatibility breaking cleanup 2021-11-07 12:56:46 +02:00
Lior Halphon 5565c2540b Register name and info update 2021-11-06 13:34:34 +02:00
Lior Halphon 178860e715 Custom palette and editor 2021-11-05 19:07:27 +02:00
Lior Halphon f237b1e9b9 CGB-0 support 2021-11-04 00:35:44 +02:00
Lior Halphon 6cd13be624 Add CGB-B support 2021-10-30 20:58:57 +03:00
Lior Halphon 1f7b20251b Improved sanitation for save states for better security and stability 2021-10-30 16:03:13 +03:00
Lior Halphon e6c4ceaf5a Add CGB-D support 2021-10-27 01:40:28 +03:00
Lior Halphon 18007f0e53 MGB support 2021-10-23 23:28:54 +03:00
Lior Halphon 94776fcf8c Better (But imperfect) emulation of the wave RAM address bug glitch 2021-10-19 01:53:24 +03:00
Lior Halphon de16ab5d08 Why was this under APU 2021-10-17 20:05:49 +03:00
Lior Halphon c05c3c2abd Improved accuracy of mid-line SCX writes 2021-10-08 19:36:05 +03:00
Lior Halphon a5325d3374 Improved ticks command, more accurate speed switch timings, better odd-mode warnings 2021-07-11 21:49:58 +03:00
Lior Halphon 6f6f72dcbd More accurate emulation of STOP 2021-07-11 12:11:12 +03:00
Lior Halphon 3ed18a76da Added optional OSD (Cocoa) 2021-05-30 20:55:04 +03:00
Lior Halphon ea67a7e3f0
Merge pull request #379 from jprjr/gbs-buffer
gbs: function to load from memory buffer
2021-05-17 16:53:12 +03:00
Lior Halphon ac5b0aca2c RTC accuracy fix 2021-04-23 21:01:17 +03:00
John Regan 0e8d8effdf gbs: function to load from memory buffer 2021-04-20 08:38:53 -04:00
Lior Halphon 817c4a7752 Merge branch 'bess' into gbs 2021-04-16 16:35:21 +03:00
Lior Halphon 87a2d48675 Redo TPP1 saving, fix RTC and HUC3 in BESS 2021-04-16 00:35:54 +03:00
Lior Halphon ba6e22dfc0 Merge branch 'bess' into gbs 2021-04-14 16:44:51 +03:00
Lior Halphon 976f5e4d02 Merge branch 'master' into bess 2021-04-13 20:50:29 +03:00
Lior Halphon 5b993ed775 Add HuC3 to BESS 2021-04-12 23:36:42 +03:00
Lior Halphon f24489b983 TPP1 support 2021-04-10 23:56:41 +03:00
Lior Halphon 9996c7b4a2 Add GBS APIs 2021-04-03 01:29:06 +03:00
Lior Halphon 8adaba237e SGB support in BESS, BE fixes, changes to SGB save state format on BE machines 2021-03-29 02:47:57 +03:00
Lior Halphon a13469c4e2 Fix PAL SGB in the Cocoa port 2021-02-25 22:42:02 +02:00
Lior Halphon e08df2a089 Add accurate RTC emulation mode 2021-02-25 22:12:14 +02:00
Lior Halphon 71c88323b7 Rename UNROLL to unrolled (`unrolled for`) 2021-02-22 14:45:30 +02:00
Lior Halphon aa421258b8 Update the model enum so comparisons work correctly for SGB PAL and no-SFC SGBs 2021-01-16 14:51:06 +02:00
Lior Halphon 159d9d0348 Color temperature control 2020-12-25 14:17:57 +02:00