diff options
Diffstat (limited to 'source/memmap.c')
-rw-r--r-- | source/memmap.c | 389 |
1 files changed, 194 insertions, 195 deletions
diff --git a/source/memmap.c b/source/memmap.c index 87cfc32..6f5b726 100644 --- a/source/memmap.c +++ b/source/memmap.c @@ -50,7 +50,7 @@ void S9xDeinterleaveType1(int32_t TotalFileSize, uint8_t* base) blocks [i * 2] = i + nblocks; blocks [i * 2 + 1] = i; } - // DS2 DMA notes: base may or may not be 32-byte aligned + /* DS2 DMA notes: base may or may not be 32-byte aligned */ uint8_t* tmp = (uint8_t*) malloc(0x8000); if (tmp) { @@ -61,13 +61,13 @@ void S9xDeinterleaveType1(int32_t TotalFileSize, uint8_t* base) { if (blocks [j] == i) { - // memmove converted: Different mallocs [Neb] + /* memmove converted: Different mallocs [Neb] */ memcpy(tmp, &base [blocks [j] * 0x8000], 0x8000); - // memmove converted: Different addresses, or identical for blocks[i] == blocks[j] [Neb] - // DS2 DMA notes: Don't do DMA at all if blocks[i] == blocks[j] + /* memmove converted: Different addresses, or identical for blocks[i] == blocks[j] [Neb] */ + /* DS2 DMA notes: Don't do DMA at all if blocks[i] == blocks[j] */ memcpy(&base [blocks [j] * 0x8000], &base [blocks [i] * 0x8000], 0x8000); - // memmove converted: Different mallocs [Neb] + /* memmove converted: Different mallocs [Neb] */ memcpy(&base [blocks [i] * 0x8000], tmp, 0x8000); uint8_t b = blocks [j]; blocks [j] = blocks [i]; @@ -85,17 +85,17 @@ void S9xDeinterleaveGD24(int32_t TotalFileSize, uint8_t* base) if (TotalFileSize != 0x300000) return; - // DS2 DMA notes: base may or may not be 32-byte aligned + /* DS2 DMA notes: base may or may not be 32-byte aligned */ uint8_t* tmp = (uint8_t*) malloc(0x80000); if (tmp) { - // memmove converted: Different mallocs [Neb] + /* memmove converted: Different mallocs [Neb] */ memcpy(tmp, &base[0x180000], 0x80000); - // memmove converted: Different addresses [Neb] + /* memmove converted: Different addresses [Neb] */ memcpy(&base[0x180000], &base[0x200000], 0x80000); - // memmove converted: Different addresses [Neb] + /* memmove converted: Different addresses [Neb] */ memcpy(&base[0x200000], &base[0x280000], 0x80000); - // memmove converted: Different mallocs [Neb] + /* memmove converted: Different mallocs [Neb] */ memcpy(&base[0x280000], tmp, 0x80000); free(tmp); @@ -122,7 +122,7 @@ static int32_t ScoreHiROM(bool skip_header, int32_t romoff) if (Memory.ROM [o + 0xd5] & 0x1) score += 2; - //Mode23 is SA-1 + /* Mode23 is SA-1 */ if (Memory.ROM [o + 0xd5] == 0x23) score -= 2; @@ -143,7 +143,7 @@ static int32_t ScoreHiROM(bool skip_header, int32_t romoff) if (!(Memory.ROM [o + 0xfd] & 0x80)) score -= 6; if ((Memory.ROM [o + 0xfc] | (Memory.ROM [o + 0xfd] << 8)) > 0xFFB0) - score -= 2; //reduced after looking at a scan by Cowering + score -= 2; /* reduced after looking at a scan by Cowering */ if (Memory.CalculatedSize > 1024 * 1024 * 3) score += 4; if ((1 << (Memory.ROM [o + 0xd7] - 7)) > 48) @@ -166,7 +166,7 @@ static int32_t ScoreLoROM(bool skip_header, int32_t romoff) if (!(Memory.ROM [o + 0xd5] & 0x1)) score += 3; - //Mode23 is SA-1 + /* Mode23 is SA-1 */ if (Memory.ROM [o + 0xd5] == 0x23) score += 2; @@ -186,7 +186,7 @@ static int32_t ScoreLoROM(bool skip_header, int32_t romoff) if (!(Memory.ROM [o + 0xfd] & 0x80)) score -= 6; if ((Memory.ROM [o + 0xfc] | (Memory.ROM [o + 0xfd] << 8)) > 0xFFB0) - score -= 2; //reduced per Cowering suggestion + score -= 2; /* reduced per Cowering suggestion */ if ((1 << (Memory.ROM [o + 0xd7] - 7)) > 48) score -= 1; if (!AllASCII(&Memory.ROM [o + 0xb0], 6)) @@ -237,13 +237,13 @@ static char* Safe(const char* s) /**********************************************************************************************/ bool S9xInitMemory(void) { - // DS2 DMA notes: These would do well to be allocated with 32 extra bytes - // so they can be 32-byte aligned. [Neb] + /* DS2 DMA notes: These would do well to be allocated with 32 extra bytes + so they can be 32-byte aligned. [Neb] */ Memory.RAM = (uint8_t*) calloc(0x20000, 1); Memory.SRAM = (uint8_t*) calloc(0x20000, 1); Memory.VRAM = (uint8_t*) calloc(0x10000, 1); Memory.BSRAM = (uint8_t*) calloc(0x80000, 1); - // Don't bother initializing ROM, we will load a game anyway. + /* Don't bother initializing ROM, we will load a game anyway. */ #ifdef DS2_DMA Memory.ROM = (uint8_t*) AlignedMalloc(MAX_ROM_SIZE + 0x200 + 0x8000, 32, &PtrAdj.ROM); #else @@ -265,16 +265,16 @@ bool S9xInitMemory(void) return false; } - // FillRAM uses first 32K of ROM image area, otherwise space just - // wasted. Might be read by the SuperFX code. + /* FillRAM uses first 32K of ROM image area, otherwise space just + wasted. Might be read by the SuperFX code. */ Memory.FillRAM = Memory.ROM; - // Add 0x8000 to ROM image pointer to stop SuperFX code accessing - // unallocated memory (can cause crash on some ports). - Memory.ROM += 0x8000; // still 32-byte aligned + /* Add 0x8000 to ROM image pointer to stop SuperFX code accessing + unallocated memory (can cause crash on some ports). */ + Memory.ROM += 0x8000; /* still 32-byte aligned */ SuperFX.pvRegisters = &Memory.FillRAM [0x3000]; - SuperFX.nRamBanks = 2; // Most only use 1. 1 = 64KB, 2 = 128KB = 1024Mb + SuperFX.nRamBanks = 2; /* Most only use 1. 1 = 64KB, 2 = 128KB = 1024Mb */ SuperFX.pvRam = Memory.SRAM; SuperFX.nRomBanks = (2 * 1024 * 1024) / (32 * 1024); SuperFX.pvRom = (uint8_t*) Memory.ROM; @@ -431,10 +431,10 @@ static void CheckForIPSPatch(const char* rom_filename, bool header, int32_t* rom } } - // Check if ROM image needs to be truncated + /* Check if ROM image needs to be truncated */ ofs = ReadInt(patch_file, 3); if (ofs != -1 && ofs - offset < *rom_size) - *rom_size = ofs - offset; // Need to truncate ROM image + *rom_size = ofs - offset; /* Need to truncate ROM image */ fclose(patch_file); return; @@ -461,7 +461,7 @@ static uint32_t FileLoader(uint8_t* buffer, const char* filename, int32_t maxsiz _makepath(fname, drive, dir, name, ext); #ifdef __WIN32__ - // memmove required: Overlapping addresses [Neb] + /* memmove required: Overlapping addresses [Neb] */ memmove(&ext [0], &ext[1], 4); #endif @@ -479,12 +479,12 @@ static uint32_t FileLoader(uint8_t* buffer, const char* filename, int32_t maxsiz int32_t calc_size; FileSize = fread(ptr, 1, maxsize + 0x200 - (ptr - Memory.ROM), ROMFile); fclose(ROMFile); - calc_size = FileSize & ~0x1FFF; // round to the lower 0x2000 + calc_size = FileSize & ~0x1FFF; /* round to the lower 0x2000 */ if ((FileSize - calc_size == 512 && !Settings.ForceNoHeader) || Settings.ForceHeader) { - // memmove required: Overlapping addresses [Neb] - // DS2 DMA notes: Can be split into 512-byte DMA blocks [Neb] + /* memmove required: Overlapping addresses [Neb] */ + /* DS2 DMA notes: Can be split into 512-byte DMA blocks [Neb] */ #ifdef DS2_DMA __dcache_writeback_all(); { @@ -507,14 +507,14 @@ static uint32_t FileLoader(uint8_t* buffer, const char* filename, int32_t maxsiz TotalFileSize += FileSize; - // check for multi file roms + /* check for multi file roms */ if ((ptr - Memory.ROM) < (maxsize + 0x200) && (isdigit(ext [0]) && ext [1] == 0 && ext [0] < '9')) { more = true; ext [0]++; #ifdef __WIN32__ - // memmove required: Overlapping addresses [Neb] + /* memmove required: Overlapping addresses [Neb] */ memmove(&ext [1], &ext [0], 4); ext [0] = '.'; #endif @@ -525,7 +525,7 @@ static uint32_t FileLoader(uint8_t* buffer, const char* filename, int32_t maxsiz more = true; name [len - 1]++; #ifdef __WIN32__ - // memmove required: Overlapping addresses [Neb] + /* memmove required: Overlapping addresses [Neb] */ memmove(&ext [1], &ext [0], 4); ext [0] = '.'; #endif @@ -597,10 +597,10 @@ again: TotalFileSize = FileLoader(Memory.ROM, filename, MAX_ROM_SIZE); if (!TotalFileSize) - return false; // it ends here + return false; /* it ends here */ CheckForIPSPatch(filename, Memory.HeaderCount != 0, &TotalFileSize); #endif - //fix hacked games here. + /* fix hacked games here. */ if ((strncmp("HONKAKUHA IGO GOSEI", (char*)&Memory.ROM[0x7FC0], 19) == 0) && (Memory.ROM[0x7FD5] != 0x31)) { Memory.ROM[0x7FD5] = 0x31; @@ -608,7 +608,7 @@ again: } #ifndef NO_SPEEDHACKS - // SNESAdvance speed hacks (from the speed-hacks branch of CatSFC) + /* SNESAdvance speed hacks (from the speed-hacks branch of CatSFC) */ if (strncmp("YOSHI'S ISLAND", (char *) &Memory.ROM[0x7FC0], 14) == 0) { Memory.ROM[0x0000F4] = 0x42; @@ -674,26 +674,26 @@ again: } } #else - // memmove required: Overlapping addresses [Neb] + /* memmove required: Overlapping addresses [Neb] */ memmove(Memory.ROM, Memory.ROM + 512, TotalFileSize - 512); #endif TotalFileSize -= 512; } - Memory.CalculatedSize = TotalFileSize & ~0x1FFF; // round down to lower 0x2000 + Memory.CalculatedSize = TotalFileSize & ~0x1FFF; /* round down to lower 0x2000 */ memset(Memory.ROM + Memory.CalculatedSize, 0, MAX_ROM_SIZE - Memory.CalculatedSize); if (Memory.CalculatedSize > 0x400000 && - !(Memory.ROM[0x7FD5] == 0x32 && ((Memory.ROM[0x7FD6] & 0xF0) == 0x40)) && //exclude S-DD1 - !(Memory.ROM[0xFFD5] == 0x3A && ((Memory.ROM[0xFFD6] & 0xF0) == 0xF0))) //exclude SPC7110 - Memory.ExtendedFormat = YEAH; //you might be a Jumbo! + !(Memory.ROM[0x7FD5] == 0x32 && ((Memory.ROM[0x7FD6] & 0xF0) == 0x40)) && /* exclude S-DD1 */ + !(Memory.ROM[0xFFD5] == 0x3A && ((Memory.ROM[0xFFD6] & 0xF0) == 0xF0))) /* exclude SPC7110 */ + Memory.ExtendedFormat = YEAH; /* you might be a Jumbo! */ - //If both vectors are invalid, it's type 1 LoROM + /* If both vectors are invalid, it's type 1 LoROM */ if(Memory.ExtendedFormat == NOPE && strncmp((char *) &Memory.ROM[0], "BANDAI SFC-ADX", 14) && ((Memory.ROM[0x7ffc] | (Memory.ROM[0x7ffd] << 8)) < 0x8000) && ((Memory.ROM[0xfffc] | (Memory.ROM[0xFffd] << 8)) < 0x8000) && !Settings.ForceInterleaved) S9xDeinterleaveType1(TotalFileSize, Memory.ROM); - //CalculatedSize is now set, so rescore + /* CalculatedSize is now set, so rescore */ hi_score = ScoreHiROM(false, 0); lo_score = ScoreLoROM(false, 0); @@ -705,7 +705,7 @@ again: swappedlorom = ScoreLoROM(false, 0x400000); swappedhirom = ScoreHiROM(false, 0x400000); - //set swapped here. + /* set swapped here. */ if (MAX(swappedlorom, swappedhirom) >= MAX(loromscore, hiromscore)) { Memory.ExtendedFormat = BIGFIRST; @@ -728,7 +728,7 @@ again: Memory.LoROM = true; Memory.HiROM = false; - // Ignore map type byte if not 0x2x or 0x3x + /* Ignore map type byte if not 0x2x or 0x3x */ if ((RomHeader [0x7fd5] & 0xf0) == 0x20 || (RomHeader [0x7fd5] & 0xf0) == 0x30) { switch (RomHeader [0x7fd5] & 0xf) @@ -759,7 +759,7 @@ again: Memory.HiROM = true; } - // More + /* More */ if (!Settings.ForceHiROM && !Settings.ForceLoROM && !Settings.ForceInterleaved && @@ -973,11 +973,11 @@ void S9xDeinterleaveType2(bool reset) ds2_DMA_wait(2); ds2_DMA_stop(2); #else - // memmove converted: Different mallocs [Neb] + /* memmove converted: Different mallocs [Neb] */ memcpy(tmp, &Memory.ROM [blocks [j] * 0x10000], 0x10000); - // memmove converted: Different addresses, or identical if blocks[i] == blocks[j] [Neb] + /* memmove converted: Different addresses, or identical if blocks[i] == blocks[j] [Neb] */ memcpy(&Memory.ROM [blocks [j] * 0x10000], &Memory.ROM [blocks [i] * 0x10000], 0x10000); - // memmove converted: Different mallocs [Neb] + /* memmove converted: Different mallocs [Neb] */ memcpy(&Memory.ROM [blocks [i] * 0x10000], tmp, 0x10000); #endif b = blocks [j]; @@ -1055,41 +1055,41 @@ void InitROM(bool Interleaved) ParseSNESHeader(RomHeader); - //// Detect and initialize chips - detection codes are compatible with NSRT + /* Detect and initialize chips - detection codes are compatible with NSRT */ - // DSP1/2/3/4 + /* DSP1/2/3/4 */ if (Memory.ROMType == 0x03) { if (Memory.ROMSpeed == 0x30) - Settings.DSP = 4; // DSP4 + Settings.DSP = 4; /* DSP4 */ else - Settings.DSP = 1; // DSP1 + Settings.DSP = 1; /* DSP1 */ } else if (Memory.ROMType == 0x05) { if (Memory.ROMSpeed == 0x20) - Settings.DSP = 2; // DSP2 + Settings.DSP = 2; /* DSP2 */ else if (Memory.ROMSpeed == 0x30 && RomHeader[0x2a] == 0xb2) - Settings.DSP = 3; // DSP3 + Settings.DSP = 3; /* DSP3 */ else - Settings.DSP = 1; // DSP1 + Settings.DSP = 1; /* DSP1 */ } switch (Settings.DSP) { - case 1: // DSP1 + case 1: /* DSP1 */ SetDSP = &DSP1SetByte; GetDSP = &DSP1GetByte; break; - case 2: // DSP2 + case 2: /* DSP2 */ SetDSP = &DSP2SetByte; GetDSP = &DSP2GetByte; break; - case 3: // DSP3 - //SetDSP = &DSP3SetByte; - //GetDSP = &DSP3GetByte; + case 3: /* DSP3 */ + /* SetDSP = &DSP3SetByte; */ + /* GetDSP = &DSP3GetByte; */ break; - case 4: // DSP4 + case 4: /* DSP4 */ SetDSP = &DSP4SetByte; GetDSP = &DSP4GetByte; break; @@ -1104,7 +1104,7 @@ void InitROM(bool Interleaved) if (Memory.HiROM) { - // Enable S-RTC (Real Time Clock) emulation for Dai Kaijyu Monogatari 2 + /* Enable S-RTC (Real Time Clock) emulation for Dai Kaijyu Monogatari 2 */ Settings.SRTC = ((Memory.ROMType & 0xf0) >> 4) == 5; if (((Memory.ROMSpeed & 0x0F) == 0x0A) && ((Memory.ROMType & 0xF0) == 0xF0)) @@ -1128,14 +1128,14 @@ void InitROM(bool Interleaved) if (Memory.ROMType == 0x25) Settings.OBC1 = true; - //BS-X BIOS + /* BS-X BIOS */ if (Memory.ROMType == 0xE5) Settings.BS = true; if ((Memory.ROMType & 0xf0) == 0x10) Settings.SuperFX = !Settings.ForceNoSuperFX; - //OBC1 hack ROM + /* OBC1 hack ROM */ if (strncmp(Memory.ROMName, "METAL COMBAT", 12) == 0 && Memory.ROMType == 0x13 && Memory.ROMSpeed == 0x42) { Settings.OBC1 = true; @@ -1282,7 +1282,7 @@ void InitROM(bool Interleaved) Settings.PAL = true; else { - //Korea refers to South Korea, which uses NTSC + /* Korea refers to South Korea, which uses NTSC */ switch (Memory.ROMRegion) { case 13: @@ -1399,7 +1399,7 @@ void map_index(uint32_t bank_s, uint32_t bank_e, uint32_t addr_s, uint32_t addr_ void WriteProtectROM(void) { - // memmove converted: Different mallocs [Neb] + /* memmove converted: Different mallocs [Neb] */ memcpy(Memory.WriteMap, Memory.Map, sizeof(Memory.Map)); int32_t c; for (c = 0; c < 0x1000; c++) @@ -1413,7 +1413,7 @@ void MapRAM(void) if (Memory.LoROM && !Settings.SDD1) { - // Banks 70->7d and f0->fe 0x0000-0x7FFF, S-RAM + /* Banks 70->7d and f0->fe 0x0000-0x7FFF, S-RAM */ for (c = 0; c < 0x0f; c++) { for (i = 0; i < 8; i++) @@ -1425,7 +1425,7 @@ void MapRAM(void) } if(Memory.CalculatedSize <= 0x200000) { - // Banks 70->7d 0x8000-0xffff S-RAM + /* Banks 70->7d 0x8000-0xffff S-RAM */ for (c = 0; c < 0x0e; c++) { for(i = 8; i < 16; i++) @@ -1439,7 +1439,7 @@ void MapRAM(void) } else if(Memory.LoROM && Settings.SDD1) { - // Banks 70->7d 0x0000-0x7FFF, S-RAM + /* Banks 70->7d 0x0000-0x7FFF, S-RAM */ for (c = 0; c < 0x0f; c++) { for (i = 0; i < 8; i++) @@ -1450,7 +1450,7 @@ void MapRAM(void) } } } - // Banks 7e->7f, RAM + /* Banks 7e->7f, RAM */ for (c = 0; c < 16; c++) { Memory.Map [c + 0x7e0] = Memory.RAM; @@ -1467,7 +1467,7 @@ void MapExtraRAM(void) { int32_t c; - // Banks 7e->7f, RAM + /* Banks 7e->7f, RAM */ for (c = 0; c < 16; c++) { Memory.Map [c + 0x7e0] = Memory.RAM; @@ -1478,7 +1478,7 @@ void MapExtraRAM(void) Memory.BlockIsROM [c + 0x7f0] = false; } - // Banks 70->73, S-RAM + /* Banks 70->73, S-RAM */ for (c = 0; c < 16; c++) { Memory.Map [c + 0x700] = Memory.SRAM; @@ -1502,7 +1502,7 @@ void LoROMMap(void) int32_t c; int32_t i; - // Banks 00->3f and 80->bf + /* Banks 00->3f and 80->bf */ for (c = 0; c < 0x400; c += 16) { Memory.Map [c + 0] = Memory.Map [c + 0x800] = Memory.RAM; @@ -1540,7 +1540,7 @@ void LoROMMap(void) } } - // Banks 40->7f and c0->ff + /* Banks 40->7f and c0->ff */ for (c = 0; c < 0x400; c += 16) { for (i = c; i < c + 8; i++) @@ -1605,7 +1605,7 @@ void SetaDSPMap(void) int32_t c; int32_t i; - // Banks 00->3f and 80->bf + /* Banks 00->3f and 80->bf */ for (c = 0; c < 0x400; c += 16) { Memory.Map [c + 0] = Memory.Map [c + 0x800] = Memory.RAM; @@ -1627,13 +1627,13 @@ void SetaDSPMap(void) } } - // Banks 40->7f and c0->ff + /* Banks 40->7f and c0->ff */ for (c = 0; c < 0x400; c += 16) { for (i = c + 8; i < c + 16; i++) Memory.Map [i + 0x400] = Memory.Map [i + 0xc00] = &Memory.ROM [((c << 11) + 0x200000) % Memory.CalculatedSize] - 0x8000; - //only upper half is ROM + /* only upper half is ROM */ for (i = c + 8; i < c + 16; i++) Memory.BlockIsROM [i + 0x400] = Memory.BlockIsROM [i + 0xc00] = true; } @@ -1643,7 +1643,7 @@ void SetaDSPMap(void) { for (i = 0; i < 0x08; i++) { - // Where does the SETA chip access, anyway? Please confirm this. + /* Where does the SETA chip access, anyway? Please confirm this. */ Memory.Map[c + 0x80 + i] = (uint8_t*)MAP_SETA_DSP; Memory.BlockIsROM [c + 0x80 + i] = false; Memory.BlockIsRAM [c + 0x80 + i] = true; @@ -1651,7 +1651,7 @@ void SetaDSPMap(void) for (i = 0; i < 0x04; i++) { - //and this! + /* and this! */ Memory.Map[c + i] = (uint8_t*)MAP_SETA_DSP; Memory.BlockIsROM [c + i] = false; } @@ -1666,7 +1666,7 @@ void HiROMMap(void) int32_t i; int32_t c; - // Banks 00->3f and 80->bf + /* Banks 00->3f and 80->bf */ for (c = 0; c < 0x400; c += 16) { Memory.Map [c + 0] = Memory.Map [c + 0x800] = Memory.RAM; @@ -1688,7 +1688,7 @@ void HiROMMap(void) } } - // Banks 30->3f and b0->bf, address ranges 6000->7fff is S-RAM. + /* Banks 30->3f and b0->bf, address ranges 6000->7fff is S-RAM. */ for (c = 0; c < 16; c++) { Memory.Map [0x306 + (c << 4)] = MAP_HIROM_SRAM_OR_NONE; @@ -1701,7 +1701,7 @@ void HiROMMap(void) Memory.BlockIsRAM [0xb07 + (c << 4)] = true; } - // Banks 40->7f and c0->ff + /* Banks 40->7f and c0->ff */ for (c = 0; c < 0x400; c += 16) { for (i = c; i < c + 16; i++) @@ -1731,10 +1731,10 @@ void TalesROMMap(bool Interleaved) { OFFSET0 = 0x000000; OFFSET1 = 0x000000; - OFFSET2 = Memory.CalculatedSize - 0x400000; //changed to work with interleaved DKJM2. + OFFSET2 = Memory.CalculatedSize - 0x400000; /* changed to work with interleaved DKJM2. */ } - // Banks 00->3f and 80->bf + /* Banks 00->3f and 80->bf */ for (c = 0; c < 0x400; c += 16) { Memory.Map [c + 0] = Memory.Map [c + 0x800] = Memory.RAM; @@ -1747,8 +1747,8 @@ void TalesROMMap(bool Interleaved) Memory.Map [c + 4] = Memory.Map [c + 0x804] = (uint8_t*) MAP_CPU; Memory.Map [c + 5] = Memory.Map [c + 0x805] = (uint8_t*) MAP_CPU; - //makes more sense to map the range here. - //ToP seems to use sram to skip intro??? + /* makes more sense to map the range here. */ + /* ToP seems to use sram to skip intro??? */ if (c >= 0x300) { Memory.Map [c + 6] = Memory.Map [c + 0x806] = MAP_HIROM_SRAM_OR_NONE; @@ -1769,7 +1769,7 @@ void TalesROMMap(bool Interleaved) } } - // Banks 40->7f and c0->ff + /* Banks 40->7f and c0->ff */ for (c = 0; c < 0x400; c += 16) { for (i = c; i < c + 8; i++) @@ -1810,7 +1810,7 @@ void AlphaROMMap(void) int32_t c; int32_t i; - // Banks 00->3f and 80->bf + /* Banks 00->3f and 80->bf */ for (c = 0; c < 0x400; c += 16) { Memory.Map [c + 0] = Memory.Map [c + 0x800] = Memory.RAM; @@ -1832,7 +1832,7 @@ void AlphaROMMap(void) } } - // Banks 40->7f and c0->ff + /* Banks 40->7f and c0->ff */ for (c = 0; c < 0x400; c += 16) { @@ -1865,7 +1865,7 @@ void SuperFXROMMap(void) DetectSuperFxRamSize(); - // Banks 00->3f and 80->bf + /* Banks 00->3f and 80->bf */ for (c = 0; c < 0x400; c += 16) { Memory.Map [c + 0] = Memory.Map [c + 0x800] = Memory.RAM; @@ -1888,7 +1888,7 @@ void SuperFXROMMap(void) } } - // Banks 40->7f and c0->ff + /* Banks 40->7f and c0->ff */ for (c = 0; c < 0x400; c += 16) { for (i = c; i < c + 16; i++) @@ -1898,7 +1898,7 @@ void SuperFXROMMap(void) } } - // Banks 7e->7f, RAM + /* Banks 7e->7f, RAM */ for (c = 0; c < 16; c++) { Memory.Map [c + 0x7e0] = Memory.RAM; @@ -1909,7 +1909,7 @@ void SuperFXROMMap(void) Memory.BlockIsROM [c + 0x7f0] = false; } - // Banks 70->71, S-RAM + /* Banks 70->71, S-RAM */ for (c = 0; c < 32; c++) { Memory.Map [c + 0x700] = Memory.SRAM + (((c >> 4) & 1) << 16); @@ -1917,8 +1917,8 @@ void SuperFXROMMap(void) Memory.BlockIsROM [c + 0x700] = false; } - // Replicate the first 2Mb of the ROM at ROM + 2MB such that each 32K - // block is repeated twice in each 64K block. + /* Replicate the first 2Mb of the ROM at ROM + 2MB such that each 32K + block is repeated twice in each 64K block. */ #ifdef DS2_DMA __dcache_writeback_all(); #endif @@ -1932,9 +1932,9 @@ void SuperFXROMMap(void) ds2_DMA_stop(2); ds2_DMA_stop(3); #else - // memmove converted: Different addresses [Neb] + /* memmove converted: Different addresses [Neb] */ memcpy(&Memory.ROM [0x200000 + c * 0x10000], &Memory.ROM [c * 0x8000], 0x8000); - // memmove converted: Different addresses [Neb] + /* memmove converted: Different addresses [Neb] */ memcpy(&Memory.ROM [0x208000 + c * 0x10000], &Memory.ROM [c * 0x8000], 0x8000); #endif } @@ -1947,7 +1947,7 @@ void SA1ROMMap(void) int32_t c; int32_t i; - // Banks 00->3f and 80->bf + /* Banks 00->3f and 80->bf */ for (c = 0; c < 0x400; c += 16) { Memory.Map [c + 0] = Memory.Map [c + 0x800] = Memory.RAM; @@ -1968,7 +1968,7 @@ void SA1ROMMap(void) } } - // Banks 40->7f + /* Banks 40->7f */ for (c = 0; c < 0x400; c += 16) { for (i = c; i < c + 16; i++) @@ -1978,7 +1978,7 @@ void SA1ROMMap(void) Memory.BlockIsROM [i + 0x400] = false; } - // c0->ff + /* c0->ff */ for (c = 0; c < 0x400; c += 16) { for (i = c; i < c + 16; i++) @@ -1999,13 +1999,13 @@ void SA1ROMMap(void) } WriteProtectROM(); - // Now copy the map and correct it for the SA1 CPU. - // memmove converted: Different mallocs [Neb] + /* Now copy the map and correct it for the SA1 CPU. */ + /* memmove converted: Different mallocs [Neb] */ memcpy((void*) SA1.WriteMap, (void*) Memory.WriteMap, sizeof(Memory.WriteMap)); - // memmove converted: Different mallocs [Neb] + /* memmove converted: Different mallocs [Neb] */ memcpy((void*) SA1.Map, (void*) Memory.Map, sizeof(Memory.Map)); - // Banks 00->3f and 80->bf + /* Banks 00->3f and 80->bf */ for (c = 0; c < 0x400; c += 16) { SA1.Map [c + 0] = SA1.Map [c + 0x800] = &Memory.FillRAM [0x3000]; @@ -2014,7 +2014,7 @@ void SA1ROMMap(void) SA1.WriteMap [c + 1] = SA1.WriteMap [c + 0x801] = (uint8_t*) MAP_NONE; } - // Banks 60->6f + /* Banks 60->6f */ for (c = 0; c < 0x100; c++) SA1.Map [c + 0x600] = SA1.WriteMap [c + 0x600] = (uint8_t*) MAP_BWRAM_BITMAP; @@ -2026,7 +2026,7 @@ void LoROM24MBSMap(void) int32_t c; int32_t i; - // Banks 00->3f and 80->bf + /* Banks 00->3f and 80->bf */ for (c = 0; c < 0x400; c += 16) { Memory.Map [c + 0] = Memory.Map [c + 0x800] = Memory.RAM; @@ -2048,7 +2048,7 @@ void LoROM24MBSMap(void) } } - // Banks 00->3f and 80->bf + /* Banks 00->3f and 80->bf */ for (c = 0; c < 0x200; c += 16) { Memory.Map [c + 0x800] = Memory.RAM; @@ -2070,7 +2070,7 @@ void LoROM24MBSMap(void) } } - // Banks 40->7f and c0->ff + /* Banks 40->7f and c0->ff */ for (c = 0; c < 0x400; c += 16) { for (i = c; i < c + 8; i++) @@ -2092,7 +2092,7 @@ void SufamiTurboLoROMMap(void) int32_t c; int32_t i; - // Banks 00->3f and 80->bf + /* Banks 00->3f and 80->bf */ for (c = 0; c < 0x400; c += 16) { Memory.Map [c + 0] = Memory.Map [c + 0x800] = Memory.RAM; @@ -2113,7 +2113,7 @@ void SufamiTurboLoROMMap(void) } } - // Banks 40->7f and c0->ff + /* Banks 40->7f and c0->ff */ for (c = 0; c < 0x400; c += 16) { for (i = c; i < c + 8; i++) @@ -2135,7 +2135,7 @@ void SufamiTurboLoROMMap(void) } } - // Banks 7e->7f, RAM + /* Banks 7e->7f, RAM */ for (c = 0; c < 16; c++) { Memory.Map [c + 0x7e0] = Memory.RAM; @@ -2146,7 +2146,7 @@ void SufamiTurboLoROMMap(void) Memory.BlockIsROM [c + 0x7f0] = false; } - // Banks 60->67, S-RAM + /* Banks 60->67, S-RAM */ for (c = 0; c < 0x80; c++) { Memory.Map [c + 0x600] = MAP_LOROM_SRAM_OR_NONE; @@ -2162,7 +2162,7 @@ void SRAM512KLoROMMap(void) int32_t c; int32_t i; - // Banks 00->3f and 80->bf + /* Banks 00->3f and 80->bf */ for (c = 0; c < 0x400; c += 16) { Memory.Map [c + 0] = Memory.Map [c + 0x800] = Memory.RAM; @@ -2183,7 +2183,7 @@ void SRAM512KLoROMMap(void) } } - // Banks 40->7f and c0->ff + /* Banks 40->7f and c0->ff */ for (c = 0; c < 0x400; c += 16) { for (i = c; i < c + 8; i++) @@ -2205,7 +2205,7 @@ void SRAM1024KLoROMMap(void) int32_t c; int32_t i; - // Banks 00->3f and 80->bf + /* Banks 00->3f and 80->bf */ for (c = 0; c < 0x400; c += 16) { Memory.Map [c + 0] = Memory.Map [c + 0x800] = Memory.RAM; @@ -2235,7 +2235,7 @@ void CapcomProtectLoROMMap(void) int32_t c; int32_t i; - // Banks 00->3f and 80->bf + /* Banks 00->3f and 80->bf */ for (c = 0; c < 0x400; c += 16) { Memory.Map [c + 0] = Memory.Map [c + 0x800] = Memory.Map [c + 0x400] = Memory.Map [c + 0xc00] = Memory.RAM; @@ -2271,9 +2271,9 @@ void JumboLoROMMap(bool Interleaved) if (Interleaved) { OFFSET0 = 0x000000; - OFFSET2 = Memory.CalculatedSize - 0x400000; //changed to work with interleaved DKJM2. + OFFSET2 = Memory.CalculatedSize - 0x400000; /* changed to work with interleaved DKJM2. */ } - // Banks 00->3f and 80->bf + /* Banks 00->3f and 80->bf */ for (c = 0; c < 0x400; c += 16) { Memory.Map [c + 0] = Memory.Map [c + 0x800] = Memory.RAM; @@ -2311,7 +2311,7 @@ void JumboLoROMMap(bool Interleaved) if (Settings.DSP1Master) { - // Banks 30->3f and b0->bf + /* Banks 30->3f and b0->bf */ for (c = 0x300; c < 0x400; c += 16) { for (i = c + 8; i < c + 16; i++) @@ -2322,10 +2322,10 @@ void JumboLoROMMap(bool Interleaved) } } - // Banks 40->7f and c0->ff + /* Banks 40->7f and c0->ff */ for (c = 0x400; c < 0x800; c += 16) { - //updated mappings to correct A15 mirroring + /* updated mappings to correct A15 mirroring */ for (i = c; i < c + 8; i++) { Memory.Map [i] = &Memory.ROM [((c << 11) % (Memory.CalculatedSize - 0x400000)) + OFFSET0]; @@ -2342,11 +2342,11 @@ void JumboLoROMMap(bool Interleaved) Memory.BlockIsROM [i] = Memory.BlockIsROM [i + 0x800] = true; } - //ROM type has to be 64 Mbit header! + /* ROM type has to be 64 Mbit header! */ int32_t sum = 0, k, l; for (k = 0; k < 256; k++) { - uint8_t* bank = 0x8000 + Memory.Map[8 + (k << 4)]; //use upper half of the banks, and adjust for LoROM. + uint8_t* bank = 0x8000 + Memory.Map[8 + (k << 4)]; /* use upper half of the banks, and adjust for LoROM. */ for (l = 0; l < 0x8000; l++) sum += bank[l]; } @@ -2360,7 +2360,7 @@ void SPC7110HiROMMap(void) int32_t c; int32_t i; - // Banks 00->3f and 80->bf + /* Banks 00->3f and 80->bf */ for (c = 0; c < 0x400; c += 16) { Memory.Map [c + 0] = Memory.Map [c + 0x800] = Memory.RAM; @@ -2384,7 +2384,7 @@ void SPC7110HiROMMap(void) } } - // Banks 30->3f and b0->bf, address ranges 6000->7fff is S-RAM. + /* Banks 30->3f and b0->bf, address ranges 6000->7fff is S-RAM. */ for (c = 0; c < 16; c++) { Memory.Map [0x306 + (c << 4)] = MAP_HIROM_SRAM_OR_NONE; @@ -2395,7 +2395,7 @@ void SPC7110HiROMMap(void) Memory.BlockIsRAM [0x307 + (c << 4)] = true; } - // Banks 40->7f and c0->ff + /* Banks 40->7f and c0->ff */ for (c = 0; c < 0x400; c += 16) { for (i = c; i < c + 16; i++) @@ -2564,16 +2564,16 @@ void ApplyROMFixes(void) { /* HACKS NSRT can fix that we hadn't detected before. - [14:25:13] <@Nach> case 0x0c572ef0: //So called Hook (US)(2648) - [14:25:13] <@Nach> case 0x6810aa95: //Bazooka Blitzkreig swapped sizes hack -handled - [14:25:17] <@Nach> case 0x61E29C06: //The Tick region hack - [14:25:19] <@Nach> case 0x1EF90F74: //Jikkyou Keiba Simulation Stable Star PAL hack - [14:25:23] <@Nach> case 0x4ab225b5: //So called Krusty's Super Fun House (E) - [14:25:25] <@Nach> case 0x77fd806a: //Donkey Kong Country 2 (E) v1.1 bad dump -handled - [14:25:27] <@Nach> case 0x340f23e5: //Donkey Kong Country 3 (U) copier hack - handled + [14:25:13] <@Nach> case 0x0c572ef0: So called Hook (US)(2648) + [14:25:13] <@Nach> case 0x6810aa95: Bazooka Blitzkreig swapped sizes hack -handled + [14:25:17] <@Nach> case 0x61E29C06: The Tick region hack + [14:25:19] <@Nach> case 0x1EF90F74: Jikkyou Keiba Simulation Stable Star PAL hack + [14:25:23] <@Nach> case 0x4ab225b5: So called Krusty's Super Fun House (E) + [14:25:25] <@Nach> case 0x77fd806a: Donkey Kong Country 2 (E) v1.1 bad dump -handled + [14:25:27] <@Nach> case 0x340f23e5: Donkey Kong Country 3 (U) copier hack - handled */ - //not MAD-1 compliant + /* not MAD-1 compliant */ if (match_na("WANDERERS FROM YS")) { int32_t c; @@ -2593,14 +2593,14 @@ void ApplyROMFixes(void) Memory.BlockIsROM [0x005] = false; } - //NMI hacks + /* NMI hacks */ CPU.NMITriggerPoint = 4; if (match_na("CACOMA KNIGHT")) CPU.NMITriggerPoint = 25; - //Disabling a speed-up - // Games which spool sound samples between the SNES and sound CPU using - // H-DMA as the sample is playing. + /* Disabling a speed-up: + Games which spool sound samples between the SNES and sound CPU using + H-DMA as the sample is playing. */ if (match_na("EARTHWORM JIM 2") || match_na("PRIMAL RAGE") || match_na("CLAY FIGHTER") || @@ -2611,43 +2611,43 @@ void ApplyROMFixes(void) strncmp(Memory.ROMName, "WAR 2410", 8) == 0) Settings.Shutdown = false; - //APU timing hacks + /* APU timing hacks */ #ifndef USE_BLARGG_APU - // Stunt Racer FX + /* Stunt Racer FX */ if (match_id("CQ ") || - // Illusion of Gaia + /* Illusion of Gaia */ strncmp(Memory.ROMId, "JG", 2) == 0 || match_na("GAIA GENSOUKI 1 JPN")) IAPU.OneCycle = 13; else if (strcmp (Memory.ROMName, "UMIHARAKAWASE") == 0) IAPU.OneCycle = 20; - // RENDERING RANGER R2 + /* RENDERING RANGER R2 */ else if (match_id("AVCJ") || - //Mark Davis - strncmp(Memory.ROMName, "THE FISHING MASTER", 18) == 0 || //needs >= actual APU timing. (21 is .002 Mhz slower) - // Star Ocean + /* Mark Davis */ + strncmp(Memory.ROMName, "THE FISHING MASTER", 18) == 0 || /* needs >= actual APU timing. (21 is .002 Mhz slower) */ + /* Star Ocean */ strncmp(Memory.ROMId, "ARF", 3) == 0 || - // Tales of Phantasia + /* Tales of Phantasia */ strncmp(Memory.ROMId, "ATV", 3) == 0 || - // Act Raiser 1 & 2 + /* Act Raiser 1 & 2 */ strncasecmp(Memory.ROMName, "ActRaiser", 9) == 0 || - // Soulblazer + /* Soulblazer */ match_na("SOULBLAZER - 1 USA") || match_na("SOULBLADER - 1") || - // Terranigma + /* Terranigma */ strncmp(Memory.ROMId, "AQT", 3) == 0 || - // Robotrek + /* Robotrek */ strncmp(Memory.ROMId, "E9 ", 3) == 0 || match_na("SLAP STICK 1 JPN") || - // ZENNIHON PURORESU2 + /* ZENNIHON PURORESU2 */ strncmp(Memory.ROMId, "APR", 3) == 0 || - // Bomberman 4 + /* Bomberman 4 */ strncmp(Memory.ROMId, "A4B", 3) == 0 || - // UFO KAMEN YAKISOBAN + /* UFO KAMEN YAKISOBAN */ strncmp(Memory.ROMId, "Y7 ", 3) == 0 || strncmp(Memory.ROMId, "Y9 ", 3) == 0 || - // Panic Bomber World + /* Panic Bomber World */ strncmp(Memory.ROMId, "APB", 3) == 0 || ((strncmp(Memory.ROMName, "Parlor", 6) == 0 || match_na("HEIWA Parlor!Mini8") || @@ -2656,52 +2656,52 @@ void ApplyROMFixes(void) match_na("DARK KINGDOM") || match_na("ZAN3 SFC") || match_na("HIOUDEN") || - match_na("\xC3\xDD\xBC\xC9\xB3\xC0") || //Tenshi no Uta + match_na("\xC3\xDD\xBC\xC9\xB3\xC0") || /* Tenshi no Uta */ match_na("FORTUNE QUEST") || match_na("FISHING TO BASSING") || strncmp(Memory.ROMName, "TokyoDome '95Battle 7", 21) == 0 || match_na("OHMONO BLACKBASS") || strncmp(Memory.ROMName, "SWORD WORLD SFC", 15) == 0 || - match_na("MASTERS") || //Augusta 2 J - match_na("SFC \xB6\xD2\xDD\xD7\xB2\xC0\xDE\xB0") || //Kamen Rider - strncmp(Memory.ROMName, "LETs PACHINKO(", 14) == 0) //A set of BS games + match_na("MASTERS") || /* Augusta 2 J */ + match_na("SFC \xB6\xD2\xDD\xD7\xB2\xC0\xDE\xB0") || /* Kamen Rider */ + strncmp(Memory.ROMName, "LETs PACHINKO(", 14) == 0) /* A set of BS games */ IAPU.OneCycle = 15; #endif - //Specific game fixes + /* Specific game fixes */ Settings.StarfoxHack = match_na("STAR FOX") || match_na("STAR WING"); Settings.WinterGold = match_na("FX SKIING NINTENDO 96") || match_na("DIRT RACER") || Settings.StarfoxHack; Settings.HBlankStart = (256 * Settings.H_Max) / SNES_HCOUNTER_MAX; - //CPU timing hacks + /* CPU timing hacks */ Settings.H_Max = (SNES_CYCLES_PER_SCANLINE * Settings.CyclesPercentage) / 100; - // A Couple of HDMA related hacks - Lantus + /* A Couple of HDMA related hacks - Lantus */ if ((match_na("SFX SUPERBUTOUDEN2")) || (match_na("ALIEN vs. PREDATOR")) || (match_na("STONE PROTECTORS")) || (match_na("SUPER BATTLETANK 2"))) Settings.H_Max = (SNES_CYCLES_PER_SCANLINE * 130) / 100; else if (match_na("HOME IMPROVEMENT")) Settings.H_Max = (SNES_CYCLES_PER_SCANLINE * 200) / 100; else if (match_id("ASRJ") && Settings.CyclesPercentage == 100) - // Street Racer + /* Street Racer */ Settings.H_Max = (SNES_CYCLES_PER_SCANLINE * 95) / 100; - // Power Rangers Fight + /* Power Rangers Fight */ else if (strncmp(Memory.ROMId, "A3R", 3) == 0 || - // Clock Tower + /* Clock Tower */ strncmp(Memory.ROMId, "AJE", 3) == 0) Settings.H_Max = (SNES_CYCLES_PER_SCANLINE * 103) / 100; else if (strncmp(Memory.ROMId, "A3M", 3) == 0 && Settings.CyclesPercentage == 100) - // Mortal Kombat 3. Fixes cut off speech sample + /* Mortal Kombat 3. Fixes cut off speech sample */ Settings.H_Max = (SNES_CYCLES_PER_SCANLINE * 110) / 100; else if (match_na("\x0bd\x0da\x0b2\x0d4\x0b0\x0bd\x0de") && Settings.CyclesPercentage == 100) Settings.H_Max = (SNES_CYCLES_PER_SCANLINE * 101) / 100; else if (match_na("WILD TRAX") || match_na("STAR FOX 2") || match_na("YOSSY'S ISLAND") || match_na("YOSHI'S ISLAND")) CPU.TriedInterleavedMode2 = true; - // Start Trek: Deep Sleep 9 + /* Start Trek: Deep Sleep 9 */ else if (strncmp(Memory.ROMId, "A9D", 3) == 0 && Settings.CyclesPercentage == 100) Settings.H_Max = (SNES_CYCLES_PER_SCANLINE * 110) / 100; - //SA-1 Speedup settings + /* SA-1 Speedup settings */ SA1.WaitAddress = NULL; SA1.WaitByteAddress1 = NULL; SA1.WaitByteAddress2 = NULL; @@ -2876,10 +2876,10 @@ void ApplyROMFixes(void) SA1.WaitAddress = SA1.Map [0x00F669 >> MEMMAP_SHIFT] + 0xF669; } - //Other + /* Other */ - // Additional game fixes by sanmaiwashi ... - // Gundam Knight Story + /* Additional game fixes by sanmaiwashi ... */ + /* Gundam Knight Story */ if (match_na("SFX \xC5\xB2\xC4\xB6\xDE\xDD\xC0\xDE\xD1\xD3\xC9\xB6\xDE\xC0\xD8 1")) { bytes0x2000 [0xb18] = 0x4c; @@ -2891,38 +2891,37 @@ void ApplyROMFixes(void) match_na("F-ZERO") && Memory.ROMChecksum == 0xb10d && Memory.ROMComplementChecksum == 0x4ef2) - Memory.ROM[0x7fd0] = 0xFF; // fix memory pack position bits + Memory.ROM[0x7fd0] = 0xFF; /* fix memory pack position bits */ } -// 7FC0h or FFC0h -// -// FFC0h - FFCFh: CartName -// FFD0h : Memory pack location -// FFD1h - FFD5 : 00:00:00:00:00 (??) -// FFD6h : Month 10h, 20h, 30h... -// FFD7h : Day This byte / 8 low 3bits is unknown. -// FFD8h : ROMSpeed -// FFD9h : Satellaview ROM Type -// FFDAh : Maker ID -// FFDBh : ROM Version - -static bool is_bsx(uint8_t *p) // p == "0xFFC0" or "0x7FC0" ROM offset pointer +/* 7FC0h or FFC0h */ +/* FFC0h - FFCFh: CartName */ +/* FFD0h : Memory pack location */ +/* FFD1h - FFD5 : 00:00:00:00:00 (??) */ +/* FFD6h : Month 10h, 20h, 30h... */ +/* FFD7h : Day This byte / 8 low 3bits is unknown. */ +/* FFD8h : ROMSpeed */ +/* FFD9h : Satellaview ROM Type */ +/* FFDAh : Maker ID */ +/* FFDBh : ROM Version */ + +static bool is_bsx(uint8_t *p) /* p == "0xFFC0" or "0x7FC0" ROM offset pointer */ { uint32_t c; int32_t i; bool b = false; bool bb = false; - // Satellaview ROM Type + /* Satellaview ROM Type */ if (p[0x19] & 0x4f) return false; - // Maker ID + /* Maker ID */ c = p[0x1a]; - if ((c != 0x33) && (c != 0xff)) // 0x33 = Manufacturer: Nintendo + if ((c != 0x33) && (c != 0xff)) /* 0x33 = Manufacturer: Nintendo */ return false; - // Month, Day + /* Month, Day */ c = (p[0x17] << 8) | p[0x16]; if ((c != 0x0000) && (c != 0xffff)) { @@ -2932,12 +2931,12 @@ static bool is_bsx(uint8_t *p) // p == "0xFFC0" or "0x7FC0" ROM offset pointer return false; } - // ROMSpeed + /* ROMSpeed */ c = p[0x18]; if ((c & 0xce) || ((c & 0x30) == 0)) return false; - // Memory pack location + /* Memory pack location */ if(p[0x10] == 0) return false; @@ -2969,7 +2968,7 @@ static bool bs_name(uint8_t* p) int32_t lcount; for(lcount = 16; lcount > 0; lcount--) { - //null strings + /* null strings */ if(*p == 0) { if(lcount != 16) @@ -2977,10 +2976,10 @@ static bool bs_name(uint8_t* p) else return false; } - //SJIS single byte char + /* SJIS single byte char */ else if((*p >= 0x20 && *p <= 0x7f) || (*p >= 0xa0 && *p <= 0xdf)) p++; - //SJIS multi byte char + /* SJIS multi byte char */ else if(lcount >= 2) { if(((*p >= 0x81 && *p <= 0x9f) || (*p >= 0xe0 && *p <= 0xfc)) && ((*(p + 1) >= 0x40 && *(p + 1) <= 0x7e) || (*(p + 1) >= 0x80 && *(p + 1) <= 0xfc))) @@ -3023,10 +3022,10 @@ void ParseSNESHeader(uint8_t* RomHeader) Memory.ROMChecksum = RomHeader [0x2e] + (RomHeader [0x2f] << 8); Memory.ROMComplementChecksum = RomHeader [0x2c] + (RomHeader [0x2d] << 8); Memory.ROMRegion = RomHeader[0x29]; - // memmove converted: Different mallocs [Neb] + /* memmove converted: Different mallocs [Neb] */ memcpy(Memory.ROMId, &RomHeader [0x2], 4); if (RomHeader[0x2A] == 0x33) - // memmove converted: Different mallocs [Neb] + /* memmove converted: Different mallocs [Neb] */ memcpy(Memory.CompanyId, &RomHeader [0], 2); else sprintf(Memory.CompanyId, "%02X", RomHeader[0x2A]); |