X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=Pico%2FVideoPort.c;h=a4fe3c88bf740add99aa09a8df6de847ca64d839;hb=e5f426aa2e86d56357b8af2795e73cc0c9b17e8f;hp=8cfaab29d6d7cb6eaa6912083554415456eab2ee;hpb=0a051f558c6585c94d06dbe670e70bcac4e0aadd;p=picodrive.git diff --git a/Pico/VideoPort.c b/Pico/VideoPort.c index 8cfaab2..a4fe3c8 100644 --- a/Pico/VideoPort.c +++ b/Pico/VideoPort.c @@ -1,7 +1,7 @@ // This is part of Pico Library // (c) Copyright 2004 Dave, All rights reserved. -// (c) Copyright 2006 notaz, All rights reserved. +// (c) Copyright 2006-2007, Grazvydas "notaz" Ignotas // Free for non-commercial use. // For commercial use, separate licencing terms must be obtained. @@ -15,8 +15,12 @@ extern const unsigned char hcounts_40[]; extern const unsigned short vcounts[]; extern int rendstatus; +#ifndef UTYPES_DEFINED typedef unsigned char u8; typedef unsigned short u16; +typedef unsigned int u32; +#define UTYPES_DEFINED +#endif static __inline void AutoIncrement() @@ -89,7 +93,8 @@ static void DmaSlow(int len) if(Pico.m.scanline != -1) { Pico.m.dma_bytes += len; - SekSetCyclesLeft(SekCyclesLeft - CheckDMA()); + if ((PicoMCD&1) && (PicoOpt & 0x2000)) SekCyclesBurn(CheckDMA()); + else SekSetCyclesLeftNoMCD(SekCyclesLeftNoMCD - CheckDMA()); } else { // be approximate in non-accurate mode SekSetCyclesLeft(SekCyclesLeft - (len*(((488<<8)/167))>>8)); @@ -307,7 +312,7 @@ static void CommandChange() if (cmd&0x80) CommandDma(); } -void PicoVideoWrite(unsigned int a,unsigned short d) +PICO_INTERNAL_ASM void PicoVideoWrite(unsigned int a,unsigned short d) { struct PicoVideo *pvid=&Pico.video; @@ -389,7 +394,7 @@ void PicoVideoWrite(unsigned int a,unsigned short d) } } -unsigned int PicoVideoRead(unsigned int a) +PICO_INTERNAL_ASM unsigned int PicoVideoRead(unsigned int a) { unsigned int d=0;