Removed superfluous ^Z at the end of files
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -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
@@ -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
Reference in New Issue
Block a user