summaryrefslogtreecommitdiff
path: root/win32/plugins
diff options
context:
space:
mode:
authoriCatButler <i.am.catbutler@gmail.com>2016-03-26 10:07:46 +0000
committeriCatButler <i.am.catbutler@gmail.com>2016-03-26 10:07:46 +0000
commitb1f5a6ce4d7b9156910078300bfdf4ff0fd8ccf0 (patch)
tree4c58fda9c7fe906b59c482165adcd041c4ab37ac /win32/plugins
parent7767ea4acbae995cd8e6302bdb7c97e89748dfd8 (diff)
downloadpcsxr-b1f5a6ce4d7b9156910078300bfdf4ff0fd8ccf0.tar.gz
- Move pgxp_gpu source files into correct folder.
- Trace 16 bit reads and writes, invalidate register or memory (fixes UI glitches)
Diffstat (limited to 'win32/plugins')
-rwxr-xr-xwin32/plugins/peopsxgl/gpuPeopsOpenGL.vcxproj4
-rwxr-xr-xwin32/plugins/peopsxgl/gpuPeopsOpenGL.vcxproj.filters4
-rw-r--r--win32/plugins/peopsxgl/pgxp_gpu.c90
-rw-r--r--win32/plugins/peopsxgl/pgxp_gpu.h34
4 files changed, 4 insertions, 128 deletions
diff --git a/win32/plugins/peopsxgl/gpuPeopsOpenGL.vcxproj b/win32/plugins/peopsxgl/gpuPeopsOpenGL.vcxproj
index f65ce2cb..a9bf432e 100755
--- a/win32/plugins/peopsxgl/gpuPeopsOpenGL.vcxproj
+++ b/win32/plugins/peopsxgl/gpuPeopsOpenGL.vcxproj
@@ -152,7 +152,7 @@
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
- <ClCompile Include="pgxp_gpu.c" />
+ <ClCompile Include="..\..\..\plugins\peopsxgl\pgxp_gpu.c" />
<ClCompile Include="winsrc\cfg.c">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -222,7 +222,7 @@
</ClCompile>
</ItemGroup>
<ItemGroup>
- <ClInclude Include="pgxp_gpu.h" />
+ <ClInclude Include="..\..\..\plugins\peopsxgl\pgxp_gpu.h" />
<ClInclude Include="winsrc\ssave.h" />
<ClInclude Include="..\..\..\plugins\peopsxgl\cfg.h" />
<ClInclude Include="..\..\..\plugins\peopsxgl\draw.h" />
diff --git a/win32/plugins/peopsxgl/gpuPeopsOpenGL.vcxproj.filters b/win32/plugins/peopsxgl/gpuPeopsOpenGL.vcxproj.filters
index d34a9a34..4090a47f 100755
--- a/win32/plugins/peopsxgl/gpuPeopsOpenGL.vcxproj.filters
+++ b/win32/plugins/peopsxgl/gpuPeopsOpenGL.vcxproj.filters
@@ -45,7 +45,7 @@
<ClCompile Include="..\..\..\plugins\peopsxgl\texture.c">
<Filter>peopsxgl</Filter>
</ClCompile>
- <ClCompile Include="pgxp_gpu.c">
+ <ClCompile Include="..\..\..\plugins\peopsxgl\pgxp_gpu.c">
<Filter>peopsxgl</Filter>
</ClCompile>
</ItemGroup>
@@ -93,7 +93,7 @@
<Filter>peopsxgl</Filter>
</ClInclude>
<ClInclude Include="resource.h" />
- <ClInclude Include="pgxp_gpu.h">
+ <ClInclude Include="..\..\..\plugins\peopsxgl\pgxp_gpu.h">
<Filter>peopsxgl</Filter>
</ClInclude>
</ItemGroup>
diff --git a/win32/plugins/peopsxgl/pgxp_gpu.c b/win32/plugins/peopsxgl/pgxp_gpu.c
deleted file mode 100644
index 5b64382a..00000000
--- a/win32/plugins/peopsxgl/pgxp_gpu.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/***************************************************************************
-* Copyright (C) 2016 by iCatButler *
-* *
-* This program is free software; you can redistribute it and/or modify *
-* it under the terms of the GNU General Public License as published by *
-* the Free Software Foundation; either version 2 of the License, or *
-* (at your option) any later version. *
-* *
-* This program is distributed in the hope that it will be useful, *
-* but WITHOUT ANY WARRANTY; without even the implied warranty of *
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
-* GNU General Public License for more details. *
-* *
-* You should have received a copy of the GNU General Public License *
-* along with this program; if not, write to the *
-* Free Software Foundation, Inc., *
-* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *
-***************************************************************************/
-
-/**************************************************************************
-* pgxp_gpu.c
-* PGXP - Parallel/Precision Geometry Xform Pipeline
-*
-* Created on: 25 Mar 2016
-* Author: iCatButler
-***************************************************************************/
-
-#include "pgxp_gpu.h"
-#include "stdafx.h"
-#include "externals.h"
-
-#include <math.h>
-
-typedef struct
-{
- float x;
- float y;
- float z;
- unsigned int valid;
- unsigned int count;
-} PGXP_vertex;
-
-const unsigned int primStrideTable[] = { 1, 2, 1, 2, 2, 3, 2, 3, 0 };
-const unsigned int primCountTable[] = { 3, 3, 4, 4, 3, 3, 4, 4, 0 };
-
-PGXP_vertex* PGXP_Mem = NULL; // pointer to parallel memory
-unsigned int currentAddr = 0; // address of current DMA
-
-// Set current DMA address and pointer to parallel memory
-void CALLBACK GPUpgxpMemory(unsigned int addr, unsigned char* pVRAM)
-{
- if (pVRAM)
- PGXP_Mem = (PGXP_vertex*)(pVRAM);
- currentAddr = addr;
-}
-
-// Set current DMA address
-void PGXP_SetAddress(unsigned int addr)
-{
- currentAddr = addr;
-}
-
-// Get parallel vertex values
-int PGXP_GetVertices(unsigned int* addr, void* pOutput)
-{
- unsigned int primCmd = ((*addr >> 24) & 0xff); // primitive command
- unsigned int primIdx = (primCmd - 0x20) >> 2; // index to primitive lookup
- OGLVertex* pVertex = (OGLVertex*)pOutput; // pointer to output vertices
- unsigned int stride = primStrideTable[primIdx]; // stride between vertices
- unsigned int count = primCountTable[primIdx]; // number of vertices
- PGXP_vertex* primStart = NULL; // pointer to first vertex
-
- if (PGXP_Mem == NULL)
- return 0;
-
- // Offset to start of primitive
- primStart = &PGXP_Mem[currentAddr + 1];
-
- for (unsigned i = 0; i < count; ++i)
- {
- if (primStart[stride * i].valid)
- {
- pVertex[i].x = primStart[stride * i].x;
- pVertex[i].y = primStart[stride * i].y;
- }
- }
-
- return 1;
-}
-
diff --git a/win32/plugins/peopsxgl/pgxp_gpu.h b/win32/plugins/peopsxgl/pgxp_gpu.h
deleted file mode 100644
index 1777dc19..00000000
--- a/win32/plugins/peopsxgl/pgxp_gpu.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/***************************************************************************
-* Copyright (C) 2016 by iCatButler *
-* *
-* This program is free software; you can redistribute it and/or modify *
-* it under the terms of the GNU General Public License as published by *
-* the Free Software Foundation; either version 2 of the License, or *
-* (at your option) any later version. *
-* *
-* This program is distributed in the hope that it will be useful, *
-* but WITHOUT ANY WARRANTY; without even the implied warranty of *
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
-* GNU General Public License for more details. *
-* *
-* You should have received a copy of the GNU General Public License *
-* along with this program; if not, write to the *
-* Free Software Foundation, Inc., *
-* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *
-***************************************************************************/
-
-/**************************************************************************
-* pgxp_gpu.h
-* PGXP - Parallel/Precision Geometry Xform Pipeline
-*
-* Created on: 25 Mar 2016
-* Author: iCatButler
-***************************************************************************/
-
-#ifndef _PGXP_GPU_H_
-#define _PGXP_GPU_H_
-
-void PGXP_SetAddress(unsigned int addr);
-int PGXP_GetVertices(unsigned int* addr, void* pOutput);
-
-#endif // _PGXP_GPU_H_