Commit Graph

974 Commits

Author SHA1 Message Date
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
9e57201b08 Accurate IF clear timing 2021-12-05 16:18:54 +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
4b3c77bfa5 oops 2021-12-02 11:54:26 +02:00
Lior Halphon
8660e20eeb New inputs API 2021-12-02 11:23:44 +02:00
Lior Halphon
b770bbea2e Fix save state issue that caused vblank callbacks timings to differ 2021-12-02 11:21:12 +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
Lior Halphon
33090a5cc0 Fix an oops from the last commit 2021-11-26 13:38:52 +02:00
Snowy
d0a9d2f72a Add GB_is_cgb_in_cgb_mode 2021-11-25 17:16:11 -06:00
Lior Halphon
f1e5e04198 ...even when timekeeping is disabled 2021-11-25 21:46:51 +02:00
Lior Halphon
d0d39015ee Let update_input_hint_callback get called during turbo 2021-11-25 21:17:49 +02:00
Lior Halphon
f08f16346e Fix #293 2021-11-24 23:13:52 +02: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
1650820edb Clean up endian-related code 2021-11-07 13:57:43 +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
72b6d6c532 Merge branch 'master' of https://github.com/LIJI32/SameBoy 2021-10-30 18:31:47 +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
93ef8d7db8
Merge pull request #411 from SnowyMouse/sprite_h
Fix partially offscreen sprites not being returned in GB_get_oam_info
2021-10-27 01:44:26 +03:00
Lior Halphon
e6c4ceaf5a Add CGB-D support 2021-10-27 01:40:28 +03:00
Snowy
2ec573c84a Change y to a signed value 2021-10-24 11:15:28 -05:00
Lior Halphon
5b9746084d Writes to SVBK should work before the boot ROM is disabled 2021-10-23 23:51:48 +03:00
Lior Halphon
18007f0e53 MGB support 2021-10-23 23:28:54 +03:00
Lior Halphon
e04dcd90d6 Fix APU command 2021-10-19 01:56:10 +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
886363b398 Now this glitch makes more sense 2021-10-17 12:52:08 +03:00
Lior Halphon
7ef198ec50 More accurate channel 3 restarts 2021-10-17 02:06:33 +03:00
Lior Halphon
40fc477b56 Fix an oopsie 2021-10-10 20:05:57 +03:00
Lior Halphon
4ce643d5eb Fix timer bug; fixes #409 2021-10-10 16:53:07 +03:00
Lior Halphon
01f80a3f3e Adjust border fade delay to match SGB2 2021-10-10 14:24:14 +03:00
Lior Halphon
8f9365251d Timing adjustments 2021-10-10 13:30:30 +03:00
Lior Halphon
b580e63c37 Fix 7-part SGB commands 2021-10-10 02:55:12 +03:00
Lior Halphon
46e1b79b63 Madden 96 needs even more time 2021-10-09 23:07:15 +03:00
Lior Halphon
893d7d162a Don't try to render tiles 100-3FF 2021-10-09 22:34:43 +03:00
Lior Halphon
85da5b64d3 Some games like racing the SGB 2021-10-09 22:02:40 +03:00
Lior Halphon
a7c8b702da Some games like to race with the SGB border fade 2021-10-09 21:08:17 +03:00
Lior Halphon
f1761340fc Fix ATTR_SET command 2021-10-09 18:45:08 +03:00
Lior Halphon
191f7cee02 Improved emulation of SGB multiplayer, fixes #405 2021-10-09 14:52:28 +03:00
Lior Halphon
164a870189 Cleanup uses of gb->registers 2021-10-09 14:09:51 +03:00
Lior Halphon
24af1c5a31 Newly discovered OAM corruption trigger 2021-10-09 14:05:29 +03:00
Lior Halphon
c05c3c2abd Improved accuracy of mid-line SCX writes 2021-10-08 19:36:05 +03:00
Lior Halphon
ef053ff113 APU regression fix 2021-10-07 18:25:54 +03:00
Lior Halphon
d1caeafe5e Better handling of tiny ROMs 2021-10-05 19:53:43 +03:00
Lior Halphon
345e51647f API issue – RTC data should not be wiped after GB_reset 2021-09-30 21:23:52 +03:00
Lior Halphon
8068ff41fb Fix potential future compatibility issue, update workflow environments 2021-09-29 21:57:39 +03:00
Lior Halphon
24a7467735
Merge pull request #406 from Talkashie/master
Fixed a typo in the debugger
2021-09-24 20:33:56 +03:00
Lior Halphon
84c5f8b92d Fix #402 2021-09-22 20:53:04 +03:00
Talkashie
2dc0e14d0a Update debugger.c
Fixed a typo
2021-09-13 21:20:19 -05:00
Lior Halphon
b27bd4eed7 Remove redundant condition 2021-09-04 18:15:22 +03:00
Lior Halphon
e5454a39b7 Block wave RAM writes on the AGB 2021-09-04 14:18:46 +03:00
Lior Halphon
0ca1ee6a35 Minor APU clean ups 2021-09-02 01:29:38 +03:00
Lior Halphon
eefaac3d04 NR32 was treated as the wrong value on APU reset 2021-08-31 23:28:05 +03:00
Lior Halphon
c459058156 That was silly 2021-07-30 14:10:04 +03:00
Lior Halphon
4d1a28f1d1 Improved OAM bug accuracy in several read edge cases 2021-07-25 16:34:34 +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
efb644bc72 MBC5 RAM enable is 8 bit 2021-07-10 15:02:15 +03:00
Lior Halphon
278224299f Fixed double->single speed switch causing misaligned CPU timing 2021-06-26 13:55:34 +03:00
Lior Halphon
94add1d172 Add "Harsh Reality" color correction mode 2021-06-25 19:57:56 +03:00
Lior Halphon
23e8cc58c5 Vblank should occur 1 T-cycle later 2021-06-19 02:14:16 +03:00
Lior Halphon
b4709fd66b Disabled an accuracy-improvement-attempt that caused audio regressions until the proper behavior is well understood, fixes #390 2021-06-18 01:36:29 +03:00
Lior Halphon
339613263c Fixed a bug that prevented STAT interrupt blocking from functioning correctly in the transition to VBlank while the OAM interrupt was disabled 2021-06-18 01:20:05 +03:00
Lior Halphon
3ed18a76da Added optional OSD (Cocoa) 2021-05-30 20:55:04 +03:00
Lior Halphon
2afeb7dee3 Place a cap on the GBS file size 2021-05-17 17:11:41 +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
9b2dfe7ae2
Style fixes 2021-05-17 16:52:55 +03:00
Lior Halphon
ea05a0c765 Don't save 0x6000 for MBC3 in BESS 2021-04-23 21:05:33 +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
a2d3b8c174 Support for non-standard GBS files with a loading address at 0 2021-04-19 20:58:27 +03:00
Lior Halphon
2971b17701 Add support for ugetab's GBS extensions, fixes #377 2021-04-19 00:32:10 +03:00
Lior Halphon
5f2e893828 Allow GBS files with loading addresses 0x6E-0x3FF, fixes #376 2021-04-19 00:08:21 +03:00
Lior Halphon
e8158be454 Merge branch 'bess' into gbs 2021-04-17 16:57:05 +03:00
Lior Halphon
9fcdc082d2 Fix an SDL crash, minor tweak to BESS SGB 2021-04-17 16:37:55 +03: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
f0a6488546 Added optional INFO block 2021-04-15 21:57:38 +03:00
Lior Halphon
98a39ae49a ATTR_CHR does not seem to wrap around screen (only lines/columns) 2021-04-14 23:39:07 +03:00
Lior Halphon
b325148544 Update and clarify specification 2021-04-14 23:37:00 +03:00
Lior Halphon
ba6e22dfc0 Merge branch 'bess' into gbs 2021-04-14 16:44:51 +03:00
Lior Halphon
8a84a5897e Allow drag&drop of state files 2021-04-14 15:20:01 +03:00
Lior Halphon
43fb86320e Hard fail on unexpected SGB blocks 2021-04-13 22:05:13 +03:00
Lior Halphon
0af4f1fa4d Clarify SGB multiplayer, handle count = 0 2021-04-13 21:33:13 +03:00
Lior Halphon
24915e41eb TPP1 in BESS 2021-04-13 20:56:09 +03:00
Lior Halphon
976f5e4d02 Merge branch 'master' into bess 2021-04-13 20:50:29 +03:00
Lior Halphon
fada772cb1 Don't use BESS for internal in-memory saves 2021-04-13 20:35:07 +03:00
Lior Halphon
dfdbff7304 Allow writes to the $a000-$bfff range in the MBC block 2021-04-13 16:01:44 +03:00
Lior Halphon
a3a73602fc ATF is only 0xFD2 bytes, not 0xFE0 2021-04-13 01:09:29 +03:00
Lior Halphon
5b993ed775 Add HuC3 to BESS 2021-04-12 23:36:42 +03:00
Lior Halphon
9a1f962281 Spec update 2021-04-12 22:39:13 +03:00
Lior Halphon
80f422d0ca Respect TPP1 feature flags for rumble and RTC 2021-04-11 23:16:31 +03:00
Lior Halphon
763de9d2e0 Fix Rumble support in TPP1 2021-04-11 22:52:34 +03:00
Lior Halphon
42471095e4 Normalize invalid weekdays only after a $11 command 2021-04-11 22:38:25 +03:00
Lior Halphon
0c5e15b49d Correct emulation of count overflow in ATTR_CHR, fixes #372 2021-04-11 02:38:58 +03:00
Lior Halphon
f24489b983 TPP1 support 2021-04-10 23:56:41 +03:00
Lior Halphon
44c75ae7be Remove commented out code 2021-04-10 18:43:24 +03:00
Lior Halphon
ad05eb6d0a GCC build fix 2021-04-10 16:15:40 +03:00
Lior Halphon
955ef59140 Merge branch 'bess' into gbs 2021-04-10 16:12:35 +03:00
Lior Halphon
f89c80caa5 Merge branch 'master' into bess 2021-04-10 16:12:03 +03:00
Lior Halphon
d0bbf383d6 Another cheat bugfix 2021-04-10 16:10:23 +03:00
Lior Halphon
77384a5f6a Merge branch 'bess' into gbs 2021-04-09 23:12:03 +03:00
Lior Halphon
1c31812ffd BESS format updates 2021-04-06 01:02:49 +03:00
Lior Halphon
7a558492b6 Merge branch 'master' into bess 2021-04-05 23:10:00 +03:00
Lior Halphon
e6fa2336da Fix a potential crash/corruption when modifying cheats 2021-04-05 23:09:32 +03:00
Lior Halphon
f67d3947d6 UI Updates 2021-04-05 23:08:43 +03:00
Lior Halphon
bb3a73ff88 Cocoa GBS Player 2021-04-03 01:29:43 +03:00
Lior Halphon
9996c7b4a2 Add GBS APIs 2021-04-03 01:29:06 +03:00
Lior Halphon
39c71b40e7 Fix memory leak 2021-04-02 19:07:28 +03:00
Lior Halphon
328e2d9e40 Merge branch 'master' into gbs 2021-04-02 19:06:15 +03:00
Lior Halphon
6b8eb8063a Fix a bug where SameBoy would start in "faux turbo mode" 2021-04-02 02:54:14 +03:00
Lior Halphon
e460b0a7b4 Change the border format to SNES-style 2021-03-31 00:54:55 +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
659f954028 RTC support 2021-03-25 00:07:37 +02:00
Lior Halphon
a52302f2f6 Make NAME come before CORE 2021-03-25 00:07:37 +02:00
Lior Halphon
75bc1e9a86 Initial BESS support, no SGB nor RTC yet 2021-03-25 00:07:37 +02:00
Lior Halphon
925bd863c0 Better errnos 2021-03-22 00:18:49 +02:00
Lior Halphon
da1003263f Redo save states to remove severe code duplication between buffers and files 2021-03-21 20:32:30 +02:00
Lior Halphon
ad54dc57b0 Improved time syncing when turning the LCD on and off, fixes #193 2021-03-21 15:15:04 +02:00
Lior Halphon
ea97c1dc0b Fix an APU regression that caused some games in DMG mode to play in the wrong pitch 2021-03-01 21:44:54 +02:00
Lior Halphon
57080c48bc No need for -1 2021-02-28 16:50:46 +02:00
Lior Halphon
ec7d756e3b
Merge pull request #351 from NieDzejkob/symbol-off-by-one
Fix off-by-one in symbol search
2021-02-28 15:27:50 +02:00
Lior Halphon
0fbd714d4a
Merge pull request #352 from NieDzejkob/value-to-string-oob
value_to_string: use snprintf
2021-02-28 15:23:29 +02:00
Lior Halphon
81bfea9ba2
Coding style, ensuring string termination. 2021-02-28 15:23:14 +02:00
Lior Halphon
1fdb4f09b4 Fix a sweep regression in DMG/SGB mode and CGB-C mode 2021-02-28 03:40:58 +02:00
Jakub Kądziołka
c9665d0449
value_to_string: use snprintf
Currently, value_to_string and debugger_value_to_string use an
error-prone calculation to avoid overflow. This was once adjusted
already, and one of the codepaths is still vulnerable. Put this in a
symfile:

    01:5678 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

and execute `p 1:$5679`. On Linux, the canary terminates the process.
2021-02-27 19:33:31 +01:00
Jakub Kądziołka
e8bfc4050e
Fix off-by-one in symbol search
Before this commit, printing an address that's after every symbol in a
bank would not show it relative to the last symbol.
2021-02-27 19:29:06 +01:00
Lior Halphon
ce44773caa Make the printer not deadlock after a sudden termination 2021-02-26 16:40:35 +02:00
Lior Halphon
72cb391612 Slightly improve MBC3 accuracy 2021-02-26 00:52:18 +02:00
Lior Halphon
71c6fa45e0 Accurate RTC emulation 2021-02-26 00:40:18 +02: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
6ec4583aa0 Tell GCC to calm down 2021-02-25 15:52:48 +02:00
Lior Halphon
4c05ebcea6 Redo the volume envelope with better timings, locking emulation and zombie mode edge cases. Fixes #344 2021-02-25 15:43:38 +02:00
Lior Halphon
8809d8ac2f More correct emulation of manual clocking of channels 1 and 2 2021-02-22 15:27:36 +02:00
Lior Halphon
71c88323b7 Rename UNROLL to unrolled (unrolled for) 2021-02-22 14:45:30 +02:00
Lior Halphon
393269ae1f Emulate volume envelope locking 2021-02-22 13:48:56 +02:00
Lior Halphon
d50fdc52ea Further accuracy improvements to the audio envelope 2021-02-22 01:58:43 +02:00
Lior Halphon
6d2d88648e Improved emulation of the volume envelope 2021-02-22 01:10:14 +02:00
Lior Halphon
95051d1c1c Improved emulation of the NRx2 write glitch (Zombie mode) on models prior to CGB-D 2021-02-13 23:00:20 +02:00
Lior Halphon
2d76698279 Emulation of NR43 bit 3 glitch on CGB-C and older 2021-01-31 19:17:26 +02:00