Commit Graph

897 Commits

Author SHA1 Message Date
Lior Halphon 594aea2d5a APU is now being run lazily 2016-09-13 17:33:48 +03:00
Lior Halphon eefc998e43 Removed for loop in APU 2016-09-13 17:06:35 +03:00
Lior Halphon ff7b8a6854 Removed doubles, reorganized code a bit 2016-09-13 16:57:16 +03:00
Lior Halphon b95860c034 Making the APU independent of sample rate 2016-09-13 16:55:26 +03:00
Lior Halphon 43be91f032 Slightly more readable code. 2016-09-13 01:20:18 +03:00
Lior Halphon 95cfb114a2 Properly setting MBC RAM 2016-09-10 13:25:18 +03:00
Lior Halphon 6d836b9f48 Fixed APU bug that prevented some games from working 2016-09-10 02:20:44 +03:00
Lior Halphon 62ecadeb57 Fixed another reset-while-debugging deadlock in Cocoa 2016-09-07 00:37:11 +03:00
Lior Halphon 01fc137256 Fixed an APU issue that might occur when having more than one GB_gameboy_t object 2016-09-06 22:36:16 +03:00
Lior Halphon 603b8969ab Correct (disconnected) serial emulation. 2016-09-06 13:13:14 +03:00
Lior Halphon a6c5a8fdaa Fixed a bug that caused the Cocoa port to freeze sometimes if the emulator was reset while debugging. 2016-09-03 13:34:49 +03:00
Lior Halphon a2d77b1754 Warn about unsupported cartridges/MBCs 2016-09-03 04:00:37 +03:00
Lior Halphon a746c726ee Added basic automatic ROM tester 2016-09-03 03:39:32 +03:00
Lior Halphon ee4907949b Support for RTC latching. Fixes #4. 2016-08-21 22:33:57 +03:00
Lior Halphon e7626535a8 Initial Windows support 2016-08-20 17:51:17 +03:00
Lior Halphon 0734e990b3 Memory viewer now has a Goto command, different memory space modes, and allows viewing/editing specific banks 2016-08-19 14:54:54 +03:00
Lior Halphon f9236d12bf Improvements to the help command and general debugger usability. 2016-08-13 22:52:41 +03:00
Lior Halphon 806d0775a4 Added backtrace command to debugger 2016-08-09 22:48:53 +03:00
Lior Halphon bebb5c7a41 Correctly emulating the unused OAM memory in DMG mode 2016-08-06 18:58:44 +03:00
Lior Halphon cc8664b0a8 Correctly emulating a disconnected serial cable 2016-08-06 18:57:33 +03:00
Lior Halphon af10e07ed7 Initing OBP0/1 correctly 2016-08-06 18:57:13 +03:00
Lior Halphon e95d2c4abe Fixed DI instruction on CGB 2016-08-06 17:16:38 +03:00
Lior Halphon d03a1fbd16 Fixed TMA writing while reloading. 2016-08-06 14:36:33 +03:00
Lior Halphon 85a33ed8ef Emulating DMA delay correctly 2016-08-06 14:24:43 +03:00
Lior Halphon 4a50000e83 Corrected timing for many instructions 2016-08-06 14:00:35 +03:00
Lior Halphon 8dd5462525 Correct DMA timing 2016-08-06 13:57:38 +03:00
Lior Halphon 0f98ac5ff9 Emulate TIMA reloading 2016-08-06 13:56:29 +03:00
Lior Halphon 55cbe5d4d0 Accuracy improvements to timers 2016-08-06 00:24:12 +03:00
Lior Halphon d098458ee4 Major improvements to accuracy: Fixed instruction timing, DMA timing, and IO reg masking. Passes most of mooneye-gb acceptance tests. 2016-08-05 16:36:38 +03:00
Lior Halphon 47e3300b66 Improved DMA accuracy, mooneyegb test ROMs no longer crash miserably. (but still fail) 2016-08-03 23:31:10 +03:00
Lior Halphon fad1007427 Merge branch 'master' of https://github.com/LIJI32/SameBoy 2016-08-03 22:28:28 +03:00
Lior Halphon e6d4cac00e Fix logical bug when changing watchpoint flags 2016-07-21 15:20:25 +03:00
Lior Halphon 185e71fe12 Improvements to IR API, since timing is VERY important 2016-07-21 01:03:13 +03:00
Lior Halphon 1d35c04ab1 Infrared API 2016-07-18 22:11:18 +03:00
Lior Halphon da0911d69b Fixed SDL crash 2016-07-18 14:30:21 +03:00
Lior Halphon b30822fd0b Async commands in SDL port, better handling of ^C and ^D 2016-07-18 13:10:19 +03:00
Lior Halphon aa6438fa06 Async debugger commands 2016-07-18 00:46:45 +03:00
Lior Halphon a68b06226a Fixed crash on free 2016-07-15 23:20:14 +03:00
Lior Halphon eaca0634aa Reading and writing absolute addresses in the expression evaluator. 2016-07-15 17:06:46 +03:00
Lior Halphon e20e81befd Symbol support in the expression evaluator 2016-07-15 14:31:27 +03:00
Lior Halphon c3a831db7d Debugger's pc "variable" now returns a full address 2016-07-14 23:27:48 +03:00
Lior Halphon 909f3ba75e Bank-specific breakpoints and watchpoints 2016-07-14 23:25:16 +03:00
Lior Halphon ce837b3727 Bank-specific examine support 2016-07-14 21:15:24 +03:00
Lior Halphon 65f37bccbd Initial 25-bit debugger values support 2016-07-14 21:01:45 +03:00
Lior Halphon ea082b777d ...And another crash 2016-07-14 01:46:55 +03:00
Lior Halphon f6b10ed439 Operators priorities were inverted! 2016-07-13 23:51:46 +03:00
Lior Halphon 46714108ac ...And a crash. 2016-07-13 23:46:18 +03:00
Lior Halphon c3f1eb26b1 Fixed potential overflow 2016-07-13 23:07:36 +03:00
Lior Halphon d49404d248 Debugger can now read .sym files, and display them. (No expression support yet) 2016-07-13 23:00:50 +03:00
Lior Halphon e9b3a38171 Uniform syntax for debugger input and output 2016-07-12 23:30:18 +03:00
Lior Halphon bd7f8f2555 Support for an alternative MBC1 wiring, should solve most N-in-1 carts (Issue #3) 2016-07-09 19:25:25 +03:00
Lior Halphon c6bafe3fc3 Rewrote MBC support 2016-07-09 17:34:55 +03:00
Lior Halphon 78a809795e Renaming MBC constants 2016-07-09 14:45:25 +03:00
Lior Halphon b4208be4f4 Multiple watchpoints were broken 2016-07-09 14:37:11 +03:00
Lior Halphon de4983099a Added (conditional) r/w watchpoints. Fixed a bug where breakpoint condition syntax is not checked. Added != operator. 2016-07-07 00:29:25 +03:00
Lior Halphon 19aea4096b Added condition breakpoint. Fixed a possible crash when deleting a breakpoint. 2016-07-01 18:24:21 +03:00
Lior Halphon 8eee70aed9 Fixed disassembler bugs 2016-07-01 18:04:25 +03:00
Lior Halphon 79fd9ed6ad Added boolean operators to the debugger 2016-07-01 13:12:04 +03:00
Lior Halphon 70bd90740a Mass name and type changes. Save states are now compatible between 32- and 64-bit systems. Maybe. 2016-06-18 20:29:11 +03:00
Lior Halphon 64832e0e9e HDMA accuracy improvement 2016-06-18 16:51:25 +03:00
Lior Halphon d58ddef07b Proper initial value for the Joypad register 2016-06-18 15:01:51 +03:00
Lior Halphon 5723b82293 Fixed graphical glitches caused by the last change to LCDC emulation 2016-06-17 02:27:32 +03:00
Lior Halphon e6c4b4d1b2 Seems like I forgot to finish implementing the stop instruction! 2016-06-14 14:12:13 +03:00
Lior Halphon 8153b765a2 General cleanup. Minor fixes to LCD Controller accuracy. 2016-06-12 19:39:05 +03:00
Lior Halphon d7d8da3fa9 More accurate emulation of the SCX register 2016-06-11 17:58:00 +03:00
Lior Halphon b7e999b242 Modified saved data to be more future-compatible. 2016-06-11 17:49:42 +03:00
Lior Halphon 6c7dd761e2 Fixed a crash related to adding and deleting breakpoints 2016-06-10 18:03:12 +03:00
Lior Halphon ee7e58e44b Fixed a bug introduced by the last STAT fix. This restores GBVideoPlayer support. 2016-06-10 17:29:49 +03:00
Lior Halphon 759b497c07 Fixed bug introduced by the stereo support 2016-06-10 16:38:20 +03:00
Lior Halphon aca5873de2 More accurate STAT interrupt. This fixes Altered Space and partially fixes Pinball Deluxe. It breaks GBVideoPlayer, however. 2016-06-10 16:31:57 +03:00
Lior Halphon 6bc64a9902 Added stereo support. Correct some PCM register behavior. 2016-06-10 15:28:50 +03:00
Lior Halphon 79e4c22c6b Fixed string in MBC command 2016-04-16 15:18:40 +03:00
Lior Halphon 0fa2d6ea2f Prevent creating .sav files for ROMs claiming they have a battery but have no cartridge RAM or RTC 2016-04-16 14:09:56 +03:00
Lior Halphon 7dc575d01e Fixed a bug where audio channel 3 was playing silently instead of being muted. 2016-04-16 14:08:30 +03:00
Lior Halphon b8bc84db4e Corrected read of HDMA5, fixing A Bug's Life 2016-04-15 01:26:48 +03:00
Lior Halphon 4a05c4243d Corrected description for the breakpoint command 2016-04-13 22:48:07 +03:00
Lior Halphon 8dd1b3c854 Added (experimental) stack-leak and stack-overflow detection command to the debugger. 2016-04-10 23:22:54 +03:00
Lior Halphon 71ef40f4b6 "Standardized" the finish/next call depth as debugger "hooks" 2016-04-10 22:36:54 +03:00
Lior Halphon bf6dff30cb Corrected debugger's finish behavior's on interrupt handlers 2016-04-10 20:58:14 +03:00
Lior Halphon 0a09fba091 Correcting DIV and TIMA speed in CGB's double speed mode 2016-04-09 16:48:37 +03:00
Lior Halphon de95e6f6fc Fixed incorrect DMA validity check, fixing The Smurfs 3 2016-04-09 15:00:29 +03:00
Lior Halphon 80d03f3c91 Added ROM-bank wrapping support, making bootleg game "Pocket Monster Adventures" boot.
(Although this game is better not booting)
2016-04-09 02:18:09 +03:00
Lior Halphon a3b44d20cb Added mbc/cartridge command to debugger 2016-04-09 02:00:10 +03:00
Lior Halphon f448865b8a Silently ignoring empty lines 2016-04-08 01:53:21 +03:00
Lior Halphon 1069637e45 Added support for multiple breakpoints 2016-04-07 00:25:41 +03:00
Lior Halphon 1c2af7fa5b Fixed the default debugger input to strip new lines, fixing the debugger in SDL 2016-04-06 22:57:37 +03:00
Lior Halphon eb0b642247 Improved debugger command style and usability, made code more flexible 2016-04-06 01:43:35 +03:00
Lior Halphon 3e135a7c00 More accurate emulation of the DMG-emulation-mode registers. 2016-04-05 23:21:51 +03:00
Lior Halphon cda6621dc2 Fixed mask for TAC and STAT 2016-04-04 22:12:00 +03:00
Lior Halphon af7309b98d Moved the call to display_run to advance_cycle.
This fixes games with delicate timings such as X/Ekkusu, that expect STAT to change *during* an opcode.
2016-04-02 19:15:07 +03:00
Lior Halphon 0787e5b271 Debugger's next command can now exit a function 2016-04-02 19:06:43 +03:00
Lior Halphon b7555e9976 Correct OAM interrupt behavior 2016-04-02 16:29:27 +03:00
Lior Halphon da00e240e5 Correct read of IF and write of IE 2016-04-02 16:29:02 +03:00
Lior Halphon a3dd58c92c Fixed inaccurate LCD controller behavior that caused Pokémon Pinball to freeze. 2016-04-01 21:27:16 +03:00
Lior Halphon 3344480de7 Vblank now returns a white screen if LCD is off, instead of keeping the buffer unmodified. 2016-04-01 21:27:16 +03:00
Lior Halphon e822f17bb7 Wrapping external RAM banking support. Required for Pokémon Pinball's saves. 2016-04-01 21:27:16 +03:00
Lior Halphon f1e9623371 Initial public commit 2016-04-01 21:27:01 +03:00