actually fire the rivatimer

This commit is contained in:
starfrost013
2024-12-29 18:43:15 +00:00
parent 3914a00f9b
commit ef8e4e95c1
6 changed files with 70 additions and 17 deletions

View File

@@ -28,6 +28,7 @@
#include <86box/timer.h>
#include <86box/vid_svga.h>
#include <86box/vid_svga_render.h>
#include <86box/nv/vid_nv_rivatimer.h>
void nv_log(const char *fmt, ...);
@@ -99,10 +100,12 @@ typedef struct nv_base_s
nv_bus_generation bus_generation; // current bus (see nv_bus_generation documentation)
uint32_t gpu_revision; // GPU Stepping
double pixel_clock_period; // Period in seconds for pixel clock
pc_timer_t pixel_clock_timer; // Pixel Clock Timer
//pc_timer_t pixel_clock_timer; // Pixel Clock Timer
rivatimer_t* pixel_clock_timer;
bool pixel_clock_enabled; // Pixel Clock Enabled - stupid crap used to prevent us enabling the timer multiple times
double memory_clock_period; // Period in seconds for pixel clock
pc_timer_t memory_clock_timer; // Memory Clock Timer
//pc_timer_t memory_clock_timer; // Memory Clock Timer
rivatimer_t* memory_clock_timer;
bool memory_clock_enabled; // Memory Clock Enabled - stupid crap used to prevent us eanbling the timer multiple times
} nv_base_t;

View File

@@ -28,7 +28,7 @@ extern const device_config_t nv3_config[];
#define NV3_LFB_RAMIN_START 0xC00000 // RAMIN mapping start
#define NV3_LFB_MAPPING_SIZE 0x400000 // Size of RAMIN
#define NV3_86BOX_TIMER_SYSTEM_FIX_QUOTIENT 1000 // The amount by which we have to ration out the memory clock because it's not fast enough...
#define NV3_86BOX_TIMER_SYSTEM_FIX_QUOTIENT 10 // The amount by which we have to ration out the memory clock because it's not fast enough...
// Multiply by this value to get the real clock speed.
// Default value for the boot information register.
// Depends on the chip
@@ -952,8 +952,8 @@ void nv3_pbus_rma_write(uint16_t addr, uint8_t val);
void nv3_pramdac_init();
void nv3_pramdac_set_vram_clock();
void nv3_pramdac_set_pixel_clock();
void nv3_pramdac_pixel_clock_poll(void* priv);
void nv3_pramdac_memory_clock_poll(void* priv);
void nv3_pramdac_pixel_clock_poll(/*void* priv*/);
void nv3_pramdac_memory_clock_poll(/*void* priv*/);
// NV3 PTIMER
void nv3_ptimer_init();

View File

@@ -80,4 +80,5 @@ void rivatimer_update_all();
void rivatimer_start(rivatimer_t* rivatimer_ptr);
void rivatimer_stop(rivatimer_t* rivatimer_ptr);
double rivatimer_get_time(rivatimer_t* rivatimer_ptr);
void rivatimer_set_callback(rivatimer_t* rivatimer_ptr, void (*callback)());
void rivatimer_set_callback(rivatimer_t* rivatimer_ptr, void (*callback)());
void rivatimer_set_period(rivatimer_t* rivatimer_ptr, double period);