|
|
|
@ -21,8 +21,8 @@ namespace GPU {
|
|
|
|
|
|
|
|
|
|
RegisterSet<u32, Regs> g_regs;
|
|
|
|
|
|
|
|
|
|
u32 g_cur_line = 0; ///< Current vertical screen line
|
|
|
|
|
u64 g_last_ticks = 0; ///< Last CPU ticks
|
|
|
|
|
u32 g_cur_line = 0; ///< Current vertical screen line
|
|
|
|
|
u64 g_last_line_ticks = 0; ///< CPU tick count from last vertical screen line
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Sets whether the framebuffers are in the GSP heap (FCRAM) or VRAM
|
|
|
|
@ -256,10 +256,10 @@ void Update() {
|
|
|
|
|
u64 current_ticks = Core::g_app_core->GetTicks();
|
|
|
|
|
|
|
|
|
|
// Synchronize line...
|
|
|
|
|
if ((current_ticks - g_last_ticks) >= GPU::kFrameTicks / framebuffer_top.height) {
|
|
|
|
|
if ((current_ticks - g_last_line_ticks) >= GPU::kFrameTicks / framebuffer_top.height) {
|
|
|
|
|
GSP_GPU::SignalInterrupt(GSP_GPU::InterruptId::PDC0);
|
|
|
|
|
g_cur_line++;
|
|
|
|
|
g_last_ticks = current_ticks;
|
|
|
|
|
g_last_line_ticks = current_ticks;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Synchronize frame...
|
|
|
|
@ -275,7 +275,7 @@ void Update() {
|
|
|
|
|
/// Initialize hardware
|
|
|
|
|
void Init() {
|
|
|
|
|
g_cur_line = 0;
|
|
|
|
|
g_last_ticks = Core::g_app_core->GetTicks();
|
|
|
|
|
g_last_line_ticks = Core::g_app_core->GetTicks();
|
|
|
|
|
|
|
|
|
|
// SetFramebufferLocation(FRAMEBUFFER_LOCATION_FCRAM);
|
|
|
|
|
SetFramebufferLocation(FRAMEBUFFER_LOCATION_VRAM);
|
|
|
|
|