mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-29 09:09:52 -06:00
My first commit :D
Dual Core sync fix. When the FIFO is processing data we must not advance the cpu cycles in CoreTiming because in this way the VI will be desynchronized. So, We are waiting until the FIFO finish and while we process only the events required by the FIFO. This should fix Issue 2072 . This affect to all games in dual core mode. Please, You can test all games with VPS limiter auto, 60, 50 depending of the game and compare with prev revision. For example now NSMB in the video Intro has 60 fps (prev 30 fps) :D or SMG does't need anymore FPS Limitter Hack to get 55-60 fps Beside the slowdowns now are more softly and the fps more stables because the VI sync is almost perfect. The Core Timing and Fifo modifications are delicated. Please report if this hang any game. Don't forget check with prev revision. Enjoy it! Thanks to Rodolfo for teach me all about dolphin. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5777 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@ -14,7 +14,7 @@ typedef void (*TimedCallback)(u64 userdata, int cyclesLate);
|
||||
|
||||
typedef void (*TSetInterrupt)(u32 _causemask, bool _bSet);
|
||||
typedef int (*TRegisterEvent)(const char *name, TimedCallback callback);
|
||||
typedef void (*TScheduleEvent_Threadsafe)(int cyclesIntoFuture, int event_type, u64 userdata);
|
||||
typedef void (*TScheduleEvent_Threadsafe)(int cyclesIntoFuture, int event_type, u64 userdata, bool fifoWait);
|
||||
typedef unsigned char* (*TGetMemoryPointer)(const unsigned int _iAddress);
|
||||
typedef void (*TVideoLog)(const char* _pMessage, int _bBreak);
|
||||
typedef void (*TSysMessage)(const char *fmt, ...);
|
||||
@ -182,5 +182,14 @@ EXPORT void CALL Video_PixelEngineWrite32(const u32 _Data, const u32 _Address);
|
||||
EXPORT void CALL Video_GatherPipeBursted(void);
|
||||
EXPORT void CALL Video_WaitForFrameFinish(void);
|
||||
|
||||
// __________________________________________________________________________________________________
|
||||
// Function: Video_IsFifoBusy
|
||||
// Purpose: Return if the FIFO is proecessing data, that is used for sync gfx thread and emulator
|
||||
// thread in CoreTiming
|
||||
// input: none
|
||||
// output: bool
|
||||
//
|
||||
EXPORT bool CALL Video_IsFifoBusy(void);
|
||||
|
||||
#include "ExportEpilog.h"
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user