A lot of updates

This commit is contained in:
pagefault
2003-03-16 23:40:07 +00:00
parent 2d67154926
commit 0480456f7d
25 changed files with 3225 additions and 3539 deletions

View File

@@ -64,9 +64,9 @@
%include "macros.mac"
EXTSYM dssel, curblank, vidpastecopyscr, frameskip, newengen, vsyncon, cantinitmodem
EXTSYM curblank, vidpastecopyscr, frameskip, newengen, vsyncon
EXTSYM cvidmode, antienab, smallscreenon, smallscreence,NetQuit
EXTSYM soundon, StereoSound, SoundCompD, SoundQuality, MusicRelVol,UartType
EXTSYM soundon, StereoSound, SoundCompD, SoundQuality, MusicRelVol
EXTSYM endprog, continueprog, spcBuffera, spcRamcmp, cbitmode, makepal
EXTSYM t1cc, LoadDir, SRAMDir, LoadDrive,SRAMDrive, initsnes, romloadskip
EXTSYM fname, makeextension, sram, clearmem2, loadfileGUI, GUIloadfailed
@@ -89,14 +89,12 @@ EXTSYM cfgdontsave,videotroub,Open_File,Read_File,Close_File,Write_File,Create_F
EXTSYM File_Seek,File_Seek_End,Open_File_Write,Get_Date,Check_Key,Get_Key
EXTSYM Change_Drive,Change_Single_Dir,Change_Dir,Get_Dir,Get_First_Entry
EXTSYM Get_Next_Entry,Set_DTA_Address,timer2upd,curexecstate,TripBufAvail
EXTSYM nmiprevaddrl,nmiprevaddrh,nmirept,nmiprevline,nmistatus,spcnumread
EXTSYM nmiprevaddrl,nmiprevaddrh,nmirept,nmiprevline,nmistatus,spcnumread,spchalted
EXTSYM NextLineCache,VidStartDraw,ResetTripleBuf,GUINGVID
EXTSYM ScanCodeListing,AdjustFrequency,GUISaveVars,Init_Mouse
EXTSYM Get_MouseData,Set_MouseXMax,Set_MouseYMax,Set_MousePosition,Get_MousePositionDisplacement
EXTSYM GUIInit,GUIDeInit,SpecialLine
EXTSYM DrawWater,DrawSmoke,RemoteDisconnect,loadstate3
EXTSYM ModemClearBuffer,IPXSearchval
EXTSYM ipxlookforconnect
EXTSYM DrawWater,DrawBurn,RemoteDisconnect,loadstate3
EXTSYM SA1Enable,SA1RAMArea
EXTSYM GUIFName,GUICName
EXTSYM printnum
@@ -108,7 +106,6 @@ EXTSYM showinfogui
EXTSYM BackupCVFrame
EXTSYM Wait1SecWin,ClearUDPStuff
EXTSYM DisableSUDPPacket,EnableSUDPPacket
EXTSYM ModemGetChar
EXTSYM BackStateSize
EXTSYM ResetExecStuff
EXTSYM RestoreCVFrame
@@ -141,11 +138,8 @@ EXTSYM Force8b,convertnum,converthex
EXTSYM per2exec
EXTSYM hostname
EXTSYM UDPConfig
EXTSYM DeInitModem
EXTSYM snesmouse
EXTSYM pl1upk,pl1downk,pl1leftk,pl1rightk,pl1Lk,pl1Rk,pl1Ak,pl1Bk
EXTSYM deinitipx
EXTSYM InitModem
EXTSYM outofmemfix,yesoutofmemory
EXTSYM CReadHead,ReadHead,CFWriteHead,CFWriteStart
EXTSYM JoyX,JoyY,JoyMinX,JoyMinY,JoyMaxX,JoyMaxY,JoyMinX209,JoyMaxX209
@@ -158,26 +152,29 @@ EXTSYM TCPIPWaitForConnection
EXTSYM tcperr
EXTSYM TCPIPConnectToServer
EXTSYM TCPIPConnectToServerW
EXTSYM initipx
EXTSYM selc0040
EXTSYM ModemCheckRing
EXTSYM ModemCheckDCD
EXTSYM PreparePacketIPX,TCPIPPreparePacket
EXTSYM SendPacketIPX,TCPIPSendPacket,TCPIPSendPacketUDP
EXTSYM TCPIPPreparePacket
EXTSYM TCPIPSendPacket,TCPIPSendPacketUDP
EXTSYM TCPIPDisconnect,TCPIPStatus
EXTSYM DeInitModemC
EXTSYM ipxgetchar,ipxsendchar,TCPIPStoreByte
EXTSYM TCPIPStoreByte
EXTSYM TCPIPGetByte,GUIBIFIL
EXTSYM ModemSendChar
EXTSYM firstsaveinc
EXTSYM nssdip1,nssdip2,nssdip3,nssdip4,nssdip5,nssdip6
%ifndef __MSDOS__
EXTSYM GUIMBVID
%endif
%ifdef __LINUX__
EXTSYM numlockptr
%endif
%ifdef __WIN32__
EXTSYM initDirectDraw
EXTSYM reInitSound
%endif
%ifdef __MSDOS__
EXTSYM dssel, cantinitmodem, ModemClearBuffer, ModemGetChar
EXTSYM InitModem, DeInitModem, ModemCheckRing, ModemCheckDCD
EXTSYM DeInitModemC, ModemSendChar, UartType
EXTSYM deinitipx, IPXSearchval, ipxlookforconnect, initipx
EXTSYM PreparePacketIPX,SendPacketIPX,ipxgetchar,ipxsendchar
%endif
NEWSYM GuiAsmStart
@@ -193,6 +190,7 @@ NEWSYM GuiAsmStart
SECTION .data
; ProcessRemoteCommand
@@ -597,33 +595,37 @@ NEWSYM KeyQuickClock, dd 0
NEWSYM KeyQuickSaveSPC, dd 0
NEWSYM AutoIncSaveSlot, db 0
NEWSYM TCPIPAddress, times 29 db 0
NEWSYM SoundInterpType, db 1
NEWSYM SoundInterpType, db 2
NEWSYM KeyDisplayFPS, dd 0
NEWSYM KeyIncStateSlot, dd 0
NEWSYM KeyDecStateSlot, dd 0
NEWSYM MotionBlur, dd 0
GUIsave equ $-GUIRAdd
NEWSYM ForceROMTiming, db 0
NEWSYM ForceHiLoROM, db 0
section .bss
NEWSYM CombinDataGlob, times 3300 db 0 ; 20-name, 42-combo, 2-key#, 1-P#, 1-ff
NEWSYM CombinDataLocl, times 3300 db 0
NEWSYM ForceROMTiming, resb 1
NEWSYM ForceHiLoROM, resb 1
NEWSYM CombinDataGlob, resb 3300 ; 20-name, 42-combo, 2-key#, 1-P#, 1-ff
NEWSYM CombinDataLocl, resb 3300
section .data
NEWSYM CmdLineNetPlay, db 0
NEWSYM CmdLineTCPIPAddress, times 29 db 0
section .bss
GUIwinorder times 18 db 0
GUIwinpos times 18 db 0
GUIwinactiv times 18 db 0
DialNumber times 40 db 0
ViewBuffer times 50*32 db 0
NEWSYM ModemInitStat, db 0
ModemProcess db 0 ; Shows current dial/answer process
ModemPTimer dd 0 ; Timer for modem process
ModemOKStat db 0 ; OK is detected on modem status
GUIwinorder resb 18
GUIwinpos resb 18
GUIwinactiv resb 18
DialNumber resb 40
ViewBuffer resb 50*32
NEWSYM ModemInitStat, resb 1
ModemProcess resb 1 ; Shows current dial/answer process
ModemPTimer resd 1 ; Timer for modem process
ModemOKStat resb 1 ; OK is detected on modem status
SECTION .data
; LOAD STAT INPT OPT VID SND CHT NET GMKEY GUIOP ABT RSET SRC STCN MOVE CMBO ADDO
GUIwinposxo dd 0,5 ,60 ,30 ,55 ,50 ,35 ,5 ,30 ,10 ,10 ,50 ,65 ,20 ,70 ,50 ,3 ,50
GUIwinposyo dd 0,20 ,70 ,30 ,20 ,20 ,20 ,20 ,30 ,20 ,20 ,20 ,60 ,30 ,65 ,50 ,22 ,60
@@ -631,125 +633,133 @@ GUIwinsizex dd 0,244 ,126 ,189 ,167 ,170 ,188 ,244 ,8*16,235 ,240 ,190 ,9*16,8
GUIwinsizey dd 0,190 ,3*16,166 ,190 ,192 ,188 ,191 ,40 ,189 ,150 ,190 ,42 ,40 ,42 ,70 ,190 ,100
GUIwinptr db 0
GUItextcolor db 0,0,0,0,0
GUIcmenupos db 0
GUIescpress db 0
GUIcwinpress db 0
GUIpmenupos db 0
GUIcrowpos dd 0
GUIpclicked db 0
GUImouseposx dd 0
GUImouseposy dd 0
GUICYLocPtr dd 0
GUIMenuL dd 0
GUIMenuR dd 0
GUIMenuD dd 0
GUIOnMenuItm db 0
NEWSYM GUIQuit, db 0
GUIHold db 0
GUIHoldx dd 0
GUIHoldy dd 0
GUIHoldxm dd 0
GUIHoldym dd 0
GUIcolscaleval dd 0
cwindrawn db 0
GUIWincol dd 0
GUIWincoladd dd 0
GUITemp dd 0
GUIHoldXlimL dd 0
GUIHoldXlimR dd 0
GUIHoldYlim dd 0
GUIHoldYlimR dd 0
cloadnpos dd 0
cloadnposb dd 0
cloadmaxlen dd 0
cloadnleft dd 0
cplayernum db 0
vbuflimtop dd 0
vbuflimbot dd 0
GUIScrolTim1 dd 0
GUIScrolTim2 dd 0
GUICHold dd 0
GUICBHold dd 0
GUICBHold2 dd 0
GUIDClickTL dd 0
GUIDClCWin dd 0
GUIDClCEntry dd 0
GUICResetPos dd 0
GUICStatePos dd 0
GUICCFlash db 0
GUILDFlash db 0
GUIPalConv dd 0
PrevResoln dw 0
SnowMover dd 0
keycontrolval dd 0
NEWSYM CheatBDoor, db 0
NEWSYM ShowTimer, db 0
NEWSYM MousePRClick, db 0
NEWSYM MouseDis, db 0
NEWSYM NetPlayNoMore, db 0
RestoreValues db 0
NEWSYM NetChatFirst, db 0
NEWSYM NetServer, db 0
NEWSYM NetQuitAfter, db 0
NEWSYM NetNewNick, times 16 db 0
NEWSYM NetFilename, times 512 db 0
section .bss
GUItextcolor resb 5
GUIcmenupos resb 1
GUIescpress resb 1
GUIcwinpress resb 1
GUIpmenupos resb 1
GUIcrowpos resd 1
GUIpclicked resb 1
GUImouseposx resd 1
GUImouseposy resd 1
GUICYLocPtr resd 1
GUIMenuL resd 1
GUIMenuR resd 1
GUIMenuD resd 1
GUIOnMenuItm resb 1
NEWSYM GUIQuit, resb 1
GUIHold resb 1
GUIHoldx resd 1
GUIHoldy resd 1
GUIHoldxm resd 1
GUIHoldym resd 1
GUIcolscaleval resd 1
cwindrawn resb 1
GUIWincol resd 1
GUIWincoladd resd 1
GUITemp resd 1
GUIHoldXlimL resd 1
GUIHoldXlimR resd 1
GUIHoldYlim resd 1
GUIHoldYlimR resd 1
cloadnpos resd 1
cloadnposb resd 1
cloadmaxlen resd 1
cloadnleft resd 1
cplayernum resb 1
vbuflimtop resd 1
vbuflimbot resd 1
GUIScrolTim1 resd 1
GUIScrolTim2 resd 1
GUICHold resd 1
GUICBHold resd 1
GUICBHold2 resd 1
GUIDClickTL resd 1
GUIDClCWin resd 1
GUIDClCEntry resd 1
GUICResetPos resd 1
GUICStatePos resd 1
GUICCFlash resb 1
GUILDFlash resb 1
GUIPalConv resd 1
PrevResoln resw 1
SnowMover resd 1
keycontrolval resd 1
NEWSYM CheatBDoor, resb 1
NEWSYM ShowTimer, resb 1
NEWSYM MousePRClick, resb 1
NEWSYM MouseDis, resb 1
NEWSYM NetPlayNoMore, resb 1
RestoreValues resb 1
NEWSYM NetChatFirst, resb 1
NEWSYM NetServer, resb 1
NEWSYM NetQuitAfter, resb 1
NEWSYM NetNewNick, resb 16
NEWSYM NetFilename, resb 512
NEWSYM CheatOn, dd 0
NEWSYM NumCheats, dd 0
NEWSYM cheatdataprev, times 28 db 0 ; leave contents blank
NEWSYM cheatdata, times 28*255+56 db 0 ; toggle, value, address, pvalue, name(22)
NEWSYM CheatOn, resd 1
NEWSYM NumCheats, resd 1
NEWSYM cheatdataprev, resb 28 ; leave contents blank
NEWSYM cheatdata, resb 28*255+56 ; toggle, value, address, pvalue, name(22)
NEWSYM GUIcurrentdir, times 131 db 0
NEWSYM GUIcurrentdir, resb 131
numdrives dd 26
curgsval db 0
curgsval resb 1
SECTION .data
NEWSYM numdrives, dd 26
SubPalTable times 256 db 1 ; Corresponding Gray Scale Color
WhichRemote dd 0 ; Modem = 1, IPX = 2, TCP/IP = 4
Connected dd 0
IDCheckPos dd 0
NEWSYM pl1neten, db 0
NEWSYM pl2neten, db 0
NEWSYM pl3neten, db 0
NEWSYM pl4neten, db 0
NEWSYM pl5neten, db 0
NEWSYM cnetplaybuf, times 512 db 0
NEWSYM cnetptrhead, dd 0
NEWSYM cnetptrtail, dd 0
NEWSYM prevp1net, dd 0
NEWSYM prevp2net, dd 0
NEWSYM prevp3net, dd 0
NEWSYM prevp4net, dd 0
NEWSYM prevp5net, dd 0
NEWSYM netdelayed, db 0
NEWSYM ChatProgress,dd 0
NEWSYM RecvProgress,dd 0
NEWSYM IPXInfoStr, dw 0
NEWSYM IPXInfoStrR, dw 0
NEWSYM GUICMessage, dd 0
NEWSYM GUICTimer, dd 0
NEWSYM GUIOn, db 0
NEWSYM GUIOn2, db 0
NEWSYM GUIReset, db 0
SECTION .bss
WhichRemote resd 1 ; Modem = 1, IPX = 2, TCP/IP = 4
Connected resd 1
IDCheckPos resd 1
NEWSYM pl1neten, resb 1
NEWSYM pl2neten, resb 1
NEWSYM pl3neten, resb 1
NEWSYM pl4neten, resb 1
NEWSYM pl5neten, resb 1
NEWSYM cnetplaybuf, resb 512
NEWSYM cnetptrhead, resd 1
NEWSYM cnetptrtail, resd 1
NEWSYM prevp1net, resd 1
NEWSYM prevp2net, resd 1
NEWSYM prevp3net, resd 1
NEWSYM prevp4net, resd 1
NEWSYM prevp5net, resd 1
NEWSYM netdelayed, resb 1
NEWSYM ChatProgress,resd 1
NEWSYM RecvProgress,resd 1
NEWSYM IPXInfoStr, resw 1
NEWSYM IPXInfoStrR, resw 1
NEWSYM GUICMessage, resd 1
NEWSYM GUICTimer, resd 1
NEWSYM GUIOn, resb 1
NEWSYM GUIOn2, resb 1
NEWSYM GUIReset, resb 1
;GOSPort db 0
NEWSYM CurPalSelect, db 0
NEWSYM CurPalSelect, resb 1
NEWSYM MotionBlur, resb 1
NEWSYM StartLL, dd 0
NEWSYM StartLR, dd 0
NEWSYM LatencyVal, times 32 db 0
NEWSYM StartLL, resd 1
NEWSYM StartLR, resd 1
NEWSYM LatencyVal, resb 32
NEWSYM NetLoadState, db 0
NEWSYM NetLoadState, resb 1
NEWSYM TRVal, dw 0
NEWSYM TGVal, dw 0
NEWSYM TBVal, dw 0
NEWSYM TRVali, dw 0
NEWSYM TGVali, dw 0
NEWSYM TBVali, dw 0
NEWSYM TRVal2, dw 0
NEWSYM TGVal2, dw 0
NEWSYM TBVal2, dw 0
NEWSYM TRVal, resw 1
NEWSYM TGVal, resw 1
NEWSYM TBVal, resw 1
NEWSYM TRVali, resw 1
NEWSYM TGVali, resw 1
NEWSYM TBVali, resw 1
NEWSYM TRVal2, resw 1
NEWSYM TGVal2, resw 1
NEWSYM TBVal2, resw 1
SECTION .text
%macro stim 0
%ifdef __MSDOS__
@@ -1032,14 +1042,14 @@ NEWSYM ExecGUISaveVars
call GUIDeInit
%endmacro
SECTION .data
NEWSYM GUIoldhand9o, dd 0
NEWSYM GUIoldhand9s, dw 0
NEWSYM GUIoldhand8o, dd 0
NEWSYM GUIoldhand8s, dw 0
GUIt1cc dd 0
GUIt1ccSwap db 0
GUIskipnextkey42 db 0
SECTION .bss
NEWSYM GUIoldhand9o, resd 1
NEWSYM GUIoldhand9s, resw 1
NEWSYM GUIoldhand8o, resd 1
NEWSYM GUIoldhand8s, resw 1
GUIt1cc resd 1
GUIt1ccSwap resb 1
GUIskipnextkey42 resb 1
SECTION .text
NEWSYM GUIinit18_2hz
@@ -1099,6 +1109,7 @@ NEWSYM GUI36hzcall
and byte[GUINetTextm2+2],0Fh
ret
%ifdef __MSDOS__
NEWSYM GUIhandler8h
cli
push ds
@@ -1166,6 +1177,7 @@ NEWSYM GUIhandler9h
pop ds
sti
iretd
%endif
%macro loadmenuopen 1
mov al,[GUIcmenupos]
@@ -1211,7 +1223,9 @@ loadnetopen:
loadmenuopen 8
ret
MouseInitOkay db 0
SECTION .bss
MouseInitOkay resb 1
SECTION .text
LoadDetermine:
mov byte[GUIGameMenuData+14],1
@@ -1333,7 +1347,9 @@ DrawSnow:
.nomore
ret
SECTION .data
.giftmsg db 'A GIFT TO YOU IN THE OPTIONS!',0
SECTION .text
ProcessSnowVelocity:
cmp dword[MsgGiftLeft],0
@@ -1388,8 +1404,11 @@ ProcessSnowVelocity:
jnz .loop
ret
OkaySC db 0
SECTION .bss
OkaySC resb 1
SECTION .data
cstempfname db 'tmpchtsr.___',0
SECTION .text
NEWSYM SaveSramData
@@ -1465,7 +1484,9 @@ NEWSYM ProcRewind
mov dword[eax+8],0
.noteq
ret
.temp dd 0,0
section .bss
.temp resd 2
section .text
%macro ProcessOneDigit 1
cmp dl,9
@@ -1500,7 +1521,9 @@ NEWSYM TestSent
mov dword[GUICMessage],.message
mov dword[GUICTimer],100000
ret
SECTION .data
.message db 0,0,0,0,' ',0,0,0,0,0,0,0
SECTION .text
NEWSYM StartGUI
; cmp byte[OSPort],1
@@ -1846,12 +1869,14 @@ NEWSYM StartGUI
mov byte[GUIcmenupos],0
mov byte[GUIcrowpos],0
call loadnetopen
%ifdef __MSDOS__
cmp byte[WhichRemote],1
jne .yesdcd
call ModemCheckDCD
cmp al,1
jne near .nostat20
.yesdcd
%endif
mov byte[RestoreValues],1
pushad
@@ -2029,7 +2054,8 @@ NEWSYM StartGUI
.nowater2
cmp byte[GUIEffect],4
jne .nosmoke
call DrawSmoke
; call DrawSmoke
call DrawBurn
.nosmoke
; call TestSent
cmp byte[CNetType],20
@@ -2087,6 +2113,7 @@ NEWSYM StartGUI
jne near .nomodem
.modem
call ProcessModem
%ifdef __MSDOS__
cmp byte[Connected],1
je near .nomodem
call ModemGetChar
@@ -2121,6 +2148,7 @@ NEWSYM StartGUI
.skipstat
mov dh,0
call NetAddChar
%endif
.nomodem
cmp dword[GUIEditStringcWin],0
@@ -2249,7 +2277,8 @@ NEWSYM StartGUI
mov dword[nmirept],0
mov dword[nmiprevline],224
mov dword[nmistatus],0
mov byte[spcnumread],0
mov dword[spcnumread],0
mov dword[spchalted],-1
mov byte[NextLineCache],0
mov byte[DSPMem+08h],0
mov byte[DSPMem+18h],0
@@ -2474,8 +2503,12 @@ NEWSYM StartGUI
call WinErrorB
jmp continueprog
CheckSumVal dd 0
SECTION .bss
CheckSumVal resd 1
SECTION .data
WrongCheckSum db 10,13,'ROM Data Mismatch',10,13,10,13,0
SECTION .text
SRAMDirc:
; get LoadDrive/LoadDir
@@ -2550,6 +2583,7 @@ guifirsttimemsg:
.mousedis2
ret
SECTION .data
guiftimemsg1 db 'ONE TIME USER REMINDER :',0
guiftimemsg2 db 'PLEASE BE SURE TO READ',0
guiftimemsg3 db 'GUINOTES.TXT FOR AN',0
@@ -2558,6 +2592,7 @@ guiftimemsg5 db 'ALSO, WHENEVER YOU HAVE',0
guiftimemsg6 db 'PROBLEMS, BE SURE TO READ',0
guiftimemsg7 db 'ZSNES.FAQ AND README.TXT',0
guiftimemsg8 db 'PRESS "Z" TO CONTINUE.',0
SECTION .text
guimustrestartmsg:
xor ebx,ebx
@@ -2623,11 +2658,13 @@ guimustrestartmsg:
mov byte[GUIQuit],1
ret
SECTION .data
guiqtimemsg1 db 'ZSNES MUST BE RESTARTED',0
guiqtimemsg2 db 'TO USE THIS OPTION.',0
guiqtimemsg3 db 'THIS PROGRAM WILL NOW',0
guiqtimemsg4 db 'EXIT.',0
guiqtimemsg8 db 'PRESS ANY KEY.',0
SECTION .text
guiprevideo:
xor ebx,ebx
@@ -2695,6 +2732,7 @@ guiprevideo:
.mousedis2
ret
SECTION .data
guiprevidmsg1 db 'ZSNES WILL NOW ATTEMPT',0
guiprevidmsg2 db 'TO CHANGE YOUR VIDEO',0
guiprevidmsg3 db 'MODE. IF THE CHANGE',0
@@ -2702,6 +2740,7 @@ guiprevidmsg4 db 'IS UNSUCCESSFUL, WAIT',0
guiprevidmsg5 db '10 SECONDS AND VIDEO',0
guiprevidmsg6 db 'MODE WILL BE RESET',0
guiprevidmsg7 db 'PRESS ANY KEY',0
SECTION .text
guipostvideo:
mov ecx,255*144
@@ -2790,8 +2829,10 @@ guipostvideo:
mov byte[GUIpclicked],1
ret
SECTION .data
guipostvidmsg1 db 'VIDEO MODE CHANGED.',0
guipostvidmsg2 db 'PRESS ANY KEY',0
SECTION .text
guipostvideofail:
mov dword[guipostvidptr],guipostvidmsg3b
@@ -2883,13 +2924,16 @@ guipostvideofail:
%endif
jmp guipostvideo.pressedfail
SECTION .data
guipostvidmsg1b db 'VIDEO MODE CHANGE FAILED.',0
guipostvidmsg2b db 'UNABLE TO INIT VESA2:',0
guipostvidmsg3b db 'AAAAAAAAAAAAAAAAAAAAAAAAA',0
guipostvidmsg4b db 'AAAAAAAAAAAAAAAAAAAAAAAAA',0
guipostvidmsg5b db 'AAAAAAAAAAAAAAAAAAAAAAAAA',0
guipostvidmsg8b db 'PRESS ANY KEY',0
guipostvidptr dd 0
SECTION .bss
guipostvidptr resd 1
SECTION .text
GUILoadManualDir
mov ebx,GUILoadTextA
@@ -2982,14 +3026,18 @@ GUILoadManualDir
.norefresh
ret
ManualCPtr dd 0
ManualStatus db 0
SECTION .bss
ManualCPtr resd 1
ManualStatus resb 1
NEWSYM MovieCounter, dd 0
NEWSYM MovieCounter, resd 1
SECTION .data
UnableMovie2 db 'MUST PLAY WITH SOUND OFF',0
UnableMovie3 db 'MUST PLAY WITH SOUND ON',0
SECTION .text
MoviePlay:
cmp byte[CNetType],20
je near .dontplay
@@ -3029,7 +3077,8 @@ MoviePlay:
mov dword[nmirept],0
mov dword[nmiprevline],224
mov dword[nmistatus],0
mov byte[spcnumread],0
mov dword[spcnumread],0
mov dword[spchalted],-1
mov byte[NextLineCache],0
.noextra
mov al,[RecData]
@@ -3077,12 +3126,15 @@ MoviePlay:
pop eax
ret
NEWSYM Totalbyteloaded, dd 0
NEWSYM sramsavedis, db 0
SECTION .bss
NEWSYM Totalbyteloaded, resd 1
NEWSYM sramsavedis, resb 1
SECTION .data
DevicePtr dd pl1selk,pl2selk,pl3selk,pl4selk,pl5selk
SECTION .text
CheckMenuItemHelp:
mov al,[GUIcmenupos]
mov [GUIpmenupos],al
@@ -3370,7 +3422,9 @@ GUITryMenuItem:
.nomisc
ret
SECTION .data
.message1 db 'CONFIGURATION FILES SAVED.',0
SECTION .text
DisplayBoxes:
xor esi,esi
@@ -3585,8 +3639,9 @@ GUIProcReset:
dec byte[GUIwinptr]
ret
LoadDuplicFound db 0
SECTION .bss
LoadDuplicFound resb 1
SECTION .text
%macro GUIDMHelp 4
mov byte[GUItextcolor],46
@@ -4289,7 +4344,9 @@ GUISetPal:
jnz .next
ret
NEWSYM GUICPC, times 256 dw 0
SECTION .bss ;ALIGN=32
NEWSYM GUICPC, resw 256
SECTION .text
%macro GUIPal16b 4
mov ax,%2
@@ -4746,9 +4803,11 @@ GUISetPal16:
jnz .next
ret
SECTION .data
.multab db 1,1,1,2,2,3,4,4,5,6,6,7,8,8,9,10,10,11,12,12,13,14,14,15,16,16,
db 17,18,18,19,20,20,21,22,22,23,24,24,25,26,26,27,28,28,29,30,30,
db 31
SECTION .text
GUIBufferData:
mov ecx,16384
@@ -4906,6 +4965,7 @@ GUIconvpal:
mov [cgram],ax
ret
SECTION .data
GUIMousePtr db 50+88,47+88,45+88,43+88,42+88,00,00,00
db 53+88,52+88,46+88,42+88,00,00,00,00
db 55+88,54+88,54+88,44+88,00,00,00,00
@@ -5505,4 +5565,6 @@ db 57,103,110,236,113,118,203,200,22,87,251,7,138,37,12,84,221,171,51,209
db 242,37,89,73,151,162,139,189,131,209,221,96,107,144,175,79,199,123,98,138
db 226,86,221,254,72,14,126,180,200,171,85,94,120,124,196,225,150,57,219,158
SECTION .text
NEWSYM GuiAsmEnd

View File

@@ -222,8 +222,10 @@ CheatCodeSearchProcess:
mov byte[CopyRamToggle],1
ret
CopyRamToggle db 0
FirstSearch db 0
SECTION .bss
CopyRamToggle resb 1
FirstSearch resb 1
SECTION .text
CheatCodeSearchInit:
mov byte[CSInputDisplay],'_'
@@ -1189,7 +1191,9 @@ decodegg:
mov dword[GUIcurrentcheatviewloc],0
.noview
ret
SECTION .data
.GG2Norm db 04h,06h,0Dh,0Eh,02h,07h,08h,03h,0Bh,05h,0Ch,09h,0Ah,00h,0Fh,01h
SECTION .text
decodepar:
; convert code to number format
@@ -1344,10 +1348,12 @@ guicheaterror:
mov dword[GUIcurrentcheatwin],1
mov byte[GUIpclicked],1
ret
SECTION .data
guicheaterror1 db 'INVALID CODE! YOU',0
guicheaterror2 db 'MUST ENTER A VALID',0
guicheaterror3 db 'GAME GENIE,PAR, OR',0
guicheaterror4 db 'GOLD FINGER CODE.',0
guicheaterror5 db 'PRESS ANY KEY.',0
guicheatvalrep db 0
SECTION .bss
guicheatvalrep resb 1
SECTION .text

View File

@@ -122,14 +122,17 @@
%%noclick
%endmacro
GUIfirstkey dd 0
GUIlastkey dd 0
NEWSYM GUIkeydelay, dd 0
NEWSYM GUIkeydelay2, dd 0
GUInextkeydelay dd 0
GUIJoyPadnk db 0,0,0,0,0,0,0,0
NEWSYM GUIDelayB, db 0
UseExtKey db 0
SECTION .bss
GUIfirstkey resd 1
GUIlastkey resd 1
NEWSYM GUIkeydelay, resd 1
NEWSYM GUIkeydelay2, resd 1
GUInextkeydelay resd 1
GUIJoyPadnk resb 8
NEWSYM GUIDelayB, resb 1
UseExtKey resb 1
SECTION .text
GUIgetcurrentinput:
cmp byte[HoldCommand],2
@@ -331,8 +334,10 @@ GUIgetcurrentinput:
cmp dh,32
jb .noprocess7
.ret
%ifdef __MSDOS__
mov al,dh
call ModemSendChar
%endif
ret
.noprocess7
cmp dl,27
@@ -352,17 +357,21 @@ GUIgetcurrentinput:
jmp .nonetwin
.yesnet15
mov byte[CNetType],0
%ifdef __MSDOS__
; cmp byte[OSPort],1
; je .nodeinitipx
call deinitipx
.nodeinitipx
%endif
jmp .closewin
.yesnetwin
%ifdef __MSDOS__
cmp byte[ModemInitStat],0
je .nodeinitmodem
call DeInitModemC
mov byte[ModemInitStat],0
.nodeinitmodem
%endif
mov byte[CNetType],1
ret
.nonetwin
@@ -795,7 +804,9 @@ GUITCPIPKeys:
ret
SECTION .data
NEWSYM TCPIPPortNum, dd 7845
SECTION .text
GUIOptionKeys:
cmp dh,'a'
@@ -1158,16 +1169,6 @@ GUIVideoKeys:
je .nohiresmode7
xor byte[Mode7HiRes16b],1
.nohiresmode7
%ifndef __MSDOS__
cmp dh,'M'
jne .nomotionblur
xor ebx,ebx
mov bl,[cvidmode]
cmp byte[GUIMBVID+ebx],0
je .nomotionblur
xor byte[MotionBlur],1
.nomotionblur
%endif
cmp dh,'B'
jne .nobilinearfilter
xor ebx,ebx
@@ -1176,6 +1177,7 @@ GUIVideoKeys:
je .nobilinearfilter
xor byte[BilinearFilter],1
.nobilinearfilter
%ifdef __WIN32__
cmp dh,'T'
jne .notriplebufferwin
xor eax,eax
@@ -1183,9 +1185,12 @@ GUIVideoKeys:
cmp byte[GUITBWVID+eax],0
je near .notriplebufferwin
xor byte[TripleBufferWin],1
mov byte[vsyncon],0
mov byte[cfgvsync],0
; mov byte[vsyncon],0
; mov byte[cfgvsync],0
call initDirectDraw
.notriplebufferwin
%endif
%ifdef __MSDOS__
cmp dh,'T'
jne .notriplebuffer
xor ebx,ebx
@@ -1193,9 +1198,10 @@ GUIVideoKeys:
cmp byte[GUITBVID+ebx],0
je .notriplebuffer
xor byte[Triplebufen],1
mov byte[vsyncon],0
mov byte[cfgvsync],0
; mov byte[vsyncon],0
; mov byte[cfgvsync],0
.notriplebuffer
%endif
cmp dh,'G'
jne .nograyscale
xor byte[GrayscaleMode],1
@@ -1207,10 +1213,11 @@ GUIVideoKeys:
mov al,[vsyncon]
mov [cfgvsync],al
%ifdef __WIN32__
mov byte[TripleBufferWin],0
; mov byte[TripleBufferWin],0
call initDirectDraw
%endif
%ifdef __MSDOS__
mov byte[Triplebufen],0
; mov byte[Triplebufen],0
%endif
.novsync
%endif
@@ -1226,6 +1233,11 @@ GUISoundKeys:
cmp dh,'E'
jne .notenablesound
xor byte[cfgsoundon],1
%ifdef __WIN32__
pushad
call reInitSound
popad
%endif
.notenablesound
%ifdef __MSDOS__
cmp dh,'F'
@@ -1300,7 +1312,9 @@ GUISoundKeys:
%endif
ret
SECTION .data
.sampratenext db 1,4,5,6,2,3,0,0,0,0
SECTION .text
GUINetMenuKeys1:
cmp dh,'a'
@@ -1321,22 +1335,26 @@ GUINetMenuKeys1:
jne .notmanual
mov byte[CNetType],12
mov byte[ModemProcess],0
%ifdef __MSDOS__
cmp byte[ModemInitStat],1
je .noinit
call InitModem
mov byte[ModemInitStat],1
.noinit
%endif
ret
.notmanual
cmp dh,'W'
jne .notwait
mov byte[CNetType],10
mov byte[ModemProcess],0
%ifdef __MSDOS__
cmp byte[ModemInitStat],1
je .noinit2
call InitModem
mov byte[ModemInitStat],1
.noinit2
%endif
ret
.notwait
ret
@@ -1357,10 +1375,12 @@ GUIGetInputLine:
jne .nodial
mov byte[CNetType],11
mov byte[ModemProcess],0
%ifdef __MSDOS__
cmp byte[ModemInitStat],1
je .noinit
call InitModem
mov byte[ModemInitStat],1
%endif
.noedit
ret
.noinit
@@ -1409,12 +1429,14 @@ GUIGetInputLine:
mov [GUIEditStringcLen],eax
ret
GUIEditString dd 0 ; Pointer to string
GUIEditStringcLen dd 0 ; Pointer to end of string (done in function)
GUIEditStringmLen dd 0 ; Max length of string
GUIEditStringLTxt dd 0 ; blink value, should be set to 0 when box selected
GUIEditStringLstb dd 0 ; if cursor is placed (set in main function)
GUIEditStringcWin dd 0 ; 0 = no text window selected
SECTION .bss
GUIEditString resd 1 ; Pointer to string
GUIEditStringcLen resd 1 ; Pointer to end of string (done in function)
GUIEditStringmLen resd 1 ; Max length of string
GUIEditStringLTxt resd 1 ; blink value, should be set to 0 when box selected
GUIEditStringLstb resd 1 ; if cursor is placed (set in main function)
GUIEditStringcWin resd 1 ; 0 = no text window selected
SECTION .text
GUIComboKeys:
; Calculate Position
@@ -1837,8 +1859,10 @@ InsertSearchCharacter:
pop edx
ret
CSOverValue db 0
CSCurValue dd 0
SECTION .bss
CSOverValue resb 1
CSCurValue resd 1
SECTION .text
InsertSearchDescription:
mov eax,CSDescDisplay
@@ -2792,9 +2816,11 @@ GUILoadKeys:
call GUILoadData
.notdirectload
ret
.foundval dd 0
.numfound dd 0
.maxfound dd 0
SECTION .bss
.foundval resd 1
.numfound resd 1
.maxfound resd 1
SECTION .text
.dirwin
%ifdef __LINUX__

View File

@@ -166,7 +166,9 @@
;LGUI
netlastloaded db 0
SECTION .bss
netlastloaded resb 1
SECTION .text
GUIloadfilename:
cmp byte[CNetType],15
@@ -266,7 +268,8 @@ GUIloadfilename:
mov dword[nmirept],0
mov dword[nmiprevline],224
mov dword[nmistatus],0
mov byte[spcnumread],0
mov dword[spcnumread],0
mov dword[spchalted],-1
mov byte[NextLineCache],0
mov byte[curexecstate],1
@@ -339,14 +342,12 @@ GUIloadfilename:
mov al,2
.nopal2
mov byte[romispal],0
mov word[totlines],262
mov word[totlines],263
mov dword[MsgCount],120
cmp al,1
jbe .nopal
cmp al,0Dh
je .nopal
mov byte[romispal],1
mov word[totlines],314
mov word[totlines],313
mov dword[MsgCount],100
.nopal
call showinfogui
@@ -565,7 +566,9 @@ GUILoadData:
mov byte[GUIwinorder+eax],0
dec byte[GUIwinptr]
ret
SECTION .data
.drivefn db 'A:\temp.tmp',0
SECTION .text
GetNormalEntries2:
cmp byte[showallext],1
@@ -781,8 +784,10 @@ GetLoadLfn:
pop edi
ret
LFNData times 400 db 0
LFNHandle dw 0
SECTION .bss
LFNData resb 400
LFNHandle resw 1
SECTION .text
GetLoadNormal:
call GetNormalEntries2
@@ -1035,8 +1040,11 @@ GetLoadHeader:
jnz .loop3
ret
SECTION .data
.invfile db ' ** INVALID FILE **',0
fnameheadtemp times 22 db 0
SECTION .bss
fnameheadtemp resb 22
SECTION .text
GetNormalDirEntries2:
GUIGetDir2
@@ -1090,7 +1098,9 @@ GetLoadDirNormallfn:
pop edi
ret
Win95Failed db 0
SECTION .bss
Win95Failed resb 1
SECTION .text
NEWSYM GetCurDir
; get Drive/Dir
@@ -1400,16 +1410,19 @@ GUIGetDirs:
%endif
ret
BubbleSorted db 0
GUIcurrentfilewin dd 0
GUIcurrentviewloc dd 0
GUIcurrentcursloc dd 0
GUIcurrentdirviewloc dd 0
GUIcurrentdircursloc dd 0
GUIdirStartLoc dd 0
GUInumentries dd 0
GUIdirentries dd 0
GUIfileentries dd 0
SECTION .bss
BubbleSorted resb 1
GUIcurrentfilewin resd 1
GUIcurrentviewloc resd 1
GUIcurrentcursloc resd 1
GUIcurrentdirviewloc resd 1
GUIcurrentdircursloc resd 1
GUIdirStartLoc resd 1
GUInumentries resd 1
GUIdirentries resd 1
GUIfileentries resd 0
SECTION .data
%ifdef __LINUX__
NEWSYM GUIsmcfind, db '*.[sS][mM][cC]',0
NEWSYM GUIsfcfind, db '*.[sS][fF][cC]',0
@@ -1444,8 +1457,12 @@ NEWSYM GUIfindall, db '*',0
GUIfindDIR db '*.*',0
NEWSYM GUIfindall, db '*.*',0
%endif
SECTION .data
NEWSYM DTALoc, times 2048+32 db 0
SECTION .text
; Routines to load from the Quick Menu
loadquickfname:
pushad
@@ -1622,4 +1639,7 @@ loadquickfname:
.failed
pop eax
ret
.temp times 256 dd 0
SECTION .bss
.temp resd 256
SECTION .text

View File

@@ -90,7 +90,8 @@ MovieRecord:
mov dword[nmirept],0
mov dword[nmiprevline],224
mov dword[nmistatus],0
mov byte[spcnumread],0
mov dword[spcnumread],0
mov dword[spchalted],-1
mov byte[NextLineCache],0
mov dword[PJoyAOrig],0
mov dword[PJoyBOrig],0
@@ -114,12 +115,15 @@ MovieRecord:
.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
SECTION .bss
MovieRecordWinVal resb 1
NEWSYM MovieProcessing, resb 1
NEWSYM MovieFileHand, resw 1
NEWSYM RepeatFrame, resb 1
NEWSYM RecData, resb 16
NEWSYM NoPictureSave, resb 1
SECTION .text
SkipMovie:
mov byte[MovieRecordWinVal],0
@@ -190,6 +194,7 @@ CalibrateDispB:
call WaitForKey
ret
SECTION .data
guicalberror1 db 'PRESS THE TOP LEFT',0
guicalberror2 db 'CORNER AND PRESS A',0
guicalberror3 db 'BUTTON OR KEY',0
@@ -197,6 +202,7 @@ guicalberror4 db 'PRESS THE BOTTOM',0
guicalberror5 db 'RIGHT CORNER AND',0
guicalberror6 db 'PRESS A BUTTON OR',0
guicalberror7 db 'KEY',0
SECTION .text
SetAllKeys:
@@ -247,7 +253,9 @@ SetAllKeys:
dec ecx
jnz .loop
ret
SECTION .data
.ordercalb dd 2,3,4,5,1,0,7,10,6,9,8,11
SECTION .text
CalibrateDev1:
xor eax,eax
@@ -392,10 +400,12 @@ CalibrateDev1:
mov [JoyMaxY209],eax
mov [CalibYmax209],eax
ret
.joyblx dd 0
.joybly dd 0
.joybcx dd 0
.joybcy dd 0
SECTION .bss
.joyblx resd 1
.joybly resd 1
.joybcx resd 1
.joybcy resd 1
SECTION .text
SetDevice:

View File

@@ -23,10 +23,12 @@ EXTSYM CheckScreenSaver
EXTSYM MinimizeWindow
%endif
lastmouseholded db 0
mousebuttonstat dw 0
MouseMoveOkay db 0
LastHoldEnable db 0
SECTION .bss
lastmouseholded resb 1
mousebuttonstat resw 1
MouseMoveOkay resb 1
LastHoldEnable resb 1
SECTION .text
ProcessMouse:
; Process holds
@@ -832,6 +834,9 @@ GUIProcVideo:
je .failed2
mov dword[GUIkeydelay],0
ret
.fullsc
mov [PrevFSMode],al
ret
.failed
mov byte[videotroub],0
mov al,[.prevvid]
@@ -851,7 +856,9 @@ GUIProcVideo:
call GUISetPal
mov dword[GUIkeydelay],0
ret
.prevvid db 0
SECTION .bss
.prevvid resb 1
SECTION .text
NEWSYM SwitchFullScreen
pushad
@@ -1007,6 +1014,43 @@ GUIWinClicked:
%%noclick
%endmacro
%macro GUIClickCButtonf 4
cmp eax,%1+1
jl %%noclick
cmp edx,%2+3
jl %%noclick
cmp eax,%1+6
jg %%noclick
cmp edx,%2+8
jg %%noclick
xor %3,1
%ifdef __WIN32__
pushad
call %4
popad
%endif
%%noclick
%endmacro
%macro GUIClickCButtonfT 5
cmp eax,%1+1
jl %%noclick
cmp edx,%2+3
jl %%noclick
cmp eax,%1+6
jg %%noclick
cmp edx,%2+8
jg %%noclick
xor %3,1
mov %4,0
%ifdef __WIN32__
pushad
call %5
popad
%endif
%%noclick
%endmacro
%macro GUIClickCButtonC 3
cmp eax,%1+1
jl %%noclick
@@ -1108,6 +1152,29 @@ GUIWinClicked:
%%noclick
%endmacro
%ifndef __LINUX__
%macro GUIClickCButton2r 5
cmp eax,%1+1
jl %%noclick
cmp edx,%2+3
jl %%noclick
cmp eax,%1+6
jg %%noclick
cmp edx,%2+8
jg %%noclick
xor %3,%5
mov al,%3
mov %4,al
%ifdef __WIN32__
pushad
call initDirectDraw
popad
%endif
ret
%%noclick
%endmacro
%endif
%macro GUIClickCButton3 5
cmp eax,%1+1
jl %%noclick
@@ -1443,11 +1510,13 @@ GUIWinClicked:
%%nolower
%endmacro
GUIlastdispval dd 0
GUIdispmode dd 0
GUIlastypos dd 0
GUIlastcpos dd 0
GUIlastvpos dd 0
SECTION .bss
GUIlastdispval resd 1
GUIdispmode resd 1
GUIlastypos resd 1
GUIlastcpos resd 1
GUIlastvpos resd 1
SECTION .text
%macro GUISlidebarImpl 10 ; x1,y1,x2,y2,GUI?StA,ScrnSize,ViewLoc,CursLoc,Entries,win#
mov dword[GUIdispmode],0
@@ -2243,7 +2312,7 @@ DisplayGUIVideoClick:
.nocheckboxttb
GUIClickCButton 11,183,byte[GrayscaleMode]
%ifdef __WIN32__
GUIClickCButtonT 115,183,byte[vsyncon],byte[TripleBufferWin]
GUIClickCButtonf 115,183,byte[vsyncon],initDirectDraw
%endif
%ifdef __MSDOS__
GUIClickCButtonT 115,183,byte[vsyncon],byte[Triplebufen]
@@ -2251,16 +2320,9 @@ DisplayGUIVideoClick:
xor ebx,ebx
mov bl,[cvidmode]
cmp byte[GUIM7VID+ebx],0
je .nocheckboxm7
je .nocheckboxtm7
GUIClickCButton5 11,173,byte[Mode7HiRes16b],1
.nocheckboxm7
%ifndef __MSDOS__
mov bl,[cvidmode]
cmp byte[GUIMBVID+ebx],0
je .nocheckboxmb
GUIClickCButton5 11,173,byte[MotionBlur],1
.nocheckboxmb
%endif
.nocheckboxtm7
xor ebx,ebx
mov bl,[cvidmode]
cmp byte[GUIHSVID+ebx],0
@@ -2273,7 +2335,7 @@ DisplayGUIVideoClick:
mov bl,[cvidmode]
cmp byte[GUITBWVID+ebx],0
je near .notriplebufferwin
GUIClickCButtonT 11,123,byte[TripleBufferWin],byte[vsyncon]
GUIClickCButtonf 11,123,byte[TripleBufferWin],initDirectDraw
.notriplebufferwin
%endif
xor ebx,ebx
@@ -2320,15 +2382,17 @@ DisplayGUIVideoClick:
xor al,al
ret
GUINumValue dd 0
GUIBlankVar dd 0
SECTION .bss
GUINumValue resd 1
GUIBlankVar resd 1
SECTION .text
DisplayGUISoundClick:
mov eax,[GUImouseposx]
sub eax,[GUIwinposx+6*4]
mov edx,[GUImouseposy]
sub edx,[GUIwinposy+6*4]
GUIClickCButton 11,21,byte[cfgsoundon]
GUIClickCButtonf 11,21,byte[cfgsoundon],reInitSound
%ifdef __MSDOS__
GUIClickCButton 102,21,byte[cfgforce8b]
%endif
@@ -2404,7 +2468,9 @@ DisplayGUISoundClick:
.nomovebar
ret
SECTION .data
sampratenext db 1,4,5,6,2,3,0,0,0,0
SECTION .text
%macro GUIBoxVar 6
cmp eax,%1
@@ -2600,9 +2666,11 @@ guipresstest:
; pop ebx
ret
SECTION .data
guipresstext1 db 'ENTER THE KEY',0
guipresstext2 db 'OR BUTTON TO USE',0
guipresstext3 db '(ESC TO CLEAR)',0
SECTION .text
guipresstestb:
call GUIUnBuffer
@@ -2674,6 +2742,7 @@ guipresstestb:
; pop ebx
ret
SECTION .data
guipresstext3b db '(ESC TO SKIP)',0
guipresstext4b db 'FOR UP ',0
db 'FOR DOWN ',0
@@ -2687,8 +2756,10 @@ db 'FOR X (TOP BUTTON) ',0
db 'FOR Y (LEFT BUTTON) ',0
db 'FOR THE L BUTTON ',0
db 'FOR THE R BUTTON ',0
guipressptr dd 0
guicpressptr dd 0
SECTION .bss
guipressptr resd 1
guicpressptr resd 1
SECTION .text
DisplayGameOptnsClick:
; Process boxes

View File

@@ -19,6 +19,7 @@
; GUI NetPlay Routines (Modem,IPX,UDP+TCP/IP)
ProcessModem:
%ifdef __WIN32__
cmp byte[ModemProcess],40
jne near .noprocess40
cmp byte[maxskip],3
@@ -28,7 +29,7 @@ ProcessModem:
mov byte[frameskip],0
mov byte[Latencytochange],3
mov byte[Latency],3
mov byte[IPXSearchval],0
; mov byte[IPXSearchval],0
mov byte[RemoteDisconnect],0
mov byte[HoldCommand],1
mov byte[RemoteCommand],1
@@ -63,6 +64,7 @@ ProcessModem:
call .writestr
mov byte[ModemProcess],42
ret
SECTION .data
.tcpipdones db 'DONE',13,10,13,10,'WAITING FOR CLIENT...',0
.tcpipdonec db 'DONE',13,10,13,10,'CONNECTING TO SERVER...',0
.tcpipdones2 db 13,10,13,10,'FOUND CLIENT.',0
@@ -77,6 +79,8 @@ ProcessModem:
.errorinit db 'FAILED NET INIT',0
.errorinit2 db 'CANNOT START SERVER',0
.errorinit3 db 'CANNOT CONNECT',0
SECTION .text
.noprocess40
cmp byte[ModemProcess],41
jne near .noprocess41
@@ -87,7 +91,7 @@ ProcessModem:
mov byte[frameskip],0
mov byte[Latencytochange],3
mov byte[Latency],3
mov byte[IPXSearchval],0
; mov byte[IPXSearchval],0
mov byte[RemoteDisconnect],0
mov byte[HoldCommand],1
mov byte[RemoteCommand],1
@@ -226,6 +230,8 @@ ProcessModem:
mov byte[ModemProcess],66
ret
.noprocess47
%endif
%ifdef __MSDOS__
cmp byte[ModemProcess],30
jne near .noprocess30
mov byte[Latencytochange],2
@@ -477,6 +483,7 @@ ProcessModem:
.nocdc7
ret
.noprocess7
%endif
; Connect initialization
cmp byte[ModemProcess],64
@@ -746,7 +753,9 @@ ProcessModem:
mov dl,[.hexval+edx]
call NetAddChar
ret
SECTION .data
.hexval db '0123456789ABCDEF'
%ifdef __MSDOS__
.unableinit db 'CANNOT INIT DRIVER!',13,10,0
.init db 'ZSNES MODEM TERMINAL',13,10,0
.initb db 13,10,'INITIALIZING MODEM :',13,10,13,10,0
@@ -757,21 +766,28 @@ ProcessModem:
.tout db 'MODEM RESPONSE TIMEOUT',13,10,0
.ata db 'ATA',13,0
.cdet db 'CARRIER DETECTED',13,10,0
.invver db 13,10,'INCOMPATIBLE VERSION!',13,10,0
.rdet db 'WAITING FOR RING...',13,10,0
.invsnd db 'INVALID SOUND SETTING!',13,10,0
.noipx db 13,10,13,10,'UNABLE TO INIT IPX!',13,10,0
.yesipx db 13,10,13,10,'IPX INITIALIZED.',13,10,13,10,'WAITING FOR REMOTE',13,10,0
.localid db 'LOCAL ID : ',0
.remoteid db 'REMOTE ID : ',0
.connectest db 'CONNECTION ESTABLISHED',13,10,0
%endif
.invver db 13,10,'INCOMPATIBLE VERSION!',13,10,0
.invsnd db 'INVALID SOUND SETTING!',13,10,0
%ifdef __WIN32__
.tcpipinit db 'ZSNES NET INTERFACE',13,10,13,10,0
.tcpipserv db 'INIT SERVER ... ',0
.tcpipclie db 'INIT CLIENT ... ',0
InitStr1Done db 0
%endif
SECTION .bss
InitStr1Done resb 1
SECTION .text
NEWSYM PreparePacket
%ifdef __MSDOS__
call PreparePacketIPX
%endif
cmp byte[WhichRemote],4
jne .nottcpip
call TCPIPPreparePacket
@@ -779,7 +795,9 @@ NEWSYM PreparePacket
ret
NEWSYM SendPacket
%ifdef __MSDOS__
call SendPacketIPX
%endif
cmp byte[WhichRemote],4
jne .nottcpip
call TCPIPSendPacket
@@ -787,7 +805,9 @@ NEWSYM SendPacket
ret
NEWSYM SendPacketUDP
%ifdef __MSDOS__
call SendPacketIPX
%endif
cmp byte[WhichRemote],4
jne .nottcpip
call TCPIPSendPacketUDP
@@ -807,15 +827,19 @@ NEWSYM WritetochatBuffer
.nomore
ret
NEWSYM RemoteCommand, db 0
HoldCommand db 0
SECTION .bss
NEWSYM RemoteCommand, resb 1
HoldCommand resb 1
SECTION .text
RemoteDeInit:
%ifdef __MSDOS__
cmp byte[ModemInitStat],0
je .nodeinitmodem
call DeInitModemC
mov byte[ModemInitStat],0
.nodeinitmodem
%endif
mov byte[CNetType],1
cmp byte[WhichRemote],2
jne .noipx
@@ -850,9 +874,12 @@ Checkfileexist:
.failed
mov eax,1
ret
.temp db 0
SECTION .bss
.temp resb 1
SECTION .text
ProcessRemoteCommand:
%ifdef __MSDOS__
cmp byte[WhichRemote],1
jne .notmodem
push edx
@@ -861,6 +888,7 @@ ProcessRemoteCommand:
cmp al,1
jne near .nomulti
.notmodem
%endif
cmp byte[RemoteDisconnect],1
je near .nomulti
call ProcRewind
@@ -1379,6 +1407,7 @@ ProcessRemoteCommand:
mov byte[RemoteCommand],1
ret
SECTION .data
.chatinitial db '>',0
.actinitial db '*',0
.actinitial2 db ' ',0
@@ -1390,6 +1419,7 @@ ProcessRemoteCommand:
.strinvalid db '** INVALID NICK **',13,10,0
.strtoolong db '** NICK IS TOO LONG **',13,10,0
.nickchangeb db ' IS NOW KNOWN AS ',0
SECTION .text
transfersram:
cmp byte[SFXSRAM],0
@@ -1528,6 +1558,7 @@ NEWSYM RemoteGetEAX
NEWSYM RemoteSendChar
%ifdef __MSDOS__
cmp byte[WhichRemote],1
jne .nomodem
call ModemSendChar
@@ -1536,6 +1567,7 @@ NEWSYM RemoteSendChar
jne .noipx
call ipxsendchar
.noipx
%endif
cmp byte[WhichRemote],4
jne .notcpip
call TCPIPStoreByte
@@ -1543,6 +1575,7 @@ NEWSYM RemoteSendChar
ret
NEWSYM RemoteGetChar
%ifdef __MSDOS
cmp byte[WhichRemote],1
jne .nomodem
call ModemGetChar
@@ -1551,12 +1584,14 @@ NEWSYM RemoteGetChar
jne .noipx
call ipxgetchar
.noipx
%endif
cmp byte[WhichRemote],4
jne .notcpip
call TCPIPGetByte
.notcpip
ret
%ifdef __MSDOS__
ModemSendStr:
.loop
mov al,[esi]
@@ -1567,13 +1602,17 @@ ModemSendStr:
jmp .loop
.nomore
ret
%endif
NetLoadHandle dw 0
NetStateSize dd 0
NetStateTotal dd 0
NetStateQuit db 0
NetStateBuffer times 2048 db 0
SECTION .bss
NetLoadHandle resw 1
NetStateSize resd 1
NetStateTotal resd 1
NetStateQuit resb 1
NetStateBuffer resb 2048
SECTION .data
Netfname db 'nettemp.zst',0
SECTION .text
NetLoadStuff:
call loadnetopen
@@ -1783,6 +1822,7 @@ loadstaterecv:
.notzero
ret
SECTION .data
StateLoadedOk db 10,13,'STATE LOADED.',10,13,10,13,0
StateLoadedFail db 10,13,'LOAD FAILED.',10,13,10,13,0
SECTION .text

View File

@@ -804,6 +804,7 @@ DisplayGUILoad:
DrawGUIWinBox 1,229,144,228,152,dl
ret
SECTION .data
GUILoadText1 db 'SELECT FILE TO LOAD :',0
GUILoadText2 db 'DISPLAY TYPE :',0
GUILoadText3 db 'NORMAL 8.3 FORMAT',0
@@ -819,9 +820,12 @@ GUILoadTextC db 'NTSC',0
GUILoadTextD db 'PAL',0
GUILoadTextE db 'LOROM',0
GUILoadTextF db 'HIROM',0
GUILStA dd 0,0,0
GUILStB dd 0,0,0
GUILoadPos db 0
SECTION .bss
GUILStA resd 3
GUILStB resd 3
GUILoadPos resb 1
SECTION .text
DisplayGUIReset:
GUIDrawWindowBox 12,GUIResetDisp
@@ -854,9 +858,11 @@ DisplayGUIReset:
GUIOuttextwin2 12,5,15,GUIResetText1
ret
SECTION .data
GUIResetText1 db 'RESET : ARE YOU SURE ?',0
GUIResetText2 db 'YES',0
GUIResetText3 db 'NO',0
SECTION .text
DisplayGUIStates:
GUIDrawWindowBox 14,GUIStatesDisp
@@ -901,11 +907,13 @@ DisplayGUIStates:
.save2
ret
SECTION .data
GUIStatesText1 db 'OKAY TO SAVE STATE?',0
GUIStatesText2 db 'OKAY TO LOAD STATE?',0
GUIStatesText3 db 'YES',0
GUIStatesText4 db 'NO',0
GUIStatesText5 db 0
SECTION .text
DisplayGUIChoseSave:
GUIDrawWindowBox 2,GUIStateSelDisp
@@ -980,8 +988,10 @@ DisplayGUIChoseSave:
GUIDisplayButtonHole 2,90,43,byte[GUIChoseSaveText2],'9'
ret
SECTION .data
GUIChoseSaveText1 db 'SELECT SAVE SLOT :',0
GUIChoseSaveText2 db '-',0
SECTION .text
%macro DGOptnsDrawBox 3
mov eax,dword[GUIwinposx+9*4]
@@ -1333,6 +1343,7 @@ DisplayGUIInput:
DrawGUIWinBox 3,5,78,107,78,dl
ret
SECTION .data
GUIInputRefF db 0,1,2,3,5,18,6,7,8,9,10,11,14,15,16,17
GUIInputRefB db 0,1,2,3,3,4,6,7,8,9,10,11,11,11,12,13,14,15,5
GUIInputRefP dd pl1contrl,pl2contrl,pl3contrl,pl4contrl,pl5contrl
@@ -1363,10 +1374,13 @@ GUIInputTextd db 'UL',0
GUIInputTexte db 'UR',0
GUIInputTextf db 'DL',0
GUIInputTextg db 'DR',0
GUIIStA dd 0,0,0
GUIcurrentinputviewloc dd 0
GUIcurrentinputcursloc dd 0
SECTION .bss
GUIIStA resd 3
GUIcurrentinputviewloc resd 1
GUIcurrentinputcursloc resd 1
SECTION .text
DisplayGUIOption:
; Frame Rate/Auto Frame Rate/Max Frame Skip/New Gfx Engine/Save Confirm
@@ -1591,6 +1605,7 @@ DisplayGUIOption:
DrawGUIButton 4,129,12,137,22,GUIOptionText10,13,-2,0
ret
SECTION .data
GUIOptionText1 db 'FRAME RATE',0
GUIOptionText2 db 'AUTO FRAME RATE',0
GUIOptionText3 db 'MAX FRAME SKIP',0
@@ -1614,6 +1629,7 @@ GUIOptionTextL db 'USE ALTERNATE TIMER',0
GUIOptionText8 db '-',0
GUIOptionText9 db '+',0
GUIOptionText10 db '-',0
SECTION .text
DisplayGUIVideo:
cmp byte[TripBufAvail],0
@@ -1742,13 +1758,6 @@ DisplayGUIVideo:
je .notext8
GUIOuttextwin2u 5,26,178,GUIVideoText8b,0
.notext8
%ifndef __MSDOS__
mov al,[cvidmode]
cmp byte[GUIMBVID+eax],0
je .notext82
GUIOuttextwin2u 5,26,178,GUIVideoText8b2,0
.notext82
%endif
GUIOuttextwin2u 5,26,188,GUIVideoText8c,0
%ifndef __LINUX__
GUIOuttextwin2u 5,130,188,GUIVideoText9,0
@@ -1850,13 +1859,6 @@ DisplayGUIVideo:
je .notext8b
GUIOuttextwin2 5,25,177,GUIVideoText8b
.notext8b
%ifndef __MSDOS__
mov al,[cvidmode]
cmp byte[GUIMBVID+eax],0
je .notext8b2
GUIOuttextwin2 5,25,177,GUIVideoText8b2
.notext8b2
%endif
GUIOuttextwin2 5,25,187,GUIVideoText8c
%ifndef __LINUX__
GUIOuttextwin2 5,129,187,GUIVideoText9
@@ -1982,18 +1984,6 @@ DisplayGUIVideo:
.nocheckbox1m72
GUIDisplayIconWin 5,11,173,[GUITemp]
.nocheckboxm72
%ifndef __MSDOS__
mov al,[cvidmode]
cmp byte[GUIMBVID+eax],0
je .nocheckboxmb2
mov dword[GUITemp],GUIIconDataCheckBoxUC
cmp byte[MotionBlur],0
je .nocheckboxmb
mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckboxmb
GUIDisplayIconWin 5,11,173,[GUITemp]
.nocheckboxmb2
%endif
mov dword[GUITemp],GUIIconDataCheckBoxUC
cmp byte[GrayscaleMode],0
je .nocheckboxm73
@@ -2147,6 +2137,7 @@ DisplayGUIVideo:
GUIOuttextwin2 5,48,195,[GUITemp]
ret
SECTION .data
GUIVideoText1 db 'VIDEO MODES :',0
GUIVideoText2 db 'FULL SCANLINES',0
GUIVideoTextb db 'SCANLINES:',0
@@ -2164,7 +2155,6 @@ GUIVideoText5b db 'WIDE SCREEN',0 ; -c
GUIVideoText6 db 'SMALL SCREEN',0 ; -c
GUIVideoText7 db 'TRIPLE BUFFERING',0 ; -c
GUIVideoText8b db 'HI-RESOLUTION MODE7',0 ; -c
GUIVideoText8b2 db 'MOTION BLUR',0 ; -c
GUIVideoText8c db 'GRAYSCALE MODE',0 ; -c
GUIVideoText8 db 'SET',0 ; set button
GUIVideoText9 db 'VSYNC',0 ; -c
@@ -2173,10 +2163,14 @@ GUIVideoTextw0 db 'LEGEND:',0
GUIVideoTextw1 db ' S = SCALED TO FIT SCREEN',0
GUIVideoTextw2 db ' R = MATCHED SCREEN RATIO',0
GUIVideoTextw3 db ' D = ALLOW 2XSAI,HIRES,ETC',0
GUIVStA dd 0,0,0
GUIcurrentvideoviewloc dd 0
GUIcurrentvideocursloc dd 0
SECTION .bss
GUIVStA resd 3
GUIcurrentvideoviewloc resd 1
GUIcurrentvideocursloc resd 1
SECTION .text
DisplayGUISound:
@@ -2433,6 +2427,7 @@ DisplayGUISound:
GUIOuttextwin2 6,118,88,[GUITemp]
ret
SECTION .data
GUISoundText1 db 'ENABLE SOUND',0
GUISoundText1b db 'FORCE 8-BIT',0
GUISoundText2 db 'SAMPLING RATE :',0
@@ -2461,7 +2456,7 @@ GUISoundTextT db 'LOWPASS :',0
GUISoundTextU db 'SIMPLE',0
GUISoundTextV db 'DYNAMIC',0
GUISoundTextW db 'HI QUALITY',0
SECTION .text
DisplayGUICheatConv:
@@ -2775,6 +2770,7 @@ DisplayGUICheat:
GUIDisplayIconWin 7,11,186,[GUITemp]
ret
SECTION .data
GUICheatText1 db 'ENTER CODE :',0
GUICheatText2 db 'DESCRIPTION:',0
GUICheatText3 db 'ADDRESS CV PV TGL DESCRIPTION',0
@@ -2793,14 +2789,16 @@ GUICheatTextE db 'NOTE : YOU MAY HAVE TO RESET THE GAME',0
GUICheatTextF db ' AFTER ENTERING THE CODE. REMEMBER TO',0
GUICheatTextG db ' INSERT THE "-" FOR GAME GENIE CODES',0
GUICheatTextJ db 'AUTO-LOAD .CHT FILE AT GAME LOAD',0
GUICheatPosA db 0
GUICheatPosB db 0
GUICStA dd 0,0,0
GUIcurrentcheatviewloc dd 0
GUIcurrentcheatcursloc dd 0
GUIcurrentcheatwin dd 0
ccheatnpos dd 0
ccheatnleft dd 0
SECTION .bss
GUICheatPosA resb 1
GUICheatPosB resb 1
GUICStA resd 3
GUIcurrentcheatviewloc resd 1
GUIcurrentcheatcursloc resd 1
GUIcurrentcheatwin resd 1
ccheatnpos resd 1
ccheatnleft resd 1
SECTION .text
DrawWindowSearch:
GUIDrawWindowBox 13,GUISearchDisp
@@ -3440,29 +3438,35 @@ Cheatmodeadd:
;CheatSrcByteSize db 0
;CheatSrcByteBase db 0
;CheatSrcSearchType db 0
CheatWinMode db 0
CheatSearchStatus db 0
CheatCompareValue dd 0
NumCheatSrc dd 0
GUIcurrentchtsrcviewloc dd 0
GUIcurrentchtsrccursloc dd 0
CSStartEntry dd 0
CSCurEntry dd 0
CheatSearchXPos dd 0
CheatSearchYPos dd 0
CheatLooped dd 0
ccheatnleftb dd 0
CurCStextpos dd 0
SECTION .bss
CheatWinMode resb 1
CheatSearchStatus resb 1
CheatCompareValue resd 1
NumCheatSrc resd 1
GUIcurrentchtsrcviewloc resd 1
GUIcurrentchtsrccursloc resd 1
CSStartEntry resd 1
CSCurEntry resd 1
CheatSearchXPos resd 1
CheatSearchYPos resd 1
CheatLooped resd 1
ccheatnleftb resd 1
CurCStextpos resd 1
SECTION .data
SrcMask dd 0FFh,0FFFFh,0FFFFFFh,0FFFFFFFFh
CSInputDisplay db '_',0,' ',0
CSDescDisplay db ' ',0,0
curentryval dd 0
curentryleft dd 0
curaddrvalcs dd 0
curvaluecs dd 0
GUICSStA dd 0,0,0
SECTION .bss
curentryval resd 1
curentryleft resd 1
curaddrvalcs resd 1
curvaluecs resd 1
GUICSStA resd 3
SECTION .data
GUISrcText1 db 'CHEAT SEARCH',0
GUISrcText2 db 'HAS NOT BEEN',0
GUISrcText3 db 'IMPLEMENTED YET',0
@@ -3500,6 +3504,7 @@ GUICSrcTextV db 'ENTER NEW VALUE:',0
GUICSrcTextW db 'ENTER CHEAT DESCRIPTION:',0
GUICSrcTextX db 'PAR CODE EQUIVALENT:',0
GUICSrcTextY db 'USE ONLY UPPER BYTE',0
SECTION .text
NEWSYM NetAddChar ; dl = color, dh = char
@@ -3621,13 +3626,16 @@ NEWSYM NetAddChar ; dl = color, dh = char
ret
CCursLoc dd 0
CViewLoc dd 0
NViewLoc dd 0
TViewLoc dd 0
section .bss
CCursLoc resd 1
CViewLoc resd 1
NViewLoc resd 1
TViewLoc resd 1
section .text
DisplayNetOptns:
mov dword[GUIwinsizex+8*4],7*16
mov dword[GUIwinsizey+8*4],57
mov dword[GUINetDisp],'IPX '
@@ -3641,6 +3649,7 @@ DisplayNetOptns:
mov dword[GUINetDisp+4],'R! '
jmp .nomodem
.netokay
%ifdef __MSDOS__
cmp byte[CNetType],8
jne .noipxinvalid
mov dword[GUIwinsizex+8*4],7*16
@@ -3648,6 +3657,7 @@ DisplayNetOptns:
mov dword[GUINetDisp],'ERRO'
mov dword[GUINetDisp+4],'R! '
.noipxinvalid
%endif
cmp byte[CNetType],22
je .yesstate
@@ -3703,6 +3713,7 @@ DisplayNetOptns:
mov dword[GUIwinsizex+8*4],201
mov dword[GUIwinsizey+8*4],48
.notcpip
%ifdef __MSDOS__
cmp byte[CNetType],3
je .yesmodem
cmp byte[CNetType],1
@@ -3729,6 +3740,7 @@ DisplayNetOptns:
mov dword[GUINetDisp+8],'TTIN'
mov word[GUINetDisp+12],'GS'
mov byte[GUINetDisp+14],0
%endif
.nomodem
GUIDrawWindowBox 8,GUINetDisp
cmp byte[per2exec],99
@@ -3739,12 +3751,14 @@ DisplayNetOptns:
cmp byte[CNetType],21
je near DisplayNetTCPIPState
%ifdef __MSDOS__
cmp byte[CNetType],1
je near DisplayNetOptnsModem
cmp byte[CNetType],2
je near DisplayNetOptnsModemConfig
cmp byte[CNetType],3
je near DisplayNetOptnsModemDial
%endif
cmp byte[CNetType],4
je near DisplayNetOptnsTCPIP
cmp byte[CNetType],10
@@ -3757,6 +3771,7 @@ DisplayNetOptns:
je near DisplayNetOptnsModemTerm
cmp byte[CNetType],20
je near DisplayNetOptnsChatWindow
%ifdef __MSDOS__
cmp byte[CNetType],7
je near DisplayNetIPXStart
cmp byte[CNetType],8
@@ -3785,6 +3800,7 @@ DisplayNetOptns:
GUIOuttextwin2 8,5,15,GUINetText1
GUIOuttextwin2 8,5,25,GUINetText2
ret
%endif
DisplayNetTCPIPState:
DrawGUIButton 8,73,48,127,59,GUITCPStateText3,64,0,0
@@ -3833,10 +3849,13 @@ DisplayNetTCPIPState:
DrawGUIWinBox 8,122,30,121,40,dl ; 2,0,1,0
ret
SECTION .data
GUITCPStateText1 db 'SENDING STATUS',0
GUITCPStateText2 db 'RECEIVING STATUS',0
GUITCPStateText3 db 'CANCEL',0
SECTION .text
%ifdef __MSDOS
DisplayNetIPXStart:
DrawGUIButton 8,53,48,87,59,GUINetTextZ,34,0,0
sub byte[GUItextcolor],15
@@ -3851,6 +3870,7 @@ DisplayNetIPXStart:
DisplayNetIPXInvalid:
ret
%endif
DisplayNetOptnsTCPIP:
; Your IP:
@@ -3973,6 +3993,7 @@ DisplayNetOptnsInvalid:
GUIOuttextwin2 8,5,25,GUINetText2b
GUIOuttextwin2 8,5,35,GUINetText3b
ret
%ifdef __MSDOS__
DisplayNetOptnsModem:
mov dword[GUIEditStringcWin],0
DrawGUIButton 8,5,15,89,26,GUINetTextG,21,0,0
@@ -4101,6 +4122,7 @@ DisplayNetOptnsModemDial:
; mov dword[GUIEditStringmLenM],27
mov dword[GUIEditStringcWin],1
ret
%endif
DisplayNetOptnsModemTerm:
DrawGUIWinBox 8,6,15,181,127,167
; draw borders
@@ -4378,23 +4400,30 @@ DisplayNetOptnsChatWindow:
; DrawSlideBarWin 8,181,15,[NViewLoc],[TViewLoc],12,97,GUINCStA
ret
NEWSYM GUINCStA, dd 0,0,0
NEWSYM CNetType, db 0
SECTION .bss
NEWSYM GUINCStA, resd 3
NEWSYM CNetType, resb 1
SECTION .data
NEWSYM Latency, db 2
NEWSYM Latencytochange, db 2
NEWSYM LatencyLeft, db 2
NEWSYM NetSwap, db 0
RemCNetType db 0
UseRemoteSRAMData db 0
ChatString times 276 db 0
FileNameMod times 512 db 0
CurCStringPos dd 0
SECTION .bss
NEWSYM NetSwap, resb 1
RemCNetType resb 1
UseRemoteSRAMData resb 1
ChatString resb 276
FileNameMod resb 512
CurCStringPos resd 1
SECTION .data
%ifdef __MSDOS__
GUINetText1 db 'IPX HAS NOT BEEN',0
GUINetText2 db 'IMPLEMENTED YET',0
%endif
GUINetText1b db 'PLEASE SET THE',0
GUINetText2b db 'PERCENTAGE OF',0
GUINetText3b db 'EXECUTION TO 100',0
%ifdef __MSDOS__
GUINetText1c db 'IPX IS IN BETA',0
GUINetText2c db 'STAGES. IT MAY',0
GUINetText3c db 'NOT WORK RIGHT!',0
@@ -4403,9 +4432,11 @@ GUINetText4 db 'COM2 (2F8)',0
GUINetText5 db 'COM3 (3E8)',0
GUINetText6 db 'COM4 (2E8)',0
GUINetText7 db 'IRQ ',0
%endif
GUINetText8 db '00',0
GUINetText9 db '+',0
GUINetTextA db '-',0
%ifdef __MSDOS__
GUINetTextC db 'TONE (ATDT)',0
GUINetTextD db 'PULSE (ATDP)',0
GUINetTextE db 'INIT STRINGS :',0
@@ -4425,12 +4456,17 @@ GUINetTextO db '57600',0
GUINetTextP db '115200',0
GUINetTextQ db 'BAUDRATE (BPS) :',0
GUINetTextR db 'COMPORT :',0
%endif
GUINetTextS db 'CANCEL',0
%ifdef __MSDOS__
GUINetTextT db 'DIAL',0
%endif
GUINetTextU db 'DISCONNECT',0
GUINetTextV db 'PLAYER SELECT :',0
GUINetTextW db '1',0,'2',0,'3',0,'4',0,'5',0
%ifdef __MSDOS__
GUINetTextX db 'USE FOSSIL DRIVER',0
%endif
GUINetTextY db 'LATENCY',0
GUINetTextZ db 'OKAY',0
GUINetTexta db 'SAVE DATA :',0
@@ -4453,7 +4489,11 @@ GUINetTextr1 db 'PLEASE RESTART ZSNESW',0
GUINetTextr2 db 'BEFORE STARTING A NEW',0
GUINetTextr3 db 'NETPLAY SESSION',0
%ifdef __MSDOS__
BaudVal dd 9600,14400,19200,28800,38400,57600,115200
%endif
SECTION .text
DisplayGameOptns:
; Key redefinition for :
@@ -4735,9 +4775,12 @@ DisplayGameOptns:
DGOptnsDrawBox 8+108+70,188,[KeyQuickSaveSPC]
ret
GUIGameOptnsColA db 0
GUIGameOptnsColB db 0
GUIGameDisplayKy dd 0
SECTION .bss
GUIGameOptnsColA resb 1
GUIGameOptnsColB resb 1
GUIGameDisplayKy resd 1
SECTION .data
GUIGameOptnsText1 db 'SOUND DISABLES :',0
GUIGameOptnsText2 db 'CH#',0
GUIGameOptnsText3 db 'BG DISABLES :',0
@@ -4772,6 +4815,7 @@ GUIGameOptnsTextV db 'SAVE SPC',0
GUIGameOptnsTextX db 'DISPLAY FPS',0
GUIGameOptnsTextY db 'ST+',0
GUIGameOptnsTextZ db 'ST-',0
SECTION .text
DisplayGUIOptns:
%ifdef __WIN32__
@@ -5101,6 +5145,7 @@ DisplayGUIOptns:
;lastcursres db 0 ; 0 = go to load, 1 = go to previous menu, 2 = no menu
;resetposn db 1 ; 0 = no window reset, 1 = window reset
SECTION .data
GUIGUIOptnsText1 db 'COLOR:',0
GUIGUIOptnsText2 db 'MOUSE WRAP',0
GUIGUIOptnsText3 db 'MOUSE SHADOW',0
@@ -5112,7 +5157,7 @@ GUIGUIOptnsText8 db 'CLICK ENTERS GUI',0
GUIGUIOptnsText9 dd 0
GUIGUIOptnsTextA db 'USE JOYPAD1',0
GUIGUIOptnsTextB dd 'SNOW EFFECT',0
GUIGUIOptnsTextBb dd 'SMOKE EFFECT',0
GUIGUIOptnsTextBb dd 'BURNING EFFECT',0
GUIGUIOptnsTextC dd 'WATER EFFECT A',0
GUIGUIOptnsTextCb dd 'WATER EFFECT B',0
GUIGUIOptnsTextD dd 'MAIN WINDOW OPTIONS :',0
@@ -5126,6 +5171,7 @@ GUIGUIOptnsTextK db 'WHEEL MOUSE',0
GUIGUIOptnsTextL db 'ALLOW MULTIPLE INSTANCES',0
GUIGUIOptnsTextM db 'FILTERED GUI',0
GUIGUIOptnsTextN db 'TRAP MOUSE CURSOR',0
SECTION .text
DisplayGUIAbout:
GUIDrawWindowBox 11,GUIAboutDisp
@@ -5184,6 +5230,7 @@ DisplayGUIAbout:
GUIOuttextwin2 11,5,75,GUIGUIAboutText5
ret
SECTION .data
GUIGUIAboutText1 db 'ZSNES V',ZVERSION,0
GUIGUIAboutText2 db 'CODED BY : ',0
GUIGUIAboutText3 db ' ZSKNIGHT',0
@@ -5212,6 +5259,8 @@ GUIGUIAboutTextE db 'certain conditions; please',0
GUIGUIAboutTextF db 'please read ',39,'LICENSE',39,0
GUIGUIAboutTextG db 'thoroughly before using it.',0
SECTION .text
DisplayGUIMovies:
GUIDrawWindowBox 15,GUIMovieDisp
cmp byte[MovieRecordWinVal],0
@@ -5312,6 +5361,7 @@ DisplayGUIMovies:
GUIDisplayButtonHole 15,80,55,byte[CMovieExt],'9'
ret
SECTION .data
GUIMovieText1 db 'PLAY',0
GUIMovieText2 db 'RECORD',0
GUIMovieText3 db 'STOP',0
@@ -5324,6 +5374,8 @@ GUIMovieText9 db 'NO',0
GUIMovieTextA db 'STATUS : ',0
CMovieExt db 'v'
SECTION .text
; Key types: Up, Down, Left, Right, A, B, X, Y, L, R (Press/Relase/P+R)
; Frame delays: 1 frame, 2, 3, 4, 5, 1 sec., 2, 3 ,4 ,5
@@ -5712,6 +5764,15 @@ DisplayGUICombo:
mov byte[GUIGameDisplayKy+3],0
GUIOuttextwin2c 16,139,94,GUIGameDisplayKy
; Buttons
mov al,[TextColorSp+2]
add al,15
mov byte[GUItextcolor],al
DrawGUIButton 16,202,20,246,31,GUIComboTextA,60,-1,0
DrawGUIButton 16,202,35,246,46,GUIComboTextB,61,-1,0
DrawGUIButton 16,202,50,246,61,GUIComboTextC,62,-1,0
DrawGUIButton 16,202,65,246,76,GUIComboTextD,63,-1,0
; Hole Switches
GUIDisplayButtonHole 16,178,82,byte[GUIComboPNum],0
GUIDisplayButtonHole 16,196,82,byte[GUIComboPNum],1
@@ -5921,27 +5982,28 @@ DisplayGUICombo:
.noscrolldisplay
ret
GUIccombviewloc dd 0
GUIccombcursloc dd 0
GUIccomblcursloc dd 0
NEWSYM NumCombo, dd 0
NumComboGlob dd 0
NEWSYM NumComboLocl, dd 0
GUICSStC dd 0,0,0
GUIComboKey dd 0
GUIComboPos db 0
GUIComboPNum db 0
GUIComboLHorz db 0
NEWSYM GUINumCombo, db 0
GUIComboData times 50 db 0
GUIScrolBufA times 21 db 0
GUIScrolBufB times 10 db 0
SECTION .bss
GUIccombviewloc resd 1
GUIccombcursloc resd 1
GUIccomblcursloc resd 1
NEWSYM NumCombo, resd 1
NumComboGlob resd 1
NEWSYM NumComboLocl, resd 1
GUICSStC resd 3
GUIComboKey resd 1
GUIComboPos resb 1
GUIComboPNum resb 1
GUIComboLHorz resb 1
NEWSYM GUINumCombo, resb 1
GUIComboData resb 50
GUIScrolBufA resb 21
GUIScrolBufB resb 10
;CombinDataGlob times 3300 db 0 ; 20-name, 42-combo, 2-key#, 1-P#, 1-ff
;CombinDataLocl times 3300 db 0
SECTION .data
GUIComboText1 db 'DESCRIPTION',0
GUIComboText2 db 'KEY P# LH',0
GUIComboText3 db ' ',0
@@ -6024,6 +6086,8 @@ GUIIconDataComboSecond:
db 0 ,48 ,46 ,44 ,42 ,0 ,0 ,0 ,0 ,0
db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0
SECTION .text
DisplayGUIAddOns:
GUIDrawWindowBox 17,GUIAddOnsDisp
sub byte[GUItextcolor],15
@@ -6095,6 +6159,7 @@ DisplayGUIAddOns:
GUIDisplayIconWin 17,109,93,[GUITemp]
ret
SECTION .data
GUIAddOnText1 db 'NONE',0
GUIAddOnText2 db 'SNES MOUSE AT PORT #1',0
GUIAddOnText3 db 'SNES MOUSE AT PORT #2',0
@@ -6126,9 +6191,11 @@ GUIStatesDisp db 'STATE CONFIRM',0
GUIComboDisp db 'KEY COMBINATION EDITOR',0
GUIAddOnsDisp db 'ADD-ON SELECTOR',0
GUIItemBoxColor dd 0
TextColorSp dd 0
SECTION .bss
GUIItemBoxColor resd 1
TextColorSp resd 1
SECTION .data
NEWSYM GUIMenuItem, db 'GAME ',0
db 'CONFIG',0
db 'CHEAT ',0
@@ -6136,3 +6203,4 @@ NEWSYM GUIMenuItem, db 'GAME ',0
db 'MISC ',0
db 25,0
SECTION .text

View File

@@ -85,14 +85,25 @@ GUIUnBuffer:
jnz .loop
ret
SECTION .bss
NEWSYM nextmenupopup, resb 1
NEWSYM NoInputRead, resb 1
NEWSYM PrevMenuPos, resb 1
NEWSYM MenuDisplace, resd 1
NEWSYM MenuDisplace16, resd 1
NEWSYM MenuNoExit, resb 1
NEWSYM SPCSave, resb 1
NEWSYM nextmenupopup, db 0
NEWSYM NoInputRead, db 0
NEWSYM PrevMenuPos, db 0
NEWSYM MenuDisplace, dd 0
NEWSYM MenuDisplace16, dd 0
NEWSYM MenuNoExit, db 0
NEWSYM SPCSave, db 0
%ifdef SPCDUMP
SECTION .data
NEWSYM SPCSave_dump, db 0
SECTION .bss
EXTSYM SPCSave_buffer, SPCSave_ports
NEWSYM SPCSave_handle, resd 1
%endif
SECTION .text
NEWSYM showmenu
mov byte[ForceNonTransp],1
@@ -160,13 +171,13 @@ NEWSYM showmenu
call savepcx
jmp .nopalwrite
.nosskey
cmp byte[SPCKeyPressed],1
je near .savespckey
test byte[pressed+14],1
jz .nof12
call savepcx
jmp .nopalwrite
.nof12
cmp byte[SPCKeyPressed],1
je near .savespckey
mov dword[menucloc],0
cmp byte[nextmenupopup],0
je .nomenuinc2
@@ -237,10 +248,10 @@ NEWSYM showmenu
.nogoup
sub dword[menucloc],10*288
call menudrawbox8b
mov al,[newengen]
mov byte[newengen],0
; mov al,[newengen] ; WTF?
; mov byte[newengen],0
mov [newengen],al
; mov [newengen],al
jmp .nextkey
.noup
cmp al,80
@@ -251,12 +262,12 @@ NEWSYM showmenu
.nogodown
add dword[menucloc],10*288
call menudrawbox8b
mov al,[newengen]
mov byte[newengen],0
push eax
; mov al,[newengen]
; mov byte[newengen],0
; push eax
call copyvid
pop eax
mov [newengen],al
; pop eax
; mov [newengen],al
jmp .nextkey
.nodown
jmp .nextkey
@@ -268,12 +279,12 @@ NEWSYM showmenu
jmp .nextkey
.done
call GUIUnBuffer
mov al,[newengen]
mov byte[newengen],0
push eax
; mov al,[newengen]
; mov byte[newengen],0
; push eax
call copyvid
pop eax
mov [newengen],al
; pop eax
; mov [newengen],al
cmp dword[menucloc],0
jne .nosavepcx
call savepcx
@@ -340,17 +351,34 @@ NEWSYM showmenu
.savespckey
cmp byte[spcon],0
je .nospc
cmp byte[newengen],1
%ifdef SPCDUMP
cmp byte[SPCSave_dump], 1
jne .start_dump
mov ebx, [SPCSave_handle]
mov eax, -1
mov [SPCSave_buffer], eax
mov ecx, 4
mov edx, SPCSave_buffer
call Write_File
call Close_File
mov byte[SPCSave_dump], 0
jmp .nospcsave
.start_dump
%endif
; cmp byte[newengen],1
; je .unablespc
mov dword[Msgptr],.search
mov eax,[MsgCount]
mov [MessageOn],eax
mov al,[newengen]
mov byte[newengen],0
push eax
; mov al,[newengen]
; mov byte[newengen],0
; push eax
call copyvid
pop eax
mov [newengen],al
; pop eax
; mov [newengen],al
; call breakatsignc
; cmp byte[prbreak],1
; je .yesesc
@@ -360,6 +388,7 @@ NEWSYM showmenu
; cmp byte[prbreak],1
; je .yesesc
call savespcdata
mov byte[curblank],40h
mov dword[Msgptr],.saved
mov eax,[MsgCount]
@@ -393,12 +422,12 @@ NEWSYM showmenu
jmp .nopalwrite
.exitloop
call GUIUnBuffer
mov al,[newengen]
mov byte[newengen],0
push eax
; mov al,[newengen]
; mov byte[newengen],0
; push eax
call copyvid
pop eax
mov [newengen],al
; pop eax
; mov [newengen],al
cmp byte[cbitmode],1
je near .nopalwrite
mov edi,[vidbuffer]
@@ -447,6 +476,7 @@ NEWSYM showmenu
mov byte[MenuNoExit],0
jmp showmenu
SECTION .data
.unablefps db 'NEED AUTO FRAMERATE ON',0
.sndbufsav db 'BUFFER SAVED AS SOUNDDMP.RAW',0
.search db 'SEARCHING FOR SONG START.',0
@@ -454,6 +484,7 @@ NEWSYM showmenu
.unable db 'CANNOT USE IN NEW GFX ENGINE.',0
.escpress db 'ESC TERMINATED SEARCH.',0
.saved db '.SPC FILE SAVED.',0
SECTION .text
NEWSYM menudrawbox8b
cmp byte[cbitmode],1
@@ -551,14 +582,15 @@ NEWSYM menudrawbox8b
add esi,[MenuDisplace]
mov edi,.stringi
call OutputGraphicString
mov al,[newengen]
mov byte[newengen],0
push eax
; mov al,[newengen]
; mov byte[newengen],0
; push eax
call copyvid
pop eax
mov [newengen],al
; pop eax
; mov [newengen],al
ret
SECTION .data
.string db 'MISC OPTIONS',0
.stringa db 'SAVE SNAPSHOT',0
.stringb db 'SHOW FPS',0
@@ -569,6 +601,7 @@ NEWSYM menudrawbox8b
.stringg db 'INCR FRAME ONLY',0
.stringh db 'MOVE THIS WINDOW',0
.stringi db 'IMAGE FORMAT: ---',0
SECTION .text
NEWSYM menudrawcursor8b
cmp byte[cbitmode],1
@@ -592,7 +625,9 @@ NEWSYM menudrawcursor8b
mov al,128
ret
NEWSYM menucloc, dd 0
SECTION .bss ;ALIGN=32
NEWSYM menucloc, resd 1
SECTION .text
NEWSYM menudrawbox16b
; draw shadow behind box
@@ -736,19 +771,22 @@ NEWSYM menudrawbox16b
add esi,[MenuDisplace16]
mov edi,menudrawbox8b.stringi
call OutputGraphicString16b
mov al,[newengen]
mov byte[newengen],0
push eax
; mov al,[newengen]
; mov byte[newengen],0
; push eax
call copyvid
pop eax
mov [newengen],al
; pop eax
; mov [newengen],al
ret
.allred dw 0
.blue dw 0
.stepb dw 0
SECTION .bss
.allred resw 1
.blue resw 1
.stepb resw 1
NEWSYM menu16btrans, db 0
NEWSYM menu16btrans, resb 1
SECTION .text
NEWSYM menudrawcursor16b
; draw a small red box
@@ -944,13 +982,38 @@ NEWSYM savespcdata
mov ecx,256
mov edx,DSPMem
call Write_File
%ifdef SPCDUMP
mov [SPCSave_handle], ebx
%else
call Close_File
%endif
add dword[spcPCRam],spcRam
add dword[spcRamDP],spcRam
call ResetState
%ifdef SPCDUMP
; w00t, reg dump crapola
; using a time reference because I don't feel like adding
; cycle counting to the SPC emulation just for this
mov byte[SPCSave_dump],1
mov eax, [spcRam+0F4h]
mov [SPCSave_ports], eax
xor eax, eax
mov [SPCSave_buffer], eax
%endif
ret
.spcfname times 128 db 0
SECTION .bss
.spcfname resb 128
SECTION .data
;.SPC File Format
;Offset 00000h - File Header : SNES-SPC700 Sound File Data v0.10
@@ -1016,6 +1079,8 @@ NEWSYM ssdatst
; SPCRAM (offset 256), 64k
; DSPRAM (offset 256+65536), 256 bytes
SECTION .text
NEWSYM dumpsound
mov cx,0
mov edx,.filename
@@ -1058,6 +1123,7 @@ NEWSYM dumpsound
xor esi,esi
jmp .return
SECTION .data
.filename db 'SOUNDDMP.RAW',0
NEWSYM pcxheader
@@ -1069,7 +1135,11 @@ NEWSYM pcxheader
.bpline dw 256
times 128-68 db 0
NEWSYM picnum, dw 0
SECTION .bss
NEWSYM picnum, resw 1
SECTION .data
NEWSYM savepcx
%ifndef NO_PNG
@@ -1370,12 +1440,15 @@ NEWSYM savepcx
call restore16b
ret
SECTION .data
.pcxsaved db 'SNAPSHOT SAVED TO '
.filename db 'image.pcx',0,0,0,0
.rawsaved db 'SNAPSHOT SAVED TO '
.filename2 db 'image.bmp',0,0,0,0
.rowsleft db 0
.curdptr dd 0
SECTION .bss
.rowsleft resb 1
.curdptr resd 1
SECTION .text
NEWSYM save16b2
call prepare16b
@@ -1517,10 +1590,13 @@ NEWSYM save16b2
call restore16b
ret
SECTION .data
.rawsaved db 'SNAPSHOT SAVED TO '
.filename2 db 'image.bmp',0,0,0,0
.rowsleft dd 0
.curdptr dd 0
SECTION .bss
.rowsleft resd 1
.curdptr resd 1
SECTION .text
prepare16b:
cmp byte[vesa2red10],1