mirror of https://github.com/mgba-emu/mgba.git
GB, GBA Video: Copy disable flags when drawing scanlines in proxy when not blocking
This commit is contained in:
parent
5af50db66c
commit
9dfa8f753f
1
CHANGES
1
CHANGES
|
@ -23,6 +23,7 @@ Emulation fixes:
|
||||||
- GB MBC: Fix some MBC3 bit masking
|
- GB MBC: Fix some MBC3 bit masking
|
||||||
- GB Video: Fix state after skipping BIOS (fixes mgba.io/i/1715 and mgba.io/i/1716)
|
- GB Video: Fix state after skipping BIOS (fixes mgba.io/i/1715 and mgba.io/i/1716)
|
||||||
- GB Video: Fix drawing background when window is force-disabled by frontend
|
- GB Video: Fix drawing background when window is force-disabled by frontend
|
||||||
|
- GB, GBA Video: Copy disable flags when drawing scanlines in proxy when not blocking
|
||||||
- GBA: Fix timing advancing too quickly in rare cases
|
- GBA: Fix timing advancing too quickly in rare cases
|
||||||
- GBA: Clear GBP connection on reset
|
- GBA: Clear GBP connection on reset
|
||||||
- GBA Audio: Fix deserializing SOUNDCNT_L
|
- GBA Audio: Fix deserializing SOUNDCNT_L
|
||||||
|
|
|
@ -235,6 +235,9 @@ void GBVideoProxyRendererWriteOAM(struct GBVideoRenderer* renderer, uint16_t oam
|
||||||
void GBVideoProxyRendererDrawRange(struct GBVideoRenderer* renderer, int startX, int endX, int y) {
|
void GBVideoProxyRendererDrawRange(struct GBVideoRenderer* renderer, int startX, int endX, int y) {
|
||||||
struct GBVideoProxyRenderer* proxyRenderer = (struct GBVideoProxyRenderer*) renderer;
|
struct GBVideoProxyRenderer* proxyRenderer = (struct GBVideoProxyRenderer*) renderer;
|
||||||
if (!proxyRenderer->logger->block) {
|
if (!proxyRenderer->logger->block) {
|
||||||
|
proxyRenderer->backend->disableBG = proxyRenderer->d.disableBG;
|
||||||
|
proxyRenderer->backend->disableWIN = proxyRenderer->d.disableWIN;
|
||||||
|
proxyRenderer->backend->disableOBJ = proxyRenderer->d.disableOBJ;
|
||||||
proxyRenderer->backend->drawRange(proxyRenderer->backend, startX, endX, y);
|
proxyRenderer->backend->drawRange(proxyRenderer->backend, startX, endX, y);
|
||||||
}
|
}
|
||||||
mVideoLoggerRendererDrawRange(proxyRenderer->logger, startX, endX, y);
|
mVideoLoggerRendererDrawRange(proxyRenderer->logger, startX, endX, y);
|
||||||
|
|
|
@ -297,6 +297,15 @@ void GBAVideoProxyRendererWriteOAM(struct GBAVideoRenderer* renderer, uint32_t o
|
||||||
void GBAVideoProxyRendererDrawScanline(struct GBAVideoRenderer* renderer, int y) {
|
void GBAVideoProxyRendererDrawScanline(struct GBAVideoRenderer* renderer, int y) {
|
||||||
struct GBAVideoProxyRenderer* proxyRenderer = (struct GBAVideoProxyRenderer*) renderer;
|
struct GBAVideoProxyRenderer* proxyRenderer = (struct GBAVideoProxyRenderer*) renderer;
|
||||||
if (!proxyRenderer->logger->block) {
|
if (!proxyRenderer->logger->block) {
|
||||||
|
proxyRenderer->backend->disableBG[0] = proxyRenderer->d.disableBG[0];
|
||||||
|
proxyRenderer->backend->disableBG[1] = proxyRenderer->d.disableBG[1];
|
||||||
|
proxyRenderer->backend->disableBG[2] = proxyRenderer->d.disableBG[2];
|
||||||
|
proxyRenderer->backend->disableBG[3] = proxyRenderer->d.disableBG[3];
|
||||||
|
proxyRenderer->backend->disableOBJ = proxyRenderer->d.disableOBJ;
|
||||||
|
proxyRenderer->backend->highlightBG[0] = proxyRenderer->d.highlightBG[0];
|
||||||
|
proxyRenderer->backend->highlightBG[1] = proxyRenderer->d.highlightBG[1];
|
||||||
|
proxyRenderer->backend->highlightBG[2] = proxyRenderer->d.highlightBG[2];
|
||||||
|
proxyRenderer->backend->highlightBG[3] = proxyRenderer->d.highlightBG[3];
|
||||||
proxyRenderer->backend->drawScanline(proxyRenderer->backend, y);
|
proxyRenderer->backend->drawScanline(proxyRenderer->backend, y);
|
||||||
}
|
}
|
||||||
mVideoLoggerRendererDrawScanline(proxyRenderer->logger, y);
|
mVideoLoggerRendererDrawScanline(proxyRenderer->logger, y);
|
||||||
|
|
Loading…
Reference in New Issue