Core: Remove trailing whitespace from all files

This commit is contained in:
TellowKrinkle 2022-09-13 21:20:25 -05:00 committed by tellowkrinkle
parent 09c41b6e20
commit 738c8cb630
187 changed files with 648 additions and 648 deletions

View File

@ -10,7 +10,7 @@ fi
export BINARY_NAME=$(basename "$ARGV0")
if [[ ! -e "$PWD/$BINARY_NAME.config" ]]; then
mkdir "$PWD/$BINARY_NAME.config"
fi
fi
export XDG_CONFIG_HOME="$PWD/$BINARY_NAME.config"
mkdir -p "$HOME"/.local/share/icons/hicolor/scalable/apps && cp "$APPDIR"/PCSX2.png "$HOME"/.local/share/icons/hicolor/scalable/apps

View File

@ -1,6 +1,6 @@
# Once done, this will define
#
# LIBC_FOUND - system has libc
# LIBC_FOUND - system has libc
# LIBC_LIBRARIES - link these to use libc
if(LIBC_LIBRARIES)
@ -12,7 +12,7 @@ find_library(libm NAMES m)
# OSX doesn't have rt. On Linux timer and aio dependency.
if(APPLE)
find_library(libdl NAMES dl)
set(LIBC_LIBRARIES ${librt} ${libdl} ${libm})
set(LIBC_LIBRARIES ${librt} ${libdl} ${libm})
elseif(Linux)
find_library(libdl NAMES dl)
find_library(librt NAMES rt)
@ -23,7 +23,7 @@ else()
set(LIBC_LIBRARIES ${librt} ${libm})
endif()
# handle the QUIETLY and REQUIRED arguments and set LIBC_FOUND to TRUE if
# handle the QUIETLY and REQUIRED arguments and set LIBC_FOUND to TRUE if
# all listed variables are TRUE
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Libc DEFAULT_MSG LIBC_LIBRARIES)

View File

@ -746,7 +746,7 @@ static uint cdvdRotationalLatency(CDVD_MODE_TYPE mode)
{
const float rotationPerSecond = static_cast<float>(((mode == MODE_CDROM) ? CD_MIN_ROTATION_X1 : DVD_MIN_ROTATION_X1) * cdvd.Speed) / 60.0f;
const float msPerRotation = 1000.0f / rotationPerSecond;
return ((PSXCLK / 1000) * msPerRotation);
}
else
@ -1123,7 +1123,7 @@ __fi void cdvdReadInterrupt()
cdvdUpdateReady(CDVD_DRIVE_BUSY);
cdvdUpdateStatus(CDVD_STATUS_READ);
cdvd.WaitingDMA = false;
if (!cdvd.Readed)
{
// Seeking finished. Process the track we requested before, and
@ -1166,7 +1166,7 @@ __fi void cdvdReadInterrupt()
cdvdSetIrq();
return;
}
if (cdvd.Reading)
{
if (cdvd.RErr == 0)
@ -1288,7 +1288,7 @@ static uint cdvdStartSeek(uint newsector, CDVD_MODE_TYPE mode)
// So In the case where it's seeking to data it will be Spinning (0x2) not reading (0x8) and Seeking (0x10, but because seeking is also spinning 0x2 is also set))
// Update - Apparently all that was rubbish and some games don't like it. WRC was the one in this scenario which hated SEEK |ZPAUSE, so just putting it back to pause for now.
// We should really run some tests for this behaviour.
cdvdUpdateStatus(CDVD_STATUS_SEEK);
if (!cdvd.Spinning)
@ -1324,7 +1324,7 @@ static uint cdvdStartSeek(uint newsector, CDVD_MODE_TYPE mode)
// if delta > 0 it will read a new sector so the readInterrupt will account for this.
seektime = 0;
isSeeking = false;
if (delta == 0)
{
//cdvd.Status = CDVD_STATUS_PAUSE;
@ -1336,9 +1336,9 @@ static uint cdvdStartSeek(uint newsector, CDVD_MODE_TYPE mode)
// setting Readed to 0 skips the seek logic, which means the next call to
// cdvdReadInterrupt will load a block. So make sure it's properly scheduled
// based on sector read speeds:
//seektime = cdvd.ReadTime;
if (!cdvd.nextSectorsBuffered)//Buffering time hasn't completed yet so cancel it and simulate the remaining time
{
if (psxRegs.interrupt & (1 << IopEvt_CdvdSectorReady))

View File

@ -145,7 +145,7 @@ struct CDVD_API
};
// ----------------------------------------------------------------------------
// Multiple interface system for CDVD.
// Multiple interface system for CDVD.
// ----------------------------------------------------------------------------
extern CDVD_API* CDVD; // currently active CDVD access mode api (either Iso, NoDisc, or Disc)

View File

@ -212,7 +212,7 @@ bool IOCtlSrc::ReadDVDInfo()
// least 18 bytes of the layer descriptor or else the ioctl will fail. The
// media specific information seems to be empty, so there's no point reading
// any more than that.
// UPDATE 15 Jan 2021
// Okay so some drives seem to have descriptors BIGGER than 22 bytes!
// This causes the read to fail with INVALID_PARAMETER.

View File

@ -443,7 +443,7 @@ endif()
set(pcsx2USBNullSources USB/USBNull.cpp)
set(pcsx2USBNullHeaders USB/USB.h)
# USB sources
# USB sources
set(pcsx2USBSources
USB/USB.cpp
USB/deviceproxy.cpp

View File

@ -341,7 +341,7 @@ void CACHE()
u32 addr = cpuRegs.GPR.r[_Rs_].UL[0] + _Imm_;
// CACHE_LOG("cpuRegs.GPR.r[_Rs_].UL[0] = %x, IMM = %x RT = %x", cpuRegs.GPR.r[_Rs_].UL[0], _Imm_, _Rt_);
switch (_Rt_)
switch (_Rt_)
{
case 0x1a: //DHIN (Data Cache Hit Invalidate)
doCacheHitOp(addr, "DHIN", [](CacheLine line)

View File

@ -390,7 +390,7 @@ u32 UpdateVSyncRate()
// The PS2's vsync timer is an *independent* crystal that is fixed to either 59.94 (NTSC)
// or 50.0 (PAL) Hz. It has *nothing* to do with real TV timings or the real vsync of
// the GS's output circuit. It is the same regardless if the GS is outputting interlace
// or progressive scan content.
// or progressive scan content.
const double vertical_frequency = GetVerticalFrequency();
@ -457,7 +457,7 @@ u32 UpdateVSyncRate()
if (video_mode_initialized)
Console.WriteLn(Color_Green, "(UpdateVSyncRate) Mode Changed to %s.", ReportVideoMode());
if (custom && video_mode_initialized)
Console.Indent().WriteLn(Color_StrongGreen, "... with user configured refresh rate: %.02f Hz", vertical_frequency);
@ -543,7 +543,7 @@ static __fi void DoFMVSwitch()
RendererSwitched = false;
}
// Convenience function to update UI thread and set patches.
// Convenience function to update UI thread and set patches.
static __fi void frameLimitUpdateCore()
{
DoFMVSwitch();
@ -585,15 +585,15 @@ static __fi void frameLimit()
// Conversion of delta from CPU ticks (microseconds) to milliseconds
s32 msec = (int) ((sDeltaTime * -1000) / (s64) GetTickFrequency());
// If any integer value of milliseconds exists, sleep it off.
// Prior comments suggested that 1-2 ms sleeps were inaccurate on some OSes;
// further testing suggests instead that this was utter bullshit.
// further testing suggests instead that this was utter bullshit.
if (msec > 1)
{
Threading::Sleep(msec - 1);
}
// Conversion to milliseconds loses some precision; after sleeping off whole milliseconds,
// spin the thread without sleeping until we finally reach our expected end time.
while (GetCPUTicks() < uExpectedEnd)
@ -628,7 +628,7 @@ static __fi void VSyncStart(u32 sCycle)
hwIntcIrq(INTC_VBLANK_S);
psxVBlankStart();
if (gates) rcntStartGate(true, sCycle); // Counters Start Gate code
// INTC - VB Blank Start Hack --
@ -746,7 +746,7 @@ __fi void rcntUpdate_vSync()
if (vsyncCounter.Mode == MODE_VSYNC)
{
VSyncEnd(vsyncCounter.sCycle);
vsyncCounter.sCycle += vSyncInfo.Blank;
vsyncCounter.CycleT = vSyncInfo.Render;
vsyncCounter.Mode = MODE_VRENDER;
@ -962,7 +962,7 @@ static __fi void rcntEndGate(bool isVblank , u32 sCycle)
// calls to rcntUpdate).
counters[i].mode.IsCounting = 1;
counters[i].sCycleT = cpuRegs.cycle;
EECNT_LOG("EE Counter[%d] %s EndGate Type0, count = %x", i,
isVblank ? "vblank" : "hblank", counters[i].count );
break;
@ -1131,7 +1131,7 @@ __fi u16 rcntRead32( u32 mem )
case(RCNT3_MODE): return (u16)counters[3].modeval;
case(RCNT3_TARGET): return (u16)counters[3].target;
}
return psHu16(mem);
}

View File

@ -257,7 +257,7 @@ EXTERN int ThreadRun;
#define SMAP_R_RXFIFO_FRAME_CNT (SMAP_REGBASE + 0xf3C)
#define SMAP_R_RXFIFO_FRAME_DEC (SMAP_REGBASE + 0xf40)
#define SMAP_R_RXFIFO_DATA (SMAP_REGBASE + 0x1100)
#define SMAP_R_FIFO_ADDR (SMAP_REGBASE + 0x1200)
#define SMAP_FIFO_CMD_READ (1<<1)
#define SMAP_FIFO_DATA_SWAP (1<<0)

View File

@ -66,7 +66,7 @@ namespace PacketReader::ARP
, senderProtocolAddress{std::make_unique<u8[]>(original.protocolAddressLength)}
, targetHardwareAddress{std::make_unique<u8[]>(original.hardwareAddressLength)}
, targetProtocolAddress{std::make_unique<u8[]>(original.protocolAddressLength)}
{
{
memcpy(senderHardwareAddress.get(), original.senderHardwareAddress.get(), hardwareAddressLength);
memcpy(senderProtocolAddress.get(), original.senderProtocolAddress.get(), protocolAddressLength);
memcpy(targetHardwareAddress.get(), original.targetHardwareAddress.get(), hardwareAddressLength);

View File

@ -19,7 +19,7 @@ namespace PacketReader::IP
{
struct IP_Address
{
union
union
{
u8 bytes[4];
u32 integer;

View File

@ -82,7 +82,7 @@ namespace PacketReader::IP
* Not Defined (xxx000)
* 6 = Internetwork Control Class 6
* 7 = Network Control Class 7
*
*
* Lower 3 Bits
* In TOS, defined as follows
* bit 0: Reliability

View File

@ -75,7 +75,7 @@ using namespace std::chrono_literals;
FreeBSD
Raw sockets restricted
No unprivilaged ICMP sockets
Timeouts reported as a normal packet??
Timeouts reported as a normal packet??
Ping cli
Present for all platforms, but command args differ

View File

@ -371,15 +371,15 @@ bool TAPGetWin32Adapter(const std::string& name, PIP_ADAPTER_ADDRESSES adapter,
* but it doesn't tell you whether it's a bridge or an LBFO team or something more exotic.
* The way to distinguish exactly which flavor of ms_implat you have is to look at which LWF driver is bound to the *virtual miniport* above the IM driver.
* This is two steps then.
*
*
* 1. Given a physical NIC, you first want to determine which virtual NIC is layered over it.
* 2. Given a virtual NIC, you want to determine whether ms_bridge is bound to it.
*
*
* To get the first part, look through the interface stack table (GetIfStackTable). Search the stack table for any entry where the lower is the IfIndex of the physical NIC.
* For any such entry (there will probably be a few), check if that entry's upper IfIndex is the IfIndex for a virtual miniport with component ID "COMPOSITEBUS\MS_IMPLAT_MP".
* If you find such a thing, that means the physical NIC is a member of a bridge/LBFO/something-else-fancy.
* If you don't find it, then you know the NIC isn't part of the bridge that comes with Windows 8 / Windows 10.
*
*
* To get the second part, just use the same INetCfg code above on the *virtual* NIC's component. If the ms_bridge component is bound to the virtual NIC,
* then that virtual NIC is doing bridging. Otherwise, it's doing something else (like LBFO).
*/

View File

@ -194,8 +194,8 @@ void tx_process()
if (dev9.txfifo_rd_ptr==16384)
dev9.txfifo_rd_ptr=0;
}
if (dev9.txfifo_rd_ptr&(~16383))
{
@ -612,7 +612,7 @@ void smap_write16(u32 addr, u16 value)
value = (value >> 8) | (value << 8);
dev9Ru16(addr) = value;
/*
switch (addr & 0x7)
switch (addr & 0x7)
{
case 0: // ctrl_stat
DevCon.WriteLn("DEV9: TX_CTRL_STAT[%d]: write %x", (addr - SMAP_BD_TX_BASE) / 8, value);
@ -642,7 +642,7 @@ void smap_write16(u32 addr, u16 value)
value = (value >> 8) | (value << 8);
dev9Ru16(addr) = value;
/*
switch (addr & 0x7)
switch (addr & 0x7)
{
case 0: // ctrl_stat
DevCon.WriteLn("DEV9: RX_CTRL_STAT[%d]: write %x", rx_index, value);
@ -772,7 +772,7 @@ void smap_write16(u32 addr, u16 value)
emu_printf("SMAP: SMAP_R_EMAC3_TxMODE0_H 16bit write %x\n", value);
dev9Ru16(addr) = value;
return;
case SMAP_R_EMAC3_TxMODE1_H:
emu_printf("SMAP: SMAP_R_EMAC3_TxMODE1_H 16bit write %x\n", value);
dev9Ru16(addr) = value;

View File

@ -49,7 +49,7 @@ enum {
THS_WAIT_SUSPEND = 0x0C,
THS_DORMANT = 0x10,
};
enum {
WAIT_NONE = 0,
WAIT_WAKEUP_REQ = 1,

View File

@ -91,7 +91,7 @@ public:
{
return SysTraceLog::IsActive() && EmuConfig.Trace.EE.m_EnableAll;
}
std::string GetCategory() const override { return "EE"; }
};
@ -266,7 +266,7 @@ struct SysTraceLogPack
SysTraceLog_EE_Disasm COP1;
SysTraceLog_EE_Disasm COP2;
SysTraceLog_EE_Disasm Cache;
SysTraceLog_EE_Registers KnownHw;
SysTraceLog_EE_Registers UnknownHw;
SysTraceLog_EE_Registers DMAhw;
@ -281,7 +281,7 @@ struct SysTraceLogPack
EE_PACK();
} EE;
struct IOP_PACK
{
SysTraceLog_IOP Bios;

View File

@ -221,11 +221,11 @@ void DisassemblyManager::analyze(u32 address, u32 size = 1024)
std::vector<BranchLine> DisassemblyManager::getBranchLines(u32 start, u32 size)
{
std::vector<BranchLine> result;
auto it = findDisassemblyEntry(entries,start,false);
if (it != entries.end())
{
do
do
{
it->second->getBranchLines(start,size,result);
it++;
@ -258,7 +258,7 @@ void DisassemblyManager::getLine(u32 address, bool insertSymbols, DisassemblyLin
DisassemblyEntry* entry = it->second;
if (entry->disassemble(address,dest,insertSymbols))
return;
if (address % 4)
dest.totalSize = ((address+3) & ~3)-address;
else
@ -277,7 +277,7 @@ u32 DisassemblyManager::getStartAddress(u32 address)
if (it == entries.end())
return address;
}
DisassemblyEntry* entry = it->second;
int line = entry->getLineNum(address,true);
return entry->getLineAddress(line);
@ -288,7 +288,7 @@ u32 DisassemblyManager::getNthPreviousAddress(u32 address, int n)
while (cpu->isValidAddress(address))
{
auto it = findDisassemblyEntry(entries,address,false);
while (it != entries.end())
{
DisassemblyEntry* entry = it->second;
@ -302,10 +302,10 @@ u32 DisassemblyManager::getNthPreviousAddress(u32 address, int n)
n -= oldLineNum+1;
it = findDisassemblyEntry(entries,address,false);
}
analyze(address-127,128);
}
return address-n*4;
}
@ -314,7 +314,7 @@ u32 DisassemblyManager::getNthNextAddress(u32 address, int n)
while (cpu->isValidAddress(address))
{
auto it = findDisassemblyEntry(entries,address,false);
while (it != entries.end())
{
DisassemblyEntry* entry = it->second;
@ -532,7 +532,7 @@ void DisassemblyFunction::load()
break;
}
}
u32 funcPos = address;
u32 funcEnd = address+size;
@ -563,7 +563,7 @@ void DisassemblyFunction::load()
DisassemblyComment* comment = new DisassemblyComment(cpu,funcPos,nextPos-funcPos,".align","4");
entries[funcPos] = comment;
lineAddresses.push_back(funcPos);
funcPos = nextPos;
opcodeSequenceStart = funcPos;
continue;
@ -572,14 +572,14 @@ void DisassemblyFunction::load()
MIPSAnalyst::MipsOpcodeInfo opInfo = MIPSAnalyst::GetOpcodeInfo(cpu,funcPos);
u32 opAddress = funcPos;
funcPos += 4;
// skip branches and their delay slots
if (opInfo.isBranch)
{
if (funcPos < funcEnd) funcPos += 4; // only include delay slots within the function bounds
continue;
}
// lui
if (MIPS_GET_OP(opInfo.encodedOpcode) == 0x0F && funcPos < funcEnd && funcPos != nextData)
{
@ -692,7 +692,7 @@ void DisassemblyFunction::clear()
bool DisassemblyOpcode::disassemble(u32 address, DisassemblyLineInfo& dest, bool insertSymbols)
{
char opcode[64],arguments[256];
std::string dis = cpu->disasm(address,insertSymbols);
parseDisasm(cpu->GetSymbolMap(),dis.c_str(),opcode,arguments,insertSymbols);
dest.type = DISTYPE_OPCODE;
@ -770,7 +770,7 @@ bool DisassemblyMacro::disassemble(u32 address, DisassemblyLineInfo& dest, bool
{
case MACRO_LI:
dest.name = name;
addressSymbol = cpu->GetSymbolMap().GetLabelString(immediate);
if (!addressSymbol.empty() && insertSymbols)
{
@ -780,7 +780,7 @@ bool DisassemblyMacro::disassemble(u32 address, DisassemblyLineInfo& dest, bool
}
dest.params = buffer;
dest.info.hasRelevantAddress = true;
dest.info.releventAddress = immediate;
break;
@ -883,7 +883,7 @@ void DisassemblyData::createLines()
u32 pos = address;
u32 end = address+size;
u32 maxChars = DisassemblyManager::getMaxParamChars();
std::string currentLine;
u32 currentLineStart = pos;
@ -904,7 +904,7 @@ void DisassemblyData::createLines()
DataEntry entry = {currentLine,pos-1-currentLineStart,lineCount++};
lines[currentLineStart] = entry;
lineAddresses.push_back(currentLineStart);
currentLine = "";
currentLineStart = pos-1;
inString = false;
@ -925,11 +925,11 @@ void DisassemblyData::createLines()
{
if (inString)
currentLine += "\"";
DataEntry entry = {currentLine,pos-1-currentLineStart,lineCount++};
lines[currentLineStart] = entry;
lineAddresses.push_back(currentLineStart);
currentLine = "";
currentLineStart = pos-1;
inString = false;

View File

@ -305,7 +305,7 @@ bool initPostfixExpression(const char* infix, IExpressionFunctions* funcs, Postf
while (true)
{
if (opcodeStack.empty())
{
{
sprintf(expressionError,"Closing parenthesis without opening one");
return false;
}
@ -319,7 +319,7 @@ bool initPostfixExpression(const char* infix, IExpressionFunctions* funcs, Postf
while (true)
{
if (opcodeStack.empty())
{
{
sprintf(expressionError,"Closing bracket without opening one");
return false;
}

View File

@ -57,19 +57,19 @@ namespace MIPSAnalyst
{
u32 op = r5900Debug.read32(addr);
const R5900::OPCODE& opcode = R5900::GetInstruction(op);
int branchType = (opcode.flags & BRANCHTYPE_MASK);
if ((opcode.flags & IS_BRANCH) && (branchType == BRANCHTYPE_BRANCH || branchType == BRANCHTYPE_BC1))
return addr + 4 + ((signed short)(op&0xFFFF)<<2);
else
return INVALIDTARGET;
}
u32 GetBranchTargetNoRA(u32 addr)
{
u32 op = r5900Debug.read32(addr);
const R5900::OPCODE& opcode = R5900::GetInstruction(op);
int branchType = (opcode.flags & BRANCHTYPE_MASK);
if ((opcode.flags & IS_BRANCH) && (branchType == BRANCHTYPE_BRANCH || branchType == BRANCHTYPE_BC1))
{
@ -86,7 +86,7 @@ namespace MIPSAnalyst
{
u32 op = r5900Debug.read32(addr);
const R5900::OPCODE& opcode = R5900::GetInstruction(op);
if ((opcode.flags & IS_BRANCH) && (opcode.flags & BRANCHTYPE_MASK) == BRANCHTYPE_BRANCH)
{
bool sure = false;
@ -290,7 +290,7 @@ namespace MIPSAnalyst
}
}
}
if (end) {
// most functions are aligned to 8 or 16 bytes
// add the padding to this one
@ -353,7 +353,7 @@ namespace MIPSAnalyst
case BRANCHTYPE_BRANCH:
info.isConditional = true;
info.branchTarget = info.opcodeAddress + 4 + ((s16)(op&0xFFFF)<<2);
rs = info.cpu->getRegister(0,MIPS_GET_RS(op))._u64[0];
rt = info.cpu->getRegister(0,MIPS_GET_RT(op))._u64[0];
switch (opcode.flags & CONDTYPE_MASK)
@ -381,7 +381,7 @@ namespace MIPSAnalyst
info.conditionMet = (((s64)rs) >= 0);
break;
}
break;
case BRANCHTYPE_REGISTER:
info.isConditional = false;
@ -430,7 +430,7 @@ namespace MIPSAnalyst
info.lrType = LOADSTORE_LEFT;
else if (opcode.flags & IS_RIGHT)
info.lrType = LOADSTORE_RIGHT;
u32 rs = info.cpu->getRegister(0, (int)MIPS_GET_RS(op));
s16 imm16 = op & 0xFFFF;
info.dataAddress = rs + imm16;
@ -457,7 +457,7 @@ namespace MIPSAnalyst
info.dataSize = 16;
break;
}
info.hasRelevantAddress = true;
info.releventAddress = info.dataAddress;
}

View File

@ -49,7 +49,7 @@ namespace MIPSAnalyst
DebugInterface* cpu;
u32 opcodeAddress;
u32 encodedOpcode;
// shared between branches and conditional moves
bool isConditional;
bool conditionMet;
@ -72,6 +72,6 @@ namespace MIPSAnalyst
bool hasRelevantAddress;
u32 releventAddress;
} MipsOpcodeInfo;
MipsOpcodeInfo GetOpcodeInfo(DebugInterface* cpu, u32 address);
};

View File

@ -27,7 +27,7 @@ public:
{
//
}
static void queueError(ErrorType type, const wchar_t* text, ...)
{
//
@ -177,7 +177,7 @@ void SplitLine(const char* Line, char* Name, char* Arguments)
*Name++ = *Line++;
}
*Name = 0;
while (*Line == ' ' || *Line == '\t') Line++;
while (*Line != 0)
@ -587,7 +587,7 @@ bool CMipsInstruction::LoadEncoding(const tMipsOpcode& SourceOpcode, const char*
while (*Line == ' ' || *Line == '\t') Line++;
if (*Line != 0) return false; // there's something else, bad
// opcode is ok - now set all flags
Opcode = SourceOpcode;
immediate.value = immediate.originalValue;
@ -601,13 +601,13 @@ void CMipsInstruction::setOmittedRegisters()
// copy over omitted registers
if (Opcode.flags & MO_RSD)
registers.grd = registers.grs;
if (Opcode.flags & MO_RST)
registers.grt = registers.grs;
if (Opcode.flags & MO_RDT)
registers.grt = registers.grd;
if (Opcode.flags & MO_FRSD)
registers.frd = registers.frs;
}
@ -641,7 +641,7 @@ bool CMipsInstruction::Validate()
if (immediateType != MIPS_NOIMMEDIATE)
{
immediate.originalValue = immediate.value;
if (Opcode.flags & MO_IMMALIGNED) // immediate must be aligned
{
if (immediate.value % 4)
@ -657,7 +657,7 @@ bool CMipsInstruction::Validate()
} else if (Opcode.flags & MO_IPCR) // relative 16 bit value
{
int num = (immediate.value-RamPos-4);
if (num > 0x20000 || num < (-0x20000))
{
Logger::queueError(Logger::Error,L"Branch target %08X out of range",immediate.value);
@ -665,7 +665,7 @@ bool CMipsInstruction::Validate()
}
immediate.value = num >> 2;
}
int immediateBits = getImmediateBits(immediateType);
unsigned int mask = (0xFFFFFFFF << (32-immediateBits)) >> (32-immediateBits);
int digits = (immediateBits+3) / 4;
@ -678,7 +678,7 @@ bool CMipsInstruction::Validate()
immediate.value &= mask;
}
return true;
}
@ -689,11 +689,11 @@ void CMipsInstruction::encodeNormal()
if (registers.grs.num != -1) encoding |= MIPS_RS(registers.grs.num); // source reg
if (registers.grt.num != -1) encoding |= MIPS_RT(registers.grt.num); // target reg
if (registers.grd.num != -1) encoding |= MIPS_RD(registers.grd.num); // dest reg
if (registers.frt.num != -1) encoding |= MIPS_FT(registers.frt.num); // float target reg
if (registers.frs.num != -1) encoding |= MIPS_FS(registers.frs.num); // float source reg
if (registers.frd.num != -1) encoding |= MIPS_FD(registers.frd.num); // float dest reg
if (registers.ps2vrt.num != -1) encoding |= (registers.ps2vrt.num << 16); // ps2 vector target reg
if (registers.ps2vrs.num != -1) encoding |= (registers.ps2vrs.num << 21); // ps2 vector source reg
if (registers.ps2vrd.num != -1) encoding |= (registers.ps2vrd.num << 6); // ps2 vector dest reg

View File

@ -133,7 +133,7 @@ bool SymbolMap::GetSymbolInfo(SymbolInfo *info, u32 address, SymbolType symmask)
return true;
}
if (dataAddress != INVALID_ADDRESS) {
if (info != NULL) {
info->type = ST_DATA;

View File

@ -120,7 +120,7 @@ __fi tDMA_TAG* SPRdmaGetAddr(u32 addr, bool write)
DevCon.Warning("MTVU: SPR Accessing VU1 Memory");
vu1Thread.WaitVU();
}
//Access for VU Memory
if((addr >= 0x1100c000) && (addr < 0x11010000))
@ -134,7 +134,7 @@ __fi tDMA_TAG* SPRdmaGetAddr(u32 addr, bool write)
//DevCon.Warning("VU0 Mem %x", addr);
return (tDMA_TAG*)(VU0.Mem + (addr & 0xff0));
}
//Possibly not needed but the manual doesn't say SPR cannot access it.
if((addr >= 0x11000000) && (addr < 0x11004000))
{
@ -147,8 +147,8 @@ __fi tDMA_TAG* SPRdmaGetAddr(u32 addr, bool write)
//DevCon.Warning("VU1 Micro %x", addr);
return (tDMA_TAG*)(VU1.Micro + (addr & 0x3ff0));
}
// Unreachable
return NULL;
}
@ -255,7 +255,7 @@ static __ri void DmaExec( void (*func)(), u32 mem, u32 value )
cpuClearInt( 11 );
QueuedDMA._u16 &= ~(1 << 11); //Clear any queued DMA requests for this channel
}
cpuClearInt( channel );
QueuedDMA._u16 &= ~(1 << channel); //Clear any queued DMA requests for this channel
}
@ -307,7 +307,7 @@ __fi u32 dmacRead32( u32 mem )
// Set OPH and APATH from counter, cycling paths and alternating OPH
return gifRegs.stat._u32 & ~(7 << 9) | (counter & 1 ? counter << 9 : 0);
}
return psHu32(mem);
}

View File

@ -41,7 +41,7 @@ Advanced users may wish to use a different folder for their BIOS, you can do so
![PCSX2_First_Time_Configuration_bios.png](PCSX2_First_Time_Configuration_bios.png)
## Post-Setup Configuration
A large number of games work out-of-the-box on default PCSX2 settings. However, a subset of games require special settings to run, and some games require special settings to be upscaled. This guide will briefly cover some frequent problems and configuration settings to address them.
A large number of games work out-of-the-box on default PCSX2 settings. However, a subset of games require special settings to run, and some games require special settings to be upscaled. This guide will briefly cover some frequent problems and configuration settings to address them.
### Multi-Threaded VU1 (MTVU)
The MTVU option is a unique case of a recommended setting that is **not** enabled by default. MTVU boosts performance for PCs with at least 3 cores with almost no consequences for the overwhelming majority of games. However, a small number of high profile games are incompabible with MTVU and will break if it is enabled. For these reasons, we do not enable it by default, **but strongly recommend you do so yourself**. If your game fails to boot, crashes, stalls, or has other problems with it enabled, disable it and try again.
@ -50,7 +50,7 @@ The MTVU option is a unique case of a recommended setting that is **not** enable
Looking for information specific to a single game? Head to the [PCSX2 Wiki](https://wiki.pcsx2.net/Main_Page) and search for your game using the search bar in the top right. Known issues and solutions should be towards the bottom of a game's wiki page.
### General solutions
Want some general ideas to try that are not specific to a game? Here are some more commonly known issues and solutions to try.
Want some general ideas to try that are not specific to a game? Here are some more commonly known issues and solutions to try.
*Note: For some of these issues, multiple solutions are given one after the other. Before moving from one solution to the next, **undo the previous solution**. Stacking multiple fixes on top of each other is usually unnecessary and likely to introduce new issues.*
#### Grid-like pattern on screen
@ -74,7 +74,7 @@ Sometimes a game uses blending for lighting effects and needs more accuracy for
Increment Blending Accuracy until the problem goes away. Note, higher Blending Accuracy substantially increases performance requirements.
#### Flickering or improperly shaped shadows
This can either be a GS or VU problem so solutions will vary wildly by game.
This can either be a GS or VU problem so solutions will vary wildly by game.
##### GS
Navigate to the GSdx Advanced Settings and Hacks:

View File

@ -5,7 +5,7 @@
/* PCSX2 - PS2 Emulator for PCs
* Copyright (C) 2002-2019 PCSX2 Dev Team
*
*
* PCSX2 is free software: you can redistribute it and/or modify it under the terms
* of the GNU Lesser General Public License as published by the Free Software Found-
* ation, either version 3 of the License, or (at your option) any later version.

View File

@ -25,7 +25,7 @@ There are a number of ways to help the project, whether it be bug reporting, gam
* Want to improve the PCSX2 wiki? [Here is how to contribute](https://wiki.pcsx2.net/Help!_How_to_contribute_guide)
### Question 4: Is PCSX2 ready to run out-of-the-box?
No, first, you must dump your PlayStation 2 console's BIOS using the BIOS dumper. The BIOS dumper is [available on the PCSX2 website](https://pcsx2.net/download/releases/tools.html).
No, first, you must dump your PlayStation 2 console's BIOS using the BIOS dumper. The BIOS dumper is [available on the PCSX2 website](https://pcsx2.net/download/releases/tools.html).
After dumping your PlayStation 2 console's BIOS and copying it to your computer, launch PCSX2, step through the first time setup wizard, and then you may begin playing.
@ -44,7 +44,7 @@ After dumping your PlayStation 2 console's BIOS and copying it to your computer,
*Note: Recommended Single Thread Performance is based on moderately complex games. Games that pushed the PS2 hardware to its limits will struggle on CPUs at this level. Some release titles and 2D games which underutilized the PS2 hardware may run on CPUs rated as low as 1200. A quick reference for CPU **intensive games**: [Wiki](https://wiki.pcsx2.net/Category:CPU_intensive_games), [Forum](https://forums.pcsx2.net/Thread-LIST-The-Most-CPU-Intensive-Games) and CPU **light** games: [Forum](https://forums.pcsx2.net/Thread-LIST-Games-that-don-t-need-a-strong-CPU-to-emulate)*
#### Recommended
#### Recommended
| Operating System | CPU | GPU | RAM |
| --- | --- | --- | --- |
@ -66,7 +66,7 @@ The CPU load as reported in software such as Windows' Task Manager is usually a
No. PCSX2 does not use or require SLI or Crossfire.
### Question 9: How do I check if a game is playable?
The PCSX2 website has a [compatibility list](https://pcsx2.net/compat/) with every game that has been tested.
The PCSX2 website has a [compatibility list](https://pcsx2.net/compat/) with every game that has been tested.
### Question 10: Do PS1 (PSX) games work on PCSX2?
@ -74,12 +74,12 @@ The PCSX2 website has a [compatibility list](https://pcsx2.net/compat/) with eve
No, they will not work without issues. Please use a proper PS1 emulator, such as Duckstation or Mednafen.
#### If you are a tinkerer and like to break things:
PS1 games may work on PCSX2, but compatibility is very limited. Specific settings are often required to get a game to boot, and there are other universal problems including missing/pitch-shifted audio and severe FMV corruption. A [forum thread for PS1 compatibility](https://forums.pcsx2.net/Thread-PSX-Mode-Unofficial-Compatibility-List) is tracking some fixes and compatibility reports.
PS1 games may work on PCSX2, but compatibility is very limited. Specific settings are often required to get a game to boot, and there are other universal problems including missing/pitch-shifted audio and severe FMV corruption. A [forum thread for PS1 compatibility](https://forums.pcsx2.net/Thread-PSX-Mode-Unofficial-Compatibility-List) is tracking some fixes and compatibility reports.
*While we encourage discussion about PS1 games and improving compatibility, bug reports are NOT being accepted for PS1 games. Any reports for PS1 games will be closed immediately as invalid.*
### Question 11: Why does my game not work like it did in an earlier PCSX2 version?
Any change to the emulator may fix one game, but cause problems for another. If the issue is severe and not fixable with different settings, you can always revert back to the last known PCSX2 version to work, and report the build number that broke the game. [Development builds](https://pcsx2.net/download/development.html) are very helpful for finding the exact change that caused a regression.
Any change to the emulator may fix one game, but cause problems for another. If the issue is severe and not fixable with different settings, you can always revert back to the last known PCSX2 version to work, and report the build number that broke the game. [Development builds](https://pcsx2.net/download/development.html) are very helpful for finding the exact change that caused a regression.
### Question 12: Why is PCSX2 slow?
The PlayStation 2 is a complex console, and this substantially raises the PC requirements to emulate it at full speed accurately. [This forum thread](https://forums.pcsx2.net/Thread-Why-is-PCSX2-slow) helps explain some of the technical reasons behind it, and our current guidelines for PC requirements are listed above.
@ -142,12 +142,12 @@ Some settings are greyed out. These are advanced counters that should only be mo
### Question 22: What is the normal speed for a PlayStation 2 game?
* NTSC games will play at 59.94 FPS
* PAL games will play at 50 FPS
* Keep in mind that there is a difference between the internal framerate (iFPS) and what PCSX2 shows as virtual framerate (vFPS).
* Keep in mind that there is a difference between the internal framerate (iFPS) and what PCSX2 shows as virtual framerate (vFPS).
These framerates are what the PlayStation 2 console would push to a real TV through its video cable. A game itself, typically, internally generates only half of those frames, and repeats frames to fill the gaps. This is why a "full speed" game may not "feel like 60 FPS". The console's "speed" (meaning AI, sound, physics, *everything*) is tied to the playback framerate, which is what PCSX2 reports as its "FPS".
These framerates are what the PlayStation 2 console would push to a real TV through its video cable. A game itself, typically, internally generates only half of those frames, and repeats frames to fill the gaps. This is why a "full speed" game may not "feel like 60 FPS". The console's "speed" (meaning AI, sound, physics, *everything*) is tied to the playback framerate, which is what PCSX2 reports as its "FPS".
### Question 23: What are Gamefixes?
Gamefixes are specialized fixes built into PCSX2 for specific games. Gamefixes mostly fix core emulation problems that would crash or soft lock a game, rather than graphical or performance issues. By default, the "System > Automatic Gamefixes" option is enabled, meaning any games that need gamefixes will have them automatically applied, regardless of what gamefix settings you have enabled.
Gamefixes are specialized fixes built into PCSX2 for specific games. Gamefixes mostly fix core emulation problems that would crash or soft lock a game, rather than graphical or performance issues. By default, the "System > Automatic Gamefixes" option is enabled, meaning any games that need gamefixes will have them automatically applied, regardless of what gamefix settings you have enabled.
Most games will not need gamefixes, however if your game is having issues, you can try manually enabling them in Emulation Settings.
@ -161,7 +161,7 @@ As the name says, speedhacks are hacks to make things faster. They will speed up
*Bug reports of issues caused by speedhacks will NOT be accepted, and will be immediately closed as invalid.*
### Question 25: What are all these EE/IOP and VU options?
The PS2 EE, IOP and VU processors are substantially different from a PC CPU and require different rounding and clamping modes to do math accurately. Most games work fine on the default options, but some games might need a different setting. You can check the [PCSX2 Wiki](https://wiki.pcsx2.net/Category:Games) to see if your game needs an alternate setting, or check the [PCSX2 Forums](https://forums.pcsx2.net/) to see if anyone else has posted about it there.
The PS2 EE, IOP and VU processors are substantially different from a PC CPU and require different rounding and clamping modes to do math accurately. Most games work fine on the default options, but some games might need a different setting. You can check the [PCSX2 Wiki](https://wiki.pcsx2.net/Category:Games) to see if your game needs an alternate setting, or check the [PCSX2 Forums](https://forums.pcsx2.net/) to see if anyone else has posted about it there.
### Question 26: What are PCSX2 plugins?
Older versions of PCSX2 used a plugin framework for various sections of the emulator. A plugin is a small, incomplete piece of software that, when plugged in to another piece of software, provides some sort of additional function. PCSX2 used to use plugins for:
@ -184,7 +184,7 @@ For Linux users, PCSX2 will automatically detect and bind controls to any recogn
---
## Useful Links
### BIOS Dumping Guides
### BIOS Dumping Guides
* [pgert's guide to BIOS and memory card tools](https://forums.pcsx2.net/Thread-An-orientation-through-some-of-the-PCSX2-BIOS-memcard-tools-Windows?pid=183709#pid183709)
* [One of the original BIOS dumping guides, originally from ngemu](https://forums.pcsx2.net/Thread-Guide-to-Dumping-Your-PS2-Bios-over-LAN)

View File

@ -150,7 +150,7 @@ std::pair<u32,u32> ElfObject::getTextRange()
if (start <= header.e_entry && (start+size) > header.e_entry)
return std::make_pair(start,size);
}
return std::make_pair(0,0);
}

View File

@ -139,7 +139,7 @@ void LayeredSettingsInterface::SetDoubleValue(const char* section, const char* k
void LayeredSettingsInterface::SetBoolValue(const char* section, const char* key, bool value)
{
pxFailRel("Attempt to call SetBoolValue() on layered settings interface");
pxFailRel("Attempt to call SetBoolValue() on layered settings interface");
}
void LayeredSettingsInterface::SetStringValue(const char* section, const char* key, const char* value)

View File

@ -96,7 +96,7 @@ static __fi void gsCSRwrite( const tGS_CSR& csr )
// Our emulated GS has no FIFO, but if it did, it would flush it here...
//Console.WriteLn("GS_CSR FLUSH GS fifo: %x (CSRr=%x)", value, GSCSRr);
}
if(csr.SIGNAL)
{
// SIGNAL : What's not known here is whether or not the SIGID register should be updated
@ -114,9 +114,9 @@ static __fi void gsCSRwrite( const tGS_CSR& csr )
gifUnit.gsSIGNAL.queued = false;
gifUnit.Execute(false, true); // Resume paused transfers
}
if (csr.FINISH) {
CSRreg.FINISH = false;
CSRreg.FINISH = false;
gifUnit.gsFINISH.gsFINISHFired = false; //Clear the previously fired FINISH (YS, Indiecar 2005, MGS3)
}
if(csr.HSINT) CSRreg.HSINT = false;
@ -140,7 +140,7 @@ __fi void gsWrite8(u32 mem, u8 value)
{
// CSR 8-bit write handlers.
// I'm quite sure these would just write the CSR portion with the other
// bits set to 0 (no action). The previous implementation masked the 8-bit
// bits set to 0 (no action). The previous implementation masked the 8-bit
// write value against the previous CSR write value, but that really doesn't
// make any sense, given that the real hardware's CSR circuit probably has no
// real "memory" where it saves anything. (for example, you can't write to
@ -173,7 +173,7 @@ __fi void gsWrite16(u32 mem, u16 value)
{
// See note above about CSR 8 bit writes, and handling them as zero'd bits
// for all but the written parts.
case GS_CSR:
gsCSRwrite( tGS_CSR((u32)value) );
return; // do not write to MTGS memory
@ -364,7 +364,7 @@ void gsIrq() {
void gsPostVsyncStart()
{
//gifUnit.FlushToMTGS(); // Needed for some (broken?) homebrew game loaders
const bool registers_written = s_GSRegistersWritten;
s_GSRegistersWritten = false;
GetMTGS().PostVsyncStart(registers_written);

View File

@ -28,12 +28,12 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
// TEXTINCLUDE
//
1 TEXTINCLUDE
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
2 TEXTINCLUDE
BEGIN
"#ifndef APSTUDIO_INVOKED\r\n"
"#include ""targetver.h""\r\n"

View File

@ -172,7 +172,7 @@ void GSClut::Write(const GIFRegTEX0& TEX0, const GIFRegTEXCLUT& TEXCLUT)
m_write.TEXCLUT = TEXCLUT;
m_read.dirty = true;
m_write.dirty = false;
(this->*m_wc[TEX0.CSM][TEX0.CPSM][TEX0.PSM])(TEX0, TEXCLUT);
}

View File

@ -521,7 +521,7 @@ GSVector4i GSState::GetFrameRect(int i, bool ignore_off)
return rectangle;
const auto& DISP = m_regs->DISP[i].DISPLAY;
const u32 DW = DISP.DW + 1;
const u32 DH = DISP.DH + 1;
const GSVector2i magnification(DISP.MAGH+1, DISP.MAGV + 1);
@ -1737,7 +1737,7 @@ inline bool GSState::TestDrawChanged()
prim_mask &= ~0x7;
else
return true;
if ((m_env.PRIM.U32[0] ^ m_prev_env.PRIM.U32[0]) & prim_mask)
return true;
@ -2117,7 +2117,7 @@ void GSState::Move()
endy = -1;
y_inc = -y_inc;
}
for (int y = starty; y != endy; y+= y_inc, _sy += y_inc, _dy += y_inc)
{
auto s = getPAHelper(spo, sx, _sy);
@ -3455,7 +3455,7 @@ GSState::TextureMinMaxResult GSState::GetTextureMinMax(const GIFRegTEX0& TEX0, c
if (m_vt.m_primclass == GS_SPRITE_CLASS && PRIM->FST == 1 && m_index.tail < 3)
{
// When coordinates are fractional, GS appears to draw to the right/bottom (effectively
// taking the ceiling), not to the top/left (taking the floor).
// taking the ceiling), not to the top/left (taking the floor).
const GSVector4i int_rc(m_vt.m_min.p.ceil().xyxy(m_vt.m_max.p.floor()));
const GSVector4i scissored_rc(int_rc.rintersect(GSVector4i(m_context->scissor.in)));
if (!int_rc.eq(scissored_rc))

View File

@ -185,7 +185,7 @@ protected:
void GrowVertexBuffer();
void HandleAutoFlush();
template <u32 prim, bool auto_flush, bool index_swap>
void VertexKick(u32 skip);

View File

@ -116,8 +116,8 @@ public:
__forceinline GSVector8(__m128 m0, __m128 m1)
{
#if 0 // _MSC_VER >= 1700
#if 0 // _MSC_VER >= 1700
this->m = _mm256_permute2f128_ps(_mm256_castps128_ps256(m0), _mm256_castps128_ps256(m1), 0x20);
#else

View File

@ -91,8 +91,8 @@ public:
__forceinline GSVector8i(__m128i m0, __m128i m1)
{
#if 0 // _MSC_VER >= 1700
#if 0 // _MSC_VER >= 1700
this->m = _mm256_permute2x128_si256(_mm256_castsi128_si256(m0), _mm256_castsi128_si256(m1), 0);
#else

View File

@ -213,7 +213,7 @@ bool GSRenderer::Merge(int field)
// If using scanmsk we have to keep the single line offset, regardless of upscale
// so we handle this separately after the rect calculations.
float interlace_offset = 0.0f;
if ((!GSConfig.PCRTCAntiBlur || m_scanmask_used) && display_offset)
{
interlace_offset = static_cast<float>(display_diff.y & 1);
@ -266,7 +266,7 @@ bool GSRenderer::Merge(int field)
if (display_diff.y >= 4 || !GSConfig.PCRTCAntiBlur)
off.y = display_diff.y;
if (samesrc)
{
// Adjusting the screen offset when using a negative offset.
@ -353,7 +353,7 @@ bool GSRenderer::Merge(int field)
GSVector2i max_resolution = GetResolution();
resolution.x = display_combined.x - display_baseline.x;
resolution.y = display_combined.y - display_baseline.y;
if (isinterlaced() && m_regs->SMODE2.FFMD)
{
resolution.y >>= 1;

View File

@ -899,7 +899,7 @@ void GSDevice11::DoFXAA(GSTexture* sTex, GSTexture* dTex)
Console.Error("FXAA shader is missing");
return;
}
ShaderMacro sm(m_shader_cache.GetFeatureLevel());
m_fxaa_ps = m_shader_cache.GetPixelShader(m_dev.get(), *shader, sm.GetPtr(), "ps_main");
if (!m_fxaa_ps)

View File

@ -142,7 +142,7 @@ bool GSC_Manhunt2(const GSFrameInfo& fi, int& skip)
bool GSC_CrashBandicootWoC(const GSFrameInfo& fi, int& skip)
{
// Channel effect not properly supported - Removes fog to fix the fog wall issue on Direct3D at any resolution, and while upscaling on every Hardware renderer.
if (skip == 0)
if (skip == 0)
{
if (fi.TME && (fi.FBP == 0x00000 || fi.FBP == 0x008c0 || fi.FBP == 0x00a00) && (fi.TBP0 == 0x00000 || fi.TBP0 == 0x008c0 || fi.TBP0 == 0x00a00) && fi.FBP == fi.TBP0 && fi.FPSM == PSM_PSMCT32 && fi.FPSM == fi.TPSM)
{

View File

@ -2878,7 +2878,7 @@ void GSRendererHW::EmulateBlending(bool& DATE_PRIMID, bool& DATE_BARRIER, bool&
// For mixed blend, the source blend is done in the shader (so we use CONST_ONE as a factor).
m_conf.blend = {true, GSDevice::CONST_ONE, blend.dst, blend.op, m_conf.ps.blend_c == 2, AFIX};
m_conf.ps.blend_mix = (blend.op == GSDevice::OP_REV_SUBTRACT) ? 2 : 1;
// Elide DSB colour output if not used by dest.
m_conf.ps.no_color1 |= !GSDevice::IsDualSourceBlendFactor(blend.dst);
@ -4412,7 +4412,7 @@ void GSRendererHW::OI_DoubleHalfClear(GSTextureCache::Target*& rt, GSTextureCach
&& (m_context->FRAME.PSM & 0xF) == (m_context->ZBUF.PSM & 0xF) && (u32)(GSVector4i(m_vt.m_max.p).z) == 0)
{
const GSVertex* v = &m_vertex.buff[0];
// Z and color must be constant and the same
if (m_vt.m_eq.rgba != 0xFFFF || !m_vt.m_eq.z || v[1].XYZ.Z != v[1].RGBAQ.U32[0])
return;

View File

@ -458,7 +458,7 @@ GSTextureCache::Target* GSTextureCache::LookupTarget(const GIFRegTEX0& TEX0, con
break;
}
}
}
}
else
{
assert(type == RenderTarget);
@ -648,7 +648,7 @@ void GSTextureCache::ScaleTargetForDisplay(Target* t, const GIFRegTEX0& dispfb,
// So, for these cases, we simply expand the target to include both images, based on the read height.
// It won't affect normal rendering, since that doesn't go through this path.
// Compute offset into the target that we'll start reading from.
const int delta = dispfb.TBP0 - t->m_TEX0.TBP0;
int y_offset = 0;
@ -2717,7 +2717,7 @@ GSTextureCache::SurfaceOffset GSTextureCache::ComputeSurfaceOffset(const Surface
const auto it = m_surface_offset_cache.find(sok);
if (it != m_surface_offset_cache.end())
return it->second; // Cache HIT.
// Cache MISS.
// Search for a valid <x,y> offset from B to A in B coordinates.
SurfaceOffset so;
@ -2810,7 +2810,7 @@ GSTextureCache::SurfaceOffset GSTextureCache::ComputeSurfaceOffset(const Surface
const GSVector4i& r2 = b_rect;
[[maybe_unused]] const GSVector4i ri = r1.rintersect(r2);
assert(!so.is_valid || (r1.eq(ri) && r1.x >= 0 && r1.y >= 0 && r1.z > 0 && r1.w > 0));
// Clear cache if size too big.
if (m_surface_offset_cache.size() + 1 > S_SURFACE_OFFSET_CACHE_MAX_SIZE)
{

View File

@ -68,7 +68,7 @@ fragment float4 ps_filter_complex(ConvertShaderData data [[stage_in]], ConvertPS
float2 texdim = float2(res.texture.get_width(), res.texture.get_height());
float factor = (0.9f - 0.4f * cos(2.f * M_PI_F * data.t.y * texdim.y));
float ycoord = (floor(data.t.y * texdim.y) + 0.5f) / texdim.y;
return factor * res.sample(float2(data.t.x, ycoord));
}

View File

@ -669,7 +669,7 @@ void GSDeviceOGL::RestoreAPIState()
glBlendEquationSeparate(GLState::eq_RGB, GL_FUNC_ADD);
glBlendFuncSeparate(GLState::f_sRGB, GLState::f_dRGB, GL_ONE, GL_ZERO);
const float bf = static_cast<float>(GLState::bf) / 128.0f;
glBlendColor(bf, bf, bf, bf);
@ -702,7 +702,7 @@ void GSDeviceOGL::RestoreAPIState()
glStencilOp(GL_KEEP, GL_KEEP, GLState::stencil_pass);
glBindSampler(0, GLState::ps_ss);
for (GLuint i = 0; i < sizeof(GLState::tex_unit) / sizeof(GLState::tex_unit[0]); i++)
glBindTextureUnit(i, GLState::tex_unit[i]);
@ -1263,7 +1263,7 @@ void GSDeviceOGL::PresentRect(GSTexture* sTex, const GSVector4& sRect, GSTexture
cb.SetSource(sRect, sTex->GetSize());
cb.SetTarget(dRect, ds);
cb.SetTime(shaderTime);
GL::Program& prog = m_present[static_cast<int>(shader)];
prog.Bind();
prog.Uniform4fv(0, cb.SourceRect.F32);
@ -2214,7 +2214,7 @@ void GSDeviceOGL::PopDebugGroup()
#ifdef ENABLE_OGL_DEBUG
if (!glPopDebugGroup)
return;
glPopDebugGroup();
#endif
}
@ -2248,7 +2248,7 @@ void GSDeviceOGL::InsertDebugMessage(DebugMessageCategory category, const char*
id = 0xDEAD;
severity = GL_DEBUG_SEVERITY_MEDIUM;
break;
case GSDevice::DebugMessageCategory::Performance:
case GSDevice::DebugMessageCategory::Performance:
default:
type = GL_DEBUG_TYPE_PERFORMANCE;
id = 0xFEE1;

View File

@ -1014,7 +1014,7 @@ bool GSRendererSW::GetScanlineGlobalData(SharedData* data)
bool zwrite = zm != 0xffffffff;
bool ztest = context->TEST.ZTE && context->TEST.ZTST > ZTST_ALWAYS;
/*
printf("%05x %d %05x %d %05x %d %dx%d\n",
printf("%05x %d %05x %d %05x %d %dx%d\n",
fwrite || ftest ? m_context->FRAME.Block() : 0xfffff, m_context->FRAME.PSM,
zwrite || ztest ? m_context->ZBUF.Block() : 0xfffff, m_context->ZBUF.PSM,
PRIM->TME ? m_context->TEX0.TBP0 : 0xfffff, m_context->TEX0.PSM, (int)m_context->TEX0.TW, (int)m_context->TEX0.TH);

View File

@ -401,7 +401,7 @@ void GSTextureVK::CommitClear(VkCommandBuffer cmdbuf)
vkCmdClearColorImage(cmdbuf, m_texture.GetImage(), m_texture.GetLayout(), &cv, 1, &srr);
}
SetState(GSTexture::State::Dirty);
SetState(GSTexture::State::Dirty);
}
VkFramebuffer GSTextureVK::GetFramebuffer(bool feedback_loop) { return GetLinkedFramebuffer(nullptr, feedback_loop); }

View File

@ -142,7 +142,7 @@ void GSCaptureDlg::OnInit()
else if (wcsstr(str.get(), L"@device:sw:")) prefix = L"(DS) ";
else if (wcsstr(str.get(), L"@device:cm:")) prefix = L"(VfW) ";
c.DisplayName = str.get();
wil::com_ptr_nothrow<IPropertyBag> pPB;

View File

@ -20,7 +20,7 @@
#define IDC_STATIC -1
// Next default values for new objects
//
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 10019

View File

@ -41,7 +41,7 @@ void Gif_ParsePacket(u8* data, u32 size, GIF_PATH path) {
if (offset + 16 > size) return;
gifTag.setTag(&buffer[offset], 1);
GIF_PARSE("--Gif Tag [mode=%s][pre=%d][prim=%d][nregs=%d][nloop=%d][qwc=%d][EOP=%d]",
GifTag_ModeStr[gifTag.tag.FLG], gifTag.tag.PRE, gifTag.tag.PRIM,
gifTag.nRegs, gifTag.nLoop, gifTag.len/16, gifTag.tag.EOP);

View File

@ -87,7 +87,7 @@ __fi uint intcInterrupt()
//DevCon.Warning("*PCSX2*: intcInterrupt already cleared");
return 0;
}
if ((psHu32(INTC_STAT) & psHu32(INTC_MASK)) == 0)
if ((psHu32(INTC_STAT) & psHu32(INTC_MASK)) == 0)
{
//DevCon.Warning("*PCSX2*: No valid interrupt INTC_MASK: %x INTC_STAT: %x", psHu32(INTC_MASK), psHu32(INTC_STAT));
return 0;
@ -106,13 +106,13 @@ __fi uint intcInterrupt()
__fi uint dmacInterrupt()
{
if( ((psHu16(DMAC_STAT + 2) & psHu16(DMAC_STAT)) == 0 ) &&
( psHu16(DMAC_STAT) & 0x8000) == 0 )
( psHu16(DMAC_STAT) & 0x8000) == 0 )
{
//DevCon.Warning("No valid DMAC interrupt MASK %x STAT %x", psHu16(DMAC_STAT+2), psHu16(DMAC_STAT));
return 0;
}
if (!dmacRegs.ctrl.DMAE || psHu8(DMAC_ENABLER+2) == 1)
if (!dmacRegs.ctrl.DMAE || psHu8(DMAC_ENABLER+2) == 1)
{
//DevCon.Warning("DMAC Suspended or Disabled on interrupt");
return 0;
@ -174,12 +174,12 @@ __ri bool hwMFIFOWrite(u32 addr, const u128* data, uint qwc)
pxFailDev( fmt::format( "Scratchpad/MFIFO: Invalid base physical address: 0x{:08x}", u32(dmacRegs.rbor.ADDR)).c_str() );
return false;
}
return true;
}
__ri void hwMFIFOResume(u32 transferred) {
if (transferred == 0)
{
return; //Nothing got put in the MFIFO, we don't care
@ -203,7 +203,7 @@ __ri void hwMFIFOResume(u32 transferred) {
//Apparently this is bad, i guess so, the data is going to memory rather than the FIFO
//vif1Regs.stat.FQC = 0x10; // FQC=16
}
}
break;
}
case MFD_GIF:
@ -332,11 +332,11 @@ liked this.
From what i've deduced, REFE does in fact increment, but END doesn't, after much testing, i've concluded this is how
we can standardize DMA chains, so i've modified the code to work like this. The below function controls the increment
of the TADR along with the MADR on VIF, GIF and SPR1 when using the CNT tag, the others don't use it yet, but they
of the TADR along with the MADR on VIF, GIF and SPR1 when using the CNT tag, the others don't use it yet, but they
can probably be modified to do so now.
Reason for this:- Many games (such as clock tower 3 and FFX Videos) watched the TADR to see when a transfer has finished,
so we need to simulate this wherever we can! Even the FFX video gets corruption and tries to fire multiple DMA Kicks
Reason for this:- Many games (such as clock tower 3 and FFX Videos) watched the TADR to see when a transfer has finished,
so we need to simulate this wherever we can! Even the FFX video gets corruption and tries to fire multiple DMA Kicks
if this doesnt happen, which was the reasoning for the hacked up SPR timing we had, that is no longer required.
-Refraction
@ -347,7 +347,7 @@ void hwDmacSrcTadrInc(DMACh& dma)
//Don't touch it if in normal/interleave mode.
if (dma.chcr.STR == 0) return;
if (dma.chcr.MOD != 1) return;
u16 tagid = (dma.chcr.TAG >> 12) & 0x7;
if (tagid == TAG_CNT)

View File

@ -44,7 +44,7 @@ mem32_t _hwRead32(u32 mem)
{
case 0x00: return rcntRead32<0x00>( mem );
case 0x01: return rcntRead32<0x01>( mem );
case 0x02: return ipuRead32( mem );
case 0x03:
@ -56,7 +56,7 @@ mem32_t _hwRead32(u32 mem)
return vifRead32<0>(mem);
}
return dmacRead32<0x03>( mem );
case 0x04:
case 0x05:
case 0x06:
@ -104,7 +104,7 @@ mem32_t _hwRead32(u32 mem)
case 0x00:
ret = psxHu32(0x1f801814);
break;
case 0x80:
case 0x80:
#if PSX_EXTRALOGS
DevCon.Warning("FIFO Size %x", sif2fifosize);
#endif
@ -130,7 +130,7 @@ mem32_t _hwRead32(u32 mem)
#endif
return ret;
}
/*if ((mem & 0x1000ff00) == 0x1000f200)
{
@ -189,7 +189,7 @@ mem32_t _hwRead32(u32 mem)
//Hack for Transformers and Test Drive Unlimited to simulate filling the VIF FIFO
//It actually stalls VIF a few QW before the end of the transfer, so we need to pretend its all gone
//else itll take aaaaaaaaages to boot.
if(mem == (D1_CHCR + 0x10) && CHECK_VIFFIFOHACK)
if(mem == (D1_CHCR + 0x10) && CHECK_VIFFIFOHACK)
return psHu32(mem) + (vif1ch.qwc * 16);
/*if((mem == GIF_CHCR) && !vif1ch.chcr.STR && gifRegs.stat.M3P && gifRegs.stat.APATH != 3)
@ -284,7 +284,7 @@ static RETURNS_R64 _hwRead64(u32 mem)
// No game is known to attempt such a thing (yay!), so probably nothing for us to
// worry about. Chances are, though, doing so is "legal" and yields some sort
// of reproducible behavior. Candidate for real hardware testing.
// Current assumption: Reads 128 bits and discards the unused portion.
uint wordpart = (mem >> 3) & 0x1;
@ -364,7 +364,7 @@ RETURNS_R128 _hwRead128(u32 mem)
DevCon.Warning("128bit read from %x wibble", mem);
if (mem == 0x1000f3E0)
{
ReadFifoSingleWord();
u32 part0 = psHu32(0x1000f3E0);
ReadFifoSingleWord();

View File

@ -120,7 +120,7 @@ void _hwWrite32( u32 mem, u32 value )
DevCon.Warning("GIF Mode cancelling P3 Disable");
CPU_INT(DMAC_GIF, 8);
}
gifRegs.stat.M3R = gifRegs.mode.M3R;
gifRegs.stat.IMT = gifRegs.mode.IMT;
@ -400,7 +400,7 @@ void _hwWrite64( u32 mem, const mem64_t* srcval )
hwWrite128<page>(mem & ~0x0f, &zerofill);
}
return;
default:
// disregard everything except the lower 32 bits.
// ... and skip the 64 bit writeback since the 32-bit one will suffice.

View File

@ -217,7 +217,7 @@ __fi u32 ipuRead32(u32 mem)
ipucase(IPU_BP): // IPU_BP
{
pxAssume(g_BP.FP <= 2);
ipuRegs.ipubp = g_BP.BP & 0x7f;
ipuRegs.ipubp |= g_BP.IFC << 8;
ipuRegs.ipubp |= g_BP.FP << 16;
@ -250,7 +250,7 @@ __fi RETURNS_R64 ipuRead64(u32 mem)
if (getBits32((u8*)&ipuRegs.cmd.DATA, 0))
ipuRegs.cmd.DATA = BigEndian(ipuRegs.cmd.DATA);
}
if (ipuRegs.cmd.DATA & 0xffffff)
IPU_LOG("read64: IPU_CMD=BUSY=%x, DATA=%08X", ipuRegs.cmd.BUSY ? 1 : 0, ipuRegs.cmd.DATA);
return r64_load(&ipuRegs.cmd._u64);
@ -287,7 +287,7 @@ void ipuSoftReset()
ipu_cmd.clear();
ipuRegs.cmd.BUSY = 0;
ipuRegs.cmd.DATA = 0; // required for Enthusia - Professional Racing after fix, or will freeze at start of next video.
hwIntcIrq(INTC_IPU); // required for FightBox
}
@ -582,7 +582,7 @@ static __ri bool ipuCSC(tIPU_CMD_CSC csc)
ipu_csc(decoder.mb8, decoder.rgb32, 0);
if (csc.OFM) ipu_dither(decoder.rgb32, decoder.rgb16, csc.DTE);
if (csc.OFM)
{
ipu_cmd.pos[1] += ipu_fifo.out.write(((u32*) & decoder.rgb16) + 4 * ipu_cmd.pos[1], 32 - ipu_cmd.pos[1]);
@ -769,7 +769,7 @@ __fi u8 getBits32(u8 *address, bool advance)
if (!g_BP.FillBuffer(32)) return 0;
const u8* readpos = &g_BP.internal_qwc->_u8[g_BP.BP/8];
if(uint shift = (g_BP.BP & 7))
{
u32 mask = (0xff >> shift);

View File

@ -275,7 +275,7 @@ union tIPU_cmd
u32 current;
};
};
u128 _u128[2];
void clear();

View File

@ -124,7 +124,7 @@ int IPU_Fifo_Output::write(const u32 *value, uint size)
uint origsize = size;
/*do {*/
//IPU0dma();
uint transsize = std::min(size, 8 - (uint)ipuRegs.ctrl.OFC);
if(!transsize) return 0;
@ -147,7 +147,7 @@ void IPU_Fifo_Output::read(void *value, uint size)
{
pxAssert(ipuRegs.ctrl.OFC >= size);
ipuRegs.ctrl.OFC -= size;
// Zeroing the read data is not needed, since the ringbuffer design will never read back
// the zero'd data anyway. --air

View File

@ -182,7 +182,7 @@ void IPU0dma()
ipu0ch.madr += readsize << 4;
ipu0ch.qwc -= readsize;
if (dmacRegs.ctrl.STS == STS_fromIPU) // STS == fromIPU
{
//DevCon.Warning("fromIPU Stall Control");

View File

@ -236,7 +236,7 @@ int __fi get_dmv()
int get_macroblock_address_increment()
{
const MBAtab *mba;
u16 code = UBITS(16);
if (code >= 4096)
@ -287,7 +287,7 @@ static __fi int get_luma_dc_dct_diff()
// 9 bits max
}
if (size==0)
dc_diff = 0;
else
@ -347,7 +347,7 @@ static bool get_intra_block()
const u8 (&quant_matrix)[64] = decoder.iq;
int quantizer_scale = decoder.quantizer_scale;
s16 * dest = decoder.DCTblock;
u16 code;
u16 code;
/* decode AC coefficients */
for (int i=1 + ipu_cmd.pos[4]; ; i++)
@ -428,7 +428,7 @@ static bool get_intra_block()
ipu_cmd.pos[4] = 0;
return true;
}
i += (tab->run == 65) ? GETBITS(6) : tab->run;
if (i >= 64)
{
@ -528,7 +528,7 @@ static bool get_non_intra_block(int * last)
tab = &DCT.first[(code >> 12) - 4];
}
else
{
{
tab = &DCT.next[(code >> 12)- 4];
}
}
@ -537,7 +537,7 @@ static bool get_non_intra_block(int * last)
tab = &DCT.tab0[(code >> 8) - 4];
}
else if (code >= 512)
{
{
tab = &DCT.tab1[(code >> 6) - 8];
}
@ -547,23 +547,23 @@ static bool get_non_intra_block(int * last)
// have lots of room to spare.
else if (code >= 256)
{
{
tab = &DCT.tab2[(code >> 4) - 16];
}
else if (code >= 128)
{
{
tab = &DCT.tab3[(code >> 3) - 16];
}
else if (code >= 64)
{
{
tab = &DCT.tab4[(code >> 2) - 16];
}
else if (code >= 32)
{
{
tab = &DCT.tab5[(code >> 1) - 16];
}
else if (code >= 16)
{
{
tab = &DCT.tab6[code - 16];
}
else
@ -884,7 +884,7 @@ __fi bool mpeg2sliceIDEC()
default: /* end of slice/frame, or error? */
{
goto finish_idec;
goto finish_idec;
}
}
}
@ -990,7 +990,7 @@ __fi bool mpeg2_slice()
decoder.dc_dct_pred[1] =
decoder.dc_dct_pred[2] = 128 << decoder.intra_dc_precision;
}
ipuRegs.ctrl.ECD = 0;
ipuRegs.top = 0;
memzero_sse_a(mb8);
@ -1236,7 +1236,7 @@ __fi bool mpeg2_slice()
g_BP.Align();
do
{
if (!g_BP.FillBuffer(24))
if (!g_BP.FillBuffer(24))
{
ipu_cmd.pos[0] = 4;
return false;

View File

@ -171,7 +171,7 @@ struct decoder_t {
{
return ((u128*)&mb8) + ipu0_idx;
}
void AdvanceIpuDataBy(uint amt)
{
pxAssertMsg(ipu0_data>=amt, "IPU FIFO Overflow on advance!" );

View File

@ -21,7 +21,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
// WARNING! This file should only be included into Mpeg.cpp AND NOWHERE ELSE.
// All contents of this file are used only by Mpeg.cpp, and including it elsewhere will
// just result in the linker having to remove a whole lot of redundant/unused decoder

View File

@ -75,7 +75,7 @@ void intMemcheck(u32 op, u32 bits, bool store)
start = standardizeBreakpointAddress(start);
u32 end = start + bits/8;
auto checks = CBreakPoints::GetMemChecks();
for (size_t i = 0; i < checks.size(); i++)
{
@ -499,7 +499,7 @@ static void intEventTest()
{
// Perform counters, ints, and IOP updates:
_cpuEventTest_Shared();
if (intExitExecution)
{
intExitExecution = false;

View File

@ -577,9 +577,9 @@ void psxRcntWcount32(int index, u32 value)
}
psxCounters[index].count = value;
if (psxCounters[index].count > psxCounters[index].target)
{
{
// Count already higher than Target
//DevCon.Warning("32bit Count already higher than target");
psxCounters[index].target |= IOPCNT_FUTURE_TARGET;

View File

@ -13,7 +13,7 @@
* If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#pragma once
extern void psxDma2(u32 madr, u32 bcr, u32 chcr);
extern void psxDma3(u32 madr, u32 bcr, u32 chcr);

View File

@ -163,11 +163,11 @@ __inline unsigned long MFC2(int reg) {
gteORGB = (((gteIR1 >> 7) & 0x1f)) |
(((gteIR2 >> 7) & 0x1f) << 5) |
(((gteIR3 >> 7) & 0x1f) << 10);
// gteORGB = (gteIR1 ) |
// (gteIR2 << 5) |
// gteORGB = (gteIR1 ) |
// (gteIR2 << 5) |
// (gteIR3 << 10);
// gteORGB = ((gteIR1 & 0xf80)>>7) |
// ((gteIR2 & 0xf80)>>2) |
// gteORGB = ((gteIR1 & 0xf80)>>7) |
// ((gteIR2 & 0xf80)>>2) |
// ((gteIR3 & 0xf80)<<3);
return gteORGB;
@ -453,7 +453,7 @@ __inline double limG1(double x) {
if (x > 1023.0) { x = 1023.0; gteFLAG |= (1 << 14); }
else
if (x < -1024.0) { x = -1024.0; gteFLAG |= (1 << 14); }
return (x);
}
@ -494,10 +494,10 @@ __inline s32 FlimE(s32 x) { _LIMX(0, 65535, 12); }
__inline s32 FlimG1(s64 x) {
if (x > 2147483647) { gteFLAG |= (1 << 16); }
else if (x < (s64)0xffffffff80000000) { gteFLAG |= (1 << 15); }
if (x > 1023) { x = 1023; gteFLAG |= (1 << 14); }
else if (x < -1024) { x = -1024; gteFLAG |= (1 << 14); }
else if (x < -1024) { x = -1024; gteFLAG |= (1 << 14); }
return (x);
}
@ -508,8 +508,8 @@ __inline s32 FlimG2(s64 x) {
if (x > 1023) { x = 1023; gteFLAG |= (1 << 13); }
else
if (x < -1024) { x = -1024; gteFLAG |= (1 << 13); }
if (x < -1024) { x = -1024; gteFLAG |= (1 << 13); }
return (x);
}
@ -2475,7 +2475,7 @@ void gteDPCS() {
}
void gteDPCT() {
// unsigned long C,R,G,B;
// unsigned long C,R,G,B;
// double RR0,GG0,BB0;
#ifdef GTE_DUMP
static int sample = 0; sample++;

View File

@ -101,7 +101,7 @@ void iopMemoryReserve::Reset()
psxMemWLUT[i + 0x2000 + 0x1e00] = (uptr)&eeMem->ROM1[i << 16];
}
for (int i = 0; i < 0x0008; i++)
for (int i = 0; i < 0x0008; i++)
{
psxMemWLUT[i + 0x2000 + 0x1e40] = (uptr)&eeMem->ROM2[i << 16];
}

View File

@ -183,7 +183,7 @@ void PMFHL() {
case 0x02: // SLW
{
s64 TempS64 = ((u64)cpuRegs.HI.UL[0] << 32) | (u64)cpuRegs.LO.UL[0];
if (TempS64 >= 0x000000007fffffffLL) {
cpuRegs.GPR.r[_Rd_].UD[0] = 0x000000007fffffffLL;
} else if (TempS64 <= -0x80000000LL) {

View File

@ -137,7 +137,7 @@ void SysMtgsThread::ThreadEntryPoint()
m_sem_event.WaitForWork();
}
// try initializing.. this could fail
const bool opened = TryOpenGS();
m_open_flag.store(opened, std::memory_order_release);
@ -997,7 +997,7 @@ void SysMtgsThread::SetSoftwareRendering(bool software, bool display_message /*
new_renderer = EmuConfig.GS.UseHardwareRenderer() ? EmuConfig.GS.Renderer : GSRendererType::Auto;
else
new_renderer = GSRendererType::SW;
SwitchRenderer(new_renderer, display_message);
}

View File

@ -362,7 +362,7 @@ void VU_Thread::Get_MTVUChanges()
u32 interrupts = mtvuInterrupts.load(std::memory_order_relaxed);
if (!interrupts)
return;
if (interrupts & InterruptFlagSignal)
{
std::atomic_thread_fence(std::memory_order_acquire);
@ -415,7 +415,7 @@ void VU_Thread::Get_MTVUChanges()
if (interrupts & InterruptFlagVUEBit)
{
mtvuInterrupts.fetch_and(~InterruptFlagVUEBit, std::memory_order_relaxed);
if(INSTANT_VU1)
VU0.VI[REG_VPU_STAT].UL &= ~0xFF00;
//DevCon.Warning("E-Bit registered %x", VU0.VI[REG_VPU_STAT].UL);

View File

@ -99,7 +99,7 @@ public:
void WriteVIRegs(REG_VI* viRegs);
void WriteVFRegs(VECTOR* vfRegs);
void WriteCol(vifStruct& _vif);
void WriteRow(vifStruct& _vif);

View File

@ -462,28 +462,28 @@ template<int vunum> static __fi void ClearVuFunc(u32 addr, u32 size) {
template<int vunum> static mem8_t vuMicroRead8(u32 addr) {
VURegs* vu = vunum ? &VU1 : &VU0;
addr &= vunum ? 0x3fff: 0xfff;
if (vunum && THREAD_VU1) vu1Thread.WaitVU();
return vu->Micro[addr];
}
template<int vunum> static mem16_t vuMicroRead16(u32 addr) {
VURegs* vu = vunum ? &VU1 : &VU0;
addr &= vunum ? 0x3fff: 0xfff;
if (vunum && THREAD_VU1) vu1Thread.WaitVU();
return *(u16*)&vu->Micro[addr];
}
template<int vunum> static mem32_t vuMicroRead32(u32 addr) {
VURegs* vu = vunum ? &VU1 : &VU0;
addr &= vunum ? 0x3fff: 0xfff;
if (vunum && THREAD_VU1) vu1Thread.WaitVU();
return *(u32*)&vu->Micro[addr];
}
template<int vunum> static RETURNS_R64 vuMicroRead64(u32 addr) {
VURegs* vu = vunum ? &VU1 : &VU0;
addr &= vunum ? 0x3fff: 0xfff;
if (vunum && THREAD_VU1) vu1Thread.WaitVU();
return r64_load(&vu->Micro[addr]);
}
@ -491,7 +491,7 @@ template<int vunum> static RETURNS_R128 vuMicroRead128(u32 addr) {
VURegs* vu = vunum ? &VU1 : &VU0;
addr &= vunum ? 0x3fff: 0xfff;
if (vunum && THREAD_VU1) vu1Thread.WaitVU();
return r128_load(&vu->Micro[addr]);
}
@ -500,7 +500,7 @@ template<int vunum> static RETURNS_R128 vuMicroRead128(u32 addr) {
template<int vunum> static void vuMicroWrite8(u32 addr,mem8_t data) {
VURegs* vu = vunum ? &VU1 : &VU0;
addr &= vunum ? 0x3fff: 0xfff;
if (vunum && THREAD_VU1) {
vu1Thread.WriteMicroMem(addr, &data, sizeof(u8));
return;
@ -513,7 +513,7 @@ template<int vunum> static void vuMicroWrite8(u32 addr,mem8_t data) {
template<int vunum> static void vuMicroWrite16(u32 addr, mem16_t data) {
VURegs* vu = vunum ? &VU1 : &VU0;
addr &= vunum ? 0x3fff: 0xfff;
if (vunum && THREAD_VU1) {
vu1Thread.WriteMicroMem(addr, &data, sizeof(u16));
return;
@ -526,7 +526,7 @@ template<int vunum> static void vuMicroWrite16(u32 addr, mem16_t data) {
template<int vunum> static void vuMicroWrite32(u32 addr, mem32_t data) {
VURegs* vu = vunum ? &VU1 : &VU0;
addr &= vunum ? 0x3fff: 0xfff;
if (vunum && THREAD_VU1) {
vu1Thread.WriteMicroMem(addr, &data, sizeof(u32));
return;
@ -544,7 +544,7 @@ template<int vunum> static void vuMicroWrite64(u32 addr, const mem64_t* data) {
vu1Thread.WriteMicroMem(addr, (void*)data, sizeof(u64));
return;
}
if (*(u64*)&vu->Micro[addr]!=data[0]) {
ClearVuFunc<vunum>(addr, 8);
*(u64*)&vu->Micro[addr] =data[0];
@ -735,7 +735,7 @@ void eeMemoryReserve::Reset()
pxAssert(Source_PageFault);
mmap_faultHandler = new mmap_PageFaultHandler();
}
_parent::Reset();
// Note!! Ideally the vtlb should only be initialized once, and then subsequent
@ -765,7 +765,7 @@ void eeMemoryReserve::Reset()
vu0_micro_mem = vtlb_RegisterHandlerTempl1(vuMicro,0);
vu1_micro_mem = vtlb_RegisterHandlerTempl1(vuMicro,1);
vu1_data_mem = (1||THREAD_VU1) ? vtlb_RegisterHandlerTempl1(vuData,1) : 0;
//////////////////////////////////////////////////////////////////////////////////////////
// IOP's "secret" Hardware Register mapping, accessible from the EE (and meant for use
// by debugging or BIOS only). The IOP's hw regs are divided into three main pages in
@ -797,7 +797,7 @@ void eeMemoryReserve::Reset()
// psHw Optimized Mappings
// The HW Registers have been split into pages to improve optimization.
#define hwHandlerTmpl(page) \
hwRead8<page>, hwRead16<page>, hwRead32<page>, hwRead64<page>, hwRead128<page>, \
hwWrite8<page>, hwWrite16<page>,hwWrite32<page>,hwWrite64<page>,hwWrite128<page>
@ -878,7 +878,7 @@ eeMemoryReserve::~eeMemoryReserve()
// ===========================================================================================
// Memory Protection and Block Checking, vtlb Style!
// Memory Protection and Block Checking, vtlb Style!
// ===========================================================================================
// For the first time code is recompiled (executed), the PS2 ram page for that code is
// protected using Virtual Memory (mprotect). If the game modifies its own code then this
@ -943,7 +943,7 @@ vtlb_ProtectionMode mmap_GetRamPageInfo( u32 paddr )
void mmap_MarkCountedRamPage( u32 paddr )
{
pxAssert( eeMem );
paddr &= ~0xfff;
uptr ptr = (uptr)PSM( paddr );

View File

@ -25,18 +25,18 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
// TEXTINCLUDE
//
1 TEXTINCLUDE
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
2 TEXTINCLUDE
BEGIN
"#include <winres.h>\r\n"
"\0"
END
3 TEXTINCLUDE
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
@ -55,7 +55,7 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
CONTROL "",IDC_BINDINGS_LIST,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_BORDER | WS_VSCROLL | WS_TABSTOP,7,7,183,237,WS_EX_CLIENTEDGE
// Input Bindings:
// Input Bindings:
PUSHBUTTON "Select",ID_SELECT,328,34,34,15
PUSHBUTTON "Start",ID_START,366,34,34,15
PUSHBUTTON "Analog",ID_ANALOG,328,51,34,15

View File

@ -29,14 +29,14 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
// TEXTINCLUDE
//
1 TEXTINCLUDE
1 TEXTINCLUDE
BEGIN
"resource.h\r\n"
"SysForwardDefs.h\r\n"
"svnrev.h\0"
END
2 TEXTINCLUDE
2 TEXTINCLUDE
BEGIN
"#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
"#include ""windows.h""\r\n"
@ -54,7 +54,7 @@ END
VS_VERSION_INFO VERSIONINFO
#if PCSX2_isReleaseVersion == false && GIT_TAGGED_COMMIT && defined(GIT_TAG_HI)
FILEVERSION GIT_TAG_HI, GIT_TAG_MID, GIT_TAG_LO, 0
FILEVERSION GIT_TAG_HI, GIT_TAG_MID, GIT_TAG_LO, 0
PRODUCTVERSION GIT_TAG_HI, GIT_TAG_MID, GIT_TAG_LO, 0
#else
FILEVERSION VER_FILE_VERSION
@ -114,7 +114,7 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK
// TEXTINCLUDE
//
3 TEXTINCLUDE
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"

View File

@ -13,7 +13,7 @@
* If not, see <http://www.gnu.org/licenses/>.
*/
/* A reference client implementation for interfacing with PINE is available
/* A reference client implementation for interfacing with PINE is available
* here: https://code.govanify.com/govanify/pine/ */
#pragma once
@ -84,10 +84,10 @@ protected:
char* m_ipc_buffer;
/**
* IPC Command messages opcodes.
* A list of possible operations possible by the IPC.
* IPC Command messages opcodes.
* A list of possible operations possible by the IPC.
* Each one of them is what we call an "opcode" and is the first
* byte sent by the IPC to differentiate between commands.
* byte sent by the IPC to differentiate between commands.
*/
enum IPCCommand : unsigned char
{
@ -122,7 +122,7 @@ protected:
};
/**
* IPC message buffer.
* IPC message buffer.
* A list of all needed fields to store an IPC message.
*/
struct IPCBuffer
@ -154,14 +154,14 @@ protected:
* buf: buffer containing the IPC command.
* buf_size: size of the buffer announced.
* ret_buffer: buffer that will be used to send the reply.
* return value: IPCBuffer containing a buffer with the result
* of the command and its size.
* return value: IPCBuffer containing a buffer with the result
* of the command and its size.
*/
IPCBuffer ParseCommand(char* buf, char* ret_buffer, u32 buf_size);
/**
* Formats an IPC buffer
* ret_buffer: return buffer to use.
* ret_buffer: return buffer to use.
* size: size of the IPC buffer.
* return value: buffer containing the status code allocated of size
*/
@ -170,17 +170,17 @@ protected:
/**
* Initializes an open socket for IPC communication.
* return value: -1 if a fatal failure happened, 0 otherwise.
* return value: -1 if a fatal failure happened, 0 otherwise.
*/
int StartSocket();
/**
* Converts an uint to an char* in little endian
* res_array: the array to modify
* Converts an uint to an char* in little endian
* res_array: the array to modify
* res: the value to convert
* i: when to insert it into the array
* return value: res_array
* NB: implicitely inlined
* i: when to insert it into the array
* return value: res_array
* NB: implicitely inlined
*/
template <typename T>
static char* ToArray(char* res_array, T res, int i)
@ -190,11 +190,11 @@ protected:
}
/**
* Converts a char* to an uint in little endian
* Converts a char* to an uint in little endian
* arr: the array to convert
* i: when to load it from the array
* return value: the converted value
* NB: implicitely inlined
* i: when to load it from the array
* return value: the converted value
* NB: implicitely inlined
*/
template <typename T>
static T FromArray(char* arr, int i)

View File

@ -67,7 +67,7 @@ enum patch_data_type {
// PCSX2 currently supports the following values:
// 0 - apply the patch line once on game boot/startup
// 1 - apply the patch line continuously (technically - on every vsync)
// 2 - effect of 0 and 1 combined, see below
// 2 - effect of 0 and 1 combined, see below
// Note:
// - while it may seem that a value of 1 does the same as 0, but also later
// continues to apply the patch on every vsync - it's not.
@ -76,7 +76,7 @@ enum patch_data_type {
// will get applied before the first vsync and therefore earlier than 1 patches.
// - There's no "place" value which indicates to apply both once on startup
// and then also continuously, however such behavior can be achieved by
// duplicating the line where one has a 0 place and the other has a 1 place.
// duplicating the line where one has a 0 place and the other has a 1 place.
enum patch_place_type {
PPT_ONCE_ON_LOAD = 0,
PPT_CONTINUOUSLY = 1,

View File

@ -100,7 +100,7 @@ typedef void FnType_Void();
typedef FnType_Void* Fnptr_Void;
// --------------------------------------------------------------------------------------
// Compiler/OS specific macros and defines
// Compiler/OS specific macros and defines
// --------------------------------------------------------------------------------------
#if defined(_MSC_VER)

View File

@ -187,7 +187,7 @@ struct R3000Acpu {
s32 (*ExecuteBlock)( s32 eeCycles ); // executes the given number of EE cycles.
void (*Clear)(u32 Addr, u32 Size);
void (*Shutdown)();
uint (*GetCacheReserve)();
void (*SetCacheReserve)( uint reserveInMegs );
};

View File

@ -187,7 +187,7 @@ void psxCheckMemcheck()
int needed = psxIsMemcheckNeeded(pc);
if (needed == 0)
return;
u32 op = iopMemRead32(needed == 2 ? pc + 4 : pc);
// Yeah, we use the R5900 opcode table for the R3000
const R5900::OPCODE& opcode = R5900::GetInstruction(op);

View File

@ -381,7 +381,7 @@ void (*psxCP2[64])() = {
gteDPCS , gteINTPL, gteMVMVA, gteNCDS, gteCDP , psxNULL , gteNCDT , psxNULL, // 10
psxNULL , psxNULL , psxNULL , gteNCCS, gteCC , psxNULL , gteNCS , psxNULL, // 18
gteNCT , psxNULL , psxNULL , psxNULL, psxNULL, psxNULL , psxNULL , psxNULL, // 20
gteSQR , gteDCPL , gteDPCT , psxNULL, psxNULL, gteAVSZ3, gteAVSZ4, psxNULL, // 28
gteSQR , gteDCPL , gteDPCT , psxNULL, psxNULL, gteAVSZ3, gteAVSZ4, psxNULL, // 28
gteRTPT , psxNULL , psxNULL , psxNULL, psxNULL, psxNULL , psxNULL , psxNULL, // 30
psxNULL , psxNULL , psxNULL , psxNULL, psxNULL, gteGPF , gteGPL , gteNCCT // 38
};

View File

@ -255,7 +255,7 @@ __fi int cpuGetCycles(int interrupt)
const int cycles = (cpuRegs.sCycle[interrupt] + cpuRegs.eCycle[interrupt]) - cpuRegs.cycle;
return std::max(1, cycles);
}
}
// tests the cpu cycle against the given start and delta values.
@ -768,7 +768,7 @@ void eeloadHook2()
Console.WriteLn("eeloadHook2: arg block is '%s'.", (char *)PSM(g_osdsys_str));
#endif
int argc = ParseArgumentString(g_osdsys_str);
// Back up 4 bytes from start of args block for every arg + 4 bytes for start of argv pointer block, write pointers
uptr block_start = g_osdsys_str - (argc * 4);
for (int a = 0; a < argc; a++)
@ -791,12 +791,12 @@ inline bool isBranchOrJump(u32 addr)
{
u32 op = memRead32(addr);
const OPCODE& opcode = GetInstruction(op);
// Return false for eret & syscall as they are branch type in pcsx2 debugging tools,
// but shouldn't have delay slot in isBreakpointNeeded/isMemcheckNeeded.
if ((opcode.flags == (IS_BRANCH | BRANCHTYPE_SYSCALL)) || (opcode.flags == (IS_BRANCH | BRANCHTYPE_ERET)))
return false;
return (opcode.flags & IS_BRANCH) != 0;
}
@ -821,7 +821,7 @@ int isMemcheckNeeded(u32 pc)
{
if (CBreakPoints::GetNumMemchecks() == 0)
return 0;
u32 addr = pc;
if (isBranchOrJump(addr))
addr += 4;

View File

@ -294,7 +294,7 @@ struct R5900cpu
// the virtual cpu provider. Allocating additional heap memory from this method is
// NOT recommended. Heap allocations should be performed by Reset only. This
// maximizes the likeliness of reservations claiming addresses they prefer.
//
//
// Thread Affinity:
// Called from the main/UI thread only. Cpu execution status is guaranteed to
// be inactive. No locking is necessary.
@ -344,7 +344,7 @@ struct R5900cpu
// call to return at the nearest state check (typically handled internally using
// either C++ exceptions or setjmp/longjmp).
//
// Exception Throws:
// Exception Throws:
// Throws BaseR5900Exception and all derivatives.
// Throws FileNotFound or other Streaming errors (typically related to BIOS MEC/NVM)
//
@ -358,7 +358,7 @@ struct R5900cpu
// Safely throws host exceptions from executing code (either recompiled or interpreted).
// If this function is called outside the context of the CPU's code execution, then the
// given exception will be re-thrown automatically.
//
//
// Exception Throws:
// (SEH) Rethrows the given exception immediately.
// (setjmp) Re-throws immediately if called from outside the context of dynamically
@ -382,7 +382,7 @@ struct R5900cpu
// doesn't matter if we're stripping it out soon. ;)
//
void (*Clear)(u32 Addr, u32 Size);
uint (*GetCacheReserve)();
void (*SetCacheReserve)( uint reserveInMegs );
};
@ -411,7 +411,7 @@ enum EE_EventType
DMAC_STALL_SIS = 13, // SIS
DMAC_MFIFO_EMPTY = 14, // MEIS
DMAC_BUS_ERROR = 15, // BEIS
DMAC_GIF_UNIT,
VIF_VU0_FINISH,
VIF_VU1_FINISH,

View File

@ -138,7 +138,7 @@ namespace R5900Exception
class DebugBreakpoint : public BaseR5900Exception
{
DEFINE_EXCEPTION_COPYTORS(DebugBreakpoint, BaseR5900Exception)
public:
explicit DebugBreakpoint()
{

View File

@ -64,7 +64,7 @@ static __fi bool _add32_Overflow( s32 x, s32 y, s64 &ret )
cpuException(0x30, cpuRegs.branch);
return true;
}
ret = result.SD[0];
return false;
@ -201,7 +201,7 @@ static int __Deci2Call(int call, u32 *addr)
sprintf( reqaddr, "%x %x %x %x", addr[3], addr[2], addr[1], addr[0] );
if (!deci2addr) return 1;
const u32* d2ptr = (u32*)PSM(deci2addr);
BIOS_LOG("deci2reqsend: %s: deci2addr: %x,%x,%x,buf=%x %x,%x,len=%x,%x",
@ -952,7 +952,7 @@ void SYSCALL()
{
u32 memaddr = cpuRegs.GPR.n.a0.UL[0];
u8 params[16];
cdvdReadLanguageParams(params);
u32 osdconf = 0;
@ -1082,7 +1082,7 @@ void SYSCALL()
// Pretty much what this does is find instances of string arguments and remaps them.
// Instead of the addresse(s) being relative to the PS2 address space, make them relative to program memory.
// (This fixes issue #2865)
// (This fixes issue #2865)
int curRegArg = 0;
for (int i = 0; 1; i++)
{
@ -1113,7 +1113,7 @@ void SYSCALL()
}
break;
}
default:
break;

View File

@ -626,7 +626,7 @@ namespace R5900
const OPCODE& Class_SPECIAL(u32 op) { return tbl_Special[op & 0x3F]; }
const OPCODE& Class_REGIMM(u32 op) { return tbl_RegImm[(op >> 16) & 0x1F]; }
const OPCODE& Class_MMI(u32 op) { return tbl_MMI[op & 0x3F]; }
const OPCODE& Class_MMI0(u32 op) { return tbl_MMI0[(op >> 6) & 0x1F]; }
const OPCODE& Class_MMI1(u32 op) { return tbl_MMI1[(op >> 6) & 0x1F]; }

View File

@ -1,4 +1,4 @@
pcsx2 log->debugger tty mapping
pcsx2 log->debugger tty mapping
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÑÍÍÍÄÄÄÂÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
Bios ³EE³ 0 ³IOP³ Bios ³
CPU & MMI & COP0 & FPU ³EE³ 1 ³IOP³ IOP cpu ³

View File

@ -91,7 +91,7 @@ private:
bool frameLock = false;
// The frame value to use as the frame lock reset point
u32 frameLockTracker = 0;
bool IsFinishedReplaying() const;
// Calls mainEmuFrame's videoCaptureToggle to end a capture if active
void StopCapture() const;

View File

@ -93,7 +93,7 @@ VirtualPad::VirtualPad(wxWindow* parent, int controllerPort, AppConfig::InputRec
InitPressureButtonGuiElements(virtualPadData.cross, NewBitmap(EmbeddedImage<res_crossPressed>().Get(), wxPoint(938, 369)), this, wxPoint(1055, 645));
InitPressureButtonGuiElements(virtualPadData.left, NewBitmap(EmbeddedImage<res_leftPressed>().Get(), wxPoint(110, 303)), this, wxPoint(175, 525), true);
InitPressureButtonGuiElements(virtualPadData.up, NewBitmap(EmbeddedImage<res_upPressed>().Get(), wxPoint(186, 227)), this, wxPoint(175, 565), true);
InitPressureButtonGuiElements(virtualPadData.up, NewBitmap(EmbeddedImage<res_upPressed>().Get(), wxPoint(186, 227)), this, wxPoint(175, 565), true);
InitPressureButtonGuiElements(virtualPadData.right, NewBitmap(EmbeddedImage<res_rightPressed>().Get(), wxPoint(248, 302)), this, wxPoint(175, 605), true);
InitPressureButtonGuiElements(virtualPadData.down, NewBitmap(EmbeddedImage<res_downPressed>().Get(), wxPoint(186, 359)), this, wxPoint(175, 645), true);

View File

@ -9,7 +9,7 @@ PlayStation 2 Memory Card File System
PlayStation 2 Memory Card File System
</h1>
<div style="clear: both">
<h2>By
<h2>By
<a href="https://plus.google.com/101505960668383360394/?rel=author">
Ross Ridge
</a>
@ -27,7 +27,7 @@ missing, misleading or just plain wrong. At lot of assumptions had to
be made during my research, and it's hard know to what exactly Sony
intended in every case. All most all of the names for structures,
fields and flags were made up by me. Nothing in this document should
be considered official.
be considered official.
</p>
<p>
For brevity, unused fields and flag bits are omitted from the tables.
@ -56,7 +56,7 @@ memory cards, so I've created short glossary.
<dd>See "erase block".</dd>
<dt>cluster</dt>
<dd>The unit of allocation used in the file system. A cluster
<dd>The unit of allocation used in the file system. A cluster
is one or more pages in size.</dd>
<dt>ECC</dt>
@ -140,7 +140,7 @@ about the structure of the file system is kept.</dd>
data area a spare area. The data area is used to store ordinary
data, while the much smaller spare area is for software defined
error-correcting codes (ECC), wear leveling, bad block remapping,
and other functions meant to deal with defects in the media.
and other functions meant to deal with defects in the media.
</p>
<p>The flash devices used in PS2 memory cards have a 528 byte page
@ -150,7 +150,7 @@ about the structure of the file system is kept.</dd>
The are 16384 pages, for a total combined raw data area capacity
8,388,608 bytes.
</p>
</div>
<div style="clear: both">
<h2>File System Organization</h2>
@ -327,7 +327,7 @@ in the FAT and directory entries are relative to this.
<td nowrap="nowrap"><code>alloc_end</code></td>
<td nowrap="nowrap"><code>word</code></td>
<td nowrap="nowrap"><code>8135</code></td>
<td>The cluster after the highest allocatable cluster. Relative to
<td>The cluster after the highest allocatable cluster. Relative to
<code style="font-family: monospace">alloc_offset</code>.
<br><em>Not used.</em></td>
@ -337,7 +337,7 @@ in the FAT and directory entries are relative to this.
<td nowrap="nowrap"><code>rootdir_cluster</code></td>
<td nowrap="nowrap"><code>word</code></td>
<td nowrap="nowrap"><code>0</code></td>
<td>First cluster of the root directory. Relative to
<td>First cluster of the root directory. Relative to
<code style="font-family: monospace">alloc_offset</code>.
<br><em>Must be zero.</em></td>
@ -476,9 +476,9 @@ if that block was found to be bad.</em></td>
FAT might look something like this:
</p>
<p style="margin-left: 4em"><code style="font-family: monospace">
fat_offset = fat_index % 256
fat_offset = fat_index % 256
<br>
indirect_index = fat_index / 256
indirect_index = fat_index / 256
<br>
indirect_offset = indirect_index % 256
<br>
@ -616,28 +616,28 @@ If this flag is clear, then the file or directory has been deleted.
<tr>
<td nowrap="nowrap"><code>0x00</code></td>
<td nowrap="nowrap"><code>mode</code></td>
<td nowrap="nowrap"><code>half</code></td>
<td nowrap="nowrap"><code>half</code></td>
<td>See directory mode table.
<br></td>
</tr>
<tr>
<td nowrap="nowrap"><code>0x04</code></td>
<td nowrap="nowrap"><code>length</code></td>
<td nowrap="nowrap"><code>word</code></td>
<td nowrap="nowrap"><code>word</code></td>
<td>Length in bytes if a file, or entries if a directory.
<br></td>
</tr>
<tr>
<td nowrap="nowrap"><code>0x08</code></td>
<td nowrap="nowrap"><code>created</code></td>
<td nowrap="nowrap"><code>byte[8]</code></td>
<td nowrap="nowrap"><code>byte[8]</code></td>
<td>Creation time.
<br></td>
</tr>
<tr>
<td nowrap="nowrap"><code>0x10</code></td>
<td nowrap="nowrap"><code>cluster</code></td>
<td nowrap="nowrap"><code>word</code></td>
<td nowrap="nowrap"><code>word</code></td>
<td>First cluster of the file, or <code style="font-family: monospace">0xFFFFFFFF</code> for an empty file.
In "." entries this the first cluster of this directory's parent
directory instead.
@ -647,7 +647,7 @@ Relative to <code style="font-family: monospace">alloc_offset</code>.
<tr>
<td nowrap="nowrap"><code>0x14</code></td>
<td nowrap="nowrap"><code>dir_entry</code></td>
<td nowrap="nowrap"><code>word</code></td>
<td nowrap="nowrap"><code>word</code></td>
<td>Only in "." entries. Entry of this directory
in its parent's directory.
<br></td>
@ -655,21 +655,21 @@ in its parent's directory.
<tr>
<td nowrap="nowrap"><code>0x18</code></td>
<td nowrap="nowrap"><code>modified</code></td>
<td nowrap="nowrap"><code>byte[8]</code></td>
<td nowrap="nowrap"><code>byte[8]</code></td>
<td>Modification time.
<br></td>
</tr>
<tr>
<td nowrap="nowrap"><code>0x20</code></td>
<td nowrap="nowrap"><code>attr</code></td>
<td nowrap="nowrap"><code>word</code></td>
<td nowrap="nowrap"><code>word</code></td>
<td>User defined attribute
<br></td>
</tr>
<tr>
<td nowrap="nowrap"><code>0x40</code></td>
<td nowrap="nowrap"><code>name</code></td>
<td nowrap="nowrap"><code>byte[32]</code></td>
<td nowrap="nowrap"><code>byte[32]</code></td>
<td>Zero terminated name for this directory entry.
<br></td>
@ -698,7 +698,7 @@ in its parent's directory.
<code style="font-family: monospace">cluster</code> field which isn't used.
</p>
<div style="float: right; padding: 1em 0 1em 1em">
<div style="float: right; padding: 1em 0 1em 1em">
<table rules="all">
<caption>Time of Day (8 bytes)</caption>
<colgroup span="3" valign="top"></colgroup>
@ -754,7 +754,7 @@ in its parent's directory.
like the PS2 browser. The <code style="font-family: monospace">DF_PSX</code> flag indicates that file
was copied from a PSX memory card. If the <code style="font-family: monospace">DF_POCKETSTN</code> flag
is set as well, the file is a PocketStation application file copied
from a PocketStation.
from a PocketStation.
</p>
<p>Each directory entry is a massive 512 bytes long, so only two
@ -772,7 +772,7 @@ in its parent's directory.
<h2>Error Management</h2>
<p>A number of strategies are employed in the file system to handle
errors are likely to occur when using memory cards.
errors are likely to occur when using memory cards.
</p>
<div>
@ -858,7 +858,7 @@ in its parent's directory.
<div>
<h3>NAND Flash Memory</h3>
Micron: <a href="http://download.micron.com/pdf/technotes/nand/tn2919.pdf">NAND Flash 101: An Introduction to NAND Flash and How to Design It In
Micron: <a href="http://download.micron.com/pdf/technotes/nand/tn2919.pdf">NAND Flash 101: An Introduction to NAND Flash and How to Design It In
to Your Next Product</a><br>
Wikipedia: <a href="http://en.wikipedia.org/wiki/Flash_memory">Flash memory</a><br>

View File

@ -228,18 +228,18 @@ LANGUAGE LANG_SPANISH, SUBLANG_SPANISH_MODERN
// TEXTINCLUDE
//
1 TEXTINCLUDE
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
2 TEXTINCLUDE
BEGIN
"#include ""svnrev.h""\r\n"
"#include ""afxresmw.h""\0"
END
3 TEXTINCLUDE
3 TEXTINCLUDE
BEGIN
"\0"
END

View File

@ -1232,7 +1232,7 @@ static void RegWrite_VoiceAddr(u16 value)
LoopReg = &thisvoice.LoopStartA;
thisvoice.LoopMode = 1;
}
*LoopReg = (*LoopReg & 0x0F0000) | (value & 0xFFF8);
}
break;

View File

@ -189,12 +189,12 @@ SaveStateBase& SaveStateBase::FreezeBios()
// Check the BIOS, and issue a warning if the bios for this state
// doesn't match the bios currently being used (chances are it'll still
// work fine, but some games are very picky).
u32 bioscheck = BiosChecksum;
char biosdesc[256];
memzero( biosdesc );
memcpy( biosdesc, BiosDescription.c_str(), std::min( sizeof(biosdesc), BiosDescription.length() ) );
Freeze( bioscheck );
Freeze( biosdesc );
@ -209,7 +209,7 @@ SaveStateBase& SaveStateBase::FreezeBios()
biosdesc, bioscheck
);
}
return *this;
}
@ -217,7 +217,7 @@ SaveStateBase& SaveStateBase::FreezeInternals()
{
// Print this until the MTVU problem in gifPathFreeze is taken care of (rama)
if (THREAD_VU1) Console.Warning("MTVU speedhack is enabled, saved states may not be stable");
// Second Block - Various CPU Registers and States
// -----------------------------------------------
FreezeTag( "cpuRegs" );

View File

@ -127,7 +127,7 @@ public:
{
return m_memory->GetPtr(m_idx);
}
u8* GetPtrEnd() const
{
return m_memory->GetPtrEnd();

View File

@ -85,7 +85,7 @@ static __fi bool WriteIOPtoFifo()
sif0.iop.cycles += writeSize; //1 word per cycle
sif0.iop.counter -= writeSize;
return true;
}
@ -366,13 +366,13 @@ __fi void dmaSIF0()
psHu32(SBUS_F240) |= 0x2000;
sif0.ee.busy = true;
// Okay, this here is needed currently (r3644).
// Okay, this here is needed currently (r3644).
// FFX battles in the thunder plains map die otherwise, Phantasy Star 4 as well
// These 2 games could be made playable again by increasing the time the EE or the IOP run,
// showing that this is very timing sensible.
// Doing this DMA unfortunately brings back an old warning in Legend of Legaia though, but it still works.
//Updated 23/08/2011: The hangs are caused by the EE suspending SIF1 DMA and restarting it when in the middle
//Updated 23/08/2011: The hangs are caused by the EE suspending SIF1 DMA and restarting it when in the middle
//of processing a "REFE" tag, so the hangs can be solved by forcing the ee.end to be false
// (as it should always be at the beginning of a DMA). using "if iop is busy" flags breaks Tom Clancy Rainbow Six.
// Legend of Legaia doesn't throw a warning either :)

View File

@ -128,7 +128,7 @@ static __fi bool SIFIOPReadTag()
// Only use the first 24 bits.
hw_dma10.madr = sif1data & 0xffffff;
if (sif1words > 0xFFFFC) DevCon.Warning("SIF1 Overrun %x", sif1words);
//Maximum transfer amount 1mb-16 also masking out top part which is a "Mode" cache stuff, we don't care :)
sif1.iop.counter = sif1words & 0xFFFFC;
@ -342,13 +342,13 @@ __fi void dmaSIF1()
sif1.ee.busy = true;
// Okay, this here is needed currently (r3644).
// Okay, this here is needed currently (r3644).
// FFX battles in the thunder plains map die otherwise, Phantasy Star 4 as well
// These 2 games could be made playable again by increasing the time the EE or the IOP run,
// showing that this is very timing sensible.
// Doing this DMA unfortunately brings back an old warning in Legend of Legaia though, but it still works.
//Updated 23/08/2011: The hangs are caused by the EE suspending SIF1 DMA and restarting it when in the middle
//Updated 23/08/2011: The hangs are caused by the EE suspending SIF1 DMA and restarting it when in the middle
//of processing a "REFE" tag, so the hangs can be solved by forcing the ee.end to be false
// (as it should always be at the beginning of a DMA). using "if iop is busy" flags breaks Tom Clancy Rainbow Six.
// Legend of Legaia doesn't throw a warning either :)
@ -360,7 +360,7 @@ __fi void dmaSIF1()
{
sif1.ee.end = true;
}
}
}
SIF1Dma();

View File

@ -52,7 +52,7 @@ static const u8 memcard_psx[] = {0x5A, 0x5D, 0x5C, 0x5D, 0x04, 0x00, 0x00, 0x80}
//(A 'try' in this context is the game accessing SIO)
static const int FORCED_MCD_EJECTION_MIN_TRIES =2;
static const int FORCED_MCD_EJECTION_MAX_TRIES =128;
static const float FORCED_MCD_EJECTION_MAX_MS_AFTER_MIN_TRIES =2800;
static const float FORCED_MCD_EJECTION_MAX_MS_AFTER_MIN_TRIES =2800;
//allow timeout also for the mcd manager panel
void SetForceMcdEjectTimeoutNow( uint port, uint slot )
@ -95,7 +95,7 @@ void sioInit()
sio.bufSize = 4;
siomode = SIO_START;
for(int i = 0; i < 2; i++)
{
for(int j = 0; j < 4; j++)
@ -155,7 +155,7 @@ SIO_WRITE sioWriteStart(u8 data)
//if(size1 != size2)
// DevCon.Warning("SIO: Bad command length [%02X] (%02X|%02X)", data, size1, size2);
// On mismatch, sio2.cmdlength (size1) is smaller than what it should (Persona 3)
// while size2 is the proper length. -KrossX
sio.bufSize = size2; //std::max(size1, size2);
@ -325,7 +325,7 @@ SIO_WRITE memcardAuth(u8 data)
{
switch(data)
{
case 0x01: case 0x02: case 0x04:
case 0x01: case 0x02: case 0x04:
case 0x0F: case 0x11: case 0x13:
doXorCheck = true;
xorResult = 0;
@ -358,7 +358,7 @@ SIO_WRITE memcardErase(u8 data)
if(data != 0x81) sio.bufCount = -1;
break;
case 1:
case 1:
{
u8 header[] = {0xFF, 0xFF, 0xFF, 0x2B, mcd->term};
@ -407,7 +407,7 @@ SIO_WRITE memcardWrite(u8 data)
if(data != 0x81) sio.bufCount = -1;
break;
case 1:
case 1:
{
u8 header[] = {0xFF, 0xFF, 0xFF, 0x2B, mcd->term};
@ -464,7 +464,7 @@ SIO_WRITE memcardWrite(u8 data)
else if(sio.bufCount == checksum_pos)
{
u8 xor_check = mcd->DoXor(&sio.buf[4], checksum_pos - 4);
if(xor_check != sio.buf[sio.bufCount])
Console.Warning("MemWrite: Checksum invalid! XOR: %02X, IN: %02X\n", xor_check, sio.buf[sio.bufCount]);
@ -498,7 +498,7 @@ SIO_WRITE memcardRead(u8 data)
if(data != 0x81) sio.bufCount = -1;
break;
case 1:
case 1:
{
u8 header[] = {0xFF, 0xFF, 0xFF, 0x2B, mcd->term};
@ -563,7 +563,7 @@ SIO_WRITE memcardRead(u8 data)
SIO_WRITE memcardSector(u8 data)
{
static u8 xor_check = 0;
switch(sio.bufCount)
{
case 2: mcd->sectorAddr = data << 0; xor_check = data; break;
@ -604,7 +604,7 @@ SIO_WRITE memcardInit()
forceEject = true;
u32 numTimesAccessed = FORCED_MCD_EJECTION_MAX_TRIES - mcd->ForceEjection_Timeout;
//minimum tries reached. start counting millisec timeout.
if(numTimesAccessed == FORCED_MCD_EJECTION_MIN_TRIES)
mcd->ForceEjection_Timestamp = Common::Timer::GetCurrentValue();
@ -621,7 +621,7 @@ SIO_WRITE memcardInit()
if(mcd->ForceEjection_Timeout == 0 && mcd->IsPresent())
Console.WriteLn( Color_Green, "Re-inserting auto-ejected memcard [port:%d, slot:%d]", sio.GetPort(), sio.GetSlot());
}
if(!forceEject && mcd->IsPresent())
{
DEVICE_PLUGGED();
@ -633,7 +633,7 @@ SIO_WRITE memcardInit()
siomode = SIO_DUMMY;
}
}
SIO_WRITE sioWriteMemcard(u8 data)

View File

@ -26,8 +26,8 @@ struct _mcd
u32 transferAddr; // Transfer address
u8 FLAG; // for PSX;
u8 port; // port
u8 port; // port
u8 slot; // and slot for this memcard
// Auto Eject
@ -50,13 +50,13 @@ struct _mcd
}
// Read from memorycard to dest
void Read(u8 *dest, int size)
void Read(u8 *dest, int size)
{
FileMcd_Read(port, slot, dest, transferAddr, size);
}
// Write to memorycard from src
void Write(u8 *src, int size)
void Write(u8 *src, int size)
{
FileMcd_Save(port, slot, src,transferAddr, size);
}

View File

@ -148,7 +148,7 @@ void SysLogMachineCaps()
if (GIT_TAGGED_COMMIT) // Nightly builds
{
// tagged commit - more modern implementation of dev build versioning
// - there is no need to include the commit - that is associated with the tag,
// - there is no need to include the commit - that is associated with the tag,
// - git is implied and the tag is timestamped
Console.WriteLn(Color_StrongGreen, "PCSX2 Nightly - %s Compiled on %s", GIT_TAG, __DATE__);
} else {

View File

@ -170,18 +170,18 @@ LANGUAGE LANG_SPANISH, SUBLANG_SPANISH_ARGENTINA
// TEXTINCLUDE
//
1 TEXTINCLUDE
1 TEXTINCLUDE
BEGIN
"resource_usb.h\0"
END
2 TEXTINCLUDE
2 TEXTINCLUDE
BEGIN
"#include ""WinResrc.h""\r\n"
"\0"
END
3 TEXTINCLUDE
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"

View File

@ -30,7 +30,7 @@
#define IDC_STATIC_USB -1
// Next default values for new objects
//
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 109

View File

@ -54,7 +54,7 @@ void USBsetLogDir(const char* dir)
std::string GetSelectedAPI(const std::pair<int, std::string>& pair)
{
USBsetSettingsDir();
USBsetSettingsDir();
auto it = changedAPIs.find(pair);
if (it != changedAPIs.end())
return it->second;
@ -71,7 +71,7 @@ int GetSelectedSubtype(const std::pair<int, std::string>& pair)
bool LoadSettingValue(const TSTDSTRING& ini, const TSTDSTRING& section, const TCHAR* param, TSTDSTRING& value)
{
USBsetSettingsDir();
USBsetSettingsDir();
CIniKey* key;
#ifdef _WIN32
auto sect = ciniFile.GetSection(section);
@ -93,7 +93,7 @@ bool LoadSettingValue(const TSTDSTRING& ini, const TSTDSTRING& section, const TC
bool LoadSettingValue(const TSTDSTRING& ini, const TSTDSTRING& section, const TCHAR* param, int32_t& value)
{
USBsetSettingsDir();
USBsetSettingsDir();
CIniKey* key;
#ifdef _WIN32
auto sect = ciniFile.GetSection(section);
@ -124,7 +124,7 @@ bool LoadSettingValue(const TSTDSTRING& ini, const TSTDSTRING& section, const TC
bool SaveSettingValue(const TSTDSTRING& ini, const TSTDSTRING& section, const TCHAR* param, const TSTDSTRING& value)
{
USBsetSettingsDir();
USBsetSettingsDir();
#ifdef _WIN32
ciniFile.SetKeyValue(section, param, value);
#else
@ -135,7 +135,7 @@ bool SaveSettingValue(const TSTDSTRING& ini, const TSTDSTRING& section, const TC
bool SaveSettingValue(const TSTDSTRING& ini, const TSTDSTRING& section, const TCHAR* param, int32_t value)
{
USBsetSettingsDir();
USBsetSettingsDir();
#ifdef _WIN32
ciniFile.SetKeyValue(section, param, TSTDTOSTRING(value));
#else
@ -146,7 +146,7 @@ bool SaveSettingValue(const TSTDSTRING& ini, const TSTDSTRING& section, const TC
void SaveConfig()
{
USBsetSettingsDir();
USBsetSettingsDir();
#ifdef _WIN32
SaveSetting(L"MAIN", L"log", conf.Log);
#else
@ -260,7 +260,7 @@ void ClearSection(const TCHAR* section)
void RemoveSection(const char* dev_type, int port, const std::string& key)
{
USBsetSettingsDir();
USBsetSettingsDir();
TSTDSTRING tkey;
tkey.assign(key.begin(), key.end());

View File

@ -15,7 +15,7 @@
// clang-format off
#include "icon_buzz_24.h"
const unsigned char icon_buzz_24[]
const unsigned char icon_buzz_24[]
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

View File

@ -23,10 +23,10 @@
/**
* g_malloc:
* @n_bytes: the number of bytes to allocate
*
*
* Allocates @n_bytes bytes of memory.
* If @n_bytes is 0 it returns %NULL.
*
*
* Returns: a pointer to the allocated memory
*/
void* my_g_malloc(size_t n_bytes)
@ -51,10 +51,10 @@ void* my_g_malloc(size_t n_bytes)
/**
* g_malloc0:
* @n_bytes: the number of bytes to allocate
*
*
* Allocates @n_bytes bytes of memory, initialized to 0's.
* If @n_bytes is 0 it returns %NULL.
*
*
* Returns: a pointer to the allocated memory
*/
void* my_g_malloc0(size_t n_bytes)
@ -80,10 +80,10 @@ void* my_g_malloc0(size_t n_bytes)
* g_malloc_n:
* @n_blocks: the number of blocks to allocate
* @n_block_bytes: the size of each block in bytes
*
*
* This function is similar to g_malloc(), allocating (@n_blocks * @n_block_bytes) bytes,
* but care is taken to detect possible overflow during multiplication.
*
*
* Since: 2.24
* Returns: a pointer to the allocated memory
*/
@ -103,13 +103,13 @@ void* my_g_malloc_n(size_t n_blocks,
* g_realloc:
* @mem: (nullable): the memory to reallocate
* @n_bytes: new size of the memory in bytes
*
*
* Reallocates the memory pointed to by @mem, so that it now has space for
* @n_bytes bytes of memory. It returns the new address of the memory, which may
* have been moved. @mem may be %NULL, in which case it's considered to
* have zero-length. @n_bytes may be 0, in which case %NULL will be returned
* and @mem will be freed unless it is %NULL.
*
*
* Returns: the new address of the allocated memory
*/
void* my_g_realloc(void* mem,
@ -139,10 +139,10 @@ void* my_g_realloc(void* mem,
* @mem: (nullable): the memory to reallocate
* @n_blocks: the number of blocks to allocate
* @n_block_bytes: the size of each block in bytes
*
*
* This function is similar to g_realloc(), allocating (@n_blocks * @n_block_bytes) bytes,
* but care is taken to detect possible overflow during multiplication.
*
*
* Since: 2.24
* Returns: the new address of the allocated memory
*/

View File

@ -1,8 +1,8 @@
/*
* QEMU USB API
*
*
* Copyright (c) 2005 Fabrice Bellard
*
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights

Some files were not shown because too many files have changed in this diff Show More