PVR DMA doesnt work
Getting:
pvr_dma: Failed DMAOR check
error when trying to load texture data to pvr using code:
texture_data = memalign(32, texture_height * texture_width * 2);
pvr_texture_data = pvr_mem_malloc(texture_height * texture_width * 2);
...
dcache_flush_range((uint32)texture_data, texture_width*texture_height*2); // dcache flush is needed when using DMA
pvr_txr_load_dma(texture_data, pvr_texture_data, texture_width*texture_height*2, 1, NULL, 0);
According to KOS: https://github.com/KallistiOS/KallistiOS/blob/525cbdac17317acfc2e4937e2efd7b99c85e73a3/kernel/arch/dreamcast/hardware/pvr/pvr_dma.c#L117
Checking the value of val
for Sega Dreamcast and emulators:
- Sega Dreamcast: shdma[DMAC_DMAOR]: 33281
- Flycast: shdma[DMAC_DMAOR]: 33281
- Reicast: shdma[DMAC_DMAOR]: 33281
- LxDream-Nitro: shdma[DMAC_DMAOR]: 0
Edited by Andress Antonio Barajas