Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Attempting to update #81

Closed
wants to merge 121 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
121 commits
Select commit Hold shift + click to select a range
4f91b19
Added MBC7 BESS support, documented BESS TPP1
LIJI32 Jun 5, 2022
426d3d3
[Libretro] Sync core options
radimerry Jun 10, 2022
197a475
SDL Joypad controls for MBC7 games
LIJI32 Jun 10, 2022
979d32f
Group keyboard and joypad controls into a submenu
LIJI32 Jun 10, 2022
24796ac
MBC7 mouse control in SDL
LIJI32 Jun 10, 2022
d41c188
More accurate Camera MBC emulation
LIJI32 Jun 11, 2022
4d90504
HuC-1 mode is not a thing, fixes Robopon Japanese prototype
LIJI32 Jun 11, 2022
ab4fa3a
Merge pull request #457 from radimerry/libretro-core-options
LIJI32 Jun 12, 2022
3fbeb61
Fix MMM01 RAM size detection (Closes #446)
LIJI32 Jun 12, 2022
20e9b1c
Merge branch 'master' of https://github.com/LIJI32/SameBoy
LIJI32 Jun 12, 2022
b932f66
Fix libretro build
LIJI32 Jun 12, 2022
9b5dc9e
Refine TILE_SEL glitch, fixes #445
LIJI32 Jun 12, 2022
517f455
Theorized HDMA behavior proven wrong
LIJI32 Jun 17, 2022
22f8ab6
Last fix was wrong, this is correct
LIJI32 Jun 17, 2022
ec4c194
New macOS icon (again)
LIJI32 Jun 18, 2022
8f8b7f6
Minor adjustment to 32x32@2x
LIJI32 Jun 18, 2022
9ae2c9f
Replace SDL2 audio with XAudio2 on Windows
LIJI32 Jun 22, 2022
fd6b734
Add XAudio2.7 as an compile-time audio driver for vanilla Windows 7
LIJI32 Jun 24, 2022
9a76582
Runtime audio driver fallback
LIJI32 Jun 24, 2022
16913f9
Oops
LIJI32 Jun 24, 2022
58df814
Fix audio artifacts in the SGB jingle
LIJI32 Jun 24, 2022
aaf9a76
The vblank callback now reports the vblank type
LIJI32 Jun 24, 2022
6a24598
Grammar
LIJI32 Jun 25, 2022
52a4c09
More accurate PPU/OAM-DMA conflicts, artifacts in "It Came from Plane…
LIJI32 Jun 25, 2022
1b38e8c
Prevent audio chuckling when an instance is debug-stopped
LIJI32 Jun 25, 2022
96d127e
Remove the SLD command, reorder debugger commands
LIJI32 Jul 1, 2022
f2429e1
Fix IB oopsies
LIJI32 Jul 1, 2022
1065a40
Add rX as symbol aliases to IO_X
LIJI32 Jul 1, 2022
63a858d
Fix GBS player's appearance on Big Sur and newer
LIJI32 Jul 1, 2022
a773297
Add CGB revision selection to the SDL frontend
LIJI32 Jul 2, 2022
887a810
Refresh icon if launched via a software update
LIJI32 Jul 2, 2022
7071032
Improved MMM01 emulation, fixes #447
LIJI32 Jul 2, 2022
e466c3c
Ehh oops
LIJI32 Jul 2, 2022
faccdd3
Correct the Windows audio dialog rate, add a default file name
LIJI32 Jul 2, 2022
3c4bfd2
Update version to 0.15
LIJI32 Jul 2, 2022
004c20d
Handle GateKeeper and write permissions in the auto updater
LIJI32 Jul 3, 2022
856a2b0
Makefile fixes, explicitly codesign the app bundle for releases
LIJI32 Jul 3, 2022
d9b8e82
Fix crash on Windows 8.x
LIJI32 Jul 8, 2022
88f5b22
Allow setting a non-default audio driver, fixes #466
LIJI32 Jul 8, 2022
0dbfaef
Query the system sample rate on Windows and use it, rather than hardc…
LIJI32 Jul 8, 2022
eceb2e4
Fix SDL/tester release builds on ARM64 Macs, strip and codesign Quick…
LIJI32 Jul 8, 2022
56deb4b
Update version to 0.15.1
LIJI32 Jul 8, 2022
f940130
SDL – Add setting to allow background joypad control
LIJI32 Jul 16, 2022
500e767
And the same feature in Cocoa as well. Closes #472
LIJI32 Jul 16, 2022
9a966a5
SDL GUI follows the DMG palette
LIJI32 Jul 16, 2022
cbf1a54
Allow the SDL port to use custom palettes imported from Cocoa
LIJI32 Jul 17, 2022
96b5306
Make the scrollbar draggable in SDL
LIJI32 Jul 17, 2022
d31f34c
Allow the user-configured keys to be used in the SDL menu
LIJI32 Jul 17, 2022
a856566
Fixed GB_audio_get_queue_length to actually be the length rather than…
LIJI32 Jul 18, 2022
09cbf6a
Fix GCC C++ warning? #464
LIJI32 Jul 18, 2022
64db300
Add an optional OpenAL audio driver for the SDL frontend
max-m Jul 9, 2022
7a24073
Make sure that `AL_BUFFERS_PROCESSED` returns a valid value in `_audi…
max-m Jul 13, 2022
8fa02e0
Make sure that audio resumes playing after clearing the queue
max-m Jul 13, 2022
d48037b
Remove `__FILE__` usage in the OpenAL driver
max-m Jul 13, 2022
91a2b45
Initialize the SDL audio system in the driver
max-m Jul 13, 2022
8760cc5
Mark `check_al_error()` as `static`
max-m Jul 13, 2022
4321087
Use `pkg-config` to check if OpenAL is available
max-m Jul 13, 2022
110deee
Oops
LIJI32 Jul 18, 2022
de10338
Change `_audio_get_queue_length()` accoring to a856566b
max-m Jul 18, 2022
541dbc5
One last try
LIJI32 Jul 18, 2022
08549c1
Typo
LIJI32 Jul 18, 2022
3491140
Add joypad hotkeys to SDL
LIJI32 Jul 19, 2022
3a86b86
Add the same feature to Cocoa. Closes #474
LIJI32 Jul 21, 2022
1fedb81
Emulate window pixel insertion glitch, fixes Star Trek - 25th Anniver…
LIJI32 Jul 21, 2022
ee407f0
Better describe softbreak
LIJI32 Jul 22, 2022
537d0e1
Fix for WX=1-6
LIJI32 Jul 22, 2022
029b749
Fix WX=0 regression
LIJI32 Jul 22, 2022
f75f170
Proper fix for WX=0 in the window pixel insertion glitch
LIJI32 Jul 22, 2022
f5f79f8
Insert the pixel at the correct position
LIJI32 Jul 22, 2022
bb8f973
Implement GB Camera timing (when no webcam is connected), misc camera…
CasualPokePlayer Jul 23, 2022
93c611e
Values must be added to the end of a GB_SECTION for save state compat…
LIJI32 Jul 23, 2022
6a8743e
Fix Cocoa being broken outside of a debug environment
LIJI32 Jul 23, 2022
dd24801
Merge pull request #476 from CasualPokePlayer/camera_improvements
LIJI32 Jul 23, 2022
2a29570
Merge remote-tracking branch 'origin/master' into openal
LIJI32 Jul 23, 2022
8e125b3
macOS compatibility, stability
LIJI32 Jul 23, 2022
04afa64
Can't be NULL
LIJI32 Jul 23, 2022
0e1d654
Various improvements and fixes
LIJI32 Jul 23, 2022
33ba353
Emulate the JOYP mode switching delay on the DMG
LIJI32 Jul 23, 2022
a524cc3
Emulate key bouncing
LIJI32 Jul 23, 2022
0f31c7a
Lag minimization bounce optimization
LIJI32 Jul 23, 2022
4b03cc0
Optimization to joypad code
LIJI32 Jul 24, 2022
5cd65f8
Warn when progress can't be saved
LIJI32 Jul 24, 2022
03f4f03
Rename function
LIJI32 Jul 24, 2022
6f9da35
Add GBP model to the core (disables bouncing)
LIJI32 Jul 24, 2022
4db047c
Make GBP selectable in Cocoa
LIJI32 Jul 24, 2022
dbd3368
Missed some switches
LIJI32 Jul 24, 2022
0c27729
Oops
LIJI32 Jul 24, 2022
45bd534
GBP support in SDL
LIJI32 Jul 24, 2022
10df4d7
Missing static
LIJI32 Jul 24, 2022
53dd19e
Update version to 0.15.2
LIJI32 Jul 24, 2022
dd435ae
Fixed potential race condition in the Cocoa memory viewer
LIJI32 Jul 24, 2022
bcfe368
Color correction improvements
LIJI32 Jul 24, 2022
c536202
Fix false positives when detecting unwritable save paths
LIJI32 Jul 24, 2022
ae14fcf
Fix allow background controllers not working correctly on start up
LIJI32 Jul 25, 2022
43e1e85
Style
LIJI32 Jul 25, 2022
e0436e3
Use gamma correct (and nearly gamma correct) color mixing
LIJI32 Jul 25, 2022
f47e143
Update the boot ROM color to match SameBoy's logo slightly better
LIJI32 Jul 25, 2022
12655cb
Fix Windows build
LIJI32 Jul 25, 2022
f6de7b3
This is wrong
LIJI32 Jul 25, 2022
99ac632
Fix creat on Windows
LIJI32 Jul 25, 2022
1414e68
Update version to 0.15.3
LIJI32 Jul 25, 2022
859ff79
Fix sanity test
LIJI32 Jul 25, 2022
f3915a6
Create FUNDING.yml
LIJI32 Jul 29, 2022
84a193a
Fix shader artifacts, revise AAScale4x
LIJI32 Jul 29, 2022
86a05e2
Fix updater crash, closes #469
LIJI32 Jul 29, 2022
0894c1d
Avoid rounding errors in color correction, minor optimization
LIJI32 Jul 29, 2022
3f7bcb9
Rename several color correction modes, add a new accurate mode
LIJI32 Jul 29, 2022
352f8d5
Add popover descriptions to the color correction and high-pass filter…
LIJI32 Jul 30, 2022
44618f7
Optimize the memory viewer, GB_INTERNAL no longer required
LIJI32 Jul 30, 2022
9383acd
Optimize performAtomicBlock
LIJI32 Jul 30, 2022
d6adbe0
No clue why force redrawing the parent wasn't enough
LIJI32 Jul 30, 2022
7b5846f
Build break
LIJI32 Jul 30, 2022
1bdd58d
Auto-skip D-Pad configuration if hats are used, closes #480
LIJI32 Jul 30, 2022
a005ebe
Merge branch 'master' of https://github.com/LIJI32/SameBoy
LIJI32 Jul 31, 2022
ae1d3dd
Work around a Wayland bug – wait for mouse up before creating a new w…
LIJI32 Jul 31, 2022
ab07f95
Update version to 0.15.4
LIJI32 Jul 31, 2022
779ffe3
Fix desaturation
LIJI32 Aug 2, 2022
f0959d4
Fix threading issue causing crashes and deadlocks
LIJI32 Aug 3, 2022
52ab200
Accurately emulate CGB first frame behavior. Fixes #432, fixes #482
LIJI32 Aug 8, 2022
95773b9
Make things const
LIJI32 Aug 13, 2022
9bf7e0b
More accurate sample repeat glitch, fixes #483
LIJI32 Aug 14, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# These are supported funding model platforms

github: LIJI32
4 changes: 2 additions & 2 deletions .github/actions/sanity_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ set +e

FAILED_TESTS=`
shasum .github/actions/*.bmp | grep -E -v \(\
5283564df0cf5bb78a7a90aff026c1a4692fd39e\ \ .github/actions/cgb-acid2.bmp\|\
64c3fd9a5fe9aee40fe15f3371029c0d2f20f5bc\ \ .github/actions/cgb-acid2.bmp\|\
dbcc438dcea13b5d1b80c5cd06bda2592cc5d9e0\ \ .github/actions/cgb_sound.bmp\|\
0caadf9634e40247ae9c15ff71992e8f77bbf89e\ \ .github/actions/dmg-acid2.bmp\|\
a732077f98f43d9231453b1764d9f797a836924d\ \ .github/actions/dmg-mode-acid2.bmp\|\
fbdb5e342bfdd2edda3ea5601d35d0ca60d18034\ \ .github/actions/dmg-mode-acid2.bmp\|\
c9e944b7e01078bdeba1819bc2fa9372b111f52d\ \ .github/actions/dmg_sound-2.bmp\|\
f0172cc91867d3343fbd113a2bb98100074be0de\ \ .github/actions/oam_bug-2.bmp\
\)`
Expand Down
42 changes: 42 additions & 0 deletions BESS.md
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,48 @@ The length of this block is 0x11 bytes long and it follows the following structu
| 0x0E | Scheduled alarm time days (16-bit) |
| 0x10 | Alarm enabled flag (8-bits, either 0 or 1) |

#### TPP1 block
The TPP1 block uses the `'TPP1'` identifier, and is an optional block that is used while emulating a TPP1 cartridge to store RTC information. This block can be omitted if the ROM header does not specify the inclusion of a RTC.

The length of this block is 0x11 bytes long and it follows the following structure:

| Offset | Content |
|--------|-------------------------------------------------------|
| 0x00 | UNIX timestamp at the time of the save state (64-bit) |
| 0x08 | The current RTC data (4 bytes) |
| 0x0C | The latched RTC data (4 bytes) |
| 0x10 | The value of the MR4 register (8-bits) |


#### MBC7 block
The MBC7 block uses the `'MBC7'` identifier, and is an optional block that is used while emulating an MBC7 cartridge to store the EEPROM communication state and motion control state.

The length of this block is 0xA bytes long and it follows the following structure:

| Offset | Content |
|--------|-------------------------------------------------------|
| 0x00 | Flags (8-bits) |
| 0x01 | Argument bits left (8-bits) |
| 0x02 | Current EEPROM command (16-bits) |
| 0x04 | Pending bits to read (16-bits) |
| 0x06 | Latched gyro X value (16-bits) |
| 0x08 | Latched gyro Y value (16-bits) |

The meaning of the individual bits in flags are:
* Bit 0: Latch ready; set after writing `0x55` to `0xAX0X` and reset after writing `0xAA` to `0xAX1X`
* Bit 1: EEPROM DO line
* Bit 2: EEPROM DI line
* Bit 3: EEPROM CLK line
* Bit 4: EEPROM CS line
* Bit 5: EEPROM write enable; set after an `EWEN` command, reset after an `EWDS` command
* Bits 6-7: Unused.

The current EEPROM command field has bits pushed to its LSB first, padded with zeros. For example, if the ROM clocked a single `1` bit, this field should contain `0b1`; if the ROM later clocks a `0` bit, this field should contain `0b10`.

If the currently transmitted command has an argument, the "Argument bits left" field should contain the number argument bits remaining. Otherwise, it should contain 0.

The "Pending bits to read" field contains the pending bits waiting to be shifted into the DO signal, MSB first, padded with ones.

#### SGB block

The SGB block uses the `'SGB '` identifier, and is an optional block that is only used while emulating an SGB or SGB2 *and* SGB commands enabled. Implementations must not save this block on other models or when SGB commands are disabled, and should assume SGB commands are disabled if this block is missing.
Expand Down
7 changes: 6 additions & 1 deletion BootROMs/cgb_boot.asm
Original file line number Diff line number Diff line change
Expand Up @@ -565,7 +565,12 @@ AnimationColors:
dw $017D ; Orange
dw $241D ; Red
dw $6D38 ; Purple
dw $7102 ; Blue
IF DEF(AGB)
dw $6D60 ; Blue
ELSE
dw $5500 ; Blue
ENDC

AnimationColorsEnd:

; Helper Functions
Expand Down
Binary file modified Cocoa/AppIcon.icns
Binary file not shown.
10 changes: 5 additions & 5 deletions Cocoa/Document.h
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#import <Cocoa/Cocoa.h>
#include "GBView.h"
#include "GBImageView.h"
#include "GBSplitView.h"
#include "GBVisualizerView.h"
#include "GBOSDView.h"
#import "GBView.h"
#import "GBImageView.h"
#import "GBSplitView.h"
#import "GBVisualizerView.h"
#import "GBOSDView.h"

@class GBCheatWindowController;
@class GBPaletteView;
Expand Down
Loading