diff options
| author | iCatButler <i.am.catbutler@gmail.com> | 2016-09-01 09:00:00 +0100 |
|---|---|---|
| committer | iCatButler <i.am.catbutler@gmail.com> | 2016-09-01 09:00:00 +0100 |
| commit | b9ca947ae0c9d45a4f76a58d1a0e1e4924f32a72 (patch) | |
| tree | 504fa0e362dc7a0dba586bad7ea9b6b85644b4ce /plugins/peopsxgl/gpu.c | |
| parent | aa5016339fca96c6a608a1d5dedf5eab250abe57 (diff) | |
| download | pcsxr-b9ca947ae0c9d45a4f76a58d1a0e1e4924f32a72.tar.gz | |
Fix some edge cases and imprve depth visualisation:
- Remove upper 4-bits of each vertex as they may contain bad data (THPS)
- Check if memory block from DMA is as expected, some primitives are not the first data in the block and preceding data needs to be skipped (HT, A2)
- Change depth visualisation to a colour gradient that makes inconsistencies easier to see
- Add support for visualising low resolution but consistent depth found in the Ordering Table
Diffstat (limited to 'plugins/peopsxgl/gpu.c')
| -rwxr-xr-x | plugins/peopsxgl/gpu.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/plugins/peopsxgl/gpu.c b/plugins/peopsxgl/gpu.c index 5becb698..99ef36ba 100755 --- a/plugins/peopsxgl/gpu.c +++ b/plugins/peopsxgl/gpu.c @@ -716,7 +716,7 @@ long CALLBACK GPUopen(HWND hwndGPU) InitializeTextureStore(); // init texture mem resetGteVertices(); - + // lGPUstatusRet = 0x74000000; // with some emus, we could do the OGL init right here... oh my @@ -3138,6 +3138,7 @@ long CALLBACK GPUdmaChain(uint32_t *baseAddrL, uint32_t addr) baseAddrB = (unsigned char*) baseAddrL; + uint32_t depthCount = 0; do { if(iGPUHeight==512) addr&=0x1FFFFC; @@ -3151,9 +3152,11 @@ long CALLBACK GPUdmaChain(uint32_t *baseAddrL, uint32_t addr) if (count > 0) { - PGXP_SetAddress(dmaMem >> 2); + PGXP_SetAddress(dmaMem >> 2, &baseAddrL[dmaMem >> 2], count); GPUwriteDataMem(&baseAddrL[dmaMem >> 2], count); } + else + PGXP_SetDepth(depthCount++); addr = baseAddrL[addr>>2]&0xffffff; } |
