Silence a whole lot of longstanding compiler warnings.

This commit is contained in:
rogerman 2021-09-01 00:49:50 -07:00
parent 0df858f2e8
commit 7eabbb8ea6
37 changed files with 332 additions and 302 deletions

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2008-2016 DeSmuME team
Copyright (C) 2008-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -13,24 +13,24 @@
You should have received a copy of the GNU General Public License
along with the this software. If not, see <http://www.gnu.org/licenses/>.
*/
#include <string.h>
#include "types.h"
#include "Database.h"
#include "retro_miscellaneous.h"
//------------------------------------------------------------
//large databases are first. scroll down to ENDLARGE to find the code
struct MAKER
{
u16 code;
const char* name;
};
*/
#include <string.h>
#include "types.h"
#include "Database.h"
#include "retro_miscellaneous.h"
//------------------------------------------------------------
//large databases are first. scroll down to ENDLARGE to find the code
struct MAKER
{
u16 code;
const char* name;
};
static const char regions_index[] = "JPFSEODIRKHXVWUC";
static const char *regions[] = {
"JPN", // J
@ -49,8 +49,8 @@ static const char *regions[] = {
"EUU", // W
"AUS", // U
"CHN", // C
};
};
static MAKER makerCodes[] = {
{ 0x3130, "Nintendo" },
{ 0x3230, "Rocket Games, Ajinomoto" },
@ -367,26 +367,26 @@ static MAKER makerCodes[] = {
//ENDLARGE
//------------------------------------------------------------
namespace Database
{
const char* RegionXXXForCode(char code, bool unknownAsString)
{
namespace Database
{
const char* RegionXXXForCode(char code, bool unknownAsString)
{
size_t regions_num = ARRAY_SIZE(regions);
const char* found = strchr(regions_index,code);
if(found) return regions[found-regions_index];
else return unknownAsString ? "???" : NULL;
}
const char *MakerNameForMakerCode(u16 id, bool unknownAsString)
{
//too bad these aren't sorted
for (int i = 0; i < ARRAY_SIZE(makerCodes); i++)
}
const char *MakerNameForMakerCode(u16 id, bool unknownAsString)
{
//too bad these aren't sorted
for (size_t i = 0; i < ARRAY_SIZE(makerCodes); i++)
{
if (makerCodes[i].code == id)
return makerCodes[i].name;
}
return unknownAsString ? "Unknown" : NULL;
}
return unknownAsString ? "Unknown" : NULL;
}
}

View File

@ -1128,7 +1128,7 @@ static void execdiv() {
DSI_TSC::DSI_TSC()
{
for(int i=0;i<ARRAY_SIZE(registers);i++)
for (size_t i = 0; i < ARRAY_SIZE(registers); i++)
registers[i] = 0x00;
reset_command();
}
@ -1224,7 +1224,7 @@ bool DSI_TSC::save_state(EMUFILE &os)
os.write_u8(read_flag);
os.write_32LE(state);
os.write_32LE(readcount);
for (int i = 0; i < ARRAY_SIZE(registers); i++)
for (size_t i = 0; i < ARRAY_SIZE(registers); i++)
os.write_u8(registers[i]);
return true;
@ -1239,7 +1239,7 @@ bool DSI_TSC::load_state(EMUFILE &is)
is.read_u8(read_flag);
is.read_32LE(state);
is.read_32LE(readcount);
for (int i = 0; i < ARRAY_SIZE(registers); i++)
for (size_t i = 0; i < ARRAY_SIZE(registers); i++)
is.read_u8(registers[i]);
return true;

View File

@ -96,8 +96,8 @@ GameInfo gameInfo;
NDSSystem nds;
CFIRMWARE *extFirmwareObj = NULL;
std::vector<int> memReadBreakPoints;
std::vector<int> memWriteBreakPoints;
std::vector<u32> memReadBreakPoints;
std::vector<u32> memWriteBreakPoints;
using std::min;
using std::max;
@ -707,15 +707,17 @@ int NDS_LoadROM(const char *filename, const char *physicalName, const char *logi
//run crc over the whole buffer (chunk at a time, to avoid coding a streaming crc
gameInfo.reader->Seek(gameInfo.fROM, 0, SEEK_SET);
gameInfo.crc = 0;
u8 fROMBuffer[4096];
bool first = true;
for(;;) {
u8 buf[4096];
int read = gameInfo.reader->Read(gameInfo.fROM,buf,4096);
int read = gameInfo.reader->Read(gameInfo.fROM,fROMBuffer,4096);
if(read == 0) break;
if(first && read >= 512)
gameInfo.crcForCheatsDb = ~crc32(0, buf, 512);
gameInfo.crcForCheatsDb = ~crc32(0, fROMBuffer, 512);
first = false;
gameInfo.crc = crc32(gameInfo.crc, buf, read);
gameInfo.crc = crc32(gameInfo.crc, fROMBuffer, read);
}
gameInfo.chipID = 0xC2; // The Manufacturer ID is defined by JEDEC (C2h = Macronix)
@ -1921,7 +1923,7 @@ static /*donotinline*/ std::pair<s32,s32> armInnerLoop(
{
// breakpoint handling
#if defined(HOST_WINDOWS) && !defined(TARGET_INTERFACE)
const std::vector<int> *breakpointList9 = NDS_ARM9.breakPoints;
const std::vector<u32> *breakpointList9 = NDS_ARM9.breakPoints;
for (int i = 0; i < breakpointList9->size(); ++i) {
if (NDS_ARM9.instruct_adr == (*breakpointList9)[i] && !NDS_ARM9.debugStep) {
emu_paused = true;
@ -1933,7 +1935,7 @@ static /*donotinline*/ std::pair<s32,s32> armInnerLoop(
return std::make_pair(arm9, arm7);
}
}
const std::vector<int> *breakpointList7 = NDS_ARM7.breakPoints;
const std::vector<u32> *breakpointList7 = NDS_ARM7.breakPoints;
for (int i = 0; i < breakpointList7->size(); ++i) {
if (NDS_ARM7.instruct_adr == (*breakpointList7)[i] && !NDS_ARM7.debugStep) {
emu_paused = true;

View File

@ -1,6 +1,6 @@
/*
Copyright (C) 2006 yopyop
Copyright (C) 2008-2019 DeSmuME team
Copyright (C) 2008-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -404,8 +404,8 @@ typedef struct TSCalInfo
extern GameInfo gameInfo;
extern std::vector<int> memReadBreakPoints;
extern std::vector<int> memWriteBreakPoints;
extern std::vector<u32> memReadBreakPoints;
extern std::vector<u32> memWriteBreakPoints;
struct UserButtons : buttonstruct<bool>

View File

@ -1814,7 +1814,7 @@ FragmentColor* OpenGLRenderer::GetFramebuffer()
GLsizei OpenGLRenderer::GetLimitedMultisampleSize() const
{
GLsizei deviceMultisamples = this->_deviceInfo.maxSamples;
u32 deviceMultisamples = this->_deviceInfo.maxSamples;
u32 workingMultisamples = (u32)this->_selectedMultisampleSize;
if (workingMultisamples == 1)
@ -1847,7 +1847,7 @@ GLsizei OpenGLRenderer::GetLimitedMultisampleSize() const
deviceMultisamples = workingMultisamples;
}
return deviceMultisamples;
return (GLsizei)deviceMultisamples;
}
OpenGLTexture* OpenGLRenderer::GetLoadedTextureFromPolygon(const POLY &thePoly, bool enableTexturing)

View File

@ -1,7 +1,7 @@
/*
Copyright (C) 2006 yopyop
Copyright (C) 2006 Theo Berkau
Copyright (C) 2008-2017 DeSmuME team
Copyright (C) 2008-2021 DeSmuME team
Ideas borrowed from Stephane Dallongeville's SCSP core
@ -1269,6 +1269,7 @@ template<int CHANNELS> FORCEINLINE static void SPU_Mix(SPU_struct* SPU, channel_
case 0: MixL(SPU, chan, data); break;
case 1: MixLR(SPU, chan, data); break;
case 2: MixR(SPU, chan, data); break;
default: break;
}
SPU->lastdata = data;
}
@ -1288,6 +1289,7 @@ template<int FORMAT, SPUInterpolationMode INTERPOLATE_MODE, int CHANNELS>
case 1: Fetch16BitData<INTERPOLATE_MODE>(chan, &data); break;
case 2: FetchADPCMData<INTERPOLATE_MODE>(chan, &data); break;
case 3: FetchPSGData(chan, &data); break;
default: break;
}
SPU_Mix<CHANNELS>(SPU, chan, data);
}
@ -1296,6 +1298,7 @@ template<int FORMAT, SPUInterpolationMode INTERPOLATE_MODE, int CHANNELS>
case 0: case 1: TestForLoop<FORMAT>(SPU, chan); break;
case 2: TestForLoop2(SPU, chan); break;
case 3: chan->sampcnt += chan->sampinc; break;
default: break;
}
}
}
@ -1441,6 +1444,7 @@ static void SPU_MixAudio_Advanced(bool actuallyMix, SPU_struct *SPU, int length)
case SPU_struct::REGS::LOM_CH1: sndout[0] = submix[1*2+0]; break;
case SPU_struct::REGS::LOM_CH3: sndout[0] = submix[3*2+0]; break;
case SPU_struct::REGS::LOM_CH1_PLUS_CH3: sndout[0] = submix[1*2+0] + submix[3*2+0]; break;
default: break;
}
switch (SPU->regs.ctl_right)
{
@ -1448,6 +1452,7 @@ static void SPU_MixAudio_Advanced(bool actuallyMix, SPU_struct *SPU, int length)
case SPU_struct::REGS::ROM_CH1: sndout[1] = submix[1*2+1]; break;
case SPU_struct::REGS::ROM_CH3: sndout[1] = submix[3*2+1]; break;
case SPU_struct::REGS::ROM_CH1_PLUS_CH3: sndout[1] = submix[1*2+1] + submix[3*2+1]; break;
default: break;
}

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2010-2017 DeSmuME team
Copyright (C) 2010-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -82,9 +82,9 @@ public:
return protocol.read_GCDATAIN(PROCNUM);
}
virtual void slot1client_startOperation(eSlot1Operation operation)
virtual void slot1client_startOperation(eSlot1Operation theOperation)
{
if(operation != eSlot1Operation_Unknown)
if (theOperation != eSlot1Operation_Unknown)
return;
u32 address;
@ -109,9 +109,9 @@ public:
}
}
virtual u32 slot1client_read_GCDATAIN(eSlot1Operation operation)
virtual u32 slot1client_read_GCDATAIN(eSlot1Operation theOperation)
{
if (operation != eSlot1Operation_Unknown)
if (theOperation != eSlot1Operation_Unknown)
return 0;
u32 val = 0;
@ -141,9 +141,9 @@ public:
return val;
}
void slot1client_write_GCDATAIN(eSlot1Operation operation, u32 val)
void slot1client_write_GCDATAIN(eSlot1Operation theOperation, u32 val)
{
if (operation != eSlot1Operation_Unknown)
if (theOperation != eSlot1Operation_Unknown)
return;
int cmd = protocol.command.bytes[0];

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2010-2015 DeSmuME team
Copyright (C) 2010-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -73,9 +73,9 @@ public:
return protocol.read_GCDATAIN(PROCNUM);
}
virtual void slot1client_startOperation(eSlot1Operation operation)
virtual void slot1client_startOperation(eSlot1Operation theOperation)
{
rom.start(operation,protocol.address);
rom.start(theOperation,protocol.address);
}
virtual void post_fakeboot(int PROCNUM)

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2013-2017 DeSmuME team
Copyright (C) 2013-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -108,7 +108,7 @@ public:
rom.loadstate(is);
}
virtual void slot1client_startOperation(eSlot1Operation operation)
virtual void slot1client_startOperation(eSlot1Operation theOperation)
{
if (protocol.operation == eSlot1Operation_B7_Read)
{
@ -168,7 +168,7 @@ public:
curr_file_id = file_id;
}
rom.start(operation, protocol.address);
rom.start(theOperation, protocol.address);
}
private:

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2010-2017 DeSmuME team
Copyright (C) 2010-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -88,7 +88,7 @@ public:
return protocol.read_GCDATAIN(PROCNUM);
}
virtual void slot1client_startOperation(eSlot1Operation operation)
virtual void slot1client_startOperation(eSlot1Operation theOperation)
{
//INFO("Start command: %02X%02X%02X%02X%02X%02X%02X%02X\t",
// protocol.command.bytes[0], protocol.command.bytes[1], protocol.command.bytes[2], protocol.command.bytes[3],
@ -98,14 +98,14 @@ public:
u32 addressFromProtocol = (protocol.command.bytes[1] << 24) | (protocol.command.bytes[2] << 16) | (protocol.command.bytes[3] << 8) | protocol.command.bytes[4];
//pass the normal rom operations along to the rom component
switch(operation)
switch (theOperation)
{
case eSlot1Operation_00_ReadHeader_Unencrypted:
rom.start(operation,addressFromProtocol);
rom.start(theOperation, addressFromProtocol);
return;
case eSlot1Operation_2x_SecureAreaLoad:
rom.start(operation,protocol.address);
rom.start(theOperation, protocol.address);
return;
default:
@ -159,7 +159,7 @@ public:
}
else
{
rom.start(operation, addressFromProtocol);
rom.start(theOperation, addressFromProtocol);
}
break;
@ -183,6 +183,9 @@ public:
case eSlot1Operation_2x_SecureAreaLoad:
//case eSlot1Operation_B7_Read:
return rom.read();
default:
break;
}
//handle special commands ourselves
@ -253,6 +256,9 @@ public:
case eSlot1Operation_B7_Read:
case eSlot1Operation_2x_SecureAreaLoad:
return;
default:
break;
}
//handle special commands ourselves

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2012-2015 DeSmuME team
Copyright (C) 2012-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -26,9 +26,9 @@
static _KEY1 key1((const u8*)arm7_key);
void Slot1Comp_Protocol::reset(ISlot1Comp_Protocol_Client* client)
void Slot1Comp_Protocol::reset(ISlot1Comp_Protocol_Client* theClient)
{
this->client = client;
this->client = theClient;
//we have to initialize this to something.. lets use dummy.
//(need to clean this up...)
@ -40,9 +40,9 @@ void Slot1Comp_Protocol::reset(ISlot1Comp_Protocol_Client* client)
mode = eCardMode_RAW;
}
void Slot1Comp_Protocol::write_command_RAW(GC_Command command)
void Slot1Comp_Protocol::write_command_RAW(GC_Command theCommand)
{
int cmd = command.bytes[0];
int cmd = theCommand.bytes[0];
if(cmd == 0x9F)
{
operation = eSlot1Operation_9F_Dummy;
@ -74,17 +74,17 @@ void Slot1Comp_Protocol::write_command_RAW(GC_Command command)
}
}
void Slot1Comp_Protocol::write_command_KEY1(GC_Command command)
void Slot1Comp_Protocol::write_command_KEY1(GC_Command theCommand)
{
//decrypt the KEY1-format command
u32 temp[2];
command.toCryptoBuffer(temp);
theCommand.toCryptoBuffer(temp);
key1.decrypt(temp);
command.fromCryptoBuffer(temp);
GCLOG("[GC] (key1-decrypted):"); command.print();
theCommand.fromCryptoBuffer(temp);
GCLOG("[GC] (key1-decrypted):"); theCommand.print();
//and process it:
int cmd = command.bytes[0];
int cmd = theCommand.bytes[0];
switch(cmd&0xF0)
{
case 0x10:
@ -100,9 +100,9 @@ void Slot1Comp_Protocol::write_command_KEY1(GC_Command command)
//TODO - more endian-safe way of doing this (theres examples in R4)
{
#ifdef MSB_FIRST
u64 cmd64 = *(u64*)command.bytes;
u64 cmd64 = *(u64*)theCommand.bytes;
#else
u64 cmd64 = bswap64(*(u64*)command.bytes);
u64 cmd64 = bswap64(*(u64*)theCommand.bytes);
#endif
//todo - parse into blocknumber
u32 blocknumber = (cmd64>>44)&0xFFFF;
@ -133,7 +133,7 @@ void Slot1Comp_Protocol::write_command_KEY1(GC_Command command)
}
}
void Slot1Comp_Protocol::write_command_NORMAL(GC_Command command)
void Slot1Comp_Protocol::write_command_NORMAL(GC_Command theCommand)
{
switch(command.bytes[0])
{
@ -143,9 +143,9 @@ void Slot1Comp_Protocol::write_command_NORMAL(GC_Command command)
//TODO - more endian-safe way of doing this (theres examples in R4)
#ifdef MSB_FIRST
u64 cmd64 = *(u64*)command.bytes;
u64 cmd64 = *(u64*)theCommand.bytes;
#else
u64 cmd64 = bswap64(*(u64*)command.bytes);
u64 cmd64 = bswap64(*(u64*)theCommand.bytes);
#endif
address = (u32)((cmd64 >> 24));
length = 0x200;
@ -167,9 +167,9 @@ void Slot1Comp_Protocol::write_command_NORMAL(GC_Command command)
}
}
void Slot1Comp_Protocol::write_command(GC_Command command)
void Slot1Comp_Protocol::write_command(GC_Command theCommand)
{
this->command = command;
this->command = theCommand;
//unrecognized commands will do something depending on the current state of the card
delay = 0;
@ -178,17 +178,20 @@ void Slot1Comp_Protocol::write_command(GC_Command command)
switch(mode)
{
case eCardMode_RAW:
write_command_RAW(command);
break;
case eCardMode_RAW:
write_command_RAW(theCommand);
break;
case eCardMode_KEY1:
write_command_KEY1(command);
break;
case eCardMode_KEY1:
write_command_KEY1(theCommand);
break;
case eCardMode_NORMAL:
write_command_NORMAL(command);
break;
case eCardMode_NORMAL:
write_command_NORMAL(theCommand);
break;
default:
break;
}
}
@ -199,6 +202,9 @@ void Slot1Comp_Protocol::write_GCDATAIN(u8 PROCNUM, u32 val)
case eSlot1Operation_Unknown:
client->slot1client_write_GCDATAIN(operation,val);
break;
default:
break;
}
}

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2013-2015 DeSmuME team
Copyright (C) 2013-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -59,9 +59,9 @@ enum eSlot1Operation
class ISlot1Comp_Protocol_Client
{
public:
virtual void slot1client_startOperation(eSlot1Operation operation) {}
virtual u32 slot1client_read_GCDATAIN(eSlot1Operation operation) = 0;
virtual void slot1client_write_GCDATAIN(eSlot1Operation operation, u32 val) {}
virtual void slot1client_startOperation(eSlot1Operation theOperation) {}
virtual u32 slot1client_read_GCDATAIN(eSlot1Operation theOperation) = 0;
virtual void slot1client_write_GCDATAIN(eSlot1Operation theOperation, u32 val) {}
};
@ -73,17 +73,17 @@ public:
void loadstate(EMUFILE &is);
//set some kind of protocol/hardware reset state
void reset(ISlot1Comp_Protocol_Client* client);
void reset(ISlot1Comp_Protocol_Client* theClient);
//signals from the GC bus
void write_command(GC_Command command);
void write_command(GC_Command theCommand);
void write_GCDATAIN(u8 PROCNUM, u32 val);
u32 read_GCDATAIN(u8 PROCNUM);
//helpers for write_command()
void write_command_RAW(GC_Command command);
void write_command_KEY1(GC_Command command);
void write_command_NORMAL(GC_Command command);
void write_command_RAW(GC_Command theCommand);
void write_command_KEY1(GC_Command theCommand);
void write_command_NORMAL(GC_Command theCommand);
//operations not related to obscurities of the protocol or otherwise unknown are passed through to the client here
ISlot1Comp_Protocol_Client* client;

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2010-2015 DeSmuME team
Copyright (C) 2010-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -23,18 +23,18 @@
void Slot1Comp_Rom::start(eSlot1Operation operation, u32 addr)
{
this->operation = operation;
this->address = addr;
this->_operation = operation;
this->_address = addr;
}
u32 Slot1Comp_Rom::read()
{
switch(operation)
switch(this->_operation)
{
case eSlot1Operation_00_ReadHeader_Unencrypted:
{
u32 ret = gameInfo.readROM(address);
address = (address + 4) & 0xFFF;
u32 ret = gameInfo.readROM(this->_address);
this->_address = (this->_address + 4) & 0xFFF;
return ret;
}
break;
@ -45,10 +45,10 @@ u32 Slot1Comp_Rom::read()
//zero 15-sep-2014 - this is meaningless. newer mask is actually reasonable
//address &= gameInfo.mask; //sanity check
u32 secureAreaAddress = (address - 0x4000);
u32 secureAreaAddress = (this->_address - 0x4000);
secureAreaAddress &= 0x3FFF; //memory safe sanity test
u32 ret = LE_TO_LOCAL_32(*(u32*)(gameInfo.secureArea + secureAreaAddress));
address = (address&~0xFFF) + ((address+4)&0xFFF);
this->_address = (this->_address&~0xFFF) + ((this->_address+4)&0xFFF);
return ret;
}
@ -59,13 +59,13 @@ u32 Slot1Comp_Rom::read()
//it seems that etrian odyssey 3 doesnt work unless we mask this to cart size.
//but, a thought: does the internal rom address counter register wrap around? we may be making a mistake by keeping the extra precision
//but there is no test case yet
address &= gameInfo.mask;
this->_address &= gameInfo.mask;
//feature of retail carts:
//B7 "Can be used only for addresses 8000h and up, smaller addresses will be silently redirected to address `8000h+(addr AND 1FFh)`"
if(CommonSettings.RetailCardProtection8000)
if(address < 0x8000)
address = (0x8000 + (address & 0x1FF));
if(this->_address < 0x8000)
this->_address = (0x8000 + (this->_address & 0x1FF));
//1. as a sanity measure for funny-sized roms (homebrew and perhaps truncated retail roms) we need to protect ourselves by returning 0xFF for things still out of range.
//2. this isnt right, unless someone documents otherwise:
@ -73,16 +73,16 @@ u32 Slot1Comp_Rom::read()
// ... the cart hardware doesnt know anything about the rom header. if it has a totally bogus endROMoffset, the cart will probably work just fine. and, the +4 is missing anyway:
//3. this is better: it just allows us to read 0xFF anywhere we dont have rom data. forget what the header says
//note: we allow the reading to proceed anyway, because the readROM method is built to allow jaggedy reads off the end of the rom to support trimmed roms
if(address+4 > gameInfo.romsize)
if(this->_address+4 > gameInfo.romsize)
{
DEBUG_Notify.ReadBeyondEndOfCart(address,gameInfo.romsize);
DEBUG_Notify.ReadBeyondEndOfCart(this->_address,gameInfo.romsize);
}
//actually read from the ROM provider
u32 ret = gameInfo.readROM(address);
u32 ret = gameInfo.readROM(this->_address);
//"However, the datastream wraps to the begin of the current 4K block when address+length crosses a 4K boundary (1000h bytes)"
address = (address&~0xFFF) + ((address+4)&0xFFF);
this->_address = (this->_address&~0xFFF) + ((this->_address+4)&0xFFF);
return ret;
}
@ -96,14 +96,14 @@ u32 Slot1Comp_Rom::read()
u32 Slot1Comp_Rom::getAddress()
{
return address & gameInfo.mask;
return this->_address & gameInfo.mask;
} //Slot1Comp_Rom::getAddress()
u32 Slot1Comp_Rom::incAddress()
{
address &= gameInfo.mask;
address = (address&~0xFFF) + ((address+4)&0xFFF);
return address;
this->_address &= gameInfo.mask;
this->_address = (this->_address&~0xFFF) + ((this->_address+4)&0xFFF);
return this->_address;
}
@ -111,13 +111,13 @@ void Slot1Comp_Rom::savestate(EMUFILE &os)
{
s32 version = 0;
os.write_32LE(version);
os.write_32LE((s32)operation);
os.write_32LE(address);
os.write_32LE((s32)this->_operation);
os.write_32LE(this->_address);
}
void Slot1Comp_Rom::loadstate(EMUFILE &is)
{
s32 version = is.read_s32LE();
operation = (eSlot1Operation)is.read_s32LE();
address = is.read_u32LE();
this->_operation = (eSlot1Operation)is.read_s32LE();
this->_address = is.read_u32LE();
}

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2010-2015 DeSmuME team
Copyright (C) 2010-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -38,8 +38,8 @@ public:
void loadstate(EMUFILE &is);
private:
u32 address;
eSlot1Operation operation;
u32 _address;
eSlot1Operation _operation;
};
#endif

View File

@ -1,6 +1,6 @@
/*
Copyright (C) 2009 CrazyMax
Copyright (C) 2009-2016 DeSmuME team
Copyright (C) 2009-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -106,8 +106,8 @@ private:
int len = fROM->size();
for(;;)
{
u32 tmp;
u32 readed = fROM->fread(&tmp, 4);
u32 romType = 0;
u32 readed = fROM->fread(&romType, 4);
int pos = fROM->ftell();
int currPct = pos*100/(size-1);
@ -126,7 +126,7 @@ private:
break;
switch (tmp)
switch (romType)
{
case EEPROM:
return 1;
@ -139,6 +139,9 @@ private:
}
case SIIRTC_V:
return 4;
default:
break;
}
}

View File

@ -146,7 +146,7 @@ int armcpu_new( armcpu_t *armcpu, u32 id)
armcpu->post_ex_fn = NULL;
armcpu->post_ex_fn_data = NULL;
armcpu->breakPoints = new std::vector<int>;
armcpu->breakPoints = new std::vector<u32>;
armcpu_init(armcpu, 0);

View File

@ -310,10 +310,10 @@ struct armcpu_t
armcpu_ctrl_iface ctrl_iface;
// debugging stuff
int runToRetTmp;
u32 runToRetTmp;
bool runToRet;
int stepOverBreak;
std::vector<int> *breakPoints;
u32 stepOverBreak;
std::vector<u32> *breakPoints;
bool debugStep;
};

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2009-2019 DeSmuME team
Copyright (C) 2009-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -121,7 +121,7 @@ static void CheatWrite(int size, int proc, u32 addr, u32 val)
}
void CHEATS::ARparser(CHEATS_LIST& list)
void CHEATS::ARparser(CHEATS_LIST& theList)
{
//primary organizational source (seems to be referenced by cheaters the most) - http://doc.kodewerx.org/hacking_nds.html
//secondary clarification and details (for programmers) - http://problemkaputt.de/gbatek.htm#dscartcheatactionreplayds
@ -167,18 +167,18 @@ void CHEATS::ARparser(CHEATS_LIST& list)
CHEATLOG("-----------------------------------\n");
for (u32 i=0; i < list.num; i++)
for (u32 i = 0; i < theList.num; i++)
{
const u32 hi = list.code[i][0];
const u32 lo = list.code[i][1];
const u32 hi = theList.code[i][0];
const u32 lo = theList.code[i][1];
CHEATLOG("executing [%02d] %08X %08X (ofs=%08X)\n",i, hi,lo, st.offset);
//parse codes into types by kodewerx standards
u32 type = list.code[i][0] >> 28;
u32 type = theList.code[i][0] >> 28;
//these two are broken down into subtypes
if(type == 0x0C || type == 0x0D)
type = list.code[i][0] >> 24;
type = theList.code[i][0] >> 24;
//process current execution status:
u32 statusSkip = st.status & 1;
@ -568,9 +568,9 @@ void CHEATS::ARparser(CHEATS_LIST& list)
if(y>0) i++; //skip over the current code
while(y>=4)
{
if(i==list.num) break; //if we erroneously went off the end, bail
u32 tmp = list.code[i][t];
if(t==1) i++;
if (i == theList.num) break; //if we erroneously went off the end, bail
u32 tmp = theList.code[i][t];
if (t == 1) i++;
t ^= 1;
CheatWrite(32,st.proc,addr,tmp);
addr += 4;
@ -578,8 +578,8 @@ void CHEATS::ARparser(CHEATS_LIST& list)
}
while(y>0)
{
if(i==list.num) break; //if we erroneously went off the end, bail
u32 tmp = list.code[i][t]>>b;
if (i == theList.num) break; //if we erroneously went off the end, bail
u32 tmp = theList.code[i][t]>>b;
CheatWrite(8,st.proc,addr,tmp);
addr += 1;
y -= 1;
@ -604,7 +604,7 @@ void CHEATS::ARparser(CHEATS_LIST& list)
operand = x; //mis-use of this variable to store dst
while(y>=4)
{
if(i==list.num) break; //if we erroneously went off the end, bail
if (i == theList.num) break; //if we erroneously went off the end, bail
u32 tmp = _MMU_read32(st.proc,MMU_AT_DEBUG,addr);
CheatWrite(32, st.proc,operand,tmp);
addr += 4;
@ -613,7 +613,7 @@ void CHEATS::ARparser(CHEATS_LIST& list)
}
while(y>0)
{
if(i==list.num) break; //if we erroneously went off the end, bail
if (i == theList.num) break; //if we erroneously went off the end, bail
u8 tmp = _MMU_read08(st.proc,MMU_AT_DEBUG,addr);
CheatWrite(8,st.proc,operand,tmp);
addr += 1;
@ -821,7 +821,7 @@ BOOL CHEATS::save()
sprintf(buf1, "%s %c ", types[list[i].type], list[i].enabled?'1':'0');
cheatLineStr = buf1;
for (int t = 0; t < list[i].num; t++)
for (u32 t = 0; t < list[i].num; t++)
{
char buf2[10] = { 0 };
@ -946,7 +946,7 @@ BOOL CHEATS::load()
INFO("Cheats: Too many values for internal cheat\n", line);
continue;
}
for (int i = 0; i < tmp_cht.num; i++)
for (u32 i = 0; i < tmp_cht.num; i++)
{
char tmp_buf[9] = {0};
@ -1044,13 +1044,13 @@ void CHEATS::process(int targetType)
#endif
}
void CHEATS::getXXcodeString(CHEATS_LIST list, char *res_buf)
void CHEATS::getXXcodeString(CHEATS_LIST theList, char *res_buf)
{
char buf[50] = { 0 };
char buf[50] = { 0 };
for (int i=0; i < list.num; i++)
for (u32 i = 0; i < theList.num; i++)
{
sprintf(buf, "%08X %08X\n", list.code[i][0], list.code[i][1]);
sprintf(buf, "%08X %08X\n", theList.code[i][0], theList.code[i][1]);
strcat(res_buf, buf);
}
}
@ -1564,9 +1564,9 @@ bool CHEATSEXPORT::search()
}
if (!dataSize) return false;
CRC = fat.CRC;
char buf[5] = {0};
memcpy(&buf, &fat.serial[0], 4);
printf("Cheats: found %s CRC %08X at 0x%08llX, size %i byte(s)\n", buf, fat.CRC, fat.addr, dataSize - encOffset);
char serialBuf[5] = {0};
memcpy(&serialBuf, &fat.serial[0], 4);
printf("Cheats: found %s CRC %08X at 0x%08llX, size %i byte(s)\n", serialBuf, fat.CRC, fat.addr, dataSize - encOffset);
return true;
}
@ -1600,13 +1600,13 @@ bool CHEATSEXPORT::getCodes()
if (encrypted)
R4decrypt(data, dataSize, fat.addr >> 9);
intptr_t ptrMask = (~0 << 2);
uintptr_t ptrMask = ~(uintptr_t)0 << 2;
u8 *gameTitlePtr = (u8 *)data + encOffset;
memset(gametitle, 0, CHEAT_DB_GAME_TITLE_SIZE);
memcpy(gametitle, gameTitlePtr, strlen((const char *)gameTitlePtr));
u32 *cmd = (u32 *)(((intptr_t)gameTitlePtr + strlen((const char *)gameTitlePtr) + 4) & ptrMask);
u32 *cmd = (u32 *)(((uintptr_t)gameTitlePtr + strlen((const char *)gameTitlePtr) + 4) & ptrMask);
numCheats = cmd[0] & 0x0FFFFFFF;
cmd += 9;
cheats = new CHEATS_LIST[numCheats];
@ -1620,17 +1620,17 @@ bool CHEATSEXPORT::getCodes()
if ((*cmd & 0xF0000000) == 0x10000000) // Folder
{
folderNum = (*cmd & 0x00FFFFFF);
folderName = (u8*)((intptr_t)cmd + 4);
folderNote = (u8*)((intptr_t)folderName + strlen((char*)folderName) + 1);
folderName = (u8*)((uintptr_t)cmd + 4);
folderNote = (u8*)((uintptr_t)folderName + strlen((char*)folderName) + 1);
pos++;
cmd = (u32 *)(((intptr_t)folderName + strlen((char*)folderName) + 1 + strlen((char*)folderNote) + 1 + 3) & ptrMask);
cmd = (u32 *)(((uintptr_t)folderName + strlen((char*)folderName) + 1 + strlen((char*)folderNote) + 1 + 3) & ptrMask);
}
for (u32 i = 0; i < folderNum; i++) // in folder
{
u8 *cheatName = (u8 *)((intptr_t)cmd + 4);
u8 *cheatNote = (u8 *)((intptr_t)cheatName + strlen((char*)cheatName) + 1);
u32 *cheatData = (u32 *)(((intptr_t)cheatNote + strlen((char*)cheatNote) + 1 + 3) & ptrMask);
u8 *cheatName = (u8 *)((uintptr_t)cmd + 4);
u8 *cheatNote = (u8 *)((uintptr_t)cheatName + strlen((char*)cheatName) + 1);
u32 *cheatData = (u32 *)(((uintptr_t)cheatNote + strlen((char*)cheatNote) + 1 + 3) & ptrMask);
u32 cheatDataLen = *cheatData++;
u32 numberCodes = cheatDataLen / 2;
@ -1670,7 +1670,7 @@ bool CHEATSEXPORT::getCodes()
}
pos++;
cmd = (u32 *)((intptr_t)cmd + ((*cmd + 1)*4));
cmd = (u32 *)((uintptr_t)cmd + ((*cmd + 1)*4));
}
};

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2009-2015 DeSmuME team
Copyright (C) 2009-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -49,7 +49,7 @@ struct CHEATS_LIST
// 2 - can increase
u32 code[MAX_XX_CODE][2];
char description[1024];
int num;
u32 num;
u8 size;
};
@ -93,7 +93,7 @@ public:
BOOL save();
BOOL load();
void process(int targetType);
void getXXcodeString(CHEATS_LIST cheat, char *res_buf);
void getXXcodeString(CHEATS_LIST theList, char *res_buf);
static BOOL XXCodeFromString(CHEATS_LIST *cheatItem, const std::string codeString);
static BOOL XXCodeFromString(CHEATS_LIST *cheatItem, const char *codeString);

View File

@ -1,7 +1,7 @@
/*
The MIT License
Copyright (C) 2009-2019 DeSmuME team
Copyright (C) 2009-2021 DeSmuME team
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@ -90,7 +90,7 @@ size_t EMUFILE_MEMORY::_fread(const void *ptr, size_t bytes){
u32 todo = std::min<u32>(remain,(u32)bytes);
if(len==0)
{
failbit = true;
this->_failbit = true;
return 0;
}
if(todo<=4)
@ -106,43 +106,43 @@ size_t EMUFILE_MEMORY::_fread(const void *ptr, size_t bytes){
}
pos += todo;
if(todo<bytes)
failbit = true;
this->_failbit = true;
return todo;
}
void EMUFILE_FILE::truncate(s32 length)
{
::fflush(fp);
::fflush(this->_fp);
#ifdef HOST_WINDOWS
_chsize(_fileno(fp),length);
_chsize(_fileno(this->_fp),length);
#else
ftruncate(fileno(fp),length);
ftruncate(fileno(this->_fp),length);
#endif
fclose(fp);
fp = NULL;
open(fname.c_str(),mode);
fclose(this->_fp);
this->_fp = NULL;
this->__open(this->_fname.c_str(), this->_mode);
}
int EMUFILE_FILE::fseek(int offset, int origin)
{
//if the position cache is enabled, and the seek offset matches the known current position, then early exit.
if(mPositionCacheEnabled)
if (this->_mPositionCacheEnabled)
{
if(origin == SEEK_SET)
if (origin == SEEK_SET)
{
if(mFilePosition == offset)
if (this->_mFilePosition == offset)
{
return 0;
}
}
}
mCondition = eCondition_Clean;
this->_mCondition = eCondition_Clean;
int ret = ::fseek(fp, offset, origin);
int ret = ::fseek(this->_fp, offset, origin);
if(mPositionCacheEnabled)
mFilePosition = ::ftell(fp);
if (this->_mPositionCacheEnabled)
this->_mFilePosition = ::ftell(this->_fp);
return ret;
}
@ -150,53 +150,54 @@ int EMUFILE_FILE::fseek(int offset, int origin)
int EMUFILE_FILE::ftell()
{
if(mPositionCacheEnabled)
return (int)mFilePosition;
return (u32)::ftell(fp);
if (this->_mPositionCacheEnabled)
return (int)this->_mFilePosition;
return (u32)::ftell(this->_fp);
}
void EMUFILE_FILE::DemandCondition(eCondition cond)
{
//allows switching between reading and writing; an fseek is required, under the circumstances
if(mCondition == eCondition_Clean)
if( this->_mCondition == eCondition_Clean)
goto CONCLUDE;
if(mCondition == eCondition_Unknown)
if (this->_mCondition == eCondition_Unknown)
goto RESET;
if(mCondition != cond)
if (this->_mCondition != cond)
goto RESET;
return;
RESET:
::fseek(fp,::ftell(fp),SEEK_SET);
::fseek(this->_fp,::ftell(this->_fp),SEEK_SET);
CONCLUDE:
mCondition = cond;
this->_mCondition = cond;
}
size_t EMUFILE_FILE::_fread(const void *ptr, size_t bytes)
{
DemandCondition(eCondition_Read);
size_t ret = ::fread((void*)ptr, 1, bytes, fp);
mFilePosition += ret;
if(ret < bytes)
failbit = true;
size_t ret = ::fread((void*)ptr, 1, bytes, this->_fp);
this->_mFilePosition += ret;
if (ret < bytes)
this->_failbit = true;
return ret;
}
void EMUFILE_FILE::EnablePositionCache()
{
mPositionCacheEnabled = true;
mFilePosition = ::ftell(fp);
this->_mPositionCacheEnabled = true;
this->_mFilePosition = ::ftell(this->_fp);
}
size_t EMUFILE_FILE::fwrite(const void *ptr, size_t bytes)
{
DemandCondition(eCondition_Write);
size_t ret = ::fwrite((void*)ptr, 1, bytes, fp);
mFilePosition += ret;
if(ret < bytes)
failbit = true;
size_t ret = ::fwrite((void*)ptr, 1, bytes, this->_fp);
this->_mFilePosition += ret;
if (ret < bytes)
this->_failbit = true;
return ret;
}
@ -511,19 +512,22 @@ size_t EMUFILE::read_MemoryStream(EMUFILE_MEMORY &ms)
return 1;
}
void EMUFILE_FILE::open(const char* fname, const char* mode)
void EMUFILE_FILE::__open(const char* fname, const char* mode)
{
mPositionCacheEnabled = false;
mCondition = eCondition_Clean;
mFilePosition = 0;
this->_mPositionCacheEnabled = false;
this->_mCondition = eCondition_Clean;
this->_mFilePosition = 0;
#ifdef HOST_WINDOWS
auto tmp = mbstowcs((std::string)fname);
fp = _wfopen(tmp.c_str(),mbstowcs(mode).c_str());
this->_fp = _wfopen(tmp.c_str(),mbstowcs(mode).c_str());
#else
fp = fopen(fname,mode);
this->_fp = fopen(fname, mode);
#endif
if(!fp)
failbit = true;
this->fname = fname;
strcpy(this->mode,mode);
if (this->_fp == NULL)
this->_failbit = true;
this->_fname = fname;
strcpy(this->_mode, mode);
}

View File

@ -1,7 +1,7 @@
/*
The MIT License
Copyright (C) 2009-2017 DeSmuME team
Copyright (C) 2009-2021 DeSmuME team
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@ -47,11 +47,11 @@ class EMUFILE_MEMORY;
class EMUFILE {
protected:
bool failbit;
bool _failbit;
public:
EMUFILE()
: failbit(false)
: _failbit(false)
{}
@ -62,8 +62,8 @@ public:
static bool readAllBytes(std::vector<u8>* buf, const std::string& fname);
bool fail(bool unset=false) { bool ret = failbit; if(unset) unfail(); return ret; }
void unfail() { failbit=false; }
bool fail(bool unset=false) { bool ret = this->_failbit; if(unset) unfail(); return ret; }
void unfail() { this->_failbit = false; }
bool eof() { return size()==ftell(); }
@ -220,7 +220,7 @@ public:
//else return temp;
u32 remain = len-pos;
if(remain<1) {
failbit = true;
this->_failbit = true;
return -1;
}
temp = buf()[pos];
@ -286,11 +286,11 @@ public:
class EMUFILE_FILE : public EMUFILE {
protected:
FILE* fp;
std::string fname;
char mode[16];
long mFilePosition;
bool mPositionCacheEnabled;
FILE* _fp;
std::string _fname;
char _mode[16];
long _mFilePosition;
bool _mPositionCacheEnabled;
enum eCondition
{
@ -298,30 +298,30 @@ protected:
eCondition_Unknown,
eCondition_Read,
eCondition_Write
} mCondition;
} _mCondition;
private:
void open(const char* fname, const char* mode);
void __open(const char* fname, const char* mode);
public:
EMUFILE_FILE(const std::string& fname, const char* mode) { open(fname.c_str(),mode); }
EMUFILE_FILE(const char* fname, const char* mode) { open(fname,mode); }
EMUFILE_FILE(const std::string& fname, const char* mode) { __open(fname.c_str(),mode); }
EMUFILE_FILE(const char* fname, const char* mode) { __open(fname,mode); }
void EnablePositionCache();
virtual ~EMUFILE_FILE() {
if(NULL != fp)
fclose(fp);
if (NULL != this->_fp)
fclose(this->_fp);
}
virtual FILE *get_fp() {
return fp;
return this->_fp;
}
virtual EMUFILE* memwrap();
bool is_open() { return fp != NULL; }
bool is_open() { return this->_fp != NULL; }
void DemandCondition(eCondition cond);
@ -330,20 +330,20 @@ public:
virtual int fprintf(const char *format, ...) {
va_list argptr;
va_start(argptr, format);
int ret = ::vfprintf(fp, format, argptr);
int ret = ::vfprintf(this->_fp, format, argptr);
va_end(argptr);
return ret;
};
virtual int fgetc() {
return ::fgetc(fp);
return ::fgetc(this->_fp);
}
virtual int fputc(int c) {
return ::fputc(c, fp);
return ::fputc(c, this->_fp);
}
virtual char* fgets(char* str, int num) {
return ::fgets(str, num, fp);
return ::fgets(str, num, this->_fp);
}
virtual size_t _fread(const void *ptr, size_t bytes);
@ -362,7 +362,7 @@ public:
}
virtual void fflush() {
::fflush(fp);
::fflush(this->_fp);
}
};

View File

@ -1,6 +1,6 @@
/*
Copyright (C) 2011-2012 Roger Manuel
Copyright (C) 2013-2019 DeSmuME team
Copyright (C) 2013-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -189,7 +189,7 @@ void VideoFilter::__InstanceInit(size_t srcWidth, size_t srcHeight, VideoFilterT
__vfThread[i].task = new Task;
char name[16];
snprintf(name, 16, "video filter %d", i);
snprintf(name, 16, "video filter %d", (int)i);
__vfThread[i].task->start(false, 0, name);
}

View File

@ -355,7 +355,7 @@ public:
const NDSDisplayInfo &dispInfo = GPU->GetDisplayInfo();
if (colorFormat != dispInfo.colorFormat)
if (dispInfo.colorFormat != (NDSColorFormat)colorFormat)
{
#ifdef ENABLE_SHARED_FETCH_OBJECT
const size_t maxPages = GPU->GetDisplayInfo().framebufferPageCount;
@ -521,7 +521,7 @@ public:
CommonSettings.num_cores = numberCores;
if (renderingEngineID == CORE3DLIST_SWRASTERIZE)
if (renderingEngineID == RENDERID_SOFTRASTERIZER)
{
GPU->Set3DRendererByID(renderingEngineID);
}
@ -558,7 +558,7 @@ public:
{
gpuEvent->ApplyRender3DSettingsLock();
const int currentMSAASize = CommonSettings.GFX3D_Renderer_MultisampleSize;
const NSUInteger currentMSAASize = (NSUInteger)CommonSettings.GFX3D_Renderer_MultisampleSize;
if (currentMSAASize != msaaSize)
{
@ -644,8 +644,8 @@ public:
msaaSize = openglDeviceMaxMultisamples;
}
msaaSize = GetNearestPositivePOT(msaaSize);
CommonSettings.GFX3D_Renderer_MultisampleSize = msaaSize;
msaaSize = GetNearestPositivePOT((uint32_t)msaaSize);
CommonSettings.GFX3D_Renderer_MultisampleSize = (int)msaaSize;
}
gpuEvent->ApplyRender3DSettingsUnlock();

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2013-2018 DeSmuME team
Copyright (C) 2013-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -2078,9 +2078,10 @@ static std::unordered_map<NSScreen *, DisplayWindowController *> _screenMap; //
CocoaDSCore *cdsCore = (CocoaDSCore *)[[[windowController emuControl] cdsCoreController] content];
CocoaDSGPU *cdsGPU = [cdsCore cdsGPU];
MacClientSharedObject *macSharedData = [cdsGPU sharedData];
BOOL isMetalLayer = NO;
#ifdef ENABLE_APPLE_METAL
BOOL isMetalLayer = NO;
if ((macSharedData != nil) && [macSharedData isKindOfClass:[MetalDisplayViewSharedData class]])
{
if ([(MetalDisplayViewSharedData *)macSharedData device] != nil)

View File

@ -1,6 +1,6 @@
/*
Copyright (C) 2011 Roger Manuel
Copyright (C) 2012-2018 DeSmuME Team
Copyright (C) 2012-2021 DeSmuME Team
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -999,7 +999,7 @@
- (void) markUnsupportedOpenGLMSAAMenuItems
{
CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content];
NSUInteger maxSamples = [[cdsCore cdsGPU] openglDeviceMaxMultisamples];
NSInteger maxSamples = (NSInteger)[[cdsCore cdsGPU] openglDeviceMaxMultisamples];
size_t itemCount = [openglMSAAPopUpButton numberOfItems];
BOOL needAddUnsupportedSeparator = YES;

View File

@ -1,6 +1,6 @@
/*
Copyright (C) 2006 yopyop
Copyright (C) 2008-2019 DeSmuME team
Copyright (C) 2008-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -538,7 +538,7 @@ void gfx3d_init()
// in this case.
if (polylists == NULL)
{
polylists = (POLYLIST *)malloc(sizeof(POLYLIST)*2);
polylists = (POLYLIST *)malloc_alignedPage(sizeof(POLYLIST) * 2);
polylist = &polylists[0];
}
@ -565,7 +565,7 @@ void gfx3d_deinit()
{
Render3D_DeInit();
free(polylists);
free_aligned(polylists);
polylists = NULL;
polylist = NULL;
@ -982,7 +982,7 @@ static void gfx3d_glLightDirection_cache(const size_t index)
MatrixMultVec3x3(mtxCurrent[MATRIXMODE_POSITION_VECTOR], cacheLightDirection[index]);
//Calculate the half angle vector
s32 lineOfSight[4] = {0, 0, (-1)<<12, 0};
s32 lineOfSight[4] = {0, 0, 0xFFFFF000, 0};
for (size_t i = 0; i < 4; i++)
{
cacheHalfVector[index][i] = ((cacheLightDirection[index][i] + lineOfSight[i]));
@ -2416,7 +2416,7 @@ void gfx3d_GenerateRenderLists(const ClipperMode clippingMode)
verty = 1.0f-(verty+vertw)/(2*vertw);
poly.miny = poly.maxy = verty;
for (size_t j = 1; j < poly.type; j++)
for (size_t j = 1; j < (size_t)poly.type; j++)
{
verty = gfx3d.vertList[poly.vertIndexes[j]].y;
vertw = (gfx3d.vertList[poly.vertIndexes[j]].w != 0.0f) ? gfx3d.vertList[poly.vertIndexes[j]].w : 0.00000001f;
@ -3355,7 +3355,7 @@ bool GFX3D_Clipper::ClipPoly(const u16 polyIndex, const POLY &poly, const VERT *
CLIPLOG("==Begin poly==\n");
PolygonType outType;
const PolygonType type = poly.type;
const PolygonType polyType = poly.type;
numScratchClipVerts = 0;
switch (CLIPPERMODE)
@ -3363,7 +3363,7 @@ bool GFX3D_Clipper::ClipPoly(const u16 polyIndex, const POLY &poly, const VERT *
case ClipperMode_Full:
{
clipper1.init(this->_clippedPolyList[this->_clippedPolyCounter].clipVerts);
for (size_t i = 0; i < type; i++)
for (size_t i = 0; i < (size_t)polyType; i++)
clipper1.clipVert(verts[i]);
outType = (PolygonType)clipper1.finish();
@ -3373,7 +3373,7 @@ bool GFX3D_Clipper::ClipPoly(const u16 polyIndex, const POLY &poly, const VERT *
case ClipperMode_FullColorInterpolate:
{
clipper1i.init(this->_clippedPolyList[this->_clippedPolyCounter].clipVerts);
for (size_t i = 0; i < type; i++)
for (size_t i = 0; i < (size_t)polyType; i++)
clipper1i.clipVert(verts[i]);
outType = (PolygonType)clipper1i.finish();
@ -3383,7 +3383,7 @@ bool GFX3D_Clipper::ClipPoly(const u16 polyIndex, const POLY &poly, const VERT *
case ClipperMode_DetermineClipOnly:
{
clipper1d.init(this->_clippedPolyList[this->_clippedPolyCounter].clipVerts);
for (size_t i = 0; i < type; i++)
for (size_t i = 0; i < (size_t)polyType; i++)
clipper1d.clipVert(verts[i]);
outType = (PolygonType)clipper1d.finish();

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2009-2019 DeSmuME team
Copyright (C) 2009-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -2261,7 +2261,7 @@ public:
virtual size_t fwrite(const void *ptr, size_t bytes)
{
if(!failbit)
if(!this->_failbit)
{
u8* dst = buf()+pos;
const u8* src = (const u8*)ptr;
@ -2271,7 +2271,7 @@ public:
if(*src != *dst)
{
if(differences.size() == 100)
failbit = true;
this->_failbit = true;
else
{
const NDSDisplayInfo &dispInfo = GPU->GetDisplayInfo();

View File

@ -1,7 +1,7 @@
/*
Copyright (C) 2006 thoduv
Copyright (C) 2006-2007 Theo Berkau
Copyright (C) 2008-2018 DeSmuME team
Copyright (C) 2008-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -1554,8 +1554,8 @@ bool BackupDevice::import_duc(const char* filename, u32 force_size)
fseek(file, 0xA4, SEEK_SET);
//validate size
int specifiedSize = (id3[0]<<8)+(id3[1]<<16);
if(specifiedSize != size)
const u32 specifiedSize = ((u32)id3[0] << 8) + ((u32)id3[1] << 16);
if (specifiedSize != size)
goto INVALID_DUC;
}

View File

@ -249,7 +249,7 @@ static void CvtPacketToFloat( StereoOut32* srcdest )
{
StereoOutFloat* dest = (StereoOutFloat*)srcdest;
const StereoOut32* src = (StereoOut32*)srcdest;
for( uint i=0; i<SndOutPacketSize; ++i, ++dest, ++src )
for( int i=0; i<SndOutPacketSize; ++i, ++dest, ++src )
*dest = (StereoOutFloat)*src;
}

View File

@ -1,4 +1,4 @@
/* Copyright 2009-2015 DeSmuME team
/* Copyright 2009-2021 DeSmuME team
This file is part of DeSmuME
@ -492,9 +492,9 @@ public:
//SndOutPacketSize
StereoOut16 temp[SndOutPacketSize*2];
SndBuffer::ReadSamples( temp );
for(int i=0;i<SndOutPacketSize;i++) {
readySamples.push(temp[i].Left);
readySamples.push(temp[i].Right);
for(int j=0;j<SndOutPacketSize;j++) {
readySamples.push(temp[j].Left);
readySamples.push(temp[j].Right);
}
}
*buf++ = readySamples.front(); readySamples.pop();

View File

@ -1,4 +1,4 @@
/* Copyright 2009-2015 DeSmuME team
/* Copyright 2009-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -43,6 +43,9 @@ static FORCEINLINE T GetClamped( T src, T min, T max )
class ISynchronizingAudioBuffer
{
public:
ISynchronizingAudioBuffer() {};
virtual ~ISynchronizingAudioBuffer() {};
virtual void enqueue_samples(s16* buf, int samples_provided) = 0;
//returns the number of samples actually supplied, which may not match the number requested

View File

@ -1,5 +1,5 @@
/*
Copyright 2008-2019 DeSmuME team
Copyright 2008-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -335,7 +335,7 @@ void MovieData::installSram(std::string& key, std::string& val) { BinaryDataFrom
void MovieData::installMicSample(std::string& key, std::string& val)
{
//which sample?
int which = atoi(key.c_str()+strlen("micsample"));
size_t which = atoi(key.c_str()+strlen("micsample"));
//make sure we have this many
if(micSamples.size()<which+1)
@ -405,13 +405,13 @@ int MovieData::dump(EMUFILE &fp, bool binary)
if (sram.size() != 0)
fp.fprintf("sram %s\n", BytesToString(&sram[0],sram.size()).c_str());
for(int i=0;i<256;i++)
for (size_t i = 0; i < 256; i++)
{
//TODO - how do these get put in here
if(micSamples.size() > i)
{
char tmp[32];
sprintf(tmp,"micsample%d",i);
sprintf(tmp,"micsample%d", (int)i);
fp.fprintf("%s %s\n",tmp, BytesToString(&micSamples[i][0],micSamples[i].size()).c_str());
}
}

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2009-2016 DeSmuME team
Copyright (C) 2009-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -100,7 +100,7 @@ std::string Path::ScrubInvalid(std::string str)
for (std::string::iterator it(str.begin()); it != str.end(); ++it)
{
bool ok = true;
for(int i=0;i<ARRAY_SIZE(InvalidPathChars);i++)
for (size_t i = 0; i < ARRAY_SIZE(InvalidPathChars); i++)
{
if(InvalidPathChars[i] == *it)
{

View File

@ -1288,7 +1288,7 @@ FORCEINLINE void RasterizerUnit<RENDERER>::Render()
const CPoly &clippedPoly = this->_softRender->GetClippedPolyByIndex(i);
const POLY &thePoly = *clippedPoly.poly;
const int vertCount = clippedPoly.type;
const size_t vertCount = (size_t)clippedPoly.type;
const bool useLineHack = USELINEHACK && (thePoly.vtxFormat & 4);
polyAttr = thePoly.attribute;
@ -1666,8 +1666,8 @@ void SoftRasterizerTexture::SetScalingFactor(size_t scalingFactor)
scalingFactor = 1;
}
u32 newWidth = this->_sizeS * scalingFactor;
u32 newHeight = this->_sizeT * scalingFactor;
s32 newWidth = (s32)(this->_sizeS * scalingFactor);
s32 newHeight = (s32)(this->_sizeT * scalingFactor);
if (this->_renderWidth != newWidth || this->_renderHeight != newHeight)
{
@ -1875,7 +1875,7 @@ void SoftRasterizerRenderer::_TransformVertices()
for (size_t i = 0; i < this->_clippedPolyCount; i++)
{
CPoly &poly = this->_clippedPolyList[i];
for (size_t j = 0; j < poly.type; j++)
for (size_t j = 0; j < (size_t)poly.type; j++)
{
VERT &vert = poly.clipVerts[j];

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2010-2013 DeSmuME team
Copyright (C) 2010-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -112,7 +112,7 @@ void slot1_Init()
void slot1_Shutdown()
{
for(int i=0;i<ARRAY_SIZE(slot1_List);i++)
for (size_t i = 0; i < ARRAY_SIZE(slot1_List); i++)
{
if(slot1_List[i])
slot1_List[i]->shutdown();

View File

@ -1,5 +1,5 @@
/*
Copyright 2009-2015 DeSmuME team
Copyright 2009-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -18,11 +18,11 @@
//based on Arduino SdFat Library ( http://code.google.com/p/sdfatlib/ )
//Copyright (C) 2009 by William Greiman
//based on mkdosfs - utility to create FAT/MS-DOS filesystems
//Copyright (C) 1991 Linus Torvalds <torvalds@klaava.helsinki.fi>
//Copyright (C) 1992-1993 Remy Card <card@masi.ibp.fr>
//Copyright (C) 1993-1994 David Hudson <dave@humbug.demon.co.uk>
//Copyright (C) 1998 H. Peter Anvin <hpa@zytor.com>
//based on mkdosfs - utility to create FAT/MS-DOS filesystems
//Copyright (C) 1991 Linus Torvalds <torvalds@klaava.helsinki.fi>
//Copyright (C) 1992-1993 Remy Card <card@masi.ibp.fr>
//Copyright (C) 1993-1994 David Hudson <dave@humbug.demon.co.uk>
//Copyright (C) 1998 H. Peter Anvin <hpa@zytor.com>
//Copyright (C) 1998-2005 Roman Hodek <Roman.Hodek@informatik.uni-erlangen.de>
#include "emufat.h"
@ -557,15 +557,15 @@ bool EmuFatVolume::formatNew(u32 sectors)
dev_->writeBlock(bs->fat32.fat32BackBootBlock,(const u8*)bs);
}
/* seek to start of FATS and write them all */
int ctr=bs->reservedSectorCount;
for (int i=0;i<bs->fatCount;i++)
for(int j=0;j<fat_length;j++,ctr++)
dev_->writeBlock(ctr,fat+j*sector_size);
u32 ctr = bs->reservedSectorCount;
for (u8 i = 0; i < bs->fatCount; i++)
for (u32 j = 0; j < fat_length; j++, ctr++)
dev_->writeBlock(ctr, fat+j*sector_size);
/* Write the root directory directly after the last FAT. This is the root
* dir area on FAT12/16, and the first cluster on FAT32. */
for(int i=0;i<size_root_dir_in_sectors;i++)
dev_->writeBlock(ctr,blank_sector);
for (u32 i = 0; i < size_root_dir_in_sectors; i++)
dev_->writeBlock(ctr, blank_sector);
delete[] blank_sector;
delete[] info_sector;
@ -1260,7 +1260,7 @@ u8 EmuFatFile::open(EmuFatFile* dirFile, const char* fileName, u8 oflag) {
* See open() by fileName for definition of flags and return values.
*
*/
u8 EmuFatFile::open(EmuFatFile* dirFile, u16 index, u8 oflag) {
u8 EmuFatFile::open(EmuFatFile* dirFile, u32 index, u8 oflag) {
// error if already open
if (isOpen())return false;
@ -1282,7 +1282,7 @@ u8 EmuFatFile::open(EmuFatFile* dirFile, u16 index, u8 oflag) {
return false;
}
// open cached entry
return openCachedEntry(index & 0XF, oflag);
return openCachedEntry((u8)(index & 0x0F), oflag);
}
//------------------------------------------------------------------------------
@ -1601,7 +1601,7 @@ u8 EmuFatFile::rmRfStar(void) {
EmuFatFile f;
// remember position
u16 index = curPosition_/32;
u32 index = curPosition_/32;
TDirectoryEntry* p = readDirCache();
if (!p) return false;

View File

@ -1,5 +1,5 @@
/*
Copyright 2009-2015 DeSmuME team
Copyright 2009-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -514,7 +514,7 @@ class EmuFatFile
u8 timestamp(u8 flag, u16 year, u8 month, u8 day, u8 hour, u8 minute, u8 second);
u8 sync(void);
u8 makeDir(EmuFatFile* dir, const char* dirName);
u8 open(EmuFatFile* dirFile, u16 index, u8 oflag);
u8 open(EmuFatFile* dirFile, u32 index, u8 oflag);
u8 open(EmuFatFile* dirFile, const char* fileName, u8 oflag);
u8 remove(EmuFatFile* dirFile, const char* fileName);
u8 remove(void);