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
Lior Halphon
d67580c964
Oops, that was reversed
2021-01-31 17:16:59 +02:00
Lior Halphon
ef9671010b
More NR43 obscurities
2021-01-24 20:57:46 +02:00
Lior Halphon
8e1e889ce0
Add a TODO
2021-01-16 15:31:09 +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
13a1e9d332
Timing fix
2021-01-16 14:43:32 +02:00
Lior Halphon
0056cc2d61
Revert "Further NR43 write glitch emulation" for now
...
This reverts commit e384707615
.
2021-01-16 14:42:13 +02:00
Lior Halphon
e384707615
Further NR43 write glitch emulation
2021-01-10 17:20:25 +02:00
Lior Halphon
07e76a4ecf
Oh boy, looks like my CGB-B is unique
2021-01-09 23:28:30 +02:00
Lior Halphon
1b3f52e8c0
Improved emulation of NR43 writes on different revisions
2021-01-09 21:21:22 +02:00
Lior Halphon
2aa171e0ea
Better sample alignment on pre-CGB-D models
2021-01-09 16:26:56 +02:00
Lior Halphon
96736fe7c5
Fix false positives in odd-mode detection
2021-01-09 00:59:12 +02:00
Lior Halphon
c0582fd994
More accurate emulation of NR10 writes
2021-01-09 00:31:16 +02:00
Lior Halphon
29a3b18186
Better camera noise on frontends without camera support
2021-01-03 16:52:18 +02:00
Lior Halphon
f9b13c66b1
Emulation of a newly discovered revision specific APU quirk
2021-01-03 13:49:36 +02:00
Lior Halphon
ecace40fb0
Minor APU bug fix
2021-01-02 18:27:21 +02:00
Lior Halphon
a9c337264e
Fix the last remaining APU test
2021-01-02 16:23:34 +02:00
Lior Halphon
b54a72d9b9
Fixing a bug where where zero-shift sweep wouldn't tick
2021-01-02 14:56:45 +02:00
Lior Halphon
5c854dbdca
Interference emulation
2020-12-31 00:07:04 +02:00
Lior Halphon
1d34637bda
Fix it harder
2020-12-26 23:56:26 +02:00
Lior Halphon
47ebc31733
Fixed a bug where the SDL and libretro frontend would not update the border when loading a new ROM
2020-12-26 23:52:41 +02:00
Lior Halphon
544d39f19d
Further improvements to STOP timing
2020-12-26 00:19:48 +02:00
Lior Halphon
4bbd27735f
Fix a regression in speed switch timing, reset DIV on speed switch, better odd-mode detection and avoidance
2020-12-25 20:41:00 +02:00
Lior Halphon
159d9d0348
Color temperature control
2020-12-25 14:17:57 +02:00
Lior Halphon
b5a611c5db
More accurate color correction curves
2020-12-24 23:17:20 +02:00
Lior Halphon
66f62d696c
More window fixes
2020-12-24 20:50:47 +02:00
Lior Halphon
8f64f49c3b
More accurate emulation of window timing, actual correct fix of #123
2020-12-23 23:49:57 +02:00
Lior Halphon
7a3ebb708c
LCDC write timing regression fix
2020-12-12 22:55:14 +02:00
Lior Halphon
db483ce95f
Warn about potential odd-mode triggers
2020-12-12 20:40:35 +02:00
Lior Halphon
555835549a
More accurate pausing behavior, including revision differences
2020-12-12 20:35:18 +02:00
Lior Halphon
770885440f
Minor changes to debugger output
2020-12-12 19:09:53 +02:00
Lior Halphon
4f408eae7c
Whoops
2020-12-12 18:13:55 +02:00
Lior Halphon
dffc12331b
Emulate the delayed NR44 write on the DMG
2020-12-12 18:11:35 +02:00
Lior Halphon
7de6194e28
Redo channel 4's timing accurately, emulate NR43 write quirks
2020-12-12 16:02:25 +02:00
Lior Halphon
1baa0446a9
More sweep improvements
2020-12-01 22:37:13 +02:00
Lior Halphon
13bc8679f9
Correct preservation of NRx1's state on pre-CGB models
2020-12-01 14:18:19 +02:00
Lior Halphon
74cf452a48
Further accuracy improvements to sweep; passes Blargg's APU tests again, this time for real
2020-12-01 14:17:35 +02:00
Lior Halphon
0485124076
Redo channel 1 sweep based on DMG schematics; emulates two newly discovered behaviors and also fixes #309
2020-11-28 19:31:25 +02:00
Lior Halphon
67c0e03f3b
Fix a window bug in CGB mode, fixes #123
2020-11-22 00:21:19 +02:00
Lior Halphon
027cecde24
Added debugger "undo" command. Closes #156
2020-11-21 16:19:58 +02:00
Lior Halphon
1d9ac5ccc3
More accurate IR emulation, simplify API
2020-11-21 00:52:54 +02:00
Lior Halphon
b7f3454763
More accurate emulation of the IR port
2020-11-20 22:12:15 +02:00
Lior Halphon
cd2310f0a7
Wave RAM reads 0xFF while active on AGBs
2020-11-20 19:39:54 +02:00
Lior Halphon
7fdc58a07e
Implement CGB-mode TILE_SEL mixing, fixes cgb-acid-hell and m3_lcdc_tile_sel_change2, closes #308
2020-11-20 16:24:16 +02:00
Lior Halphon
c36bdc22f6
More accurate interrupt emulation
2020-11-14 13:55:39 +02:00
Lior Halphon
60b8978762
Local link cable and infrared emulation in the Cocoa port
2020-11-13 23:07:35 +02:00
Lior Halphon
88198e64f4
Minor bug fixes
2020-11-13 23:02:17 +02:00
Lior Halphon
c35fe8b517
Make `gb.h` compatible with C++ again for bsnes integration. Fixed #300
2020-10-09 16:39:23 +03:00
Lior Halphon
7ff3556bc3
Workboy emulation (Cocoa only)
2020-09-19 19:31:24 +03:00
Lior Halphon
e35c22d405
Fix a potential single byte overflow
2020-09-17 23:47:35 +03:00
Lior Halphon
dab1c1bcfa
Fix RTC drift
2020-08-22 14:10:02 +03:00
Lior Halphon
bce4bfba61
Fix major battery save regressions introduced by the last release, fixes #282
2020-08-06 19:34:57 +03:00
Lior Halphon
3f97b8eaa8
Even more regressions
2020-08-05 02:10:21 +03:00
Lior Halphon
d3664d5da0
Fix more RTC regressions
2020-08-05 01:39:19 +03:00
Lior Halphon
289853445f
Fix long loading times when loading save states with bad local RTC times
2020-08-04 21:32:33 +03:00
Lior Halphon
b0d118f246
Fix broken and regressed MBC3 RTC emulation. Fixes #273 , fixes #276 , fixes #280
2020-08-04 21:32:27 +03:00
Renato Oliveira
ac3b09966c
Fix "Cartrdige" to "Cartridge"
2020-08-01 12:55:53 -03:00
James Larrowe
87d25c0896
Compatibility hacks for old compilers
...
GCC versions below 4.8.1 didn't have __builtin_bswap16, so provide
a suitable replacement.
2020-06-22 20:14:32 +00:00
Lior Halphon
b6b56d0766
Fix various save state compatibility issues between Windows and non-Windows, and a potential crash
2020-06-10 22:46:19 +03:00
Lior Halphon
c07588e3bd
Console auto complete
2020-06-05 02:10:05 +03:00
Lior Halphon
6a3cd371d0
Fix potential memory corruption when execution malformed ROMs
2020-06-03 20:54:06 +03:00
Lior Halphon
08efb46d41
Made the command line debugger output “>” before inputs, added special magic sequence to break the debugger from stdin
2020-05-31 20:32:00 +03:00
Lior Halphon
97e844a0b7
GB_debugger_break is for external APIs, not available on libretro builds
2020-05-31 01:01:06 +03:00
Lior Halphon
5f4aee8ca1
Merge pull request #261 from JL2210/ld-b-b
...
Add ld b, b breakpoint
2020-05-31 00:55:17 +03:00
Lior Halphon
f1ea39f1c6
Spacing
2020-05-31 00:54:49 +03:00
Lior Halphon
fd97e11919
Spacing
2020-05-31 00:54:13 +03:00
James Larrowe
6fcf77c7f6
Make no argument for softbreak be equivalent to "on"
2020-05-30 16:46:17 -04:00
James Larrowe
abdece7737
add debugger command to enable and disable
2020-05-30 16:35:07 -04:00
James Larrowe
f105f28017
Add ld b,b breakpoint
...
Signed-off-by: James Larrowe <larrowe.semaj11@gmail.com>
2020-05-30 15:54:51 -04:00
Lior Halphon
fa7232944f
Better emulation of CGB’s first frame behavior
2020-05-30 01:25:21 +03:00
Lior Halphon
ffa569deeb
Partial emulation of reading VRAM right after mode 3
2020-05-29 23:10:23 +03:00
Lior Halphon
17dfe0dd6a
Fix minor CGB-C regression
2020-05-29 16:30:40 +03:00
Lior Halphon
7af66387de
HuC-3 alarm clock emulation
2020-05-23 14:50:54 +03:00
Lior Halphon
369410f370
Fix HuC-1 regression
2020-05-23 00:09:30 +03:00
Lior Halphon
08ca56eec7
Cleanup
2020-05-23 00:05:43 +03:00
Lior Halphon
ce9114ed55
Fix IR bugs
2020-05-19 01:24:09 +03:00
Lior Halphon
933b622886
Allow more GameShark cheats
2020-05-19 01:24:02 +03:00
Lior Halphon
a588993f28
Add an HuC command required by Pocket Family 2
2020-05-17 00:10:43 +03:00
Lior Halphon
a9023d08c6
Emulate HuC-3’s IR and RTC
2020-05-16 23:27:17 +03:00
Lior Halphon
2cc980755e
HuC1 IR support
2020-05-13 22:21:31 +03:00
Lior Halphon
3cba3e8e27
Emulate CGB-C PCM read glitch, fix a potential noise volume envelope bug
2020-05-10 00:37:52 +03:00
Fredrik Ljungdahl
99ec31dfdc
Allow more than 1 symbol per debug address
2020-05-07 00:12:35 +02:00
Lior Halphon
5a56c3b882
Style fixes
2020-05-01 16:03:26 +03:00
Lior Halphon
4b24178553
Rumble mode selection
2020-04-29 16:50:31 +03:00
Lior Halphon
6448a692e2
Add smart rumble to games without a rumblepak
2020-04-29 16:06:11 +03:00
Lior Halphon
5a14eb93c6
Merge branch 'master' into JoyKit
...
# Conflicts:
# Cocoa/Document.m
# Cocoa/GBView.h
# Cocoa/GBView.m
# Cocoa/joypad.m
# Cocoa/main.m
# Core/display.c
# Core/gb.h
# Core/save_state.c
2020-04-29 15:52:03 +03:00
Lior Halphon
110cedeaac
Even better hueristics
2020-04-25 23:26:17 +03:00
Lior Halphon
d1e3ad7790
Better hueristics for wrong MBC type
2020-04-25 23:18:03 +03:00
Lior Halphon
ca567bee79
Fix Linux build break
2020-04-25 22:54:50 +03:00
Lior Halphon
152924e13f
Add support to the ISX format, including symbols
2020-04-25 22:48:48 +03:00
Lior Halphon
bb5c9f7fc6
Fix libretro build
2020-04-25 15:12:10 +03:00
Lior Halphon
1e7737a239
Limit unroll to GCC 8
2020-04-25 14:46:01 +03:00
Lior Halphon
0cf168f32b
Fixing inconsistent style
2020-04-24 20:37:57 +03:00
Lior Halphon
695c6ee943
Don't crash if a naughty frontend runs the boot ROM without a ROM
2020-04-11 19:21:00 +03:00
Lior Halphon
0abd3b2c46
Dump and load cheats
2020-04-11 19:15:40 +03:00
Lior Halphon
5df45417fa
Console quirks
2020-04-11 18:27:31 +03:00
Lior Halphon
852a6997ed
Add cheats UI to Cocoa
2020-04-11 18:03:10 +03:00
Lior Halphon
337e74352d
Add cheats API, with GameShark and GameGenie import
2020-04-09 22:13:09 +03:00
Lior Halphon
a6567d9ee1
Update old coding style
2020-04-09 14:32:52 +03:00
Lior Halphon
a9cd3f2c11
Fix operator priorities, fix parsing debugger bug
2020-04-09 14:21:07 +03:00
Lior Halphon
92d6cc6394
Use official register names
2020-04-09 02:36:27 +03:00
Lior Halphon
d8e89f5114
Fix banked 16-bit assignments; fixes #245
2020-04-08 19:17:45 +03:00
Lior Halphon
0ed5cf6b38
Proper MBC30 support, more accurate MBC3 emulation. Fixes #244
2020-04-08 19:07:29 +03:00
Lior Halphon
2f1b8e5b57
IME is now available under the registers command
2020-03-27 18:56:47 +03:00
Lior Halphon
1a3572316f
next now skips over halt, closes #233
2020-03-27 17:49:14 +03:00
Lior Halphon
05403d3a56
Fix the Joypad interrupt. Fixes #237
2020-03-27 17:36:55 +03:00
Lior Halphon
4cb56dc76f
Improve MBC2 emulation. Fixes #238
2020-03-27 16:35:36 +03:00
Lior Halphon
5ecb845662
Add accurate frame blending option
2020-03-26 20:54:18 +02:00
Lior Halphon
e94e7cc501
Add another color correction mode
2020-03-25 20:33:13 +02:00
Lior Halphon
84e8e45b7b
Implement ATTR_CHR
2020-03-13 13:35:54 +02:00
Lior Halphon
e7f6ac8828
Do the same for SGB
2020-03-06 21:19:53 +02:00
Lior Halphon
34cf0f558d
It's more reasonable to do it this way
2020-03-06 18:56:51 +02:00
Lior Halphon
c6f9d05124
Emulate LCD-PPU horizontal desync on DMGs
2020-03-06 14:41:13 +02:00
Lior Halphon
4d2f56c42d
Minor bug fix
2020-03-04 23:43:05 +02:00
Lior Halphon
1c7351fc85
Missing braces
2020-03-04 23:34:36 +02:00
Lior Halphon
409ab2a6d4
Accurate emulation of tilemap advancement timings
2020-03-03 02:21:19 +02:00
Lior Halphon
e846f4f3b0
Hacky, but correct emulation of WX=166
2020-03-01 23:58:28 +02:00
Lior Halphon
2a8b26d5e6
Add TODO
2020-03-01 00:23:50 +02:00
Lior Halphon
b7194402eb
Accurately emulate Window X = Object X
2020-03-01 00:17:45 +02:00
Lior Halphon
5ca602fbd2
WX=0 emulation
2020-02-29 18:26:16 +02:00
Lior Halphon
39b999a68b
Emulate the FIFO insertion glitch (WX variant)
2020-02-29 17:06:08 +02:00
Lior Halphon
955860b463
Get rid of the FIFO pause flags
2020-02-28 22:36:51 +02:00
Lior Halphon
e29246fd91
Window tile is reset on WX trigger
2020-02-28 18:28:47 +02:00
Lior Halphon
2a8f15c68b
The fetcher pushes pixels to the FIFO as soon as it's empty
2020-02-28 18:10:09 +02:00
Lior Halphon
60f01fe947
Merge branch 'master' into ppu_window
2020-02-28 15:21:38 +02:00
Lior Halphon
0c716bd970
More accurate timing emulation of window-objects interaction
2020-02-27 23:42:16 +02:00
Jakub Kądziołka
67d5a53503
Spell "length" properly
2020-02-27 18:11:10 +01:00
Lior Halphon
89303ab046
WX access conflicts
2020-02-27 00:12:42 +02:00
Lior Halphon
9c7a8fdb1b
WY is tested every cycle
2020-02-26 22:24:08 +02:00
Lior Halphon
b37a0b285a
Window Y still advances if WX=166
2020-02-24 23:59:18 +02:00
Lior Halphon
7456beb7b9
Better emulation of negative WX positions
2020-02-24 21:23:06 +02:00
Lior Halphon
248e7bc332
Timing improvements
2020-02-24 20:46:00 +02:00
Lior Halphon
25b51362e9
Safety first
2020-02-24 00:33:45 +02:00
Lior Halphon
3864ff37e1
Timing improvements
2020-02-24 00:32:47 +02:00
Lior Halphon
c22611c701
Minor bugfix
2020-02-23 23:48:08 +02:00
Lior Halphon
c0ba898ef2
Basic window implementation
2020-02-23 23:16:45 +02:00
Lior Halphon
2be58439bf
Starting over – removing all window related code
2020-02-23 00:38:47 +02:00
Lior Halphon
d8282fe3c9
Please pretend the last commit never happened
2020-02-22 00:45:52 +02:00
Lior Halphon
39b88d546b
The upper bits of SCX might mid-line
2020-02-21 21:59:03 +02:00
Lior Halphon
ea2f32b255
The fetcher state machine advances even while handling an object
2020-02-21 21:44:44 +02:00
Lior Halphon
f86e682d2c
Fix sign
2020-02-21 17:22:57 +02:00
Lior Halphon
8409d3bcfb
Emulate changing sprite height mid-fetch
2020-02-21 16:43:51 +02:00
Lior Halphon
7d51ba3d97
More fixes, SGB emulation of the same quirk
2020-02-21 16:16:02 +02:00
Lior Halphon
91404edd13
Disgusting hacks to emulate disabling objects while an object is being fetched
2020-02-21 15:14:33 +02:00
Lior Halphon
56118d2a67
Move improvements to LCDC conflicts
2020-02-21 14:22:25 +02:00
Lior Halphon
a8f63aea3c
Emulate DMG LCDC write conflicts correctly. This might vary between individual units.
2020-02-21 02:55:07 +02:00
Lior Halphon
0290e70445
Improvements to AGB color correction
2020-02-17 23:05:11 +02:00
Lior Halphon
bec09a012c
More accurate emulation of STOP mode
2020-02-15 19:21:43 +02:00
Lior Halphon
08eb2f3d98
Correct emulation of FF6C (Turns out it controls object priority)
2020-02-15 15:32:06 +02:00
Lior Halphon
f550360f1a
More accurate CGB color correction curve
2020-02-15 13:21:21 +02:00
Lior Halphon
8b7805b95d
Hit ^T
2020-02-10 20:19:37 +02:00
Lior Halphon
804b9bec63
Fixed a bug where HDMA begins in the middle of an instruction while cycles are pending to be flushed. Fixes #230
2020-02-10 00:21:33 +02:00
Lior Halphon
103caa56e1
Allow displaying borders outside of SGB emulation, including borrowing SGB border. Allow not displaying SGB borders. (Todo: libretro support)
2020-02-08 13:28:46 +02:00
Lior Halphon
b806ae4e82
Fix #228
2020-02-01 23:36:16 +02:00
Lior Halphon
38ee020653
Fixed a regression bug that made the first CGB frame blank instead of repeated.
2020-01-31 01:29:59 +02:00
Lior Halphon
48d3504de7
Let the core handle boot ROM selection
2020-01-29 20:29:30 +02:00
Lior Halphon
163a5ea20c
Add DMG color palettes (Cocoa)
2020-01-29 14:19:11 +02:00
Lior Halphon
0737655753
Merge branch 'master' into JoyKit
2020-01-03 23:42:25 +02:00
Lior Halphon
95af00a752
speling is veri difikult
2020-01-03 21:11:45 +02:00
Lior Halphon
bd9ac204c2
Allow SameBoy to compile on 4-byte-bools platforms
2019-11-20 22:40:03 +02:00
Lior Halphon
31609319de
Fix the set_joyp API
2019-11-09 14:45:38 +02:00
Lior Halphon
c802361800
Whoops, this function was missing
2019-11-08 16:14:16 +02:00
Lior Halphon
143e1f88a8
There’s not reason it must be an integer
2019-11-03 22:02:33 +02:00
Lior Halphon
0ece21bca7
Replace the SDL-derived controller support with my own JoyKit framework. Adds rumble support, LED support, better manual and automatic configurations, analog speed controls.
2019-10-19 19:26:04 +03:00
Lior Halphon
dee29c118c
Added GB_set_sample_rate_by_clocks API, split SGB_NO_SFC into PAL and NTSC; now they report the correct clock rate.
2019-10-08 15:10:24 +03:00
Lior Halphon
ca370eee7e
A bit more accurate AGB audio rendering
2019-10-01 18:50:59 +03:00
Lior Halphon
ac418b9de1
Pass channel_1_freq_change_timing
2019-09-30 00:09:25 +03:00
Lior Halphon
652e52df3d
Pass the SGB multiplayer tests
2019-09-14 12:31:52 +03:00
Lior Halphon
851dbd3ccd
SGB and AGB color correction
2019-09-13 17:13:21 +03:00
Lior Halphon
4fcc921b46
Fix SGB multiplayer, improve multiplayer accuracy
2019-09-13 17:10:58 +03:00
Lior Halphon
eaa1c1cd4a
Merge bsnes’s changes
2019-08-16 17:38:43 +03:00
Lior Halphon
e3672e8293
Emulate built in SGB palettes
2019-07-20 16:10:24 +03:00
Lior Halphon
8c1f76a594
Fix HLE SGB
2019-07-19 20:37:58 +03:00
Lior Halphon
ffb9f1b134
Fix HLE SGB
2019-07-19 20:34:26 +03:00
Lior Halphon
e634019ac9
Fix CGB emulation
2019-07-19 20:27:53 +03:00
Lior Halphon
4f9c8e9374
Match the HLE timings to the LLE timings
2019-07-19 20:19:09 +03:00
Lior Halphon
ea7dec4e88
Merge branch 'master' into bsnes_integration
2019-07-19 15:51:10 +03:00
Lior Halphon
33198fc7b7
Give SGB its own conflict map
2019-07-19 15:50:49 +03:00
Lior Halphon
df7f7d8171
Fix silly desync inaccuracy
2019-07-18 22:55:11 +03:00
Lior Halphon
772289c545
Fix a silly bug
2019-07-18 00:53:11 +03:00
Lior Halphon
9efd20d7cd
Revert "Silence some GCC warnings"
...
This reverts commit 11a9f1df21
.
2019-07-16 23:33:07 +03:00
Lior Halphon
11a9f1df21
Silence some GCC warnings
2019-07-16 23:27:35 +03:00
Lior Halphon
9ba6915c85
ICD JOYP write API
2019-07-16 21:42:57 +03:00
Lior Halphon
2d7f54a775
Load ROM from buffer API
2019-07-16 21:04:29 +03:00
Lior Halphon
ce9ce07817
Make the ICD APIs pixel based
2019-07-16 20:44:27 +03:00
Lior Halphon
346e499602
ICD APIs
2019-07-15 23:02:58 +03:00
Lior Halphon
e1873ad2ec
Add JOYP write callback API
2019-07-15 22:35:21 +03:00
Lior Halphon
2bfe922650
Allow emulating an SGB without SFC HLE
2019-07-15 20:47:16 +03:00
Lior Halphon
9f7255cd23
Make the automation results more consistent across revisions, and making use of this change as a chance to add color correction to the automation
2019-07-13 20:29:11 +03:00
Lior Halphon
8c8d5afe62
Make the debugger compatible with more sym formats
2019-07-13 17:17:55 +03:00
Lior Halphon
f55c254959
Fixed a regression that made ly_lyc_0_write and ly_lyc_write fail
2019-07-12 02:18:25 +03:00
Lior Halphon
4541efe86a
Fixed a bug that prevented writing to the wave RAM, as well as a bug where the wave RAM was treated as zeros despite not being zero’d out
2019-06-29 14:03:42 +03:00
Lior Halphon
36a87f96bd
Formatting
2019-06-21 16:58:56 +03:00
Lior Halphon
24b58da8c6
Minor text change
2019-06-21 14:18:48 +03:00
Lior Halphon
7c61445fe3
Fixed out of bound read in GB_load_state_from_buffer. Closes #104
2019-06-21 03:04:38 +03:00
Lior Halphon
72b1fe0500
Minor Fixes™
2019-06-21 01:03:52 +03:00
Lior Halphon
50a6a3e35c
Fix libretro SGB1 FPS, fix un/serialization memory corruptions in libretro
2019-06-19 23:49:43 +03:00
Lior Halphon
91b0e491c5
Increase the minimum required cycles for a sync, fix SGB jingle audio
2019-06-19 22:44:54 +03:00
Lior Halphon
431f1f8199
Remove redundant calls to display_vblank on non-SGB models and in irregular FPS scenarios. Affects #161
2019-06-18 23:16:28 +03:00
Lior Halphon
e268efefef
Redesign and reimplement the audio API, let the frontends handle more stuff. Probably affects #161
2019-06-15 23:22:27 +03:00
Lior Halphon
8b7922b679
Fix #144 by ignored malformed commands with 0 length
2019-06-15 03:42:53 +03:00
Lior Halphon
66b814a226
Don’t use libc’s random/rand
2019-06-14 16:49:41 +03:00
Lior Halphon
843683a492
Randomize everything!
2019-06-09 18:14:32 +03:00
Lior Halphon
49d8a5cb44
Fixed the parsing of comparison operators as well as their priorities. Fixes #155
2019-06-08 16:08:07 +03:00
Lior Halphon
0da2930109
Fix #175
2019-06-08 14:35:52 +03:00
Lior Halphon
274760746e
Fix #165
2019-06-07 19:18:07 +03:00
Lior Halphon
9d8adbb581
This is not correct, this bug only affects the PCM registers and not actual output. Currently not emulated at all.
2019-06-07 18:37:19 +03:00
Lior Halphon
2f9de4942c
Increase input polling frequency in the Cocoa and SDL frontends, should make inputs look less synthetic and potentially reduce input lag
2019-06-07 18:27:25 +03:00
Lior Halphon
64879f5b02
Accurate emulation of (most aspects of) stop mode
2019-06-07 13:53:50 +03:00
Lior Halphon
4c34e0a6e0
Turns out the AGB inverts Channel 3’s output
2019-06-01 18:22:58 +03:00
Lior Halphon
6888047102
Show flags in the registers command
2019-06-01 16:42:17 +03:00
Lior Halphon
cdc36f329e
Added open dialog to the SDL GUI, misc fixes
2019-06-01 14:29:46 +03:00
Lior Halphon
1de34b12ac
Merge pull request #181 from ISSOtm/master
...
Fix sample lengths for CH1, 2 and 4
2019-05-25 21:09:47 +03:00
Lior Halphon
85c43fa81f
Fixed Channel 3’s first sample behavior, update analog characteristic to more realistic values. Fixes #177
2019-05-25 19:12:09 +03:00
Lior Halphon
3e724afb0a
Basic SGB support in the SDL port
2019-05-18 18:45:31 +03:00
ISSOtm
ec5d1b7b88
Fix sample lengths for CH1, 2 and 4
2019-05-18 03:01:20 +02:00
Lior Halphon
3ee2c64899
Make the apu command a bit safer
2019-05-17 22:03:23 +03:00
Lior Halphon
6648a0a84d
Minor adjustments and style fixes to the new APU debug functions
2019-05-17 20:48:49 +03:00
Lior Halphon
280467ad38
Merge branch 'master' into master
2019-05-17 20:31:52 +03:00
Lior Halphon
91eeb4d9d5
Emulate AGB audio mixing
2019-05-17 00:08:34 +03:00
ISSOtm
40f83c8f25
Add APU-related debugger commands
...
This change includes making one of the APU functions public
2019-05-15 12:45:51 +02:00
Lior Halphon
ddc4e7484b
Fix and restore optimization
2019-05-10 22:29:30 +03:00
Lior Halphon
06670fc970
Fix #172 . Allow unroll optimizations when compiling with GCC.
2019-05-10 21:51:11 +03:00
orbea
2bded45397
Disable pragmas for gcc.
2019-05-09 10:55:31 -07:00
Lior Halphon
82ce597573
Line breaks
2019-04-12 20:30:02 +03:00
Lior Halphon
05cd81b77c
Implemented jump-to breakpoints
2019-04-12 20:29:43 +03:00
Lior Halphon
7242ddae64
speling is difikult
2019-03-16 20:56:22 +02:00
Lior Halphon
c342663200
Emulate serial bit shifting, update the serial API to use bits instead of bytes, update printer emulation and libretro to use the new API
2019-03-15 14:36:10 +02:00
Lior Halphon
0b03b61564
Render the first line 0, as required for SGB emulation
2019-02-16 04:19:16 +02:00
Lior Halphon
9d0aadb83f
Emulate missing Vreset signal (SGB only for now) and ICD2 desyncing
2019-02-15 17:04:48 +02:00
Lior Halphon
dde06e7cae
Work around a crashing race condition, proper fix needed
2019-01-28 20:56:37 +02:00
Lior Halphon
b996ed9220
Writing to BGPD/OBPD while it’s blocked still increases BGPI/OBPI if needed. Fixes #145
2019-01-19 23:37:44 +02:00
Lior Halphon
73a54049d2
Accurate PPU access timings
2019-01-19 19:32:26 +02:00
Lior Halphon
4536581a6e
Fixed a bug where modifying RTC data would corrupt cartridge RAM data. Fixes #136
2019-01-18 02:36:14 +02:00
Lior Halphon
312478e509
CGB palettes are not accessible during Mode 3, closes #84
2019-01-14 22:22:46 +02:00
Lior Halphon
879d3b607d
Removed verified TODO
2019-01-14 20:32:52 +02:00
Lior Halphon
ba5c07bed9
Correctly emulate speed switch timing
2019-01-13 01:09:41 +02:00
Lior Halphon
c74b39e712
The CPU core of the Game Boy is (most likely) called SM83
2019-01-12 00:42:16 +02:00
Lior Halphon
21d2a59a5f
Fixed a very rare edge case where an interrupt occurs when SP=FF11
2019-01-12 00:39:24 +02:00
Lior Halphon
4e2b5bb336
Fix the GB_run_frame API in SGB mode
2019-01-11 21:53:21 +02:00
Lior Halphon
7b36ee10a4
Merge branch 'master' into sgb
2019-01-05 19:00:22 +02:00
Lior Halphon
ae959cd878
ATTR_LIN and ATTR_DIV
2019-01-05 18:59:50 +02:00
Lior Halphon
4051f190a5
Cache cycles_per_sample to avoid FP arithmetic
2019-01-01 00:42:40 +02:00
Lior Halphon
9d947c7ce6
Unroll some APU loops
2018-12-31 23:09:56 +02:00
Lior Halphon
af0430dbc5
Unroll some loops in PPU code, more efficient timer handling
2018-12-31 22:06:20 +02:00
Lior Halphon
21eb96a2f5
Joypad multiplayer support (Cocoa)
2018-12-15 18:55:41 +02:00
Lior Halphon
612cd07fb3
Fixed emulation of echo RAM
2018-12-12 23:44:00 +02:00
Lior Halphon
ea09dfc888
Fixed multiplayer SGB mode
2018-12-04 23:46:30 +02:00
Lior Halphon
b1a2e45168
Improvements to the SGB animation
2018-12-01 13:39:43 +02:00
Lior Halphon
6d28e74667
Color 0 must always be shared
2018-11-24 15:53:53 +02:00
Lior Halphon
4b93f89763
Correct emulation of color masks
2018-11-24 15:42:54 +02:00
Lior Halphon
389d8ae045
Halt the CPU while the SGB animation is playing
2018-11-24 13:34:07 +02:00
Lior Halphon
2d6d1e6325
SGB boot animation
2018-11-24 13:21:00 +02:00
Lior Halphon
b3166135eb
Clean up that crashing mess I made
2018-11-23 19:59:15 +02:00
Lior Halphon
558f9b9bae
Updated SGB border, add “2” to SGB2
2018-11-23 14:16:48 +02:00
Lior Halphon
67d52b78b6
Handling interrupted SGB commands
2018-11-17 12:26:07 +02:00
Lior Halphon
af5ef50cf9
Fixing default border
2018-11-17 01:39:38 +02:00
Lior Halphon
deb5e21842
More colorization commands
2018-11-17 00:44:18 +02:00
Lior Halphon
b698ce5d95
Correctly emulate SGB border color 0
2018-11-17 00:44:07 +02:00
Lior Halphon
e5e7ce8203
Basic colorization
2018-11-16 22:05:35 +02:00
Lior Halphon
d42cbcdee2
Palette transfer functions
2018-11-16 19:11:21 +02:00
Lior Halphon
91a3091b2e
Build fix
2018-11-16 17:41:23 +02:00
Lior Halphon
2710939e1e
That should be an inc file
2018-11-16 17:38:53 +02:00
Lior Halphon
595907cae2
Border fade animation
2018-11-16 17:36:21 +02:00
Lior Halphon
69ac36cca1
Add default SGB border
2018-11-16 17:22:57 +02:00
Lior Halphon
398148f7ea
Basic SGB border support
2018-11-16 16:04:40 +02:00
Lior Halphon
382d9f8898
MASK_EN support
2018-11-16 12:42:52 +02:00
Lior Halphon
2f2b792edf
SGB save states
2018-11-16 01:53:01 +02:00
Lior Halphon
634a54c046
SGB resolution support (Cocoa only so far)
2018-11-15 00:21:21 +02:00
Lior Halphon
6ba5cfbeef
Support for multi-packet SGB commands
2018-11-13 23:45:26 +02:00
Lior Halphon
7735d638c6
Multiplayer SGB APIs/SGB detection
2018-11-12 00:37:06 +02:00
Lior Halphon
5c581651ce
Handle the SGB header commands, disable SGB functions if needed.
2018-11-11 22:50:00 +02:00
Lior Halphon
44891d5c4a
Initial code to support SGB, command “parsing”, replacement SGB boot ROM
2018-11-11 01:16:32 +02:00
Lior Halphon
94136f5741
Adjust DAC attributes to fix LADX’s crackling audio ( Fixes #125 ) while keeping Cannon Fodder’s buzzing reasonable (Proper audio measurements still required)
2018-11-10 19:14:18 +02:00
Lior Halphon
a39b314378
Fixed silly APU regression (Noise volume envelope ran too fast) Fixes #121
2018-11-03 14:37:19 +02:00
Lior Halphon
c9d6a1381f
Cross emulator compatibility with RTC saves
2018-11-03 01:31:14 +02:00
Lior Halphon
64922fff4b
Fixed a bug where channels 1 and 2 would start playing earlier than they should have if NRx4 was written to twice. Fixes #86 .
2018-10-29 00:44:43 +02:00
Lior Halphon
3035f43428
Emulation of DAC charging, Fixes #46 , #85 , #88 and #89
2018-10-19 23:53:01 +03:00
Lior Halphon
4276549acd
Research notes TODOs
2018-10-19 01:02:27 +03:00
Lior Halphon
324201f336
Correct emulation of switching the DACs on and off. Fixes #100 and #87
2018-10-17 20:35:29 +03:00
Lior Halphon
e9b78b6370
Merge pull request #114 from RobLoach/patch-2
...
Fix control reaches end of non-void function
2018-10-12 17:10:11 +03:00
Rob Loach
2da7a3f7fb
Fix the return value of read_lvalue to be 0
2018-10-12 10:09:30 -04:00
Rob Loach
e834d32b8e
Update switch to just return at the end instead
2018-10-12 09:41:25 -04:00
Rob Loach
ec41e87cf1
Update logic behind params
2018-10-11 22:39:43 -04:00
Rob Loach
b8825127fd
Fix parentheses around ‘+’ in operand of ‘&’
...
```
Core/z80_cpu.c: In function ‘add_hl_rr’:
Core/z80_cpu.c:341:31: error: suggest parentheses around ‘+’ in operand of ‘&’ [-Werror=parentheses]
if ( ((unsigned long) hl) + ((unsigned long) rr) & 0x10000) {
~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
```
2018-10-11 22:37:26 -04:00
Rob Loach
f4ee044347
Fix control reaches end of non-void function
...
This change makes it so that there is a return value when a kind doens't match. Allows -Werror=return-type to pass.
```
Core/debugger.c: In function ‘read_lvalue’:
Core/debugger.c:239:1: error: control reaches end of non-void function [-Werror=return-type]
}
```
2018-10-11 22:17:16 -04:00
Lior Halphon
11c148c851
Starting G/HDMA directly takes one more M-cycle (More research required)
2018-09-15 00:48:31 +03:00
Lior Halphon
dbc338a887
Compensate for prefetch in DIV’s initial value
2018-09-15 00:47:26 +03:00
Lior Halphon
ec0a879a93
Correct emulation of enabling and disabling the volume envelope. Correct emulation of a glitch where the volume envelope ticks when it usually wouldn’t.
2018-09-10 16:59:59 +03:00
Lior Halphon
3151821e6d
Fixed minor APU regression (Channels 1 and 2 were given no delay under certain circumstances)
2018-09-09 12:50:55 +03:00
Maximilian Mader
a36dd791ec
Rewrite the DAA instruction
2018-07-22 18:37:34 +02:00
Lior Halphon
f7b882f0e8
Whoops
2018-07-22 02:10:26 +03:00
Lior Halphon
b7426f93c0
Randomize object palettes. Slightly more accurate emulation of FF4C.
2018-07-20 23:23:47 +03:00
Lior Halphon
ce80acc818
Fixed HDMA timing )But still not verified)
2018-07-20 12:34:52 +03:00
Lior Halphon
b1cc55b786
Turns out Left/Right audio channels were flipped
2018-07-19 20:38:11 +03:00
Lior Halphon
c66b6fbafc
Fixed an edge case with DAC discharge emulation
2018-07-16 23:08:25 +03:00
Lior Halphon
2e9e3424ec
Document some revision differences
2018-07-14 21:52:54 +03:00
Lior Halphon
0145b790a3
Merge branch 'v0.11.x'
2018-07-11 20:08:33 +03:00
Lior Halphon
5f58323c01
Attempt to improve audio quality on frontend with big audio buffers
2018-07-10 21:33:03 +03:00
Lior Halphon
dc5cb71c22
Emulate CGB-C’s quirky LFSR function
2018-07-04 21:55:12 +03:00
Lior Halphon
f3437d7cc0
Added todo
2018-07-03 23:47:50 +03:00
Lior Halphon
b7b35c9b59
CGB-C timing
2018-07-03 22:25:09 +03:00
Lior Halphon
0a78f735d3
Fetcher Y is not cached on CGB-C
2018-07-03 22:14:53 +03:00
Lior Halphon
18ae18a95c
LYC bit on CGB-C
2018-07-03 21:56:32 +03:00
Lior Halphon
a7aabca618
Starting to add CGB-C support
2018-07-03 21:43:46 +03:00
Lior Halphon
47a74cb6c3
Randomize initial RAM values. Closes #82
2018-06-30 16:53:28 +03:00
Lior Halphon
2791775c5d
Improvements to the `lcd` debugger command
2018-06-22 18:38:54 +03:00
Lior Halphon
6a7c084177
Fixed window regression
2018-06-18 21:57:01 +03:00
Lior Halphon
d81c23cb16
Fixed HDMA regression
2018-06-16 23:52:24 +03:00
Lior Halphon
45c73e0175
Replaced the is_cgb bool with a more future compatible model enum. Removed the GB_init_cgb API and replaced it with an extended GB_init and GB_switch_model_and_reset APIs that now receive a model parameter. Increased the struct version.
2018-06-16 13:59:33 +03:00
Lior Halphon
d95ad1ca54
SWAP was incorrectly disassembled as RLC
2018-06-09 15:39:40 +03:00
Lior Halphon
38c0cb3323
Typo
2018-06-09 15:12:42 +03:00
Lior Halphon
f64da1864f
APU glitch: When turning the APU on while DIV's bit 4 (or 5 in double speed mode), the first DIV/APU event is skipped.
2018-06-09 15:11:20 +03:00
Lior Halphon
593cb7c107
Pixel accurate emulation of Prehistorik Man on a CGB-CPU-E
2018-06-08 18:44:03 +03:00
Lior Halphon
ca01ff6f79
Finally, perfect emulation of the STAT write bug.
2018-06-08 17:16:15 +03:00
Lior Halphon
127324d2d6
Fixed regression involving rendering a window with negative X position. Closes #75
2018-06-07 23:08:46 +03:00
Lior Halphon
f1dfa2a1bc
More sensible implementation of the STAT interrupt.
2018-06-04 02:07:38 +03:00
Lior Halphon
0481ff9af5
Whoops
2018-06-04 01:52:24 +03:00
Lior Halphon
8721a48206
Fixed incorrect double speed behavior.
2018-06-03 00:36:05 +03:00
Lior Halphon
7003e31b7e
Fixed a regression with STAT blocking.
2018-06-02 04:00:10 +03:00
Lior Halphon
80c92daacd
Include cleanup ( #73 )
2018-05-27 19:30:23 +03:00
Lior Halphon
6532aef089
Correct emulation of the DMG stat write bug
2018-05-26 18:06:40 +03:00
Lior Halphon
9693b2de6a
Refined the STAT bug behavior. Still not perfect.
2018-05-26 17:06:49 +03:00
Lior Halphon
855ffb490a
A HBlank interrupt cannot occur in the last M-cycle of HBlank. Correct emulation of STAT access conflicts on the CGB (Test: CPU-E, single speed only). Fixes a minor graphical glitch in Pokémon Puzzle Challenge.
2018-05-25 23:42:36 +03:00
Lior Halphon
249acb04cc
Verified some timings on a DMG. Fixed palette write conflict timing (Although the fix kind of implies time traveling). Closes #65
2018-05-16 00:59:11 +03:00
Lior Halphon
562b43a7c5
Notes about the DMG wave-ram glitch
2018-05-15 23:02:07 +03:00
Lior Halphon
7df571d42f
Less strict matching for `delete` and `unwatch`. Fixes #71
2018-05-13 23:17:23 +03:00
Lior Halphon
1fcde88d8a
Improved accuracy of the halt bug
2018-05-12 22:13:52 +03:00
Lior Halphon
713dc02e46
A bit tacky, but T-cycle accurate emulation of LYC write conflicts on the CGB. Only single speed mode verified. Closes #54
2018-05-11 12:38:55 +03:00
Lior Halphon
af3554c1d1
More accurate emulation of the LYC register and interrupt. (Still not perfect on a CGB)
2018-04-27 13:40:39 +03:00
Lior Halphon
0f8385a798
Refined line 153 behavior on a CGB. Verified on CGB-E.
2018-04-25 00:08:06 +03:00
Lior Halphon
be9df4d658
Added mechanism to handle MMIO read/write conflicts. Fixes #65
2018-04-14 17:57:00 +03:00
Lior Halphon
2c6f7906c5
Make multi-byte opcodes trigger the OAM bug when they increase PC
2018-04-14 15:32:55 +03:00
Lior Halphon
84aa06aba5
Clean up OAM bug code
2018-04-14 13:35:16 +03:00
Lior Halphon
d667d87bbe
Refactor CPU code so handling access conflicts is possible
2018-04-14 13:25:55 +03:00
Lior Halphon
f1ec42d4ba
H/GDMA was 4 times faster than it should have been. Made it also more accurate. Fixes #56
2018-04-13 14:41:39 +03:00
orbea
10dc12c502
Core: Fix libretro builds
2018-04-11 14:21:46 -07:00
Lior Halphon
89094950f8
Correct emulation of mapping both button sets. Fixes #60
2018-04-07 16:45:31 +03:00
Lior Halphon
5be2b3db29
It appears that OAM DMA blocks PPU access to OAM
2018-04-07 13:59:36 +03:00
Lior Halphon
0725b008be
Further simplifications
2018-04-07 13:02:53 +03:00
Lior Halphon
097b768127
Update comments
2018-04-07 03:36:47 +03:00
Lior Halphon
9ce028056a
Cleanup
2018-04-07 03:26:10 +03:00
Lior Halphon
fed2556fc3
More reasonable implementation of sprite timings
2018-04-07 03:00:26 +03:00
Lior Halphon
0751eae90b
Moved the fetcher state machine to another function
2018-04-06 19:29:49 +03:00
Lior Halphon
0461fb5b2a
Simplified FIFO logic
2018-04-06 19:11:48 +03:00
Lior Halphon
cb01259073
Fixed #61
2018-04-06 11:37:49 +03:00
Lior Halphon
0c86ff1ee4
More CGB revision quirks
2018-04-06 04:00:37 +03:00
Lior Halphon
a6ed2029b7
New information about PPU changes between CGB-B and CGB-E
2018-04-06 03:19:47 +03:00
Lior Halphon
cc95c89d3c
Surprise! The CGB has a 16-bit VRAM data bus
2018-04-05 16:15:51 +03:00
Lior Halphon
9aadc80f75
Implemented some obscure PPU rendering quirks, verified some timings
2018-04-05 15:33:21 +03:00
Lior Halphon
d785e45308
More accurate emulation of LCDC.0
2018-04-05 12:27:01 +03:00
Lior Halphon
d8e0683c35
Fixed a bug where skipping a sprite by modifying LCDC flags mid-scanline will disable sprites for the rest of the scalene.
2018-04-05 00:51:37 +03:00
Lior Halphon
5d63892949
T-cycle accurate timing of the extra OAM interrupt. Fixes vblank_stat_intr-GS, related to #54
2018-04-03 01:43:24 +03:00
Lior Halphon
ba07e7ba85
Fixed a bug where 0:$dxxx reads/writes from the wrong bank in CGB mode. Made sure symbols are reset after reloading a sym file.
2018-04-02 19:57:39 +03:00
Lior Halphon
e163026ca9
The STAT bug does not occur during the glitched mode 0
2018-04-02 01:05:32 +03:00
Lior Halphon
9339a6027f
Slight refinement to the last fix
2018-04-01 22:20:26 +03:00
Lior Halphon
ec64c041ab
The OAM interrupt is internally implemented differently from the other 3. Fixed the stat_write_if tests, relates to #54
2018-04-01 21:45:56 +03:00
Lior Halphon
0d0d9ccdae
Fixed a timer regression, fixes timer_if in DMG mode. Relates to #54
2018-03-31 15:52:31 +03:00
Lior Halphon
73dc3560a5
Mode 0 interrupts do not occur in the glitched mode 0 of the first line 0. The extra OAM interrupt bug also affects DMG.
2018-03-31 13:18:02 +03:00
Lior Halphon
0a2d6e6dcb
Fixed DMG timing regression
2018-03-31 12:21:34 +03:00
Lior Halphon
9811dceca1
Emulate another OAM timing quirk; a sprite at x = 0 has extra penalty if SCX is not 0. Fixes intr_2_mode0_timing_sprites_scx*_nops, affects #54
2018-03-30 17:06:27 +03:00
Lior Halphon
2c44ffbe39
More accurate fetcher penalty emulation, fixed intr_2_mode0_timing_sprites_nops, affects #54
2018-03-30 02:53:49 +03:00
Lior Halphon
c7ca786e77
Attempt to fix building using MINGW. Affects #55
2018-03-29 21:27:19 +03:00
Lior Halphon
a9fbbd3894
Merge branch 'master' of https://github.com/LIJI32/SameBoy
2018-03-29 21:07:04 +03:00
Lior Halphon
e380a00b67
Fixed another timing regression with the CB opcodes
2018-03-29 21:06:53 +03:00
Kyle Swanson
7ffe132e79
fix typo
2018-03-28 21:38:48 -07:00
Kyle Swanson
7bfe5de9c7
chmod -x
2018-03-28 21:37:34 -07:00
Lior Halphon
96063fb0da
Fixed Windows build, added Unicode support in Windows.
2018-03-28 21:59:27 +03:00
Lior Halphon
4cf78139a8
Fixed a bug where SameBoy freezes for a while after leaving turbo mode
2018-03-27 23:33:31 +03:00
Lior Halphon
0e3d2770d9
Properly handle cases where an object’s X position is modified between the OAM mode and rendering mode
2018-03-27 22:13:08 +03:00
Lior Halphon
0912a30bb9
Fixed a regression in dmg_sound-2
2018-03-27 21:04:55 +03:00
Lior Halphon
f5493e023d
Fixed a timing regression in the CB opcodes
2018-03-27 20:21:24 +03:00
Lior Halphon
7671648fca
Simplified a function
2018-03-27 19:06:36 +03:00
Lior Halphon
7543461c24
Increasing PC in OAM triggers the OAM bug
2018-03-27 16:36:39 +03:00
Lior Halphon
4cbade9a88
Function name change
2018-03-27 15:55:12 +03:00
Lior Halphon
4986930511
Mostly complete emulation of the OAM bug. Passes oam_bug-2.
2018-03-27 15:46:00 +03:00
Lior Halphon
9093f22293
More accurate emulation of the OAM bug
2018-03-24 14:46:51 +03:00
Lior Halphon
5cb74fb684
Bugfix: turning the PPU off during OAM mode made the OAM bug persist while the LCD is off
2018-03-24 02:58:37 +03:00
Lior Halphon
d343152fca
Basic emulation of the OAM bug
2018-03-24 00:32:19 +03:00
Lior Halphon
f8c6b9e7a0
Fixed the lcd command
2018-03-23 21:26:49 +03:00
Lior Halphon
4e3928df81
Turns out the behavior differs between DMG and CGB – in DMG mode, the objects enabled bit is checked before halting the FIFOs, meaning that disabled sprites do not affect Mode 3’s length on the DMG.
2018-03-23 20:01:27 +03:00
Lior Halphon
48a8db233d
Refinement to the last fix
2018-03-23 19:54:11 +03:00
Lior Halphon
e9eeace995
The object enabled bit is checked only when popping from the object FIFO. Objects affect timing even when disabled.
2018-03-23 19:50:19 +03:00
Lior Halphon
04bfc89816
Cycle accurate OAM search mode
2018-03-23 19:07:14 +03:00
Lior Halphon
c11af7ea26
Fix CGB timings
2018-03-23 12:58:51 +03:00
Lior Halphon
3e5e17d1a3
Fixed CB [hl] opcodes timings
2018-03-23 12:35:37 +03:00
Lior Halphon
18e32d1755
Merge branch 'master' into timing
...
# Conflicts:
# Core/gb.c
2018-03-22 22:37:35 +02:00
Lior Halphon
577e23925b
Fixed sources-dmgABCXmgbS
2018-03-22 20:09:01 +02:00
Lior Halphon
e9f243a913
Fix sprite priority
2018-03-21 00:02:35 +02:00
Lior Halphon
cb33a5b25a
Fix Aevilla
2018-03-20 20:08:29 +02:00
Lior Halphon
3883b7d86a
Merge branch 'master' into timing
...
# Conflicts:
# Core/display.c
# Core/z80_cpu.c
2018-03-19 23:46:33 +02:00
Lior Halphon
b50c97f4a7
Prevent starting HDMA in the middle of an instruction, making both the CPU and DMA access memory at the same time. Closes #47
2018-03-19 20:01:31 +02:00
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