External/internal chapter features now in the box. PARTY ! =D
This commit is contained in:
@@ -106,8 +106,9 @@ EXTSYM SfxPBR,SCBRrel,SfxSCBR,SfxCOLR,hdmaearlstart,SFXCounter
|
|||||||
EXTSYM fxbit01,fxbit01pcal,fxbit23,fxbit23pcal,fxbit45,fxbit45pcal,fxbit67,fxbit67pcal
|
EXTSYM fxbit01,fxbit01pcal,fxbit23,fxbit23pcal,fxbit45,fxbit45pcal,fxbit67,fxbit67pcal
|
||||||
EXTSYM SfxSFR,nosprincr
|
EXTSYM SfxSFR,nosprincr
|
||||||
EXTSYM cpucycle,debstop,switchtovirqdeb,debstop3,switchtonmideb
|
EXTSYM cpucycle,debstop,switchtovirqdeb,debstop3,switchtonmideb
|
||||||
EXTSYM NetPlayNoMore
|
EXTSYM NetPlayNoMore,MovieSeekBehind
|
||||||
EXTSYM statefileloc,CHIPBATT,SaveSramData,BackupCVFrame,RestoreCVFrame,loadstate
|
EXTSYM statefileloc,CHIPBATT,SaveSramData,BackupCVFrame,RestoreCVFrame,loadstate
|
||||||
|
EXTSYM KeyInsrtChap,KeyNextChap,KeyPrevChap,MovieInsertChapter,MovieSeekAhead
|
||||||
|
|
||||||
%ifdef __MSDOS__
|
%ifdef __MSDOS__
|
||||||
EXTSYM dssel
|
EXTSYM dssel
|
||||||
@@ -919,7 +920,7 @@ reexecuteb2:
|
|||||||
je near .activatereset
|
je near .activatereset
|
||||||
mov eax,[KeySaveState]
|
mov eax,[KeySaveState]
|
||||||
cmp byte[CNetType],20
|
cmp byte[CNetType],20
|
||||||
je .net
|
je near .net
|
||||||
test byte[pressed+eax],1
|
test byte[pressed+eax],1
|
||||||
jnz near savestate
|
jnz near savestate
|
||||||
mov eax,[KeyLoadState]
|
mov eax,[KeyLoadState]
|
||||||
@@ -930,6 +931,35 @@ reexecuteb2:
|
|||||||
popad
|
popad
|
||||||
jmp reexecuteb
|
jmp reexecuteb
|
||||||
.noloadstt0
|
.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
|
cmp byte[SSKeyPressed],1
|
||||||
je near showmenu
|
je near showmenu
|
||||||
cmp byte[SPCKeyPressed],1
|
cmp byte[SPCKeyPressed],1
|
||||||
@@ -1361,35 +1391,6 @@ NEWSYM exitloop2
|
|||||||
mov byte[ExecExitOkay],0
|
mov byte[ExecExitOkay],0
|
||||||
NEWSYM exitloop
|
NEWSYM exitloop
|
||||||
ret
|
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
|
ALIGN16
|
||||||
|
|
||||||
@@ -1911,6 +1912,15 @@ NEWSYM cpuover
|
|||||||
mov eax,[KeyLoadState]
|
mov eax,[KeyLoadState]
|
||||||
test byte[pressed+eax],01h
|
test byte[pressed+eax],01h
|
||||||
jnz near exitloop
|
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]
|
mov eax,[KeyQuickRst]
|
||||||
test byte[pressed+eax],01h
|
test byte[pressed+eax],01h
|
||||||
jnz near exitloop
|
jnz near exitloop
|
||||||
|
|||||||
@@ -3072,100 +3072,6 @@ SECTION .data
|
|||||||
NEWSYM UnableMovie2, db 'MUST PLAY WITH SOUND OFF',0
|
NEWSYM UnableMovie2, db 'MUST PLAY WITH SOUND OFF',0
|
||||||
NEWSYM UnableMovie3, db 'MUST PLAY WITH SOUND ON',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
|
SECTION .bss
|
||||||
NEWSYM Totalbyteloaded, resd 1
|
NEWSYM Totalbyteloaded, resd 1
|
||||||
NEWSYM sramsavedis, resb 1
|
NEWSYM sramsavedis, resb 1
|
||||||
|
|||||||
@@ -617,6 +617,7 @@ ProcessMouseButtons:
|
|||||||
cmp byte[GUICBHold],30 ; back to previous chapter
|
cmp byte[GUICBHold],30 ; back to previous chapter
|
||||||
jne .noPrevChap
|
jne .noPrevChap
|
||||||
mov byte[GUICBHold],0
|
mov byte[GUICBHold],0
|
||||||
|
mov byte[GUIQuit],2
|
||||||
pushad
|
pushad
|
||||||
call MovieSeekBehind
|
call MovieSeekBehind
|
||||||
popad
|
popad
|
||||||
@@ -625,6 +626,7 @@ ProcessMouseButtons:
|
|||||||
cmp byte[GUICBHold],31 ; jump to next chapter
|
cmp byte[GUICBHold],31 ; jump to next chapter
|
||||||
jne .noNextChap
|
jne .noNextChap
|
||||||
mov byte[GUICBHold],0
|
mov byte[GUICBHold],0
|
||||||
|
mov byte[GUIQuit],2
|
||||||
pushad
|
pushad
|
||||||
call MovieSeekAhead
|
call MovieSeekAhead
|
||||||
popad
|
popad
|
||||||
|
|||||||
@@ -879,8 +879,8 @@ void initpitch()
|
|||||||
extern unsigned int KeyLoadState, Totalbyteloaded, SfxMemTable[256], SfxCPB;
|
extern unsigned int KeyLoadState, Totalbyteloaded, SfxMemTable[256], SfxCPB;
|
||||||
extern unsigned int SfxPBR, SfxROMBR, SfxRAMBR;
|
extern unsigned int SfxPBR, SfxROMBR, SfxRAMBR;
|
||||||
extern unsigned char pressed[256+128+64], multchange, txtloadmsg[15];
|
extern unsigned char pressed[256+128+64], multchange, txtloadmsg[15];
|
||||||
extern unsigned char txtconvmsg[16], txtnfndmsg[23], MovieProcessing;
|
extern unsigned char txtconvmsg[16], txtnfndmsg[23], ioportval, SDD1Enable;
|
||||||
extern unsigned char ioportval, SDD1Enable, nexthdma;
|
extern unsigned char nexthdma;
|
||||||
|
|
||||||
void procexecloop();
|
void procexecloop();
|
||||||
|
|
||||||
@@ -943,8 +943,6 @@ bool zst_load(FILE *fp)
|
|||||||
|
|
||||||
repackfunct();
|
repackfunct();
|
||||||
|
|
||||||
//headerhack(); //Was in the asm, but why is this needed?
|
|
||||||
|
|
||||||
initpitch();
|
initpitch();
|
||||||
ResetOffset();
|
ResetOffset();
|
||||||
ResetState();
|
ResetState();
|
||||||
|
|||||||
Reference in New Issue
Block a user