mirror of https://github.com/PCSX2/pcsx2.git
gs: core code and components merged up to gs
This commit is contained in:
parent
ada56a1c03
commit
b284ab7566
|
@ -144,7 +144,7 @@ void LoadConf()
|
||||||
|
|
||||||
if (doc == NULL)
|
if (doc == NULL)
|
||||||
{
|
{
|
||||||
SysMessage("Unable to parse configuration file! Suggest deleting it and starting over.");
|
Console.Error("Unable to parse configuration file! Suggest deleting it and starting over.");
|
||||||
}
|
}
|
||||||
|
|
||||||
for (cur_node = xmlDocGetRootElement(doc)->children; cur_node; cur_node = cur_node->next)
|
for (cur_node = xmlDocGetRootElement(doc)->children; cur_node; cur_node = cur_node->next)
|
||||||
|
|
|
@ -167,11 +167,11 @@ int GetMACAddress(char* adapter, mac_address* addr)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SysMessage("Could not get MAC address for adapter: %s", adapter);
|
Console.Error("Could not get MAC address for adapter: %s", adapter);
|
||||||
}
|
}
|
||||||
close(fd);
|
close(fd);
|
||||||
#else
|
#else
|
||||||
SysMessage("Could not get MAC address for adapter, OS not supported");
|
Console.Error("Could not get MAC address for adapter, OS not supported");
|
||||||
#endif
|
#endif
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
@ -230,7 +230,7 @@ int pcap_io_init(char* adapter, bool switched, mac_address virtual_mac)
|
||||||
//case DLT_IEEE802_11:
|
//case DLT_IEEE802_11:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
SysMessage("ERROR: Unsupported DataLink Type (%d): %s", dlt, dlt_name);
|
Console.Error("ERROR: Unsupported DataLink Type (%d): %s", dlt, dlt_name);
|
||||||
pcap_close(adhandle);
|
pcap_close(adhandle);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -391,7 +391,7 @@ PCAPAdapter::PCAPAdapter()
|
||||||
|
|
||||||
if (pcap_io_init(config.Eth, config.EthApi == NetApi::PCAP_Switched, newMAC) == -1)
|
if (pcap_io_init(config.Eth, config.EthApi == NetApi::PCAP_Switched, newMAC) == -1)
|
||||||
{
|
{
|
||||||
SysMessage("Can't open Device '%s'\n", config.Eth);
|
Console.Error("Can't open Device '%s'\n", config.Eth);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
bool PCAPAdapter::blocks()
|
bool PCAPAdapter::blocks()
|
||||||
|
|
|
@ -318,8 +318,8 @@ void emac3_write(u32 addr)
|
||||||
}
|
}
|
||||||
dev9Ru32(addr) = wswap(value);
|
dev9Ru32(addr) = wswap(value);
|
||||||
}
|
}
|
||||||
EXPORT_C_(u8)
|
|
||||||
smap_read8(u32 addr)
|
u8 smap_read8(u32 addr)
|
||||||
{
|
{
|
||||||
switch (addr)
|
switch (addr)
|
||||||
{
|
{
|
||||||
|
@ -341,8 +341,8 @@ smap_read8(u32 addr)
|
||||||
DevCon.WriteLn("DEV9: SMAP : error , 8 bit read @ %X,v=%X", addr, dev9Ru8(addr));
|
DevCon.WriteLn("DEV9: SMAP : error , 8 bit read @ %X,v=%X", addr, dev9Ru8(addr));
|
||||||
return dev9Ru8(addr);
|
return dev9Ru8(addr);
|
||||||
}
|
}
|
||||||
EXPORT_C_(u16)
|
|
||||||
smap_read16(u32 addr)
|
u16 smap_read16(u32 addr)
|
||||||
{
|
{
|
||||||
int rv = dev9Ru16(addr);
|
int rv = dev9Ru16(addr);
|
||||||
if (addr >= SMAP_BD_TX_BASE && addr < (SMAP_BD_TX_BASE + SMAP_BD_SIZE))
|
if (addr >= SMAP_BD_TX_BASE && addr < (SMAP_BD_TX_BASE + SMAP_BD_SIZE))
|
||||||
|
@ -495,8 +495,7 @@ smap_read16(u32 addr)
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPORT_C_(u32)
|
u32 smap_read32(u32 addr)
|
||||||
smap_read32(u32 addr)
|
|
||||||
{
|
{
|
||||||
if (addr >= SMAP_EMAC3_REGBASE && addr < SMAP_EMAC3_REGEND)
|
if (addr >= SMAP_EMAC3_REGBASE && addr < SMAP_EMAC3_REGEND)
|
||||||
{
|
{
|
||||||
|
@ -532,8 +531,8 @@ smap_read32(u32 addr)
|
||||||
return dev9Ru32(addr);
|
return dev9Ru32(addr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EXPORT_C_(void)
|
|
||||||
smap_write8(u32 addr, u8 value)
|
void smap_write8(u32 addr, u8 value)
|
||||||
{
|
{
|
||||||
std::unique_lock<std::mutex> reset_lock(reset_mutex, std::defer_lock);
|
std::unique_lock<std::mutex> reset_lock(reset_mutex, std::defer_lock);
|
||||||
std::unique_lock<std::mutex> counter_lock(frame_counter_mutex, std::defer_lock);
|
std::unique_lock<std::mutex> counter_lock(frame_counter_mutex, std::defer_lock);
|
||||||
|
@ -606,8 +605,8 @@ smap_write8(u32 addr, u8 value)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EXPORT_C_(void)
|
|
||||||
smap_write16(u32 addr, u16 value)
|
void smap_write16(u32 addr, u16 value)
|
||||||
{
|
{
|
||||||
if (addr >= SMAP_BD_TX_BASE && addr < (SMAP_BD_TX_BASE + SMAP_BD_SIZE))
|
if (addr >= SMAP_BD_TX_BASE && addr < (SMAP_BD_TX_BASE + SMAP_BD_SIZE))
|
||||||
{
|
{
|
||||||
|
@ -792,8 +791,8 @@ smap_write16(u32 addr, u16 value)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EXPORT_C_(void)
|
|
||||||
smap_write32(u32 addr, u32 value)
|
void smap_write32(u32 addr, u32 value)
|
||||||
{
|
{
|
||||||
if (addr >= SMAP_EMAC3_REGBASE && addr < SMAP_EMAC3_REGEND)
|
if (addr >= SMAP_EMAC3_REGBASE && addr < SMAP_EMAC3_REGEND)
|
||||||
{
|
{
|
||||||
|
@ -814,8 +813,8 @@ smap_write32(u32 addr, u32 value)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EXPORT_C_(void)
|
|
||||||
smap_readDMA8Mem(u32* pMem, int size)
|
void smap_readDMA8Mem(u32* pMem, int size)
|
||||||
{
|
{
|
||||||
if (dev9Ru16(SMAP_R_RXFIFO_CTRL) & SMAP_RXFIFO_DMAEN)
|
if (dev9Ru16(SMAP_R_RXFIFO_CTRL) & SMAP_RXFIFO_DMAEN)
|
||||||
{
|
{
|
||||||
|
@ -835,8 +834,8 @@ smap_readDMA8Mem(u32* pMem, int size)
|
||||||
dev9Ru16(SMAP_R_RXFIFO_CTRL) &= ~SMAP_RXFIFO_DMAEN;
|
dev9Ru16(SMAP_R_RXFIFO_CTRL) &= ~SMAP_RXFIFO_DMAEN;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EXPORT_C_(void)
|
|
||||||
smap_writeDMA8Mem(u32* pMem, int size)
|
void smap_writeDMA8Mem(u32* pMem, int size)
|
||||||
{
|
{
|
||||||
if (dev9Ru16(SMAP_R_TXFIFO_CTRL) & SMAP_TXFIFO_DMAEN)
|
if (dev9Ru16(SMAP_R_TXFIFO_CTRL) & SMAP_TXFIFO_DMAEN)
|
||||||
{
|
{
|
||||||
|
@ -858,8 +857,8 @@ smap_writeDMA8Mem(u32* pMem, int size)
|
||||||
dev9Ru16(SMAP_R_TXFIFO_CTRL) &= ~SMAP_TXFIFO_DMAEN;
|
dev9Ru16(SMAP_R_TXFIFO_CTRL) &= ~SMAP_TXFIFO_DMAEN;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EXPORT_C_(void)
|
|
||||||
smap_async(u32 cycles)
|
void smap_async(u32 cycles)
|
||||||
{
|
{
|
||||||
if (fireIntR)
|
if (fireIntR)
|
||||||
{
|
{
|
||||||
|
|
|
@ -16,23 +16,14 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
#include "DEV9.h"
|
#include "DEV9.h"
|
||||||
|
|
||||||
EXPORT_C_(u8)
|
u8 smap_read8(u32 addr);
|
||||||
smap_read8(u32 addr);
|
u16 smap_read16(u32 addr);
|
||||||
EXPORT_C_(u16)
|
u32 smap_read32(u32 addr);
|
||||||
smap_read16(u32 addr);
|
|
||||||
EXPORT_C_(u32)
|
|
||||||
smap_read32(u32 addr);
|
|
||||||
|
|
||||||
EXPORT_C_(void)
|
void smap_write8(u32 addr, u8 value);
|
||||||
smap_write8(u32 addr, u8 value);
|
void smap_write16(u32 addr, u16 value);
|
||||||
EXPORT_C_(void)
|
void smap_write32(u32 addr, u32 value);
|
||||||
smap_write16(u32 addr, u16 value);
|
|
||||||
EXPORT_C_(void)
|
|
||||||
smap_write32(u32 addr, u32 value);
|
|
||||||
|
|
||||||
EXPORT_C_(void)
|
void smap_readDMA8Mem(u32* pMem, int size);
|
||||||
smap_readDMA8Mem(u32* pMem, int size);
|
void smap_writeDMA8Mem(u32* pMem, int size);
|
||||||
EXPORT_C_(void)
|
void smap_async(u32 cycles);
|
||||||
smap_writeDMA8Mem(u32* pMem, int size);
|
|
||||||
EXPORT_C_(void)
|
|
||||||
smap_async(u32 cycles);
|
|
||||||
|
|
|
@ -1441,12 +1441,6 @@ struct GSKeyEventData
|
||||||
uint32 key, type;
|
uint32 key, type;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
FREEZE_LOAD = 0,
|
|
||||||
FREEZE_SAVE = 1,
|
|
||||||
FREEZE_SIZE = 2
|
|
||||||
};
|
|
||||||
struct GSFreezeData
|
struct GSFreezeData
|
||||||
{
|
{
|
||||||
int size;
|
int size;
|
||||||
|
|
|
@ -200,6 +200,7 @@ typedef int64 sint64;
|
||||||
|
|
||||||
#define ASSERT assert
|
#define ASSERT assert
|
||||||
|
|
||||||
|
/*
|
||||||
#ifdef _M_AMD64
|
#ifdef _M_AMD64
|
||||||
// Yeah let use mips naming ;)
|
// Yeah let use mips naming ;)
|
||||||
#ifdef _WIN64
|
#ifdef _WIN64
|
||||||
|
@ -218,6 +219,7 @@ typedef int64 sint64;
|
||||||
#define t1 r9
|
#define t1 r9
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
*/
|
||||||
|
|
||||||
// sse
|
// sse
|
||||||
#if defined(__GNUC__)
|
#if defined(__GNUC__)
|
||||||
|
|
|
@ -462,7 +462,7 @@ void SysMtgsThread::ExecuteTaskInThread()
|
||||||
{
|
{
|
||||||
MTGS_FreezeData* data = (MTGS_FreezeData*)tag.pointer;
|
MTGS_FreezeData* data = (MTGS_FreezeData*)tag.pointer;
|
||||||
int mode = tag.data[0];
|
int mode = tag.data[0];
|
||||||
data->retval = GetCorePlugins().DoFreeze(PluginId_GS, mode, data->fdata);
|
data->retval = GSfreeze(mode, (GSFreezeData*)data->fdata);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
|
|
||||||
#include "Utilities/SafeArray.inl"
|
#include "Utilities/SafeArray.inl"
|
||||||
#include "SPU2/spu2.h"
|
#include "SPU2/spu2.h"
|
||||||
|
#include "gui/ConsoleLogger.h"
|
||||||
|
|
||||||
using namespace R5900;
|
using namespace R5900;
|
||||||
|
|
||||||
|
@ -240,23 +241,12 @@ SaveStateBase& SaveStateBase::FreezeInternals()
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
SaveStateBase& SaveStateBase::FreezePlugins()
|
|
||||||
{
|
|
||||||
for (uint i=0; i<PluginId_Count; ++i)
|
|
||||||
{
|
|
||||||
FreezeTag( FastFormatAscii().Write("Plugin:%s", tbl_PluginInfo[i].shortname) );
|
|
||||||
GetCorePlugins().Freeze( (PluginsEnum_t)i, *this );
|
|
||||||
}
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
SaveStateBase& SaveStateBase::FreezeAll()
|
SaveStateBase& SaveStateBase::FreezeAll()
|
||||||
{
|
{
|
||||||
FreezeMainMemory();
|
FreezeMainMemory();
|
||||||
FreezeBios();
|
FreezeBios();
|
||||||
FreezeInternals();
|
FreezeInternals();
|
||||||
FreezePlugins();
|
//TODO: ADD BACK FREEZE PLUGINS HERE
|
||||||
|
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
@ -323,3 +313,22 @@ void memLoadingState::FreezeMem( void* data, int size )
|
||||||
m_idx += size;
|
m_idx += size;
|
||||||
memcpy( data, src, size );
|
memcpy( data, src, size );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wxString Exception::SaveStateLoadError::FormatDiagnosticMessage() const
|
||||||
|
{
|
||||||
|
FastFormatUnicode retval;
|
||||||
|
retval.Write("Savestate is corrupt or incomplete!\n");
|
||||||
|
OSDlog(Color_Red, false, "Error: Savestate is corrupt or incomplete!");
|
||||||
|
_formatDiagMsg(retval);
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
|
wxString Exception::SaveStateLoadError::FormatDisplayMessage() const
|
||||||
|
{
|
||||||
|
FastFormatUnicode retval;
|
||||||
|
retval.Write(_("The savestate cannot be loaded, as it appears to be corrupt or incomplete."));
|
||||||
|
retval.Write("\n");
|
||||||
|
OSDlog(Color_Red, false, "Error: The savestate cannot be loaded, as it appears to be corrupt or incomplete.");
|
||||||
|
_formatUserMsg(retval);
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
|
@ -15,7 +15,12 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#define FREEZE_LOAD 0
|
||||||
|
#define FREEZE_SAVE 1
|
||||||
|
#define FREEZE_SIZE 2
|
||||||
|
|
||||||
#include "System.h"
|
#include "System.h"
|
||||||
|
#include "Utilities/Exceptions.h"
|
||||||
|
|
||||||
// Savestate Versioning!
|
// Savestate Versioning!
|
||||||
// If you make changes to the savestate version, please increment the value below.
|
// If you make changes to the savestate version, please increment the value below.
|
||||||
|
@ -212,3 +217,16 @@ public:
|
||||||
bool IsFinished() const { return m_idx >= m_memory->GetSizeInBytes(); }
|
bool IsFinished() const { return m_idx >= m_memory->GetSizeInBytes(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
namespace Exception
|
||||||
|
{
|
||||||
|
// Exception thrown when a corrupted or truncated savestate is encountered.
|
||||||
|
class SaveStateLoadError : public BadStream
|
||||||
|
{
|
||||||
|
DEFINE_STREAM_EXCEPTION(SaveStateLoadError, BadStream)
|
||||||
|
|
||||||
|
virtual wxString FormatDiagnosticMessage() const;
|
||||||
|
virtual wxString FormatDisplayMessage() const;
|
||||||
|
};
|
||||||
|
}; // namespace Exception
|
||||||
|
|
||||||
|
|
|
@ -678,7 +678,7 @@ SIO_WRITE sioWriteMemcard(u8 data)
|
||||||
sio2.packet.recvVal3 = 0x83;
|
sio2.packet.recvVal3 = 0x83;
|
||||||
|
|
||||||
mc_command_0x26_tag cmd;
|
mc_command_0x26_tag cmd;
|
||||||
PS2E_McdSizeInfo info;
|
McdSizeInfo info;
|
||||||
|
|
||||||
mcd->GetSizeInfo(info);
|
mcd->GetSizeInfo(info);
|
||||||
|
|
||||||
|
|
|
@ -69,11 +69,9 @@ void vif1TransferToMemory()
|
||||||
}
|
}
|
||||||
|
|
||||||
GetMTGS().WaitGS();
|
GetMTGS().WaitGS();
|
||||||
if (GSinitReadFIFO2) {
|
|
||||||
GetMTGS().SendPointerPacket(GS_RINGTYPE_INIT_READ_FIFO2, size, pMem);
|
GetMTGS().SendPointerPacket(GS_RINGTYPE_INIT_READ_FIFO2, size, pMem);
|
||||||
GetMTGS().WaitGS(false); // wait without reg sync
|
GetMTGS().WaitGS(false); // wait without reg sync
|
||||||
}
|
GSreadFIFO2((u8*)pMem, size);
|
||||||
GSreadFIFO2((u64*)pMem, size);
|
|
||||||
// pMem += size;
|
// pMem += size;
|
||||||
|
|
||||||
//Some games such as Alex Ferguson's Player Manager 2001 reads less than GSLastDownloadSize by VIF then reads the remainder by FIFO
|
//Some games such as Alex Ferguson's Player Manager 2001 reads less than GSLastDownloadSize by VIF then reads the remainder by FIFO
|
||||||
|
|
Loading…
Reference in New Issue