diff --git a/BootROMs/cgb_boot.asm b/BootROMs/cgb_boot.asm
index 77a25bc9..ba139135 100644
--- a/BootROMs/cgb_boot.asm
+++ b/BootROMs/cgb_boot.asm
@@ -732,12 +732,11 @@ Preboot:
ld a, [$143]
bit 7, a
-
call z, EmulateDMG
+ ldh [$4C], a
ldh a, [TitleChecksum]
ld b, a
- ldh [$4C], a ; One day, I will know what this switch does and how it differs from FF6C
ldh a, [InputPalette]
and a
jr nz, .emulateDMGForCGBGame
diff --git a/Cocoa/Document.m b/Cocoa/Document.m
index 7cb0eeac..98660642 100644
--- a/Cocoa/Document.m
+++ b/Cocoa/Document.m
@@ -333,9 +333,7 @@ static void printImage(GB_gameboy_t *gb, uint32_t *image, uint8_t height,
NSMutableParagraphStyle *paragraph_style = [[NSMutableParagraphStyle alloc] init];
[paragraph_style setLineSpacing:2];
-
- self.mainWindow.backgroundColor = [NSColor blackColor];
-
+
self.debuggerSideViewInput.font = [NSFont userFixedPitchFontOfSize:12];
self.debuggerSideViewInput.textColor = [NSColor whiteColor];
self.debuggerSideViewInput.defaultParagraphStyle = paragraph_style;
diff --git a/Cocoa/Document.xib b/Cocoa/Document.xib
index 5694ecda..88c52757 100644
--- a/Cocoa/Document.xib
+++ b/Cocoa/Document.xib
@@ -50,10 +50,16 @@
-
+
-
+
+
+
+
+
+
+
diff --git a/Cocoa/GBBorderView.h b/Cocoa/GBBorderView.h
new file mode 100644
index 00000000..477add17
--- /dev/null
+++ b/Cocoa/GBBorderView.h
@@ -0,0 +1,5 @@
+#import
+
+@interface GBBorderView : NSView
+
+@end
diff --git a/Cocoa/GBBorderView.m b/Cocoa/GBBorderView.m
new file mode 100644
index 00000000..a5f5e817
--- /dev/null
+++ b/Cocoa/GBBorderView.m
@@ -0,0 +1,26 @@
+#import "GBBorderView.h"
+
+@implementation GBBorderView
+
+
+- (void)awakeFromNib
+{
+ self.wantsLayer = YES;
+}
+
+- (BOOL)wantsUpdateLayer
+{
+ return YES;
+}
+
+- (void)updateLayer
+{
+ /* Wonderful, wonderful windowserver(?) bug. Using 0,0,0 here would cause it to render garbage
+ on fullscreen windows on some High Sierra machines. Any other value, including the one used
+ here (which is rendered exactly the same due to rounding) works around this bug. */
+ self.layer.backgroundColor = [NSColor colorWithCalibratedRed:0
+ green:0
+ blue:1.0 / 1024.0
+ alpha:1.0].CGColor;
+}
+@end
diff --git a/Cocoa/GBViewMetal.m b/Cocoa/GBViewMetal.m
index 1c0a86f3..34cd50bd 100644
--- a/Cocoa/GBViewMetal.m
+++ b/Cocoa/GBViewMetal.m
@@ -71,13 +71,6 @@ static const vector_float2 rect[] =
[self loadShader];
}
-- (void)addSubview:(NSView *)view
-{
- /* Fixes rounded corners */
- [super addSubview:view];
- [self setWantsLayer:YES];
-}
-
- (void) loadShader
{
NSError *error = nil;
diff --git a/Core/apu.c b/Core/apu.c
index 2ba69697..2da43463 100644
--- a/Core/apu.c
+++ b/Core/apu.c
@@ -426,6 +426,14 @@ void GB_apu_copy_buffer(GB_gameboy_t *gb, GB_sample_t *dest, size_t count)
dest[gb->apu_output.buffer_position + i] = output;
}
+ if (gb->apu_output.buffer_position) {
+ if (gb->apu_output.buffer_size + (count - gb->apu_output.buffer_position) < count * 3) {
+ gb->apu_output.buffer_size += count - gb->apu_output.buffer_position;
+ gb->apu_output.buffer = realloc(gb->apu_output.buffer,
+ gb->apu_output.buffer_size * sizeof(*gb->apu_output.buffer));
+ gb->apu_output.stream_started = false;
+ }
+ }
count = gb->apu_output.buffer_position;
}
memcpy(dest, gb->apu_output.buffer, count * sizeof(*gb->apu_output.buffer));
diff --git a/Makefile b/Makefile
index 45e3b29f..d81c7746 100755
--- a/Makefile
+++ b/Makefile
@@ -21,7 +21,7 @@ ifeq ($(MAKECMDGOALS),)
MAKECMDGOALS := $(DEFAULT)
endif
-VERSION := 0.11
+VERSION := 0.11.1
export VERSION
CONF ?= debug
@@ -306,4 +306,4 @@ libretro:
clean:
rm -rf build
-.PHONY: libretro
\ No newline at end of file
+.PHONY: libretro