Lior Halphon
5088bd0959
Redundant OR
2022-01-16 00:16:06 +02:00
orbea
7c9ab0fd46
sgb.h: Use GB_INTERNAL to hide internal struct data
...
Silences warnings in downstream projects that use a different language standard
when including gb.h.
sgb.h:14:9: warning: anonymous structs are a GNU extension [-Wgnu-anonymous-struct]
struct {
^
sgb.h:14:9: warning: anonymous types declared in an anonymous union are an extension [-Wnested-anon-types]
struct {
^
2022-01-14 15:26:15 -08:00
Lior Halphon
eaeeb49612
Minor stylistic changes
2022-01-14 22:26:23 +02:00
orbea
adfc329cdf
gb.h: Silence -Wembedded-directive warning with -pedantic
...
gb.h:731:2: warning: embedding a directive within macro arguments has undefined behavior [-Wembedded-directive]
\#define GB_REWIND_FRAMES_PER_KEY 255
^
2022-01-14 11:40:55 -08:00
orbea
5cf71b406e
gb.h: Silence -Wembedded-directive warnings with -pedantic
...
gb.h:400:2: warning: embedding a directive within macro arguments has undefined behavior [-Wembedded-directive]
\#ifdef GB_BIG_ENDIAN
^
gb.h:410:2: warning: embedding a directive within macro arguments has undefined behavior [-Wembedded-directive]
\#endif
^
2022-01-14 11:40:55 -08:00
Lior Halphon
d92148b461
Merge branch 'master' of https://github.com/LIJI32/SameBoy
2022-01-14 17:09:49 +02:00
Lior Halphon
ffa53eda20
DMA during mode 3 emulation
2022-01-14 17:09:39 +02:00
Lior Halphon
4ce8e77796
More accurate OAM access timings
2022-01-14 15:07:50 +02:00
orbea
fefb81ab65
gb.h: Silence -pedantic warnings
...
Silences warnings such as the following when including gb.h as a dependency.
gb.h:385:6: warning: extra ';' inside a struct [-Wextra-semi]
);
^
2022-01-13 20:12:58 -08:00
Lior Halphon
ec012cf9f8
is_dma_restarting hack no longer needed
2022-01-12 14:12:55 +02:00
Lior Halphon
c4a14ac4db
Simplify DMA code, fix DMA read timing
2022-01-12 00:26:18 +02:00
Lior Halphon
b1187919d3
Fixed a bug with the joy_accessed API
2022-01-09 16:43:32 +02:00
Lior Halphon
2c71ca789f
Fixed a regression caused by a recent optimization
2022-01-09 15:36:01 +02:00
Lior Halphon
8df572f92e
Comment fix
2022-01-09 15:30:33 +02:00
Lior Halphon
b7f03dea8d
Add CGB-A support
2022-01-05 21:55:46 +02:00
Lior Halphon
ab1d4cd26e
More DMA write conflicts
2022-01-05 21:40:10 +02:00
Lior Halphon
5e7bb0f891
DMA write conflict revision differences
2022-01-04 19:59:46 +02:00
Lior Halphon
79ec22b28e
Clang hates this
2022-01-03 17:55:00 +02:00
Lior Halphon
5c17c0ec3b
unreachable fun
2022-01-03 17:17:35 +02:00
Lior Halphon
cd16431699
OMA DMA improvements (WIP)
2022-01-03 16:51:45 +02:00
Lior Halphon
c7298ae5a6
Fix a silly underflow
2022-01-03 16:51:05 +02:00
Lior Halphon
bc073e3d09
Expose PC
2021-12-30 23:53:24 +02:00
Lior Halphon
59c315a5dd
Minor free optimization
2021-12-29 16:33:04 +02:00
Lior Halphon
b72c2ea225
DMG palette getter
2021-12-29 13:08:46 +02:00
Lior Halphon
769aac93c0
Lazy APU, extra ~17% speed up
2021-12-29 00:48:44 +02:00
Lior Halphon
db50462710
More accurate fix
2021-12-26 23:24:08 +02:00
Lior Halphon
59dfb1a85a
It's not verified because it's wrong
2021-12-26 21:57:40 +02:00
Lior Halphon
6ffe924637
This is probably better but still wrong
2021-12-26 21:43:54 +02:00
Lior Halphon
d178ece909
Disabled an incorrectly emulated portion of the TILE_SET glitch
2021-12-26 19:57:18 +02:00
Lior Halphon
66f7babe86
Cache the clock rate
2021-12-26 15:50:24 +02:00
Lior Halphon
c53d99dbc4
Abolished slow double use
2021-12-26 15:20:46 +02:00
Lior Halphon
c5f6be1e64
Several likely/unlikely optimization, saving on a memset
2021-12-26 02:38:54 +02:00
Lior Halphon
69de3f0fae
Implement a PPU fast path, up to 34% performance boost
2021-12-26 01:47:59 +02:00
Lior Halphon
f3277ab8d3
Sorry C++ users
2021-12-20 18:59:51 +02:00
Lior Halphon
e9906e44cd
Sure, why not
2021-12-19 21:46:22 +02:00
Lior Halphon
f866441481
Improved emulation of channel 3 wave RAM read glitch
2021-12-19 19:27:40 +02:00
Lior Halphon
e9629407a5
Fix potential alignment issues
2021-12-19 00:54:29 +02:00
Lior Halphon
cdc3321c36
Add an API to allow illegal inputs
2021-12-19 00:28:24 +02:00
Lior Halphon
eaccd792ed
Fixes to safe reads, closes #422
2021-12-18 14:56:33 +02:00
Lior Halphon
5127cb0022
Direct access to registers ( #422 )
2021-12-18 14:51:14 +02:00
Lior Halphon
c63ddbe771
Lag frame detection API ( #422 )
2021-12-18 01:25:06 +02:00
Lior Halphon
c3d9141b7c
Replace the term sprite with object for consistency
2021-12-17 21:16:23 +02:00
Lior Halphon
c1ae129ed4
Allow hiding background/object "layers" ( #422 )
2021-12-17 21:12:26 +02:00
Lior Halphon
f78fac12c2
Fixed several issues involving LY change timing, as well as an LYC issue in models prior to CGB-D
2021-12-14 20:27:38 +02:00
Lior Halphon
7e5e672988
RTC speed multiplier, for TAS syncing ( #422 )
2021-12-11 02:51:21 +02:00
Lior Halphon
a30247cf16
LCD line callback (for #422 )
2021-12-10 19:49:52 +02:00
Lior Halphon
7508ddb0cf
Execute callback (for #422 )
2021-12-10 19:42:47 +02:00
Lior Halphon
9e57201b08
Accurate IF clear timing
2021-12-05 16:18:54 +02:00
Lior Halphon
25e3414974
Redesigned vblank callback scheduling scheme, should be more regular and less prune to various sorts of frontend DOS
2021-12-04 15:04:46 +02:00
Lior Halphon
4b3c77bfa5
oops
2021-12-02 11:54:26 +02:00
Lior Halphon
8660e20eeb
New inputs API
2021-12-02 11:23:44 +02:00
Lior Halphon
b770bbea2e
Fix save state issue that caused vblank callbacks timings to differ
2021-12-02 11:21:12 +02:00
Lior Halphon
486f8a2c10
Merge pull request #420 from SnowyMouse/cgb_mode
...
Add GB_is_cgb_in_cgb_mode
2021-11-26 14:10:35 +02:00
Lior Halphon
06b744259b
Add memory write callback, optimize memory access with likely/unlikely
2021-11-26 14:09:41 +02:00
Lior Halphon
bdbe02b043
Add a safe memory read API
2021-11-26 13:54:28 +02:00
Lior Halphon
33090a5cc0
Fix an oops from the last commit
2021-11-26 13:38:52 +02:00
Snowy
d0a9d2f72a
Add GB_is_cgb_in_cgb_mode
2021-11-25 17:16:11 -06:00
Lior Halphon
f1e5e04198
...even when timekeeping is disabled
2021-11-25 21:46:51 +02:00
Lior Halphon
d0d39015ee
Let update_input_hint_callback get called during turbo
2021-11-25 21:17:49 +02:00
Lior Halphon
f08f16346e
Fix #293
2021-11-24 23:13:52 +02:00
Lior Halphon
ae930472f0
Units info
2021-11-14 13:18:58 +02:00
Lior Halphon
c6f39bc60b
Initial MBC7 support
2021-11-12 17:44:51 +02:00
Lior Halphon
02f55d12d3
Maybe one day GCC will stop being shit at handling __attribute__s
2021-11-07 14:13:52 +02:00
Lior Halphon
1650820edb
Clean up endian-related code
2021-11-07 13:57:43 +02:00
Lior Halphon
18e7a3f4fa
Cleanup, better symbol handling, improves LTO
2021-11-07 13:39:18 +02:00
Lior Halphon
fbf1bb7f98
Save state compatibility breaking cleanup
2021-11-07 12:56:46 +02:00
Lior Halphon
5565c2540b
Register name and info update
2021-11-06 13:34:34 +02:00
Lior Halphon
178860e715
Custom palette and editor
2021-11-05 19:07:27 +02:00
Lior Halphon
f237b1e9b9
CGB-0 support
2021-11-04 00:35:44 +02:00
Lior Halphon
6cd13be624
Add CGB-B support
2021-10-30 20:58:57 +03:00
Lior Halphon
72b6d6c532
Merge branch 'master' of https://github.com/LIJI32/SameBoy
2021-10-30 18:31:47 +03:00
Lior Halphon
1f7b20251b
Improved sanitation for save states for better security and stability
2021-10-30 16:03:13 +03:00
Lior Halphon
93ef8d7db8
Merge pull request #411 from SnowyMouse/sprite_h
...
Fix partially offscreen sprites not being returned in GB_get_oam_info
2021-10-27 01:44:26 +03:00
Lior Halphon
e6c4ceaf5a
Add CGB-D support
2021-10-27 01:40:28 +03:00
Snowy
2ec573c84a
Change y to a signed value
2021-10-24 11:15:28 -05:00
Lior Halphon
5b9746084d
Writes to SVBK should work before the boot ROM is disabled
2021-10-23 23:51:48 +03:00
Lior Halphon
18007f0e53
MGB support
2021-10-23 23:28:54 +03:00
Lior Halphon
e04dcd90d6
Fix APU command
2021-10-19 01:56:10 +03:00
Lior Halphon
94776fcf8c
Better (But imperfect) emulation of the wave RAM address bug glitch
2021-10-19 01:53:24 +03:00
Lior Halphon
de16ab5d08
Why was this under APU
2021-10-17 20:05:49 +03:00
Lior Halphon
886363b398
Now this glitch makes more sense
2021-10-17 12:52:08 +03:00
Lior Halphon
7ef198ec50
More accurate channel 3 restarts
2021-10-17 02:06:33 +03:00
Lior Halphon
40fc477b56
Fix an oopsie
2021-10-10 20:05:57 +03:00
Lior Halphon
4ce643d5eb
Fix timer bug; fixes #409
2021-10-10 16:53:07 +03:00
Lior Halphon
01f80a3f3e
Adjust border fade delay to match SGB2
2021-10-10 14:24:14 +03:00
Lior Halphon
8f9365251d
Timing adjustments
2021-10-10 13:30:30 +03:00
Lior Halphon
b580e63c37
Fix 7-part SGB commands
2021-10-10 02:55:12 +03:00
Lior Halphon
46e1b79b63
Madden 96 needs even more time
2021-10-09 23:07:15 +03:00
Lior Halphon
893d7d162a
Don't try to render tiles 100-3FF
2021-10-09 22:34:43 +03:00
Lior Halphon
85da5b64d3
Some games like racing the SGB
2021-10-09 22:02:40 +03:00
Lior Halphon
a7c8b702da
Some games like to race with the SGB border fade
2021-10-09 21:08:17 +03:00
Lior Halphon
f1761340fc
Fix ATTR_SET command
2021-10-09 18:45:08 +03:00
Lior Halphon
191f7cee02
Improved emulation of SGB multiplayer, fixes #405
2021-10-09 14:52:28 +03:00
Lior Halphon
164a870189
Cleanup uses of gb->registers
2021-10-09 14:09:51 +03:00
Lior Halphon
24af1c5a31
Newly discovered OAM corruption trigger
2021-10-09 14:05:29 +03:00
Lior Halphon
c05c3c2abd
Improved accuracy of mid-line SCX writes
2021-10-08 19:36:05 +03:00
Lior Halphon
ef053ff113
APU regression fix
2021-10-07 18:25:54 +03:00
Lior Halphon
d1caeafe5e
Better handling of tiny ROMs
2021-10-05 19:53:43 +03:00
Lior Halphon
345e51647f
API issue – RTC data should not be wiped after GB_reset
2021-09-30 21:23:52 +03:00
Lior Halphon
8068ff41fb
Fix potential future compatibility issue, update workflow environments
2021-09-29 21:57:39 +03:00