RSP: Start to split out RSP in to core and UI for plugin
This commit is contained in:
parent
bb5a16aaa2
commit
25e48405c5
|
@ -97,5 +97,5 @@ Thumbs.db
|
|||
/Source/Project64-core/Version.h
|
||||
/Source/Project64-input/Version.h
|
||||
/Source/Project64-video/Version.h
|
||||
/Source/Project64-rsp/Version.h
|
||||
/Source/Project64-rsp-core/Version.h
|
||||
/Android/app/src/main/assets/assets.zip
|
||||
|
|
|
@ -74,6 +74,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "asmjit", "Source\3rdParty\a
|
|||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Project64-rsp", "Source\Project64-rsp\Project64-rsp.vcxproj", "{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Project64-rsp-core", "Source\Project64-rsp-core\Project64-rsp-core.vcxproj", "{7598F6B8-9DA6-4897-B26F-F6865F824BF4}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
|
@ -256,6 +258,14 @@ Global
|
|||
{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}.Release|Win32.Build.0 = Release|Win32
|
||||
{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}.Release|x64.ActiveCfg = Release|x64
|
||||
{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}.Release|x64.Build.0 = Release|x64
|
||||
{7598F6B8-9DA6-4897-B26F-F6865F824BF4}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{7598F6B8-9DA6-4897-B26F-F6865F824BF4}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{7598F6B8-9DA6-4897-B26F-F6865F824BF4}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{7598F6B8-9DA6-4897-B26F-F6865F824BF4}.Debug|x64.Build.0 = Debug|x64
|
||||
{7598F6B8-9DA6-4897-B26F-F6865F824BF4}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{7598F6B8-9DA6-4897-B26F-F6865F824BF4}.Release|Win32.Build.0 = Release|Win32
|
||||
{7598F6B8-9DA6-4897-B26F-F6865F824BF4}.Release|x64.ActiveCfg = Release|x64
|
||||
{7598F6B8-9DA6-4897-B26F-F6865F824BF4}.Release|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{7598F6B8-9DA6-4897-B26F-F6865F824BF4}</ProjectGuid>
|
||||
<RootNamespace>Project64rspcore</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<ImportGroup Label="PropertySheets">
|
||||
<Import Project="$(SolutionDir)PropertySheets\Platform.$(Configuration).props" />
|
||||
</ImportGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ItemDefinitionGroup>
|
||||
<PreBuildEvent>
|
||||
<Command>"$(SolutionDir)Source\Script\UpdateVersion.cmd" "$(Configuration)" "$(Platform)" "$(SolutionDir)Source\Project64-rsp-core\Version.h.in" "$(SolutionDir)Source\Project64-rsp-core\Version.h"</Command>
|
||||
</PreBuildEvent>
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="cpu\RSPiInstruction.cpp" />
|
||||
<ClCompile Include="cpu\RSPRegister.cpp" />
|
||||
<ClCompile Include="cpu\RspTypes.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="cpu\RSPInstruction.h" />
|
||||
<ClInclude Include="cpu\RSPOpcode.h" />
|
||||
<ClInclude Include="cpu\RSPRegisters.h" />
|
||||
<ClInclude Include="cpu\RspTypes.h" />
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -0,0 +1,48 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\cpu">
|
||||
<UniqueIdentifier>{855e110e-ef40-4dab-9b2b-e250f9a6e12e}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Header Files\cpu">
|
||||
<UniqueIdentifier>{68f5d9a3-7e1b-4209-95c4-7daf0d469394}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="cpu\RSPiInstruction.cpp">
|
||||
<Filter>Source Files\cpu</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="cpu\RspTypes.cpp">
|
||||
<Filter>Source Files\cpu</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="cpu\RSPRegister.cpp">
|
||||
<Filter>Source Files\cpu</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="cpu\RSPInstruction.h">
|
||||
<Filter>Header Files\cpu</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="cpu\RSPOpcode.h">
|
||||
<Filter>Header Files\cpu</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="cpu\RspTypes.h">
|
||||
<Filter>Header Files\cpu</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="cpu\RSPRegisters.h">
|
||||
<Filter>Header Files\cpu</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,7 +1,7 @@
|
|||
#pragma once
|
||||
#include <string>
|
||||
#include <stdint.h>
|
||||
#include "RSPOpcode.h"
|
||||
#include <stdint.h>
|
||||
#include <string>
|
||||
|
||||
class RSPInstruction
|
||||
{
|
|
@ -52,7 +52,7 @@ union RSPOpcode
|
|||
|
||||
struct
|
||||
{
|
||||
unsigned : 6;
|
||||
unsigned : 6;
|
||||
unsigned vd : 5;
|
||||
unsigned vs : 5;
|
||||
unsigned vt : 5;
|
|
@ -0,0 +1,41 @@
|
|||
#include "cpu/RspTypes.h"
|
||||
|
||||
// RSP registers
|
||||
UWORD32 RSP_GPR[32], RSP_Flags[4];
|
||||
UDWORD RSP_ACCUM[8];
|
||||
RSPVector RSP_Vect[32];
|
||||
|
||||
char * GPR_Strings[32] = {
|
||||
"R0",
|
||||
"AT",
|
||||
"V0",
|
||||
"V1",
|
||||
"A0",
|
||||
"A1",
|
||||
"A2",
|
||||
"A3",
|
||||
"T0",
|
||||
"T1",
|
||||
"T2",
|
||||
"T3",
|
||||
"T4",
|
||||
"T5",
|
||||
"T6",
|
||||
"T7",
|
||||
"S0",
|
||||
"S1",
|
||||
"S2",
|
||||
"S3",
|
||||
"S4",
|
||||
"S5",
|
||||
"S6",
|
||||
"S7",
|
||||
"T8",
|
||||
"T9",
|
||||
"K0",
|
||||
"K1",
|
||||
"GP",
|
||||
"SP",
|
||||
"S8",
|
||||
"RA",
|
||||
};
|
|
@ -1,8 +1,8 @@
|
|||
#include "cpu/RspTypes.h"
|
||||
#include "RspTypes.h"
|
||||
|
||||
enum
|
||||
{
|
||||
SP_STATUS_HALT = 0x001, // Bit 0: Halt
|
||||
SP_STATUS_HALT = 0x001, // Bit 0: Halt
|
||||
SP_STATUS_BROKE = 0x002, // Bit 1: Broke
|
||||
SP_STATUS_DMA_BUSY = 0x004, // Bit 2: DMA busy
|
||||
SP_STATUS_DMA_FULL = 0x008, // Bit 3: DMA full
|
|
@ -1,5 +1,5 @@
|
|||
#include "RSPInstruction.h"
|
||||
#include "../RSP Registers.h"
|
||||
#include "RSPRegisters.h"
|
||||
#include <Common/StdString.h>
|
||||
|
||||
RSPInstruction::RSPInstruction(uint32_t Address, uint32_t Instruction) :
|
||||
|
@ -199,7 +199,7 @@ void RSPInstruction::DecodeSpecialName(void)
|
|||
break;
|
||||
case RSP_SPECIAL_SLLV:
|
||||
strcpy(m_Name, "SLLV");
|
||||
sprintf(m_Param, "%s, %s, %s", GPR_Name(m_Instruction.rd),GPR_Name(m_Instruction.rt), GPR_Name(m_Instruction.rs));
|
||||
sprintf(m_Param, "%s, %s, %s", GPR_Name(m_Instruction.rd), GPR_Name(m_Instruction.rt), GPR_Name(m_Instruction.rs));
|
||||
break;
|
||||
case RSP_SPECIAL_SRLV:
|
||||
strcpy(m_Name, "SRLV");
|
|
@ -11,38 +11,38 @@ RSPVector::RSPVector()
|
|||
uint16_t & RSPVector::ue(uint8_t Index, uint8_t Element)
|
||||
{
|
||||
Index = EleSpec[Element].B[Index];
|
||||
return ((uint16_t*)&m_Reg)[7 - Index];
|
||||
return ((uint16_t *)&m_Reg)[7 - Index];
|
||||
}
|
||||
|
||||
int16_t & RSPVector::se(uint8_t Index, uint8_t Element)
|
||||
{
|
||||
Index = EleSpec[Element].B[Index];
|
||||
return ((int16_t*)&m_Reg)[7 - Index];
|
||||
return ((int16_t *)&m_Reg)[7 - Index];
|
||||
}
|
||||
|
||||
int8_t & RSPVector::s8(uint8_t Index)
|
||||
{
|
||||
return ((int8_t*)&m_Reg)[15 - Index];
|
||||
return ((int8_t *)&m_Reg)[15 - Index];
|
||||
}
|
||||
|
||||
uint8_t & RSPVector::u8(uint8_t Index)
|
||||
{
|
||||
return ((uint8_t*)&m_Reg)[15 - Index];
|
||||
return ((uint8_t *)&m_Reg)[15 - Index];
|
||||
}
|
||||
|
||||
int16_t & RSPVector::s16(uint8_t Index)
|
||||
{
|
||||
return ((int16_t*)&m_Reg)[7 - Index];
|
||||
return ((int16_t *)&m_Reg)[7 - Index];
|
||||
}
|
||||
|
||||
uint16_t & RSPVector::u16(uint8_t Index)
|
||||
{
|
||||
return ((uint16_t*)&m_Reg)[7 - Index];
|
||||
return ((uint16_t *)&m_Reg)[7 - Index];
|
||||
}
|
||||
|
||||
int32_t & RSPVector::s32(uint8_t Index)
|
||||
{
|
||||
return ((int32_t*)&m_Reg)[3 - Index];
|
||||
return ((int32_t *)&m_Reg)[3 - Index];
|
||||
}
|
||||
|
||||
uint64_t & RSPVector::u64(uint8_t Index)
|
|
@ -1,15 +1,15 @@
|
|||
#include "Cpu.h"
|
||||
#include "cpu/RSPOpcode.h"
|
||||
#include "Profiling.h"
|
||||
#include "RSP Command.h"
|
||||
#include "RSP registers.h"
|
||||
#include "Recompiler CPU.h"
|
||||
#include "Rsp.h"
|
||||
#include "cpu/RspTypes.h"
|
||||
#include "breakpoint.h"
|
||||
#include "log.h"
|
||||
#include "memory.h"
|
||||
#include "x86.h"
|
||||
#include <Project64-rsp-core/cpu/RSPOpcode.h>
|
||||
#include <Project64-rsp-core/cpu/RSPRegisters.h>
|
||||
#include <Project64-rsp-core/cpu/RspTypes.h>
|
||||
#include <float.h>
|
||||
#include <stdio.h>
|
||||
#include <windows.h>
|
||||
|
@ -61,16 +61,16 @@ void Build_RSP(void)
|
|||
SetCPU(CPUCore);
|
||||
ResetTimerList();
|
||||
|
||||
EleSpec[0].DW = 0x0706050403020100; // None
|
||||
EleSpec[1].DW = 0x0706050403020100; // None
|
||||
EleSpec[2].DW = 0x0606040402020000; // 0q
|
||||
EleSpec[3].DW = 0x0707050503030101; // 1q
|
||||
EleSpec[4].DW = 0x0404040400000000; // 0h
|
||||
EleSpec[5].DW = 0x0505050501010101; // 1h
|
||||
EleSpec[6].DW = 0x0606060602020202; // 2h
|
||||
EleSpec[7].DW = 0x0707070703030303; // 3h
|
||||
EleSpec[8].DW = 0x0000000000000000; // 0
|
||||
EleSpec[9].DW = 0x0101010101010101; // 1
|
||||
EleSpec[0].DW = 0x0706050403020100; // None
|
||||
EleSpec[1].DW = 0x0706050403020100; // None
|
||||
EleSpec[2].DW = 0x0606040402020000; // 0q
|
||||
EleSpec[3].DW = 0x0707050503030101; // 1q
|
||||
EleSpec[4].DW = 0x0404040400000000; // 0h
|
||||
EleSpec[5].DW = 0x0505050501010101; // 1h
|
||||
EleSpec[6].DW = 0x0606060602020202; // 2h
|
||||
EleSpec[7].DW = 0x0707070703030303; // 3h
|
||||
EleSpec[8].DW = 0x0000000000000000; // 0
|
||||
EleSpec[9].DW = 0x0101010101010101; // 1
|
||||
EleSpec[10].DW = 0x0202020202020202; // 2
|
||||
EleSpec[11].DW = 0x0303030303030303; // 3
|
||||
EleSpec[12].DW = 0x0404040404040404; // 4
|
||||
|
@ -78,16 +78,16 @@ void Build_RSP(void)
|
|||
EleSpec[14].DW = 0x0606060606060606; // 6
|
||||
EleSpec[15].DW = 0x0707070707070707; // 7
|
||||
|
||||
Indx[0].DW = 0x0001020304050607; // None
|
||||
Indx[1].DW = 0x0001020304050607; // None
|
||||
Indx[2].DW = 0x0103050700020406; // 0q
|
||||
Indx[3].DW = 0x0002040601030507; // 1q
|
||||
Indx[4].DW = 0x0102030506070004; // 0h
|
||||
Indx[5].DW = 0x0002030406070105; // 1h
|
||||
Indx[6].DW = 0x0001030405070206; // 2h
|
||||
Indx[7].DW = 0x0001020405060307; // 3h
|
||||
Indx[8].DW = 0x0102030405060700; // 0
|
||||
Indx[9].DW = 0x0002030405060701; // 1
|
||||
Indx[0].DW = 0x0001020304050607; // None
|
||||
Indx[1].DW = 0x0001020304050607; // None
|
||||
Indx[2].DW = 0x0103050700020406; // 0q
|
||||
Indx[3].DW = 0x0002040601030507; // 1q
|
||||
Indx[4].DW = 0x0102030506070004; // 0h
|
||||
Indx[5].DW = 0x0002030406070105; // 1h
|
||||
Indx[6].DW = 0x0001030405070206; // 2h
|
||||
Indx[7].DW = 0x0001020405060307; // 3h
|
||||
Indx[8].DW = 0x0102030405060700; // 0
|
||||
Indx[9].DW = 0x0002030405060701; // 1
|
||||
Indx[10].DW = 0x0001030405060702; // 2
|
||||
Indx[11].DW = 0x0001020405060703; // 3
|
||||
Indx[12].DW = 0x0001020305060704; // 4
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
#include "cpu/RSPOpcode.h"
|
||||
#include "cpu/RspTypes.h"
|
||||
#include <Project64-rsp-core/cpu/RSPOpcode.h>
|
||||
#include <Project64-rsp-core/cpu/RspTypes.h>
|
||||
#include <Windows.h>
|
||||
|
||||
extern UDWORD EleSpec[16], Indx[16];
|
||||
|
||||
typedef void(*p_func)(void);
|
||||
typedef void (*p_func)(void);
|
||||
|
||||
extern p_func RSP_Opcode[64];
|
||||
extern p_func RSP_RegImm[32];
|
||||
|
|
|
@ -1,17 +1,20 @@
|
|||
#include <windows.h>
|
||||
|
||||
#include "Rsp.h"
|
||||
#include "cpu/RspTypes.h"
|
||||
#include <Project64-rsp-core\cpu\RSPRegisters.h>
|
||||
#include <Project64-rsp\Rsp.h>
|
||||
#include <commctrl.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#define GeneralPurpose 1
|
||||
#define ControlProcessor0 2
|
||||
#define HiddenRegisters 3
|
||||
#define Vector1 4
|
||||
#define Vector2 5
|
||||
enum
|
||||
{
|
||||
GeneralPurpose = 1,
|
||||
ControlProcessor0 = 2,
|
||||
HiddenRegisters = 3,
|
||||
Vector1 = 4,
|
||||
Vector2 = 5,
|
||||
|
||||
#define IDC_TAB_CONTROL 1000
|
||||
IDC_TAB_CONTROL = 1000,
|
||||
};
|
||||
|
||||
void Create_RSP_Register_Window(int);
|
||||
void HideRSP_RegisterPanel(int);
|
||||
|
@ -32,22 +35,10 @@ void UpdateRSPRegistersScreen(void);
|
|||
LRESULT CALLBACK RefreshRSP_RegProc(HWND, UINT, WPARAM, LPARAM);
|
||||
LRESULT CALLBACK RSP_Registers_Proc(HWND, UINT, WPARAM, LPARAM);
|
||||
|
||||
HWND RSP_Registers_hDlg, hTab, hStatic, hGPR[32], hCP0[16], hHIDDEN[12],
|
||||
hVECT1[16], hVECT2[16];
|
||||
HWND RSP_Registers_hDlg, hTab, hStatic, hGPR[32], hCP0[16], hHIDDEN[12], hVECT1[16], hVECT2[16];
|
||||
int InRSPRegisterWindow = false;
|
||||
WNDPROC RefreshProc;
|
||||
|
||||
// RSP registers
|
||||
UWORD32 RSP_GPR[32], RSP_Flags[4];
|
||||
UDWORD RSP_ACCUM[8];
|
||||
RSPVector RSP_Vect[32];
|
||||
|
||||
char * GPR_Strings[32] = {
|
||||
"R0", "AT", "V0", "V1", "A0", "A1", "A2", "A3",
|
||||
"T0", "T1", "T2", "T3", "T4", "T5", "T6", "T7",
|
||||
"S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7",
|
||||
"T8", "T9", "K0", "K1", "GP", "SP", "S8", "RA"};
|
||||
|
||||
void Create_RSP_Register_Window(int Child)
|
||||
{
|
||||
DWORD ThreadID;
|
||||
|
@ -62,7 +53,7 @@ void Create_RSP_Register_Window(int Child)
|
|||
if (!InRSPRegisterWindow)
|
||||
{
|
||||
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Create_RSP_Register_Window,
|
||||
(LPVOID)true, 0, &ThreadID);
|
||||
(LPVOID) true, 0, &ThreadID);
|
||||
}
|
||||
else
|
||||
{
|
|
@ -2,12 +2,12 @@
|
|||
#include "Cpu.h"
|
||||
#include "Interpreter Ops.h"
|
||||
#include "RSP Command.h"
|
||||
#include "RSP registers.h"
|
||||
#include "Rsp.h"
|
||||
#include "breakpoint.h"
|
||||
#include "log.h"
|
||||
#include "memory.h"
|
||||
#include "cpu/RSPOpcode.h"
|
||||
#include <Project64-rsp-core/cpu/RSPOpcode.h>
|
||||
#include <Project64-rsp-core/cpu/RSPRegisters.h>
|
||||
#include <float.h>
|
||||
#include <stdio.h>
|
||||
#include <windows.h>
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
#include "CPU.h"
|
||||
#include "Interpreter CPU.h"
|
||||
#include "RSP Command.h"
|
||||
#include "RSP Registers.h"
|
||||
#include "Rsp.h"
|
||||
#include "cpu/RspTypes.h"
|
||||
#include "dma.h"
|
||||
#include "log.h"
|
||||
#include "memory.h"
|
||||
#include "x86.h"
|
||||
#include "cpu/RSPInstruction.h"
|
||||
#include <Project64-rsp-core/cpu/RSPInstruction.h>
|
||||
#include <Project64-rsp-core/cpu/RSPRegisters.h>
|
||||
#include <Project64-rsp-core/cpu/RspTypes.h>
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <windows.h>
|
||||
|
@ -1244,7 +1244,7 @@ void RSP_Vector_VADD(void)
|
|||
RSPVector Result;
|
||||
|
||||
for (uint8_t el = 0; el < 8; el++)
|
||||
{
|
||||
{
|
||||
temp.W = (int32_t)RSP_Vect[RSPOpC.vs].s16(el) + (int32_t)RSP_Vect[RSPOpC.vt].se(el, RSPOpC.e) + ((RSP_Flags[0].UW >> (7 - el)) & 0x1);
|
||||
RSP_ACCUM[el].HW[1] = temp.HW[0];
|
||||
if ((temp.HW[0] & 0x8000) == 0)
|
||||
|
@ -2195,9 +2195,9 @@ void RSP_Opcode_LQV(void)
|
|||
void RSP_Opcode_LRV(void)
|
||||
{
|
||||
uint32_t Address = (uint32_t)(RSP_GPR[RSPOpC.base].W + (RSPOpC.voffset << 4)) & 0xFFF;
|
||||
uint8_t Offset = (0x10 - (Address & 0xF)) + RSPOpC.del;
|
||||
uint8_t Offset = (uint8_t)((0x10 - (Address & 0xF)) + RSPOpC.del);
|
||||
Address &= 0xFF0;
|
||||
for (uint8_t i = Offset; i < 16; i++, Address ++)
|
||||
for (uint8_t i = Offset; i < 16; i++, Address++)
|
||||
{
|
||||
RSP_Vect[RSPOpC.rt].s8(i) = *(RSPInfo.DMEM + ((Address ^ 3) & 0xFFF));
|
||||
}
|
||||
|
@ -2356,7 +2356,7 @@ void RSP_Opcode_SPV(void)
|
|||
uint32_t Address = (uint32_t)(RSP_GPR[RSPOpC.base].W + (RSPOpC.voffset << 3)) & 0xFFF;
|
||||
for (uint8_t i = RSPOpC.del, n = (uint8_t)(8 + RSPOpC.del); i < n; i++)
|
||||
{
|
||||
if (((i) & 0xF) < 8)
|
||||
if (((i)&0xF) < 8)
|
||||
{
|
||||
*(RSPInfo.DMEM + ((Address ^ 3) & 0xFFF)) = RSP_Vect[RSPOpC.rt].u8(15 - ((i & 0xF) << 1));
|
||||
}
|
||||
|
@ -2373,7 +2373,7 @@ void RSP_Opcode_SUV(void)
|
|||
uint32_t Address = (uint32_t)(RSP_GPR[RSPOpC.base].W + (RSPOpC.voffset << 3)) & 0xFFF;
|
||||
for (uint8_t Count = RSPOpC.del; Count < (8 + RSPOpC.del); Count++)
|
||||
{
|
||||
if (((Count) & 0xF) < 8)
|
||||
if (((Count)&0xF) < 8)
|
||||
{
|
||||
*(RSPInfo.DMEM + ((Address ^ 3) & 0xFFF)) = ((RSP_Vect[RSPOpC.rt].u8(15 - ((Count & 0x7) << 1)) << 1) + (RSP_Vect[RSPOpC.rt].u8(14 - ((Count & 0x7) << 1)) >> 7)) & 0xFF;
|
||||
}
|
||||
|
@ -2552,7 +2552,7 @@ void rsp_UnknownOpcode(void)
|
|||
else
|
||||
{
|
||||
sprintf(Message, "Unhandled Opcode\n%s\n\nStopping emulation.\n\nWould you like to open the debugger?",
|
||||
RSPInstruction(*PrgCount, RSPOpC.Value).NameAndParam().c_str());
|
||||
RSPInstruction(*PrgCount, RSPOpC.Value).NameAndParam().c_str());
|
||||
response = MessageBoxA(NULL, Message, "Error", MB_YESNO | MB_ICONERROR);
|
||||
if (response == IDYES)
|
||||
{
|
||||
|
|
|
@ -17,15 +17,15 @@
|
|||
#include "Cpu.h"
|
||||
#include "Profiling.h"
|
||||
#include "RSP Command.h"
|
||||
#include "RSP Registers.h"
|
||||
#include "Recompiler CPU.h"
|
||||
#include "Rsp.h"
|
||||
#include "cpu/RspTypes.h"
|
||||
#include "Version.h"
|
||||
#include "breakpoint.h"
|
||||
#include "log.h"
|
||||
#include "memory.h"
|
||||
#include "resource.h"
|
||||
#include <Project64-rsp-core/Version.h>
|
||||
#include <Project64-rsp-core/cpu/RSPRegisters.h>
|
||||
#include <Project64-rsp-core/cpu/RspTypes.h>
|
||||
|
||||
void ClearAllx86Code(void);
|
||||
void ProcessMenuItem(int ID);
|
||||
|
@ -36,12 +36,12 @@ HMENU hRSPMenu = NULL;
|
|||
|
||||
bool GraphicsHle = true, AudioHle, ConditionalMove;
|
||||
bool DebuggingEnabled = false,
|
||||
Profiling,
|
||||
IndvidualBlock,
|
||||
ShowErrors,
|
||||
BreakOnStart = false,
|
||||
LogRDP = false,
|
||||
LogX86Code = false;
|
||||
Profiling,
|
||||
IndvidualBlock,
|
||||
ShowErrors,
|
||||
BreakOnStart = false,
|
||||
LogRDP = false,
|
||||
LogX86Code = false;
|
||||
uint32_t CPUCore = RecompilerCPU;
|
||||
|
||||
void * hMutex = NULL;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#include "RSP registers.h"
|
||||
#include "Rsp.h"
|
||||
#include "log.h"
|
||||
#include "memory.h"
|
||||
#include "x86.h"
|
||||
#include <Project64-rsp-core/cpu/RSPRegisters.h>
|
||||
#include <stdio.h>
|
||||
#include <windows.h>
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
#include "Version.h"
|
||||
#include "../Project64-rsp-core/Version.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
|
|
|
@ -41,15 +41,11 @@
|
|||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<PreBuildEvent>
|
||||
<Command>"$(SolutionDir)Source\Script\UpdateVersion.cmd" "$(Configuration)" "$(Platform)" "$(SolutionDir)Source\Project64-rsp\Version.h.in" "$(SolutionDir)Source\Project64-rsp\Version.h"</Command>
|
||||
</PreBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="breakpoint.cpp" />
|
||||
<ClCompile Include="Cpu.cpp" />
|
||||
<ClCompile Include="cpu\RSPiInstruction.cpp" />
|
||||
<ClCompile Include="cpu\RspTypes.cpp" />
|
||||
<ClCompile Include="Debugger\RSPRegistersUI.cpp" />
|
||||
<ClCompile Include="dma.cpp" />
|
||||
<ClCompile Include="Interpreter CPU.cpp" />
|
||||
<ClCompile Include="Interpreter Ops.cpp" />
|
||||
|
@ -63,15 +59,13 @@
|
|||
<ClCompile Include="Recompiler Ops.cpp" />
|
||||
<ClCompile Include="Recompiler Sections.cpp" />
|
||||
<ClCompile Include="RSP Command.cpp" />
|
||||
<ClCompile Include="RSP Register.cpp" />
|
||||
<ClCompile Include="Sse.cpp" />
|
||||
<ClCompile Include="X86.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="breakpoint.h" />
|
||||
<ClInclude Include="Cpu.h" />
|
||||
<ClInclude Include="cpu\RSPInstruction.h" />
|
||||
<ClInclude Include="cpu\RSPOpcode.h" />
|
||||
<ClInclude Include="Debugger\RSPRegistersUI.h" />
|
||||
<ClInclude Include="dma.h" />
|
||||
<ClInclude Include="Interpreter CPU.h" />
|
||||
<ClInclude Include="Interpreter Ops.h" />
|
||||
|
@ -91,6 +85,9 @@
|
|||
<ProjectReference Include="..\Common\Common.vcxproj">
|
||||
<Project>{b4a4b994-9111-42b1-93c2-6f1ca8bc4421}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Project64-rsp-core\Project64-rsp-core.vcxproj">
|
||||
<Project>{7598f6b8-9da6-4897-b26f-f6865f824bf4}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Settings\Settings.vcxproj">
|
||||
<Project>{8b9961b1-88d9-4ea3-a752-507a00dd9f3d}</Project>
|
||||
</ProjectReference>
|
||||
|
|
|
@ -13,20 +13,14 @@
|
|||
<UniqueIdentifier>{53b9495d-f564-4b1d-968c-42c816ca2d41}</UniqueIdentifier>
|
||||
<Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\cpu">
|
||||
<UniqueIdentifier>{150686bc-00e7-44b5-bfee-3228ba09841f}</UniqueIdentifier>
|
||||
<Filter Include="Source Files\Debugger">
|
||||
<UniqueIdentifier>{d41d8d15-77d5-4506-b6b3-31065749d140}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Header Files\cpu">
|
||||
<UniqueIdentifier>{3054cc35-3f98-4464-9642-ad02eaed525f}</UniqueIdentifier>
|
||||
<Filter Include="Header Files\Debugger">
|
||||
<UniqueIdentifier>{2ed17e69-00cd-4d09-9087-ed76cba770f8}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="cpu\RSPInstruction.h">
|
||||
<Filter>Header Files\cpu</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="cpu\RSPOpcode.h">
|
||||
<Filter>Header Files\cpu</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="RspTypes.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
|
@ -75,6 +69,9 @@
|
|||
<ClInclude Include="X86.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Debugger\RSPRegistersUI.h">
|
||||
<Filter>Header Files\Debugger</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="Project64-rsp.rc">
|
||||
|
@ -127,20 +124,14 @@
|
|||
<ClCompile Include="RSP Command.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="RSP Register.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Sse.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="X86.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="cpu\RSPiInstruction.cpp">
|
||||
<Filter>Source Files\cpu</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="cpu\RspTypes.cpp">
|
||||
<Filter>Source Files\cpu</Filter>
|
||||
<ClCompile Include="Debugger\RSPRegistersUI.cpp">
|
||||
<Filter>Source Files\Debugger</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -4,13 +4,13 @@
|
|||
|
||||
#include "CPU.h"
|
||||
#include "RSP Command.h"
|
||||
#include "RSP Registers.h"
|
||||
#include "Rsp.h"
|
||||
#include "cpu/RspTypes.h"
|
||||
#include "breakpoint.h"
|
||||
#include "memory.h"
|
||||
#include "cpu/RSPOpcode.h"
|
||||
#include "cpu/RSPInstruction.h"
|
||||
#include <Project64-rsp-core/cpu/RSPInstruction.h>
|
||||
#include <Project64-rsp-core/cpu/RSPOpcode.h>
|
||||
#include <Project64-rsp-core/cpu/RSPRegisters.h>
|
||||
#include <Project64-rsp-core/cpu/RspTypes.h>
|
||||
|
||||
#define RSP_MaxCommandLines 30
|
||||
|
||||
|
@ -70,7 +70,7 @@ void Create_RSP_Commands_Window(int Child)
|
|||
if (!InRSPCommandsWindow)
|
||||
{
|
||||
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Create_RSP_Commands_Window,
|
||||
(LPVOID)true, 0, &ThreadID);
|
||||
(LPVOID) true, 0, &ThreadID);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -3,11 +3,11 @@
|
|||
#include "RSP Command.h"
|
||||
#include "Recompiler CPU.h"
|
||||
#include "Rsp.h"
|
||||
#include "cpu/RspTypes.h"
|
||||
#include "log.h"
|
||||
#include "memory.h"
|
||||
#include "cpu/RSPOpcode.h"
|
||||
#include "cpu/RSPInstruction.h"
|
||||
#include <Project64-rsp-core/cpu/RSPInstruction.h>
|
||||
#include <Project64-rsp-core/cpu/RSPOpcode.h>
|
||||
#include <Project64-rsp-core/cpu/RspTypes.h>
|
||||
#include <windows.h>
|
||||
|
||||
//#define COMPARE_INSTRUCTIONS_VERBOSE
|
||||
|
|
|
@ -7,16 +7,16 @@
|
|||
#include "Interpreter CPU.h"
|
||||
#include "Profiling.h"
|
||||
#include "RSP Command.h"
|
||||
#include "RSP registers.h"
|
||||
#include "Recompiler CPU.h"
|
||||
#include "Recompiler Ops.h"
|
||||
#include "Rsp.h"
|
||||
#include "cpu/RspTypes.h"
|
||||
#include "log.h"
|
||||
#include "memory.h"
|
||||
#include "cpu/RSPOpcode.h"
|
||||
#include "cpu/RSPInstruction.h"
|
||||
#include "x86.h"
|
||||
#include <Project64-rsp-core/cpu/RSPInstruction.h>
|
||||
#include <Project64-rsp-core/cpu/RSPOpcode.h>
|
||||
#include <Project64-rsp-core/cpu/RSPRegisters.h>
|
||||
#include <Project64-rsp-core/cpu/RspTypes.h>
|
||||
|
||||
#pragma warning(disable : 4152) // Non-standard extension, function/data pointer conversion in expression
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#include "cpu/RSPOpcode.h"
|
||||
#include "cpu/RspTypes.h"
|
||||
#include <Project64-rsp-core/cpu/RSPOpcode.h>
|
||||
#include <Project64-rsp-core/cpu/RspTypes.h>
|
||||
|
||||
extern uint32_t CompilePC, NextInstruction, JumpTableSize;
|
||||
extern bool ChangedPC;
|
||||
|
@ -54,8 +54,8 @@ extern RSP_BLOCK CurrentBlock;
|
|||
|
||||
typedef struct
|
||||
{
|
||||
bool bIsRegConst[32]; // bool toggle for constant
|
||||
DWORD MipsRegConst[32]; // Value of register 32-bit
|
||||
bool bIsRegConst[32]; // bool toggle for constant
|
||||
DWORD MipsRegConst[32]; // Value of register 32-bit
|
||||
DWORD BranchLabels[250];
|
||||
DWORD LabelCount;
|
||||
DWORD BranchLocations[250];
|
||||
|
|
|
@ -3,15 +3,15 @@
|
|||
#include "Interpreter Ops.h"
|
||||
#include "Profiling.h"
|
||||
#include "RSP Command.h"
|
||||
#include "RSP Registers.h"
|
||||
#include "Recompiler CPU.h"
|
||||
#include "Rsp.h"
|
||||
#include "cpu/RspTypes.h"
|
||||
#include "dma.h"
|
||||
#include "log.h"
|
||||
#include "memory.h"
|
||||
#include "x86.h"
|
||||
#include "cpu/RSPInstruction.h"
|
||||
#include <Project64-rsp-core/cpu/RSPInstruction.h>
|
||||
#include <Project64-rsp-core/cpu/RSPRegisters.h>
|
||||
#include <Project64-rsp-core/cpu/RspTypes.h>
|
||||
#include <stdio.h>
|
||||
#include <windows.h>
|
||||
|
||||
|
|
|
@ -3,15 +3,15 @@
|
|||
|
||||
#include "CPU.h"
|
||||
#include "RSP Command.h"
|
||||
#include "RSP Registers.h"
|
||||
#include "Recompiler CPU.h"
|
||||
#include "Rsp.h"
|
||||
#include "cpu/RspTypes.h"
|
||||
#include "dma.h"
|
||||
#include "log.h"
|
||||
#include "memory.h"
|
||||
#include "x86.h"
|
||||
#include "cpu/RSPInstruction.h"
|
||||
#include <Project64-rsp-core/cpu/RSPInstruction.h>
|
||||
#include <Project64-rsp-core/cpu/RSPRegisters.h>
|
||||
#include <Project64-rsp-core/cpu/RspTypes.h>
|
||||
|
||||
#pragma warning(disable : 4152) // Non-standard extension, function/data pointer conversion in expression
|
||||
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
#pragma once
|
||||
#include <Project64-plugin-spec/Rsp.h>
|
||||
|
||||
#include "cpu/RspTypes.h"
|
||||
#include <stdint.h>
|
||||
#include <Project64-rsp-core/cpu/RspTypes.h>
|
||||
|
||||
// Profiling
|
||||
#define Default_ProfilingOn false
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#include "RSP registers.h"
|
||||
#include "Rsp.h"
|
||||
#include "log.h"
|
||||
#include "memory.h"
|
||||
#include "x86.h"
|
||||
#include <Project64-rsp-core/cpu/RSPRegisters.h>
|
||||
#include <stdio.h>
|
||||
#include <windows.h>
|
||||
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
#include <stdio.h>
|
||||
#include <windows.h>
|
||||
|
||||
#include "RSP registers.h"
|
||||
#include "Rsp.h"
|
||||
#include "cpu/RspTypes.h"
|
||||
#include "log.h"
|
||||
#include "memory.h"
|
||||
#include "x86.h"
|
||||
#include <Project64-rsp-core/cpu/RSPRegisters.h>
|
||||
#include <Project64-rsp-core/cpu/RspTypes.h>
|
||||
|
||||
#pragma warning(disable : 4152) // Non-standard extension, function/data pointer conversion in expression
|
||||
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "RSP Registers.h"
|
||||
#include "Rsp.h"
|
||||
#include "memory.h"
|
||||
#include <Project64-rsp-core/cpu/RSPRegisters.h>
|
||||
|
||||
// #define RSP_SAFE_DMA // Unoptimized DMA transfers
|
||||
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
#include <windows.h>
|
||||
|
||||
#include "Log.h"
|
||||
#include "Rsp Registers.h"
|
||||
#include "Rsp.h"
|
||||
#include <Project64-rsp-core/cpu/RSPRegisters.h>
|
||||
|
||||
CLog * RDPLog = NULL;
|
||||
CLog * CPULog = NULL;
|
||||
|
|
|
@ -3,8 +3,8 @@ enum
|
|||
MaxMaps = 32
|
||||
};
|
||||
|
||||
#include "RSP Registers.h"
|
||||
#include "Rsp.h"
|
||||
#include <Project64-rsp-core/cpu/RSPRegisters.h>
|
||||
#include <windows.h>
|
||||
|
||||
DWORD NoOfMaps, MapsCRC[MaxMaps];
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include "cpu/RspTypes.h"
|
||||
#include <Project64-rsp-core/cpu/RspTypes.h>
|
||||
|
||||
int AllocateMemory(void);
|
||||
void FreeMemory(void);
|
||||
|
|
|
@ -9,15 +9,16 @@ cd /d %origdir%
|
|||
set ScanDir[0]="%base_dir%\Source\Common"
|
||||
set ScanDir[1]="%base_dir%\Source\Project64"
|
||||
set ScanDir[2]="%base_dir%\Source\Project64-core"
|
||||
set ScanDir[3]="%base_dir%\Source\RSP"
|
||||
set ScanDir[3]="%base_dir%\Source\Project64-rsp"
|
||||
set ScanDir[4]="%base_dir%\Source\Project64-rsp-core"
|
||||
|
||||
set ScanFiles[0]="*.cpp"
|
||||
set ScanFiles[1]="*.h"
|
||||
|
||||
set Exclude[0]="%base_dir%\Source\Project64-core\Version.h"
|
||||
set Exclude[1]="%base_dir%\Source\Project64\UserInterface\resource.h"
|
||||
set Exclude[2]="%base_dir%\Source\RSP\Version.h"
|
||||
set Exclude[3]="%base_dir%\Source\RSP\resource.h"
|
||||
set Exclude[2]="%base_dir%\Source\Project64-rsp-core\Version.h"
|
||||
set Exclude[3]="%base_dir%\Source\Project64-rsp\resource.h"
|
||||
|
||||
set ValidParam=0
|
||||
if "%1" == "check" set ValidParam=1
|
||||
|
|
Loading…
Reference in New Issue