X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=platforms%2Famiga%2Frtg%2Frtg_driver_amiga%2Fpigfx-2.c;h=eb0bb57051d84e525ab51778da2f75ef0f477de8;hb=ceebc59532553f7903c3a4219e663d905ad9fb34;hp=bf8b79330a10d43abdc051a69f4438d65a17496d;hpb=ffdf080c87aa36929b4a16bed88d8868b9b3ed9c;p=pistorm diff --git a/platforms/amiga/rtg/rtg_driver_amiga/pigfx-2.c b/platforms/amiga/rtg/rtg_driver_amiga/pigfx-2.c index bf8b793..eb0bb57 100644 --- a/platforms/amiga/rtg/rtg_driver_amiga/pigfx-2.c +++ b/platforms/amiga/rtg/rtg_driver_amiga/pigfx-2.c @@ -80,6 +80,7 @@ void SetClearMask (__REGA0(struct BoardInfo *b), __REGD0(UBYTE mask)); void SetReadPlane (__REGA0(struct BoardInfo *b), __REGD0(UBYTE plane)); void WaitVerticalSync (__REGA0(struct BoardInfo *b), __REGD0(BOOL toggle)); +BOOL GetVSyncState(__REGA0(struct BoardInfo *b), __REGD0(BOOL toggle)); void FillRect (__REGA0(struct BoardInfo *b), __REGA1(struct RenderInfo *r), __REGD0(WORD x), __REGD1(WORD y), __REGD2(WORD w), __REGD3(WORD h), __REGD4(ULONG color), __REGD5(UBYTE mask), __REGD7(RGBFTYPE format)); void InvertRect (__REGA0(struct BoardInfo *b), __REGA1(struct RenderInfo *r), __REGD0(WORD x), __REGD1(WORD y), __REGD2(WORD w), __REGD3(WORD h), __REGD4(UBYTE mask), __REGD7(RGBFTYPE format)); @@ -305,7 +306,7 @@ int __attribute__((used)) InitCard(__REGA0(struct BoardInfo* b)) { //b->SetSplitPosition = (void *)NULL; //b->ReInitMemory = (void *)NULL; //b->WriteYUVRect = (void *)NULL; - //b->GetVSyncState = (void *)NULL; + b->GetVSyncState = (void *)GetVSyncState; //b->GetVBeamPos = (void *)NULL; //b->SetDPMSLevel = (void *)NULL; //b->ResetChip = (void *)NULL; @@ -461,8 +462,18 @@ void SetClearMask (__REGA0(struct BoardInfo *b), __REGD0(UBYTE mask)) { void SetReadPlane (__REGA0(struct BoardInfo *b), __REGD0(UBYTE plane)) { } +static uint16_t vblank; + void WaitVerticalSync (__REGA0(struct BoardInfo *b), __REGD0(BOOL toggle)) { - // I don't know why this one has a bool in D0, but it isn't used for anything. + vblank = 0; + do { + READSHORT(RTG_WAITVSYNC, vblank); + } while (!vblank); +} + +BOOL GetVSyncState(__REGA0(struct BoardInfo *b), __REGD0(BOOL toggle)) { + READSHORT(RTG_INVBLANK, vblank); + return vblank; } void FillRect (__REGA0(struct BoardInfo *b), __REGA1(struct RenderInfo *r), __REGD0(WORD x), __REGD1(WORD y), __REGD2(WORD w), __REGD3(WORD h), __REGD4(ULONG color), __REGD5(UBYTE mask), __REGD7(RGBFTYPE format)) {