40 lines
1017 B
C++
40 lines
1017 B
C++
#ifndef TIMING_H
|
|
#define TIMING_H
|
|
|
|
#include <stdint.h>
|
|
|
|
|
|
#define VSYNC_START -36
|
|
#define VSYNC_RATE 60
|
|
#define SCAN_LINES 521
|
|
#define HLINE_START 0
|
|
#define HLINE_END 200
|
|
#define HPIXELS_START 13
|
|
#define HPIXELS_END 173
|
|
#define VSYNC_TIMING_60 0.01667222407469 // 59.98Hz
|
|
#define NON_CRITICAL_TIMING (VSYNC_TIMING_60*3.0)
|
|
|
|
#define CLOCK_FREQ 6250000
|
|
#define CLOCK_RESET -2
|
|
|
|
// Minimum number of clocks before ROM type is valid in RAM; in the future could be ROM dependant, currently this value works with ROMS v1 through v4
|
|
#define STARTUP_DELAY_CLOCKS (CLOCK_FREQ * 0.2)
|
|
#define CPU_STALL_CLOCKS 500000
|
|
#define SINGLE_STEP_STALL_CLOCKS 2000
|
|
#define MAX_SINGLE_STEP_CLOCKS 1000
|
|
|
|
|
|
namespace Timing
|
|
{
|
|
bool getFrameUpdate(void);
|
|
uint64_t getFrameCount(void);
|
|
double getFrameTime(void);
|
|
double getTimingHack(void);
|
|
|
|
void setFrameUpdate(bool update);
|
|
void setTimingHack(double hack);
|
|
|
|
void synchronise(void);
|
|
}
|
|
|
|
#endif |