Lior Halphon
202eb2b5cc
Fix stat_lyc_onoff
2018-03-18 20:32:19 +02:00
Lior Halphon
80b1275e07
Fix stat_lyc_onoff
2018-03-18 20:08:45 +02:00
Lior Halphon
0dc30f081a
CGB halt interrupt timing
2018-03-17 23:21:14 +02:00
Lior Halphon
12ae5745db
While fixing some rendering issues, this change was incorrect.
2018-03-17 21:04:48 +02:00
Lior Halphon
269bac4626
More CGB fixes
2018-03-17 20:34:55 +02:00
Lior Halphon
21b75494a2
More CGB fixes (currently on DMG-mode CGB is verified). Halt interrupt timing isn’t correct yet.
2018-03-11 00:17:57 +02:00
Lior Halphon
15b6c48d7c
Fixed vblank_stat_intr-C
2018-03-10 15:52:22 +02:00
Lior Halphon
c267ad00b5
Goodbye
2018-03-09 23:34:23 +02:00
Lior Halphon
e8b107efdb
In double speed mode, there are no quirks where IF and STAT don’t update together
2018-03-09 23:31:49 +02:00
Lior Halphon
cb6bb0590e
Starting to fix CGB timing quirks
2018-03-09 21:11:35 +02:00
Lior Halphon
9083e883fe
CGB BG rendering
2018-03-09 18:52:36 +02:00
Lior Halphon
a32f232bb1
Fixed OAM-window priority glitch, fixed OAM glitch in Prehistoric Man
2018-03-09 17:10:19 +02:00
Lior Halphon
1149c266cf
More regression fixes, actually fix Pinball Deluxe this time
2018-03-08 23:22:03 +02:00
Lior Halphon
544ca2be4c
Changing the timings of memory writes so they’re not effectively one T-cycle late. This screws up APU’s cycle accuracy for now.
2018-03-05 21:17:37 +02:00
Lior Halphon
88a11b891f
Object rendering
2018-03-04 23:27:31 +02:00
Lior Halphon
3d1c8b50c4
OAM search and OAM timing in mode 3
2018-03-04 22:21:56 +02:00
Lior Halphon
476133abd0
The scrolled y value is cached and not recalculated
2018-03-03 20:51:38 +02:00
Lior Halphon
518746f664
fixed rendering off by one
2018-03-03 19:52:48 +02:00
Lior Halphon
496c5589e6
Added window support
2018-03-03 19:36:21 +02:00
Lior Halphon
5ea33cc931
Cleanup
2018-03-03 19:05:29 +02:00
Lior Halphon
b08f02c4f3
Rewriting the PPU rendering: T-cycle accurate background rendering. DMG only, CGB completely broken
2018-03-03 15:47:36 +02:00
Lior Halphon
a67db0595b
Fixed window behavior
2018-03-01 22:03:56 +02:00
Lior Halphon
b702d56547
Merge branch 'master' into timing
...
# Conflicts:
# Core/display.c
# Core/z80_cpu.c
2018-03-01 21:22:33 +02:00
Lior Halphon
94c6dbd281
Fixed ‘call’ instruction not being properly symbolicated. Closes #37
2018-03-01 21:12:37 +02:00
Lior Halphon
7248403be7
Fixed several DMG regressions, fixes Pinball Deluxe again
2018-03-01 00:12:04 +02:00
Lior Halphon
fb03479a1f
Added 16-bit dereferencing operator (`{address}`) to the debugger. Closes #38
2018-02-28 19:39:22 +02:00
Lior Halphon
b02e40d5a2
Refinement to that last fix
2018-02-25 23:23:55 +02:00
Lior Halphon
90a943d05a
Emulate an HDMA quirk required to properly emulate Aevilia
2018-02-25 22:32:41 +02:00
Lior Halphon
ef670986c6
Rewrote PPU (currently only emulates DMG correctly) to use the new timing mechanism. Removed “future interrupts” (No longer required because SameBoy is now T-cycle based)
2018-02-25 00:48:45 +02:00
Lior Halphon
42ab746a66
Starting to remove the delayed interrupts hack – done for timer interrupt, broken for display interrupts
2018-02-23 15:33:44 +02:00
Lior Halphon
c48097a484
Convert div counter to the SM mechanism
2018-02-23 13:16:05 +02:00
Lior Halphon
5974092c94
Bugfix
2018-02-20 23:04:35 +02:00
Lior Halphon
56eac9f875
Removed some dead code from display.c
2018-02-20 21:23:27 +02:00
Lior Halphon
9802ca41dd
Components not affected by CGB’s double speed mode now operate in 8MHz mode to theoretically make advance_cycles(gb, 1) safe.
2018-02-20 21:17:12 +02:00
Lior Halphon
f79af39ea2
More accurate emulation of the APU’s analog characteristics
2018-02-16 18:01:50 +02:00
Lior Halphon
fc35111ae7
Corrected the emulated DAC’s range
2018-02-16 01:26:37 +02:00
Lior Halphon
0c231db9e7
This is probably not correct (and makes no sense from an hardware design perspective), but this correctly emulates my analog test cases and fixes the pops introduced by the last commit.
2018-02-13 23:13:15 +02:00
Lior Halphon
bfb37884e1
Inactive channels are not equivalent to channels with 0 volume.
2018-02-11 22:50:15 +02:00
Lior Halphon
afcc66fb3c
Added CPU under/over-clocking support in Core, add under-clocking hotkey in the Cocoa port, allow modifier keys to be configured as input keys in Cocoa.
2018-02-10 23:30:30 +02:00
Lior Halphon
0cbbaac490
Updated incorrect comment after verification
2018-02-10 19:50:42 +02:00
Lior Halphon
81f808e184
Refinements for the Wii U port
2018-02-10 15:02:22 +02:00
Lior Halphon
00c67f8842
Merge commit '217e9787bd640cbd1b8250e31c0064331ddc302f'
2018-02-10 14:49:57 +02:00
Lior Halphon
1c61b006ba
Added rewinding support to the core and the Cocoa frontend
2018-02-10 14:42:14 +02:00
radius
217e9787bd
change MAX_CH_AMP on WiiU
2018-02-07 15:28:30 -05:00
Lior Halphon
95234036bb
Added return value to GB_run API.
2018-01-31 15:18:04 +02:00
Lior Halphon
09dd47c6de
Fixed unintentional delay in NR50 and NR51’s effects
2018-01-19 19:56:39 +02:00
Lior Halphon
37906bcd1f
Fixed sound pops in Super Mario Land 2.
2018-01-19 00:47:46 +02:00
Lior Halphon
0a76881eb6
Correctly emulating NRx4 effects on the sound envelop of the previously playing sound. Closes #19
2018-01-06 12:37:45 +02:00
Lior Halphon
a20e8a8220
Fixed bug in NR42 write that also caused memory corruption
2018-01-06 12:17:06 +02:00
Lior Halphon
a1af4c59ca
Fixed NR51 volume levels (They’re 1-8, not 0-7)
2018-01-06 11:58:49 +02:00
Lior Halphon
2205493862
Bug fixes in the SDL port
2017-12-30 17:07:05 +02:00
Lior Halphon
d3a2e49d38
Merge branch 'sdl_gui' into libretro_core
...
# Conflicts:
# Makefile
# SDL/main.c
2017-12-29 13:12:12 +02:00
Lior Halphon
61f9dbd95d
Use SDL’s key mapping when available
2017-12-28 20:22:54 +02:00
Lior Halphon
dc59fdf40e
Highpass filter in SDL
2017-12-23 22:11:53 +02:00
Lior Halphon
f0e772ca97
Fixed: Loading states in DMG mode results in a black screen
2017-12-22 21:58:31 +02:00
Lior Halphon
19c382c9e0
Fixed ei_sequence test
2017-12-03 21:07:34 +02:00
Lior Halphon
4b69331321
Merge branch 'master' into libretro_core
2017-10-16 20:49:33 +03:00
Lior Halphon
e71154b7e0
Fixed set_color_correction breaking DMG’s palette
2017-10-16 20:48:39 +03:00
Lior Halphon
6c97bb9052
Accidentally reversed ifdef condition
2017-10-13 17:28:32 +03:00
Lior Halphon
27b5718b07
Merge branch 'master' into libretro_core
2017-10-12 22:50:02 +03:00
Lior Halphon
a753e00b59
Added direct_access interface to interrupt_enable/IE register
2017-10-12 22:49:39 +03:00
Lior Halphon
40e4f93637
Replaced libretro specific code with a generic API
2017-10-12 22:06:01 +03:00
Lior Halphon
6b71d1d477
“Baked” boot ROM is now auto-generated.
2017-10-12 21:52:51 +03:00
Lior Halphon
441781cbe9
Libretro .o files are now in the build/obj folder and are suffixed with _libretro (since they have different compilation flags). This also lets us rename gbmemory.c/h back to its original name.
2017-10-12 19:42:30 +03:00
Lior Halphon
7c0ad24175
Added compilation flag to disable timekeeping for frontends that handle fps keeping on their own
2017-10-12 19:24:12 +03:00
Lior Halphon
a50aa2486b
Removed input callbacks when no debugger is included
2017-10-12 19:16:33 +03:00
Lior Halphon
dcadfc37f4
Changed the way HAVE_DEBUGGER works and renamed it (so it’s on by default) to DISABLE_DEBUGGER. Fixes build break.
2017-10-12 19:05:27 +03:00
Lior Halphon
9615ca6fa6
Merge pull request #14 from libretro/master
...
libretro core
2017-10-12 18:29:26 +03:00
Lior Halphon
65dd02cc52
Added 3 color correction profiles, added color correction setting to Cocoa GUI, improved cross-platform and cross-frontend save-state compatibility
2017-10-12 17:22:22 +03:00
radius
8d691563c7
include unistd
2017-10-09 19:53:07 -05:00
radius
18b376ac5f
Updates:
...
-fix input descriptors
-implement savestates
-implement sram interface
2017-10-09 14:21:32 -05:00
twinaphex
a7db98c22e
Memory needs to be uniquely named for Android
2017-10-09 11:36:55 -05:00
twinaphex
b02aeab022
We don't need stdin
2017-10-09 11:36:54 -05:00
twinaphex
09f4edda57
Comment out debugger code - add HAVE_DEBUGGER ifdef
2017-10-09 11:36:53 -05:00
twinaphex
aeea20ae9d
Comment out nsleep
2017-10-09 11:36:53 -05:00
twinaphex
9f5b746e0b
Fix compiler error
2017-10-09 11:36:53 -05:00
radius
765a072c73
this fixes fast forwarding but probably has to change to a proper fix
2017-10-09 11:36:24 -05:00
twinaphex
33a9c54842
Correct memset lines
2017-10-09 11:36:23 -05:00
twinaphex
d433cdf260
Add baked-in generated BIOS files
2017-10-09 11:36:23 -05:00
Lior Halphon
c1f27d7b27
Spacing
2017-10-02 22:59:03 +03:00
Lior Halphon
d9b0576351
Emulation of NRX2-write glitches. Fixes Prehistorik Man audio.
2017-10-02 22:56:24 +03:00
Lior Halphon
78446f0ed4
Fixed several memory leaks (mostly in Cocoa port debugging utils)
2017-09-27 22:09:26 +03:00
Lior Halphon
7a41a9b417
Refined OAM interrupt timing. Fixes Pinball Deluxe in DMG mode; closes #1 .
2017-09-23 21:08:05 +03:00
Lior Halphon
1804a5c8e6
Updated save struct version
2017-09-23 00:25:21 +03:00
Lior Halphon
67f1566b5e
Minor refinement to sweep
2017-09-23 00:23:02 +03:00
Lior Halphon
e0a6edac35
Setting sweep period to 0 cancels pending calculate event
2017-09-22 14:53:24 +03:00
Lior Halphon
2ffce49e16
Minor bugfixes related to sweeping
2017-09-22 14:39:39 +03:00
Lior Halphon
75db33559a
Current sample index (Channel 1 and 2) is only reset after turning the APU off
2017-09-22 02:25:06 +03:00
Lior Halphon
8f4cd5c412
Corrected behavior for channel 1 and 2 restart
2017-09-22 02:04:29 +03:00
Lior Halphon
882b141478
Fixed dmg_sound-1
2017-09-21 18:32:21 +03:00
Lior Halphon
2ca550273a
Fixed dmg_sound-5
2017-09-21 18:18:10 +03:00
Lior Halphon
d3c15ef6ca
Fixing APU bugs, one at a time: Blargg’s dmg_sound 8.2
2017-09-21 14:52:09 +03:00
Lior Halphon
02ac609f3c
Merge branch 'master' into new_apu
2017-09-20 16:16:05 +03:00
Lior Halphon
be038dc8e7
Refinement to the last fix
2017-09-20 03:08:54 +03:00
Lior Halphon
57e7782ac4
Interrupt servicing is now more accurate. Fixes mooneye-gb’s ie_push (all models) and Pinball Deluxe (!!!) for CGB mode
2017-09-20 02:49:45 +03:00
Lior Halphon
09b7e2fff4
Fixed a bug in scx_delay’s calculation
2017-09-11 23:56:35 +03:00
Lior Halphon
b9bdd6c49c
Merge branch 'master' into new_apu
2017-09-10 02:33:40 +03:00
Lior Halphon
14f267b4fa
Another whoops
2017-09-09 19:31:05 +03:00
Lior Halphon
02841ddde6
Whoops
2017-09-09 16:55:55 +03:00
Lior Halphon
026baddbab
Implemented delayed/future interrupts for DMG hblank interrupt. Restores vblank_stat_intr-GS support.
2017-09-09 13:45:01 +03:00
Lior Halphon
1e90400916
Reimplemented delayed/future interrupts, currently correct only for CGB.
2017-09-09 13:32:12 +03:00
Lior Halphon
742c9e95d3
Updated previous timing improvements to correctly implement double speed behavior
2017-09-08 23:46:38 +03:00
Lior Halphon
e5d354e896
Refined SCX’s effects on PPU timing
2017-09-08 23:02:24 +03:00
Lior Halphon
0f1fa3176f
Refinements to LCD timing (breaks vblank_stat_intr-GS for now)
2017-09-08 12:59:57 +03:00
Lior Halphon
0f643e01b7
Removing the delayed interrupt mechanism, research is not complete enough for implementation
2017-09-08 12:58:35 +03:00
Lior Halphon
ba0e66a5b7
Merge branch 'master' into new_apu
2017-09-04 18:41:13 +03:00
Lior Halphon
72d26c7046
Fixed obscure timer behavior, fixed regression in rapid_toggle.gb.
2017-09-04 18:40:43 +03:00
Lior Halphon
9bde98dede
SCY latching is now correctly emulated, rendering mode timing refined.
2017-09-04 15:45:18 +03:00
Lior Halphon
a1a13c61bf
On CGB, the VBlank and STAT interrupts are “delayed” by one T-cycle (relative to IF) since they’re not aligned to a T-Cycle
2017-09-03 00:41:52 +03:00
Lior Halphon
0532d2a159
A test ROM I wrote seems to contradicts some of AntonioND’s findings regrading PPU timing in CGB mode. CGB mode now behaves like DMG mode until I figure out what caused the difference.
2017-09-02 23:51:02 +03:00
Lior Halphon
9b490396bb
Fixed timing when turning the LCD display on during double speed mode
2017-09-02 23:26:45 +03:00
Lior Halphon
54eb51d8db
Refined timer interrupt timing
2017-09-02 22:08:20 +03:00
Lior Halphon
e7d5cdbb42
Merge branch 'master' into new_apu
2017-08-20 01:37:33 +03:00
Lior Halphon
cbbaf2ee84
Refined Window behavior once more, Fixes #12 (While not breaking Donkey Kong or 007)
2017-08-20 01:34:12 +03:00
Lior Halphon
62878fdc7a
More accurate div-event handling
2017-08-15 22:27:15 +03:00
Lior Halphon
8d011ca4b9
Accuracy improvements (Sweep)
2017-08-15 22:05:20 +03:00
Lior Halphon
d04aaddcbd
Added highpass filter
2017-08-15 21:59:11 +03:00
Lior Halphon
ca59aca4a6
Fixed a bug where writing to NR52 affected channels 1 and 2’s duty pattern in DMG mode. Fixed NR43 being written to NR44 as well.
2017-08-13 20:26:35 +03:00
Lior Halphon
36943866e2
Better click prevention
2017-08-12 23:35:18 +03:00
Lior Halphon
d43daed6a6
Merge branch 'master' into new_apu
2017-08-12 21:43:09 +03:00
Lior Halphon
7df4e56454
KEY1 is only writable in CGB mode; screen should be black is LCD is on while in stop mode.
2017-08-12 21:42:47 +03:00
Lior Halphon
dba7370d6d
Turns out APU signal is inverted. This fixes Perfect Dark’s audio.
2017-08-12 20:47:55 +03:00
Lior Halphon
688991f57f
The volume envelopes and length controls are handled in different phases of the div-divider
2017-08-12 20:17:20 +03:00
Lior Halphon
4b8be255ce
Fixed some channel 4 delays, documented a not currently emulated timing quirk.
2017-08-12 19:50:39 +03:00
Lior Halphon
066efab985
In DMG mode, the length registers are not affected by turning the APU on and off. Why? Why not!
2017-08-11 22:23:03 +03:00
Lior Halphon
0e22ad8eb1
Noise channel support
2017-08-11 17:57:08 +03:00
Lior Halphon
1a8bcd314d
Accuracy improvements to sweeping (Still not complete though, more research needed)
2017-08-10 19:42:23 +03:00
Lior Halphon
ab5611119a
Accuracy improvements, especially to the length control
2017-08-02 21:14:23 +03:00
Lior Halphon
d65c2247e5
Added channel 1 and 2, fixed accuracy issues with channel 3
2017-07-27 23:11:33 +03:00
Lior Halphon
2936f7fa57
Fixed channel 3 counter behavior, verified with new tests. The DIV register ticks the APU at 512Hz.
2017-07-22 19:51:11 +03:00
Lior Halphon
a19ee1e5e0
2MHz audio downscaling support. Implemented NR50 and NR51.
2017-07-21 23:17:48 +03:00
Lior Halphon
baccf336d7
Complete rewrite of the APU. Channel 3 is complete and passes all the relevant tests from blargg’s suite, as well as PCM34-based tests. Actual sound output is basic and limited, though.
2017-07-21 19:06:55 +03:00
nattthebear
eb7492c6c6
Fix undefined behavior (sequence point modification). GCC 4.6.4 compiles the code incorrectly without this fix.
2017-07-16 21:08:07 -04:00
Lior Halphon
c4ccbd5cce
Improved serial interrupt timing, fixes boot_sclk_align.
2017-06-23 17:58:04 +03:00
Lior Halphon
c59272d46d
Misc minor fixes, fixes several Mooneye-GB tests
2017-06-21 20:39:23 +03:00
Lior Halphon
efbc385417
Forgot to amend the last commit, it was broken.
2017-06-21 01:07:11 +03:00
Lior Halphon
aefca34b39
Improved MBC1 emulation. Fixed incorrect error messages.
2017-06-19 19:46:09 +03:00
Lior Halphon
abf7efcc5a
Fixed lcdon_write_timing.
2017-06-18 21:27:07 +03:00
Lior Halphon
86c9f9d89d
Updated SameBoy to pass Mooneye-GB’s lcdon_timing test (on a DMG), as well as refined related CBG behaviors.
2017-06-17 22:17:58 +03:00
Lior Halphon
babcc0a7dc
Added API to load/save states from RAM
2017-06-14 00:23:34 +03:00
Lior Halphon
144d0348dd
Loading a save state creating during the effect of the previous MBC RAM bug will now attempt to fix the (broken) save state.
2017-06-08 23:26:04 +03:00
Lior Halphon
c650337928
Fixed a bug where MBC RAM was no longer accessible after using the GB_reset functions
2017-06-08 22:48:23 +03:00
Lior Halphon
a9475fbdf4
Refined the behavior of the last fix on a DMG.
2017-06-03 20:06:52 +03:00
Lior Halphon
65b0dcb2c5
Fixed a bug where SameBoy freeze for a moment after leaving turbo mode
2017-06-03 17:02:12 +03:00
Lior Halphon
d72807dd67
Implemented LCD first-frame-skip behavior, fixes a visual glitch in Pokémon Pinball
2017-06-03 16:42:42 +03:00
Lior Halphon
48acc09e91
Fixed the first item in the backtrace command
2017-06-03 16:19:39 +03:00
Lior Halphon
22ee6f6ca2
Fixed incorrect calculation in rendering timing. Fixes some of the issues in Prehistorik Man (and doesn’t break GBVideoPlayer)
2017-05-31 23:58:14 +03:00
Lior Halphon
9b89d76b3b
Todo cleanup
2017-05-27 17:30:12 +03:00
Lior Halphon
096bd8ba94
Merge branch 'sdl2'
2017-05-27 12:30:25 +03:00
Lior Halphon
a01ea29cf1
The first entry in the backtrace command is now in the same format as the rest
2017-05-26 20:21:39 +03:00
Lior Halphon
7d88ee00cc
Added side view to Cocoa debugger
2017-05-26 20:16:19 +03:00
Lior Halphon
ece1a11a23
SDL port: GUI-based error reporting, added help dialog (? on macOS, F1 on everything else)
2017-05-25 23:28:48 +03:00
Lior Halphon
4d5dc6a30e
Cleanup
2017-05-24 21:44:43 +03:00
Lior Halphon
bef89c6604
Upgraded Sameboy-SDL to SDL2, fixed Windows build, fixed save states in SDL, added reset and mute to SDL. The SDL port now renders via OpenGL.
2017-05-21 21:45:19 +03:00
Lior Halphon
6dd24e0733
Fixed hung note issue. Closes #7
2017-05-13 17:04:05 +03:00
Lior Halphon
86332d0311
Modifying WX and WY outside of VBlank is now more accurate, but still requires more research. Closes #6 .
2017-05-12 19:33:42 +03:00
Lior Halphon
00623d4eea
- Added audio supersampling support to greatly improve audio quality.
...
- Fixed a bug where low sampling rate or disabled sound resulted in wrong APU behavior.
- Added API to get the current number of pending samples.
- This change broke save state compatibility with v0.8 and older
Closes #8 .
2017-05-12 17:11:55 +03:00
Lior Halphon
b858f17425
Added the GB_run_frame API; closes #5 .
2017-04-25 00:19:10 +03:00
Lior Halphon
22d3510dde
Added LCD command to the debugger
2017-04-22 14:55:17 +03:00
Lior Halphon
c766704267
More accurate FPS capping that tracks time correctly even when the screen is off. Should also support restarting the LCD during blank to increase FPS to 63.
2017-04-21 16:00:53 +03:00
Lior Halphon
fb55c35f87
New APIs, Document.m no longer requires GB_INTERNAL, fixed a bug where the sprite viewer showed incorrect sprites for some CGB exclusive games.
2017-04-19 23:26:39 +03:00
Lior Halphon
3feaeb153e
New turbo related APIs, Quick Look no longer requires GB_INTERNAL
2017-04-19 21:55:58 +03:00
Lior Halphon
a925ef130d
Stabilizing API: New joypad, debugger and reset APIs; internal APIs and direct struct access are no longer available without defining GB_INTERNAL. The SDL port uses the new “public” APIs, as well as most of the non-debug Cocoa code.
2017-04-17 20:16:17 +03:00
Lior Halphon
0b1e2784cd
Fixed saves and save states not working correctly on Windows
2017-03-24 14:39:39 +03:00
Lior Halphon
4bf391b1c8
SCX now effects Mode 3’s length. Fixes hblank_ly_scx_timing-GS
2017-02-25 23:30:31 +02:00
Lior Halphon
55e54d9499
Refinements to DMG STAT write interrupt bug. Fixes stat_irq_blocking on DMG.
2017-02-25 21:56:46 +02:00
Lior Halphon
dbd04f09e8
HBlank HDMA should start instantly when starting during HBlank. Fixes 3-D Ultra Pinball.
2017-02-25 15:42:59 +02:00
Lior Halphon
724153e5ef
Minimal attempt to be compatible with ROMs without correct headers
2017-02-24 15:14:47 +02:00
Lior Halphon
3d99773ddb
Changed how the Cocoa port initializes GB_gameboy_t
2017-02-24 15:14:00 +02:00
Lior Halphon
319857db89
Fixed window behavior
2017-02-24 00:59:07 +02:00
Lior Halphon
a420cfd798
HUC1’s RAM Enable only controls writing
2017-02-23 00:27:08 +02:00
Lior Halphon
c5ce14dad1
Prevent Hblank HDMAs when the LCD is off
2017-02-21 22:33:09 +02:00
Lior Halphon
f4a364c3db
It seems like STAT’s LYC flag should be on while the screen is off.
2017-02-21 21:31:52 +02:00
Lior Halphon
fed3b4f9cd
Symbolicate LDH instructions
2017-02-21 21:31:22 +02:00
Lior Halphon
aca7687edd
Fixed a bug where LYC would be compared to the wrong value in the first cycle of a frame
2017-02-20 22:52:34 +02:00
Lior Halphon
91513ced22
Minor adjustment to LCD timing after enabling it.
2017-02-20 14:20:45 +02:00
Lior Halphon
399e88d5fe
STAT timing and LCD interrupts rewritten, should be more accurate.
2017-02-19 02:22:50 +02:00
Lior Halphon
74d00b84b7
Treat STOP as a 2-byte instruction
2017-02-17 00:21:02 +02:00
Lior Halphon
6b1363e96e
Fixed: Writing to 3XXX in MBC5 before writing to 2XXX no longer switches to the wrong bank.
2017-02-16 23:13:55 +02:00
Lior Halphon
421d3b27f5
Correct emulation of HUC1 banks higher than 0x1F
2017-02-16 21:07:35 +02:00
Lior Halphon
10ab2b4fe0
Fixed typo in the disassembler.
2017-02-16 20:51:32 +02:00
Lior Halphon
3fbc2c5716
DI should not be delayed.
2017-02-15 19:04:53 +02:00
Lior Halphon
4b6fda0cb6
Simplified HDMA and fixed the reading of the HDMA5 register
2017-02-08 21:58:15 +02:00
Lior Halphon
d5c9a52337
Fixed: HDMA registers were not being updated during transfer
2017-02-07 00:24:26 +02:00
Lior Halphon
eed8a06fc0
Several fixes to the help command
2017-02-04 19:00:31 +02:00
Lior Halphon
57c73c8a51
Fixed the help command for the disassemble command
2017-02-04 17:49:22 +02:00
Lior Halphon
517e72f92b
Printer compression support
2017-01-20 23:00:02 +02:00
Lior Halphon
527ae01e0e
Printer API, compression not supported yet
2017-01-13 22:20:11 +02:00
Lior Halphon
cd382ef236
Fixed: Conditional read watchpoints crashed if the expression referred to the 'new' variable. Breakpoint and watchpoint conditions no longer trigger watchpoints.
2017-01-12 23:11:26 +02:00
Lior Halphon
8c14ec3268
An interrupt should also occur when using external clock.
2016-11-13 00:42:05 +02:00
Lior Halphon
22c34e1095
Serial API
2016-11-12 01:58:53 +02:00
Lior Halphon
388fb600de
Added VRAM-debugging APIs, added VRAM viewer to Cocoa Port, fixed uninitialized VRAM, fixed memory viewer crash
2016-10-27 00:23:24 +03:00
Lior Halphon
47aaf44017
Rumble API
2016-10-22 15:37:03 +03:00
Lior Halphon
2d51d13479
Various optimizations
2016-10-22 02:18:29 +03:00
Lior Halphon
1b8832a7ff
Added disassemble command
2016-10-19 23:55:23 +03:00
Lior Halphon
ee51dec20e
Added modifier syntax to debugger: Changed watch's syntax, added format modifier to print/eval, added count option to examine command.
2016-10-19 23:48:46 +03:00
Lior Halphon
edf93abff1
According to Mooneye's test ROMs, this behavior does not happen on a CGB
2016-10-18 00:31:07 +03:00
Lior Halphon
11f8c41305
Basic HUC3 support
2016-10-17 18:51:43 +03:00
Lior Halphon
9ca7540c69
Fixed dereferencing a non-banked address in the debugger
2016-10-14 01:19:39 +03:00
Lior Halphon
fa35869bc4
Implemented DMG STAT-write interrupt bug, fixed Road Rash and Zero no Densetsu (These game do not work on CGBs)
2016-10-11 13:37:43 +03:00
Lior Halphon
76c795a966
Whoops.
2016-10-04 04:01:06 +03:00
Lior Halphon
90b7383df7
The camera's get pixel callback must return the same value for every coordinate until a new photo is taken.
2016-10-03 23:05:47 +03:00
Lior Halphon
2d06599a85
Edge enhancement support
2016-10-03 19:39:20 +03:00
Lior Halphon
8941504863
Refinements to camera support according to AntonioND's docs
2016-10-03 18:24:15 +03:00
Lior Halphon
dd23fffcc0
Proper (I believe) emulation of most GameBoy Camera registers
2016-10-03 14:22:54 +03:00
Lior Halphon
2a84d62187
Forbid reading the image while the camera is busy
2016-10-03 01:29:54 +03:00
Lior Halphon
479a64dca6
Dither using a pattern, closer to actual GameBoy Camera
2016-10-02 23:36:20 +03:00
Lior Halphon
de7c15fc68
Another camera API bugfix
2016-10-02 18:33:33 +03:00
Lior Halphon
9c68ac1419
Camera API bugfix
2016-10-02 18:14:05 +03:00
Lior Halphon
ab5f66795a
Gameboy Camera API
2016-10-02 17:14:58 +03:00
Lior Halphon
b3b041a151
Basic GB Camera support (Emulate only MBC, enough for the ROM to boot).
2016-10-02 03:40:11 +03:00
Lior Halphon
9b71454f07
Basic HUC1 support (Emulated as MBC1)
2016-10-02 02:15:03 +03:00
Lior Halphon
4904277f0d
Corrected behavior of palette registers in DMG mode. This affected a broken Game & Watch Gallery 2 ROM that was previously used in the automation test.
2016-10-01 22:10:44 +03:00
Lior Halphon
80a1b12ae7
Added palette command to the debugger
2016-10-01 22:08:34 +03:00
Lior Halphon
4a2bec239a
MBC2 RAM support was completely broken.
2016-09-30 23:34:06 +03:00
Lior Halphon
5565c096c7
Misc optimizations, especially for the tester
2016-09-30 01:09:44 +03:00
Lior Halphon
3ac3eccebb
Bugfix: Multiple watchpoints did not work correctly and conflicted with breakpoints
2016-09-30 01:09:17 +03:00
Lior Halphon
258500bda3
Merge branch 'master' into rateless_apu
2016-09-23 18:53:38 +03:00
Lior Halphon
52ed2ca55e
Corrected BG enable's behavior (Fixes visual glitch with Krusty's Funhouse)
2016-09-23 18:30:07 +03:00
Lior Halphon
42c01a21b2
Fixed crash when accessing MBC RAM on a cartridge that "has RAM", but it's 0-sized.
2016-09-22 01:52:40 +03:00
Lior Halphon
0991705379
Refined HALT bug behavior, fixed Robocop
2016-09-22 01:51:09 +03:00
Lior Halphon
bc3cab7dfa
Forbid pressing two opposing direction keys. Fixes Pocket Bomberman (U).
2016-09-21 02:15:02 +03:00
Lior Halphon
252439c1af
Fixed a deadlocking race condition that might happen when reading APU memory in the hex viewer
2016-09-21 01:59:43 +03:00
Lior Halphon
c40b86d4a4
Merge branch 'master' into rateless_apu
2016-09-21 00:23:59 +03:00
Lior Halphon
6f2b36cacb
The HALT bug also happens on CGBs, regardless of DMG mode.
2016-09-20 22:59:25 +03:00
Lior Halphon
f88c9d299b
Merge branch 'master' into rateless_apu
2016-09-20 20:05:03 +03:00
Lior Halphon
f46414b7b1
Updated struct version :(
2016-09-20 20:04:38 +03:00
Lior Halphon
37e895352f
Volumes no longer doubles
2016-09-20 19:58:30 +03:00
Lior Halphon
f049284324
Emulate the HALT bug on a DMG
2016-09-20 01:22:21 +03:00
Lior Halphon
1a3a96762b
CPU cleanup
2016-09-18 23:50:04 +03:00
Lior Halphon
ed31358934
Forgot to emulate LCDC bit 0!
2016-09-18 21:00:05 +03:00
Lior Halphon
fe51805ed7
Incorrect constant name
2016-09-16 18:24:38 +03:00
Lior Halphon
f4c5cf20bc
Cleanup of ret_cc
2016-09-16 13:27:32 +03:00
Lior Halphon
71d4ba21f2
Added a tick-counting debugger command
2016-09-16 11:58:31 +03:00
Lior Halphon
4beb946468
Slight APU optimization
2016-09-14 22:49:35 +03:00
Lior Halphon
f274cbc2ec
Read wave form while playing
2016-09-13 17:40:10 +03:00
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