📄 gui.asm
字号:
;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.
; Sorry. The GUI code is a total mess. One problem I encountered is that
; there seems to be a bug in nasm with using math calculations combined
; with macros within macros, so in some macro definitions, I had to
; add/subtract extra values in certain macros to get the GUI to align
; correctly.
; The GUI is drawn is mostly manually. What I mean is such as
; coding 5 boxes to represent a shaded box for each box. Although that
; can be simplified using macros to draw 5 boxes, that unknown bug in nasm
; showed up which prevented me from using macros extensively. I was
; thinking of changing it to an object-based GUI for easier coding,
; but that was decided far into the development of the GUI itself
; and that I also never expected this code to become open-source, so I
; decided not to proceed with it.
; Routine StartGUI is the function called to start the GUI and also
; contains the execution main loop of the GUI. If you want to completely
; replace the GUI, just add a function call from that function, then
; jump to endprog to exit ZSNES or continueprog to continue with the
; gameplay. Do not replace StartGUI with a function since it is not
; a function, but rather a label that is being jumped to.
; **************************************
; GUI.ASM
; **************************************
;
; Associated files :
; GUIWinDp.inc - Window Display Routines
; GUITools.inc - Misc routines for the GUI
; Quick Searches :
; DisplayMenu - routines to display top menu bar
; Incomp - Search for start of modem processing
; ProcessModem
; GUIgetcurrentinput
; GUITryMenuItem - Processes the menu item when user clicks item
; Mouseimplementation
; DGUIDisplayer
; LGUILoadData
; SetInputDevice
; CalibrateDev1
; ButtonProcess - routines that processes boxed buttons
; CheatCodeSearchInit
; guiwincontrol
%include "macros.mac"
EXTSYM dssel, curblank, vidpastecopyscr, frameskip, newengen, vsyncon, cantinitmodem
EXTSYM FPUCopy, cvidmode, antienab, smallscreenon, smallscreence,NetQuit
EXTSYM soundon, StereoSound, SoundCompD, SoundQuality, MusicRelVol,UartType
EXTSYM endprog, continueprog, spcBuffera, spcRamcmp, cbitmode, makepal
EXTSYM t1cc, LoadDir, SRAMDir, LoadDrive,SRAMDrive, initsnes, romloadskip
EXTSYM fname, makeextension, sram, clearmem2, loadfileGUI, GUIloadfailed
EXTSYM CheckROMType, romdata, ForcePal, ramsize, ramsizeand, curromsize
EXTSYM romispal, totlines, cfgloadsdir, init65816, procexecloop
EXTSYM spcRam, spcPCRam, spcS, spcRamDP, spcA, spcX, spcY, spcP, spcNZ
EXTSYM Voice0Status, Voice1Status, Voice2Status, Voice3Status, Voice4Status
EXTSYM Voice5Status, Voice6Status, Voice7Status, romtype, SetIRQVectors
EXTSYM ClearScreen, statesaver, loadstate2, vidbuffer, ASCII2Font, hirestiledat
EXTSYM showallext, ROMTypeNOTFound, scanlines,statefileloc,pl1selk,pl2selk
EXTSYM fnamest,sprlefttot,spritetablea,fnames,SFXSRAM,sfxramdata,cgram,srama
EXTSYM tempco0,prevbright,maxbr,prevpal,coladdr,coladdg,coladdb
EXTSYM scaddtype,ScreenScale,vesa2red10,initvideo2,initvideo,pressed,UpdateDevices
EXTSYM memtabler8,memtablew8,writeon,pl1contrl,pl2contrl,JoyRead,SetInputDevice
EXTSYM SetInputDevice209,FPSOn,RevStereo,initrevst,WDSPReg0C,WDSPReg1C,WDSPReg2C
EXTSYM WDSPReg3C,pl12s34,resolutn,delay,chaton,chatstrL,chatLpos,chatstrR,chatRTL
EXTSYM InitDrive,InitDir,createnewcfg,Makemode7Table,SnowOn,MovieBuffSize
EXTSYM MovieBuffFrame,vidbufferofsb,ZipSupport,wramdata,bgfixer,cfgnewgfx
EXTSYM cfgdontsave,videotroub,Open_File,Read_File,Close_File,Write_File,Create_File
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 NextLineCache,VidStartDraw,ResetTripleBuf,GUINGVID
;EXTSYM OSPort
EXTSYM ScanCodeListing,AdjustFrequency,GUISaveVars,Init_Mouse
EXTSYM Get_MouseData,Set_MouseXMax,Set_MouseYMax,Set_MousePosition,Get_MousePositionDisplacement
EXTSYM GUIInit,GUIDeInit,SpecialLine
EXTSYM DrawWater,RemoteDisconnect,loadstate3
EXTSYM ModemClearBuffer,IPXSearchval
EXTSYM ipxlookforconnect
EXTSYM SA1Enable,SA1RAMArea
EXTSYM GUIFName,GUICName
EXTSYM printnum
EXTSYM SaveCombFile
EXTSYM NetSent,valuea
EXTSYM welcome
EXTSYM BackupCVFrame
EXTSYM Wait1SecWin,ClearUDPStuff
EXTSYM DisableSUDPPacket,EnableSUDPPacket
EXTSYM ModemGetChar
EXTSYM BackStateSize
EXTSYM ResetExecStuff
EXTSYM RestoreCVFrame
EXTSYM CurRecv,BackState,CBackupPos,PBackupPos,PPValue,DPValue,NetQuitter
EXTSYM LatencyV
EXTSYM LatencyRecvPtr,LatencySendPtr
EXTSYM NumofBanks
EXTSYM WinErrorA,WinErrorB,WinErrorC
EXTSYM ErrorPointer
EXTSYM MessageOn,Msgptr,MsgCount
EXTSYM PJoyAOrig,PJoyBOrig,PJoyCOrig,PJoyDOrig,PJoyEOrig
EXTSYM GetHostName
EXTSYM vramaddr,curypos,ClearRegs,vram,sndrot,regsbackup
EXTSYM GetScreen,GUITBWVID
EXTSYM MouseWindow
EXTSYM GotoHomepage
EXTSYM cfgcvidmode, ExitFromGUI
EXTSYM GUIWFVID
EXTSYM cfgvsync,cfgcopymethod,newgfx16b
EXTSYM cfgscanline,cfginterp
EXTSYM NumVideoModes
EXTSYM cfgvolume, MusicVol, DSPMem
EXTSYM NumInputDevices,GUIInputNames
EXTSYM GUIVideoModeNames
EXTSYM GUISLVID,GUIINVID,GUIEAVID,GUIIEVID,GUIFSVID,GUISSVID,GUITBVID
EXTSYM GUIHSVID,GUI2xVID,GUII2VID,GUIM7VID
EXTSYM cfgsoundon, cfgSoundQuality, cfgStereoSound
EXTSYM 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
EXTSYM JoyMinY209,JoyMaxY209,GetCoords,GetCoords3
EXTSYM MultiTap,SFXEnable
EXTSYM RestoreSystemVars
EXTSYM TCPIPStartServer
EXTSYM TCPIPInitConnectToServer
EXTSYM TCPIPWaitForConnection
EXTSYM tcperr
EXTSYM TCPIPConnectToServer
EXTSYM TCPIPConnectToServerW
EXTSYM initipx
EXTSYM selc0040
EXTSYM ModemCheckRing
EXTSYM ModemCheckDCD
EXTSYM PreparePacketIPX,TCPIPPreparePacket
EXTSYM SendPacketIPX,TCPIPSendPacket,TCPIPSendPacketUDP
EXTSYM TCPIPDisconnect,TCPIPStatus
EXTSYM DeInitModemC
EXTSYM ipxgetchar,ipxsendchar,TCPIPStoreByte
EXTSYM TCPIPGetByte,GUIBIFIL
EXTSYM ModemSendChar
%ifdef __LINUX__
EXTSYM numlockptr
%endif
%ifdef __WIN32__
EXTSYM CheckPriority
EXTSYM CheckAlwaysOnTop
EXTSYM CheckScreenSaver
%endif
NEWSYM GuiAsmStart
%include "gui/guitools.inc"
%include "gui/guimisc.inc"
%include "gui/guimouse.inc"
%include "gui/guiwindp.inc"
%include "gui/guinetpl.inc"
%include "gui/guikeys.inc"
%include "gui/guicheat.inc"
%include "gui/guicombo.inc"
%include "gui/guiload.inc"
; ProcessRemoteCommand
; NetLoadStuff ; Send 14 to initiate, Send 15 to cancel (either way)
; call PreparePacket
; mov al,253
; call RemoteSendChar
; call SendPacket
; NetAddChar
NEWSYM WaterOn, db 1
; Things to do :
;
; .checkmenuboxclick
; gray scale = 32 .. 63
; shadow = 96 .. 127
; blue scale = 148 .. 167, 168 .. 187
; gray scale = 189 .. 220 (32+137)
; | Game Config Cheat MultiPlay Misc
;-------------------------------------------------------
; Load Input#1 Add Code Modem Game Keys
; Run Input#2 Browse IPX GUI Opns
; Reset Input#3 Search About
; ----- Input#4
; Save State -------
; Load State Options
; Chose State Video
; ----- Sound
; Quit
; Windows : 1 = Save/Load Confirmation
; 2 = Chose State
; 3 = Input Device Window
; 4 = Options
; 5 = Video
; 6 = Sound
; 7 = Cheat
; 8 = IPX/Modem
; 9 = GameOptions
; 10 = GUI Options
; 11 = About
MenuDat1 db 12,3,1,1,1,1,1,1,1,1,1,0,1,2,0
MenuDat2 db 8, 3,1,1,0,1,1,1,0,2,0,0
MenuDat3 db 10, 3,1,1,1,1,0,1,0,1,1,2,0
MenuDat4 db 2, 3,1,2,0
MenuDat5 db 1, 3,2,0
MenuDat6 db 6, 3,1,1,1,1,0,2,0
GUIPrevMenuData
db 1,'1. ',0
db 1,'2. ',0
db 1,'3. ',0
db 1,'4. ',0
db 1,'5. ',0
db 1,'6. ',0
db 1,'7. ',0
db 1,'8. ',0
db 1,'9. ',0
db 1,'0. ',0
db 0,'------------',0
.onoff db 1,'FREEZE DATA : OFF ',0
db 1,'CLEAR ALL DATA ',0
GUIGameMenuData
db 1,'LOAD ',0
db 1,'RUN [ESC] ',0
db 1,'RESET ',0
db 0,'------------',0
db 1,'SAVE STATE ',0
db 1,'OPEN STATE ',0
db 1,'PICK STATE ',0
db 0,'------------',0
db 1,'QUIT ',0
GUIConfigMenuData
db 1,'INPUT #1 ',0
db 1,'INPUT #2 ',0
db 1,'INPUT #3 ',0
db 1,'INPUT #4 ',0
db 1,'INPUT #5 ',0
db 0,'------------',0
db 1,'ADD-ONS ',0
db 0,'------------',0
db 1,'OPTIONS ',0
db 1,'VIDEO ',0
db 1,'SOUND ',0
GUICheatMenuData
db 1,'ADD CODE ',0
db 1,'BROWSE ',0
db 1,'SEARCH ',0
GUINetPlayMenuData
db 1,'MODEM ',0
db 1,'IPX ',0
GUIMiscMenuData
db 1,'GAME KEYS ',0
db 1,'GUI OPNS ',0
db 1,'MOVIE OPN ',0
db 1,'KEY COMB. ',0
db 1,'SAVE CFG ',0
db 0,'------------',0
db 1,'ABOUT ',0
; Config, Options -> New Gfx Engine, Frame Rate, Fast Forward FrameRate, etc.
; Config, Video -> Video Mode, Interpolation, etc.
; Config, Options -> Set up Save and/or Load State Confirmation
; Select Different game key assignments
; If menu should go to Load or last position when ESC
; is pressed from game
GUIRAdd db 15
GUIGAdd db 10
GUIBAdd db 31
mousewrap db 0 ; 0 = mouse boundries, 1 = mouse wrap
mouseshad db 1 ; 0 = no mouse shadow, 1 = mouse shadow
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
NEWSYM GUIClick, db 0 ; 1 = mouse click enters/exits gui
GUIwinposx2 dd 0,5 ,60 ,30 ,55 ,50 ,65 ,5 ,30 ,20 ,10 ,80 ,65 ,20 ,70 ,50 ,3 ,0
GUIwinposy2 dd 0,20 ,70 ,30 ,20 ,22 ,36 ,20 ,30 ,20 ,40 ,70 ,60 ,30 ,65 ,50 ,22 ,0
; Default keys
; Sound Channels 0 .. 7, Save/Select/Load States, Fast Forward
; Exit, Load, Reset, BG Disables, Reset, Windowing, New Gfx, OffsetMode
; State Selection 0 .. 9
NEWSYM KeyDisableSC0, dd 63
NEWSYM KeyDisableSC1, dd 64
NEWSYM KeyDisableSC2, dd 65
NEWSYM KeyDisableSC3, dd 66
NEWSYM KeyDisableSC4, dd 67
NEWSYM KeyDisableSC5, dd 68
NEWSYM KeyDisableSC6, dd 87
NEWSYM KeyDisableSC7, dd 88
NEWSYM KeySaveState, dd 60
NEWSYM KeyStateSelct, dd 61
NEWSYM KeyLoadState, dd 62
NEWSYM KeyFastFrwrd, dd 41
NEWSYM KeyQuickExit, dd 0
NEWSYM KeyQuickLoad, dd 0
NEWSYM KeyQuickRst, dd 0
NEWSYM KeyBGDisble0, dd 2
NEWSYM KeyBGDisble1, dd 3
NEWSYM KeyBGDisble2, dd 4
NEWSYM KeyBGDisble3, dd 5
NEWSYM KeySprDisble, dd 6
NEWSYM KeyResetAll, dd 7
NEWSYM KeyExtraEnab, dd 8
NEWSYM KeyNewGfxSwt, dd 9
NEWSYM KeyWinDisble, dd 10
NEWSYM KeyOffsetMSw, dd 11
NEWSYM KeyStateSlc0, dd 0
NEWSYM KeyStateSlc1, dd 0
NEWSYM KeyStateSlc2, dd 0
NEWSYM KeyStateSlc3, dd 0
NEWSYM KeyStateSlc4, dd 0
NEWSYM KeyStateSlc5, dd 0
NEWSYM KeyStateSlc6, dd 0
NEWSYM KeyStateSlc7, dd 0
NEWSYM KeyStateSlc8, dd 0
NEWSYM KeyStateSlc9, dd 0
GUIshowallext db 0
GUIloadfntype db 0
NEWSYM pl3selk, dd 0 ; 3SELECT = SHIFT
NEWSYM pl3startk, dd 0 ; 3START = ENTER
NEWSYM pl3upk, dd 0 ; 3UP = up
NEWSYM pl3downk, dd 0 ; 3DOWN = down
NEWSYM pl3leftk, dd 0 ; 3LEFT = left
NEWSYM pl3rightk, dd 0 ; 3RIGHT = right
NEWSYM pl3Xk, dd 0 ; 3X = INS
NEWSYM pl3Ak, dd 0 ; 3A = HOME
NEWSYM pl3Lk, dd 0 ; 3L = PAGE UP
NEWSYM pl3Yk, dd 0 ; 3Y = DELETE
NEWSYM pl3Bk, dd 0 ; 3B = END
NEWSYM pl3Rk, dd 0 ; 3R = PAGE DOWN
NEWSYM pl4selk, dd 0 ; 4SELECT = SHIFT
NEWSYM pl4startk, dd 0 ; 4START = ENTER
NEWSYM pl4upk, dd 0 ; 4UP = up
NEWSYM pl4downk, dd 0 ; 4DOWN = down
NEWSYM pl4leftk, dd 0 ; 4LEFT = left
NEWSYM pl4rightk, dd 0 ; 4RIGHT = right
NEWSYM pl4Xk, dd 0 ; 4X = INS
NEWSYM pl4Ak, dd 0 ; 4A = HOME
NEWSYM pl4Lk, dd 0 ; 4L = PAGE UP
NEWSYM pl4Yk, dd 0 ; 4Y = DELETE
NEWSYM pl4Bk, dd 0 ; 4B = END
NEWSYM pl4Rk, dd 0 ; 4R = PAGE DOWN
NEWSYM TimeChecker, db 0 ; Future Reserved
GUISoundBuffer db 1 ; Sound Buffer Disabled
prevloadnames times 16*10 db 32
prevloaddname times 128*10 db 0
prevloadfname times 16*10 db 32
prevlfreeze db 0
GUIsmallscreenon db 0
GUIScreenScale db 0
;FIXME: pl1contrl and pl2contrl are extern to this file
;but pl3contrl, pl4contrl and pl5contrl are defined here!
;strange... (Christophe 2001/03/10)
NEWSYM pl3contrl, db 0
NEWSYM pl4contrl, db 0
NEWSYM pl1p209b, db 0
NEWSYM pl2p209b, db 0
NEWSYM pl3p209b, db 0
NEWSYM pl4p209b, db 0
JoyPad1Move db 0
FirstTimeData db 0
NEWSYM PrevSWFix, db 0
NEWSYM CalibXmin, dd 0
NEWSYM CalibYmin, dd 0
NEWSYM CalibXmax, dd 0
NEWSYM CalibYmax, dd 0
NEWSYM CalibXmin209, dd 0
NEWSYM CalibYmin209, dd 0
NEWSYM CalibXmax209, dd 0
NEWSYM CalibYmax209, dd 0
NEWSYM maxskip, db 9
FPSAtStart db 0
NEWSYM SidewinderFix, db 0
GUIInitSt1 db 'ATZ'
.rest times 47 db 0
GUIInitSt2 db 'AT S0=0'
.rest times 43 db 0
GUIDialSt db 'ATDT ',0
NEWSYM ComNum, db 2
NEWSYM ComIRQ, db 3
NEWSYM BaudRate, dd 3
NEWSYM pl1Atk, dd 0 ; Turbo A
NEWSYM pl1Btk, dd 0 ; Turbo B
NEWSYM pl1Xtk, dd 0 ; Turbo X
NEWSYM pl1Ytk, dd 0 ; Turbo Y
NEWSYM pl2Atk, dd 0 ; Turbo A
NEWSYM pl2Btk, dd 0 ; Turbo B
NEWSYM pl2Xtk, dd 0 ; Turbo X
NEWSYM pl2Ytk, dd 0 ; Turbo Y
NEWSYM pl3Atk, dd 0 ; Turbo A
NEWSYM pl3Btk, dd 0 ; Turbo B
NEWSYM pl3Xtk, dd 0 ; Turbo X
NEWSYM pl3Ytk, dd 0 ; Turbo Y
NEWSYM pl4Atk, dd 0 ; Turbo A
NEWSYM pl4Btk, dd 0 ; Turbo B
NEWSYM pl4Xtk, dd 0 ; Turbo X
NEWSYM pl4Ytk, dd 0 ; Turbo Y
NEWSYM Turbo30hz, db 0 ; Turbo at 30hz instead of 60hz
NEWSYM KeyVolUp, dd 0
NEWSYM KeyVolDown, dd 0
NEWSYM KeyFRateUp, dd 0
NEWSYM KeyFRateDown, dd 0
NEWSYM KeyQuickChat, dd 20
NEWSYM FossilUse, db 0
NEWSYM TimerEnable, db 0
NEWSYM Surround, db 0
NEWSYM InterSound, db 1
NEWSYM FastFwdToggle, db 0
NEWSYM En2xSaI, db 0
NEWSYM AutoLoadCht, db 0
NEWSYM KeyQuickSnapShot, dd 0
CheatSrcByteSize db 0
CheatSrcByteBase db 0
CheatSrcSearchType db 0
CheatUpperByteOnly db 0
NEWSYM SRAMSave5Sec, db 0
NEWSYM ReInitSoundC, db 0
NEWSYM OldGfxMode2 , db 0
NEWSYM PitchModEn , db 0
NEWSYM LatestSave , db 0
NEWSYM AutoState , db 0
NEWSYM OldVolume , db 1
NEWSYM BlankVar , db 1
NEWSYM pl1ULk, dd 0
NEWSYM pl1URk, dd 0
NEWSYM pl1DLk, dd 0
NEWSYM pl1DRk, dd 0
NEWSYM pl2ULk, dd 0
NEWSYM pl2URk, dd 0
NEWSYM pl2DLk, dd 0
NEWSYM pl2DRk, dd 0
NEWSYM pl3ULk, dd 0
NEWSYM pl3URk, dd 0
NEWSYM pl3DLk, dd 0
NEWSYM pl3DRk, dd 0
NEWSYM pl4ULk, dd 0
NEWSYM pl4URk, dd 0
NEWSYM pl4DLk, dd 0
NEWSYM pl4DRk, dd 0
NEWSYM LowPassFilter, db 0
NEWSYM DontSavePath, db 0
NEWSYM ReCalib, db 1
NEWSYM GUIComboGameSpec, db 0
NEWSYM SoundNoiseDis, db 0 ; Disable Noise
NEWSYM Triplebufen, db 0
NEWSYM SoundBufEn, db 0
NEWSYM SPCDisable, db 0
NEWSYM RaisePitch, db 0
prevloadl db 0
prevloaddnamel times 512*10 db 0
prevloadfnamel times 512*10 db 0
PrevWinMode db 1
PrevFSMode db 5
OldWinPos db 0
GUIwinposx dd 0,5 ,60 ,30 ,55 ,50 ,65 ,5 ,30 ,20 ,10 ,80 ,65 ,20 ,70 ,50 ,3 ,50
GUIwinposxexp times 30 dd 0
GUIwinposy dd 0,20 ,70 ,30 ,20 ,22 ,36 ,20 ,30 ,20 ,30 ,70 ,60 ,30 ,65 ,50 ,22 ,60
GUIwinposyexp times 30 dd 0
GUIEffect db 0
NEWSYM pl5selk, dd 0 ; 4SELECT = SHIFT
NEWSYM pl5startk, dd 0 ; 4START = ENTER
NEWSYM pl5upk, dd 0 ; 4UP = up
NEWSYM pl5downk, dd 0 ; 4DOWN = down
NEWSYM pl5leftk, dd 0 ; 4LEFT = left
NEWSYM pl5rightk, dd 0 ; 4RIGHT = right
NEWSYM pl5Xk, dd 0 ; 4X = INS
NEWSYM pl5Ak, dd 0 ; 4A = HOME
NEWSYM pl5Lk, dd 0 ; 4L = PAGE UP
NEWSYM pl5Yk, dd 0 ; 4Y = DELETE
NEWSYM pl5Bk, dd 0 ; 4B = END
NEWSYM pl5Rk, dd 0 ; 4R = PAGE DOWN
NEWSYM pl5ULk, dd 0
NEWSYM pl5URk, dd 0
NEWSYM pl5DLk, dd 0
NEWSYM pl5DRk, dd 0
NEWSYM pl5Atk, dd 0 ; Turbo A
NEWSYM pl5Btk, dd 0 ; Turbo B
NEWSYM pl5Xtk, dd 0 ; Turbo X
NEWSYM pl5Ytk, dd 0 ; Turbo Y
NEWSYM pl5contrl, db 0
NEWSYM pl1p209, db 0
NEWSYM pl2p209, db 0
NEWSYM pl3p209, db 0
NEWSYM pl4p209, db 0
NEWSYM pl5p209, db 0
NEWSYM GUIEnableTransp, db 0
NEWSYM Mode7HiRes16b, dd 0
NEWSYM NewEngEnForce, db 1
NEWSYM KeyRewind, dd 0
NEWSYM ChatNick, times 16 db 0
NEWSYM KeySlowDown, dd 0
NEWSYM UseCubicSpline, db 1
NEWSYM LargeSoundBuf, db 0
NEWSYM HighPriority, db 0
NEWSYM AlwaysOnTop, db 0
NEWSYM SaveMainWindowPos, db 1
NEWSYM MainWindowX, dw -1
NEWSYM MainWindowY, dw -1
NEWSYM ScreenShotFormat, db 0
NEWSYM pl1Ltk, dd 0 ; Turbo L
NEWSYM pl1Rtk, dd 0 ; Turbo R
NEWSYM pl2Ltk, dd 0 ; Turbo L
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -