From a2b713e60fa470caf0e85efe36e2edb1336de114 Mon Sep 17 00:00:00 2001 From: grinvader <> Date: Thu, 17 Mar 2005 18:42:44 +0000 Subject: [PATCH] External/internal chapter features now in the box. PARTY ! =D --- zsnes/src/cpu/execute.asm | 72 ++++++++++++++++------------- zsnes/src/gui/gui.asm | 94 -------------------------------------- zsnes/src/gui/guimouse.inc | 2 + zsnes/src/zstate.c | 6 +-- 4 files changed, 45 insertions(+), 129 deletions(-) diff --git a/zsnes/src/cpu/execute.asm b/zsnes/src/cpu/execute.asm index 31e20dab..c9a5b0a3 100644 --- a/zsnes/src/cpu/execute.asm +++ b/zsnes/src/cpu/execute.asm @@ -106,8 +106,9 @@ EXTSYM SfxPBR,SCBRrel,SfxSCBR,SfxCOLR,hdmaearlstart,SFXCounter EXTSYM fxbit01,fxbit01pcal,fxbit23,fxbit23pcal,fxbit45,fxbit45pcal,fxbit67,fxbit67pcal EXTSYM SfxSFR,nosprincr EXTSYM cpucycle,debstop,switchtovirqdeb,debstop3,switchtonmideb -EXTSYM NetPlayNoMore +EXTSYM NetPlayNoMore,MovieSeekBehind EXTSYM statefileloc,CHIPBATT,SaveSramData,BackupCVFrame,RestoreCVFrame,loadstate +EXTSYM KeyInsrtChap,KeyNextChap,KeyPrevChap,MovieInsertChapter,MovieSeekAhead %ifdef __MSDOS__ EXTSYM dssel @@ -919,7 +920,7 @@ reexecuteb2: je near .activatereset mov eax,[KeySaveState] cmp byte[CNetType],20 - je .net + je near .net test byte[pressed+eax],1 jnz near savestate mov eax,[KeyLoadState] @@ -930,6 +931,35 @@ reexecuteb2: popad jmp reexecuteb .noloadstt0 + mov eax,[KeyInsrtChap] + test byte[pressed+eax],1 + jz .noinsertchapter + mov byte[pressed+eax],0 + pushad + call MovieInsertChapter + popad + jmp continueprognokeys +.noinsertchapter + mov eax,[KeyNextChap] + test byte[pressed+eax],1 + jz .nonextchapter + mov byte[pressed+eax],0 + mov byte[multchange],1 + pushad + call MovieSeekAhead + popad + jmp continueprognokeys +.nonextchapter + mov eax,[KeyPrevChap] + test byte[pressed+eax],1 + jz .noprevchapter + mov byte[pressed+eax],0 + mov byte[multchange],1 + pushad + call MovieSeekBehind + popad + jmp continueprognokeys +.noprevchapter cmp byte[SSKeyPressed],1 je near showmenu cmp byte[SPCKeyPressed],1 @@ -1361,35 +1391,6 @@ NEWSYM exitloop2 mov byte[ExecExitOkay],0 NEWSYM exitloop ret - cmp byte[nextmenupopup],1 - je near .okay - cmp byte[ExecExitOkay],0 - je near .okay - mov byte[pressed+1],0 - mov byte[pressed+59],0 - mov eax,[KeySaveState] - mov byte[pressed+eax],0 - mov eax,[KeyLoadState] - mov byte[pressed+eax],0 - mov eax,[KeyQuickExit] - mov byte[pressed+eax],0 - mov eax,[KeyQuickLoad] - mov byte[pressed+eax],0 - mov eax,[KeyQuickRst] - mov byte[pressed+eax],0 - mov byte[ExecExitOkay],5 - mov eax,[KeyQuickSnapShot] - mov byte[pressed+eax],0 - mov eax,[KeyQuickClock] - mov byte[pressed+eax],0 - mov eax,[KeyQuickSaveSPC] - mov byte[pressed+eax],0 - mov byte[SSKeyPressed],0 - mov byte[SPCKeyPressed],0 - jmp cpuover.returntoloop -.okay - mov byte[ExecExitOkay],5 - ret ALIGN16 @@ -1911,6 +1912,15 @@ NEWSYM cpuover mov eax,[KeyLoadState] test byte[pressed+eax],01h jnz near exitloop + mov eax,[KeyInsrtChap] + test byte[pressed+eax],01h + jnz near exitloop + mov eax,[KeyPrevChap] + test byte[pressed+eax],01h + jnz near exitloop + mov eax,[KeyNextChap] + test byte[pressed+eax],01h + jnz near exitloop mov eax,[KeyQuickRst] test byte[pressed+eax],01h jnz near exitloop diff --git a/zsnes/src/gui/gui.asm b/zsnes/src/gui/gui.asm index cf2c34e5..87dcda00 100644 --- a/zsnes/src/gui/gui.asm +++ b/zsnes/src/gui/gui.asm @@ -3072,100 +3072,6 @@ SECTION .data NEWSYM UnableMovie2, db 'MUST PLAY WITH SOUND OFF',0 NEWSYM UnableMovie3, db 'MUST PLAY WITH SOUND ON',0 -;SECTION .text -; -;MoviePlay: -; cmp byte[CNetType],20 -; je near .dontplay -; mov byte[GUICBHold],0 -; mov dword[MovieCounter],0 -; cmp byte[MovieProcessing],0 -; jne near .dontplay -; mov byte[GUIQuit],2 -; mov ebx,[statefileloc] -; mov eax,[fnamest+ebx-3] -; push eax -; mov dword[fnamest+ebx-3],'.zmv' -; mov al,[CMovieExt] -; mov byte[fnamest+ebx],al -; pushad -; call SRAMChdir -; popad -; mov dword[Totalbyteloaded],0 -; pushad -; call loadstate2 -; popad -; mov edx,fnamest+1 -; call Open_File -; jc near .notexist -; mov bx,ax -; mov [MovieFileHand],bx -; mov cx,[Totalbyteloaded+2] -; mov dx,[Totalbyteloaded] -; call File_Seek -; mov edx,RecData -; mov ecx,16 -; call Read_File -; cmp byte[RecData+2],1 -; jne .noextra -; mov eax,[RecData+3] -; mov [timer2upd],eax -; mov eax,[RecData+7] -; mov [curexecstate],eax -; mov dword[nmiprevaddrl],0 -; mov dword[nmiprevaddrh],0 -; mov dword[nmirept],0 -; mov dword[nmiprevline],224 -; mov dword[nmistatus],0 -; mov dword[spcnumread],0 -; mov dword[spchalted],-1 -; mov byte[NextLineCache],0 -;.noextra -; mov al,[RecData] -; cmp al,[soundon] -; jne near .soundisoff -; cmp dword[ramsize],0 -; je .noram -; mov edx,[sram] -; mov ecx,[ramsize] -; call Read_File -;.noram -; mov byte[MovieProcessing],1 -;.skip -; mov dword[PJoyAOrig],0 -; mov dword[PJoyBOrig],0 -; mov dword[PJoyCOrig],0 -; mov dword[PJoyDOrig],0 -; mov dword[PJoyEOrig],0 -; mov byte[sramsavedis],1 -; mov byte[UseRemoteSRAMData],0 -; mov byte[DSPMem+08h],0 -; mov byte[DSPMem+18h],0 -; mov byte[DSPMem+28h],0 -; mov byte[DSPMem+38h],0 -; mov byte[DSPMem+48h],0 -; mov byte[DSPMem+58h],0 -; mov byte[DSPMem+68h],0 -; mov byte[DSPMem+78h],0 -;.notexist -; call ChangetoLOADdir -; pop eax -; mov ebx,[statefileloc] -; mov [fnamest+ebx-3],eax -;.dontplay -; ret -;.soundisoff -; mov dword[Msgptr],UnableMovie2 -; cmp byte[soundon],0 -; jne .soundon -; mov dword[Msgptr],UnableMovie3 -;.soundon -; mov eax,[MsgCount] -; mov [MessageOn],eax -; call Close_File -; pop eax -; ret -; SECTION .bss NEWSYM Totalbyteloaded, resd 1 NEWSYM sramsavedis, resb 1 diff --git a/zsnes/src/gui/guimouse.inc b/zsnes/src/gui/guimouse.inc index f3816f98..8ae8755e 100644 --- a/zsnes/src/gui/guimouse.inc +++ b/zsnes/src/gui/guimouse.inc @@ -617,6 +617,7 @@ ProcessMouseButtons: cmp byte[GUICBHold],30 ; back to previous chapter jne .noPrevChap mov byte[GUICBHold],0 + mov byte[GUIQuit],2 pushad call MovieSeekBehind popad @@ -625,6 +626,7 @@ ProcessMouseButtons: cmp byte[GUICBHold],31 ; jump to next chapter jne .noNextChap mov byte[GUICBHold],0 + mov byte[GUIQuit],2 pushad call MovieSeekAhead popad diff --git a/zsnes/src/zstate.c b/zsnes/src/zstate.c index 05eb9e64..1dc6604c 100755 --- a/zsnes/src/zstate.c +++ b/zsnes/src/zstate.c @@ -879,8 +879,8 @@ void initpitch() extern unsigned int KeyLoadState, Totalbyteloaded, SfxMemTable[256], SfxCPB; extern unsigned int SfxPBR, SfxROMBR, SfxRAMBR; extern unsigned char pressed[256+128+64], multchange, txtloadmsg[15]; -extern unsigned char txtconvmsg[16], txtnfndmsg[23], MovieProcessing; -extern unsigned char ioportval, SDD1Enable, nexthdma; +extern unsigned char txtconvmsg[16], txtnfndmsg[23], ioportval, SDD1Enable; +extern unsigned char nexthdma; void procexecloop(); @@ -943,8 +943,6 @@ bool zst_load(FILE *fp) repackfunct(); - //headerhack(); //Was in the asm, but why is this needed? - initpitch(); ResetOffset(); ResetState();