Commit Graph

1243 Commits

Author SHA1 Message Date
Lior Halphon 375fb4388c Swap the box filter with band-limited synthesis, fixed a regression that prevented filtering of square waves in some scenarios. Fixes #669 2024-11-16 01:03:14 +02:00
Lior Halphon 2dfde867a9 Syncing with the App Store branch 2024-11-08 14:53:16 +02:00
Lior Halphon e13048d07b Improve ISX compatibility 2024-10-03 16:21:10 +03:00
Lior Halphon 92f425655d iOS cheats support 2024-09-07 01:25:11 +03:00
Lior Halphon bd5d01c0a4 Game Genie has a space 2024-08-31 13:42:18 +03:00
Lior Halphon 5b33cebca9 Fix iOS and lib builds 2024-08-29 01:26:13 +03:00
Lior Halphon 6178ff2a78 Cheat Search API, Cheat Search in Cocoa, and new cheats window layout 2024-08-29 01:11:47 +03:00
Lior Halphon 461083523a Correctly emulate LYC edge cases when emulating CGB-0 to CGB-C in double speed mode 2024-08-16 20:51:40 +03:00
Lior Halphon b8e32e6d53 More accurate window emulation, especially in double speed mode 2024-08-13 21:11:38 +03:00
Lior Halphon d5c6ed9510 Correctly list removed breakpoints/watchpoints 2024-08-10 19:38:54 +03:00
Lior Halphon 47cdefd3d0 Minor adjustments to the CGB WX glitch 2024-08-02 20:45:17 +03:00
Lior Halphon 035291b955 Fix the comparison operators having the wrong priority 2024-07-27 22:39:56 +03:00
Lior Halphon 5f71ec4974 Slightly more accurate 2024-07-26 14:04:41 +03:00
Lior Halphon 5eb0e5d605 Minor regression fix 2024-07-26 02:43:31 +03:00
Lior Halphon b1ea179513 Improve various edge cases of window emulation, improve the emulation of the last quirk 2024-07-25 22:32:28 +03:00
Lior Halphon d34579e3bb Window accuracy improvements, implement a new CGB window glitch 2024-07-21 23:38:40 +03:00
Lior Halphon 64cf389edf Simplify wx=166 code 2024-07-14 13:00:39 +03:00
Lior Halphon 0c9cf8d594 Build fix 2024-07-13 17:11:39 +03:00
Lior Halphon 44b70bf275 Improve WX=166 accuracy on pre-CGB models 2024-07-13 17:06:29 +03:00
Lior Halphon 06c6ce7d65 More accurate fetcher timings. More accurate visual glitches in Mr. Chin's Gourmet Paradise; Turrican. 2024-07-11 00:21:04 +03:00
Lior Halphon 9d4d535758 Merge remote-tracking branch 'xdg-thumbnailer/xdg-thumbnailer' 2024-07-08 19:49:41 +03:00
Lior Halphon 18206718e3 Adjustment to SCX's write conflict implementation 2024-07-08 00:18:27 +03:00
Lior Halphon c3e3fb91cc Improve PPU timings in CGB revision 0 to C. These revisions are no longer marked as experimental. 2024-07-08 00:00:27 +03:00
Lior Halphon a4525c3336 Slightly improve OAM read blocking timing 2024-07-07 16:09:53 +03:00
ISSOtm b3cecf2413 Implement the "plumbing" around thumbnail generation
Only the actual thumbnail generation is left!
2024-06-26 22:59:03 +02:00
Lior Halphon d07b199668 Improve audio anti-aliasing, allow 2MHz output 2024-06-23 20:10:22 +03:00
Lior Halphon ad5ca0dcf0 Switch to 2MHz units in apu_cycles 2024-06-23 15:23:29 +03:00
Lior Halphon a3128d89c0 Support for a distinct CGB-E boot ROM, internal support for an distinct AGB-0 boot ROM 2024-06-09 22:49:49 +03:00
Lior Halphon 322f3c7013 More accurate emulation of the previous quirk 2024-06-03 22:04:17 +03:00
Lior Halphon 5be5bc4709 Emulate a new APU glitch, tweak another. Fixes #617 (Telefang sample audio being broken on CGB-D and CGB-E) 2024-06-03 00:19:26 +03:00
Lior Halphon 302eaf6eca Migrate changes from the App Store version 2024-05-25 18:15:14 +03:00
Morilli c5b3e47925 Fix potential compiler warning on questionable code path 2024-04-13 02:53:52 +02:00
Braiden Gent 66ec48e0eb
Don't tell user tick count has been reset if they've kept the value
"Tick count reset." is currently logged even if the user supplied the 'keep' argument.
2024-03-22 03:47:33 -07:00
Lior Halphon a125da6a98 Fix ISX support, oops 2024-03-09 16:37:17 +02:00
Lior Halphon 8739da61c0 Avoid strict aliasing violations. Closes #593 2024-03-09 15:41:07 +02:00
Lior Halphon 3ef8fab7c4 Fix typo 2024-03-08 18:17:29 +02:00
Lior Halphon 5e4a1f6db7 Adjust the handling of >4MB ISX files 2024-03-08 18:17:29 +02:00
Lior Halphon 8c9c97b74f ISX does not support symbols with a bank >FF 2024-03-08 18:17:29 +02:00
Lior Halphon 8d063391a4 Support for certain bootlag games with malformed headers, fixes #585 2024-01-13 18:06:22 +02:00
Lior Halphon 4cf3b3c948 Accurate emulation of frame parity 2024-01-13 15:50:07 +02:00
orbea 8cf319e941 gb.h: add include guards for C++ projects
This is helpful for C++ projects like bsnes that wish to include gb.h
without needing to set extern "C" themselves.
2023-12-28 09:59:37 -08:00
Lior Halphon 00e1c925a4 Prevent GB_workboy_is_enabled incorrectly returning true, prevent GB_workboy_set_key from affecting other accessories if Workboy isn't connected 2023-12-18 21:48:09 +02:00
Lior Halphon 6e923645d3 The previous change should only affect channel 3 2023-12-15 20:52:24 +02:00
Lior Halphon c7c2d08dc5 More accurate audio mixing in AGB mode, fixes #555 2023-12-15 20:38:19 +02:00
Lior Halphon d8905f57bf iOS alarm support 2023-12-15 14:28:19 +02:00
Lior Halphon 8b2f683c20 Todo confirmed 2023-12-14 22:08:55 +02:00
Lior Halphon 34c9d4c791 Correctly emulate the vram_rd_eol test ROMs (except in odd mode) 2023-12-10 22:40:47 +02:00
Lior Halphon 40ded1114f Correct timing TODO 2023-12-10 14:56:41 +02:00
Lior Halphon fbd1d06f1c Confirmed SCX on double speed mode 2023-12-10 14:48:15 +02:00
Lior Halphon 1c0f65177f Fix HDMA5 not being correctly updated in memory when disabling hblank HDMA 2023-12-09 15:54:57 +02:00
Lior Halphon bce413821d
Merge pull request #569 from SnowyMouse/gbenum-fix
Fix GB_ENUM on C++
2023-11-26 19:39:23 +02:00
Lior Halphon 5823bf9d70 Merge branch 'master' of github.com:LIJI32/SameBoy 2023-11-25 21:24:56 +02:00
Lior Halphon ecbdb9e95e Emulate several more pre-CGB-D channel 1 glitches 2023-11-25 21:24:46 +02:00
Snowy 8657d3e4b6 Fix GB_ENUM on C++
The else branch results in an error from defining a type in a cast.
2023-10-28 14:20:31 +02:00
Maximilian Mader 0ece951173
Fix memory corruption on removal of multiple cheats with the same address hash 2023-10-22 18:39:14 +02:00
Lior Halphon e59bc436bd CGB-C NR10 conflict improvements 2023-09-25 23:35:26 +03:00
Lior Halphon 340d4e0630 WIP: Fix APU regressions (CGB-D/E only so far) 2023-09-09 23:54:01 +03:00
Lior Halphon 5192e3a07b Merge branch 'master' of github.com:LIJI32/SameBoy 2023-09-03 15:54:42 +03:00
Lior Halphon d662407df0 Accurate emulation of NR10 write glitches 2023-09-03 15:54:37 +03:00
vailkyte 816cdf2c62
Force parsing order 2023-09-01 22:19:06 -05:00
Florian Märkl 6b6800445f Fix oob reads in debugger command parsing
The length of only one of the operand strings was checked before the
memcmp in these cases, causing out-of-bounds reads when the other was
shorter.
This could be seen by compiling with ASAN and for example executing any
command longer than 2 characters.
2023-08-19 15:03:27 +02:00
Lior Halphon 12ad85355c Build the iOS frontend without the debugger 2023-08-04 20:02:42 +03:00
Lior Halphon a9ce9f538f Experimental backstepping support 2023-08-04 19:54:14 +03:00
Lior Halphon 0b54eea084 Change the internal macro to use hidden, which guarantees a standard ABI 2023-08-04 19:53:52 +03:00
Lior Halphon fb3db82d42 The Cocoa memory viewer new symbolicates the selection 2023-07-30 20:11:35 +03:00
Lior Halphon aedb3e2332 Fix GB_debugger_evaluate not correctly returning the bank 2023-07-30 14:21:41 +03:00
Lior Halphon 048da6e6d1 Fixed a bug where accurate RTC emulation halted while SameBoy wasn't running 2023-07-29 22:27:50 +03:00
Lior Halphon 4ab256d896 Correct read emulation of the BANK register while still in the boot ROM 2023-07-29 16:08:26 +03:00
Lior Halphon 10d996330c Inclusive ranges 2023-07-29 16:05:28 +03:00
Lior Halphon 29becc2870 Treat local and non-local symbols differently 2023-07-29 14:51:31 +03:00
Lior Halphon d209628369 Fixed a bug where breakpoint and watchpoints would sometime stop working 2023-07-29 13:45:26 +03:00
Lior Halphon 323b6fafa8 Ranged breakpoints and watchpoints 2023-07-29 01:00:36 +03:00
Lior Halphon dd1330d707 Breakpoints and watchpoints are now identified by a unique id rather than an address 2023-07-28 19:07:56 +03:00
Lior Halphon 61f3c8d7f3 Fixed an edge case where jump-to breakpoints did not work as expected/took the slow path 2023-07-28 00:49:31 +03:00
Lior Halphon 54f45f2fd3 Fix a bug where jump-to breakpoint disassembled the wrong address under certain scenarios 2023-07-28 00:47:15 +03:00
Lior Halphon d93c1e501c Remove outdated comments, PPU timings and and the STAT interrupt are no longer based on these sources 2023-07-08 00:55:59 +03:00
Lior Halphon 803abd9925 Halt and Stop trigger the OAM bug 2023-07-04 23:25:53 +03:00
Lior Halphon 49ec02b3b3 Replace cycle_oam_bug_pc with a generic call to cycle_oam_bug 2023-07-04 01:07:01 +03:00
Lior Halphon e9be438d91 Turns out jr triggers the OAM bug, thanks Sono! 2023-07-04 00:21:57 +03:00
Lior Halphon 1b50856dcf More of the same 2023-06-21 21:49:23 +03:00
Lior Halphon 207851bc56 Merge branch 'master' of github.com:LIJI32/SameBoy 2023-06-21 21:47:45 +03:00
Lior Halphon 57b50cab63 Work around bad Clang and GCC optimizations of inline compile-time consts (They can't be static before C23, which isn't supported by Clang) 2023-06-21 21:47:30 +03:00
Noah Sweilem 074d152a4e Formatting fixes 2023-06-20 10:28:18 -07:00
Noah Sweilem dad9e4b704 Formatting fixes 2023-06-20 10:28:01 -07:00
Noah Sweilem 9148b26bd8 Move `edge_triggered` variables into `gb->apu_output` 2023-06-20 10:25:25 -07:00
Noah Sweilem 4213524286 Fix swapped wave channel volume 2023-06-16 19:04:12 -07:00
Noah Sweilem ae855d470d Use different sample index for square channel edge trigger depending on duty cycle 2023-06-11 16:23:26 -07:00
Noah Sweilem ec9536eede Try a modified edge trigger detection for pulse and wave channels 2023-06-11 15:44:28 -07:00
Noah Sweilem 7bdf8dbe47 Add initial edge trigger detection method
- GB_get_channel_edge_triggered()
2023-06-11 15:27:31 -07:00
Noah Sweilem 5c7b1f01a3 Add som APU query methods for libsameboy
- GB_get_channel_volume()
- GB_get_channel_amplitude()
- GB_get_channel_period()
- GB_get_apu_wave_table()
2023-06-10 14:23:15 -07:00
Lior Halphon fef175dcc6 Use #pragma once for include guards, use #import exclusively on Obj-C files 2023-06-09 14:44:57 +03:00
Lior Halphon bed26daf73 Allow disabling SameBoy features when compiling as a library. Probably introduces some speed improvements to the Libretro core, as well as bsnes and BizHawk 2023-06-03 22:37:42 +03:00
Lior Halphon d62132be38 These should be in defs.h 2023-06-03 21:54:01 +03:00
Lior Halphon be171cfe66 Add a library target, complete with headers that strip implementation details out. 2023-06-03 14:39:21 +03:00
Lior Halphon 4254dcdb2c Fix incorrect initial value of register IE when playing GBS files. Fixes #544 2023-05-12 17:57:20 +03:00
Lior Halphon 996ebaafa3 Use Oz for the frontend files, reduce some aggressive loop unrolling 2023-05-11 00:08:54 +03:00
Lior Halphon 40b7e25126 Accurate emulation of SVBK, fixes audio in Flyeyes (unlicensed game) 2023-05-10 00:55:04 +03:00
Lior Halphon 06621d1dfe Fix GB_debugger_break on builds without the debugger 2023-05-10 00:54:34 +03:00
Lior Halphon 3e3ac23432 More likely/unlikely fun 2023-04-25 13:35:25 +03:00
Lior Halphon 32a419ad2e Do not inline the slow path of frequently called functions 2023-04-25 13:08:19 +03:00