X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=plugins%2Fdfxvideo%2Fgpu.c;h=9356a6e93ebf1c6d17a4163d0526ccbcb6ab30bc;hb=ae097dfb64926c50902b08b681cbf805b98e3751;hp=9fa08fe3f9642b61609a47526576c5f78b61bf1d;hpb=24de2dd4dbdd50e44c91c40ebbc7d59ee1c0ac9b;p=pcsx_rearmed.git diff --git a/plugins/dfxvideo/gpu.c b/plugins/dfxvideo/gpu.c index 9fa08fe3..9356a6e9 100644 --- a/plugins/dfxvideo/gpu.c +++ b/plugins/dfxvideo/gpu.c @@ -985,7 +985,7 @@ ENDVRAM: if((gpuDataC==254 && gpuDataP>=3) || (gpuDataC==255 && gpuDataP>=4 && !(gpuDataP&1))) { - if((gpuDataM[gpuDataP] & 0xF000F000) == 0x50005000) + if((gpuDataM[gpuDataP] & HOST2LE32(0xF000F000)) == HOST2LE32(0x50005000)) gpuDataP=gpuDataC-1; } } @@ -1060,8 +1060,8 @@ long CALLBACK GPUdmaChain(uint32_t * baseAddrL, uint32_t addr) if(count>0) GPUwriteDataMem(&baseAddrL[dmaMem>>2],count); addr = GETLE32(&baseAddrL[addr>>2])&0xffffff; - } - while (addr != 0xffffff); + } while (!(addr & 0x800000)); // contrary to some documentation, the end-of-linked-list marker is not actually 0xFF'FFFF + // any pointer with bit 23 set will do. GPUIsIdle; @@ -1143,6 +1143,8 @@ void GPUrearmedCallbacks(const struct rearmed_cbs *cbs) dwFrameRateTicks = cbs->gpu_peops.dwFrameRateTicks; if (cbs->pl_vout_set_raw_vram) cbs->pl_vout_set_raw_vram(psxVub); + if (cbs->pl_set_gpu_caps) + cbs->pl_set_gpu_caps(0); skip_advice = &cbs->fskip_advice; fps_skip = 100.0f;