aboutsummaryrefslogtreecommitdiff
path: root/source/sa1.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/sa1.c')
-rw-r--r--source/sa1.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/source/sa1.c b/source/sa1.c
index 1666e17..e190b5c 100644
--- a/source/sa1.c
+++ b/source/sa1.c
@@ -618,6 +618,8 @@ static void S9xSA1DMA()
void S9xSA1ReadVariableLengthData(bool inc, bool no_shift)
{
+ uint8_t s;
+ uint32_t data;
uint32_t addr = Memory.FillRAM[0x2259] | (Memory.FillRAM[0x225a] << 8) | (Memory.FillRAM[0x225b] << 16);
uint8_t shift = Memory.FillRAM [0x2258] & 15;
@@ -626,14 +628,14 @@ void S9xSA1ReadVariableLengthData(bool inc, bool no_shift)
else if (shift == 0)
shift = 16;
- uint8_t s = shift + SA1.variable_bit_pos;
+ s = shift + SA1.variable_bit_pos;
if (s >= 16)
{
addr += (s >> 4) << 1;
s &= 15;
}
- uint32_t data = S9xSA1GetWord(addr) | (S9xSA1GetWord(addr + 2) << 16);
+ data = S9xSA1GetWord(addr) | (S9xSA1GetWord(addr + 2) << 16);
data >>= s;
Memory.FillRAM [0x230c] = (uint8_t) data;