From edec78e982576ffeb9ad6b4888ea3837872a4431 Mon Sep 17 00:00:00 2001 From: pagefault <> Date: Tue, 12 Oct 2004 18:42:52 +0000 Subject: [PATCH] Starfox 2 fixed --- zsnes/src/cpu/execute.asm | 6 ++++-- zsnes/src/init.asm | 5 +++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/zsnes/src/cpu/execute.asm b/zsnes/src/cpu/execute.asm index c91a4653..3d1c23d2 100644 --- a/zsnes/src/cpu/execute.asm +++ b/zsnes/src/cpu/execute.asm @@ -109,7 +109,7 @@ EXTSYM C4VBlank EXTSYM dsp1teststuff EXTSYM ReturnFromSPCStall,SPCStallSetting,cycpb268,cycpb358,HIRQSkip,scanlines EXTSYM smallscreenon,ScreenScale -EXTSYM MainLoop,NumberOfOpcodes,SfxCLSR,SfxSCMR,SfxPOR +EXTSYM MainLoop,NumberOfOpcodes,SfxCLSR,SfxSCMR,SfxPOR,SFXIRQFlag EXTSYM sfx128lineloc,sfx160lineloc,sfx192lineloc,sfxobjlineloc,sfxclineloc EXTSYM PLOTJmpa,PLOTJmpb,FxTable,FxTableb,FxTablec,FxTabled EXTSYM SfxPBR,SCBRrel,SfxSCBR,SfxCOLR,hdmaearlstart,SFXCounter @@ -2844,7 +2844,9 @@ NEWSYM cpuover dec word[curypos] mov [tempdh],dh xor dh,dh - mov byte[doirqnext],0 + + mov al,[SFXIRQFlag] + mov byte[doirqnext],al call exechdma call exechdma diff --git a/zsnes/src/init.asm b/zsnes/src/init.asm index de9b7f38..627d2110 100644 --- a/zsnes/src/init.asm +++ b/zsnes/src/init.asm @@ -2440,6 +2440,7 @@ SDD1memmap: SECTION .data NEWSYM memdest, dd 0 +NEWSYM SFXIRQFlag, db 0 NEWSYM SFXCounter, dd 0 SECTION .text @@ -4413,6 +4414,7 @@ NEWSYM CheckROMType ; Chip Detection mov byte[SFXEnable],0 + mov byte[SFXIRQFlag],0 mov byte[C4Enable],0 mov byte[SPC7110Enable],0 mov byte[RTCEnable],0 @@ -4488,12 +4490,14 @@ NEWSYM CheckROMType ;Super FX has SRAM, but only a battery to save it on the latter two cmp ax,01320h jne .notSFXA +int 3h mov byte[SFXEnable],1 jmp .endchpdtct .notSFXA cmp ax,01420h jne .notSFXB mov byte[SFXEnable],1 +int 3h jmp .endchpdtct .notSFXB cmp ax,01520h @@ -4505,6 +4509,7 @@ NEWSYM CheckROMType cmp ax,01A20h jne .notSFXD mov byte[SFXEnable],1 + mov byte[SFXIRQFlag],1 mov byte[SFXSRAM],1 ;Contains Battery jmp .endchpdtct .notSFXD