diff options
| author | iCatButler <i.am.catbutler@gmail.com> | 2016-03-26 10:07:46 +0000 |
|---|---|---|
| committer | iCatButler <i.am.catbutler@gmail.com> | 2016-03-26 10:07:46 +0000 |
| commit | b1f5a6ce4d7b9156910078300bfdf4ff0fd8ccf0 (patch) | |
| tree | 4c58fda9c7fe906b59c482165adcd041c4ab37ac /win32/plugins | |
| parent | 7767ea4acbae995cd8e6302bdb7c97e89748dfd8 (diff) | |
| download | pcsxr-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-x | win32/plugins/peopsxgl/gpuPeopsOpenGL.vcxproj | 4 | ||||
| -rwxr-xr-x | win32/plugins/peopsxgl/gpuPeopsOpenGL.vcxproj.filters | 4 | ||||
| -rw-r--r-- | win32/plugins/peopsxgl/pgxp_gpu.c | 90 | ||||
| -rw-r--r-- | win32/plugins/peopsxgl/pgxp_gpu.h | 34 |
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_ |
