From 9a85fc8a5a2aaba74a8aba83f5cc90704a934249 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Sat, 15 Jan 2022 15:30:41 -0800 Subject: [PATCH] Core: Frame counter should be unsigned --- include/mgba/core/core.h | 2 +- include/mgba/internal/gb/serialize.h | 2 +- include/mgba/internal/gb/video.h | 2 +- include/mgba/internal/gba/serialize.h | 2 +- include/mgba/internal/gba/video.h | 2 +- src/debugger/debugger.c | 2 +- src/gb/core.c | 4 ++-- src/gba/core.c | 4 ++-- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/mgba/core/core.h b/include/mgba/core/core.h index 3475c393d..683f4e2f0 100644 --- a/include/mgba/core/core.h +++ b/include/mgba/core/core.h @@ -106,7 +106,7 @@ struct mCore { void (*addKeys)(struct mCore*, uint32_t keys); void (*clearKeys)(struct mCore*, uint32_t keys); - int32_t (*frameCounter)(const struct mCore*); + uint32_t (*frameCounter)(const struct mCore*); int32_t (*frameCycles)(const struct mCore*); int32_t (*frequency)(const struct mCore*); diff --git a/include/mgba/internal/gb/serialize.h b/include/mgba/internal/gb/serialize.h index 5191e0966..5a26a6937 100644 --- a/include/mgba/internal/gb/serialize.h +++ b/include/mgba/internal/gb/serialize.h @@ -329,7 +329,7 @@ struct GBSerializedState { uint32_t reserved; uint32_t nextMode; int32_t dotCounter; - int32_t frameCounter; + uint32_t frameCounter; uint8_t vramCurrentBank; GBSerializedVideoFlags flags; diff --git a/include/mgba/internal/gb/video.h b/include/mgba/internal/gb/video.h index da83ebc2a..31c54b089 100644 --- a/include/mgba/internal/gb/video.h +++ b/include/mgba/internal/gb/video.h @@ -163,7 +163,7 @@ struct GBVideo { bool sgbBorders; - int32_t frameCounter; + uint32_t frameCounter; int frameskip; int frameskipCounter; }; diff --git a/include/mgba/internal/gba/serialize.h b/include/mgba/internal/gba/serialize.h index b9bdcbea7..203c4fb0c 100644 --- a/include/mgba/internal/gba/serialize.h +++ b/include/mgba/internal/gba/serialize.h @@ -303,7 +303,7 @@ struct GBASerializedState { int32_t nextEvent; int32_t reserved[5]; GBASerializedVideoFlags flags; - int32_t frameCounter; + uint32_t frameCounter; } video; struct { diff --git a/include/mgba/internal/gba/video.h b/include/mgba/internal/gba/video.h index 0a27807b4..2b7c135ca 100644 --- a/include/mgba/internal/gba/video.h +++ b/include/mgba/internal/gba/video.h @@ -215,7 +215,7 @@ struct GBAVideo { uint16_t* vram; union GBAOAM oam; - int32_t frameCounter; + uint32_t frameCounter; int frameskip; int frameskipCounter; }; diff --git a/src/debugger/debugger.c b/src/debugger/debugger.c index 169123451..bdf7b1cab 100644 --- a/src/debugger/debugger.c +++ b/src/debugger/debugger.c @@ -108,7 +108,7 @@ void mDebuggerRun(struct mDebugger* debugger) { } void mDebuggerRunFrame(struct mDebugger* debugger) { - int32_t frame = debugger->core->frameCounter(debugger->core); + uint32_t frame = debugger->core->frameCounter(debugger->core); do { mDebuggerRun(debugger); } while (debugger->core->frameCounter(debugger->core) == frame); diff --git a/src/gb/core.c b/src/gb/core.c index 809419813..7a1191bb5 100644 --- a/src/gb/core.c +++ b/src/gb/core.c @@ -636,7 +636,7 @@ static void _GBCoreReset(struct mCore* core) { static void _GBCoreRunFrame(struct mCore* core) { struct GB* gb = core->board; - int32_t frameCounter = gb->video.frameCounter; + uint32_t frameCounter = gb->video.frameCounter; while (gb->video.frameCounter == frameCounter) { SM83Run(core->cpu); } @@ -688,7 +688,7 @@ static void _GBCoreClearKeys(struct mCore* core, uint32_t keys) { gbcore->keys &= ~keys; } -static int32_t _GBCoreFrameCounter(const struct mCore* core) { +static uint32_t _GBCoreFrameCounter(const struct mCore* core) { const struct GB* gb = core->board; return gb->video.frameCounter; } diff --git a/src/gba/core.c b/src/gba/core.c index 1d0292f4a..328f3d128 100644 --- a/src/gba/core.c +++ b/src/gba/core.c @@ -665,7 +665,7 @@ static void _GBACoreReset(struct mCore* core) { static void _GBACoreRunFrame(struct mCore* core) { struct GBA* gba = core->board; - int32_t frameCounter = gba->video.frameCounter; + uint32_t frameCounter = gba->video.frameCounter; uint32_t startCycle = mTimingCurrentTime(&gba->timing); while (gba->video.frameCounter == frameCounter && mTimingCurrentTime(&gba->timing) - startCycle < VIDEO_TOTAL_LENGTH + VIDEO_HORIZONTAL_LENGTH) { ARMRunLoop(core->cpu); @@ -712,7 +712,7 @@ static void _GBACoreClearKeys(struct mCore* core, uint32_t keys) { GBATestKeypadIRQ(gba); } -static int32_t _GBACoreFrameCounter(const struct mCore* core) { +static uint32_t _GBACoreFrameCounter(const struct mCore* core) { const struct GBA* gba = core->board; return gba->video.frameCounter; }