BizHawk/waterbox/ngp/interrupt.h

62 lines
1.8 KiB
C++

//---------------------------------------------------------------------------
// NEOPOP : Emulator as in Dreamland
//
// Copyright (c) 2001-2002 by neopop_uk
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version. See also the license.txt file for
// additional informations.
//---------------------------------------------------------------------------
#ifndef __NEOPOP_INTERRUPT__
#define __NEOPOP_INTERRUPT__
//=============================================================================
namespace MDFN_IEN_NGP
{
void interrupt(uint8 index);
#define TIMER_HINT_RATE 515 //CPU Ticks between horizontal interrupts
#define TIMER_BASE_RATE 32 //1 //ticks
#define TIMER_T1_RATE (8 * TIMER_BASE_RATE)
#define TIMER_T4_RATE (32 * TIMER_BASE_RATE)
#define TIMER_T16_RATE (128 * TIMER_BASE_RATE)
#define TIMER_T256_RATE (2048 * TIMER_BASE_RATE)
void reset_timers(void);
void reset_int(void);
//Call this after each instruction
bool updateTimers(MDFN_Surface *surface, int cputicks);
//H-INT Timer
extern uint32 timer_hint;
void timer_write8(uint32 address, uint8 data);
uint8 timer_read8(uint32 address);
// Set this value to fix problems with glitching extra lines.
extern bool gfx_hack;
void int_write8(uint32 address, uint8 data);
uint8 int_read8(uint32 address);
void int_check_pending(void);
void TestIntHDMA(int bios_num, int vec_num);
}
//=============================================================================
#endif