Removed superfluous ^Z at the end of files

This commit is contained in:
teuf
2001-04-05 13:27:14 +00:00
parent dffb25d0ef
commit 5cbbb9d4da
143 changed files with 184758 additions and 184882 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,190 +1,189 @@
;Copyright (C) 1997-2001 ZSNES Team ( zsknight@zsnes.com / _demo_@zsnes.com )
;
;This program is free software; you can redistribute it and/or
;modify it under the terms of the GNU General Public License
;as published by the Free Software Foundation; either
;version 2 of the License, or (at your option) any later
;version.
;
;This program is distributed in the hope that it will be useful,
;but WITHOUT ANY WARRANTY; without even the implied warranty of
;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;GNU General Public License for more details.
;
;You should have received a copy of the GNU General Public License
;along with this program; if not, write to the Free Software
;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
ComboClip:
xor eax,eax
mov al,[GUINumCombo]
.next
cmp al,42
jae .excess
mov byte[GUIComboData+eax],0
inc eax
jmp .next
.excess
ret
ComboAdder:
cmp byte[romloadskip],0
je .romloaded
cmp byte[GUIComboGameSpec],0
jne near .skipall
.romloaded
pushad
call ComboClip
mov eax,[NumCombo]
shl eax,6
add eax,[NumCombo]
add eax,[NumCombo]
add eax,CombinDataGlob
cmp byte[GUIComboGameSpec],0
je .nogamespec
sub eax,CombinDataGlob
add eax,CombinDataLocl
.nogamespec
; copy data to eax
mov ecx,20 ; copy name
mov ebx,GUIComboTextH
.loop
mov dl,[ebx]
mov [eax],dl
inc ebx
inc eax
loop .loop
mov ecx,42 ; copy combination code
mov ebx,GUIComboData
.loop2
mov dl,[ebx]
mov [eax],dl
inc ebx
inc eax
loop .loop2
mov dx,[GUIComboKey]
mov [eax],dx
mov dl,[GUIComboPNum]
mov [eax+2],dl
mov dl,[GUIComboLHorz]
mov [eax+3],dl
mov eax,[NumCombo]
mov [GUIccombcursloc],eax
sub eax,7
cmp [GUIccombviewloc],eax
jge .rangeokay
mov [GUIccombviewloc],eax
.rangeokay
inc dword[NumCombo]
mov eax,[NumCombo]
cmp byte[GUIComboGameSpec],0
jne .local
mov [NumComboGlob],eax
jmp .global
.local
mov [NumComboLocl],eax
.global
popad
mov byte[GUIComboTextH],0
mov byte[GUINumCombo],0
mov dword[GUIComboKey],0
.skipall
ret
ComboReplace:
pushad
call ComboClip
mov eax,[GUIccombcursloc]
shl eax,6
add eax,[GUIccombcursloc]
add eax,[GUIccombcursloc]
add eax,CombinDataGlob
cmp byte[GUIComboGameSpec],0
je .nogamespec
sub eax,CombinDataGlob
add eax,CombinDataLocl
.nogamespec
; copy data to eax
mov ecx,20 ; copy name
mov ebx,GUIComboTextH
.loop
mov dl,[ebx]
mov [eax],dl
inc ebx
inc eax
loop .loop
mov ecx,42 ; copy combination code
mov ebx,GUIComboData
.loop2
mov dl,[ebx]
mov [eax],dl
inc ebx
inc eax
loop .loop2
mov dx,[GUIComboKey]
mov [eax],dx
mov dl,[GUIComboPNum]
mov [eax+2],dl
mov dl,[GUIComboLHorz]
mov [eax+3],dl
popad
ret
ComboRemoval:
pushad
mov eax,[GUIccombcursloc]
shl eax,6
add eax,[GUIccombcursloc]
add eax,[GUIccombcursloc]
add eax,CombinDataGlob
cmp byte[GUIComboGameSpec],0
je .nogamespec
sub eax,CombinDataGlob
add eax,CombinDataLocl
.nogamespec
mov ecx,[NumCombo]
sub ecx,[GUIccombcursloc]
dec ecx
cmp ecx,0
jle .nomove
.loop2
mov ebx,66
.loop
mov dl,[eax+66]
mov [eax],dl
inc eax
dec ebx
jnz .loop
loop .loop2
.nomove
dec dword[NumCombo]
mov eax,[NumCombo]
or eax,eax
jz .yeszero
dec eax
.yeszero
cmp [GUIccombviewloc],eax
jbe .notequal
mov [GUIccombviewloc],eax
.notequal
cmp [GUIccombcursloc],eax
jbe .notequal2
mov [GUIccombcursloc],eax
.notequal2
mov eax,[NumCombo]
cmp byte[GUIComboGameSpec],0
jne .local
mov [NumComboGlob],eax
jmp .global
.local
mov [NumComboLocl],eax
.global
popad
ret

;Copyright (C) 1997-2001 ZSNES Team ( zsknight@zsnes.com / _demo_@zsnes.com )
;
;This program is free software; you can redistribute it and/or
;modify it under the terms of the GNU General Public License
;as published by the Free Software Foundation; either
;version 2 of the License, or (at your option) any later
;version.
;
;This program is distributed in the hope that it will be useful,
;but WITHOUT ANY WARRANTY; without even the implied warranty of
;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;GNU General Public License for more details.
;
;You should have received a copy of the GNU General Public License
;along with this program; if not, write to the Free Software
;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
ComboClip:
xor eax,eax
mov al,[GUINumCombo]
.next
cmp al,42
jae .excess
mov byte[GUIComboData+eax],0
inc eax
jmp .next
.excess
ret
ComboAdder:
cmp byte[romloadskip],0
je .romloaded
cmp byte[GUIComboGameSpec],0
jne near .skipall
.romloaded
pushad
call ComboClip
mov eax,[NumCombo]
shl eax,6
add eax,[NumCombo]
add eax,[NumCombo]
add eax,CombinDataGlob
cmp byte[GUIComboGameSpec],0
je .nogamespec
sub eax,CombinDataGlob
add eax,CombinDataLocl
.nogamespec
; copy data to eax
mov ecx,20 ; copy name
mov ebx,GUIComboTextH
.loop
mov dl,[ebx]
mov [eax],dl
inc ebx
inc eax
loop .loop
mov ecx,42 ; copy combination code
mov ebx,GUIComboData
.loop2
mov dl,[ebx]
mov [eax],dl
inc ebx
inc eax
loop .loop2
mov dx,[GUIComboKey]
mov [eax],dx
mov dl,[GUIComboPNum]
mov [eax+2],dl
mov dl,[GUIComboLHorz]
mov [eax+3],dl
mov eax,[NumCombo]
mov [GUIccombcursloc],eax
sub eax,7
cmp [GUIccombviewloc],eax
jge .rangeokay
mov [GUIccombviewloc],eax
.rangeokay
inc dword[NumCombo]
mov eax,[NumCombo]
cmp byte[GUIComboGameSpec],0
jne .local
mov [NumComboGlob],eax
jmp .global
.local
mov [NumComboLocl],eax
.global
popad
mov byte[GUIComboTextH],0
mov byte[GUINumCombo],0
mov dword[GUIComboKey],0
.skipall
ret
ComboReplace:
pushad
call ComboClip
mov eax,[GUIccombcursloc]
shl eax,6
add eax,[GUIccombcursloc]
add eax,[GUIccombcursloc]
add eax,CombinDataGlob
cmp byte[GUIComboGameSpec],0
je .nogamespec
sub eax,CombinDataGlob
add eax,CombinDataLocl
.nogamespec
; copy data to eax
mov ecx,20 ; copy name
mov ebx,GUIComboTextH
.loop
mov dl,[ebx]
mov [eax],dl
inc ebx
inc eax
loop .loop
mov ecx,42 ; copy combination code
mov ebx,GUIComboData
.loop2
mov dl,[ebx]
mov [eax],dl
inc ebx
inc eax
loop .loop2
mov dx,[GUIComboKey]
mov [eax],dx
mov dl,[GUIComboPNum]
mov [eax+2],dl
mov dl,[GUIComboLHorz]
mov [eax+3],dl
popad
ret
ComboRemoval:
pushad
mov eax,[GUIccombcursloc]
shl eax,6
add eax,[GUIccombcursloc]
add eax,[GUIccombcursloc]
add eax,CombinDataGlob
cmp byte[GUIComboGameSpec],0
je .nogamespec
sub eax,CombinDataGlob
add eax,CombinDataLocl
.nogamespec
mov ecx,[NumCombo]
sub ecx,[GUIccombcursloc]
dec ecx
cmp ecx,0
jle .nomove
.loop2
mov ebx,66
.loop
mov dl,[eax+66]
mov [eax],dl
inc eax
dec ebx
jnz .loop
loop .loop2
.nomove
dec dword[NumCombo]
mov eax,[NumCombo]
or eax,eax
jz .yeszero
dec eax
.yeszero
cmp [GUIccombviewloc],eax
jbe .notequal
mov [GUIccombviewloc],eax
.notequal
cmp [GUIccombcursloc],eax
jbe .notequal2
mov [GUIccombcursloc],eax
.notequal2
mov eax,[NumCombo]
cmp byte[GUIComboGameSpec],0
jne .local
mov [NumComboGlob],eax
jmp .global
.local
mov [NumComboLocl],eax
.global
popad
ret

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,499 +1,498 @@
;Copyright (C) 1997-2001 ZSNES Team ( zsknight@zsnes.com / _demo_@zsnes.com )
;
;This program is free software; you can redistribute it and/or
;modify it under the terms of the GNU General Public License
;as published by the Free Software Foundation; either
;version 2 of the License, or (at your option) any later
;version.
;
;This program is distributed in the hope that it will be useful,
;but WITHOUT ANY WARRANTY; without even the implied warranty of
;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;GNU General Public License for more details.
;
;You should have received a copy of the GNU General Public License
;along with this program; if not, write to the Free Software
;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
; Movie, Joystick setting (display) routines, SNES Reset Function
MovieRecord:
mov byte[GUICBHold],0
mov dword[MovieCounter],0
cmp byte[MovieProcessing],0
jne near .dontrecord
; check if movie exists already
mov ebx,[statefileloc]
mov eax,[fnamest+ebx-3]
push eax
mov dword[fnamest+ebx-3],'.ZMV'
mov al,[CMovieExt]
mov byte[fnamest+ebx],al
; check if file exists
cmp byte[MovieRecordWinVal],1
je .nocheck
mov edx,fnamest+1
call Open_File
jc .nocheck
mov bx,ax
call Close_File
mov byte[MovieRecordWinVal],1
jmp .skipstate
.nocheck
mov dword[CFWriteHead],0
mov dword[CReadHead],0
mov dword[ReadHead],0
mov dword[CFWriteStart],64
mov byte[MovieRecordWinVal],0
call ChangetoSRAMdir
mov byte[NoPictureSave],1
call statesaver
mov byte[NoPictureSave],0
mov edx,fnamest+1
call Open_File_Write
mov bx,ax
mov [MovieFileHand],bx
mov cx,0
mov dx,0
call File_Seek_End
mov al,[soundon]
mov [RecData],al
mov eax,[welcome+8]
mov [RecData+1],eax
mov byte[RecData+2],1
mov eax,[timer2upd]
mov [RecData+3],eax
mov eax,[curexecstate]
mov [RecData+7],eax
mov edx,RecData
mov ecx,16
call Write_File
cmp dword[ramsize],0
je .noram
mov edx,[sram]
mov ecx,[ramsize]
call Write_File
.noram
mov byte[MovieProcessing],2
mov dword[MovieBuffSize],0
mov dword[MovieBuffFrame],0
mov byte[RepeatFrame],0
cmp byte[CNetType],20
je near .netstuff
cmp byte[CNetType],21
je near .netstuff
mov dword[nmiprevaddrl],0
mov dword[nmiprevaddrh],0
mov dword[nmirept],0
mov dword[nmiprevline],224
mov dword[nmistatus],0
mov byte[spcnumread],0
mov byte[NextLineCache],0
mov dword[PJoyAOrig],0
mov dword[PJoyBOrig],0
mov dword[PJoyCOrig],0
mov dword[PJoyDOrig],0
mov dword[PJoyEOrig],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
.netstuff
call ChangetoLOADdir
.skipstate
pop eax
mov ebx,[statefileloc]
mov [fnamest+ebx-3],eax
.dontrecord
ret
MovieRecordWinVal db 0
NEWSYM MovieProcessing, db 0
NEWSYM MovieFileHand, dw 0
NEWSYM RepeatFrame, db 0
NEWSYM RecData, times 16 db 0
NEWSYM NoPictureSave, db 0
SkipMovie:
mov byte[MovieRecordWinVal],0
mov byte[GUICBHold],0
ret
MovieStop:
mov byte[GUICBHold],0
cmp byte[MovieProcessing],0
je .skipfileend
mov bx,[MovieFileHand]
mov byte[MovieProcessing],0
call Close_File
.skipfileend
ret
CalibrateDispA:
xor ebx,ebx
mov ecx,256
.a
mov byte[pressed+ebx],0
inc ebx
loop .a
call GUIUnBuffer
call DisplayBoxes
call DisplayMenu
GUIBox 75,103,192,135,160
GUIBox 75,103,192,103,162
GUIBox 75,103,75,135,161
GUIBox 192,103,192,135,159
GUIBox 75,135,192,135,158
GUIOuttext 81,109,guicalberror1,220-15
GUIOuttext 80,108,guicalberror1,220
GUIOuttext 81,117,guicalberror2,220-15
GUIOuttext 80,116,guicalberror2,220
GUIOuttext 81,125,guicalberror3,220-15
GUIOuttext 80,124,guicalberror3,220
call vidpastecopyscr
call WaitForKey
ret
CalibrateDispB:
xor ebx,ebx
mov ecx,256
.a
mov byte[pressed+ebx],0
inc ebx
loop .a
call GUIUnBuffer
call DisplayBoxes
call DisplayMenu
GUIBox 75,103,192,143,160
GUIBox 75,103,192,103,162
GUIBox 75,103,75,143,161
GUIBox 192,103,192,143,159
GUIBox 75,143,192,143,158
GUIOuttext 81,109,guicalberror4,220-15
GUIOuttext 80,108,guicalberror4,220
GUIOuttext 81,117,guicalberror5,220-15
GUIOuttext 80,116,guicalberror5,220
GUIOuttext 81,125,guicalberror6,220-15
GUIOuttext 80,124,guicalberror6,220
GUIOuttext 81,133,guicalberror7,220-15
GUIOuttext 80,132,guicalberror7,220
call vidpastecopyscr
call WaitForKey
ret
guicalberror1 db 'PRESS THE TOP LEFT',0
guicalberror2 db 'CORNER AND PRESS A',0
guicalberror3 db 'BUTTON OR KEY',0
guicalberror4 db 'PRESS THE BOTTOM',0
guicalberror5 db 'RIGHT CORNER AND',0
guicalberror6 db 'PRESS A BUTTON OR',0
guicalberror7 db 'KEY',0
SetAllKeys:
xor ebx,ebx
mov ecx,256+128+64
.a
mov byte[pressed+ebx],0
inc ebx
loop .a
mov byte[GUICBHold],0
mov edi,pl1selk
cmp byte[cplayernum],1
jne .nopl2
mov edi,pl2selk
.nopl2
cmp byte[cplayernum],2
jne .nopl3
mov edi,pl3selk
.nopl3
cmp byte[cplayernum],3
jne .nopl4
mov edi,pl4selk
.nopl4
cmp byte[cplayernum],4
jne .nopl5
mov edi,pl5selk
.nopl5
mov dword[guicpressptr],edi
xor ebx,ebx
mov ecx,12
mov dword[guipressptr],guipresstext4b
.loop
mov eax,[.ordercalb+ebx*4]
shl eax,2
add dword[guicpressptr],eax
push ebx
push ecx
call guipresstestb
pop ecx
pop ebx
add dword[guipressptr],21
mov eax,[.ordercalb+ebx*4]
shl eax,2
sub dword[guicpressptr],eax
inc ebx
dec ecx
jnz .loop
ret
.ordercalb dd 2,3,4,5,1,0,7,10,6,9,8,11
CalibrateDev1:
xor eax,eax
mov al,[cplayernum]
mov ebx,[GUIInputRefP+eax*4]
mov bl,[ebx]
mov byte[GUICBHold],0
cmp byte[pl1p209+eax],0
jne near .port209
cmp bl,1
jbe .nojoy
cmp bl,18
je near .6button
cmp bl,5
je near .6button
cmp bl,6
jae .nojoy
mov dx,201h
call GetCoords
mov eax,[JoyX]
mov [.joybcx],eax
mov eax,[JoyY]
mov [.joybcy],eax
call CalibrateDispA
mov dx,201h
call GetCoords
mov eax,[JoyX]
mov [.joyblx],eax
mov eax,[JoyY]
mov [.joybly],eax
call CalibrateDispB
mov dx,201h
call GetCoords
jmp .procdir
.nojoy
ret
.6button
mov dx,201h
call GetCoords3
mov eax,[JoyX]
mov [.joybcx],eax
mov eax,[JoyY]
mov [.joybcy],eax
call CalibrateDispA
mov dx,201h
call GetCoords3
mov eax,[JoyX]
mov [.joyblx],eax
mov eax,[JoyY]
mov [.joybly],eax
call CalibrateDispB
mov dx,201h
call GetCoords3
.procdir
mov eax,[.joybcx]
add eax,[.joyblx]
shr eax,1
mov [JoyMinX],eax
mov [CalibXmin],eax
mov eax,[.joybcy]
add eax,[.joybly]
shr eax,1
mov [JoyMinY],eax
mov [CalibYmin],eax
mov eax,[.joybcx]
add eax,[JoyX]
shr eax,1
mov [JoyMaxX],eax
mov [CalibXmax],eax
mov eax,[.joybcy]
add eax,[JoyY]
shr eax,1
mov [JoyMaxY],eax
mov [CalibYmax],eax
ret
.port209
cmp bl,1
jbe .nojoy209
cmp bl,18
je near .6button209
cmp bl,5
je near .6button209
cmp bl,6
jae .nojoy209
mov dx,209h
call GetCoords
mov eax,[JoyX]
mov [.joybcx],eax
mov eax,[JoyY]
mov [.joybcy],eax
call CalibrateDispA
mov dx,209h
call GetCoords
mov eax,[JoyX]
mov [.joyblx],eax
mov eax,[JoyY]
mov [.joybly],eax
call CalibrateDispB
mov dx,209h
call GetCoords
jmp .procdir209
.nojoy209
ret
.6button209
mov dx,209h
call GetCoords3
mov eax,[JoyX]
mov [.joybcx],eax
mov eax,[JoyY]
mov [.joybcy],eax
call CalibrateDispA
mov dx,209h
call GetCoords3
mov eax,[JoyX]
mov [.joyblx],eax
mov eax,[JoyY]
mov [.joybly],eax
call CalibrateDispB
mov dx,209h
call GetCoords3
.procdir209
mov eax,[.joybcx]
add eax,[.joyblx]
shr eax,1
mov [JoyMinX209],eax
mov [CalibXmin209],eax
mov eax,[.joybcy]
add eax,[.joybly]
shr eax,1
mov [JoyMinY209],eax
mov [CalibYmin209],eax
mov eax,[.joybcx]
add eax,[JoyX]
shr eax,1
mov [JoyMaxX209],eax
mov [CalibXmax209],eax
mov eax,[.joybcy]
add eax,[JoyY]
shr eax,1
mov [JoyMaxY209],eax
mov [CalibYmax209],eax
ret
.joyblx dd 0
.joybly dd 0
.joybcx dd 0
.joybcy dd 0
SetDevice:
mov byte[GUICBHold],0
xor eax,eax
mov al,[cplayernum]
cmp byte[OSPort],1
ja .notdos
cmp byte[pl1p209+eax],0
jne .port209
.notdos
mov dword[CalibXmin],0
mov ecx,[DevicePtr+eax*4]
mov eax,[GUIInputRefP+eax*4]
mov ebx,[GUIcurrentinputcursloc]
mov bl,[GUIInputRefF+ebx]
mov [eax],bl
mov eax,ecx
mov bh,[cplayernum]
call SetInputDevice
call UpdateDevices
jmp .procmtap
.port209
mov dword[CalibXmin209],0
mov ecx,[DevicePtr+eax*4]
mov eax,[GUIInputRefP+eax*4]
mov ebx,[GUIcurrentinputcursloc]
mov bl,[GUIInputRefF+ebx]
mov [eax],bl
mov eax,ecx
mov bh,[cplayernum]
call SetInputDevice209
call UpdateDevices
.procmtap
mov byte[MultiTap],1
cmp byte[SFXEnable],1
je .dismtap
cmp byte[pl3contrl],0
jne .mtap
cmp byte[pl4contrl],0
jne .mtap
cmp byte[pl5contrl],0
jne .mtap
.dismtap
mov byte[MultiTap],0
.mtap
ret
NEWSYM GUIDoReset
call ClearScreen
; mov byte[NetPlayNoMore],1
mov byte[RestoreValues],0
cmp byte[MovieProcessing],0
je .skipfileend
mov bx,[MovieFileHand]
mov byte[MovieProcessing],0
call Close_File
.skipfileend
call RestoreSystemVars
; clear spc700 ram
mov al,0FFh
mov edi,spcRam
mov ecx,65472
rep stosb
; clear dsp ram
xor al,al
mov edi,DSPMem
mov ecx,256
rep stosb
; reset the snes
call init65816
call procexecloop
mov eax,spcRam
mov edx,0EFh
.loop
mov byte[eax],0
inc eax
dec edx
jnz .loop
xor eax,eax
mov edx,spcRam
mov ax,0FFC9h
add edx,eax
mov [spcPCRam],edx
mov dword [spcS],1EFh
mov dword [spcRamDP],spcRam
mov byte[spcA],0
mov byte[spcX],0
mov byte[spcY],0
mov byte[spcP],0
mov byte[spcNZ],0
mov byte[Voice0Status],0
mov byte[Voice1Status],0
mov byte[Voice2Status],0
mov byte[Voice3Status],0
mov byte[Voice4Status],0
mov byte[Voice5Status],0
mov byte[Voice6Status],0
mov byte[Voice7Status],0
mov byte[GUIQuit],2
ret

;Copyright (C) 1997-2001 ZSNES Team ( zsknight@zsnes.com / _demo_@zsnes.com )
;
;This program is free software; you can redistribute it and/or
;modify it under the terms of the GNU General Public License
;as published by the Free Software Foundation; either
;version 2 of the License, or (at your option) any later
;version.
;
;This program is distributed in the hope that it will be useful,
;but WITHOUT ANY WARRANTY; without even the implied warranty of
;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;GNU General Public License for more details.
;
;You should have received a copy of the GNU General Public License
;along with this program; if not, write to the Free Software
;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
; Movie, Joystick setting (display) routines, SNES Reset Function
MovieRecord:
mov byte[GUICBHold],0
mov dword[MovieCounter],0
cmp byte[MovieProcessing],0
jne near .dontrecord
; check if movie exists already
mov ebx,[statefileloc]
mov eax,[fnamest+ebx-3]
push eax
mov dword[fnamest+ebx-3],'.ZMV'
mov al,[CMovieExt]
mov byte[fnamest+ebx],al
; check if file exists
cmp byte[MovieRecordWinVal],1
je .nocheck
mov edx,fnamest+1
call Open_File
jc .nocheck
mov bx,ax
call Close_File
mov byte[MovieRecordWinVal],1
jmp .skipstate
.nocheck
mov dword[CFWriteHead],0
mov dword[CReadHead],0
mov dword[ReadHead],0
mov dword[CFWriteStart],64
mov byte[MovieRecordWinVal],0
call ChangetoSRAMdir
mov byte[NoPictureSave],1
call statesaver
mov byte[NoPictureSave],0
mov edx,fnamest+1
call Open_File_Write
mov bx,ax
mov [MovieFileHand],bx
mov cx,0
mov dx,0
call File_Seek_End
mov al,[soundon]
mov [RecData],al
mov eax,[welcome+8]
mov [RecData+1],eax
mov byte[RecData+2],1
mov eax,[timer2upd]
mov [RecData+3],eax
mov eax,[curexecstate]
mov [RecData+7],eax
mov edx,RecData
mov ecx,16
call Write_File
cmp dword[ramsize],0
je .noram
mov edx,[sram]
mov ecx,[ramsize]
call Write_File
.noram
mov byte[MovieProcessing],2
mov dword[MovieBuffSize],0
mov dword[MovieBuffFrame],0
mov byte[RepeatFrame],0
cmp byte[CNetType],20
je near .netstuff
cmp byte[CNetType],21
je near .netstuff
mov dword[nmiprevaddrl],0
mov dword[nmiprevaddrh],0
mov dword[nmirept],0
mov dword[nmiprevline],224
mov dword[nmistatus],0
mov byte[spcnumread],0
mov byte[NextLineCache],0
mov dword[PJoyAOrig],0
mov dword[PJoyBOrig],0
mov dword[PJoyCOrig],0
mov dword[PJoyDOrig],0
mov dword[PJoyEOrig],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
.netstuff
call ChangetoLOADdir
.skipstate
pop eax
mov ebx,[statefileloc]
mov [fnamest+ebx-3],eax
.dontrecord
ret
MovieRecordWinVal db 0
NEWSYM MovieProcessing, db 0
NEWSYM MovieFileHand, dw 0
NEWSYM RepeatFrame, db 0
NEWSYM RecData, times 16 db 0
NEWSYM NoPictureSave, db 0
SkipMovie:
mov byte[MovieRecordWinVal],0
mov byte[GUICBHold],0
ret
MovieStop:
mov byte[GUICBHold],0
cmp byte[MovieProcessing],0
je .skipfileend
mov bx,[MovieFileHand]
mov byte[MovieProcessing],0
call Close_File
.skipfileend
ret
CalibrateDispA:
xor ebx,ebx
mov ecx,256
.a
mov byte[pressed+ebx],0
inc ebx
loop .a
call GUIUnBuffer
call DisplayBoxes
call DisplayMenu
GUIBox 75,103,192,135,160
GUIBox 75,103,192,103,162
GUIBox 75,103,75,135,161
GUIBox 192,103,192,135,159
GUIBox 75,135,192,135,158
GUIOuttext 81,109,guicalberror1,220-15
GUIOuttext 80,108,guicalberror1,220
GUIOuttext 81,117,guicalberror2,220-15
GUIOuttext 80,116,guicalberror2,220
GUIOuttext 81,125,guicalberror3,220-15
GUIOuttext 80,124,guicalberror3,220
call vidpastecopyscr
call WaitForKey
ret
CalibrateDispB:
xor ebx,ebx
mov ecx,256
.a
mov byte[pressed+ebx],0
inc ebx
loop .a
call GUIUnBuffer
call DisplayBoxes
call DisplayMenu
GUIBox 75,103,192,143,160
GUIBox 75,103,192,103,162
GUIBox 75,103,75,143,161
GUIBox 192,103,192,143,159
GUIBox 75,143,192,143,158
GUIOuttext 81,109,guicalberror4,220-15
GUIOuttext 80,108,guicalberror4,220
GUIOuttext 81,117,guicalberror5,220-15
GUIOuttext 80,116,guicalberror5,220
GUIOuttext 81,125,guicalberror6,220-15
GUIOuttext 80,124,guicalberror6,220
GUIOuttext 81,133,guicalberror7,220-15
GUIOuttext 80,132,guicalberror7,220
call vidpastecopyscr
call WaitForKey
ret
guicalberror1 db 'PRESS THE TOP LEFT',0
guicalberror2 db 'CORNER AND PRESS A',0
guicalberror3 db 'BUTTON OR KEY',0
guicalberror4 db 'PRESS THE BOTTOM',0
guicalberror5 db 'RIGHT CORNER AND',0
guicalberror6 db 'PRESS A BUTTON OR',0
guicalberror7 db 'KEY',0
SetAllKeys:
xor ebx,ebx
mov ecx,256+128+64
.a
mov byte[pressed+ebx],0
inc ebx
loop .a
mov byte[GUICBHold],0
mov edi,pl1selk
cmp byte[cplayernum],1
jne .nopl2
mov edi,pl2selk
.nopl2
cmp byte[cplayernum],2
jne .nopl3
mov edi,pl3selk
.nopl3
cmp byte[cplayernum],3
jne .nopl4
mov edi,pl4selk
.nopl4
cmp byte[cplayernum],4
jne .nopl5
mov edi,pl5selk
.nopl5
mov dword[guicpressptr],edi
xor ebx,ebx
mov ecx,12
mov dword[guipressptr],guipresstext4b
.loop
mov eax,[.ordercalb+ebx*4]
shl eax,2
add dword[guicpressptr],eax
push ebx
push ecx
call guipresstestb
pop ecx
pop ebx
add dword[guipressptr],21
mov eax,[.ordercalb+ebx*4]
shl eax,2
sub dword[guicpressptr],eax
inc ebx
dec ecx
jnz .loop
ret
.ordercalb dd 2,3,4,5,1,0,7,10,6,9,8,11
CalibrateDev1:
xor eax,eax
mov al,[cplayernum]
mov ebx,[GUIInputRefP+eax*4]
mov bl,[ebx]
mov byte[GUICBHold],0
cmp byte[pl1p209+eax],0
jne near .port209
cmp bl,1
jbe .nojoy
cmp bl,18
je near .6button
cmp bl,5
je near .6button
cmp bl,6
jae .nojoy
mov dx,201h
call GetCoords
mov eax,[JoyX]
mov [.joybcx],eax
mov eax,[JoyY]
mov [.joybcy],eax
call CalibrateDispA
mov dx,201h
call GetCoords
mov eax,[JoyX]
mov [.joyblx],eax
mov eax,[JoyY]
mov [.joybly],eax
call CalibrateDispB
mov dx,201h
call GetCoords
jmp .procdir
.nojoy
ret
.6button
mov dx,201h
call GetCoords3
mov eax,[JoyX]
mov [.joybcx],eax
mov eax,[JoyY]
mov [.joybcy],eax
call CalibrateDispA
mov dx,201h
call GetCoords3
mov eax,[JoyX]
mov [.joyblx],eax
mov eax,[JoyY]
mov [.joybly],eax
call CalibrateDispB
mov dx,201h
call GetCoords3
.procdir
mov eax,[.joybcx]
add eax,[.joyblx]
shr eax,1
mov [JoyMinX],eax
mov [CalibXmin],eax
mov eax,[.joybcy]
add eax,[.joybly]
shr eax,1
mov [JoyMinY],eax
mov [CalibYmin],eax
mov eax,[.joybcx]
add eax,[JoyX]
shr eax,1
mov [JoyMaxX],eax
mov [CalibXmax],eax
mov eax,[.joybcy]
add eax,[JoyY]
shr eax,1
mov [JoyMaxY],eax
mov [CalibYmax],eax
ret
.port209
cmp bl,1
jbe .nojoy209
cmp bl,18
je near .6button209
cmp bl,5
je near .6button209
cmp bl,6
jae .nojoy209
mov dx,209h
call GetCoords
mov eax,[JoyX]
mov [.joybcx],eax
mov eax,[JoyY]
mov [.joybcy],eax
call CalibrateDispA
mov dx,209h
call GetCoords
mov eax,[JoyX]
mov [.joyblx],eax
mov eax,[JoyY]
mov [.joybly],eax
call CalibrateDispB
mov dx,209h
call GetCoords
jmp .procdir209
.nojoy209
ret
.6button209
mov dx,209h
call GetCoords3
mov eax,[JoyX]
mov [.joybcx],eax
mov eax,[JoyY]
mov [.joybcy],eax
call CalibrateDispA
mov dx,209h
call GetCoords3
mov eax,[JoyX]
mov [.joyblx],eax
mov eax,[JoyY]
mov [.joybly],eax
call CalibrateDispB
mov dx,209h
call GetCoords3
.procdir209
mov eax,[.joybcx]
add eax,[.joyblx]
shr eax,1
mov [JoyMinX209],eax
mov [CalibXmin209],eax
mov eax,[.joybcy]
add eax,[.joybly]
shr eax,1
mov [JoyMinY209],eax
mov [CalibYmin209],eax
mov eax,[.joybcx]
add eax,[JoyX]
shr eax,1
mov [JoyMaxX209],eax
mov [CalibXmax209],eax
mov eax,[.joybcy]
add eax,[JoyY]
shr eax,1
mov [JoyMaxY209],eax
mov [CalibYmax209],eax
ret
.joyblx dd 0
.joybly dd 0
.joybcx dd 0
.joybcy dd 0
SetDevice:
mov byte[GUICBHold],0
xor eax,eax
mov al,[cplayernum]
cmp byte[OSPort],1
ja .notdos
cmp byte[pl1p209+eax],0
jne .port209
.notdos
mov dword[CalibXmin],0
mov ecx,[DevicePtr+eax*4]
mov eax,[GUIInputRefP+eax*4]
mov ebx,[GUIcurrentinputcursloc]
mov bl,[GUIInputRefF+ebx]
mov [eax],bl
mov eax,ecx
mov bh,[cplayernum]
call SetInputDevice
call UpdateDevices
jmp .procmtap
.port209
mov dword[CalibXmin209],0
mov ecx,[DevicePtr+eax*4]
mov eax,[GUIInputRefP+eax*4]
mov ebx,[GUIcurrentinputcursloc]
mov bl,[GUIInputRefF+ebx]
mov [eax],bl
mov eax,ecx
mov bh,[cplayernum]
call SetInputDevice209
call UpdateDevices
.procmtap
mov byte[MultiTap],1
cmp byte[SFXEnable],1
je .dismtap
cmp byte[pl3contrl],0
jne .mtap
cmp byte[pl4contrl],0
jne .mtap
cmp byte[pl5contrl],0
jne .mtap
.dismtap
mov byte[MultiTap],0
.mtap
ret
NEWSYM GUIDoReset
call ClearScreen
; mov byte[NetPlayNoMore],1
mov byte[RestoreValues],0
cmp byte[MovieProcessing],0
je .skipfileend
mov bx,[MovieFileHand]
mov byte[MovieProcessing],0
call Close_File
.skipfileend
call RestoreSystemVars
; clear spc700 ram
mov al,0FFh
mov edi,spcRam
mov ecx,65472
rep stosb
; clear dsp ram
xor al,al
mov edi,DSPMem
mov ecx,256
rep stosb
; reset the snes
call init65816
call procexecloop
mov eax,spcRam
mov edx,0EFh
.loop
mov byte[eax],0
inc eax
dec edx
jnz .loop
xor eax,eax
mov edx,spcRam
mov ax,0FFC9h
add edx,eax
mov [spcPCRam],edx
mov dword [spcS],1EFh
mov dword [spcRamDP],spcRam
mov byte[spcA],0
mov byte[spcX],0
mov byte[spcY],0
mov byte[spcP],0
mov byte[spcNZ],0
mov byte[Voice0Status],0
mov byte[Voice1Status],0
mov byte[Voice2Status],0
mov byte[Voice3Status],0
mov byte[Voice4Status],0
mov byte[Voice5Status],0
mov byte[Voice6Status],0
mov byte[Voice7Status],0
mov byte[GUIQuit],2
ret

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff