limit maple schedule time, allow vram 8-bit reads, minor changes

This commit is contained in:
Flyinghead 2020-03-28 12:18:14 +01:00
parent ed1c9c9091
commit c5a42a57bc
5 changed files with 5 additions and 7 deletions

View File

@ -217,7 +217,7 @@ static void maple_DoDma()
} }
//printf("Maple XFER size %d bytes - %.2f ms\n",xfer_count,xfer_count*100.0f/(2*1024*1024/8)); //printf("Maple XFER size %d bytes - %.2f ms\n",xfer_count,xfer_count*100.0f/(2*1024*1024/8));
sh4_sched_request(maple_schid,xfer_count*(SH4_MAIN_CLOCK/(2*1024*1024/8))); sh4_sched_request(maple_schid, std::min((u64)xfer_count * (SH4_MAIN_CLOCK / (2 * 1024 * 1024 / 8)), (u64)SH4_MAIN_CLOCK));
} }
int maple_schd(int tag, int c, int j) int maple_schd(int tag, int c, int j)

View File

@ -450,8 +450,7 @@ static void _vmem_set_p0_mappings()
bool _vmem_reserve() bool _vmem_reserve()
{ {
// TODO: Static assert? static_assert((sizeof(Sh4RCB) % PAGE_SIZE) == 0, "sizeof(Sh4RCB) not multiple of PAGE_SIZE");
verify((sizeof(Sh4RCB)%PAGE_SIZE)==0);
vmemstatus = MemTypeError; vmemstatus = MemTypeError;

View File

@ -180,8 +180,7 @@ void YUV_data(u32* data , u32 count)
//read //read
u8 DYNACALL pvr_read_area1_8(u32 addr) u8 DYNACALL pvr_read_area1_8(u32 addr)
{ {
INFO_LOG(MEMORY, "%08x: 8-bit VRAM reads are not possible", addr); return vram[pvr_map32(addr)];
return 0;
} }
u16 DYNACALL pvr_read_area1_16(u32 addr) u16 DYNACALL pvr_read_area1_16(u32 addr)

View File

@ -836,7 +836,7 @@ void ReadFramebuffer(PixelBuffer<u32>& pb, int& width, int& height)
{ {
u16 src = pvr_read_area1_16(addr); u16 src = pvr_read_area1_16(addr);
*dst++ = (((src >> 11) & 0x1F) << 3) + FB_R_CTRL.fb_concat; *dst++ = (((src >> 11) & 0x1F) << 3) + FB_R_CTRL.fb_concat;
*dst++ = (((src >> 5) & 0x3F) << 2) + (FB_R_CTRL.fb_concat >> 1); *dst++ = (((src >> 5) & 0x3F) << 2) + (FB_R_CTRL.fb_concat & 3);
*dst++ = (((src >> 0) & 0x1F) << 3) + FB_R_CTRL.fb_concat; *dst++ = (((src >> 0) & 0x1F) << 3) + FB_R_CTRL.fb_concat;
*dst++ = 0xFF; *dst++ = 0xFF;
addr += bpp; addr += bpp;

View File

@ -774,7 +774,7 @@ int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi
sdl_window_destroy(); sdl_window_destroy();
#else #else
cfgSaveBool("window", "maximized", window_maximized); cfgSaveBool("window", "maximized", window_maximized);
if (!window_maximized && screen_width != 0 && screen_width != 0) if (!window_maximized && screen_width != 0 && screen_height != 0)
{ {
cfgSaveInt("window", "width", screen_width); cfgSaveInt("window", "width", screen_width);
cfgSaveInt("window", "height", screen_height); cfgSaveInt("window", "height", screen_height);