[Project64] Create Project64-core

This commit is contained in:
zilmar 2015-12-06 20:59:58 +11:00
parent 9547e0fd48
commit a429a7fd08
193 changed files with 2268 additions and 1867 deletions

View File

@ -1,6 +1,7 @@
 
Microsoft Visual Studio Solution File, Format Version 11.00 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2010 or later # Visual Studio 2013
VisualStudioVersion = 12.0.31101.0
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "3rd Party", "3rd Party", "{AA8F7F8E-5377-4911-859D-8A8817B0DB26}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "3rd Party", "3rd Party", "{AA8F7F8E-5377-4911-859D-8A8817B0DB26}"
EndProject EndProject
@ -61,6 +62,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PropertySheets", "PropertyS
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2", "Source\3rdParty\sdl\sdl2.vcxproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2", "Source\3rdParty\sdl\sdl2.vcxproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Project64-core", "Source\Project64-core\Project64-core.vcxproj", "{00C7B43A-DED7-4DF0-B072-9A5783EF866D}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32 Debug|Win32 = Debug|Win32
@ -210,6 +213,12 @@ Global
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Win32.Build.0 = Release|Win32 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Win32.Build.0 = Release|Win32
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x64.ActiveCfg = Release|x64 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x64.ActiveCfg = Release|x64
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x64.Build.0 = Release|x64 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x64.Build.0 = Release|x64
{00C7B43A-DED7-4DF0-B072-9A5783EF866D}.Debug|Win32.ActiveCfg = Debug|Win32
{00C7B43A-DED7-4DF0-B072-9A5783EF866D}.Debug|Win32.Build.0 = Debug|Win32
{00C7B43A-DED7-4DF0-B072-9A5783EF866D}.Debug|x64.ActiveCfg = Debug|Win32
{00C7B43A-DED7-4DF0-B072-9A5783EF866D}.Release|Win32.ActiveCfg = Release|Win32
{00C7B43A-DED7-4DF0-B072-9A5783EF866D}.Release|Win32.Build.0 = Release|Win32
{00C7B43A-DED7-4DF0-B072-9A5783EF866D}.Release|x64.ActiveCfg = Release|Win32
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE

View File

@ -8,6 +8,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Project64", "Source\Project
{731BD205-2826-4631-B7AF-117658E88DBC} = {731BD205-2826-4631-B7AF-117658E88DBC} {731BD205-2826-4631-B7AF-117658E88DBC} = {731BD205-2826-4631-B7AF-117658E88DBC}
{A4D13408-A794-4199-8FC7-4A9A32505005} = {A4D13408-A794-4199-8FC7-4A9A32505005} {A4D13408-A794-4199-8FC7-4A9A32505005} = {A4D13408-A794-4199-8FC7-4A9A32505005}
{3326E128-33AF-422C-BB7C-67CC6B915610} = {3326E128-33AF-422C-BB7C-67CC6B915610} {3326E128-33AF-422C-BB7C-67CC6B915610} = {3326E128-33AF-422C-BB7C-67CC6B915610}
{00C7B43A-DED7-4DF0-B072-9A5783EF866D} = {00C7B43A-DED7-4DF0-B072-9A5783EF866D}
{FD617E80-9E40-4138-85DA-B94633972E6A} = {FD617E80-9E40-4138-85DA-B94633972E6A} {FD617E80-9E40-4138-85DA-B94633972E6A} = {FD617E80-9E40-4138-85DA-B94633972E6A}
{B4A4B994-9111-42B1-93C2-6F1CA8BC4421} = {B4A4B994-9111-42B1-93C2-6F1CA8BC4421} {B4A4B994-9111-42B1-93C2-6F1CA8BC4421} = {B4A4B994-9111-42B1-93C2-6F1CA8BC4421}
EndProjectSection EndProjectSection
@ -82,6 +83,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PJ64 NRage", "Source\nragev
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2", "Source\3rdParty\sdl\sdl2.vcproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2", "Source\3rdParty\sdl\sdl2.vcproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Project64-core", "Source\Project64-core\Project64-core.vcproj", "{00C7B43A-DED7-4DF0-B072-9A5783EF866D}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32 Debug|Win32 = Debug|Win32
@ -163,6 +166,10 @@ Global
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Win32.Build.0 = Debug|Win32 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Win32.Build.0 = Debug|Win32
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Win32.ActiveCfg = Release|Win32 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Win32.ActiveCfg = Release|Win32
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Win32.Build.0 = Release|Win32 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Win32.Build.0 = Release|Win32
{00C7B43A-DED7-4DF0-B072-9A5783EF866D}.Debug|Win32.ActiveCfg = Debug|Win32
{00C7B43A-DED7-4DF0-B072-9A5783EF866D}.Debug|Win32.Build.0 = Debug|Win32
{00C7B43A-DED7-4DF0-B072-9A5783EF866D}.Release|Win32.ActiveCfg = Release|Win32
{00C7B43A-DED7-4DF0-B072-9A5783EF866D}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE

View File

@ -1,5 +1,11 @@
#include "stdafx.h" #include "stdafx.h"
#include <Common\Util.h> #include <common/path.h>
#include <common/trace.h>
#include <Common/Util.h>
#include <Project64-core/N64System/Mips/MemoryVirtualMem.h>
#include <Project64-core/N64System/SystemGlobals.h>
#include <Project64-core/Plugins/PluginClass.h>
#include <Project64-core/N64System/N64RomClass.h>
void FixDirectories(void); void FixDirectories(void);
@ -120,6 +126,7 @@ void FixDirectories(void)
if (!Directory.DirectoryExists()) Directory.DirectoryCreate(); if (!Directory.DirectoryExists()) Directory.DirectoryCreate();
} }
#include <windows.h>
void IncreaseThreadPriority(void) void IncreaseThreadPriority(void)
{ {
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_ABOVE_NORMAL); SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_ABOVE_NORMAL);

View File

@ -0,0 +1,4 @@
#include <excpt.h>
#define __except_try() __try
#define __except_catch() __except (g_MMU->MemoryFilter(_exception_code(), _exception_info()))

View File

@ -11,10 +11,10 @@
#include "stdafx.h" #include "stdafx.h"
#include "logging.h" #include "logging.h"
#include <Common/path.h> #include <Common/path.h>
#include <Project64/N64System/SystemGlobals.h> #include <Project64-core/N64System/SystemGlobals.h>
#include <Project64/N64System/Mips/TranslateVaddr.h> #include <Project64-core/N64System/Mips/TranslateVaddr.h>
#include <Project64/N64System/Mips/MemoryClass.h> #include <Project64-core/N64System/Mips/MemoryClass.h>
#include <Project64/N64System/N64RomClass.h> #include <Project64-core/N64System/N64RomClass.h>
CFile * CLogging::m_hLogFile = NULL; CFile * CLogging::m_hLogFile = NULL;

View File

@ -9,7 +9,7 @@
* * * *
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#include <Project64/Settings/LoggingSettings.h> #include <Project64-core/Settings/LoggingSettings.h>
#include <Common/FileClass.h> #include <Common/FileClass.h>
class CLogging : class CLogging :

View File

@ -10,6 +10,12 @@
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include "CheatClass.h"
#include <Project64-core/Settings/SettingType/SettingsType-Cheats.h>
#include <Project64-core/Plugins/GFXplugin.h>
#include <Project64-core/Plugins/AudioPlugin.h>
#include <Project64-core/Plugins/RSPPlugin.h>
#include <Project64-core/Plugins/ControllerPlugin.h>
CCheats::CCheats() CCheats::CCheats()
{ {

View File

@ -9,6 +9,9 @@
* * * *
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#include "N64RomClass.h"
#include <Project64-core/N64System/Mips/MemoryClass.h>
#include <Project64-core/Plugins/PluginClass.h>
class CCheats class CCheats
{ {

View File

@ -9,7 +9,8 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include <Project64/N64System/N64Class.h> #include <Project64-core/N64System/N64Class.h>
#include <Project64-core/Notification.h>
#include <common/Util.h> #include <common/Util.h>
#include <Windows.h> #include <Windows.h>
#include <Objbase.h> #include <Objbase.h>

View File

@ -9,6 +9,9 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include "FramePerSecondClass.h"
#include <Project64-core/N64System/N64Types.h>
#include <Windows.h>
CFramePerSecond::CFramePerSecond () CFramePerSecond::CFramePerSecond ()
{ {
@ -72,7 +75,7 @@ void CFramePerSecond::UpdateViCounter ( void )
m_CurrentFrame += 1; m_CurrentFrame += 1;
} }
void CFramePerSecond::DisplayViCounter(DWORD FrameRate) void CFramePerSecond::DisplayViCounter(uint32_t FrameRate)
{ {
if (m_iFrameRateType == FR_VIs) if (m_iFrameRateType == FR_VIs)
{ {
@ -157,7 +160,7 @@ void CFramePerSecond::UpdateDlCounter ( void )
m_CurrentFrame += 1; m_CurrentFrame += 1;
} }
void CFramePerSecond::DisplayDlCounter(DWORD FrameRate) void CFramePerSecond::DisplayDlCounter(uint32_t FrameRate)
{ {
if (m_iFrameRateType != FR_DLs) if (m_iFrameRateType != FR_DLs)
{ {

View File

@ -20,8 +20,8 @@ public:
void UpdateDlCounter ( void ); void UpdateDlCounter ( void );
void UpdateViCounter ( void ); void UpdateViCounter ( void );
void DisplayDlCounter ( DWORD FrameRate ); void DisplayDlCounter ( uint32_t FrameRate );
void DisplayViCounter ( DWORD FrameRate ); void DisplayViCounter ( uint32_t FrameRate );
private: private:
static void FrameRateTypeChanged(CFramePerSecond * _this); static void FrameRateTypeChanged(CFramePerSecond * _this);

View File

@ -9,6 +9,15 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include "InterpreterCPU.h"
#include <Project64-core/N64System/SystemGlobals.h>
#include <Project64-core/N64System/N64Class.h>
#include <Project64-core/N64System/Mips/MemoryClass.h>
#include <Project64-core/N64System/Mips/OpcodeName.h>
#include <Project64-core/N64System/Interpreter/InterpreterOps32.h>
#include <Project64-core/Plugins/PluginClass.h>
#include <Project64-core/Plugins/GFXplugin.h>
#include <Project64-core/ExceptionHandler.h>
R4300iOp::Func * CInterpreterCPU::m_R4300i_Opcode = NULL; R4300iOp::Func * CInterpreterCPU::m_R4300i_Opcode = NULL;

View File

@ -10,7 +10,7 @@
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#include <Project64/N64System/Interpreter/InterpreterOps.h> #include <Project64-core/N64System/Interpreter/InterpreterOps.h>
class CInterpreterCPU : class CInterpreterCPU :
private R4300iOp private R4300iOp

View File

@ -9,7 +9,17 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include <Project64/UserInterface/LoggingUI.h> #include "InterpreterOps.h"
#include <Project64-core/N64System/SystemGlobals.h>
#include <Project64-core/N64System/N64Class.h>
#include <Project64-core/N64System/Mips/MemoryClass.h>
#include <Project64-core/N64System/Mips/SystemTiming.h>
#include <Project64-core/N64System/Mips/TLBClass.h>
#include <Project64-core/N64System/Mips/OpcodeName.h>
#include <Project64-core/N64System/Interpreter/InterpreterCPU.h>
#include <Project64-core/Logging.h>
#include <float.h>
#include <math.h>
void InPermLoop(); void InPermLoop();
void TestInterpreterJump(uint32_t PC, uint32_t TargetPC, int32_t Reg1, int32_t Reg2); void TestInterpreterJump(uint32_t PC, uint32_t TargetPC, int32_t Reg1, int32_t Reg2);

View File

@ -10,9 +10,9 @@
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#include <Project64/Settings/DebugSettings.h> #include <Project64-core/Settings/DebugSettings.h>
#include <Project64/N64System/Mips/RegisterClass.h> #include <Project64-core/N64System/Mips/RegisterClass.h>
#include <Project64/N64System/Mips/OpCode.h> #include <Project64-core/N64System/Mips/OpCode.h>
class R4300iOp : class R4300iOp :
public CLogging, public CLogging,

View File

@ -9,7 +9,12 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include <Project64\Logging.h> #include "InterpreterOps32.h"
#include <Project64-core/N64System/SystemGlobals.h>
#include <Project64-core/N64System/Mips/MemoryClass.h>
#include <Project64-core/N64System/Mips/SystemTiming.h>
#include <Project64-core/N64System/Interpreter/InterpreterCPU.h>
#include <Project64-core/Logging.h>
bool DelaySlotEffectsCompare(uint32_t PC, uint32_t Reg1, uint32_t Reg2); bool DelaySlotEffectsCompare(uint32_t PC, uint32_t Reg1, uint32_t Reg2);

View File

@ -10,8 +10,8 @@
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include "Audio.h" #include "Audio.h"
#include <Project64/N64System/SystemGlobals.h> #include <Project64-core/N64System/SystemGlobals.h>
#include <Project64/N64System/N64Class.h> #include <Project64-core/N64System/N64Class.h>
CAudio::CAudio() CAudio::CAudio()
{ {

View File

@ -9,6 +9,13 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include "Dma.h"
#include <Project64-core/N64System/SystemGlobals.h>
#include <Project64-core/N64System/N64RomClass.h>
#include <Project64-core/N64System/Mips/MemoryClass.h>
#include <Project64-core/N64System/Mips/RegisterClass.h>
#include <Project64-core/N64System/N64Class.h>
#include <Windows.h>
CDMA::CDMA(CFlashram & FlashRam, CSram & Sram) : CDMA::CDMA(CFlashram & FlashRam, CSram & Sram) :
m_FlashRam(FlashRam), m_FlashRam(FlashRam),

View File

@ -9,9 +9,9 @@
* * * *
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#include <Project64/Settings/DebugSettings.h> #include <Project64-core/Settings/DebugSettings.h>
#include <Project64/N64System/Mips/FlashRam.h> #include <Project64-core/N64System/Mips/FlashRam.h>
#include <Project64/N64System/Mips/Sram.h> #include <Project64-core/N64System/Mips/Sram.h>
class CDMA : class CDMA :
private CDebugSettings private CDebugSettings

View File

@ -10,9 +10,10 @@
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include "Eeprom.h" #include "Eeprom.h"
#include <Project64/N64System/SystemGlobals.h> #include <Project64-core/N64System/SystemGlobals.h>
#include <Project64/N64System/N64Class.h> #include <Project64-core/N64System/N64Class.h>
#include <time.h> #include <time.h>
#include <Windows.h>
CEeprom::CEeprom(bool ReadOnly) : CEeprom::CEeprom(bool ReadOnly) :
m_ReadOnly(ReadOnly), m_ReadOnly(ReadOnly),

View File

@ -9,6 +9,7 @@
* * * *
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#include <Project64-core/Settings/DebugSettings.h>
class CEeprom : class CEeprom :
private CDebugSettings private CDebugSettings

View File

@ -9,6 +9,11 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include "FlashRam.h"
#include <Project64-core/N64System/SystemGlobals.h>
#include <Project64-core/N64System/Mips/MemoryClass.h>
#include <Common/path.h>
#include <Windows.h>
CFlashram::CFlashram(bool ReadOnly): CFlashram::CFlashram(bool ReadOnly):
m_FlashRamPointer(NULL), m_FlashRamPointer(NULL),
@ -30,10 +35,10 @@ CFlashram::~CFlashram()
} }
} }
void CFlashram::DmaFromFlashram ( BYTE * dest, int StartOffset, int len) void CFlashram::DmaFromFlashram(uint8_t * dest, int StartOffset, int len)
{ {
BYTE FlipBuffer[0x10000]; uint8_t FlipBuffer[0x10000];
DWORD dwRead, count; uint32_t count;
switch (m_FlashFlag) switch (m_FlashFlag)
{ {
@ -64,6 +69,7 @@ void CFlashram::DmaFromFlashram ( BYTE * dest, int StartOffset, int len)
memset(FlipBuffer,0,sizeof(FlipBuffer)); memset(FlipBuffer,0,sizeof(FlipBuffer));
StartOffset = StartOffset << 1; StartOffset = StartOffset << 1;
SetFilePointer(m_hFile,StartOffset,NULL,FILE_BEGIN); SetFilePointer(m_hFile,StartOffset,NULL,FILE_BEGIN);
DWORD dwRead;
ReadFile(m_hFile,FlipBuffer,len,&dwRead,NULL); ReadFile(m_hFile,FlipBuffer,len,&dwRead,NULL);
for (count = dwRead; (int)count < len; count ++) for (count = dwRead; (int)count < len; count ++)
{ {
@ -72,11 +78,11 @@ void CFlashram::DmaFromFlashram ( BYTE * dest, int StartOffset, int len)
for (count = 0; (int)count < len; count += 4) for (count = 0; (int)count < len; count += 4)
{ {
register DWORD eax; register uint32_t eax;
eax = *(unsigned __int32 *)&FlipBuffer[count]; eax = *(uint32_t *)&FlipBuffer[count];
// eax = swap32by8(eax); // ; bswap eax // eax = swap32by8(eax); // ; bswap eax
*(unsigned __int32 *)(dest + count) = eax; *(uint32_t *)(dest + count) = eax;
} }
break; break;
case FLASHRAM_MODE_STATUS: case FLASHRAM_MODE_STATUS:
@ -87,8 +93,8 @@ void CFlashram::DmaFromFlashram ( BYTE * dest, int StartOffset, int len)
g_Notify->DisplayError(stdstr_f(__FUNCTION__ ": Reading m_FlashStatus not being handled correctly\nStart: %X len: %X", StartOffset, len).ToUTF16().c_str()); g_Notify->DisplayError(stdstr_f(__FUNCTION__ ": Reading m_FlashStatus not being handled correctly\nStart: %X len: %X", StartOffset, len).ToUTF16().c_str());
} }
} }
*((DWORD *)(dest)) = (DWORD)((m_FlashStatus >> 32) & 0xFFFFFFFF); *((uint32_t *)(dest)) = (uint32_t)((m_FlashStatus >> 32) & 0xFFFFFFFF);
*((DWORD *)(dest) + 1) = (DWORD)(m_FlashStatus & 0xFFFFFFFF); *((uint32_t *)(dest)+1) = (uint32_t)(m_FlashStatus & 0xFFFFFFFF);
break; break;
default: default:
if (bHaveDebugger()) if (bHaveDebugger())
@ -98,7 +104,7 @@ void CFlashram::DmaFromFlashram ( BYTE * dest, int StartOffset, int len)
} }
} }
void CFlashram::DmaToFlashram(BYTE * Source, int StartOffset, int len) void CFlashram::DmaToFlashram(uint8_t * Source, int StartOffset, int len)
{ {
switch (m_FlashFlag) switch (m_FlashFlag)
{ {
@ -114,11 +120,11 @@ void CFlashram::DmaToFlashram(BYTE * Source, int StartOffset, int len)
} }
DWORD CFlashram::ReadFromFlashStatus (DWORD PAddr) uint32_t CFlashram::ReadFromFlashStatus(uint32_t PAddr)
{ {
switch (PAddr) switch (PAddr)
{ {
case 0x08000000: return (DWORD)(m_FlashStatus >> 32); case 0x08000000: return (uint32_t)(m_FlashStatus >> 32);
default: default:
if (bHaveDebugger()) if (bHaveDebugger())
{ {
@ -126,7 +132,7 @@ DWORD CFlashram::ReadFromFlashStatus (DWORD PAddr)
} }
break; break;
} }
return (DWORD)(m_FlashStatus >> 32); return (uint32_t)(m_FlashStatus >> 32);
} }
bool CFlashram::LoadFlashram() bool CFlashram::LoadFlashram()
@ -154,9 +160,9 @@ bool CFlashram::LoadFlashram()
return true; return true;
} }
void CFlashram::WriteToFlashCommand(DWORD FlashRAM_Command) void CFlashram::WriteToFlashCommand(uint32_t FlashRAM_Command)
{ {
BYTE EmptyBlock[128]; uint8_t EmptyBlock[128];
DWORD dwWritten; DWORD dwWritten;
switch (FlashRAM_Command & 0xFF000000) switch (FlashRAM_Command & 0xFF000000)
@ -186,14 +192,14 @@ void CFlashram::WriteToFlashCommand(DWORD FlashRAM_Command)
} }
} }
{ {
BYTE FlipBuffer[128]; uint8_t FlipBuffer[128];
register size_t edx; register size_t edx;
BYTE * FlashRamPointer = m_FlashRamPointer; uint8_t * FlashRamPointer = m_FlashRamPointer;
memset(FlipBuffer,0,sizeof(FlipBuffer)); memset(FlipBuffer,0,sizeof(FlipBuffer));
for (edx = 0; edx < 128; edx += 4) for (edx = 0; edx < 128; edx += 4)
{ {
register DWORD eax; register uint32_t eax;
eax = *(unsigned __int32 *)&FlashRamPointer[edx]; eax = *(unsigned __int32 *)&FlashRamPointer[edx];
// eax = swap32by8(eax); // ; bswap eax // eax = swap32by8(eax); // ; bswap eax

View File

@ -9,6 +9,7 @@
* * * *
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#include <Project64-core/Settings/DebugSettings.h>
class CFlashram : class CFlashram :
private CDebugSettings private CDebugSettings
@ -26,18 +27,18 @@ public:
CFlashram(bool ReadOnly); CFlashram(bool ReadOnly);
~CFlashram(); ~CFlashram();
void DmaFromFlashram ( BYTE * dest, int StartOffset, int len ); void DmaFromFlashram ( uint8_t * dest, int StartOffset, int len );
void DmaToFlashram ( BYTE * Source, int StartOffset, int len ); void DmaToFlashram ( uint8_t * Source, int StartOffset, int len );
DWORD ReadFromFlashStatus ( DWORD PAddr ); uint32_t ReadFromFlashStatus ( uint32_t PAddr );
void WriteToFlashCommand ( DWORD Value ); void WriteToFlashCommand ( uint32_t Value );
private: private:
bool LoadFlashram(); bool LoadFlashram();
BYTE * m_FlashRamPointer; uint8_t * m_FlashRamPointer;
Modes m_FlashFlag; Modes m_FlashFlag;
QWORD m_FlashStatus; uint64_t m_FlashStatus;
DWORD m_FlashRAM_Offset; uint32_t m_FlashRAM_Offset;
bool m_ReadOnly; bool m_ReadOnly;
HANDLE m_hFile; void * m_hFile;
}; };

View File

@ -9,6 +9,13 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include "MemoryVirtualMem.h"
#include <Project64-core/N64System/SystemGlobals.h>
#include <Project64-core/N64System/N64RomClass.h>
#include <Project64-core/N64System/N64Class.h>
#include <Project64-core/N64System/Recompiler/x86CodeLog.h>
#include <Project64-core/N64System/Mips/OpcodeName.h>
#include <Windows.h>
uint32_t RegModValue; uint32_t RegModValue;

View File

@ -9,6 +9,14 @@
* * * *
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#include "MemoryClass.h"
#include "TranslateVaddr.h"
#include <Project64-core/N64System/Recompiler/RecompilerOps.h>
#include <Project64-core/N64System/Interpreter/InterpreterOps.h>
#include <Project64-core/N64System/Mips/PifRam.h>
#include <Project64-core/N64System/Mips/FlashRam.h>
#include <Project64-core/N64System/Mips/Sram.h>
#include <Project64-core/N64System/Mips/Dma.h>
/* /*
* 64-bit Windows exception recovery facilities will expect to interact with * 64-bit Windows exception recovery facilities will expect to interact with

View File

@ -13,9 +13,8 @@
class Mempak class Mempak
{ {
public: public:
static void Close(); static void Close();
static BYTE CalculateCrc(BYTE * DataToCrc); static uint8_t CalculateCrc(uint8_t * DataToCrc);
static void ReadFrom(int Control, BYTE * command); static void ReadFrom(int32_t Control, uint8_t * command);
static void WriteTo(int Control, BYTE * command); static void WriteTo(int32_t Control, uint8_t * command);
}; };

View File

@ -9,7 +9,11 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
static BYTE Mempaks[4][0x8000]; #include "Mempak.H"
#include <common/path.h>
#include <Windows.h>
static uint8_t Mempaks[4][0x8000];
HANDLE hMempakFile[4]; HANDLE hMempakFile[4];
void Mempak::Close() void Mempak::Close()
@ -46,7 +50,7 @@ void LoadMempak (int Control)
FileName.DirectoryCreate(); FileName.DirectoryCreate();
} }
BYTE Initialize[] = { uint8_t Initialize[] = {
0x81,0x01,0x02,0x03, 0x04,0x05,0x06,0x07, 0x08,0x09,0x0a,0x0b, 0x0C,0x0D,0x0E,0x0F, 0x81,0x01,0x02,0x03, 0x04,0x05,0x06,0x07, 0x08,0x09,0x0a,0x0b, 0x0C,0x0D,0x0E,0x0F,
0x10,0x11,0x12,0x13, 0x14,0x15,0x16,0x17, 0x18,0x19,0x1A,0x1B, 0x1C,0x1D,0x1E,0x1F, 0x10,0x11,0x12,0x13, 0x14,0x15,0x16,0x17, 0x18,0x19,0x1A,0x1B, 0x1C,0x1D,0x1E,0x1F,
0xFF,0xFF,0xFF,0xFF, 0x05,0x1A,0x5F,0x13, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0xFF,0xFF,0xFF,0xFF, 0x05,0x1A,0x5F,0x13, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
@ -94,13 +98,13 @@ void LoadMempak (int Control)
} }
} }
BYTE Mempak::CalculateCrc(BYTE * DataToCrc) uint8_t Mempak::CalculateCrc(uint8_t * DataToCrc)
{ {
DWORD Count; DWORD Count;
DWORD XorTap; DWORD XorTap;
int Length; int Length;
BYTE CRC = 0; uint8_t CRC = 0;
for (Count = 0; Count < 0x21; Count++) for (Count = 0; Count < 0x21; Count++)
{ {
@ -127,7 +131,7 @@ BYTE Mempak::CalculateCrc(BYTE * DataToCrc)
return CRC; return CRC;
} }
void Mempak::ReadFrom(int Control, BYTE * command) void Mempak::ReadFrom(int Control, uint8_t * command)
{ {
DWORD address = (command[3] << 8) | (command[4] & 0xE0); DWORD address = (command[3] << 8) | (command[4] & 0xE0);
@ -146,10 +150,10 @@ void Mempak::ReadFrom(int Control, BYTE * command)
} }
} }
void Mempak::WriteTo(int Control, BYTE * command) void Mempak::WriteTo(int Control, uint8_t * command)
{ {
DWORD dwWritten; DWORD dwWritten;
DWORD address = (command[3] << 8) | (command[4] & 0xE0); uint32_t address = (command[3] << 8) | (command[4] & 0xE0);
if (address < 0x8000) if (address < 0x8000)
{ {

View File

@ -9,34 +9,22 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include "OpCode.h"
#include "RegisterClass.h"
#define FPR_Type(Reg) (Reg) == R4300i_COP1_S ? "S" : (Reg) == R4300i_COP1_D ? "D" :\ #define FPR_Type(Reg) (Reg) == R4300i_COP1_S ? "S" : (Reg) == R4300i_COP1_D ? "D" :\
(Reg) == R4300i_COP1_W ? "W" : "L" (Reg) == R4300i_COP1_W ? "W" : "L"
BOOL InR4300iCommandsWindow = FALSE;
char CommandName[100]; char CommandName[100];
void SetR4300iCommandToStepping ( void ) char * LabelName (uint32_t Address)
{
}
void SetR4300iCommandViewto ( UINT /*NewLocation*/ )
{
}
void __cdecl Enter_R4300i_Commands_Window ( void )
{
}
char strLabelName[100];
char * LabelName (DWORD Address)
{ {
static char strLabelName[100];
sprintf(strLabelName,"0x%08X",Address); sprintf(strLabelName,"0x%08X",Address);
return strLabelName; return strLabelName;
} }
char * R4300iSpecialName ( DWORD OpCode, DWORD /*PC*/ ) char * R4300iSpecialName ( uint32_t OpCode, uint32_t /*PC*/ )
{ {
OPCODE command; OPCODE command;
command.Hex = OpCode; command.Hex = OpCode;
@ -239,7 +227,7 @@ char * R4300iSpecialName ( DWORD OpCode, DWORD /*PC*/ )
return CommandName; return CommandName;
} }
char * R4300iRegImmName ( DWORD OpCode, DWORD PC ) char * R4300iRegImmName ( uint32_t OpCode, uint32_t PC )
{ {
OPCODE command; OPCODE command;
command.Hex = OpCode; command.Hex = OpCode;
@ -308,7 +296,7 @@ char * R4300iRegImmName ( DWORD OpCode, DWORD PC )
return CommandName; return CommandName;
} }
char * R4300iCop1Name ( DWORD OpCode, DWORD PC ) char * R4300iCop1Name ( uint32_t OpCode, uint32_t PC )
{ {
OPCODE command; OPCODE command;
command.Hex = OpCode; command.Hex = OpCode;
@ -519,7 +507,7 @@ char * R4300iCop1Name ( DWORD OpCode, DWORD PC )
return CommandName; return CommandName;
} }
char * R4300iOpcodeName ( DWORD OpCode, DWORD PC ) const char * R4300iOpcodeName(uint32_t OpCode, uint32_t PC)
{ {
OPCODE command; OPCODE command;
command.Hex = OpCode; command.Hex = OpCode;

View File

@ -10,26 +10,4 @@
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#ifdef __cplusplus const char * R4300iOpcodeName(uint32_t OpCode, uint32_t PC);
extern "C" {
#endif
#ifdef _DEBUG
void Disable_R4300i_Commands_Window ( void );
void Enable_R4300i_Commands_Window ( void );
void __cdecl Enter_R4300i_Commands_Window ( void );
char * R4300iOpcodeName ( DWORD OpCode, DWORD PC );
void RefreshR4300iCommands ( void );
void SetR4300iCommandToRunning ( void );
void SetR4300iCommandToStepping ( void );
void SetR4300iCommandViewto ( UINT NewLocation );
void Update_r4300iCommandList (void);
extern BOOL InR4300iCommandsWindow;
#else
char * R4300iOpcodeName ( DWORD OpCode, DWORD PC );
#endif
#ifdef __cplusplus
}
#endif

View File

@ -9,7 +9,15 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include <Project64/UserInterface/LoggingUI.h> #include "PifRam.h"
#include <Project64-core/N64System/SystemGlobals.h>
#include <Project64-core/Plugins/ControllerPlugin.h>
#include <Project64-core/N64System/Mips/RegisterClass.h>
#include <Project64-core/N64System/Mips/MemoryClass.h>
#include <Project64-core/N64System/N64Class.h>
#include <Project64-core/N64System/Mips/Rumblepak.h>
#include <Project64-core/N64System/Mips/Mempak.H>
#include <Project64-core/Logging.h>
int CPifRamSettings::m_RefCount = 0; int CPifRamSettings::m_RefCount = 0;
bool CPifRamSettings::m_bShowPifRamErrors = false; bool CPifRamSettings::m_bShowPifRamErrors = false;
@ -166,19 +174,19 @@ void CPifRam::PifRamWrite()
Challenge[i * 2 + 1] = m_PifRam[48 + i] & 0x0f; Challenge[i * 2 + 1] = m_PifRam[48 + i] & 0x0f;
} }
n64_cic_nus_6105(Challenge, Response, CHALLENGE_LENGTH - 2); n64_cic_nus_6105(Challenge, Response, CHALLENGE_LENGTH - 2);
QWORD ResponseValue = 0; uint64_t ResponseValue = 0;
m_PifRam[46] = m_PifRam[47] = 0x00; m_PifRam[46] = m_PifRam[47] = 0x00;
for (int z = 8; z > 0; z--) for (int z = 8; z > 0; z--)
{ {
ResponseValue = (ResponseValue << 8) | ((Response[(z - 1) * 2] << 4) + Response[(z - 1) * 2 + 1]); ResponseValue = (ResponseValue << 8) | ((Response[(z - 1) * 2] << 4) + Response[(z - 1) * 2 + 1]);
} }
std::memcpy(&m_PifRam[48], &ResponseValue, sizeof(QWORD)); std::memcpy(&m_PifRam[48], &ResponseValue, sizeof(uint64_t));
ResponseValue = 0; ResponseValue = 0;
for (int z = 7; z > 0; z--) for (int z = 7; z > 0; z--)
{ {
ResponseValue = (ResponseValue << 8) | ((Response[((z + 8) - 1) * 2] << 4) + Response[((z + 8) - 1) * 2 + 1]); ResponseValue = (ResponseValue << 8) | ((Response[((z + 8) - 1) * 2] << 4) + Response[((z + 8) - 1) * 2 + 1]);
} }
std::memcpy(&m_PifRam[56], &ResponseValue, sizeof(QWORD)); std::memcpy(&m_PifRam[56], &ResponseValue, sizeof(uint64_t));
} }
break; break;
case 0x08: case 0x08:
@ -270,8 +278,8 @@ void CPifRam::PifRamWrite()
void CPifRam::SI_DMA_READ() void CPifRam::SI_DMA_READ()
{ {
BYTE * PifRamPos = m_PifRam; uint8_t * PifRamPos = m_PifRam;
BYTE * RDRAM = g_MMU->Rdram(); uint8_t * RDRAM = g_MMU->Rdram();
uint32_t & SI_DRAM_ADDR_REG = (uint32_t &)g_Reg->SI_DRAM_ADDR_REG; uint32_t & SI_DRAM_ADDR_REG = (uint32_t &)g_Reg->SI_DRAM_ADDR_REG;
if ((int32_t)SI_DRAM_ADDR_REG > (int32_t)g_System->RdramSize()) if ((int32_t)SI_DRAM_ADDR_REG > (int32_t)g_System->RdramSize())
@ -444,7 +452,7 @@ void CPifRam::SI_DMA_WRITE()
} }
} }
void CPifRam::ProcessControllerCommand(int Control, BYTE * Command) void CPifRam::ProcessControllerCommand(int Control, uint8_t * Command)
{ {
CONTROL * Controllers = g_Plugins->Control()->PluginControllers(); CONTROL * Controllers = g_Plugins->Control()->PluginControllers();
@ -467,7 +475,7 @@ void CPifRam::ProcessControllerCommand(int Control, BYTE * Command)
g_Notify->DisplayError(L"What am I meant to do with this Controller Command"); g_Notify->DisplayError(L"What am I meant to do with this Controller Command");
} }
} }
if (Controllers[Control].Present == TRUE) if (Controllers[Control].Present == true)
{ {
Command[3] = 0x05; Command[3] = 0x05;
Command[4] = 0x00; Command[4] = 0x00;
@ -498,7 +506,7 @@ void CPifRam::ProcessControllerCommand(int Control, BYTE * Command)
g_Notify->DisplayError(L"What am I meant to do with this Controller Command"); g_Notify->DisplayError(L"What am I meant to do with this Controller Command");
} }
} }
if (Controllers[Control].Present == FALSE) if (Controllers[Control].Present == false)
{ {
Command[1] |= 0x80; Command[1] |= 0x80;
} }
@ -519,7 +527,7 @@ void CPifRam::ProcessControllerCommand(int Control, BYTE * Command)
g_Notify->DisplayError(L"What am I meant to do with this Controller Command"); g_Notify->DisplayError(L"What am I meant to do with this Controller Command");
} }
} }
if (Controllers[Control].Present == TRUE) if (Controllers[Control].Present == true)
{ {
switch (Controllers[Control].Plugin) switch (Controllers[Control].Plugin)
{ {
@ -561,7 +569,7 @@ void CPifRam::ProcessControllerCommand(int Control, BYTE * Command)
g_Notify->DisplayError(L"What am I meant to do with this Controller Command"); g_Notify->DisplayError(L"What am I meant to do with this Controller Command");
} }
} }
if (Controllers[Control].Present == TRUE) if (Controllers[Control].Present == true)
{ {
switch (Controllers[Control].Plugin) switch (Controllers[Control].Plugin)
{ {
@ -593,13 +601,13 @@ void CPifRam::ProcessControllerCommand(int Control, BYTE * Command)
} }
} }
void CPifRam::ReadControllerCommand(int Control, BYTE * Command) { void CPifRam::ReadControllerCommand(int Control, uint8_t * Command) {
CONTROL * Controllers = g_Plugins->Control()->PluginControllers(); CONTROL * Controllers = g_Plugins->Control()->PluginControllers();
switch (Command[2]) switch (Command[2])
{ {
case 0x01: // read controller case 0x01: // read controller
if (Controllers[Control].Present == TRUE) if (Controllers[Control].Present == true)
{ {
if (bShowPifRamErrors()) if (bShowPifRamErrors())
{ {
@ -607,12 +615,12 @@ void CPifRam::ReadControllerCommand(int Control, BYTE * Command) {
if (Command[1] != 4) { g_Notify->DisplayError(L"What am I meant to do with this Controller Command"); } if (Command[1] != 4) { g_Notify->DisplayError(L"What am I meant to do with this Controller Command"); }
} }
const DWORD buttons = g_BaseSystem->GetButtons(Control); const uint32_t buttons = g_BaseSystem->GetButtons(Control);
std::memcpy(&Command[3], &buttons, sizeof(DWORD)); std::memcpy(&Command[3], &buttons, sizeof(uint32_t));
} }
break; break;
case 0x02: //read from controller pack case 0x02: //read from controller pack
if (Controllers[Control].Present == TRUE) if (Controllers[Control].Present == true)
{ {
switch (Controllers[Control].Plugin) switch (Controllers[Control].Plugin)
{ {
@ -621,7 +629,7 @@ void CPifRam::ReadControllerCommand(int Control, BYTE * Command) {
} }
break; break;
case 0x03: //write controller pak case 0x03: //write controller pak
if (Controllers[Control].Present == TRUE) if (Controllers[Control].Present == true)
{ {
switch (Controllers[Control].Plugin) switch (Controllers[Control].Plugin)
{ {
@ -634,7 +642,7 @@ void CPifRam::ReadControllerCommand(int Control, BYTE * Command) {
void CPifRam::LogControllerPakData(char * Description) void CPifRam::LogControllerPakData(char * Description)
{ {
BYTE * PIF_Ram = g_MMU->PifRam(); uint8_t * PIF_Ram = g_MMU->PifRam();
int count, count2; int count, count2;
char HexData[100], AsciiData[100], Addon[20]; char HexData[100], AsciiData[100], Addon[20];

View File

@ -10,7 +10,9 @@
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#include <Project64/Logging.h> #include <Project64-core/Logging.h>
#include "Eeprom.h"
class CPifRamSettings class CPifRamSettings
{ {
protected: protected:
@ -49,13 +51,13 @@ public:
void SI_DMA_WRITE(); void SI_DMA_WRITE();
protected: protected:
BYTE m_PifRom[0x7C0]; uint8_t m_PifRom[0x7C0];
BYTE m_PifRam[0x40]; uint8_t m_PifRam[0x40];
private: private:
#define CHALLENGE_LENGTH 0x20 #define CHALLENGE_LENGTH 0x20
void ProcessControllerCommand ( int Control, BYTE * Command ); void ProcessControllerCommand ( int Control, uint8_t * Command );
void ReadControllerCommand ( int Control, BYTE * Command ); void ReadControllerCommand ( int Control, uint8_t * Command );
void LogControllerPakData ( char * Description ); void LogControllerPakData ( char * Description );
void n64_cic_nus_6105 (char challenge[], char response[], int length); void n64_cic_nus_6105 (char challenge[], char response[], int length);
}; };

View File

@ -9,7 +9,10 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include <Project64/UserInterface/LoggingUI.h> #include "RegisterClass.h"
#include <Project64-core/N64System/N64Class.h>
#include <Project64-core/N64System/SystemGlobals.h>
#include <Project64-core/Logging.h>
const char * CRegName::GPR[32] = { "r0", "at", "v0", "v1", "a0", "a1", "a2", "a3", const char * CRegName::GPR[32] = { "r0", "at", "v0", "v1", "a0", "a1", "a2", "a3",
"t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7", "t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7",
@ -507,7 +510,7 @@ void CRegisters::DoTLBReadMiss(bool DelaySlot, uint32_t BadVaddr)
{ {
if (bHaveDebugger()) if (bHaveDebugger())
{ {
g_Notify->DisplayError(stdstr_f("TLBMiss - EXL Set\nBadVaddr = %X\nAddress Defined: %s", BadVaddr, g_TLB->AddressDefined(BadVaddr) ? "TRUE" : "FALSE").ToUTF16().c_str()); g_Notify->DisplayError(stdstr_f("TLBMiss - EXL Set\nBadVaddr = %X\nAddress Defined: %s", BadVaddr, g_TLB->AddressDefined(BadVaddr) ? "true" : "false").ToUTF16().c_str());
} }
m_PROGRAM_COUNTER = 0x80000180; m_PROGRAM_COUNTER = 0x80000180;
} }

View File

@ -10,8 +10,10 @@
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#include <Project64/Settings/GameSettings.h> #include <Project64-core/N64System/N64Types.h>
#include <Project64/Logging.h> #include <Project64-core/Settings/DebugSettings.h>
#include <Project64-core/Settings/GameSettings.h>
#include <Project64-core/Logging.h>
//CPO registers by name //CPO registers by name
class CP0registers class CP0registers

View File

@ -9,10 +9,14 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include "Rumblepak.h"
#include <Project64-core/N64System/SystemGlobals.h>
#include <Project64-core/Plugins/PluginClass.h>
#include <Project64-core/Plugins/ControllerPlugin.h>
void Rumblepak::ReadFrom(BYTE * command) void Rumblepak::ReadFrom(uint8_t * command)
{ {
DWORD address = (command[3] << 8) | (command[4] & 0xE0); uint32_t address = (command[3] << 8) | (command[4] & 0xE0);
if ((address >= 0x8000) && (address < 0x9000)) if ((address >= 0x8000) && (address < 0x9000))
{ {
@ -24,15 +28,15 @@ void Rumblepak::ReadFrom(BYTE * command)
} }
} }
void Rumblepak::WriteTo(int Control, BYTE * command) void Rumblepak::WriteTo(int Control, uint8_t * command)
{ {
DWORD address = (command[3] << 8) | (command[4] & 0xE0); uint32_t address = (command[3] << 8) | (command[4] & 0xE0);
if ((address) == 0xC000) if ((address) == 0xC000)
{ {
if (g_Plugins->Control()->RumbleCommand != NULL) if (g_Plugins->Control()->RumbleCommand != NULL)
{ {
g_Plugins->Control()->RumbleCommand(Control, *(BOOL *)(&command[5])); g_Plugins->Control()->RumbleCommand(Control, *(int *)(&command[5]));
} }
} }
} }

View File

@ -13,7 +13,6 @@
class Rumblepak class Rumblepak
{ {
public: public:
static void ReadFrom(BYTE * command); static void ReadFrom(uint8_t * command);
static void WriteTo(int Control, BYTE * command); static void WriteTo(int Control, uint8_t * command);
}; };

View File

@ -9,6 +9,9 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include "Sram.h"
#include <Common/path.h>
#include <Windows.h>
CSram::CSram ( bool ReadOnly ) : CSram::CSram ( bool ReadOnly ) :
m_ReadOnly(ReadOnly), m_ReadOnly(ReadOnly),
@ -50,11 +53,11 @@ bool CSram::LoadSram()
return true; return true;
} }
void CSram::DmaFromSram(BYTE * dest, int StartOffset, int len) void CSram::DmaFromSram(uint8_t * dest, int StartOffset, int len)
{ {
DWORD dwRead; DWORD dwRead;
DWORD i; uint32_t i;
BYTE tmp[4]; uint8_t tmp[4];
if (m_hFile == NULL) if (m_hFile == NULL)
{ {
@ -67,7 +70,7 @@ void CSram::DmaFromSram(BYTE * dest, int StartOffset, int len)
// Fix Dezaemon 3D saves // Fix Dezaemon 3D saves
StartOffset = ((StartOffset >> 3) & 0xFFFF8000) | (StartOffset & 0x7FFF); StartOffset = ((StartOffset >> 3) & 0xFFFF8000) | (StartOffset & 0x7FFF);
DWORD Offset = StartOffset & 3; uint32_t Offset = StartOffset & 3;
if (Offset == 0) if (Offset == 0)
{ {
@ -131,11 +134,11 @@ void CSram::DmaFromSram(BYTE * dest, int StartOffset, int len)
} }
} }
void CSram::DmaToSram(BYTE * Source, int StartOffset, int len) void CSram::DmaToSram(uint8_t * Source, int StartOffset, int len)
{ {
DWORD dwWritten; DWORD dwWritten;
DWORD i; uint32_t i;
BYTE tmp[4]; uint8_t tmp[4];
if (m_ReadOnly) if (m_ReadOnly)
{ {
@ -153,7 +156,7 @@ void CSram::DmaToSram(BYTE * Source, int StartOffset, int len)
// Fix Dezaemon 3D saves // Fix Dezaemon 3D saves
StartOffset = ((StartOffset >> 3) & 0xFFFF8000) | (StartOffset & 0x7FFF); StartOffset = ((StartOffset >> 3) & 0xFFFF8000) | (StartOffset & 0x7FFF);
DWORD Offset = StartOffset & 3; uint32_t Offset = StartOffset & 3;
if (Offset == 0) if (Offset == 0)
{ {

View File

@ -16,12 +16,12 @@ public:
CSram(bool ReadOnly); CSram(bool ReadOnly);
~CSram(); ~CSram();
void DmaFromSram(BYTE * dest, int StartOffset, int len); void DmaFromSram(uint8_t * dest, int StartOffset, int len);
void DmaToSram(BYTE * Source, int StartOffset, int len); void DmaToSram(uint8_t * Source, int StartOffset, int len);
private: private:
bool LoadSram(); bool LoadSram();
bool m_ReadOnly; bool m_ReadOnly;
HANDLE m_hFile; void * m_hFile;
}; };

View File

@ -1,3 +1,4 @@
SysEvent_ChangingFullScreen
/**************************************************************************** /****************************************************************************
* * * *
* Project64 - A Nintendo 64 emulator. * * Project64 - A Nintendo 64 emulator. *
@ -9,6 +10,9 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include "SystemEvents.h"
#include <Project64-core/N64System/SystemGlobals.h>
#include <Project64-core/N64System/N64Class.h>
CSystemEvents::CSystemEvents(CN64System * System, CPlugins * Plugins) : CSystemEvents::CSystemEvents(CN64System * System, CPlugins * Plugins) :
m_System(System), m_System(System),
@ -122,7 +126,7 @@ void CSystemEvents::ExecuteEvents()
ChangePluginFunc(); ChangePluginFunc();
break; break;
case SysEvent_ChangingFullScreen: case SysEvent_ChangingFullScreen:
Notify().ChangeFullScreen(); g_Notify->ChangeFullScreen();
break; break;
case SysEvent_GSButtonPressed: case SysEvent_GSButtonPressed:
if (m_System->HasCheatsSlectionChanged()) if (m_System->HasCheatsSlectionChanged())

View File

@ -10,6 +10,8 @@
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#include <common/CriticalSection.h>
enum SystemEvent enum SystemEvent
{ {
SysEvent_ExecuteInterrupt, SysEvent_ExecuteInterrupt,
@ -52,6 +54,9 @@ enum SystemEvent
SysEvent_Profile_GenerateLogs, SysEvent_Profile_GenerateLogs,
}; };
class CN64System;
class CPlugins;
class CSystemEvents class CSystemEvents
{ {
typedef std::vector<SystemEvent> EventList; typedef std::vector<SystemEvent> EventList;
@ -64,7 +69,7 @@ public:
void ExecuteEvents(); void ExecuteEvents();
void QueueEvent(SystemEvent action); void QueueEvent(SystemEvent action);
const BOOL & DoSomething() const const int32_t & DoSomething() const
{ {
return m_bDoSomething; return m_bDoSomething;
} }
@ -79,6 +84,6 @@ private:
CN64System * m_System; CN64System * m_System;
CPlugins * m_Plugins; CPlugins * m_Plugins;
EventList m_Events; EventList m_Events;
BOOL m_bDoSomething; int32_t m_bDoSomething;
CriticalSection m_CS; CriticalSection m_CS;
}; };

View File

@ -9,6 +9,11 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include "SystemTiming.h"
#include <Project64-core/N64System/SystemGlobals.h>
#include <Project64-core/N64System/Mips/RegisterClass.h>
#include <Project64-core/N64System/N64Class.h>
#include <Project64-core/3rdParty/zip.h>
CSystemTimer::CSystemTimer( int & NextTimer ) : CSystemTimer::CSystemTimer( int & NextTimer ) :
m_NextTimer(NextTimer), m_NextTimer(NextTimer),
@ -33,7 +38,7 @@ void CSystemTimer::Reset()
SetCompareTimer(); SetCompareTimer();
} }
void CSystemTimer::SetTimer ( TimerType Type, DWORD Cycles, bool bRelative ) void CSystemTimer::SetTimer ( TimerType Type, uint32_t Cycles, bool bRelative )
{ {
if (Type >= MaxTimer || Type == UnknownTimer) if (Type >= MaxTimer || Type == UnknownTimer)
{ {
@ -61,7 +66,7 @@ void CSystemTimer::SetTimer ( TimerType Type, DWORD Cycles, bool bRelative )
FixTimers(); FixTimers();
} }
DWORD CSystemTimer::GetTimer ( TimerType Type ) uint32_t CSystemTimer::GetTimer ( TimerType Type )
{ {
if (Type >= MaxTimer || Type == UnknownTimer) if (Type >= MaxTimer || Type == UnknownTimer)
{ {
@ -81,7 +86,7 @@ DWORD CSystemTimer::GetTimer ( TimerType Type )
{ {
return 0x7FFFFFFF; return 0x7FFFFFFF;
} }
return (DWORD)CyclesToTimer; return (uint32_t)CyclesToTimer;
} }
void CSystemTimer::StopTimer ( TimerType Type ) void CSystemTimer::StopTimer ( TimerType Type )
@ -172,7 +177,7 @@ void CSystemTimer::TimerDone()
{ {
UpdateTimers(); UpdateTimers();
/* DWORD LastTimer; /* uint32_t LastTimer;
if (Profiling) if (Profiling)
{ {
LastTimer = StartTimer(Timer_Done); LastTimer = StartTimer(Timer_Done);
@ -253,7 +258,7 @@ void CSystemTimer::TimerDone()
void CSystemTimer::SetCompareTimer() void CSystemTimer::SetCompareTimer()
{ {
DWORD NextCompare = 0x7FFFFFFF; uint32_t NextCompare = 0x7FFFFFFF;
if (g_Reg) if (g_Reg)
{ {
NextCompare = g_Reg->COMPARE_REGISTER - g_Reg->COUNT_REGISTER; NextCompare = g_Reg->COMPARE_REGISTER - g_Reg->COUNT_REGISTER;
@ -296,8 +301,8 @@ bool CSystemTimer::SaveAllowed ( void )
void CSystemTimer::SaveData ( void * file ) const void CSystemTimer::SaveData ( void * file ) const
{ {
DWORD TimerDetailsSize = sizeof(TIMER_DETAILS); uint32_t TimerDetailsSize = sizeof(TIMER_DETAILS);
DWORD Entries = sizeof(m_TimerDetatils)/sizeof(m_TimerDetatils[0]); uint32_t Entries = sizeof(m_TimerDetatils)/sizeof(m_TimerDetatils[0]);
zipWriteInFileInZip(file,&TimerDetailsSize,sizeof(TimerDetailsSize)); zipWriteInFileInZip(file,&TimerDetailsSize,sizeof(TimerDetailsSize));
zipWriteInFileInZip(file,&Entries,sizeof(Entries)); zipWriteInFileInZip(file,&Entries,sizeof(Entries));
zipWriteInFileInZip(file,(void *)&m_TimerDetatils,sizeof(m_TimerDetatils)); zipWriteInFileInZip(file,(void *)&m_TimerDetatils,sizeof(m_TimerDetatils));
@ -308,7 +313,7 @@ void CSystemTimer::SaveData ( void * file ) const
void CSystemTimer::LoadData ( void * file ) void CSystemTimer::LoadData ( void * file )
{ {
DWORD TimerDetailsSize, Entries; uint32_t TimerDetailsSize, Entries;
unzReadCurrentFile( file,&TimerDetailsSize,sizeof(TimerDetailsSize)); unzReadCurrentFile( file,&TimerDetailsSize,sizeof(TimerDetailsSize));
unzReadCurrentFile( file,&Entries,sizeof(Entries)); unzReadCurrentFile( file,&Entries,sizeof(Entries));
@ -357,7 +362,7 @@ void CSystemTimer::RecordDifference( CLog &LogFile, const CSystemTimer& rSystemT
} }
if (m_TimerDetatils[i].CyclesToTimer != rSystemTimer.m_TimerDetatils[i].CyclesToTimer) if (m_TimerDetatils[i].CyclesToTimer != rSystemTimer.m_TimerDetatils[i].CyclesToTimer)
{ {
LogFile.LogF("Timer-m_TimerDetatils[%d] 0x%08X, 0x%08X\r\n",i,(DWORD)m_TimerDetatils[i].CyclesToTimer,(DWORD)rSystemTimer.m_TimerDetatils[i].CyclesToTimer ); LogFile.LogF("Timer-m_TimerDetatils[%d] 0x%08X, 0x%08X\r\n",i,(uint32_t)m_TimerDetatils[i].CyclesToTimer,(uint32_t)rSystemTimer.m_TimerDetatils[i].CyclesToTimer );
} }
} }
} }

View File

@ -10,7 +10,8 @@
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#include "../N64Types.h" #include <Common/LogClass.h>
#include <Project64-core/N64System/N64Types.h>
class CSystemTimer class CSystemTimer
{ {
@ -39,8 +40,8 @@ public:
public: public:
CSystemTimer ( int & NextTimer ); CSystemTimer ( int & NextTimer );
void SetTimer ( TimerType Type, DWORD Cycles, bool bRelative ); void SetTimer(TimerType Type, uint32_t Cycles, bool bRelative);
DWORD GetTimer ( TimerType Type ); uint32_t GetTimer(TimerType Type);
void StopTimer ( TimerType Type ); void StopTimer ( TimerType Type );
void UpdateTimers (); void UpdateTimers ();
void TimerDone (); void TimerDone ();

View File

@ -10,6 +10,9 @@
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#include <Common/LogClass.h>
#include "RegisterClass.h"
class CDebugTlb; class CDebugTlb;
__interface CTLB_CB __interface CTLB_CB

View File

@ -9,6 +9,9 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include "TLBClass.h"
#include <Project64-core/N64System/SystemGlobals.h>
#include "RegisterClass.h"
CTLB::CTLB(CTLB_CB * CallBack ): CTLB::CTLB(CTLB_CB * CallBack ):
m_CB(CallBack) m_CB(CallBack)

View File

@ -9,7 +9,18 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include <common/Util.h> #include "N64class.h"
#include <Project64-core/3rdParty/zip.h>
#include <Project64-core/N64System/Recompiler/x86CodeLog.h>
#include <Project64-core/N64System/SystemGlobals.h>
#include <Project64-core/N64System/Mips/Mempak.H>
#include <Project64-core/N64System/Interpreter/InterpreterCPU.h>
#include <Project64-core/N64System/Mips/OpcodeName.h>
#include <Project64-core/ExceptionHandler.h>
#include <Project64-core/Logging.h>
#include <Project64-core/Debugger.h>
#include <Common/Util.h>
#include <float.h>
#pragma warning(disable:4355) // Disable 'this' : used in base member initializer list #pragma warning(disable:4355) // Disable 'this' : used in base member initializer list
@ -1381,7 +1392,7 @@ bool CN64System::SaveState()
CPath SavedFileName(FileName); CPath SavedFileName(FileName);
g_Notify->DisplayMessage(5, stdstr_f("%ws %s", SaveMessage.c_str(), SavedFileName.GetNameExtension().c_str()).ToUTF16().c_str()); g_Notify->DisplayMessage(5, stdstr_f("%ws %s", SaveMessage.c_str(), SavedFileName.GetNameExtension().c_str()).ToUTF16().c_str());
Notify().RefreshMenu(); //Notify().RefreshMenu();
WriteTrace(TraceDebug, __FUNCTION__ ": Done"); WriteTrace(TraceDebug, __FUNCTION__ ": Done");
return true; return true;
} }

View File

@ -11,7 +11,22 @@
#pragma once #pragma once
#include <Common/SyncEvent.h> #include <Common/SyncEvent.h>
#include <Project64/Logging.h> #include <Project64-core/Settings/N64SystemSettings.h>
#include <Project64-core/N64System/Recompiler/RecompilerClass.h>
#include <Project64-core/N64System/Mips/MemoryVirtualMem.h>
#include <Project64-core/Settings/DebugSettings.h>
#include <Project64-core/Plugin.h>
#include <Project64-core/Logging.h>
#include "Mips/SystemEvents.h"
#include "Mips/MemoryClass.h"
#include "Mips/TLBClass.h"
#include "Mips/Audio.h"
#include "Mips/SystemTiming.h"
#include "ProfilingClass.h"
#include "CheatClass.h"
#include "FramePerSecondClass.h"
#include "SpeedLimitorClass.h"
typedef std::list<SystemEvent> EVENT_LIST; typedef std::list<SystemEvent> EVENT_LIST;

View File

@ -9,6 +9,12 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include "N64RomClass.h"
#include "SystemGlobals.h"
#include <Project64-core/3rdParty/zip.h>
#include <Project64-core/3rdParty/7zip.h>
#include <Common/md5.h>
#include <Windows.h>
CN64Rom::CN64Rom() CN64Rom::CN64Rom()
{ {

View File

@ -10,7 +10,8 @@
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#include "N64Types.h" #include <Project64-core/N64System/N64Types.h>
#include <Project64-core/Settings/DebugSettings.h>
class CN64Rom : class CN64Rom :
protected CDebugSettings protected CDebugSettings

View File

@ -9,6 +9,8 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include "ProfilingClass.h"
#include <Common/LogClass.h>
enum { MAX_FRAMES = 13 }; enum { MAX_FRAMES = 13 };
@ -26,8 +28,9 @@ SPECIAL_TIMERS CProfiling::StartTimer(SPECIAL_TIMERS Address)
m_CurrentTimerAddr = Address; m_CurrentTimerAddr = Address;
#ifdef _M_IX86 #ifdef _M_IX86
DWORD HiValue, LoValue; uint32_t HiValue, LoValue;
_asm { _asm
{
pushad pushad
rdtsc rdtsc
mov HiValue, edx mov HiValue, edx
@ -43,7 +46,7 @@ SPECIAL_TIMERS CProfiling::StartTimer(SPECIAL_TIMERS Address)
} }
SPECIAL_TIMERS CProfiling::StopTimer() { SPECIAL_TIMERS CProfiling::StopTimer() {
DWORD HiValue, LoValue; uint32_t HiValue, LoValue;
if (m_CurrentTimerAddr == Timer_None) { return m_CurrentTimerAddr; } if (m_CurrentTimerAddr == Timer_None) { return m_CurrentTimerAddr; }
@ -182,6 +185,5 @@ void CProfiling::GenerateLog() {
} }
} }
ShellExecute(NULL,"open",LogFileName.c_str(),NULL,NULL,SW_SHOW);
ResetCounters(); ResetCounters();
} }

View File

@ -9,7 +9,7 @@
* * * *
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#include "N64Types.h" #include <Project64-core/N64System/N64Types.h>
typedef std::map<SPECIAL_TIMERS, __int64 > PROFILE_ENRTIES; typedef std::map<SPECIAL_TIMERS, __int64 > PROFILE_ENRTIES;
typedef PROFILE_ENRTIES::iterator PROFILE_ENRTY; typedef PROFILE_ENRTIES::iterator PROFILE_ENRTY;
@ -38,8 +38,7 @@ private:
CProfiling& operator=(const CProfiling&); // Disable assignment CProfiling& operator=(const CProfiling&); // Disable assignment
SPECIAL_TIMERS m_CurrentTimerAddr; SPECIAL_TIMERS m_CurrentTimerAddr;
DWORD m_CurrentDisplayCount; uint32_t m_CurrentDisplayCount;
DWORD m_StartTimeHi, m_StartTimeLo; //The Current Timer start time uint32_t m_StartTimeHi, m_StartTimeLo; //The Current Timer start time
PROFILE_ENRTIES m_Entries; PROFILE_ENRTIES m_Entries;
}; };

View File

@ -9,6 +9,12 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include "CodeBlock.h"
#include "x86CodeLog.h"
#include <Project64-core/N64System/SystemGlobals.h>
#include <Project64-core/N64System/Mips/TranslateVaddr.h>
#include <Project64-core/N64System/N64Class.h>
#include <Project64-core/N64System/Mips/OpcodeName.h>
bool DelaySlotEffectsCompare (uint32_t PC, uint32_t Reg1, uint32_t Reg2); bool DelaySlotEffectsCompare (uint32_t PC, uint32_t Reg1, uint32_t Reg2);

View File

@ -9,6 +9,10 @@
* * * *
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#include <common/md5.h>
#include "RecompilerOps.h"
#include "ExitInfo.h"
#include "CodeSection.h"
class CCodeBlock : class CCodeBlock :
private CRecompilerOps private CRecompilerOps

View File

@ -10,15 +10,16 @@
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include "CodeSection.h" #include "CodeSection.h"
#include <Project64/N64System/Mips/OpCode.h> #include <Project64-core/N64System/Mips/OpCode.h>
#include <Project64/N64System/SystemGlobals.h> #include <Project64-core/N64System/SystemGlobals.h>
#include <Project64/N64System/Mips/MemoryClass.h> #include <Project64-core/N64System/Mips/MemoryClass.h>
#include <Project64/N64System/Recompiler/x86CodeLog.h> #include <Project64-core/N64System/Recompiler/x86CodeLog.h>
#include <Project64/N64System/Recompiler/CodeBlock.h> #include <Project64-core/N64System/Recompiler/CodeBlock.h>
#include <Project64/N64System/N64Class.h> #include <Project64-core/N64System/N64Class.h>
#include <Project64/N64System/Interpreter/InterpreterCPU.h> #include <Project64-core/N64System/Interpreter/InterpreterCPU.h>
#include <Project64/N64System/Recompiler/LoopAnalysis.h> #include <Project64-core/N64System/Recompiler/LoopAnalysis.h>
#include <Project64/N64System/Recompiler/SectionInfo.h> #include <Project64-core/N64System/Recompiler/SectionInfo.h>
#include <Windows.h>
void InPermLoop(); void InPermLoop();

View File

@ -9,6 +9,8 @@
* * * *
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#include "JumpInfo.h"
#include <Project64-core/N64System/Recompiler/RecompilerOps.h>
class CCodeBlock; class CCodeBlock;

View File

@ -10,6 +10,8 @@
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#include <Project64-core/N64System/Recompiler/RegInfo.h>
struct CExitInfo struct CExitInfo
{ {
enum EXIT_REASON enum EXIT_REASON

View File

@ -9,6 +9,7 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include "FunctionInfo.h"
CCompiledFunc::CCompiledFunc( const CCodeBlock & CodeBlock ) : CCompiledFunc::CCompiledFunc( const CCodeBlock & CodeBlock ) :
m_EnterPC(CodeBlock.VAddrEnter()), m_EnterPC(CodeBlock.VAddrEnter()),

View File

@ -9,6 +9,7 @@
* * * *
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#include "CodeBlock.h"
class CCompiledFunc class CCompiledFunc
{ {

View File

@ -9,6 +9,10 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include "FunctionMapClass.h"
#include <Project64-core/N64System/SystemGlobals.h>
#include <Project64-core/N64System/N64Class.h>
#include <Windows.h>
CFunctionMap::CFunctionMap() : CFunctionMap::CFunctionMap() :
m_JumpTable(NULL), m_JumpTable(NULL),

View File

@ -9,6 +9,7 @@
* * * *
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#include "FunctionInfo.h"
class CFunctionMap class CFunctionMap
{ {

View File

@ -9,6 +9,7 @@
* * * *
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#include "ExitInfo.h"
struct CJumpInfo struct CJumpInfo
{ {

View File

@ -9,6 +9,13 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include "LoopAnalysis.h"
#include <Project64-core/N64System/N64Types.h>
#include <Project64-core/N64System/Recompiler/CodeBlock.h>
#include <Project64-core/N64System/Recompiler/x86CodeLog.h>
#include <Project64-core/N64System/SystemGlobals.h>
#include <Project64-core/N64System/Mips/MemoryClass.h>
#include <Project64-core/N64System/Mips/OpcodeName.h>
#ifdef _DEBUG #ifdef _DEBUG
#define CHECKED_BUILD 1 #define CHECKED_BUILD 1

View File

@ -10,6 +10,9 @@
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#include <Project64-core/N64System/Recompiler/RegInfo.h>
#include <Project64-core/N64System/Mips/OpCode.h>
class CCodeSection; class CCodeSection;
class CCodeBlock; class CCodeBlock;

View File

@ -9,6 +9,12 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include "RecompilerClass.h"
#include <Project64-core/N64System/SystemGlobals.h>
#include <Project64-core/N64System/Recompiler/x86CodeLog.h>
#include <Project64-core/N64System/N64Class.h>
#include <Project64-core/N64System/Interpreter/InterpreterCPU.h>
#include <Objbase.h>
CRecompiler::CRecompiler(CRegisters & Registers, CProfiling & Profile, bool & EndEmulation) : CRecompiler::CRecompiler(CRegisters & Registers, CProfiling & Profile, bool & EndEmulation) :
m_Registers(Registers), m_Registers(Registers),

View File

@ -9,6 +9,10 @@
* * * *
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#include <Project64-core/Settings/RecompilerSettings.h>
#include <Project64-core/N64System/Recompiler/FunctionMapClass.h>
#include <Project64-core/N64System/ProfilingClass.h>
#include "RecompilerMemory.h"
class CRecompiler : class CRecompiler :
protected CDebugSettings, protected CDebugSettings,

View File

@ -9,6 +9,10 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include "RecompilerMemory.h"
#include <Project64-core/N64System/SystemGlobals.h>
#include <Project64-core/N64System/Recompiler/RecompilerClass.h>
#include <Windows.h>
CRecompMemory::CRecompMemory() : CRecompMemory::CRecompMemory() :
m_RecompCode(NULL), m_RecompCode(NULL),
@ -29,7 +33,7 @@ CRecompMemory::~CRecompMemory()
bool CRecompMemory::AllocateMemory() bool CRecompMemory::AllocateMemory()
{ {
BYTE * RecompCodeBase = (BYTE *)VirtualAlloc(NULL, MaxCompileBufferSize + 4, MEM_RESERVE | MEM_TOP_DOWN, PAGE_EXECUTE_READWRITE); uint8_t * RecompCodeBase = (uint8_t *)VirtualAlloc(NULL, MaxCompileBufferSize + 4, MEM_RESERVE | MEM_TOP_DOWN, PAGE_EXECUTE_READWRITE);
if (RecompCodeBase == NULL) if (RecompCodeBase == NULL)
{ {
WriteTrace(TraceError, __FUNCTION__ ": failed to allocate RecompCodeBase"); WriteTrace(TraceError, __FUNCTION__ ": failed to allocate RecompCodeBase");
@ -37,7 +41,7 @@ bool CRecompMemory::AllocateMemory()
return false; return false;
} }
m_RecompCode = (BYTE *)VirtualAlloc(RecompCodeBase, InitialCompileBufferSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE); m_RecompCode = (uint8_t *)VirtualAlloc(RecompCodeBase, InitialCompileBufferSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
if (m_RecompCode == NULL) if (m_RecompCode == NULL)
{ {
WriteTrace(TraceError, __FUNCTION__ ": failed to commit initial buffer"); WriteTrace(TraceError, __FUNCTION__ ": failed to commit initial buffer");
@ -53,7 +57,7 @@ bool CRecompMemory::AllocateMemory()
void CRecompMemory::CheckRecompMem() void CRecompMemory::CheckRecompMem()
{ {
DWORD Size = (DWORD)((BYTE *)m_RecompPos - (BYTE *)m_RecompCode); uint32_t Size = (uint32_t)((uint8_t *)m_RecompPos - (uint8_t *)m_RecompCode);
if ((Size + 0x20000) < m_RecompSize) if ((Size + 0x20000) < m_RecompSize)
{ {
return; return;
@ -79,13 +83,13 @@ void CRecompMemory::Reset()
void CRecompMemory::ShowMemUsed() void CRecompMemory::ShowMemUsed()
{ {
DWORD Size = m_RecompPos - m_RecompCode; uint32_t Size = m_RecompPos - m_RecompCode;
DWORD MB = Size / 0x100000; uint32_t MB = Size / 0x100000;
Size -= MB * 0x100000; Size -= MB * 0x100000;
DWORD KB = Size / 1024; uint32_t KB = Size / 1024;
Size -= KB * 1024; Size -= KB * 1024;
DWORD TotalAvaliable = m_RecompSize / 0x100000; uint32_t TotalAvaliable = m_RecompSize / 0x100000;
g_Notify->DisplayMessage(0, stdstr_f("Memory used: %d mb %-3d kb %-3d bytes Total Available: %d mb", MB, KB, Size, TotalAvaliable).ToUTF16().c_str()); g_Notify->DisplayMessage(0, stdstr_f("Memory used: %d mb %-3d kb %-3d bytes Total Available: %d mb", MB, KB, Size, TotalAvaliable).ToUTF16().c_str());
} }

View File

@ -9,6 +9,7 @@
* * * *
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#include "X86ops.h"
class CRecompMemory : class CRecompMemory :
protected CX86Ops protected CX86Ops

View File

@ -9,6 +9,16 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include <Project64-core/N64System/SystemGlobals.h>
#include <Project64-core/N64System/Mips/OpcodeName.h>
#include <Project64-core/N64System/Mips/MemoryClass.h>
#include <Project64-core/N64System/Interpreter/InterpreterOps.h>
#include <Project64-core/N64System/Interpreter/InterpreterCPU.h>
#include <Project64-core/N64System/N64Class.h>
#include "RecompilerClass.h"
#include "RecompilerOps.h"
#include "CodeSection.h"
#include "x86CodeLog.h"
CCodeSection * CRecompilerOps::m_Section = NULL; CCodeSection * CRecompilerOps::m_Section = NULL;
CRegInfo CRecompilerOps::m_RegWorkingSet; CRegInfo CRecompilerOps::m_RegWorkingSet;
@ -5491,7 +5501,7 @@ void CRecompilerOps::COP0_CO_TLBWI(void)
CPU_Message(" %X %s", m_CompilePC, R4300iOpcodeName(m_Opcode.Hex, m_CompilePC)); CPU_Message(" %X %s", m_CompilePC, R4300iOpcodeName(m_Opcode.Hex, m_CompilePC));
if (!g_System->bUseTlb()) { return; } if (!g_System->bUseTlb()) { return; }
BeforeCallDirect(m_RegWorkingSet); BeforeCallDirect(m_RegWorkingSet);
PushImm32("FALSE", 0); PushImm32("false", 0);
MoveVariableToX86reg(&g_Reg->INDEX_REGISTER, "INDEX_REGISTER", x86_ECX); MoveVariableToX86reg(&g_Reg->INDEX_REGISTER, "INDEX_REGISTER", x86_ECX);
AndConstToX86Reg(x86_ECX, 0x1F); AndConstToX86Reg(x86_ECX, 0x1F);
Push(x86_ECX); Push(x86_ECX);

View File

@ -10,8 +10,13 @@
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#include <Project64/Settings/N64SystemSettings.h> #include <Project64-core/N64System/Mips/RegisterClass.h>
#include <Project64/Settings/RecompilerSettings.h> #include <Project64-core/N64System/Mips/OpCode.h>
#include <Project64-core/N64System/Recompiler/RegInfo.h>
#include <Project64-core/Settings/DebugSettings.h>
#include <Project64-core/Settings/N64SystemSettings.h>
#include <Project64-core/Settings/RecompilerSettings.h>
#include "X86ops.h"
class CCodeSection; class CCodeSection;

View File

@ -9,6 +9,11 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include <Project64-core/N64System/SystemGlobals.h>
#include <Project64-core/N64System/N64Class.h>
#include "RegInfo.h"
#include "RecompilerClass.h"
#include "x86CodeLog.h"
uint32_t CRegInfo::m_fpuControl = 0; uint32_t CRegInfo::m_fpuControl = 0;
@ -1137,7 +1142,7 @@ void CRegInfo::UnMap_GPR(uint32_t Reg, bool WriteBackValue)
} }
if (IsUnknown(Reg)) { return; } if (IsUnknown(Reg)) { return; }
//CPU_Message("UnMap_GPR: State: %X\tReg: %s\tWriteBack: %s",State,CRegName::GPR[Reg],WriteBackValue?"TRUE":"FALSE"); //CPU_Message("UnMap_GPR: State: %X\tReg: %s\tWriteBack: %s",State,CRegName::GPR[Reg],WriteBackValue?"true":"false");
if (IsConst(Reg)) if (IsConst(Reg))
{ {
if (!WriteBackValue) if (!WriteBackValue)

View File

@ -9,6 +9,9 @@
* * * *
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#include <Project64-core/Settings/DebugSettings.h>
#include <Project64-core/N64System/Mips/RegisterClass.h>
#include "X86ops.h"
class CRegInfo : class CRegInfo :
private CDebugSettings, private CDebugSettings,

View File

@ -9,6 +9,8 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include "SectionInfo.h"
#include "JumpInfo.h"
CJumpInfo::CJumpInfo() CJumpInfo::CJumpInfo()
{ {

View File

@ -9,6 +9,10 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include <Project64-core/N64System/SystemGlobals.h>
#include <Project64-core/N64System/Mips/MemoryClass.h>
#include "X86ops.h"
#include "x86CodeLog.h"
#define PUTDST8(dest,value) (*((uint8_t *)(dest))=(uint8_t)(value)); dest += 1; #define PUTDST8(dest,value) (*((uint8_t *)(dest))=(uint8_t)(value)); dest += 1;
#define PUTDST16(dest,value) (*((uint16_t *)(dest))=(uint16_t)(value)); dest += 2; #define PUTDST16(dest,value) (*((uint16_t *)(dest))=(uint16_t)(value)); dest += 2;

View File

@ -9,6 +9,9 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include "x86CodeLog.h"
#include <Common/path.h>
#include <Windows.h>
static HANDLE hCPULogFile = NULL; static HANDLE hCPULogFile = NULL;
bool bX86Logging = false; bool bX86Logging = false;

View File

@ -9,6 +9,7 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include "SystemGlobals.h"
CN64System * g_System = NULL; CN64System * g_System = NULL;
CN64System * g_BaseSystem = NULL; CN64System * g_BaseSystem = NULL;

View File

@ -10,21 +10,42 @@
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
extern CNotification * g_Notify; class CSettings;
extern CSettings * g_Settings; extern CSettings * g_Settings;
class CN64System;
extern CN64System * g_System; extern CN64System * g_System;
extern CN64System * g_BaseSystem; extern CN64System * g_BaseSystem;
extern CN64System * g_SyncSystem; extern CN64System * g_SyncSystem;
class CRecompiler;
extern CRecompiler * g_Recompiler; extern CRecompiler * g_Recompiler;
extern CMipsMemory * g_MMU; //Memory of the n64
__interface CMipsMemory;
extern CMipsMemory * g_MMU; //Memory of the n64
class CTLB;
extern CTLB * g_TLB; //TLB Unit extern CTLB * g_TLB; //TLB Unit
class CRegisters;
extern CRegisters * g_Reg; //Current Register Set attached to the g_MMU extern CRegisters * g_Reg; //Current Register Set attached to the g_MMU
class CPlugins;
extern CPlugins * g_Plugins; extern CPlugins * g_Plugins;
class CN64Rom;
extern CN64Rom * g_Rom; //The current rom that this system is executing.. it can only execute one file at the time extern CN64Rom * g_Rom; //The current rom that this system is executing.. it can only execute one file at the time
class CAudio;
extern CAudio * g_Audio; extern CAudio * g_Audio;
class CSystemTimer;
extern CSystemTimer * g_SystemTimer; extern CSystemTimer * g_SystemTimer;
__interface CTransVaddr;
extern CTransVaddr * g_TransVaddr; extern CTransVaddr * g_TransVaddr;
class CSystemEvents;
extern CSystemEvents * g_SystemEvents; extern CSystemEvents * g_SystemEvents;
extern int32_t * g_NextTimer; extern int32_t * g_NextTimer;

View File

@ -0,0 +1 @@
#include "../stdafx.h"

View File

@ -0,0 +1,34 @@
#pragma once
#include "Multilanguage.h"
#ifndef _MSC_VER
#define __interface struct
#endif
__interface CNotification
{
public:
//Error Messages
virtual void DisplayError(const wchar_t * Message) const = 0;
virtual void DisplayError(LanguageStringID StringID) const = 0;
virtual void FatalError(const wchar_t * Message) const = 0;
virtual void FatalError(LanguageStringID StringID) const = 0;
//User Feedback
virtual void DisplayMessage(int DisplayTime, const wchar_t * Message) const = 0;
virtual void DisplayMessage(int DisplayTime, LanguageStringID StringID) const = 0;
virtual void DisplayMessage2(const wchar_t * Message) const = 0;
// Ask a Yes/No Question to the user, yes = true, no = false
virtual bool AskYesNoQuestion(const wchar_t * Question) const = 0;
virtual void BreakPoint(const wchar_t * FileName, int LineNumber) = 0;
virtual void AppInitDone(void) = 0;
virtual bool ProcessGuiMessages(void) const = 0;
virtual void ChangeFullScreen(void) const = 0;
};
extern CNotification * g_Notify;

View File

@ -10,8 +10,6 @@
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
#include "Support.h"
//Plugin controller //Plugin controller
#include "Plugins/PluginClass.h" #include "Plugins/PluginClass.h"
@ -22,4 +20,3 @@
#include "Plugins/AudioPlugin.h" #include "Plugins/AudioPlugin.h"
#include "Plugins/ControllerPlugin.h" #include "Plugins/ControllerPlugin.h"
#include "Plugins/RSPPlugin.h" #include "Plugins/RSPPlugin.h"
#include "Plugins/PluginList.h"

View File

@ -9,6 +9,13 @@
* * * *
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
#include <Project64-core/N64System/SystemGlobals.h>
#include <Project64-core/N64System/N64RomClass.h>
#include <Project64-core/N64System/Mips/MemoryClass.h>
#include <Project64-core/N64System/Mips/RegisterClass.h>
#include <Project64-core/N64System/N64Class.h>
#include "AudioPlugin.h"
#include <Windows.h>
CAudioPlugin::CAudioPlugin() : CAudioPlugin::CAudioPlugin() :
AiLenChanged(NULL), AiLenChanged(NULL),

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