static int deempcnt[8];
FCEUGI FCEUGameInfo;
-void (*GameInterface)(int h);
+void (*GameInterface)(int h, void *param);
void FP_FASTAPASS(1) (*PPU_hook)(uint32 A);
{
uint32 tem;
- if(FSkip)
+ if(FSkip || scanline < FSettings.FirstSLine || scanline > FSettings.LastSLine)
{
if(PPU_hook)
PRefreshLine();
{
if(ScreenON)
{
- if(scanline>=FSettings.FirstSLine && scanline<=FSettings.LastSLine)
- BGRender(target);
- else
- {
- if(PPU_hook)
- PRefreshLine();
- }
+ BGRender(target);
}
else
{
int GameLoaded=0;
void CloseGame(void)
{
+ FCEUI_StopMovie();
if(GameLoaded)
{
if(FCEUGameInfo.type!=GIT_NSF)
#ifdef NETWORK
if(FSettings.NetworkPlay) KillNetplay();
#endif
- GameInterface(GI_CLOSE);
+ GameInterface(GI_CLOSE, 0);
CloseGenie();
GameLoaded=0;
}
#ifdef FRAMESKIP
if(!FSkip)
#endif
- if(SpriteON && spork)
- CopySprites(target);
+ if(scanline>=FSettings.FirstSLine && scanline<=FSettings.LastSLine)
+ {
+ if(SpriteON && spork)
+ CopySprites(target);
-#ifdef FRAMESKIP
- if(!FSkip)
-#endif
- LineUpdateEnd(target);
+ LineUpdateEnd(target);
+ }
sphitx=0x100;
if(ScreenON || SpriteON)
void ResetNES(void)
{
if(!GameLoaded) return;
- GameInterface(GI_RESETM2);
+ GameInterface(GI_RESETM2, 0);
ResetSound();
ResetPPU();
X6502_Reset();
memset(RAM,0x00,0x800);
#endif
ResetMapping();
- GameInterface(GI_POWER);
+ GameInterface(GI_POWER, 0);
PowerSound();
PowerPPU();
timestampbase=0;