From d0db70d50b85aacd31832e324754c93681cc1129 Mon Sep 17 00:00:00 2001 From: n-a-c-h <> Date: Wed, 13 Oct 2004 18:03:16 +0000 Subject: [PATCH] Reset now doesn't reset parts of RAM that shouldn't be. --- zsnes/src/cpu/execute.asm | 11 ++++++----- zsnes/src/gui/gui.asm | 4 ++-- zsnes/src/init.asm | 14 ++++++++++---- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/zsnes/src/cpu/execute.asm b/zsnes/src/cpu/execute.asm index f242deb4..49106cf6 100644 --- a/zsnes/src/cpu/execute.asm +++ b/zsnes/src/cpu/execute.asm @@ -31,7 +31,7 @@ EXTSYM UpdateDPage EXTSYM MessageOn,MsgCount,Msgptr,StartGUI,cbitmode,debuggeron,romdata EXTSYM frameskip,initvideo,newgfx16b,soundon,cvidmode EXTSYM vidbuffer,vidbufferofsa,vidbufferofsb,disable65816sh,GUISaveVars,virqnodisable -EXTSYM KeySaveState,KeyLoadState,KeyQuickExit,KeyQuickLoad,KeyQuickRst,GUIDoReset +EXTSYM KeySaveState,KeyLoadState,KeyQuickExit,KeyQuickLoad,KeyQuickRst,GUIDoReset, GUIReset EXTSYM KeyOnStA,KeyOnStB,ProcessKeyOn,printnum,sramsavedis,DSPDisable,C4Enable EXTSYM KeyQuickClock,KeyQuickSaveSPC,TimerEnable,AutoIncSaveSlot EXTSYM IRQHack,HIRQLoc,Offby1line,splitflags,joinflags,KeyQuickSnapShot @@ -490,7 +490,7 @@ NEWSYM BackupSystemVars BackupCVMac timer2upd,1 BackupCVMac xa,14 BackupCVMacB spcnumread,4 - BackupCVMacB spchalted,4 + BackupCVMacB spchalted,4 BackupCVMac opcd,6 BackupCVMacB HIRQCycNext,5 BackupCVMac oamaddr,14 @@ -517,7 +517,7 @@ NEWSYM RestoreSystemVars BackupCVRMac timer2upd,1 BackupCVRMac xa,14 BackupCVRMacB spcnumread,4 - BackupCVRMacB spchalted,4 + BackupCVRMacB spchalted,4 BackupCVRMac opcd,6 BackupCVRMacB HIRQCycNext,5 BackupCVRMac oamaddr,14 @@ -591,7 +591,7 @@ NEWSYM BackupCVFrame BackupCVMac timer2upd,1 BackupCVMac xa,14 BackupCVMacB spcnumread,4 - BackupCVMacB spchalted,4 + BackupCVMacB spchalted,4 BackupCVMac opcd,6 BackupCVMacB HIRQCycNext,5 BackupCVMac oamaddr,14 @@ -1315,6 +1315,7 @@ reexecuteb2: jz .noreset .activatereset pushad + mov byte[GUIReset],1 call GUIDoReset popad mov byte[ReturnFromSPCStall],0 @@ -1998,7 +1999,7 @@ NEWSYM stateloader call repackfunct mov dword[cycpbl],0 mov dword[spcnumread],0 - mov dword[spchalted],-1 + mov dword[spchalted],-1 mov byte[nexthdma],0 call headerhack call initpitch diff --git a/zsnes/src/gui/gui.asm b/zsnes/src/gui/gui.asm index 81fd0316..86837bc8 100644 --- a/zsnes/src/gui/gui.asm +++ b/zsnes/src/gui/gui.asm @@ -762,7 +762,7 @@ NEWSYM GUICMessage, resd 1 NEWSYM GUICTimer, resd 1 NEWSYM GUIOn, resb 1 NEWSYM GUIOn2, resb 1 -NEWSYM GUIReset, resb 1 +NEWSYM GUIReset, resb 0 ;GOSPort db 0 NEWSYM CurPalSelect, resb 1 NEWSYM MotionBlur, resb 1 @@ -2324,7 +2324,7 @@ NEWSYM StartGUI mov dword[nmiprevline],224 mov dword[nmistatus],0 mov dword[spcnumread],0 - mov dword[spchalted],-1 + mov dword[spchalted],-1 mov byte[NextLineCache],0 mov byte[DSPMem+08h],0 mov byte[DSPMem+18h],0 diff --git a/zsnes/src/init.asm b/zsnes/src/init.asm index 53436e62..30a3c41f 100644 --- a/zsnes/src/init.asm +++ b/zsnes/src/init.asm @@ -67,7 +67,7 @@ EXTSYM opexec268cphb,opexec358,opexec358b,opexec358cph,spcextraram EXTSYM opexec358cphb,prevoamptr,reg1read,reg2read,reg3read EXTSYM reg4read,resolutn,romdata,scrndis,spcBuffera,spcP,spcRam EXTSYM spcnumread,spchalted,tableD,timeron,vidbright,DSPMem,OldGfxMode2 -EXTSYM SPC700read,SPC700write,GUIDoReset,spc700read +EXTSYM SPC700read,SPC700write,GUIDoReset,spc700read, GUIReset EXTSYM InitC4,SA1Reset,SetAddressingModesSA1,SetAddressingModes,SDD1BankA,SPC7110init EXTSYM RTCinit,InitOBC EXTSYM memaccessspc7110r8,memaccessspc7110r16,memaccessspc7110w8 @@ -1545,7 +1545,7 @@ NEWSYM init65816 mov byte [reg4read],0 mov dword[cycpbl],0 mov dword[spcnumread],0 - mov dword[spchalted],-1 + mov dword[spchalted],-1 mov dword[coladdr],0 mov byte[NMIEnab],1 mov word[VIRQLoc],0 @@ -1672,8 +1672,14 @@ NEWSYM init65816 ;popad ;.notbsx + cmp byte[GUIReset],1 + jne .notreseting + mov byte[GUIReset],0 + jmp .afterramclear +.notreseting helpclearmem wramdataa, 65536 helpclearmem ram7fa, 65536 +.afterramclear cmp byte[BSEnable],1 jne .notbsx2 cmp byte[romtype],1 ;Hack for BS HiROMs @@ -4763,9 +4769,9 @@ int 3h mov dword[memtabler16+60h*4],setaaccessbankr16a mov dword[memtablew16+60h*4],setaaccessbankw16a - mov dword[SetaCmdEnable],00000080h ; 60:0000 + mov dword[SetaCmdEnable],00000080h ; 60:0000 mov esi,[setaramdata] - mov ecx,1024 ; 4096 bytes + mov ecx,1024 ; 4096 bytes .loopsetaclear mov dword[esi],0 add esi,4