//--------------------------------------------------------------------------- // 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