summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraliaspider2015-11-09 20:29:32 +0100
committeraliaspider2015-11-09 20:29:32 +0100
commit8d4780b83a112579e729a6f163ccd0ff30fc829f (patch)
tree36d9d8ec6b583beab905f7f59d145ec692ca29ef
parent7a7857f47b33f1b63fb585d2dc6c60d87c3e928f (diff)
downloadsnes9x2002-8d4780b83a112579e729a6f163ccd0ff30fc829f.tar.gz
snes9x2002-8d4780b83a112579e729a6f163ccd0ff30fc829f.tar.bz2
snes9x2002-8d4780b83a112579e729a6f163ccd0ff30fc829f.zip
solve 'for' loop initial declarations build errors.
remove --std=c99
-rw-r--r--Makefile2
-rw-r--r--jni/Android.mk2
-rw-r--r--src/dma.c1534
-rw-r--r--src/gfx16.c99
-rw-r--r--src/memmap.c27
-rw-r--r--src/rops.h3
-rw-r--r--src/sa1.c6
-rw-r--r--src/sdd1.c8
-rw-r--r--src/snapshot.c6
-rw-r--r--src/soundux.c21
-rw-r--r--src/tile16.h12
11 files changed, 900 insertions, 820 deletions
diff --git a/Makefile b/Makefile
index ad40f34..58aca57 100644
--- a/Makefile
+++ b/Makefile
@@ -79,7 +79,7 @@ OBJECTS := $(OBJECTS:.cpp=.o)
OBJECTS := $(OBJECTS:.S=.o)
OBJECTS := $(OBJECTS:.s=.o)
-CFLAGS += $(DEFINES) $(COMMON_DEFINES) $(INCLUDES) --std=c99
+CFLAGS += $(DEFINES) $(COMMON_DEFINES) $(INCLUDES)
all: $(TARGET)
diff --git a/jni/Android.mk b/jni/Android.mk
index c95e870..92c30db 100644
--- a/jni/Android.mk
+++ b/jni/Android.mk
@@ -28,7 +28,7 @@ LIBRETRO_DIR := ../libretro
include ../Makefile.common
LOCAL_SRC_FILES := $(SOURCES)
-LOCAL_CFLAGS += $(DEFINES) $(COMMON_DEFINES) $(INCLUDES) --std=c99
+LOCAL_CFLAGS += $(DEFINES) $(COMMON_DEFINES) $(INCLUDES)
LOCAL_ASFLAGS += $(DEFINES) $(COMMON_DEFINES) $(INCLUDES)
include $(BUILD_SHARED_LIBRARY)
diff --git a/src/dma.c b/src/dma.c
index 7e6e941..e3c2af7 100644
--- a/src/dma.c
+++ b/src/dma.c
@@ -4,7 +4,7 @@
* (c) Copyright 1996 - 2001 Gary Henderson (gary.henderson@ntlworld.com) and
* Jerremy Koot (jkoot@snes9x.com)
*
- * Super FX C emulator code
+ * Super FX C emulator code
* (c) Copyright 1997 - 1999 Ivar (ivar@snes9x.com) and
* Gary Henderson.
* Super FX assembler emulator code (c) Copyright 1998 zsKnight and _Demo_.
@@ -57,819 +57,839 @@ uint8 buffer[0x10000];
//SDD1//
extern int HDMA_ModeByteCounts [8];
-extern uint8 *HDMAMemPointers [8];
-extern uint8 *HDMABasePointers [8];
+extern uint8* HDMAMemPointers [8];
+extern uint8* HDMABasePointers [8];
-static int S9xCompareSDD1IndexEntries (const void *p1, const void *p2)
+static int S9xCompareSDD1IndexEntries(const void* p1, const void* p2)
{
- return (*(uint32 *) p1 - *(uint32 *) p2);
+ return (*(uint32*) p1 - * (uint32*) p2);
}
/**********************************************************************************************/
/* S9xDoDMA() */
/* This function preforms the general dma transfer */
/**********************************************************************************************/
-void S9xDoDMA (uint8 Channel)
+void S9xDoDMA(uint8 Channel)
{
- uint8 Work;
+ uint8 Work;
- if (Channel > 7 || CPU.InDMA)
- return;
+ if (Channel > 7 || CPU.InDMA)
+ return;
- CPU.InDMA = TRUE;
- bool8 in_sa1_dma = FALSE;
- uint8 *in_sdd1_dma = NULL;
- SDMA *d = &DMA[Channel];
+ CPU.InDMA = TRUE;
+ bool8 in_sa1_dma = FALSE;
+ uint8* in_sdd1_dma = NULL;
+ SDMA* d = &DMA[Channel];
- int count = d->TransferBytes;
+ int count = d->TransferBytes;
- if (count == 0)
- count = 0x10000;
+ if (count == 0)
+ count = 0x10000;
- int inc = d->AAddressFixed ? 0 : (!d->AAddressDecrement ? 1 : -1);
+ int inc = d->AAddressFixed ? 0 : (!d->AAddressDecrement ? 1 : -1);
- if((d->ABank==0x7E||d->ABank==0x7F)&&d->BAddress==0x80)
- {
- d->AAddress+= d->TransferBytes;
- goto update_address;
- }
- switch (d->BAddress)
- {
- case 0x18:
- case 0x19:
- if (IPPU.RenderThisFrame)
+ if ((d->ABank == 0x7E || d->ABank == 0x7F) && d->BAddress == 0x80)
+ {
+ d->AAddress += d->TransferBytes;
+ goto update_address;
+ }
+ switch (d->BAddress)
+ {
+ case 0x18:
+ case 0x19:
+ if (IPPU.RenderThisFrame)
#ifdef __DEBUG__
- printf("FLUSH_REDRAW by DMA BAddress %x", d->BAddress);
+ printf("FLUSH_REDRAW by DMA BAddress %x", d->BAddress);
#endif
- FLUSH_REDRAW ();
-
- break;
- }
-
- if (Settings.SDD1)
- {
- if (d->AAddressFixed && Memory.FillRAM [0x4801] > 0)
- {
- // Hacky support for pre-decompressed S-DD1 data
- inc = !d->AAddressDecrement ? 1 : -1;
- uint32 address = (((d->ABank << 16) | d->AAddress) & 0xfffff) << 4;
-
- address |= Memory.FillRAM [0x4804 + ((d->ABank - 0xc0) >> 4)];
- if(Settings.SDD1Pack)
- {
- uint8* in_ptr=GetBasePointer(((d->ABank << 16) | d->AAddress));
- in_ptr+=d->AAddress;
-
- SDD1_decompress(buffer,in_ptr,d->TransferBytes);
- in_sdd1_dma=buffer;
- }
- else
- {
- #if 1
- void *ptr = bsearch (&address, Memory.SDD1Index,
- Memory.SDD1Entries, 12, S9xCompareSDD1IndexEntries);
- if (ptr)
- in_sdd1_dma = *(uint32 *) ((uint8 *) ptr + 4) + Memory.SDD1Data;
- #else
- uint8 *ptr = Memory.SDD1Index;
-
- for (uint32 e = 0; e < Memory.SDD1Entries; e++, ptr += 12)
- {
- if (address == *(uint32 *) ptr)
- {
- in_sdd1_dma = *(uint32 *) (ptr + 4) + Memory.SDD1Data;
- break;
- }
- }
- #endif
-
-/* if (!in_sdd1_dma)
- {
- // No matching decompressed data found. Must be some new
- // graphics not encountered before. Log it if it hasn't been
- // already.
- uint8 *p = Memory.SDD1LoggedData;
- bool8 found = FALSE;
- uint8 SDD1Bank = Memory.FillRAM [0x4804 + ((d->ABank - 0xc0) >> 4)] | 0xf0;
-
- for (uint32 i = 0; i < Memory.SDD1LoggedDataCount; i++, p += 8)
- {
- if (*p == d->ABank ||
- *(p + 1) == (d->AAddress >> 8) &&
- *(p + 2) == (d->AAddress & 0xff) &&
- *(p + 3) == (count >> 8) &&
- *(p + 4) == (count & 0xff) &&
- *(p + 7) == SDD1Bank)
- {
- found = TRUE;
- break;
- }
- }
- if (!found && Memory.SDD1LoggedDataCount < MEMMAP_MAX_SDD1_LOGGED_ENTRIES)
- {
- *p = d->ABank;
- *(p + 1) = d->AAddress >> 8;
- *(p + 2) = d->AAddress & 0xff;
- *(p + 3) = count >> 8;
- *(p + 4) = count & 0xff;
- *(p + 7) = SDD1Bank;
- Memory.SDD1LoggedDataCount += 1;
- }
- }
-*/ }
- }
-
- Memory.FillRAM [0x4801] = 0;
- }
+ FLUSH_REDRAW();
+
+ break;
+ }
+
+ if (Settings.SDD1)
+ {
+ if (d->AAddressFixed && Memory.FillRAM [0x4801] > 0)
+ {
+ // Hacky support for pre-decompressed S-DD1 data
+ inc = !d->AAddressDecrement ? 1 : -1;
+ uint32 address = (((d->ABank << 16) | d->AAddress) & 0xfffff) << 4;
+
+ address |= Memory.FillRAM [0x4804 + ((d->ABank - 0xc0) >> 4)];
+ if (Settings.SDD1Pack)
+ {
+ uint8* in_ptr = GetBasePointer(((d->ABank << 16) | d->AAddress));
+ in_ptr += d->AAddress;
+
+ SDD1_decompress(buffer, in_ptr, d->TransferBytes);
+ in_sdd1_dma = buffer;
+ }
+ else
+ {
+#if 1
+ void* ptr = bsearch(&address, Memory.SDD1Index,
+ Memory.SDD1Entries, 12, S9xCompareSDD1IndexEntries);
+ if (ptr)
+ in_sdd1_dma = *(uint32*)((uint8*) ptr + 4) + Memory.SDD1Data;
+#else
+ uint8* ptr = Memory.SDD1Index;
+
+ for (uint32 e = 0; e < Memory.SDD1Entries; e++, ptr += 12)
+ {
+ if (address == *(uint32*) ptr)
+ {
+ in_sdd1_dma = *(uint32*)(ptr + 4) + Memory.SDD1Data;
+ break;
+ }
+ }
+#endif
+
+ /* if (!in_sdd1_dma)
+ {
+ // No matching decompressed data found. Must be some new
+ // graphics not encountered before. Log it if it hasn't been
+ // already.
+ uint8 *p = Memory.SDD1LoggedData;
+ bool8 found = FALSE;
+ uint8 SDD1Bank = Memory.FillRAM [0x4804 + ((d->ABank - 0xc0) >> 4)] | 0xf0;
+
+ for (uint32 i = 0; i < Memory.SDD1LoggedDataCount; i++, p += 8)
+ {
+ if (*p == d->ABank ||
+ *(p + 1) == (d->AAddress >> 8) &&
+ *(p + 2) == (d->AAddress & 0xff) &&
+ *(p + 3) == (count >> 8) &&
+ *(p + 4) == (count & 0xff) &&
+ *(p + 7) == SDD1Bank)
+ {
+ found = TRUE;
+ break;
+ }
+ }
+ if (!found && Memory.SDD1LoggedDataCount < MEMMAP_MAX_SDD1_LOGGED_ENTRIES)
+ {
+ *p = d->ABank;
+ *(p + 1) = d->AAddress >> 8;
+ *(p + 2) = d->AAddress & 0xff;
+ *(p + 3) = count >> 8;
+ *(p + 4) = count & 0xff;
+ *(p + 7) = SDD1Bank;
+ Memory.SDD1LoggedDataCount += 1;
+ }
+ }
+ */
+ }
+ }
+
+ Memory.FillRAM [0x4801] = 0;
+ }
#ifdef USE_SA1
- if (d->BAddress == 0x18 && SA1.in_char_dma && (d->ABank & 0xf0) == 0x40)
+ if (d->BAddress == 0x18 && SA1.in_char_dma && (d->ABank & 0xf0) == 0x40)
#else
- if (d->BAddress == 0x18 && (d->ABank & 0xf0) == 0x40)
+ if (d->BAddress == 0x18 && (d->ABank & 0xf0) == 0x40)
#endif
- {
- // Perform packed bitmap to PPU character format conversion on the
- // data before transmitting it to V-RAM via-DMA.
- int num_chars = 1 << ((Memory.FillRAM [0x2231] >> 2) & 7);
- int depth = (Memory.FillRAM [0x2231] & 3) == 0 ? 8 :
- (Memory.FillRAM [0x2231] & 3) == 1 ? 4 : 2;
-
- int bytes_per_char = 8 * depth;
- int bytes_per_line = depth * num_chars;
- int char_line_bytes = bytes_per_char * num_chars;
- uint32 addr = (d->AAddress / char_line_bytes) * char_line_bytes;
- uint8 *base = GetBasePointer ((d->ABank << 16) + addr) + addr;
- uint8 *buffer = &Memory.ROM [MAX_ROM_SIZE - 0x10000];
- uint8 *p = buffer;
- uint32 inc = char_line_bytes - (d->AAddress % char_line_bytes);
- uint32 char_count = inc / bytes_per_char;
-
- in_sa1_dma = TRUE;
-
-//printf ("%08x,", base); fflush (stdout);
-//printf ("depth = %d, count = %d, bytes_per_char = %d, bytes_per_line = %d, num_chars = %d, char_line_bytes = %d\n",
-//depth, count, bytes_per_char, bytes_per_line, num_chars, char_line_bytes);
- int i;
-
- switch (depth)
- {
- case 2:
- for (i = 0; i < count; i += inc, base += char_line_bytes,
- inc = char_line_bytes, char_count = num_chars)
- {
- uint8 *line = base + (num_chars - char_count) * 2;
- for (uint32 j = 0; j < char_count && p - buffer < count;
- j++, line += 2)
- {
- uint8 *q = line;
- for (int l = 0; l < 8; l++, q += bytes_per_line)
- {
- for (int b = 0; b < 2; b++)
- {
- uint8 r = *(q + b);
- *(p + 0) = (*(p + 0) << 1) | ((r >> 0) & 1);
- *(p + 1) = (*(p + 1) << 1) | ((r >> 1) & 1);
- *(p + 0) = (*(p + 0) << 1) | ((r >> 2) & 1);
- *(p + 1) = (*(p + 1) << 1) | ((r >> 3) & 1);
- *(p + 0) = (*(p + 0) << 1) | ((r >> 4) & 1);
- *(p + 1) = (*(p + 1) << 1) | ((r >> 5) & 1);
- *(p + 0) = (*(p + 0) << 1) | ((r >> 6) & 1);
- *(p + 1) = (*(p + 1) << 1) | ((r >> 7) & 1);
- }
- p += 2;
- }
- }
- }
- break;
- case 4:
- for (i = 0; i < count; i += inc, base += char_line_bytes,
- inc = char_line_bytes, char_count = num_chars)
- {
- uint8 *line = base + (num_chars - char_count) * 4;
- for (uint32 j = 0; j < char_count && p - buffer < count;
- j++, line += 4)
- {
- uint8 *q = line;
- int l;
- for (l = 0; l < 8; l++, q += bytes_per_line)
- {
- int b;
- for (b = 0; b < 4; b++)
- {
- uint8 r = *(q + b);
- *(p + 0) = (*(p + 0) << 1) | ((r >> 0) & 1);
- *(p + 1) = (*(p + 1) << 1) | ((r >> 1) & 1);
- *(p + 16) = (*(p + 16) << 1) | ((r >> 2) & 1);
- *(p + 17) = (*(p + 17) << 1) | ((r >> 3) & 1);
- *(p + 0) = (*(p + 0) << 1) | ((r >> 4) & 1);
- *(p + 1) = (*(p + 1) << 1) | ((r >> 5) & 1);
- *(p + 16) = (*(p + 16) << 1) | ((r >> 6) & 1);
- *(p + 17) = (*(p + 17) << 1) | ((r >> 7) & 1);
- }
- p += 2;
- }
- p += 32 - 16;
- }
- }
- break;
- case 8:
- for (i = 0; i < count; i += inc, base += char_line_bytes,
- inc = char_line_bytes, char_count = num_chars)
- {
- uint8 *line = base + (num_chars - char_count) * 8;
- for (uint32 j = 0; j < char_count && p - buffer < count;
- j++, line += 8)
- {
- uint8 *q = line;
- for (int l = 0; l < 8; l++, q += bytes_per_line)
- {
- for (int b = 0; b < 8; b++)
- {
- uint8 r = *(q + b);
- *(p + 0) = (*(p + 0) << 1) | ((r >> 0) & 1);
- *(p + 1) = (*(p + 1) << 1) | ((r >> 1) & 1);
- *(p + 16) = (*(p + 16) << 1) | ((r >> 2) & 1);
- *(p + 17) = (*(p + 17) << 1) | ((r >> 3) & 1);
- *(p + 32) = (*(p + 32) << 1) | ((r >> 4) & 1);
- *(p + 33) = (*(p + 33) << 1) | ((r >> 5) & 1);
- *(p + 48) = (*(p + 48) << 1) | ((r >> 6) & 1);
- *(p + 49) = (*(p + 49) << 1) | ((r >> 7) & 1);
- }
- p += 2;
- }
- p += 64 - 16;
- }
- }
- break;
- }
-
- }
-
- if (!d->TransferDirection)
- {
+ {
+ // Perform packed bitmap to PPU character format conversion on the
+ // data before transmitting it to V-RAM via-DMA.
+ int num_chars = 1 << ((Memory.FillRAM [0x2231] >> 2) & 7);
+ int depth = (Memory.FillRAM [0x2231] & 3) == 0 ? 8 :
+ (Memory.FillRAM [0x2231] & 3) == 1 ? 4 : 2;
+
+ int bytes_per_char = 8 * depth;
+ int bytes_per_line = depth * num_chars;
+ int char_line_bytes = bytes_per_char * num_chars;
+ uint32 addr = (d->AAddress / char_line_bytes) * char_line_bytes;
+ uint8* base = GetBasePointer((d->ABank << 16) + addr) + addr;
+ uint8* buffer = &Memory.ROM [MAX_ROM_SIZE - 0x10000];
+ uint8* p = buffer;
+ uint32 inc = char_line_bytes - (d->AAddress % char_line_bytes);
+ uint32 char_count = inc / bytes_per_char;
+
+ in_sa1_dma = TRUE;
+
+ //printf ("%08x,", base); fflush (stdout);
+ //printf ("depth = %d, count = %d, bytes_per_char = %d, bytes_per_line = %d, num_chars = %d, char_line_bytes = %d\n",
+ //depth, count, bytes_per_char, bytes_per_line, num_chars, char_line_bytes);
+ int i;
+
+ switch (depth)
+ {
+ case 2:
+ for (i = 0; i < count; i += inc, base += char_line_bytes,
+ inc = char_line_bytes, char_count = num_chars)
+ {
+ uint8* line = base + (num_chars - char_count) * 2;
+ uint32 j;
+ for (j = 0; j < char_count && p - buffer < count;
+ j++, line += 2)
+ {
+ uint8* q;
+ int l;
+ q = line;
+ for (l = 0; l < 8; l++, q += bytes_per_line)
+ {
+ int b;
+ for (b = 0; b < 2; b++)
+ {
+ uint8 r = *(q + b);
+ *(p + 0) = (*(p + 0) << 1) | ((r >> 0) & 1);
+ *(p + 1) = (*(p + 1) << 1) | ((r >> 1) & 1);
+ *(p + 0) = (*(p + 0) << 1) | ((r >> 2) & 1);
+ *(p + 1) = (*(p + 1) << 1) | ((r >> 3) & 1);
+ *(p + 0) = (*(p + 0) << 1) | ((r >> 4) & 1);
+ *(p + 1) = (*(p + 1) << 1) | ((r >> 5) & 1);
+ *(p + 0) = (*(p + 0) << 1) | ((r >> 6) & 1);
+ *(p + 1) = (*(p + 1) << 1) | ((r >> 7) & 1);
+ }
+ p += 2;
+ }
+ }
+ }
+ break;
+ case 4:
+ for (i = 0; i < count; i += inc, base += char_line_bytes,
+ inc = char_line_bytes, char_count = num_chars)
+ {
+ uint8* line = base + (num_chars - char_count) * 4;
+ uint32 j;
+ for (j = 0; j < char_count && p - buffer < count;
+ j++, line += 4)
+ {
+ uint8* q = line;
+ int l;
+ for (l = 0; l < 8; l++, q += bytes_per_line)
+ {
+ int b;
+ for (b = 0; b < 4; b++)
+ {
+ uint8 r = *(q + b);
+ *(p + 0) = (*(p + 0) << 1) | ((r >> 0) & 1);
+ *(p + 1) = (*(p + 1) << 1) | ((r >> 1) & 1);
+ *(p + 16) = (*(p + 16) << 1) | ((r >> 2) & 1);
+ *(p + 17) = (*(p + 17) << 1) | ((r >> 3) & 1);
+ *(p + 0) = (*(p + 0) << 1) | ((r >> 4) & 1);
+ *(p + 1) = (*(p + 1) << 1) | ((r >> 5) & 1);
+ *(p + 16) = (*(p + 16) << 1) | ((r >> 6) & 1);
+ *(p + 17) = (*(p + 17) << 1) | ((r >> 7) & 1);
+ }
+ p += 2;
+ }
+ p += 32 - 16;
+ }
+ }
+ break;
+ case 8:
+ for (i = 0; i < count; i += inc, base += char_line_bytes,
+ inc = char_line_bytes, char_count = num_chars)
+ {
+ uint8* line = base + (num_chars - char_count) * 8;
+ uint32 j;
+ for (j = 0; j < char_count && p - buffer < count;
+ j++, line += 8)
+ {
+ uint8* q;
+ int l;
+ q = line;
+ for (l = 0; l < 8; l++, q += bytes_per_line)
+ {
+ int b;
+ for (b = 0; b < 8; b++)
+ {
+ uint8 r = *(q + b);
+ *(p + 0) = (*(p + 0) << 1) | ((r >> 0) & 1);
+ *(p + 1) = (*(p + 1) << 1) | ((r >> 1) & 1);
+ *(p + 16) = (*(p + 16) << 1) | ((r >> 2) & 1);
+ *(p + 17) = (*(p + 17) << 1) | ((r >> 3) & 1);
+ *(p + 32) = (*(p + 32) << 1) | ((r >> 4) & 1);
+ *(p + 33) = (*(p + 33) << 1) | ((r >> 5) & 1);
+ *(p + 48) = (*(p + 48) << 1) | ((r >> 6) & 1);
+ *(p + 49) = (*(p + 49) << 1) | ((r >> 7) & 1);
+ }
+ p += 2;
+ }
+ p += 64 - 16;
+ }
+ }
+ break;
+ }
+
+ }
+
+ if (!d->TransferDirection)
+ {
#ifdef VAR_CYCLES
- //reflects extra cycle used by DMA
- CPU.Cycles += 8 * (count+1);
+ //reflects extra cycle used by DMA
+ CPU.Cycles += 8 * (count + 1);
#else
- //needs fixing for the extra DMA cycle
- CPU.Cycles += (1+count) + ((1+count) >> 2);
+ //needs fixing for the extra DMA cycle
+ CPU.Cycles += (1 + count) + ((1 + count) >> 2);
#endif
- uint8 *base = GetBasePointer ((d->ABank << 16) + d->AAddress);
- uint16 p = d->AAddress;
-
- if (!base)
- base = Memory.ROM;
-
- if (in_sa1_dma)
- {
- base = &Memory.ROM [MAX_ROM_SIZE - 0x10000];
- p = 0;
- }
-
- if (in_sdd1_dma)
- {
- base = in_sdd1_dma;
- p = 0;
- }
-
- if (inc > 0)
- d->AAddress += count;
- else
- if (inc < 0)
- d->AAddress -= count;
-
- if (d->TransferMode == 0 || d->TransferMode == 2)
- {
- switch (d->BAddress)
- {
- case 0x04:
- do
- {
- Work = *(base + p);
- REGISTER_2104(Work);
- p += inc;
- CHECK_SOUND();
- } while (--count > 0);
- break;
- case 0x18:
- IPPU.FirstVRAMRead = TRUE;
- if (!PPU.VMA.FullGraphicCount)
- {
- do
- {
- Work = *(base + p);
- REGISTER_2118_linear(Work);
- p += inc;
- CHECK_SOUND();
- } while (--count > 0);
- }
- else
- {
- do
- {
- Work = *(base + p);
- REGISTER_2118_tile(Work);
- p += inc;
- CHECK_SOUND();
- } while (--count > 0);
- }
- break;
- case 0x19:
- IPPU.FirstVRAMRead = TRUE;
- if (!PPU.VMA.FullGraphicCount)
- {
- do
- {
- Work = *(base + p);
- REGISTER_2119_linear(Work);
- p += inc;
- CHECK_SOUND();
- } while (--count > 0);
- }
- else
- {
- do
- {
- Work = *(base + p);
- REGISTER_2119_tile(Work);
- p += inc;
- CHECK_SOUND();
- } while (--count > 0);
- }
- break;
- case 0x22:
- do
- {
- Work = *(base + p);
- REGISTER_2122(Work);
- p += inc;
- CHECK_SOUND();
- } while (--count > 0);
- break;
- case 0x80:
- do
- {
- Work = *(base + p);
- REGISTER_2180(Work);
- p += inc;
- CHECK_SOUND();
- } while (--count > 0);
- break;
- default:
- do
- {
- Work = *(base + p);
- S9xSetPPU (Work, 0x2100 + d->BAddress);
- p += inc;
- CHECK_SOUND();
- } while (--count > 0);
- break;
- }
- }
- else
- if (d->TransferMode == 1 || d->TransferMode == 5)
- {
- if (d->BAddress == 0x18)
- {
- // Write to V-RAM
- IPPU.FirstVRAMRead = TRUE;
- if (!PPU.VMA.FullGraphicCount)
- {
- while (count > 1)
- {
- Work = *(base + p);
- REGISTER_2118_linear(Work);
- p += inc;
-
- Work = *(base + p);
- REGISTER_2119_linear(Work);
- p += inc;
- CHECK_SOUND();
- count -= 2;
- }
- if (count == 1)
- {
- Work = *(base + p);
- REGISTER_2118_linear(Work);
- p += inc;
- }
- }
- else
- {
- while (count > 1)
- {
- Work = *(base + p);
- REGISTER_2118_tile(Work);
- p += inc;
-
- Work = *(base + p);
- REGISTER_2119_tile(Work);
- p += inc;
- CHECK_SOUND();
- count -= 2;
- }
- if (count == 1)
- {
- Work = *(base + p);
- REGISTER_2118_tile(Work);
- p += inc;
- }
- }
- }
- else
- {
- // DMA mode 1 general case
- while (count > 1)
- {
- Work = *(base + p);
- S9xSetPPU (Work, 0x2100 + d->BAddress);
- p += inc;
-
- Work = *(base + p);
- S9xSetPPU (Work, 0x2101 + d->BAddress);
- p += inc;
- CHECK_SOUND();
- count -= 2;
- }
- if (count == 1)
- {
- Work = *(base + p);
- S9xSetPPU (Work, 0x2100 + d->BAddress);
- p += inc;
- }
- }
- }
- else
- if (d->TransferMode == 3)
- {
- do
- {
- Work = *(base + p);
- S9xSetPPU (Work, 0x2100 + d->BAddress);
- p += inc;
- if (count <= 1)
- break;
-
- Work = *(base + p);
- S9xSetPPU (Work, 0x2100 + d->BAddress);
- p += inc;
- if (count <= 2)
- break;
-
- Work = *(base + p);
- S9xSetPPU (Work, 0x2101 + d->BAddress);
- p += inc;
- if (count <= 3)
- break;
-
- Work = *(base + p);
- S9xSetPPU (Work, 0x2101 + d->BAddress);
- p += inc;
- CHECK_SOUND();
- count -= 4;
- } while (count > 0);
- }
- else
- if (d->TransferMode == 4)
- {
- do
- {
- Work = *(base + p);
- S9xSetPPU (Work, 0x2100 + d->BAddress);
- p += inc;
- if (count <= 1)
- break;
-
- Work = *(base + p);
- S9xSetPPU (Work, 0x2101 + d->BAddress);
- p += inc;
- if (count <= 2)
- break;
-
- Work = *(base + p);
- S9xSetPPU (Work, 0x2102 + d->BAddress);
- p += inc;
- if (count <= 3)
- break;
-
- Work = *(base + p);
- S9xSetPPU (Work, 0x2103 + d->BAddress);
- p += inc;
- CHECK_SOUND();
- count -= 4;
- } while (count > 0);
- }
- }
- else
- {
- do
- {
- switch (d->TransferMode)
- {
- case 0:
- case 2:
+ uint8* base = GetBasePointer((d->ABank << 16) + d->AAddress);
+ uint16 p = d->AAddress;
+
+ if (!base)
+ base = Memory.ROM;
+
+ if (in_sa1_dma)
+ {
+ base = &Memory.ROM [MAX_ROM_SIZE - 0x10000];
+ p = 0;
+ }
+
+ if (in_sdd1_dma)
+ {
+ base = in_sdd1_dma;
+ p = 0;
+ }
+
+ if (inc > 0)
+ d->AAddress += count;
+ else if (inc < 0)
+ d->AAddress -= count;
+
+ if (d->TransferMode == 0 || d->TransferMode == 2)
+ {
+ switch (d->BAddress)
+ {
+ case 0x04:
+ do
+ {
+ Work = *(base + p);
+ REGISTER_2104(Work);
+ p += inc;
+ CHECK_SOUND();
+ }
+ while (--count > 0);
+ break;
+ case 0x18:
+ IPPU.FirstVRAMRead = TRUE;
+ if (!PPU.VMA.FullGraphicCount)
+ {
+ do
+ {
+ Work = *(base + p);
+ REGISTER_2118_linear(Work);
+ p += inc;
+ CHECK_SOUND();
+ }
+ while (--count > 0);
+ }
+ else
+ {
+ do
+ {
+ Work = *(base + p);
+ REGISTER_2118_tile(Work);
+ p += inc;
+ CHECK_SOUND();
+ }
+ while (--count > 0);
+ }
+ break;
+ case 0x19:
+ IPPU.FirstVRAMRead = TRUE;
+ if (!PPU.VMA.FullGraphicCount)
+ {
+ do
+ {
+ Work = *(base + p);
+ REGISTER_2119_linear(Work);
+ p += inc;
+ CHECK_SOUND();
+ }
+ while (--count > 0);
+ }
+ else
+ {
+ do
+ {
+ Work = *(base + p);
+ REGISTER_2119_tile(Work);
+ p += inc;
+ CHECK_SOUND();
+ }
+ while (--count > 0);
+ }
+ break;
+ case 0x22:
+ do
+ {
+ Work = *(base + p);
+ REGISTER_2122(Work);
+ p += inc;
+ CHECK_SOUND();
+ }
+ while (--count > 0);
+ break;
+ case 0x80:
+ do
+ {
+ Work = *(base + p);
+ REGISTER_2180(Work);
+ p += inc;
+ CHECK_SOUND();
+ }
+ while (--count > 0);
+ break;
+ default:
+ do
+ {
+ Work = *(base + p);
+ S9xSetPPU(Work, 0x2100 + d->BAddress);
+ p += inc;
+ CHECK_SOUND();
+ }
+ while (--count > 0);
+ break;
+ }
+ }
+ else if (d->TransferMode == 1 || d->TransferMode == 5)
+ {
+ if (d->BAddress == 0x18)
+ {
+ // Write to V-RAM
+ IPPU.FirstVRAMRead = TRUE;
+ if (!PPU.VMA.FullGraphicCount)
+ {
+ while (count > 1)
+ {
+ Work = *(base + p);
+ REGISTER_2118_linear(Work);
+ p += inc;
+
+ Work = *(base + p);
+ REGISTER_2119_linear(Work);
+ p += inc;
+ CHECK_SOUND();
+ count -= 2;
+ }
+ if (count == 1)
+ {
+ Work = *(base + p);
+ REGISTER_2118_linear(Work);
+ p += inc;
+ }
+ }
+ else
+ {
+ while (count > 1)
+ {
+ Work = *(base + p);
+ REGISTER_2118_tile(Work);
+ p += inc;
+
+ Work = *(base + p);
+ REGISTER_2119_tile(Work);
+ p += inc;
+ CHECK_SOUND();
+ count -= 2;
+ }
+ if (count == 1)
+ {
+ Work = *(base + p);
+ REGISTER_2118_tile(Work);
+ p += inc;
+ }
+ }
+ }
+ else
+ {
+ // DMA mode 1 general case
+ while (count > 1)
+ {
+ Work = *(base + p);
+ S9xSetPPU(Work, 0x2100 + d->BAddress);
+ p += inc;
+
+ Work = *(base + p);
+ S9xSetPPU(Work, 0x2101 + d->BAddress);
+ p += inc;
+ CHECK_SOUND();
+ count -= 2;
+ }
+ if (count == 1)
+ {
+ Work = *(base + p);
+ S9xSetPPU(Work, 0x2100 + d->BAddress);
+ p += inc;
+ }
+ }
+ }
+ else if (d->TransferMode == 3)
+ {
+ do
+ {
+ Work = *(base + p);
+ S9xSetPPU(Work, 0x2100 + d->BAddress);
+ p += inc;
+ if (count <= 1)
+ break;
+
+ Work = *(base + p);
+ S9xSetPPU(Work, 0x2100 + d->BAddress);
+ p += inc;
+ if (count <= 2)
+ break;
+
+ Work = *(base + p);
+ S9xSetPPU(Work, 0x2101 + d->BAddress);
+ p += inc;
+ if (count <= 3)
+ break;
+
+ Work = *(base + p);
+ S9xSetPPU(Work, 0x2101 + d->BAddress);
+ p += inc;
+ CHECK_SOUND();
+ count -= 4;
+ }
+ while (count > 0);
+ }
+ else if (d->TransferMode == 4)
+ {
+ do
+ {
+ Work = *(base + p);
+ S9xSetPPU(Work, 0x2100 + d->BAddress);
+ p += inc;
+ if (count <= 1)
+ break;
+
+ Work = *(base + p);
+ S9xSetPPU(Work, 0x2101 + d->BAddress);
+ p += inc;
+ if (count <= 2)
+ break;
+
+ Work = *(base + p);
+ S9xSetPPU(Work, 0x2102 + d->BAddress);
+ p += inc;
+ if (count <= 3)
+ break;
+
+ Work = *(base + p);
+ S9xSetPPU(Work, 0x2103 + d->BAddress);
+ p += inc;
+ CHECK_SOUND();
+ count -= 4;
+ }
+ while (count > 0);
+ }
+ }
+ else
+ {
+ do
+ {
+ switch (d->TransferMode)
+ {
+ case 0:
+ case 2:
#ifndef VAR_CYCLES
- CPU.Cycles += 1;
+ CPU.Cycles += 1;
#endif
- Work = S9xGetPPU (0x2100 + d->BAddress);
- S9xSetByte (Work, (d->ABank << 16) + d->AAddress);
- d->AAddress += inc;
- --count;
- break;
-
- case 1:
- case 5:
+ Work = S9xGetPPU(0x2100 + d->BAddress);
+ S9xSetByte(Work, (d->ABank << 16) + d->AAddress);
+ d->AAddress += inc;
+ --count;
+ break;
+
+ case 1:
+ case 5:
#ifndef VAR_CYCLES
- CPU.Cycles += 3;
+ CPU.Cycles += 3;
#endif
- Work = S9xGetPPU (0x2100 + d->BAddress);
- S9xSetByte (Work, (d->ABank << 16) + d->AAddress);
- d->AAddress += inc;
- if (!--count)
- break;
-
- Work = S9xGetPPU (0x2101 + d->BAddress);
- S9xSetByte (Work, (d->ABank << 16) + d->AAddress);
- d->AAddress += inc;
- count--;
- break;
-
- case 3:
+ Work = S9xGetPPU(0x2100 + d->BAddress);
+ S9xSetByte(Work, (d->ABank << 16) + d->AAddress);
+ d->AAddress += inc;
+ if (!--count)
+ break;
+
+ Work = S9xGetPPU(0x2101 + d->BAddress);
+ S9xSetByte(Work, (d->ABank << 16) + d->AAddress);
+ d->AAddress += inc;
+ count--;
+ break;
+
+ case 3:
#ifndef VAR_CYCLES
- CPU.Cycles += 6;
+ CPU.Cycles += 6;
#endif
- Work = S9xGetPPU (0x2100 + d->BAddress);
- S9xSetByte (Work, (d->ABank << 16) + d->AAddress);
- d->AAddress += inc;
- if (!--count)
- break;
-
- Work = S9xGetPPU (0x2100 + d->BAddress);
- S9xSetByte (Work, (d->ABank << 16) + d->AAddress);
- d->AAddress += inc;
- if (!--count)
- break;
-
- Work = S9xGetPPU (0x2101 + d->BAddress);
- S9xSetByte (Work, (d->ABank << 16) + d->AAddress);
- d->AAddress += inc;
- if (!--count)
- break;
-
- Work = S9xGetPPU (0x2101 + d->BAddress);
- S9xSetByte (Work, (d->ABank << 16) + d->AAddress);
- d->AAddress += inc;
- count--;
- break;
-
- case 4:
+ Work = S9xGetPPU(0x2100 + d->BAddress);
+ S9xSetByte(Work, (d->ABank << 16) + d->AAddress);
+ d->AAddress += inc;
+ if (!--count)
+ break;
+
+ Work = S9xGetPPU(0x2100 + d->BAddress);
+ S9xSetByte(Work, (d->ABank << 16) + d->AAddress);
+ d->AAddress += inc;
+ if (!--count)
+ break;
+
+ Work = S9xGetPPU(0x2101 + d->BAddress);
+ S9xSetByte(Work, (d->ABank << 16) + d->AAddress);
+ d->AAddress += inc;
+ if (!--count)
+ break;
+
+ Work = S9xGetPPU(0x2101 + d->BAddress);
+ S9xSetByte(Work, (d->ABank << 16) + d->AAddress);
+ d->AAddress += inc;
+ count--;
+ break;
+
+ case 4:
#ifndef VAR_CYCLES
- CPU.Cycles += 6;
+ CPU.Cycles += 6;
#endif
- Work = S9xGetPPU (0x2100 + d->BAddress);
- S9xSetByte (Work, (d->ABank << 16) + d->AAddress);
- d->AAddress += inc;
- if (!--count)
- break;
-
- Work = S9xGetPPU (0x2101 + d->BAddress);
- S9xSetByte (Work, (d->ABank << 16) + d->AAddress);
- d->AAddress += inc;
- if (!--count)
- break;
-
- Work = S9xGetPPU (0x2102 + d->BAddress);
- S9xSetByte (Work, (d->ABank << 16) + d->AAddress);
- d->AAddress += inc;
- if (!--count)
- break;
-
- Work = S9xGetPPU (0x2103 + d->BAddress);
- S9xSetByte (Work, (d->ABank << 16) + d->AAddress);
- d->AAddress += inc;
- count--;
- break;
-
- default:
- count = 0;
- break;
- }
- CHECK_SOUND();
- } while (count);
- }
-
-//#ifdef SPC700_C
-#ifdef SPC700_SHUTDOWN
- CPU.APU_APUExecuting = Settings.APUEnabled;
+ Work = S9xGetPPU(0x2100 + d->BAddress);
+ S9xSetByte(Work, (d->ABank << 16) + d->AAddress);
+ d->AAddress += inc;
+ if (!--count)
+ break;
+
+ Work = S9xGetPPU(0x2101 + d->BAddress);
+ S9xSetByte(Work, (d->ABank << 16) + d->AAddress);
+ d->AAddress += inc;
+ if (!--count)
+ break;
+
+ Work = S9xGetPPU(0x2102 + d->BAddress);
+ S9xSetByte(Work, (d->ABank << 16) + d->AAddress);
+ d->AAddress += inc;
+ if (!--count)
+ break;
+
+ Work = S9xGetPPU(0x2103 + d->BAddress);
+ S9xSetByte(Work, (d->ABank << 16) + d->AAddress);
+ d->AAddress += inc;
+ count--;
+ break;
+
+ default:
+ count = 0;
+ break;
+ }
+ CHECK_SOUND();
+ }
+ while (count);
+ }
+
+ //#ifdef SPC700_C
+#ifdef SPC700_SHUTDOWN
+ CPU.APU_APUExecuting = Settings.APUEnabled;
#endif
- asm_APU_EXECUTE(1); // execute but only in normal mode
-//#endif
- while (CPU.Cycles > CPU.NextEvent)
- S9xDoHBlankProcessing ();
+ asm_APU_EXECUTE(1); // execute but only in normal mode
+ //#endif
+ while (CPU.Cycles > CPU.NextEvent)
+ S9xDoHBlankProcessing();
update_address:
- // Super Punch-Out requires that the A-BUS address be updated after the
- // DMA transfer.
- Memory.FillRAM[0x4302 + (Channel << 4)] = (uint8) d->AAddress;
- Memory.FillRAM[0x4303 + (Channel << 4)] = d->AAddress >> 8;
-
- // Secret of the Mana requires that the DMA bytes transfer count be set to
- // zero when DMA has completed.
- Memory.FillRAM [0x4305 + (Channel << 4)] = 0;
- Memory.FillRAM [0x4306 + (Channel << 4)] = 0;
-
- DMA[Channel].IndirectAddress = 0;
- d->TransferBytes = 0;
-
- CPU.InDMA = FALSE;
+ // Super Punch-Out requires that the A-BUS address be updated after the
+ // DMA transfer.
+ Memory.FillRAM[0x4302 + (Channel << 4)] = (uint8) d->AAddress;
+ Memory.FillRAM[0x4303 + (Channel << 4)] = d->AAddress >> 8;
+
+ // Secret of the Mana requires that the DMA bytes transfer count be set to
+ // zero when DMA has completed.
+ Memory.FillRAM [0x4305 + (Channel << 4)] = 0;
+ Memory.FillRAM [0x4306 + (Channel << 4)] = 0;
+
+ DMA[Channel].IndirectAddress = 0;
+ d->TransferBytes = 0;
+
+ CPU.InDMA = FALSE;
}
-void S9xStartHDMA ()
+void S9xStartHDMA()
{
- //if (Settings.DisableHDMA)
- //IPPU.HDMA = 0;
- //else
- missing.hdma_this_frame = IPPU.HDMA = Memory.FillRAM [0x420c];
-
- IPPU.HDMAStarted = TRUE;
-
- for (uint8 i = 0; i < 8; i++)
- {
- if (IPPU.HDMA & (1 << i))
- {
- DMA [i].LineCount = 0;
- DMA [i].FirstLine = TRUE;
- DMA [i].Address = DMA [i].AAddress;
- }
- HDMAMemPointers [i] = NULL;
- }
+ //if (Settings.DisableHDMA)
+ //IPPU.HDMA = 0;
+ //else
+ missing.hdma_this_frame = IPPU.HDMA = Memory.FillRAM [0x420c];
+
+ IPPU.HDMAStarted = TRUE;
+
+ uint8 i;
+ for (i = 0; i < 8; i++)
+ {
+ if (IPPU.HDMA & (1 << i))
+ {
+ DMA [i].LineCount = 0;
+ DMA [i].FirstLine = TRUE;
+ DMA [i].Address = DMA [i].AAddress;
+ }
+ HDMAMemPointers [i] = NULL;
+ }
}
-uint8 S9xDoHDMA (uint8 byte)
+uint8 S9xDoHDMA(uint8 byte)
{
- SDMA *p = &DMA [0];
-
- int d = 0;
-
- for (uint8 mask = 1; mask; mask <<= 1, p++, d++)
- {
- if (byte & mask)
- {
- if (!p->LineCount)
- {
- uint8 line = S9xGetByte ((p->ABank << 16) + p->Address);
- if (line == 0x80)
- {
- p->Repeat = TRUE;
- p->LineCount = 128;
- }
- else
- {
- p->Repeat = !(line & 0x80);
- p->LineCount = line & 0x7f;
- }
-
- // Disable H-DMA'ing into V-RAM (register 2118) for Hook
- if (!p->LineCount || p->BAddress == 0x18)
- {
- byte &= ~mask;
- p->IndirectAddress += HDMAMemPointers [d] - HDMABasePointers [d];
- Memory.FillRAM [0x4305 + (d << 4)] = (uint8) p->IndirectAddress;
- Memory.FillRAM [0x4306 + (d << 4)] = p->IndirectAddress >> 8;
- continue;
- }
-
- p->Address++;
- p->FirstLine = 1;
- if (p->HDMAIndirectAddressing)
- {
- p->IndirectBank = Memory.FillRAM [0x4307 + (d << 4)];
- p->IndirectAddress = S9xGetWord ((p->ABank << 16) + p->Address);
- p->Address += 2;
- }
- else
- {
- p->IndirectBank = p->ABank;
- p->IndirectAddress = p->Address;
- }
- HDMABasePointers [d] = HDMAMemPointers [d] =
- S9xGetMemPointer ((p->IndirectBank << 16) + p->IndirectAddress);
- }
- else
- {
-
- if (!HDMAMemPointers [d])
- {
- if (!p->HDMAIndirectAddressing)
- {
- p->IndirectBank = p->ABank;
- p->IndirectAddress = p->Address;
- }
-
- if (!(HDMABasePointers [d] = HDMAMemPointers [d] =
- S9xGetMemPointer ((p->IndirectBank << 16) + p->IndirectAddress)))
- {
- byte &= ~mask;
- continue;
- }
- // Uncommenting the following line breaks Punchout - it starts
- // H-DMA during the frame.
- //p->FirstLine = TRUE;
- }
- }
- if (p->Repeat && !p->FirstLine)
- {
- p->LineCount--;
- continue;
- }
- switch (p->TransferMode)
- {
- case 0:
+ SDMA* p = &DMA [0];
+
+ int d = 0;
+
+ uint8 mask;
+ for (mask = 1; mask; mask <<= 1, p++, d++)
+ {
+ if (byte & mask)
+ {
+ if (!p->LineCount)
+ {
+ uint8 line;
+ line = S9xGetByte((p->ABank << 16) + p->Address);
+ if (line == 0x80)
+ {
+ p->Repeat = TRUE;
+ p->LineCount = 128;
+ }
+ else
+ {
+ p->Repeat = !(line & 0x80);
+ p->LineCount = line & 0x7f;
+ }
+
+ // Disable H-DMA'ing into V-RAM (register 2118) for Hook
+ if (!p->LineCount || p->BAddress == 0x18)
+ {
+ byte &= ~mask;
+ p->IndirectAddress += HDMAMemPointers [d] - HDMABasePointers [d];
+ Memory.FillRAM [0x4305 + (d << 4)] = (uint8) p->IndirectAddress;
+ Memory.FillRAM [0x4306 + (d << 4)] = p->IndirectAddress >> 8;
+ continue;
+ }
+
+ p->Address++;
+ p->FirstLine = 1;
+ if (p->HDMAIndirectAddressing)
+ {
+ p->IndirectBank = Memory.FillRAM [0x4307 + (d << 4)];
+ p->IndirectAddress = S9xGetWord((p->ABank << 16) + p->Address);
+ p->Address += 2;
+ }
+ else
+ {
+ p->IndirectBank = p->ABank;
+ p->IndirectAddress = p->Address;
+ }
+ HDMABasePointers [d] = HDMAMemPointers [d] =
+ S9xGetMemPointer((p->IndirectBank << 16) + p->IndirectAddress);
+ }
+ else
+ {
+
+ if (!HDMAMemPointers [d])
+ {
+ if (!p->HDMAIndirectAddressing)
+ {
+ p->IndirectBank = p->ABank;
+ p->IndirectAddress = p->Address;
+ }
+
+ if (!(HDMABasePointers [d] = HDMAMemPointers [d] =
+ S9xGetMemPointer((p->IndirectBank << 16) + p->IndirectAddress)))
+ {
+ byte &= ~mask;
+ continue;
+ }
+ // Uncommenting the following line breaks Punchout - it starts
+ // H-DMA during the frame.
+ //p->FirstLine = TRUE;
+ }
+ }
+ if (p->Repeat && !p->FirstLine)
+ {
+ p->LineCount--;
+ continue;
+ }
+ switch (p->TransferMode)
+ {
+ case 0:
#ifndef VAR_CYCLES
- CPU.Cycles += 1;
+ CPU.Cycles += 1;
#else
- CPU.Cycles += 8;
+ CPU.Cycles += 8;
#endif
- S9xSetPPU (*HDMAMemPointers [d]++, 0x2100 + p->BAddress);
- break;
- case 1:
- case 5:
+ S9xSetPPU(*HDMAMemPointers [d]++, 0x2100 + p->BAddress);
+ break;
+ case 1:
+ case 5:
#ifndef VAR_CYCLES
- CPU.Cycles += 3;
+ CPU.Cycles += 3;
#else
- CPU.Cycles += 16;
+ CPU.Cycles += 16;
#endif
- S9xSetPPU (*(HDMAMemPointers [d] + 0), 0x2100 + p->BAddress);
- S9xSetPPU (*(HDMAMemPointers [d] + 1), 0x2101 + p->BAddress);
- HDMAMemPointers [d] += 2;
- break;
- case 2:
- case 6:
+ S9xSetPPU(*(HDMAMemPointers [d] + 0), 0x2100 + p->BAddress);
+ S9xSetPPU(*(HDMAMemPointers [d] + 1), 0x2101 + p->BAddress);
+ HDMAMemPointers [d] += 2;
+ break;
+ case 2:
+ case 6:
#ifndef VAR_CYCLES
- CPU.Cycles += 3;
+ CPU.Cycles += 3;
#else
- CPU.Cycles += 16;
+ CPU.Cycles += 16;
#endif
- S9xSetPPU (*(HDMAMemPointers [d] + 0), 0x2100 + p->BAddress);
- S9xSetPPU (*(HDMAMemPointers [d] + 1), 0x2100 + p->BAddress);
- HDMAMemPointers [d] += 2;
- break;
- case 3:
- case 7:
+ S9xSetPPU(*(HDMAMemPointers [d] + 0), 0x2100 + p->BAddress);
+ S9xSetPPU(*(HDMAMemPointers [d] + 1), 0x2100 + p->BAddress);
+ HDMAMemPointers [d] += 2;
+ break;
+ case 3:
+ case 7:
#ifndef VAR_CYCLES
- CPU.Cycles += 6;
+ CPU.Cycles += 6;
#else
- CPU.Cycles += 32;
+ CPU.Cycles += 32;
#endif
- S9xSetPPU (*(HDMAMemPointers [d] + 0), 0x2100 + p->BAddress);
- S9xSetPPU (*(HDMAMemPointers [d] + 1), 0x2100 + p->BAddress);
- S9xSetPPU (*(HDMAMemPointers [d] + 2), 0x2101 + p->BAddress);
- S9xSetPPU (*(HDMAMemPointers [d] + 3), 0x2101 + p->BAddress);
- HDMAMemPointers [d] += 4;
- break;
- case 4:
+ S9xSetPPU(*(HDMAMemPointers [d] + 0), 0x2100 + p->BAddress);
+ S9xSetPPU(*(HDMAMemPointers [d] + 1), 0x2100 + p->BAddress);
+ S9xSetPPU(*(HDMAMemPointers [d] + 2), 0x2101 + p->BAddress);
+ S9xSetPPU(*(HDMAMemPointers [d] + 3), 0x2101 + p->BAddress);
+ HDMAMemPointers [d] += 4;
+ break;
+ case 4:
#ifndef VAR_CYCLES
- CPU.Cycles += 6;
+ CPU.Cycles += 6;
#else
- CPU.Cycles += 32;
+ CPU.Cycles += 32;
#endif
- S9xSetPPU (*(HDMAMemPointers [d] + 0), 0x2100 + p->BAddress);
- S9xSetPPU (*(HDMAMemPointers [d] + 1), 0x2101 + p->BAddress);
- S9xSetPPU (*(HDMAMemPointers [d] + 2), 0x2102 + p->BAddress);
- S9xSetPPU (*(HDMAMemPointers [d] + 3), 0x2103 + p->BAddress);
- HDMAMemPointers [d] += 4;
- break;
- }
- if (!p->HDMAIndirectAddressing)
- p->Address += HDMA_ModeByteCounts [p->TransferMode];
- p->FirstLine = FALSE;
- p->LineCount--;
- }
- }
- return (byte);
+ S9xSetPPU(*(HDMAMemPointers [d] + 0), 0x2100 + p->BAddress);
+ S9xSetPPU(*(HDMAMemPointers [d] + 1), 0x2101 + p->BAddress);
+ S9xSetPPU(*(HDMAMemPointers [d] + 2), 0x2102 + p->BAddress);
+ S9xSetPPU(*(HDMAMemPointers [d] + 3), 0x2103 + p->BAddress);
+ HDMAMemPointers [d] += 4;
+ break;
+ }
+ if (!p->HDMAIndirectAddressing)
+ p->Address += HDMA_ModeByteCounts [p->TransferMode];
+ p->FirstLine = FALSE;
+ p->LineCount--;
+ }
+ }
+ return (byte);
}
-void S9xResetDMA ()
+void S9xResetDMA()
{
- int d;
- for (d = 0; d < 8; d++)
- {
- DMA [d].TransferDirection = FALSE;
- DMA [d].HDMAIndirectAddressing = FALSE;
- DMA [d].AAddressFixed = TRUE;
- DMA [d].AAddressDecrement = FALSE;
- DMA [d].TransferMode = 0xff;
- DMA [d].ABank = 0xff;
- DMA [d].AAddress = 0xffff;
- DMA [d].Address = 0xffff;
- DMA [d].BAddress = 0xff;
- DMA [d].TransferBytes = 0xffff;
- }
- for (int c = 0x4300; c < 0x4380; c += 0x10)
- {
- for (d = c; d < c + 12; d++)
- Memory.FillRAM [d] = 0xff;
-
- Memory.FillRAM [c + 0xf] = 0xff;
- }
+ int c, d;
+ for (d = 0; d < 8; d++)
+ {
+ DMA [d].TransferDirection = FALSE;
+ DMA [d].HDMAIndirectAddressing = FALSE;
+ DMA [d].AAddressFixed = TRUE;
+ DMA [d].AAddressDecrement = FALSE;
+ DMA [d].TransferMode = 0xff;
+ DMA [d].ABank = 0xff;
+ DMA [d].AAddress = 0xffff;
+ DMA [d].Address = 0xffff;
+ DMA [d].BAddress = 0xff;
+ DMA [d].TransferBytes = 0xffff;
+ }
+ for (c = 0x4300; c < 0x4380; c += 0x10)
+ {
+ for (d = c; d < c + 12; d++)
+ Memory.FillRAM [d] = 0xff;
+
+ Memory.FillRAM [c + 0xf] = 0xff;
+ }
}
diff --git a/src/gfx16.c b/src/gfx16.c
index 0012b78..4277740 100644
--- a/src/gfx16.c
+++ b/src/gfx16.c
@@ -255,9 +255,11 @@ bool8_32 S9xGraphicsInit ()
S9xSetRenderPixelFormat (RGB565);
#endif
- for (uint8 bitshift = 0; bitshift < 4; bitshift++)
+ uint8 bitshift;
+ for (bitshift = 0; bitshift < 4; bitshift++)
{
- for (register int i = 0; i < 16; i++)
+ register int i;
+ for (i = 0; i < 16; i++)
{
register uint32 h = 0;
register uint32 l = 0;
@@ -534,9 +536,11 @@ void S9xGraphicsDeinit (void)
void S9xBuildDirectColourMaps ()
{
- for (uint32 p = 0; p < 8; p++)
+ uint32 p;
+ for (p = 0; p < 8; p++)
{
- for (uint32 c = 0; c < 256; c++)
+ uint32 c;
+ for (c = 0; c < 256; c++)
{
// XXX: Brightness
/*
@@ -873,7 +877,8 @@ void DrawOBJS (bool8_32 OnMain, uint8 D)
DBG("Draw Objects.\n");
int I = 0;
- for (int S = GFX.OBJList [I++]; S >= 0; S = GFX.OBJList [I++])
+ int S;
+ for (S = GFX.OBJList [I++]; S >= 0; S = GFX.OBJList [I++])
{
int VPos = GFX.VPositions [S];
int Size = GFX.Sizes[S];
@@ -908,7 +913,8 @@ void DrawOBJS (bool8_32 OnMain, uint8 D)
GFX.Z2 = (PPU.OBJ[S].Priority + 1) * 4 + D;
- for (int clip = 0; clip < clipcount; clip++)
+ int clip;
+ for (clip = 0; clip < clipcount; clip++)
{
int Left;
int Right;
@@ -927,7 +933,8 @@ void DrawOBJS (bool8_32 OnMain, uint8 D)
PPU.OBJ[S].HPos >= Right)
continue;
- for (int Y = 0; Y < Size; Y += 8)
+ int Y;
+ for (Y = 0; Y < Size; Y += 8)
{
if (VPos + Y + 7 >= (int) GFX.StartY && VPos + Y <= (int) GFX.EndY)
{
@@ -994,7 +1001,8 @@ void DrawOBJS (bool8_32 OnMain, uint8 D)
else
Offset = 0;
- for (int X = 0; X < Middle; X++, O += 8 * GFX_PIXSIZE,
+ int X;
+ for (X = 0; X < Middle; X++, O += 8 * GFX_PIXSIZE,
Tile += TileInc)
{
//if (Tile & 0x100) BG.TileAddress = bg_ta_ns;
@@ -1075,7 +1083,8 @@ void DrawBackgroundMosaic (uint32 BGMode, uint32 bg, uint8 Z1, uint8 Z2)
OffsetShift = 3;
}
- for (uint32 Y = GFX.StartY; Y <= GFX.EndY; Y += Lines)
+ uint32 Y;
+ for (Y = GFX.StartY; Y <= GFX.EndY; Y += Lines)
{
uint32 VOffset = LineData [Y].BG[bg].VOffset;
uint32 HOffset = LineData [Y].BG[bg].HOffset;
@@ -1116,7 +1125,8 @@ void DrawBackgroundMosaic (uint32 BGMode, uint32 bg, uint8 Z1, uint8 Z2)
if (!ClipCount)
ClipCount = 1;
- for (uint32 clip = 0; clip < ClipCount; clip++)
+ uint32 clip;
+ for (clip = 0; clip < ClipCount; clip++)
{
if (GFX.pCurrentClip->Count [bg])
{
@@ -1127,7 +1137,8 @@ void DrawBackgroundMosaic (uint32 BGMode, uint32 bg, uint8 Z1, uint8 Z2)
PixWidth = PPU.Mosaic - r;
}
uint32 s = Y * GFX_PPL + Left * GFX_PIXSIZE;
- for (uint32 x = Left; x < Right; x += PixWidth,
+ uint32 x;
+ for (x = Left; x < Right; x += PixWidth,
s += PixWidth * GFX_PIXSIZE,
HPos += PixWidth, PixWidth = PPU.Mosaic)
{
@@ -1324,7 +1335,8 @@ void DrawBackgroundOffset (uint32 BGMode, uint32 bg, uint8 Z1, uint8 Z2)
}
TileBlank = 0xFFFFFFFF;
- for (uint32 Y = GFX.StartY; Y <= GFX.EndY; Y++)
+ uint32 Y;
+ for (Y = GFX.StartY; Y <= GFX.EndY; Y++)
{
uint32 VOff = LineData [Y].BG[2].VOffset - 1;
uint32 HOff = LineData [Y].BG[2].HOffset;
@@ -1362,7 +1374,8 @@ void DrawBackgroundOffset (uint32 BGMode, uint32 bg, uint8 Z1, uint8 Z2)
if (!clipcount)
clipcount = 1;
- for (int clip = 0; clip < clipcount; clip++)
+ int clip;
+ for (clip = 0; clip < clipcount; clip++)
{
uint32 Left;
uint32 Right;
@@ -1586,7 +1599,8 @@ void DrawBackgroundMode5 (uint32 BGMODE, uint32 bg, uint8 Z1, uint8 Z2)
}
int endy = GFX.EndY;
- for (int Y = GFX.StartY; Y <= endy; Y += Lines)
+ int Y;
+ for (Y = GFX.StartY; Y <= endy; Y += Lines)
{
//int y = Y;
uint32 VOffset = LineData [Y].BG[bg].VOffset;
@@ -1629,7 +1643,8 @@ void DrawBackgroundMode5 (uint32 BGMODE, uint32 bg, uint8 Z1, uint8 Z2)
int clipcount = GFX.pCurrentClip->Count [bg];
if (!clipcount)
clipcount = 1;
- for (int clip = 0; clip < clipcount; clip++)
+ int clip;
+ for (clip = 0; clip < clipcount; clip++)
{
int Left;
int Right;
@@ -1732,7 +1747,8 @@ void DrawBackgroundMode5 (uint32 BGMODE, uint32 bg, uint8 Z1, uint8 Z2)
Count = Width - Count;
int Middle = Count >> 3;
Count &= 7;
- for (int C = Middle; C > 0; s += 4, Quot++, C--)
+ int C;
+ for (C = Middle; C > 0; s += 4, Quot++, C--)
{
Tile = READ_2BYTES(t);
GFX.Z1 = GFX.Z2 = depths [(Tile & 0x2000) >> 13];
@@ -1885,7 +1901,8 @@ void DrawBackground_8(uint32 BGMode, uint32 bg, uint8 Z1, uint8 Z2)
HOffset = LineData [GFX.StartY].BG[bg].HOffset;
}
TileBlank = 0xFFFFFFFF;
- for (uint32 Y = GFX.StartY; Y <= GFX.EndY; Y += Lines){
+ uint32 Y;
+ for (Y = GFX.StartY; Y <= GFX.EndY; Y += Lines){
int y_ppl = Y * GFX_PPL;
if (oc) {
VOffset = LineData [Y].BG[bg].VOffset;
@@ -1974,7 +1991,8 @@ void DrawBackground_8(uint32 BGMode, uint32 bg, uint8 Z1, uint8 Z2)
// Middle, unclipped tiles
Count = Width - Count;
- for (int C = Count >> 3; C > 0; s += 8, Quot++, C--){
+ int C ;
+ for (C = Count >> 3; C > 0; s += 8, Quot++, C--){
//uint32 Tile = READ_2BYTES(t);
register uint32 Tile = *(t++);
if (Tile != TileBlank){
@@ -2042,7 +2060,8 @@ void DrawBackground_16 (uint32 BGMode, uint32 bg, uint8 Z1, uint8 Z2)
TileBlank = 0xFFFFFFFF;
unsigned int tb1 = 0xffffffff;
unsigned int tb2 = 0xffffffff;
- for (uint32 Y = GFX.StartY; Y <= GFX.EndY; Y += Lines){
+ uint32 Y ;
+ for (Y = GFX.StartY; Y <= GFX.EndY; Y += Lines){
int y_ppl = Y * GFX_PPL;
if (oc) {
VOffset = LineData [Y].BG[bg].VOffset;
@@ -2149,7 +2168,8 @@ void DrawBackground_16 (uint32 BGMode, uint32 bg, uint8 Z1, uint8 Z2)
// Middle, unclipped tiles
Count = Width - Count;
- for (int C = Count >> 3; C > 0; s += 8, Quot++, C--){
+ int C ;
+ for (C = Count >> 3; C > 0; s += 8, Quot++, C--){
if (!(Quot & 1)) {
Tile = *(t++);
Tile += tx_table[tx_index + ((Tile & (H_FLIP | V_FLIP)) >> 13)];
@@ -2567,7 +2587,8 @@ static void S9xUpdateScreenTransparency () // ~30-50ms! (called from FLUSH_REDRA
// Colour window enabled.
// loop around all of the lines being updated
- for (uint32 y = starty; y <= endy; y++)
+ uint32 y ;
+ for (y = starty; y <= endy; y++)
{
// Clear the subZbuffer
memset32 ((uint32_t*)(GFX.SubZBuffer + y * GFX_ZPITCH),0, (256>>2));
@@ -2579,7 +2600,8 @@ static void S9xUpdateScreenTransparency () // ~30-50ms! (called from FLUSH_REDRA
}
// loop through all window clippings
- for (uint32 c = 0; c < pClip->Count [5]; c++)
+ uint32 c ;
+ for (c = 0; c < pClip->Count [5]; c++)
{
int width = pClip->Right [c][5] - pClip->Left [c][5];
if (width > 0) {
@@ -2638,7 +2660,8 @@ static void S9xUpdateScreenTransparency () // ~30-50ms! (called from FLUSH_REDRA
// No windows are clipping the main screen
// this simplifies the screen clearing process
// loop through all of the lines to be updated
- for (uint32 y = starty; y <= endy; y++) {
+ uint32 y ;
+ for (y = starty; y <= endy; y++) {
// Clear the Zbuffer
memset32 ((uint32_t*)(GFX.ZBuffer + y * GFX_ZPITCH),0, (256>>2));
// clear the sub Zbuffer to 1
@@ -2738,10 +2761,12 @@ static void S9xUpdateScreenTransparency () // ~30-50ms! (called from FLUSH_REDRA
}
if (!(Count = pClip->Count [5])) Count = 1;
- for (uint32 y = starty; y <= endy; y++)
+ uint32 y ;
+ for (y = starty; y <= endy; y++)
{
- for (uint32 b = 0; b < Count; b++)
+ uint32 b ;
+ for (b = 0; b < Count; b++)
{
if (pClip->Count [5])
{
@@ -2891,9 +2916,11 @@ _ROP_##rop##half \
DBG("Copying subscreen with clipping...\n");
- for (uint32 y = starty; y <= endy; y++)
+ uint32 y ;
+ for (y = starty; y <= endy; y++)
{
- for (uint32 b = 0; b < pClip->Count [5]; b++)
+ uint32 b ;
+ for (b = 0; b < pClip->Count [5]; b++)
{
uint32 Left = pClip->Left [b][5];
uint32 Right = pClip->Right [b][5];
@@ -3018,14 +3045,16 @@ _ROP_##rop##half \
DBG("Clearing background with clipping...\n");
// loop through all of the lines that are going to be updated as part of this screen update
- for (uint32 y = starty; y <= endy; y++)
+ uint32 y ;
+ for (y = starty; y <= endy; y++)
{
memset32 ((uint32_t*)(GFX.Screen + y * GFX_PITCH), black,
IPPU.RenderedScreenWidth>>1);
if (black!=back)
{
- for (uint32 c = 0; c < IPPU.Clip [0].Count [5]; c++)
+ uint32 c ;
+ for (c = 0; c < IPPU.Clip [0].Count [5]; c++)
{
//if (IPPU.Clip [0].Right [c][5] > IPPU.Clip [0].Left [c][5])
//{
@@ -3070,7 +3099,8 @@ _ROP_##rop##half \
DBG("Clearing background with no clipping...\n");
// there is no clipping to worry about so just fill with the back colour
- for (uint32 y = starty; y <= endy; y++) {
+ uint32 y ;
+ for (y = starty; y <= endy; y++) {
memset32 ((uint32_t*)(GFX.Screen + y * GFX_PITCH), back, (256>>1));
}
@@ -3081,7 +3111,8 @@ _ROP_##rop##half \
{
DBG("Forced Blanking not in use. Clearing ZBuffer ... !!\n");
// Clear the Zbuffer for each of the lines which are going to be updated
- for (uint32 y = starty; y <= endy; y++) {
+ uint32 y ;
+ for (y = starty; y <= endy; y++) {
memset32 ((uint32_t*)(GFX.ZBuffer + y * GFX_ZPITCH), 0, (256>>2));
}
DBG("Rendering screen !!\n");
@@ -3125,7 +3156,8 @@ static void S9xUpdateScreenNoTransparency () // ~30-50ms! (called from FLUSH_RED
}
// now clear all graphics lines which are being updated using the back colour
- for (register uint32 y = starty; y <= endy; y++)
+ register uint32 y;
+ for (y = starty; y <= endy; y++)
{
memset32 ((uint32_t*)(GFX.Screen + y * GFX_PITCH), back,
IPPU.RenderedScreenWidth>>1);
@@ -3135,7 +3167,8 @@ static void S9xUpdateScreenNoTransparency () // ~30-50ms! (called from FLUSH_RED
{
// Loop through all lines being updated and clear the
// zbuffer for each of the lines
- for (uint32 y = starty; y <= endy; y++)
+ uint32 y ;
+ for (y = starty; y <= endy; y++)
{
memset32 ((uint32_t*)(GFX.ZBuffer + y * GFX_ZPITCH), 0,
IPPU.RenderedScreenWidth>>2);
diff --git a/src/memmap.c b/src/memmap.c
index df5dec1..eecb7bb 100644
--- a/src/memmap.c
+++ b/src/memmap.c
@@ -74,7 +74,8 @@ extern bool8 LoadZip(const char* , int32 *, int32 *);
bool8_32 AllASCII (uint8 *b, int size)
{
- for (int i = 0; i < size; i++)
+ int i;
+ for (i = 0; i < size; i++)
{
if (b[i] < 32 || b[i] > 126)
return (FALSE);
@@ -149,7 +150,8 @@ char *Safe (const char *s)
safe = (char *) malloc (safe_len = len + 1);
}
- for (int i = 0; i < len; i++)
+ int i;
+ for (i = 0; i < len; i++)
{
if (s [i] >= 32 && s [i] < 127)
safe [i] = s[i];
@@ -596,7 +598,8 @@ again:
{
for (i = 0; i < nblocks * 2; i++)
{
- for (int j = i; j < nblocks * 2; j++)
+ int j;
+ for (j = i; j < nblocks * 2; j++)
{
if (blocks [j] == i)
{
@@ -672,7 +675,8 @@ void S9xDeinterleaveMode2 ()
{
for (i = 0; i < nblocks * 2; i++)
{
- for (int j = i; j < nblocks * 2; j++)
+ int j;
+ for (j = i; j < nblocks * 2; j++)
{
if (blocks [j] == i)
{
@@ -1049,7 +1053,8 @@ void FixROMSpeed ()
void WriteProtectROM ()
{
memmove ((void *) Memory.WriteMap, (void *) Memory.Map, sizeof (Memory.Map));
- for (int c = 0; c < 0x1000; c++)
+ int c;
+ for (c = 0; c < 0x1000; c++)
{
if (Memory.BlockIsROM [c])
Memory.WriteMap [c] = (uint8 *) MAP_NONE;
@@ -2434,7 +2439,8 @@ void ApplyROMFixes ()
strcmp (Memory.ROMName, "HOME ALONE") == 0)
{
// Banks 00->3f and 80->bf
- for (int c = 0; c < 0x400; c += 16)
+ int c;
+ for (c = 0; c < 0x400; c += 16)
{
Memory.Map [c + 6] = Memory.Map [c + 0x806] = Memory.SRAM;
Memory.Map [c + 7] = Memory.Map [c + 0x807] = Memory.SRAM;
@@ -2475,7 +2481,8 @@ void ApplyROMFixes ()
// CAPCOM's protect
// Banks 0x808000, 0x408000 are mirroring.
- for (int c = 0; c < 8; c++)
+ int c;
+ for (c = 0; c < 8; c++)
Memory.Map [0x408 + c] = Memory.ROM - 0x8000;
}
@@ -2507,7 +2514,8 @@ void ApplyROMFixes ()
if (strcmp (Memory.ROMName, "DRAGON KNIGHT 4") == 0)
{
// Banks 70->7e, S-RAM
- for (int c = 0; c < 0xe0; c++)
+ int c;
+ for (c = 0; c < 0xe0; c++)
{
Memory.Map [c + 0x700] = (uint8 *) MAP_LOROM_SRAM;
Memory.BlockIsRAM [c + 0x700] = TRUE;
@@ -2751,7 +2759,8 @@ const uint32 crc32Table[256] = {
//CRC32 for char arrays
uint32 caCRC32(uint8 *array, uint32 size) {
register uint32 crc32 = 0xFFFFFFFF;
- for (register uint32 i = 0; i < size; i++) {
+ register uint32 i;
+ for (i = 0; i < size; i++) {
crc32 = ((crc32 >> 8) & 0x00FFFFFF) ^ crc32Table[(crc32 ^ array[i]) & 0xFF];
}
return ~crc32;
diff --git a/src/rops.h b/src/rops.h
index e5d3c78..0acec45 100644
--- a/src/rops.h
+++ b/src/rops.h
@@ -160,7 +160,8 @@ extern unsigned int ROpCount;
#define ADD_ROP(drop, dval) {rops[ROpCount].line = IPPU.CurrentLine; rops[ROpCount].rop = drop; rops[ROpCount].value = dval; ROpCount++;}
#define RESET_ROPS(from) \
{ \
- for (unsigned int c = from; c < ROpCount; c++) doRaster(&rops[c]);\
+ unsigned int c;\
+ for (c = from; c < ROpCount; c++) doRaster(&rops[c]);\
ROpCount = 0;\
}
diff --git a/src/sa1.c b/src/sa1.c
index 54fd9b2..4271a78 100644
--- a/src/sa1.c
+++ b/src/sa1.c
@@ -660,9 +660,11 @@ static void S9xSA1CharConv2 ()
if (depth == 8)
{
- for (int l = 0; l < 8; l++, q += 8)
+ int l;
+ for (l = 0; l < 8; l++, q += 8)
{
- for (int b = 0; b < 8; b++)
+ int b;
+ for (b = 0; b < 8; b++)
{
uint8 r = *(q + b);
*(p + 0) = (*(p + 0) << 1) | ((r >> 0) & 1);
diff --git a/src/sdd1.c b/src/sdd1.c
index 878bf4c..355a197 100644
--- a/src/sdd1.c
+++ b/src/sdd1.c
@@ -68,7 +68,8 @@ void S9xSetSDD1MemoryMap (uint32 bank, uint32 value)
void S9xResetSDD1 ()
{
memset (&Memory.FillRAM [0x4800], 0, 4);
- for (int i = 0; i < 4; i++)
+ int i;
+ for (i = 0; i < 4; i++)
{
Memory.FillRAM [0x4804 + i] = i;
S9xSetSDD1MemoryMap (i, i);
@@ -77,10 +78,11 @@ void S9xResetSDD1 ()
void S9xSDD1PostLoadState ()
{
- for (int i = 0; i < 4; i++)
+ int i;
+ for (i = 0; i < 4; i++)
S9xSetSDD1MemoryMap (i, Memory.FillRAM [0x4804 + i]);
}
-
+
static int S9xCompareSDD1LoggedDataEntries (const void *p1, const void *p2)
{
uint8 *b1 = (uint8 *) p1;
diff --git a/src/snapshot.c b/src/snapshot.c
index c44610c..72ed12d 100644
--- a/src/snapshot.c
+++ b/src/snapshot.c
@@ -594,7 +594,8 @@ static int Unfreeze()
IPPU.OBJChanged = TRUE;
CPU.InDMA = FALSE;
// Restore colors from PPU
- for (unsigned int i = 0; i < 256; i++) {
+ unsigned int i;
+ for (i = 0; i < 256; i++) {
IPPU.Red[i] = PPU.CGDATA[i] & 0x1f;
IPPU.Green[i] = (PPU.CGDATA[i] >> 5) & 0x1f;
IPPU.Blue[i] = (PPU.CGDATA[i] >> 10) & 0x1f;
@@ -648,7 +649,8 @@ static int Unfreeze()
return (result);
// notaz: just to be sure
- for(int u=0; u<8; u++) {
+ int u;
+ for(u=0; u<8; u++) {
SoundData.channels[u].env_ind_attack &= 0xf;
SoundData.channels[u].env_ind_decay &= 0x7;
SoundData.channels[u].env_ind_sustain&= 0x1f;
diff --git a/src/soundux.c b/src/soundux.c
index 50b737b..aed71f3 100644
--- a/src/soundux.c
+++ b/src/soundux.c
@@ -178,7 +178,8 @@ void S9xFixSoundAfterSnapshotLoad ()
S9xSetFilterCoefficient (6, (signed char) APU.DSP [APU_C6]);
S9xSetFilterCoefficient (7, (signed char) APU.DSP [APU_C7]);
- for (int i = 0; i < 8; i++)
+ int i;
+ for (i = 0; i < 8; i++)
{
SoundData.channels[i].needs_decode = TRUE;
S9xSetSoundFrequency (i, SoundData.channels[i].hertz);
@@ -353,7 +354,8 @@ static void MixStereo (int sample_count)
{
int pitch_mod = SoundData.pitch_mod & (0xFFFFFFFF^APU.DSP[APU_NON]);//~APU.DSP[APU_NON];
- for (uint32 J = 0; J < NUM_CHANNELS; J++)
+ uint32 J;
+ for (J = 0; J < NUM_CHANNELS; J++)
{
int32 VL, VR;
Channel *ch = &SoundData.channels[J];
@@ -382,7 +384,8 @@ static void MixStereo (int sample_count)
VL = (ch->sample * ch-> left_vol_level) / 128;
VR = (ch->sample * ch->right_vol_level) / 128;
- for (uint32 I = 0; I < (uint32) sample_count; I += 2)
+ uint32 I;
+ for (I = 0; I < (uint32) sample_count; I += 2)
{
unsigned long freq = freq0;
@@ -614,7 +617,8 @@ static void MixMono (int sample_count)
{
int pitch_mod = SoundData.pitch_mod & (0xFFFFFFFF^APU.DSP[APU_NON]);
- for (uint32 J = 0; J < NUM_CHANNELS; J++)
+ uint32 J;
+ for (J = 0; J < NUM_CHANNELS; J++)
{
Channel *ch = &SoundData.channels[J];
unsigned long freq0 = ch->frequency;
@@ -641,7 +645,8 @@ static void MixMono (int sample_count)
}
int32 V = (ch->sample * ch->left_vol_level) / 128;
- for (uint32 I = 0; I < (uint32) sample_count; I++)
+ uint32 I;
+ for (I = 0; I < (uint32) sample_count; I++)
{
unsigned long freq = freq0;
@@ -1058,7 +1063,8 @@ END_OF_FUNCTION(S9xMixSamplesO);
void S9xResetSound (bool8 full)
{
- for (int i = 0; i < 8; i++)
+ int i;
+ for (i = 0; i < 8; i++)
{
SoundData.channels[i].state = SOUND_SILENT;
SoundData.channels[i].mode = MODE_NONE;
@@ -1179,7 +1185,8 @@ void S9xSetPlaybackRate (uint32 playback_rate)
}
S9xSetEchoDelay (APU.DSP [APU_EDL] & 0xf);
- for (int i = 0; i < 8; i++)
+ int i;
+ for (i = 0; i < 8; i++)
S9xSetSoundFrequency (i, SoundData.channels [i].hertz);
}
diff --git a/src/tile16.h b/src/tile16.h
index f856b8e..e0560f0 100644
--- a/src/tile16.h
+++ b/src/tile16.h
@@ -161,7 +161,8 @@ extern uint32 TileBlank;
pixel = PIXEL; \
for (l = LineCount; l != 0; l--, sp += GFX_PPL, Depth += GFX_PPL) \
{ \
- for (int z = Pixels - 1; z >= 0; z--) \
+ int z ;\
+ for (z = Pixels - 1; z >= 0; z--) \
if (GFX.Z1 > Depth [z]) \
{ \
sp [z] = FUNCTION(sp + z, pixel); \
@@ -179,7 +180,8 @@ extern uint32 TileBlank;
pixel = PIXEL; \
for (l = LineCount; l != 0; l--, sp += GFX_PPL, Depth += GFX_PPL) \
{ \
- for (int z = Pixels - 1; z >= 0; z--) \
+ int z ;\
+ for (z = Pixels - 1; z >= 0; z--) \
if (GFX.Z1 > Depth [z]) \
{ \
sp [z] = FUNCTION(sp + z, pixel); \
@@ -197,7 +199,8 @@ extern uint32 TileBlank;
pixel = PIXEL; \
for (l = LineCount; l != 0; l--, sp += GFX_PPL, Depth += GFX_PPL) \
{ \
- for (int z = Pixels - 1; z >= 0; z--) \
+ int z ;\
+ for (z = Pixels - 1; z >= 0; z--) \
if (GFX.Z1 > Depth [z]) \
{ \
sp [z] = FUNCTION(sp + z, pixel); \
@@ -213,7 +216,8 @@ extern uint32 TileBlank;
pixel = PIXEL; \
for (l = LineCount; l != 0; l--, sp += GFX_PPL, Depth += GFX_PPL) \
{ \
- for (int z = Pixels - 1; z >= 0; z--) \
+ int z ;\
+ for (z = Pixels - 1; z >= 0; z--) \
if (GFX.Z1 > Depth [z]) \
{ \
sp [z] = FUNCTION(sp + z, pixel); \