SetupROM port and some cleanup.
This commit is contained in:
@@ -252,14 +252,14 @@ void repackfunct()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void regaccessbankr8(), regaccessbankw8(), regaccessbankr16(), regaccessbankw16();
|
void regaccessbankr8(), regaccessbankw8(), regaccessbankr16(), regaccessbankw16();
|
||||||
void memaccessbankr8(), memaccessbankw8(), memaccessbankr16(), memaccessbankw16();
|
void memaccessbankr8(), memaccessbankw8(), memaccessbankr16(), memaccessbankw16();
|
||||||
void wramaccessbankr8(), wramaccessbankw8(), wramaccessbankr16(), wramaccessbankw16();
|
void wramaccessbankr8(), wramaccessbankw8(), wramaccessbankr16(), wramaccessbankw16();
|
||||||
void sramaccessbankr8(), sramaccessbankw8(), sramaccessbankr16(), sramaccessbankw16();
|
void sramaccessbankr8(), sramaccessbankw8(), sramaccessbankr16(), sramaccessbankw16();
|
||||||
void eramaccessbankr8(), eramaccessbankw8(), eramaccessbankr16(), eramaccessbankw16();
|
void eramaccessbankr8(), eramaccessbankw8(), eramaccessbankr16(), eramaccessbankw16();
|
||||||
|
|
||||||
void regaccessbankr8SA1(), regaccessbankw8SA1(), regaccessbankr16SA1(), regaccessbankw16SA1();
|
void regaccessbankr8SA1(), regaccessbankw8SA1(), regaccessbankr16SA1(), regaccessbankw16SA1();
|
||||||
void SA1RAMaccessbankr8(), SA1RAMaccessbankw8(), SA1RAMaccessbankr16(), SA1RAMaccessbankw16();
|
void SA1RAMaccessbankr8(), SA1RAMaccessbankw8(), SA1RAMaccessbankr16(), SA1RAMaccessbankw16();
|
||||||
void SA1RAMaccessbankr8b(), SA1RAMaccessbankw8b(), SA1RAMaccessbankr16b(), SA1RAMaccessbankw16b();
|
void SA1RAMaccessbankr8b(), SA1RAMaccessbankw8b(), SA1RAMaccessbankr16b(), SA1RAMaccessbankw16b();
|
||||||
|
|
||||||
void sramaccessbankr8s(), sramaccessbankw8s(), sramaccessbankr16s(), sramaccessbankw16s();
|
void sramaccessbankr8s(), sramaccessbankw8s(), sramaccessbankr16s(), sramaccessbankw16s();
|
||||||
void DSP1Read8b3F(), DSP1Write8b3F(), DSP1Read16b3F(), DSP1Write16b3F();
|
void DSP1Read8b3F(), DSP1Write8b3F(), DSP1Read16b3F(), DSP1Write16b3F();
|
||||||
@@ -272,13 +272,13 @@ void sfxaccessbankr8b(), sfxaccessbankw8b(), sfxaccessbankr16b(), sfxaccessbankw
|
|||||||
void sfxaccessbankr8c(), sfxaccessbankw8c(), sfxaccessbankr16c(), sfxaccessbankw16c();
|
void sfxaccessbankr8c(), sfxaccessbankw8c(), sfxaccessbankr16c(), sfxaccessbankw16c();
|
||||||
void sfxaccessbankr8d(), sfxaccessbankw8d(), sfxaccessbankr16d(), sfxaccessbankw16d();
|
void sfxaccessbankr8d(), sfxaccessbankw8d(), sfxaccessbankr16d(), sfxaccessbankw16d();
|
||||||
|
|
||||||
mrwp regbank = { regaccessbankr8, regaccessbankw8, regaccessbankr16, regaccessbankw16 };
|
mrwp regbank = { regaccessbankr8, regaccessbankw8, regaccessbankr16, regaccessbankw16 };
|
||||||
mrwp membank = { memaccessbankr8, memaccessbankw8, memaccessbankr16, memaccessbankw16 };
|
mrwp membank = { memaccessbankr8, memaccessbankw8, memaccessbankr16, memaccessbankw16 };
|
||||||
mrwp wrambank = { wramaccessbankr8, wramaccessbankw8, wramaccessbankr16, wramaccessbankw16 };
|
mrwp wrambank = { wramaccessbankr8, wramaccessbankw8, wramaccessbankr16, wramaccessbankw16 };
|
||||||
mrwp srambank = { sramaccessbankr8, sramaccessbankw8, sramaccessbankr16, sramaccessbankw16 };
|
mrwp srambank = { sramaccessbankr8, sramaccessbankw8, sramaccessbankr16, sramaccessbankw16 };
|
||||||
mrwp erambank = { eramaccessbankr8, eramaccessbankw8, eramaccessbankr16, eramaccessbankw16 };
|
mrwp erambank = { eramaccessbankr8, eramaccessbankw8, eramaccessbankr16, eramaccessbankw16 };
|
||||||
|
|
||||||
mrwp sa1regbank = { regaccessbankr8SA1, regaccessbankw8SA1, regaccessbankr16SA1, regaccessbankw16SA1 };
|
mrwp sa1regbank = { regaccessbankr8SA1, regaccessbankw8SA1, regaccessbankr16SA1, regaccessbankw16SA1 };
|
||||||
mrwp sa1rambank = { SA1RAMaccessbankr8, SA1RAMaccessbankw8, SA1RAMaccessbankr16, SA1RAMaccessbankw16 };
|
mrwp sa1rambank = { SA1RAMaccessbankr8, SA1RAMaccessbankw8, SA1RAMaccessbankr16, SA1RAMaccessbankw16 };
|
||||||
mrwp sa1rambankb = { SA1RAMaccessbankr8b, SA1RAMaccessbankw8b, SA1RAMaccessbankr16b, SA1RAMaccessbankw16b };
|
mrwp sa1rambankb = { SA1RAMaccessbankr8b, SA1RAMaccessbankw8b, SA1RAMaccessbankr16b, SA1RAMaccessbankw16b };
|
||||||
|
|
||||||
@@ -295,8 +295,7 @@ mrwp sfxbankd = { sfxaccessbankr8d, sfxaccessbankw8d, sfxaccessbankr16d, sfxacce
|
|||||||
|
|
||||||
|
|
||||||
void SetAddressingModes()
|
void SetAddressingModes()
|
||||||
{
|
{ // Banks
|
||||||
// Banks
|
|
||||||
map_mem(0x00, ®bank, 0x40); // 00 - 3F
|
map_mem(0x00, ®bank, 0x40); // 00 - 3F
|
||||||
map_mem(0x40, &membank, 0x30); // 49 - 6F
|
map_mem(0x40, &membank, 0x30); // 49 - 6F
|
||||||
map_mem(0x70, &srambank, 0x08); // 70 - 77
|
map_mem(0x70, &srambank, 0x08); // 70 - 77
|
||||||
@@ -309,7 +308,6 @@ void SetAddressingModes()
|
|||||||
|
|
||||||
void SetAddressingModesSA1()
|
void SetAddressingModesSA1()
|
||||||
{
|
{
|
||||||
// Banks
|
|
||||||
map_mem(0x00, &sa1regbank, 0x40); // 00 - 3F
|
map_mem(0x00, &sa1regbank, 0x40); // 00 - 3F
|
||||||
map_mem(0x40, &sa1rambank, 0x30); // 49 - 6F
|
map_mem(0x40, &sa1rambank, 0x30); // 49 - 6F
|
||||||
map_mem(0x70, &sa1rambankb, 0x08); // 70 - 77
|
map_mem(0x70, &sa1rambankb, 0x08); // 70 - 77
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
;along with this program; if not, write to the Free Software
|
;along with this program; if not, write to the Free Software
|
||||||
;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
|
|
||||||
; Sorry. The GUI code is a total mess. One problem I encountered is that
|
; 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
|
; 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
|
; with macros within macros, so in some macro definitions, I had to
|
||||||
@@ -63,23 +63,23 @@
|
|||||||
; ButtonProcess - routines that processes boxed buttons
|
; ButtonProcess - routines that processes boxed buttons
|
||||||
; CheatCodeSearchInit
|
; CheatCodeSearchInit
|
||||||
; guiwincontrol
|
; guiwincontrol
|
||||||
|
|
||||||
|
|
||||||
%include "macros.mac"
|
%include "macros.mac"
|
||||||
|
|
||||||
EXTSYM curblank, vidpastecopyscr, frameskip, newengen, vsyncon
|
EXTSYM curblank,vidpastecopyscr,frameskip,newengen,vsyncon
|
||||||
EXTSYM cvidmode, antienab, smallscreenon, smallscreence,NetQuit
|
EXTSYM cvidmode,antienab, smallscreenon, smallscreence,NetQuit
|
||||||
EXTSYM soundon, StereoSound, SoundQuality, MusicRelVol
|
EXTSYM soundon,StereoSound,SoundQuality,MusicRelVol
|
||||||
EXTSYM endprog, continueprog, spcBuffera, spcRamcmp, cbitmode, makepal
|
EXTSYM endprog,continueprog,spcBuffera,spcRamcmp,cbitmode,makepal
|
||||||
EXTSYM t1cc, LoadDir, LoadDrive, SRAMDir, SRAMChdir, SRAMDirCurDir, initsnes, romloadskip
|
EXTSYM t1cc,LoadDir,LoadDrive,SRAMDir,SRAMChdir,SRAMDirCurDir,initsnes
|
||||||
EXTSYM fname, makeextension, sram, loadfileGUI, GUIloadfailed
|
EXTSYM fname,makeextension,sram,loadfileGUI,GUIloadfailed,romloadskip
|
||||||
EXTSYM SetupROM, romdata, ForcePal, ramsize, ramsizeand, curromsize
|
EXTSYM SetupROM,romdata,ForcePal,ramsize,ramsizeand,curromsize
|
||||||
EXTSYM romispal, totlines, cfgloadsdir, init65816, procexecloop
|
EXTSYM romispal,totlines,cfgloadsdir,init65816,procexecloop
|
||||||
EXTSYM spcRam, spcPCRam, spcS, spcRamDP, spcA, spcX, spcY, spcP, spcNZ
|
EXTSYM spcRam,spcPCRam,spcS,spcRamDP,spcA,spcX,spcY,spcP,spcNZ
|
||||||
EXTSYM Voice0Status, Voice1Status, Voice2Status, Voice3Status, Voice4Status
|
EXTSYM Voice0Status,Voice1Status,Voice2Status,Voice3Status,Voice4Status
|
||||||
EXTSYM Voice5Status, Voice6Status, Voice7Status, romtype, SetIRQVectors
|
EXTSYM Voice5Status,Voice6Status,Voice7Status,romtype
|
||||||
EXTSYM ClearScreen, statesaver, loadstate2, vidbuffer, ASCII2Font, hirestiledat
|
EXTSYM ClearScreen,statesaver,loadstate2,vidbuffer,ASCII2Font,hirestiledat
|
||||||
EXTSYM showallext, ROMTypeNOTFound, scanlines,statefileloc,pl1selk,pl2selk
|
EXTSYM showallext,ROMTypeNOTFound,scanlines,statefileloc,pl1selk,pl2selk
|
||||||
EXTSYM fnamest,sprlefttot,spritetablea,fnames,CHIPBATT,sfxramdata,setaramdata,SETAEnable,cgram,srama
|
EXTSYM fnamest,sprlefttot,spritetablea,fnames,CHIPBATT,sfxramdata,setaramdata,SETAEnable,cgram,srama
|
||||||
EXTSYM tempco0,prevbright,maxbr,prevpal,coladdr,coladdg,coladdb
|
EXTSYM tempco0,prevbright,maxbr,prevpal,coladdr,coladdg,coladdb
|
||||||
EXTSYM scaddtype,ScreenScale,vesa2red10,initvideo2,initvideo,pressed,UpdateDevices
|
EXTSYM scaddtype,ScreenScale,vesa2red10,initvideo2,initvideo,pressed,UpdateDevices
|
||||||
@@ -148,7 +148,7 @@ EXTSYM outofmemfix,yesoutofmemory
|
|||||||
EXTSYM JoyX,JoyY,JoyMinX,JoyMinY,JoyMaxX,JoyMaxY,JoyMinX209,JoyMaxX209
|
EXTSYM JoyX,JoyY,JoyMinX,JoyMinY,JoyMaxX,JoyMaxY,JoyMinX209,JoyMaxX209
|
||||||
EXTSYM JoyMinY209,JoyMaxY209,GetCoords,GetCoords3
|
EXTSYM JoyMinY209,JoyMaxY209,GetCoords,GetCoords3
|
||||||
EXTSYM MultiTap,SFXEnable
|
EXTSYM MultiTap,SFXEnable
|
||||||
EXTSYM RestoreSystemVars
|
EXTSYM RestoreSystemVars
|
||||||
EXTSYM TCPIPStartServer
|
EXTSYM TCPIPStartServer
|
||||||
EXTSYM TCPIPInitConnectToServer
|
EXTSYM TCPIPInitConnectToServer
|
||||||
EXTSYM TCPIPWaitForConnection
|
EXTSYM TCPIPWaitForConnection
|
||||||
@@ -234,7 +234,7 @@ NEWSYM WaterOn, db 1
|
|||||||
; Video
|
; Video
|
||||||
; Sound
|
; Sound
|
||||||
; Paths
|
; Paths
|
||||||
; Saves
|
; Saves
|
||||||
|
|
||||||
; MultiPlay only has "Internet" for Windows/Linux
|
; MultiPlay only has "Internet" for Windows/Linux
|
||||||
|
|
||||||
@@ -386,10 +386,10 @@ GUIloadfntype db 0
|
|||||||
|
|
||||||
NEWSYM pl3selk, dd 0 ; 3SELECT = SHIFT
|
NEWSYM pl3selk, dd 0 ; 3SELECT = SHIFT
|
||||||
NEWSYM pl3startk, dd 0 ; 3START = ENTER
|
NEWSYM pl3startk, dd 0 ; 3START = ENTER
|
||||||
NEWSYM pl3upk, dd 0 ; 3UP = up
|
NEWSYM pl3upk, dd 0 ; 3UP = up
|
||||||
NEWSYM pl3downk, dd 0 ; 3DOWN = down
|
NEWSYM pl3downk, dd 0 ; 3DOWN = down
|
||||||
NEWSYM pl3leftk, dd 0 ; 3LEFT = left
|
NEWSYM pl3leftk, dd 0 ; 3LEFT = left
|
||||||
NEWSYM pl3rightk, dd 0 ; 3RIGHT = right
|
NEWSYM pl3rightk, dd 0 ; 3RIGHT = right
|
||||||
NEWSYM pl3Xk, dd 0 ; 3X = INS
|
NEWSYM pl3Xk, dd 0 ; 3X = INS
|
||||||
NEWSYM pl3Ak, dd 0 ; 3A = HOME
|
NEWSYM pl3Ak, dd 0 ; 3A = HOME
|
||||||
NEWSYM pl3Lk, dd 0 ; 3L = PAGE UP
|
NEWSYM pl3Lk, dd 0 ; 3L = PAGE UP
|
||||||
@@ -398,10 +398,10 @@ NEWSYM pl3Bk, dd 0 ; 3B = END
|
|||||||
NEWSYM pl3Rk, dd 0 ; 3R = PAGE DOWN
|
NEWSYM pl3Rk, dd 0 ; 3R = PAGE DOWN
|
||||||
NEWSYM pl4selk, dd 0 ; 4SELECT = SHIFT
|
NEWSYM pl4selk, dd 0 ; 4SELECT = SHIFT
|
||||||
NEWSYM pl4startk, dd 0 ; 4START = ENTER
|
NEWSYM pl4startk, dd 0 ; 4START = ENTER
|
||||||
NEWSYM pl4upk, dd 0 ; 4UP = up
|
NEWSYM pl4upk, dd 0 ; 4UP = up
|
||||||
NEWSYM pl4downk, dd 0 ; 4DOWN = down
|
NEWSYM pl4downk, dd 0 ; 4DOWN = down
|
||||||
NEWSYM pl4leftk, dd 0 ; 4LEFT = left
|
NEWSYM pl4leftk, dd 0 ; 4LEFT = left
|
||||||
NEWSYM pl4rightk, dd 0 ; 4RIGHT = right
|
NEWSYM pl4rightk, dd 0 ; 4RIGHT = right
|
||||||
NEWSYM pl4Xk, dd 0 ; 4X = INS
|
NEWSYM pl4Xk, dd 0 ; 4X = INS
|
||||||
NEWSYM pl4Ak, dd 0 ; 4A = HOME
|
NEWSYM pl4Ak, dd 0 ; 4A = HOME
|
||||||
NEWSYM pl4Lk, dd 0 ; 4L = PAGE UP
|
NEWSYM pl4Lk, dd 0 ; 4L = PAGE UP
|
||||||
@@ -544,10 +544,10 @@ NEWSYM GUIEffect, db 0
|
|||||||
|
|
||||||
NEWSYM pl5selk, dd 0 ; 4SELECT = SHIFT
|
NEWSYM pl5selk, dd 0 ; 4SELECT = SHIFT
|
||||||
NEWSYM pl5startk, dd 0 ; 4START = ENTER
|
NEWSYM pl5startk, dd 0 ; 4START = ENTER
|
||||||
NEWSYM pl5upk, dd 0 ; 4UP = up
|
NEWSYM pl5upk, dd 0 ; 4UP = up
|
||||||
NEWSYM pl5downk, dd 0 ; 4DOWN = down
|
NEWSYM pl5downk, dd 0 ; 4DOWN = down
|
||||||
NEWSYM pl5leftk, dd 0 ; 4LEFT = left
|
NEWSYM pl5leftk, dd 0 ; 4LEFT = left
|
||||||
NEWSYM pl5rightk, dd 0 ; 4RIGHT = right
|
NEWSYM pl5rightk, dd 0 ; 4RIGHT = right
|
||||||
NEWSYM pl5Xk, dd 0 ; 4X = INS
|
NEWSYM pl5Xk, dd 0 ; 4X = INS
|
||||||
NEWSYM pl5Ak, dd 0 ; 4A = HOME
|
NEWSYM pl5Ak, dd 0 ; 4A = HOME
|
||||||
NEWSYM pl5Lk, dd 0 ; 4L = PAGE UP
|
NEWSYM pl5Lk, dd 0 ; 4L = PAGE UP
|
||||||
@@ -851,7 +851,7 @@ clearsram:
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz .loop2
|
jnz .loop2
|
||||||
.nosfxbatt
|
.nosfxbatt
|
||||||
|
|
||||||
cmp byte[SETAEnable],0
|
cmp byte[SETAEnable],0
|
||||||
je .nosetasram
|
je .nosetasram
|
||||||
mov eax,[setaramdata]
|
mov eax,[setaramdata]
|
||||||
@@ -866,7 +866,7 @@ clearsram:
|
|||||||
cmp byte[SA1Enable],1
|
cmp byte[SA1Enable],1
|
||||||
jne .nosa1
|
jne .nosa1
|
||||||
cmp byte[CHIPBATT],1
|
cmp byte[CHIPBATT],1
|
||||||
jne .nosa1
|
jne .nosa1
|
||||||
mov eax,[SA1RAMArea]
|
mov eax,[SA1RAMArea]
|
||||||
mov ecx,65536*2
|
mov ecx,65536*2
|
||||||
.loop3
|
.loop3
|
||||||
@@ -1496,26 +1496,26 @@ NEWSYM SaveSramData
|
|||||||
je .savesramdone
|
je .savesramdone
|
||||||
|
|
||||||
mov edx,[sram]
|
mov edx,[sram]
|
||||||
cmp byte[SFXEnable],1
|
cmp byte[SFXEnable],1
|
||||||
jne .notsfx
|
jne .notsfx
|
||||||
mov edx,[sfxramdata]
|
mov edx,[sfxramdata]
|
||||||
.notsfx
|
.notsfx
|
||||||
cmp byte[SA1Enable],1
|
cmp byte[SA1Enable],1
|
||||||
jne .notsa1
|
jne .notsa1
|
||||||
mov edx,[SA1RAMArea]
|
mov edx,[SA1RAMArea]
|
||||||
.notsa1
|
.notsa1
|
||||||
cmp byte[SETAEnable],1
|
cmp byte[SETAEnable],1
|
||||||
jne .notseta
|
jne .notseta
|
||||||
mov edx,[setaramdata]
|
mov edx,[setaramdata]
|
||||||
.notseta
|
.notseta
|
||||||
cmp edx,[sram]
|
cmp edx,[sram]
|
||||||
je .notspecial
|
je .notspecial
|
||||||
cmp byte[CHIPBATT],0
|
cmp byte[CHIPBATT],0
|
||||||
je .savesramdone
|
je .savesramdone
|
||||||
.notspecial
|
.notspecial
|
||||||
|
|
||||||
clim
|
clim
|
||||||
|
|
||||||
push edx ;Backup data to save
|
push edx ;Backup data to save
|
||||||
mov edx,fnames+1
|
mov edx,fnames+1
|
||||||
call Create_File
|
call Create_File
|
||||||
@@ -1527,11 +1527,11 @@ NEWSYM SaveSramData
|
|||||||
call Write_File
|
call Write_File
|
||||||
call Close_File
|
call Close_File
|
||||||
push edx ;Dirty hack for the next line
|
push edx ;Dirty hack for the next line
|
||||||
.failed
|
.failed
|
||||||
pop edx ;This is needed here because if the jump to failed is carried out, edx is never popped
|
pop edx ;This is needed here because if the jump to failed is carried out, edx is never popped
|
||||||
stim
|
stim
|
||||||
.savesramdone
|
.savesramdone
|
||||||
|
|
||||||
call SaveCombFile
|
call SaveCombFile
|
||||||
|
|
||||||
; change dir to InitDrive/InitDir
|
; change dir to InitDrive/InitDir
|
||||||
@@ -1852,7 +1852,7 @@ NEWSYM StartGUI
|
|||||||
|
|
||||||
call GUIQuickLoadUpdate
|
call GUIQuickLoadUpdate
|
||||||
call LoadDetermine
|
call LoadDetermine
|
||||||
|
|
||||||
; change dir to LoadDrive/LoadDir
|
; change dir to LoadDrive/LoadDir
|
||||||
mov dl,[LoadDrive]
|
mov dl,[LoadDrive]
|
||||||
mov ebx,LoadDir
|
mov ebx,LoadDir
|
||||||
@@ -2357,8 +2357,8 @@ NEWSYM StartGUI
|
|||||||
mov dword[PBackupPos],0
|
mov dword[PBackupPos],0
|
||||||
call RestoreCVFrame
|
call RestoreCVFrame
|
||||||
popad
|
popad
|
||||||
mov esi,[tempesi]
|
mov esi,[tempesi]
|
||||||
mov edi,[tempedi]
|
mov edi,[tempedi]
|
||||||
mov ebp,[tempebp]
|
mov ebp,[tempebp]
|
||||||
.norestoreval
|
.norestoreval
|
||||||
|
|
||||||
@@ -2861,8 +2861,8 @@ guipostvideo:
|
|||||||
|
|
||||||
cmp dword[GUIkeydelay],0
|
cmp dword[GUIkeydelay],0
|
||||||
je .pressedokay
|
je .pressedokay
|
||||||
|
|
||||||
mov byte[pressed+39h],0
|
mov byte[pressed+39h],0
|
||||||
call JoyRead
|
call JoyRead
|
||||||
cmp byte[pressed+39h],0
|
cmp byte[pressed+39h],0
|
||||||
jne .pressedokay
|
jne .pressedokay
|
||||||
@@ -3415,10 +3415,10 @@ DisplayBoxes:
|
|||||||
jmp .finstuff
|
jmp .finstuff
|
||||||
.noguichosesave
|
.noguichosesave
|
||||||
cmp al,3
|
cmp al,3
|
||||||
jne .noguiinput
|
jne .noguiinput
|
||||||
call DisplayGUIInput
|
call DisplayGUIInput
|
||||||
jmp .finstuff
|
jmp .finstuff
|
||||||
.noguiinput
|
.noguiinput
|
||||||
cmp al,4
|
cmp al,4
|
||||||
jne .noguioption
|
jne .noguioption
|
||||||
call DisplayGUIOption
|
call DisplayGUIOption
|
||||||
@@ -3598,9 +3598,9 @@ GUIProcReset:
|
|||||||
jne .nomovierecording
|
jne .nomovierecording
|
||||||
call ResetDuringMovie
|
call ResetDuringMovie
|
||||||
jmp .movieendif
|
jmp .movieendif
|
||||||
.nomovierecording
|
.nomovierecording
|
||||||
call GUIDoReset
|
call GUIDoReset
|
||||||
.movieendif
|
.movieendif
|
||||||
popad
|
popad
|
||||||
cmp byte[CNetType],20
|
cmp byte[CNetType],20
|
||||||
jne .noreset
|
jne .noreset
|
||||||
@@ -3940,7 +3940,9 @@ InitGUI:
|
|||||||
call GetScreen
|
call GetScreen
|
||||||
.nong16b
|
.nong16b
|
||||||
call ClearScreen
|
call ClearScreen
|
||||||
|
pushad
|
||||||
call Clear2xSaIBuffer
|
call Clear2xSaIBuffer
|
||||||
|
popad
|
||||||
call GUISetPal
|
call GUISetPal
|
||||||
call GUIBufferData
|
call GUIBufferData
|
||||||
ret
|
ret
|
||||||
@@ -5408,7 +5410,7 @@ GUIIconDataCheckBoxUC:
|
|||||||
|
|
||||||
GUIIconDataCheckBoxC:
|
GUIIconDataCheckBoxC:
|
||||||
db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,165,0
|
db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,165,0
|
||||||
db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,165,0 ,0
|
db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,165,0 ,0
|
||||||
db 0 ,0 ,0 ,0 ,0 ,0 ,165,0 ,0 ,0
|
db 0 ,0 ,0 ,0 ,0 ,0 ,165,0 ,0 ,0
|
||||||
db 0 ,220,219,218,217,165,215,0 ,0 ,0
|
db 0 ,220,219,218,217,165,215,0 ,0 ,0
|
||||||
db 0 ,165,165,217,165,165,214,202,0 ,0
|
db 0 ,165,165,217,165,165,214,202,0 ,0
|
||||||
|
|||||||
@@ -915,11 +915,11 @@ GUIOptionKeys:
|
|||||||
cmp dh,'P'
|
cmp dh,'P'
|
||||||
jne .noautopatch
|
jne .noautopatch
|
||||||
xor byte[AutoPatch],1
|
xor byte[AutoPatch],1
|
||||||
.noautopatch
|
.noautopatch
|
||||||
cmp dh,'T'
|
cmp dh,'T'
|
||||||
jne .norominfo
|
jne .norominfo
|
||||||
xor byte[RomInfo],1
|
xor byte[RomInfo],1
|
||||||
.norominfo
|
.norominfo
|
||||||
%ifdef __WIN32__
|
%ifdef __WIN32__
|
||||||
cmp dh,'I'
|
cmp dh,'I'
|
||||||
jne .noscreensaver
|
jne .noscreensaver
|
||||||
@@ -927,7 +927,7 @@ GUIOptionKeys:
|
|||||||
.noscreensaver
|
.noscreensaver
|
||||||
%endif
|
%endif
|
||||||
ret
|
ret
|
||||||
|
|
||||||
GUISaveKeys:
|
GUISaveKeys:
|
||||||
cmp dh,'a'
|
cmp dh,'a'
|
||||||
jb .nocap
|
jb .nocap
|
||||||
@@ -1071,12 +1071,16 @@ GUIGUIOptnsKeys:
|
|||||||
cmp byte[En2xSaI],1
|
cmp byte[En2xSaI],1
|
||||||
jnae .guioptn15
|
jnae .guioptn15
|
||||||
call ClearScreen
|
call ClearScreen
|
||||||
|
pushad
|
||||||
call Clear2xSaIBuffer
|
call Clear2xSaIBuffer
|
||||||
|
popad
|
||||||
.guioptn15
|
.guioptn15
|
||||||
cmp byte[hqFilter],0
|
cmp byte[hqFilter],0
|
||||||
je .guioptn16
|
je .guioptn16
|
||||||
call ClearScreen
|
call ClearScreen
|
||||||
|
pushad
|
||||||
call Clear2xSaIBuffer
|
call Clear2xSaIBuffer
|
||||||
|
popad
|
||||||
.guioptn16
|
.guioptn16
|
||||||
ret
|
ret
|
||||||
|
|
||||||
@@ -1105,7 +1109,7 @@ GUIVideoKeys:
|
|||||||
jmp .refresh
|
jmp .refresh
|
||||||
.nomodeq
|
.nomodeq
|
||||||
cmp byte[cvidmode],5
|
cmp byte[cvidmode],5
|
||||||
jne .nofullscanlines
|
jne .nofullscanlines
|
||||||
.refresh
|
.refresh
|
||||||
mov byte[cbitmode],1
|
mov byte[cbitmode],1
|
||||||
call initvideo2
|
call initvideo2
|
||||||
@@ -1177,7 +1181,9 @@ GUIVideoKeys:
|
|||||||
mov bl,[cvidmode]
|
mov bl,[cvidmode]
|
||||||
cmp byte[GUI2xVID+ebx],0
|
cmp byte[GUI2xVID+ebx],0
|
||||||
je near .no2xsai
|
je near .no2xsai
|
||||||
|
pushad
|
||||||
call Clear2xSaIBuffer
|
call Clear2xSaIBuffer
|
||||||
|
popad
|
||||||
GUIkeystoggleoptn byte[En2xSaI],1
|
GUIkeystoggleoptn byte[En2xSaI],1
|
||||||
.no2xsai
|
.no2xsai
|
||||||
cmp dh,'E'
|
cmp dh,'E'
|
||||||
@@ -1186,7 +1192,9 @@ GUIVideoKeys:
|
|||||||
mov bl,[cvidmode]
|
mov bl,[cvidmode]
|
||||||
cmp byte[GUI2xVID+ebx],0
|
cmp byte[GUI2xVID+ebx],0
|
||||||
je near .nosupereagle
|
je near .nosupereagle
|
||||||
|
pushad
|
||||||
call Clear2xSaIBuffer
|
call Clear2xSaIBuffer
|
||||||
|
popad
|
||||||
GUIkeystoggleoptn byte[En2xSaI],2
|
GUIkeystoggleoptn byte[En2xSaI],2
|
||||||
.nosupereagle
|
.nosupereagle
|
||||||
cmp dh,'S'
|
cmp dh,'S'
|
||||||
@@ -1195,7 +1203,9 @@ GUIVideoKeys:
|
|||||||
mov bl,[cvidmode]
|
mov bl,[cvidmode]
|
||||||
cmp byte[GUI2xVID+ebx],0
|
cmp byte[GUI2xVID+ebx],0
|
||||||
je near .nosuper2xsai
|
je near .nosuper2xsai
|
||||||
|
pushad
|
||||||
call Clear2xSaIBuffer
|
call Clear2xSaIBuffer
|
||||||
|
popad
|
||||||
GUIkeystoggleoptn byte[En2xSaI],3
|
GUIkeystoggleoptn byte[En2xSaI],3
|
||||||
.nosuper2xsai
|
.nosuper2xsai
|
||||||
cmp dh,'I'
|
cmp dh,'I'
|
||||||
@@ -1371,7 +1381,7 @@ GUIVideoKeys:
|
|||||||
cmp dl,72
|
cmp dl,72
|
||||||
jne .noup
|
jne .noup
|
||||||
%endif
|
%endif
|
||||||
.up
|
.up
|
||||||
cmp dword[GUIcurrentvideocursloc],0
|
cmp dword[GUIcurrentvideocursloc],0
|
||||||
je .noup
|
je .noup
|
||||||
mov ebx,[GUIcurrentvideocursloc]
|
mov ebx,[GUIcurrentvideocursloc]
|
||||||
@@ -1754,7 +1764,7 @@ GUIPathKeys:
|
|||||||
jmp .findend
|
jmp .findend
|
||||||
.foundend
|
.foundend
|
||||||
|
|
||||||
cmp dh,8 ;Backspace
|
cmp dh,8 ;Backspace
|
||||||
jne .notbackspace
|
jne .notbackspace
|
||||||
cmp eax,ecx
|
cmp eax,ecx
|
||||||
je .cantback
|
je .cantback
|
||||||
@@ -1762,7 +1772,7 @@ GUIPathKeys:
|
|||||||
.cantback
|
.cantback
|
||||||
ret
|
ret
|
||||||
.notbackspace
|
.notbackspace
|
||||||
|
|
||||||
cmp dh,13 ;Enter
|
cmp dh,13 ;Enter
|
||||||
jne .notenter
|
jne .notenter
|
||||||
mov dword[GUIInputBox],0
|
mov dword[GUIInputBox],0
|
||||||
|
|||||||
@@ -273,7 +273,7 @@ GUIloadfilename:
|
|||||||
mov dword[nmiprevline],224
|
mov dword[nmiprevline],224
|
||||||
mov dword[nmistatus],0
|
mov dword[nmistatus],0
|
||||||
mov dword[spcnumread],0
|
mov dword[spcnumread],0
|
||||||
mov dword[spchalted],-1
|
mov dword[spchalted],-1
|
||||||
mov byte[NextLineCache],0
|
mov byte[NextLineCache],0
|
||||||
mov byte[curexecstate],1
|
mov byte[curexecstate],1
|
||||||
|
|
||||||
@@ -293,8 +293,8 @@ GUIloadfilename:
|
|||||||
mov byte[CheatWinMode],0
|
mov byte[CheatWinMode],0
|
||||||
mov byte[CheatSearchStatus],0
|
mov byte[CheatSearchStatus],0
|
||||||
|
|
||||||
call SetupROM
|
|
||||||
pushad
|
pushad
|
||||||
|
call SetupROM
|
||||||
call showinfogui
|
call showinfogui
|
||||||
popad
|
popad
|
||||||
call initsnes
|
call initsnes
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ SetAllKeys:
|
|||||||
mov edi,pl5selk
|
mov edi,pl5selk
|
||||||
mov dword[keycontrolval],pl5contrl
|
mov dword[keycontrolval],pl5contrl
|
||||||
.nopl5
|
.nopl5
|
||||||
|
|
||||||
;Check if controller is set
|
;Check if controller is set
|
||||||
push eax
|
push eax
|
||||||
mov eax,dword[keycontrolval]
|
mov eax,dword[keycontrolval]
|
||||||
@@ -136,7 +136,7 @@ SetAllKeys:
|
|||||||
pop eax
|
pop eax
|
||||||
jne .noLockInputChange
|
jne .noLockInputChange
|
||||||
ret
|
ret
|
||||||
.noLockInputChange
|
.noLockInputChange
|
||||||
mov dword[guicpressptr],edi
|
mov dword[guicpressptr],edi
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
mov ecx,12
|
mov ecx,12
|
||||||
@@ -361,7 +361,9 @@ SetDevice:
|
|||||||
|
|
||||||
NEWSYM GUIDoReset
|
NEWSYM GUIDoReset
|
||||||
call ClearScreen
|
call ClearScreen
|
||||||
|
pushad
|
||||||
call Clear2xSaIBuffer
|
call Clear2xSaIBuffer
|
||||||
|
popad
|
||||||
; mov byte[NetPlayNoMore],1
|
; mov byte[NetPlayNoMore],1
|
||||||
mov byte[RestoreValues],0
|
mov byte[RestoreValues],0
|
||||||
|
|
||||||
|
|||||||
@@ -1411,7 +1411,9 @@ GUIWinClicked:
|
|||||||
cmp edx,%2+8
|
cmp edx,%2+8
|
||||||
jg %%noclick
|
jg %%noclick
|
||||||
xor %3,1
|
xor %3,1
|
||||||
|
pushad
|
||||||
call Clear2xSaIBuffer
|
call Clear2xSaIBuffer
|
||||||
|
popad
|
||||||
%%noclick
|
%%noclick
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
@@ -2119,7 +2121,7 @@ DisplayGUIMovieClick:
|
|||||||
GUIPButtonHole 100,40,byte[CMovieExt],'7'
|
GUIPButtonHole 100,40,byte[CMovieExt],'7'
|
||||||
GUIPButtonHole 120,40,byte[CMovieExt],'8'
|
GUIPButtonHole 120,40,byte[CMovieExt],'8'
|
||||||
GUIPButtonHole 140,40,byte[CMovieExt],'9'
|
GUIPButtonHole 140,40,byte[CMovieExt],'9'
|
||||||
|
|
||||||
DGOptnsProcBox 116,68,[KeyInsrtChap]
|
DGOptnsProcBox 116,68,[KeyInsrtChap]
|
||||||
DGOptnsProcBox 116,84,[KeyNextChap]
|
DGOptnsProcBox 116,84,[KeyNextChap]
|
||||||
DGOptnsProcBox 116,100,[KeyPrevChap]
|
DGOptnsProcBox 116,100,[KeyPrevChap]
|
||||||
@@ -2244,7 +2246,7 @@ DisplayGUIInputClick:
|
|||||||
mov edi,pl5selk
|
mov edi,pl5selk
|
||||||
mov dword[keycontrolval],pl5contrl
|
mov dword[keycontrolval],pl5contrl
|
||||||
.nopl5
|
.nopl5
|
||||||
|
|
||||||
;Check if controller is set
|
;Check if controller is set
|
||||||
push eax
|
push eax
|
||||||
mov eax,dword[keycontrolval]
|
mov eax,dword[keycontrolval]
|
||||||
@@ -3333,9 +3335,9 @@ DisplayGUISaveClick:
|
|||||||
GUIPHoldbutton2 173,32,181,40,72,byte[RewindFrames],1,40
|
GUIPHoldbutton2 173,32,181,40,72,byte[RewindFrames],1,40
|
||||||
GUIPHoldbutton2 184,32,192,40,73,byte[RewindFrames],-1,0
|
GUIPHoldbutton2 184,32,192,40,73,byte[RewindFrames],-1,0
|
||||||
DGOptnsProcBox 27,121,[KeyStateSlc0]
|
DGOptnsProcBox 27,121,[KeyStateSlc0]
|
||||||
DGOptnsProcBox 27+45,121,[KeyStateSlc1]
|
DGOptnsProcBox 27+45,121,[KeyStateSlc1]
|
||||||
DGOptnsProcBox 27+45*2,121,[KeyStateSlc2]
|
DGOptnsProcBox 27+45*2,121,[KeyStateSlc2]
|
||||||
DGOptnsProcBox 27+45*3,121,[KeyStateSlc3]
|
DGOptnsProcBox 27+45*3,121,[KeyStateSlc3]
|
||||||
DGOptnsProcBox 27,130,[KeyStateSlc4]
|
DGOptnsProcBox 27,130,[KeyStateSlc4]
|
||||||
DGOptnsProcBox 27+45,130,[KeyStateSlc5]
|
DGOptnsProcBox 27+45,130,[KeyStateSlc5]
|
||||||
DGOptnsProcBox 27+45*2,130,[KeyStateSlc6]
|
DGOptnsProcBox 27+45*2,130,[KeyStateSlc6]
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ EXTSYM spcon,vesa2_bpos,vesa2_clbit,vesa2_gpos,vesa2_rpos,vesa2selec
|
|||||||
EXTSYM vidbuffer,spritetablea,sprlefttot,newengen,spcextraram,resolutn
|
EXTSYM vidbuffer,spritetablea,sprlefttot,newengen,spcextraram,resolutn
|
||||||
EXTSYM Open_File,Close_File,Read_File,Write_File,Create_File,Get_Key,Get_Date
|
EXTSYM Open_File,Close_File,Read_File,Write_File,Create_File,Get_Key,Get_Date
|
||||||
EXTSYM continueprognokeys,ForceNonTransp,GUIOn,Check_Key,JoyRead
|
EXTSYM continueprognokeys,ForceNonTransp,GUIOn,Check_Key,JoyRead
|
||||||
EXTSYM GetScreen,SSKeyPressed,SPCKeyPressed,StopSound,StartSound
|
EXTSYM GetScreen,SSKeyPressed,SPCKeyPressed,StopSound,StartSound
|
||||||
EXTSYM ExecExitOkay,t1cc
|
EXTSYM ExecExitOkay,t1cc
|
||||||
EXTSYM Clear2xSaIBuffer
|
EXTSYM Clear2xSaIBuffer
|
||||||
EXTSYM romdata,romtype,ScreenShotFormat
|
EXTSYM romdata,romtype,ScreenShotFormat
|
||||||
@@ -213,7 +213,7 @@ NEWSYM showmenu
|
|||||||
.nomenuinc3
|
.nomenuinc3
|
||||||
|
|
||||||
mov dword[menudrawbox8b.stringi+13],' BMP'
|
mov dword[menudrawbox8b.stringi+13],' BMP'
|
||||||
%ifndef NO_PNG
|
%ifndef NO_PNG
|
||||||
cmp byte[ScreenShotFormat],0
|
cmp byte[ScreenShotFormat],0
|
||||||
je .normalscrn
|
je .normalscrn
|
||||||
mov dword[menudrawbox8b.stringi+13],' PNG'
|
mov dword[menudrawbox8b.stringi+13],' PNG'
|
||||||
@@ -484,7 +484,9 @@ NEWSYM showmenu
|
|||||||
call StartSound
|
call StartSound
|
||||||
mov byte[ForceNonTransp],0
|
mov byte[ForceNonTransp],0
|
||||||
mov byte[GUIOn],0
|
mov byte[GUIOn],0
|
||||||
|
pushad
|
||||||
call Clear2xSaIBuffer
|
call Clear2xSaIBuffer
|
||||||
|
popad
|
||||||
cmp byte[MenuNoExit],1
|
cmp byte[MenuNoExit],1
|
||||||
je .noexitmenu
|
je .noexitmenu
|
||||||
jmp continueprognokeys
|
jmp continueprognokeys
|
||||||
@@ -1172,7 +1174,7 @@ NEWSYM savepcx
|
|||||||
ret
|
ret
|
||||||
.notpng
|
.notpng
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
mov byte[pressed+1],0
|
mov byte[pressed+1],0
|
||||||
mov byte[pressed+59],0
|
mov byte[pressed+59],0
|
||||||
cmp byte[cbitmode],1
|
cmp byte[cbitmode],1
|
||||||
|
|||||||
@@ -96,25 +96,12 @@ EXTSYM sfxaccessbankw8d,sfxramdata
|
|||||||
EXTSYM sramaccessbankr16,sramaccessbankr16s,sramaccessbankr8,sramaccessbankr8s
|
EXTSYM sramaccessbankr16,sramaccessbankr16s,sramaccessbankr8,sramaccessbankr8s
|
||||||
EXTSYM sramaccessbankw16,sramaccessbankw16s,sramaccessbankw8,sramaccessbankw8s
|
EXTSYM sramaccessbankw16,sramaccessbankw16s,sramaccessbankw8,sramaccessbankw8s
|
||||||
EXTSYM ScrDispl,wramreadptr,wramwriteptr
|
EXTSYM ScrDispl,wramreadptr,wramwriteptr
|
||||||
EXTSYM loadstate2,headerhack
|
EXTSYM loadstate2,CMovieExt,MoviePlay
|
||||||
|
|
||||||
;initc.c
|
;initc.c
|
||||||
EXTSYM clearmem,clearSPCRAM,PatchUsingIPS,loadZipFile,ZOpenFileName
|
EXTSYM clearmem,clearSPCRAM,PatchUsingIPS,ZOpenFileName,loadROM,SPC7110IndexSize
|
||||||
EXTSYM loadROM,CalcChecksum,BankCheck,MirrorROM,SplittedROM,addOnStart,addOnSize
|
EXTSYM SPC7PackIndexLoad,IntlEHi,C4Enable,SPC7110Enable,RTCEnable,SA1Enable
|
||||||
EXTSYM SPC7PackIndexLoad,SPC7110IndexSize,DumpROMLoadInfo,SetupSramSize,IntlEHi
|
EXTSYM SDD1Enable,OBCEnable,SFXEnable,BSEnable,clearvidsound,headerhack,SetupROM
|
||||||
EXTSYM CHIPBATT,SETAEnable,C4Enable,SPC7110Enable,RTCEnable,SA1Enable,SDD1Enable
|
|
||||||
EXTSYM OBCEnable,SFXEnable,ST18Enable,SGBEnable,DSP1Enable,DSP2Enable,DSP3Enable
|
|
||||||
EXTSYM DSP4Enable,BSEnable,clearvidsound
|
|
||||||
|
|
||||||
EXTSYM calculate_state_sizes,InitRewindVars
|
|
||||||
|
|
||||||
EXTSYM SetaCmdEnable,setaramdata
|
|
||||||
EXTSYM setaaccessbankr8,setaaccessbankw8,setaaccessbankr8a,setaaccessbankw8a
|
|
||||||
EXTSYM setaaccessbankr16,setaaccessbankw16,setaaccessbankr16a,setaaccessbankw16a
|
|
||||||
EXTSYM DSP2Read8b,DSP2Read16b,DSP2Write8b,DSP2Write16b,InitDSP2
|
|
||||||
EXTSYM DSP4Read8b,DSP4Read16b,DSP4Write8b,DSP4Write16b,InitDSP4
|
|
||||||
|
|
||||||
EXTSYM SetupROMc,CMovieExt,MoviePlay
|
|
||||||
|
|
||||||
%ifdef __LINUX__
|
%ifdef __LINUX__
|
||||||
EXTSYM LoadDir,popdir,pushdir
|
EXTSYM LoadDir,popdir,pushdir
|
||||||
@@ -137,7 +124,7 @@ blah times 450 db 0
|
|||||||
NEWSYM autoloadstate, db 0 ; auto load state slot number
|
NEWSYM autoloadstate, db 0 ; auto load state slot number
|
||||||
NEWSYM autoloadmovie, db 0
|
NEWSYM autoloadmovie, db 0
|
||||||
|
|
||||||
NEWSYM EndMessage
|
NEWSYM EndMessage
|
||||||
db ' ',13,10,0
|
db ' ',13,10,0
|
||||||
|
|
||||||
SECTION .text
|
SECTION .text
|
||||||
@@ -170,7 +157,7 @@ NEWSYM init
|
|||||||
pushad
|
pushad
|
||||||
call BackupSystemVars
|
call BackupSystemVars
|
||||||
popad
|
popad
|
||||||
|
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov al,[cfgreinittime]
|
mov al,[cfgreinittime]
|
||||||
mov ebx,50
|
mov ebx,50
|
||||||
@@ -218,8 +205,8 @@ NEWSYM init
|
|||||||
.found
|
.found
|
||||||
mov byte[romloadskip],0
|
mov byte[romloadskip],0
|
||||||
call loadfile
|
call loadfile
|
||||||
call SetupROM
|
|
||||||
pushad
|
pushad
|
||||||
|
call SetupROM
|
||||||
call showinfogui
|
call showinfogui
|
||||||
popad
|
popad
|
||||||
.noloadfile
|
.noloadfile
|
||||||
@@ -254,7 +241,7 @@ NEWSYM init
|
|||||||
jge .2digits
|
jge .2digits
|
||||||
mov al,byte[autoloadstate]
|
mov al,byte[autoloadstate]
|
||||||
add al,48
|
add al,48
|
||||||
mov byte[fnamest+ebx],al
|
mov byte[fnamest+ebx],al
|
||||||
jmp .enddigits
|
jmp .enddigits
|
||||||
.2digits
|
.2digits
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
@@ -300,13 +287,13 @@ NEWSYM init
|
|||||||
mov al,'v'
|
mov al,'v'
|
||||||
.notzero1
|
.notzero1
|
||||||
mov byte[CMovieExt],al
|
mov byte[CMovieExt],al
|
||||||
|
|
||||||
pushad
|
pushad
|
||||||
call MoviePlay
|
call MoviePlay
|
||||||
popad
|
popad
|
||||||
|
|
||||||
.noautloadmovie
|
.noautloadmovie
|
||||||
|
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov al,[cvidmode]
|
mov al,[cvidmode]
|
||||||
cmp byte[GUI16VID+eax],1
|
cmp byte[GUI16VID+eax],1
|
||||||
@@ -379,7 +366,7 @@ NEWSYM pl1selk, dd 54
|
|||||||
NEWSYM pl1startk, dd 28
|
NEWSYM pl1startk, dd 28
|
||||||
NEWSYM pl1upk, dd 200
|
NEWSYM pl1upk, dd 200
|
||||||
NEWSYM pl1downk, dd 208
|
NEWSYM pl1downk, dd 208
|
||||||
NEWSYM pl1leftk, dd 203
|
NEWSYM pl1leftk, dd 203
|
||||||
NEWSYM pl1rightk, dd 205
|
NEWSYM pl1rightk, dd 205
|
||||||
%endif
|
%endif
|
||||||
NEWSYM pl1Xk, dd 31
|
NEWSYM pl1Xk, dd 31
|
||||||
@@ -1307,7 +1294,7 @@ NEWSYM init65816
|
|||||||
jne .notbsx2
|
jne .notbsx2
|
||||||
mov eax,0FFFFFFFFh
|
mov eax,0FFFFFFFFh
|
||||||
helpclearmem wramdataa, 65536
|
helpclearmem wramdataa, 65536
|
||||||
helpclearmem ram7fa, 65536
|
helpclearmem ram7fa, 65536
|
||||||
cmp byte[romtype],1 ;Hack for BS HiROMs
|
cmp byte[romtype],1 ;Hack for BS HiROMs
|
||||||
jne .notbsx2
|
jne .notbsx2
|
||||||
mov dword[ram7fa+65528],01010101h
|
mov dword[ram7fa+65528],01010101h
|
||||||
@@ -1710,7 +1697,7 @@ NEWSYM initsnes
|
|||||||
stosd
|
stosd
|
||||||
add eax,10000h
|
add eax,10000h
|
||||||
dec ecx
|
dec ecx
|
||||||
jnz .loopbb
|
jnz .loopbb
|
||||||
; set banks 80-BF (40h x 32KB ROM banks @ 8000h)
|
; set banks 80-BF (40h x 32KB ROM banks @ 8000h)
|
||||||
mov eax,[romdata]
|
mov eax,[romdata]
|
||||||
mov ecx,40h
|
mov ecx,40h
|
||||||
@@ -2173,7 +2160,7 @@ NEWSYM printhex8
|
|||||||
; Search for header size first which is filesize MOD 32768
|
; Search for header size first which is filesize MOD 32768
|
||||||
|
|
||||||
NEWSYM PatchIPS
|
NEWSYM PatchIPS
|
||||||
%ifdef __LINUX__
|
%ifdef __LINUX__
|
||||||
pushad
|
pushad
|
||||||
call pushdir
|
call pushdir
|
||||||
popad
|
popad
|
||||||
@@ -2601,7 +2588,7 @@ NEWSYM CSStatus3, db 'VIDEO: CRC32: ',0
|
|||||||
;*******************************************************
|
;*******************************************************
|
||||||
; Show Information
|
; Show Information
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
;
|
;
|
||||||
; Maker Code = FFB0-FFB1
|
; Maker Code = FFB0-FFB1
|
||||||
; Game Code = FFB2-FFB5
|
; Game Code = FFB2-FFB5
|
||||||
; Expansion RAM Size = FFBD (0=none, 1=16kbit, 3=64kbit, 5=256kbit,etc.
|
; Expansion RAM Size = FFBD (0=none, 1=16kbit, 3=64kbit, 5=256kbit,etc.
|
||||||
@@ -2616,63 +2603,6 @@ NEWSYM CSStatus3, db 'VIDEO: CRC32: ',0
|
|||||||
SECTION .bss
|
SECTION .bss
|
||||||
NEWSYM DSP1Type, resb 1
|
NEWSYM DSP1Type, resb 1
|
||||||
NEWSYM intldone, resb 1
|
NEWSYM intldone, resb 1
|
||||||
SECTION .text
|
|
||||||
|
|
||||||
EXTSYM ClearScreen, cbitmode, makepal
|
|
||||||
|
|
||||||
NEWSYM SetupROM
|
|
||||||
pushad
|
|
||||||
call SetupROMc
|
|
||||||
popad
|
|
||||||
; call CheckROMType
|
|
||||||
call SetIRQVectors
|
|
||||||
call ClearScreen
|
|
||||||
cmp byte[cbitmode],0
|
|
||||||
jne .nomakepal
|
|
||||||
call makepal
|
|
||||||
.nomakepal
|
|
||||||
; get ROM and SRAM size
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,[infoloc]
|
|
||||||
add esi,18h
|
|
||||||
mov cl,[esi-1]
|
|
||||||
mov [curromsize],cl
|
|
||||||
pushad
|
|
||||||
call SetupSramSize
|
|
||||||
call calculate_state_sizes
|
|
||||||
call InitRewindVars
|
|
||||||
popad
|
|
||||||
|
|
||||||
; get pal/ntsc
|
|
||||||
inc esi
|
|
||||||
mov al,[ForceROMTiming]
|
|
||||||
mov byte[ForcePal],al
|
|
||||||
xor al,al
|
|
||||||
mov al,[esi]
|
|
||||||
cmp byte[ForcePal],1
|
|
||||||
jne .nontsc
|
|
||||||
mov al,0
|
|
||||||
.nontsc
|
|
||||||
cmp byte[ForcePal],2
|
|
||||||
jne .nopal2
|
|
||||||
mov al,2
|
|
||||||
.nopal2
|
|
||||||
mov byte[romispal],0
|
|
||||||
mov word[totlines],263
|
|
||||||
mov dword[MsgCount],120
|
|
||||||
cmp byte[BSEnable],1
|
|
||||||
je .nopal
|
|
||||||
cmp al,1
|
|
||||||
jbe .nopal
|
|
||||||
cmp al,0Dh
|
|
||||||
jae .nopal
|
|
||||||
mov byte[romispal],1
|
|
||||||
mov word[totlines],314
|
|
||||||
mov dword[MsgCount],100
|
|
||||||
.nopal
|
|
||||||
ret
|
|
||||||
|
|
||||||
SECTION .bss
|
|
||||||
NEWSYM C4RamR, resd 1
|
NEWSYM C4RamR, resd 1
|
||||||
NEWSYM C4RamW, resd 1
|
NEWSYM C4RamW, resd 1
|
||||||
NEWSYM C4Ram, resd 1
|
NEWSYM C4Ram, resd 1
|
||||||
@@ -2680,64 +2610,6 @@ NEWSYM ROMTypeNOTFound, resb 1
|
|||||||
NEWSYM Interleaved, resb 1
|
NEWSYM Interleaved, resb 1
|
||||||
SECTION .text
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM SetIRQVectors
|
|
||||||
; Get Vectors (NMI & Reset)
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,[infoloc]
|
|
||||||
add esi,21
|
|
||||||
mov al,[esi]
|
|
||||||
test al,0F0h
|
|
||||||
jnz .yesfastrom
|
|
||||||
mov al,[opexec268]
|
|
||||||
mov [opexec358],al
|
|
||||||
mov al,[opexec268cph]
|
|
||||||
mov [opexec358cph],al
|
|
||||||
mov al,[cycpb268]
|
|
||||||
mov [cycpb358],al
|
|
||||||
.yesfastrom
|
|
||||||
add esi,0Fh
|
|
||||||
cmp word[esi+24],0FFFFh
|
|
||||||
jne .notreseterror
|
|
||||||
mov word[esi+6],0FF9Ch
|
|
||||||
mov word[esi+24],0FF80h
|
|
||||||
.notreseterror
|
|
||||||
lodsw
|
|
||||||
mov [copv],ax
|
|
||||||
lodsw
|
|
||||||
mov [brkv],ax
|
|
||||||
lodsw
|
|
||||||
mov [abortv],ax
|
|
||||||
lodsw
|
|
||||||
mov [nmiv],ax
|
|
||||||
mov [nmiv2],ax
|
|
||||||
add esi,2
|
|
||||||
lodsw
|
|
||||||
mov [irqv],ax
|
|
||||||
mov [irqv2],ax
|
|
||||||
add esi,4
|
|
||||||
; 8-bit and reset
|
|
||||||
lodsw
|
|
||||||
mov [copv8],ax
|
|
||||||
inc esi
|
|
||||||
inc esi
|
|
||||||
lodsw
|
|
||||||
mov [abortv8],ax
|
|
||||||
lodsw
|
|
||||||
mov [nmiv8],ax
|
|
||||||
lodsw
|
|
||||||
mov [resetv],ax
|
|
||||||
lodsw
|
|
||||||
mov [brkv8],ax
|
|
||||||
mov [irqv8],ax
|
|
||||||
cmp byte[yesoutofmemory],0
|
|
||||||
je .notfailed
|
|
||||||
mov word[resetv],8000h
|
|
||||||
mov esi,[romdata]
|
|
||||||
mov word[esi],0FE80h
|
|
||||||
mov word[esi+8000h],0FE80h
|
|
||||||
.notfailed
|
|
||||||
ret
|
|
||||||
|
|
||||||
NEWSYM outofmemfix
|
NEWSYM outofmemfix
|
||||||
mov esi,[romdata]
|
mov esi,[romdata]
|
||||||
cmp byte[romtype],2
|
cmp byte[romtype],2
|
||||||
|
|||||||
@@ -216,7 +216,7 @@ void CheckIntlEHi(unsigned char *ROM)
|
|||||||
|
|
||||||
//Swap 4MB ROM with the other one
|
//Swap 4MB ROM with the other one
|
||||||
SwapData(romdata, romdata+((NumofBytes-0x400000)/4), 0x100000);
|
SwapData(romdata, romdata+((NumofBytes-0x400000)/4), 0x100000);
|
||||||
|
|
||||||
//Deinterleave the 4MB ROM first
|
//Deinterleave the 4MB ROM first
|
||||||
NumofBanks = 128;
|
NumofBanks = 128;
|
||||||
deintlv1();
|
deintlv1();
|
||||||
@@ -252,7 +252,7 @@ void IntlEHi()
|
|||||||
{
|
{
|
||||||
SwapData(romdata, romdata + 0x100000, 0x80000);
|
SwapData(romdata, romdata + 0x100000, 0x80000);
|
||||||
SwapData(romdata + 0x80000, romdata + 0x100000, 0x80000);
|
SwapData(romdata + 0x80000, romdata + 0x100000, 0x80000);
|
||||||
|
|
||||||
NumofBanks = 64;
|
NumofBanks = 64;
|
||||||
intlv1();
|
intlv1();
|
||||||
NumofBanks = 192;
|
NumofBanks = 192;
|
||||||
@@ -415,12 +415,12 @@ void chip_detect()
|
|||||||
BSEnable = false;
|
BSEnable = false;
|
||||||
SFXEnable = false;
|
SFXEnable = false;
|
||||||
SETAEnable = false;
|
SETAEnable = false;
|
||||||
|
|
||||||
//DSP Family
|
//DSP Family
|
||||||
if (ROM[infoloc+TypeOffset] == 3)
|
if (ROM[infoloc+TypeOffset] == 3)
|
||||||
{
|
{
|
||||||
if (ROM[infoloc+BankOffset] == 48)
|
if (ROM[infoloc+BankOffset] == 48)
|
||||||
{
|
{
|
||||||
DSP4Enable = true;
|
DSP4Enable = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -428,16 +428,16 @@ void chip_detect()
|
|||||||
DSP1Enable = true;
|
DSP1Enable = true;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (ROM[infoloc+TypeOffset] == 5)
|
if (ROM[infoloc+TypeOffset] == 5)
|
||||||
{
|
{
|
||||||
CHIPBATT = true;
|
CHIPBATT = true;
|
||||||
if (ROM[infoloc+BankOffset] == 32)
|
if (ROM[infoloc+BankOffset] == 32)
|
||||||
{
|
{
|
||||||
DSP2Enable = true;
|
DSP2Enable = true;
|
||||||
}
|
}
|
||||||
else if (ROM[infoloc+BankOffset] == 48 && ROM[infoloc+CompanyOffset] == 0xB2) //Bandai
|
else if (ROM[infoloc+BankOffset] == 48 && ROM[infoloc+CompanyOffset] == 0xB2) //Bandai
|
||||||
{
|
{
|
||||||
DSP3Enable = true;
|
DSP3Enable = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -454,26 +454,26 @@ void chip_detect()
|
|||||||
SFXEnable = true;
|
SFXEnable = true;
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
case 0x1520: //GSU-x + Battery
|
case 0x1520: //GSU-x + Battery
|
||||||
case 0x1A20: //GSU-1 + Battery + Start in 21MHz
|
case 0x1A20: //GSU-1 + Battery + Start in 21MHz
|
||||||
SFXEnable = true;
|
SFXEnable = true;
|
||||||
CHIPBATT = true;
|
CHIPBATT = true;
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x2530:
|
case 0x2530:
|
||||||
OBCEnable = true;
|
OBCEnable = true;
|
||||||
CHIPBATT = true;
|
CHIPBATT = true;
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x3423:
|
case 0x3423:
|
||||||
SA1Enable = true;
|
SA1Enable = true;
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x3523:
|
case 0x3523:
|
||||||
SA1Enable = true;
|
SA1Enable = true;
|
||||||
CHIPBATT = true;
|
CHIPBATT = true;
|
||||||
@@ -487,38 +487,38 @@ void chip_detect()
|
|||||||
|
|
||||||
case 0x4532:
|
case 0x4532:
|
||||||
SDD1Enable = true;
|
SDD1Enable = true;
|
||||||
CHIPBATT = true;
|
CHIPBATT = true;
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x5535:
|
case 0x5535:
|
||||||
RTCEnable = true;
|
RTCEnable = true;
|
||||||
CHIPBATT = true;
|
CHIPBATT = true;
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0xE320:
|
case 0xE320:
|
||||||
SGBEnable = true;
|
SGBEnable = true;
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0xF320:
|
case 0xF320:
|
||||||
C4Enable = true;
|
C4Enable = true;
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0xF530:
|
case 0xF530:
|
||||||
ST18Enable = true;
|
ST18Enable = true;
|
||||||
CHIPBATT = true; //Check later if this should be removed
|
CHIPBATT = true; //Check later if this should be removed
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0xF53A:
|
case 0xF53A:
|
||||||
SPC7110Enable = true;
|
SPC7110Enable = true;
|
||||||
CHIPBATT = true;
|
CHIPBATT = true;
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0xF630:
|
case 0xF630:
|
||||||
SETAEnable = true;
|
SETAEnable = true;
|
||||||
CHIPBATT = true;
|
CHIPBATT = true;
|
||||||
@@ -527,7 +527,7 @@ void chip_detect()
|
|||||||
|
|
||||||
case 0xF93A:
|
case 0xF93A:
|
||||||
SPC7110Enable = true;
|
SPC7110Enable = true;
|
||||||
RTCEnable = true;
|
RTCEnable = true;
|
||||||
CHIPBATT = true;
|
CHIPBATT = true;
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
@@ -679,7 +679,7 @@ char *lastROMFileName;
|
|||||||
void DumpROMLoadInfo()
|
void DumpROMLoadInfo()
|
||||||
{
|
{
|
||||||
FILE *fp = 0;
|
FILE *fp = 0;
|
||||||
|
|
||||||
if (RomInfo) //rominfo.txt info dumping enabled?
|
if (RomInfo) //rominfo.txt info dumping enabled?
|
||||||
{
|
{
|
||||||
fp = fopen("rominfo.txt", "w");
|
fp = fopen("rominfo.txt", "w");
|
||||||
@@ -740,7 +740,7 @@ void loadFile(char *filename)
|
|||||||
curromspace += stat_results.st_size;
|
curromspace += stat_results.st_size;
|
||||||
|
|
||||||
if (!multifile) { return; }
|
if (!multifile) { return; }
|
||||||
|
|
||||||
(*incrementer)++;
|
(*incrementer)++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -768,16 +768,16 @@ void loadGZipFile(char *filename)
|
|||||||
if ((unsigned int)size > maxromspace+512) { return; }
|
if ((unsigned int)size > maxromspace+512) { return; }
|
||||||
|
|
||||||
//Open GZip file for decompression
|
//Open GZip file for decompression
|
||||||
GZipFile = gzopen(filename, "rb");
|
GZipFile = gzopen(filename, "rb");
|
||||||
|
|
||||||
//Decompress file into memory
|
//Decompress file into memory
|
||||||
err = gzread(GZipFile, romdata, size);
|
err = gzread(GZipFile, romdata, size);
|
||||||
|
|
||||||
//Close compressed file
|
//Close compressed file
|
||||||
gzclose(GZipFile);
|
gzclose(GZipFile);
|
||||||
|
|
||||||
if (err != size) { return; }
|
if (err != size) { return; }
|
||||||
|
|
||||||
curromspace = size;
|
curromspace = size;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -791,7 +791,7 @@ void loadZipFile(char *filename)
|
|||||||
{
|
{
|
||||||
int err, fileSize;
|
int err, fileSize;
|
||||||
unsigned char *ROM = (unsigned char *)romdata;
|
unsigned char *ROM = (unsigned char *)romdata;
|
||||||
bool multifile = false, NSS = false;
|
bool multifile = false, NSS = false;
|
||||||
char *incrementer = 0;
|
char *incrementer = 0;
|
||||||
|
|
||||||
unzFile zipfile = unzOpen(filename); //Open zip file
|
unzFile zipfile = unzOpen(filename); //Open zip file
|
||||||
@@ -799,11 +799,11 @@ void loadZipFile(char *filename)
|
|||||||
unz_file_info cFileInfo; //Create variable to hold info for a compressed file
|
unz_file_info cFileInfo; //Create variable to hold info for a compressed file
|
||||||
|
|
||||||
int LargestGoodFile = 0; //To keep track of largest file
|
int LargestGoodFile = 0; //To keep track of largest file
|
||||||
|
|
||||||
//Variables for the file we pick
|
//Variables for the file we pick
|
||||||
char ourFile[256];
|
char ourFile[256];
|
||||||
ourFile[0] = '\n';
|
ourFile[0] = '\n';
|
||||||
|
|
||||||
while(cFile == UNZ_OK) //While not at end of compressed file list
|
while(cFile == UNZ_OK) //While not at end of compressed file list
|
||||||
{
|
{
|
||||||
//Temporary char array for file name
|
//Temporary char array for file name
|
||||||
@@ -825,13 +825,13 @@ void loadZipFile(char *filename)
|
|||||||
incrementer = ourFile+strlen(ourFile)-1;
|
incrementer = ourFile+strlen(ourFile)-1;
|
||||||
multifile = true;
|
multifile = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Find Nintendo Super System ROMs
|
//Find Nintendo Super System ROMs
|
||||||
if (strlen(cFileName) >= 5) //Char + ".IC2"
|
if (strlen(cFileName) >= 5) //Char + ".IC2"
|
||||||
{
|
{
|
||||||
char *ext = cFileName+strlen(cFileName)-4;
|
char *ext = cFileName+strlen(cFileName)-4;
|
||||||
if (!strncasecmp(ext, ".IC", 3))
|
if (!strncasecmp(ext, ".IC", 3))
|
||||||
{
|
{
|
||||||
strcpy(ourFile, cFileName);
|
strcpy(ourFile, cFileName);
|
||||||
@@ -848,12 +848,12 @@ void loadZipFile(char *filename)
|
|||||||
{
|
{
|
||||||
strcpy(ourFile, cFileName);
|
strcpy(ourFile, cFileName);
|
||||||
LargestGoodFile = fileSize;
|
LargestGoodFile = fileSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Go to next file in zip file
|
//Go to next file in zip file
|
||||||
cFile = unzGoToNextFile(zipfile);
|
cFile = unzGoToNextFile(zipfile);
|
||||||
}
|
}
|
||||||
|
|
||||||
//No files found
|
//No files found
|
||||||
if (ourFile[0] == '\n')
|
if (ourFile[0] == '\n')
|
||||||
{
|
{
|
||||||
@@ -883,14 +883,14 @@ void loadZipFile(char *filename)
|
|||||||
|
|
||||||
//Too big?
|
//Too big?
|
||||||
if (curromspace + fileSize > maxromspace+512)
|
if (curromspace + fileSize > maxromspace+512)
|
||||||
{
|
{
|
||||||
unzClose(zipfile);
|
unzClose(zipfile);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Open file
|
//Open file
|
||||||
unzOpenCurrentFile(zipfile);
|
unzOpenCurrentFile(zipfile);
|
||||||
|
|
||||||
//Read file into memory
|
//Read file into memory
|
||||||
err = unzReadCurrentFile(zipfile, ROM+curromspace, fileSize);
|
err = unzReadCurrentFile(zipfile, ROM+curromspace, fileSize);
|
||||||
|
|
||||||
@@ -899,7 +899,7 @@ void loadZipFile(char *filename)
|
|||||||
|
|
||||||
//Encountered error?
|
//Encountered error?
|
||||||
if (err != fileSize)
|
if (err != fileSize)
|
||||||
{
|
{
|
||||||
unzClose(zipfile);
|
unzClose(zipfile);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -920,7 +920,7 @@ void loadZipFile(char *filename)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!multifile)
|
if (!multifile)
|
||||||
{
|
{
|
||||||
unzClose(zipfile);
|
unzClose(zipfile);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -934,7 +934,7 @@ void SplitSetup(char *basepath, char *basefile, unsigned int MirrorSystem)
|
|||||||
|
|
||||||
curromspace = 0;
|
curromspace = 0;
|
||||||
if (maxromspace < addOnStart+addOnSize) { return; }
|
if (maxromspace < addOnStart+addOnSize) { return; }
|
||||||
memcpy(ROM+addOnStart, ROM, addOnSize);
|
memcpy(ROM+addOnStart, ROM, addOnSize);
|
||||||
|
|
||||||
if (*basepath == 0)
|
if (*basepath == 0)
|
||||||
{
|
{
|
||||||
@@ -974,19 +974,19 @@ void SplitSetup(char *basepath, char *basefile, unsigned int MirrorSystem)
|
|||||||
case 1:
|
case 1:
|
||||||
memcpy(ROM+0x100000, ROM, 0x100000); //Mirror 8 to 16
|
memcpy(ROM+0x100000, ROM, 0x100000); //Mirror 8 to 16
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
memcpy(ROM+0x180000, ROM+0x100000, 0x80000); //Mirrors 12 to 16
|
memcpy(ROM+0x180000, ROM+0x100000, 0x80000); //Mirrors 12 to 16
|
||||||
memcpy(ROM+0x200000, ROM+0x400000, 0x80000); //Copy base over
|
memcpy(ROM+0x200000, ROM+0x400000, 0x80000); //Copy base over
|
||||||
memset(ROM+0x280000, 0, 0x180000); //Blank out rest
|
memset(ROM+0x280000, 0, 0x180000); //Blank out rest
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
memcpy(ROM+0x40000, ROM, 0x40000);
|
memcpy(ROM+0x40000, ROM, 0x40000);
|
||||||
memcpy(ROM+0x80000, ROM, 0x80000);
|
memcpy(ROM+0x80000, ROM, 0x80000);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
curromspace = addOnStart+addOnSize;
|
curromspace = addOnStart+addOnSize;
|
||||||
SplittedROM = true;
|
SplittedROM = true;
|
||||||
}
|
}
|
||||||
@@ -998,7 +998,7 @@ void SplitSupport()
|
|||||||
{
|
{
|
||||||
unsigned char *ROM = (unsigned char *)romdata;
|
unsigned char *ROM = (unsigned char *)romdata;
|
||||||
SplittedROM = false;
|
SplittedROM = false;
|
||||||
|
|
||||||
//Same Game add on
|
//Same Game add on
|
||||||
if (ROM[Hi+CompanyOffset] == 0x33 && curromspace == 0x80000 &&
|
if (ROM[Hi+CompanyOffset] == 0x33 && curromspace == 0x80000 &&
|
||||||
!ROM[Hi+BankOffset] && !ROM[Hi+BSMonthOffset] && !ROM[Hi+BSDayOffset])
|
!ROM[Hi+BankOffset] && !ROM[Hi+BSMonthOffset] && !ROM[Hi+BSDayOffset])
|
||||||
@@ -1006,9 +1006,9 @@ void SplitSupport()
|
|||||||
addOnStart = 0x200000;
|
addOnStart = 0x200000;
|
||||||
addOnSize = 0x80000;
|
addOnSize = 0x80000;
|
||||||
SplitSetup(SGPath, "SAMEGAME.ZIP", 1);
|
SplitSetup(SGPath, "SAMEGAME.ZIP", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
//SD Gundam G-Next add on
|
//SD Gundam G-Next add on
|
||||||
if (ROM[Lo+CompanyOffset] == 0x33 && curromspace == 0x80000 &&
|
if (ROM[Lo+CompanyOffset] == 0x33 && curromspace == 0x80000 &&
|
||||||
!ROM[Lo+BankOffset] && !ROM[Lo+BSMonthOffset] && !ROM[Lo+BSDayOffset] && !strncmp(ROM+Lo, "GNEXT", 5))
|
!ROM[Lo+BankOffset] && !ROM[Lo+BSMonthOffset] && !ROM[Lo+BSDayOffset] && !strncmp(ROM+Lo, "GNEXT", 5))
|
||||||
{
|
{
|
||||||
@@ -1016,7 +1016,7 @@ void SplitSupport()
|
|||||||
addOnSize = 0x80000;
|
addOnSize = 0x80000;
|
||||||
SplitSetup(GNextPath, "G-NEXT.ZIP", 2);
|
SplitSetup(GNextPath, "G-NEXT.ZIP", 2);
|
||||||
addOnStart = 0x200000;
|
addOnStart = 0x200000;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Sufami Turbo
|
//Sufami Turbo
|
||||||
if (!strncmp(ROM, "BANDAI SFC-ADX", 14))
|
if (!strncmp(ROM, "BANDAI SFC-ADX", 14))
|
||||||
@@ -1024,7 +1024,7 @@ void SplitSupport()
|
|||||||
addOnStart = 0x100000;
|
addOnStart = 0x100000;
|
||||||
addOnSize = curromspace;
|
addOnSize = curromspace;
|
||||||
SplitSetup(STPath, "STBIOS.ZIP", 3);
|
SplitSetup(STPath, "STBIOS.ZIP", 3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool NSRTHead(unsigned char *ROM)
|
bool NSRTHead(unsigned char *ROM)
|
||||||
@@ -1038,9 +1038,9 @@ bool NSRTHead(unsigned char *ROM)
|
|||||||
(NSRTHead[0] & 0x0F) > 13 ||
|
(NSRTHead[0] & 0x0F) > 13 ||
|
||||||
((NSRTHead[0] & 0xF0) >> 4) > 3 ||
|
((NSRTHead[0] & 0xF0) >> 4) > 3 ||
|
||||||
((NSRTHead[0] & 0xF0) >> 4) == 0)
|
((NSRTHead[0] & 0xF0) >> 4) == 0)
|
||||||
{
|
{
|
||||||
return(false); //Corrupt
|
return(false); //Corrupt
|
||||||
}
|
}
|
||||||
return(true); //NSRT header
|
return(true); //NSRT header
|
||||||
}
|
}
|
||||||
return(false); //None
|
return(false); //None
|
||||||
@@ -1122,7 +1122,7 @@ void loadROM()
|
|||||||
case 512:
|
case 512:
|
||||||
Header512 = true;
|
Header512 = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
unsigned char *ROM = (unsigned char *)romdata;
|
unsigned char *ROM = (unsigned char *)romdata;
|
||||||
@@ -1149,7 +1149,7 @@ void loadROM()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
snesmouse = 0;
|
snesmouse = 0;
|
||||||
input1gp = true;
|
input1gp = true;
|
||||||
input1mouse = true;
|
input1mouse = true;
|
||||||
input2gp = true;
|
input2gp = true;
|
||||||
@@ -1158,11 +1158,11 @@ void loadROM()
|
|||||||
input2just = true;
|
input2just = true;
|
||||||
|
|
||||||
if (Header512)
|
if (Header512)
|
||||||
{
|
{
|
||||||
unsigned char *ROM = (unsigned char *)romdata;
|
unsigned char *ROM = (unsigned char *)romdata;
|
||||||
if (NSRTHead(ROM))
|
if (NSRTHead(ROM))
|
||||||
{
|
{
|
||||||
switch (ROM[0x1ED])
|
switch (ROM[0x1ED])
|
||||||
{
|
{
|
||||||
default: break;
|
default: break;
|
||||||
|
|
||||||
@@ -1179,7 +1179,7 @@ void loadROM()
|
|||||||
input2scope = false;
|
input2scope = false;
|
||||||
input2just = false;
|
input2just = false;
|
||||||
input1mouse = false;
|
input1mouse = false;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x03: //Super Scope port 2
|
case 0x03: //Super Scope port 2
|
||||||
snesmouse = 3;
|
snesmouse = 3;
|
||||||
@@ -1248,7 +1248,7 @@ void loadROM()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
curromspace -= 512;
|
curromspace -= 512;
|
||||||
memmove((unsigned char *)romdata, ((unsigned char *)romdata)+512, curromspace);
|
memmove((unsigned char *)romdata, ((unsigned char *)romdata)+512, curromspace);
|
||||||
}
|
}
|
||||||
|
|
||||||
snesinputdefault = snesmouse;
|
snesinputdefault = snesmouse;
|
||||||
@@ -1854,7 +1854,6 @@ extern unsigned int spcnumread, spchalted;
|
|||||||
extern unsigned char NextLineCache, sramsavedis, sndrot, regsbackup[3019];
|
extern unsigned char NextLineCache, sramsavedis, sndrot, regsbackup[3019];
|
||||||
extern unsigned char yesoutofmemory, fnames[512];
|
extern unsigned char yesoutofmemory, fnames[512];
|
||||||
|
|
||||||
void SetupROM();
|
|
||||||
void initsnes();
|
void initsnes();
|
||||||
void outofmemfix();
|
void outofmemfix();
|
||||||
void GUIDoReset();
|
void GUIDoReset();
|
||||||
@@ -1876,34 +1875,6 @@ bool loadSRAM(char *sramname)
|
|||||||
else { return(false); }
|
else { return(false); }
|
||||||
}
|
}
|
||||||
|
|
||||||
void powercycle(bool sramload)
|
|
||||||
{
|
|
||||||
memset(sram, 0xFF, 32768);
|
|
||||||
clearSPCRAM();
|
|
||||||
|
|
||||||
nmiprevaddrl = 0;
|
|
||||||
nmiprevaddrh = 0;
|
|
||||||
nmirept = 0;
|
|
||||||
nmiprevline = 224;
|
|
||||||
nmistatus = 0;
|
|
||||||
spcnumread = 0;
|
|
||||||
spchalted = ~0;
|
|
||||||
NextLineCache = 0;
|
|
||||||
curexecstate = 1;
|
|
||||||
|
|
||||||
if (sramload) { loadSRAM(fnames+1); }
|
|
||||||
asm_call(SetupROM);
|
|
||||||
asm_call(initsnes);
|
|
||||||
|
|
||||||
sramsavedis = 0;
|
|
||||||
|
|
||||||
memcpy(&sndrot, regsbackup, 3019);
|
|
||||||
|
|
||||||
if (yesoutofmemory == 1) { asm_call(outofmemfix); }
|
|
||||||
|
|
||||||
asm_call(GUIDoReset);
|
|
||||||
}
|
|
||||||
|
|
||||||
extern unsigned int Voice0Freq, Voice1Freq, Voice2Freq, Voice3Freq;
|
extern unsigned int Voice0Freq, Voice1Freq, Voice2Freq, Voice3Freq;
|
||||||
extern unsigned int Voice4Freq, Voice5Freq, Voice6Freq, Voice7Freq;
|
extern unsigned int Voice4Freq, Voice5Freq, Voice6Freq, Voice7Freq;
|
||||||
extern unsigned int dspPAdj;
|
extern unsigned int dspPAdj;
|
||||||
@@ -1932,13 +1903,16 @@ void initpitch()
|
|||||||
|
|
||||||
extern unsigned int SfxR1, SfxR2, SetaCmdEnable, SfxSFR, SfxSCMR;
|
extern unsigned int SfxR1, SfxR2, SetaCmdEnable, SfxSFR, SfxSCMR;
|
||||||
extern unsigned char lorommapmode2, disablespcclr, *sfxramdata, SramExists;
|
extern unsigned char lorommapmode2, disablespcclr, *sfxramdata, SramExists;
|
||||||
extern unsigned char *setaramdata, *wramdata, *SA1RAMArea;
|
extern unsigned char *setaramdata, *wramdata, *SA1RAMArea, cbitmode, curromsize;
|
||||||
|
extern unsigned char ForcePal, ForceROMTiming, romispal;
|
||||||
|
extern unsigned short totlines;
|
||||||
void SetAddressingModes(), GenerateBank0Table();
|
void SetAddressingModes(), GenerateBank0Table();
|
||||||
void SetAddressingModesSA1(), GenerateBank0TableSA1();
|
void SetAddressingModesSA1(), GenerateBank0TableSA1();
|
||||||
|
void calculate_state_sizes(), InitRewindVars();
|
||||||
void InitDSP(), InitDSP2(), InitDSP4(), InitFxTables(), initregr(), initregw();
|
void InitDSP(), InitDSP2(), InitDSP4(), InitFxTables(), initregr(), initregw();
|
||||||
void SPC7110Load();
|
void SPC7110Load(), DOSClearScreen(), dosmakepal();
|
||||||
|
|
||||||
void CheckROMTypeC()
|
void CheckROMType()
|
||||||
{
|
{
|
||||||
unsigned char *ROM = (unsigned char *)romdata;
|
unsigned char *ROM = (unsigned char *)romdata;
|
||||||
|
|
||||||
@@ -1947,7 +1921,7 @@ void CheckROMTypeC()
|
|||||||
|
|
||||||
lorommapmode2 = 0;
|
lorommapmode2 = 0;
|
||||||
if (!strncmp(ROM+0x207FC0, "DERBY STALLION 96", 17) || !strncmp(ROM+Lo, "SOUND NOVEL-TCOOL", 17))
|
if (!strncmp(ROM+0x207FC0, "DERBY STALLION 96", 17) || !strncmp(ROM+Lo, "SOUND NOVEL-TCOOL", 17))
|
||||||
{
|
{
|
||||||
lorommapmode2 = 1;
|
lorommapmode2 = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1968,7 +1942,11 @@ void CheckROMTypeC()
|
|||||||
|
|
||||||
if (DSP1Enable || DSP2Enable || DSP3Enable)
|
if (DSP1Enable || DSP2Enable || DSP3Enable)
|
||||||
{
|
{
|
||||||
if (DSP2Enable) { asm_call(InitDSP2); }
|
if (DSP2Enable)
|
||||||
|
{
|
||||||
|
asm_call(InitDSP2);
|
||||||
|
}
|
||||||
|
|
||||||
InitDSP();
|
InitDSP();
|
||||||
|
|
||||||
DSP1Type = (romtype == 2) ? 2 : 1;
|
DSP1Type = (romtype == 2) ? 2 : 1;
|
||||||
@@ -1983,7 +1961,7 @@ void CheckROMTypeC()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (SFXEnable)
|
if (SFXEnable)
|
||||||
{
|
{
|
||||||
// Setup SuperFX stuff
|
// Setup SuperFX stuff
|
||||||
if (Sup48mbit)
|
if (Sup48mbit)
|
||||||
{
|
{
|
||||||
@@ -1992,10 +1970,10 @@ void CheckROMTypeC()
|
|||||||
map_mem(0x71, &sfxbankb, 1);
|
map_mem(0x71, &sfxbankb, 1);
|
||||||
map_mem(0x72, &sfxbankc, 1);
|
map_mem(0x72, &sfxbankc, 1);
|
||||||
map_mem(0x73, &sfxbankd, 1);
|
map_mem(0x73, &sfxbankd, 1);
|
||||||
|
|
||||||
//SRAM mapping, banks 78 - 79
|
//SRAM mapping, banks 78 - 79
|
||||||
map_mem(0x78, &sramsbank, 2);
|
map_mem(0x78, &sramsbank, 2);
|
||||||
|
|
||||||
SfxR1 = 0;
|
SfxR1 = 0;
|
||||||
SfxR2 = 0;
|
SfxR2 = 0;
|
||||||
memset(sfxramdata, 0, 262144); // clear 256kB SFX ram
|
memset(sfxramdata, 0, 262144); // clear 256kB SFX ram
|
||||||
@@ -2016,11 +1994,11 @@ void CheckROMTypeC()
|
|||||||
if (SETAEnable)
|
if (SETAEnable)
|
||||||
{
|
{
|
||||||
// Setup SETA 010/011 stuff
|
// Setup SETA 010/011 stuff
|
||||||
|
|
||||||
// Really banks 68h-6Fh:0000-7FFF are all mapped the same by the chip but
|
// Really banks 68h-6Fh:0000-7FFF are all mapped the same by the chip but
|
||||||
// F1 ROC II only uses bank 68h
|
// F1 ROC II only uses bank 68h
|
||||||
map_mem(0x68, &setabank, 1);
|
map_mem(0x68, &setabank, 1);
|
||||||
|
|
||||||
// Control register (and some status?) is in banks 60h-67h:0000-3FFF
|
// Control register (and some status?) is in banks 60h-67h:0000-3FFF
|
||||||
map_mem(0x60, &setabanka, 1);
|
map_mem(0x60, &setabanka, 1);
|
||||||
|
|
||||||
@@ -2029,7 +2007,7 @@ void CheckROMTypeC()
|
|||||||
|
|
||||||
// proper SETA sram area
|
// proper SETA sram area
|
||||||
if (SramExists)
|
if (SramExists)
|
||||||
{
|
{
|
||||||
memcpy(setaramdata, sram, 4096);
|
memcpy(setaramdata, sram, 4096);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2059,7 +2037,7 @@ void CheckROMTypeC()
|
|||||||
map_mem(0x30, &dsp1bank, 0x10);
|
map_mem(0x30, &dsp1bank, 0x10);
|
||||||
map_mem(0xB0, &dsp1bank, 0x10);
|
map_mem(0xB0, &dsp1bank, 0x10);
|
||||||
map_mem(0xE0, &dsp1bank, 0x10);
|
map_mem(0xE0, &dsp1bank, 0x10);
|
||||||
|
|
||||||
if (DSP2Enable)
|
if (DSP2Enable)
|
||||||
{
|
{
|
||||||
map_mem(0x3F, &dsp2bank, 1);
|
map_mem(0x3F, &dsp2bank, 1);
|
||||||
@@ -2071,7 +2049,124 @@ void CheckROMTypeC()
|
|||||||
asm_call(SPC7110Load);
|
asm_call(SPC7110Load);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetupROMc()
|
extern unsigned short copv, brkv, abortv, nmiv, nmiv2, irqv, irqv2, resetv;
|
||||||
{
|
extern unsigned short copv8, brkv8, abortv8, nmiv8, irqv8;
|
||||||
CheckROMTypeC();
|
|
||||||
|
void SetIRQVectors()
|
||||||
|
{ // get vectors (NMI & reset)
|
||||||
|
unsigned char *ROM = (unsigned char *)romdata;
|
||||||
|
|
||||||
|
if (!(ROM[infoloc+21] & 0xF0)) // if not fastrom
|
||||||
|
{
|
||||||
|
opexec358 = opexec268;
|
||||||
|
opexec358cph = opexec268cph;
|
||||||
|
cycpb358 = cycpb268;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!memcmp(ROM+infoloc+36+24, "\0xFF\0xFF", 2)) // if reset error
|
||||||
|
{
|
||||||
|
memcpy(ROM+infoloc+36+6, "\0x9C\0xFF", 2);
|
||||||
|
memcpy(ROM+infoloc+36+24, "\0x80\0xFF", 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
memcpy(&copv, ROM+infoloc+0x24, 2);
|
||||||
|
memcpy(&brkv, ROM+infoloc+0x26, 2);
|
||||||
|
memcpy(&abortv, ROM+infoloc+0x28, 2);
|
||||||
|
memcpy(&nmiv, ROM+infoloc+0x2A, 2);
|
||||||
|
memcpy(&nmiv2, ROM+infoloc+0x2A, 2);
|
||||||
|
memcpy(&irqv, ROM+infoloc+0x2E, 2);
|
||||||
|
memcpy(&irqv2, ROM+infoloc+0x2E, 2);
|
||||||
|
|
||||||
|
// 8-bit and reset
|
||||||
|
memcpy(&copv8, ROM+infoloc+0x34, 2);
|
||||||
|
memcpy(&abortv8, ROM+infoloc+0x38, 2);
|
||||||
|
memcpy(&nmiv8, ROM+infoloc+0x3A, 2);
|
||||||
|
memcpy(&resetv, ROM+infoloc+0x3C, 2);
|
||||||
|
memcpy(&brkv8, ROM+infoloc+0x3E, 2);
|
||||||
|
memcpy(&irqv8, ROM+infoloc+0x3E, 2);
|
||||||
|
|
||||||
|
if (yesoutofmemory) // failed ?
|
||||||
|
{
|
||||||
|
resetv = 0x8000;
|
||||||
|
memcpy(ROM+0x0000, "\0x80\0xFE", 2);
|
||||||
|
memcpy(ROM+0x8000, "\0x80\0xFE", 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetupROM()
|
||||||
|
{
|
||||||
|
unsigned char *ROM = (unsigned char *)romdata;
|
||||||
|
|
||||||
|
CheckROMType();
|
||||||
|
SetIRQVectors();
|
||||||
|
|
||||||
|
#ifdef __MSDOS__
|
||||||
|
asm_call(DOSClearScreen);
|
||||||
|
|
||||||
|
if (!cbitmode) // 8-bit mode uses a palette
|
||||||
|
{
|
||||||
|
asm_call(dosmakepal);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// get ROM and SRAM sizes
|
||||||
|
curromsize = ROM[infoloc+0x17];
|
||||||
|
|
||||||
|
SetupSramSize();
|
||||||
|
calculate_state_sizes();
|
||||||
|
InitRewindVars();
|
||||||
|
|
||||||
|
// get timing (pal/ntsc)
|
||||||
|
ForcePal = ForceROMTiming;
|
||||||
|
|
||||||
|
switch (ForcePal)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
romispal = 0;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
romispal = (!BSEnable);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
romispal = ((!BSEnable) && (ROM[infoloc+0x19] > 1) && (ROM[infoloc+0x19] < 0xD));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (romispal)
|
||||||
|
{
|
||||||
|
totlines = 314;
|
||||||
|
MsgCount = 100;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
totlines = 263;
|
||||||
|
MsgCount = 120;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void powercycle(bool sramload)
|
||||||
|
{
|
||||||
|
memset(sram, 0xFF, 32768);
|
||||||
|
clearSPCRAM();
|
||||||
|
|
||||||
|
nmiprevaddrl = 0;
|
||||||
|
nmiprevaddrh = 0;
|
||||||
|
nmirept = 0;
|
||||||
|
nmiprevline = 224;
|
||||||
|
nmistatus = 0;
|
||||||
|
spcnumread = 0;
|
||||||
|
spchalted = ~0;
|
||||||
|
NextLineCache = 0;
|
||||||
|
curexecstate = 1;
|
||||||
|
|
||||||
|
if (sramload) { loadSRAM(fnames+1); }
|
||||||
|
SetupROM();
|
||||||
|
asm_call(initsnes);
|
||||||
|
|
||||||
|
sramsavedis = 0;
|
||||||
|
|
||||||
|
memcpy(&sndrot, regsbackup, 3019);
|
||||||
|
|
||||||
|
if (yesoutofmemory == 1) { asm_call(outofmemfix); }
|
||||||
|
|
||||||
|
asm_call(GUIDoReset);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ EXTSYM GUICPC, newgfx16b
|
|||||||
EXTSYM vesa2_clbitng,vesa2_clbitng2,vesa2_clbitng3
|
EXTSYM vesa2_clbitng,vesa2_clbitng2,vesa2_clbitng3
|
||||||
EXTSYM granadd,CSStatus,CSStatus2,CSStatus3
|
EXTSYM granadd,CSStatus,CSStatus2,CSStatus3
|
||||||
EXTSYM SpecialLine
|
EXTSYM SpecialLine
|
||||||
EXTSYM vidbufferofsb
|
EXTSYM Clear2xSaIBuffer
|
||||||
;EXTSYM Super2xSaI
|
;EXTSYM Super2xSaI
|
||||||
EXTSYM HalfTransB,HalfTransC
|
EXTSYM HalfTransB,HalfTransC
|
||||||
|
|
||||||
@@ -134,7 +134,7 @@ NEWSYM FPUZero
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz .TopOfLoop
|
jnz .TopOfLoop
|
||||||
fstp st0
|
fstp st0
|
||||||
%endif
|
%endif
|
||||||
ret
|
ret
|
||||||
|
|
||||||
%if 0
|
%if 0
|
||||||
@@ -553,11 +553,11 @@ NEWSYM FontData
|
|||||||
db 01111100b,11000110b,11000000b,11000000b ; G, 11
|
db 01111100b,11000110b,11000000b,11000000b ; G, 11
|
||||||
db 11001110b,11000110b,01111100b,00000000b
|
db 11001110b,11000110b,01111100b,00000000b
|
||||||
db 11000110b,11000110b,11000110b,11111110b ; H, 12
|
db 11000110b,11000110b,11000110b,11111110b ; H, 12
|
||||||
db 11000110b,11000110b,11000110b,00000000b
|
db 11000110b,11000110b,11000110b,00000000b
|
||||||
db 00111100b,00011000b,00011000b,00011000b ; I, 13
|
db 00111100b,00011000b,00011000b,00011000b ; I, 13
|
||||||
db 00011000b,00011000b,00111100b,00000000b
|
db 00011000b,00011000b,00111100b,00000000b
|
||||||
db 00011110b,00001100b,00001100b,00001100b ; J, 14
|
db 00011110b,00001100b,00001100b,00001100b ; J, 14
|
||||||
db 00001100b,11001100b,00111100b,00000000b
|
db 00001100b,11001100b,00111100b,00000000b
|
||||||
db 11001100b,11011000b,11110000b,11100000b ; K, 15
|
db 11001100b,11011000b,11110000b,11100000b ; K, 15
|
||||||
db 11110000b,11011000b,11001100b,00000000b
|
db 11110000b,11011000b,11001100b,00000000b
|
||||||
db 11000000b,11000000b,11000000b,11000000b ; L, 16
|
db 11000000b,11000000b,11000000b,11000000b ; L, 16
|
||||||
@@ -622,7 +622,7 @@ NEWSYM FontData
|
|||||||
; #, 31 (, 3A {, 43
|
; #, 31 (, 3A {, 43
|
||||||
; =, 32 ), 3B }, 44
|
; =, 32 ), 3B }, 44
|
||||||
; ", 33 @, 3C Up,45
|
; ", 33 @, 3C Up,45
|
||||||
; \, 34 ', 3D Dn,46
|
; \, 34 ', 3D Dn,46
|
||||||
; *, 35 !, 3E Lt,47
|
; *, 35 !, 3E Lt,47
|
||||||
; ?, 36 $, 3F Rt,48
|
; ?, 36 $, 3F Rt,48
|
||||||
; %, 37 ;, 40 Bk,49
|
; %, 37 ;, 40 Bk,49
|
||||||
@@ -1540,7 +1540,7 @@ NEWSYM saveselect
|
|||||||
pushad
|
pushad
|
||||||
call mzt_chdir
|
call mzt_chdir
|
||||||
popad
|
popad
|
||||||
.nomovie
|
.nomovie
|
||||||
mov byte[f3menuen],1
|
mov byte[f3menuen],1
|
||||||
mov byte[ForceNonTransp],1
|
mov byte[ForceNonTransp],1
|
||||||
cmp byte[ForceNewGfxOff],0
|
cmp byte[ForceNewGfxOff],0
|
||||||
@@ -1774,7 +1774,7 @@ NEWSYM saveselect
|
|||||||
pushad
|
pushad
|
||||||
call UpChdir
|
call UpChdir
|
||||||
popad
|
popad
|
||||||
.nomovie2
|
.nomovie2
|
||||||
ret
|
ret
|
||||||
|
|
||||||
SECTION .bss
|
SECTION .bss
|
||||||
@@ -2081,13 +2081,15 @@ SECTION .text
|
|||||||
mov byte[f3menuen],0
|
mov byte[f3menuen],0
|
||||||
mov byte[ForceNonTransp],0
|
mov byte[ForceNonTransp],0
|
||||||
mov byte[GUIOn],0
|
mov byte[GUIOn],0
|
||||||
|
pushad
|
||||||
call Clear2xSaIBuffer
|
call Clear2xSaIBuffer
|
||||||
|
popad
|
||||||
cmp byte[MovieProcessing],0
|
cmp byte[MovieProcessing],0
|
||||||
jz .nomovie3
|
jz .nomovie3
|
||||||
pushad
|
pushad
|
||||||
call UpChdir
|
call UpChdir
|
||||||
popad
|
popad
|
||||||
.nomovie3
|
.nomovie3
|
||||||
ret
|
ret
|
||||||
|
|
||||||
SECTION .data
|
SECTION .data
|
||||||
@@ -3227,12 +3229,12 @@ NEWSYM chatTL, resd 1
|
|||||||
|
|
||||||
SECTION .data
|
SECTION .data
|
||||||
NEWSYM chatreqtable
|
NEWSYM chatreqtable
|
||||||
db 0 ,2 ,'1','2','3','4','5','6','7','8','9','0','-','=',8 ,0
|
db 0 ,2 ,'1','2','3','4','5','6','7','8','9','0','-','=',8 ,0
|
||||||
db 'Q','W','E','R','T','Y','U','I','O','P','[',']',13 ,0 ,'A','S'
|
db 'Q','W','E','R','T','Y','U','I','O','P','[',']',13 ,0 ,'A','S'
|
||||||
db 'D','F','G','H','J','K','L',';',27h,'`',1 ,'\','Z','X','C','V'
|
db 'D','F','G','H','J','K','L',';',27h,'`',1 ,'\','Z','X','C','V'
|
||||||
db 'B','N','M',',','.','/',1 ,0 ,0 ,' ',0 ,0 ,0 ,0 ,0 ,0
|
db 'B','N','M',',','.','/',1 ,0 ,0 ,' ',0 ,0 ,0 ,0 ,0 ,0
|
||||||
; Shift Key Presses
|
; Shift Key Presses
|
||||||
db 0 ,2 ,'!','@','#','$','%','^','&','*','(',')','_','+',8 ,0
|
db 0 ,2 ,'!','@','#','$','%','^','&','*','(',')','_','+',8 ,0
|
||||||
db 'Q','W','E','R','T','Y','U','I','O','P','{','}',13 ,0 ,'A','S'
|
db 'Q','W','E','R','T','Y','U','I','O','P','{','}',13 ,0 ,'A','S'
|
||||||
db 'D','F','G','H','J','K','L',':','"','~',1 ,'|','Z','X','C','V'
|
db 'D','F','G','H','J','K','L',':','"','~',1 ,'|','Z','X','C','V'
|
||||||
db 'B','N','M','<','>','?',1 ,0 ,0 ,' ',0 ,0 ,0 ,0 ,0 ,0
|
db 'B','N','M','<','>','?',1 ,0 ,0 ,' ',0 ,0 ,0 ,0 ,0 ,0
|
||||||
@@ -3581,13 +3583,13 @@ NEWSYM copyvid
|
|||||||
jne .not16bframe
|
jne .not16bframe
|
||||||
mov esi,216*288*2+32*2
|
mov esi,216*288*2+32*2
|
||||||
add esi,[vidbuffer]
|
add esi,[vidbuffer]
|
||||||
call OutputGraphicString16b5x5
|
call OutputGraphicString16b5x5
|
||||||
jmp .nomovie4
|
jmp .nomovie4
|
||||||
.not16bframe
|
.not16bframe
|
||||||
mov esi,216*288+32
|
mov esi,216*288+32
|
||||||
add esi,[vidbuffer]
|
add esi,[vidbuffer]
|
||||||
call OutputGraphicString5x5
|
call OutputGraphicString5x5
|
||||||
.nomovie4
|
.nomovie4
|
||||||
jmp vidpaste
|
jmp vidpaste
|
||||||
SECTION .bss
|
SECTION .bss
|
||||||
.sdrawptr resd 1
|
.sdrawptr resd 1
|
||||||
@@ -3711,19 +3713,6 @@ NEWSYM vidpaste
|
|||||||
|
|
||||||
SECTION .bss
|
SECTION .bss
|
||||||
.SSRedCo resw 1
|
.SSRedCo resw 1
|
||||||
SECTION .text
|
|
||||||
|
|
||||||
|
|
||||||
NEWSYM Clear2xSaIBuffer
|
|
||||||
mov ebx,[vidbufferofsb]
|
|
||||||
add ebx,288*2
|
|
||||||
mov ecx,144*239
|
|
||||||
.nextb
|
|
||||||
mov dword[ebx],0FFFFFFFFh
|
|
||||||
add ebx,4
|
|
||||||
dec ecx
|
|
||||||
jnz .nextb
|
|
||||||
ret
|
|
||||||
|
|
||||||
SECTION .data
|
SECTION .data
|
||||||
NEWSYM MsgCount, dd 120 ; How long message will stay (PAL = 100)
|
NEWSYM MsgCount, dd 120 ; How long message will stay (PAL = 100)
|
||||||
|
|||||||
@@ -22,8 +22,20 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __LINUX__
|
||||||
|
#include "gblhdr.h"
|
||||||
|
#define DIR_SLASH "/"
|
||||||
|
#else
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#define DIR_SLASH "\\"
|
||||||
|
#endif
|
||||||
|
|
||||||
extern unsigned int newengen, nggposng[2];
|
extern unsigned int newengen, nggposng[2];
|
||||||
extern unsigned short PrevPicture[64*56], *vidbuffer;
|
extern unsigned short PrevPicture[64*56], *vidbuffer, *vidbufferofsb;
|
||||||
|
|
||||||
void CapturePicture()
|
void CapturePicture()
|
||||||
{
|
{
|
||||||
@@ -61,3 +73,8 @@ void CapturePicture()
|
|||||||
} // 0111 1111 1110 0000 and 0000 0000 0001 1111
|
} // 0111 1111 1110 0000 and 0000 0000 0001 1111
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Clear2xSaIBuffer()
|
||||||
|
{
|
||||||
|
memset(vidbufferofsb+576, 0xFF, 576*239);
|
||||||
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <ddraw.h>
|
#include <ddraw.h>
|
||||||
//#include <initguid.h>
|
//#include <initguid.h>
|
||||||
#include <mmsystem.h>
|
#include <mmsystem.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
@@ -390,7 +390,7 @@ void DrawScreen()
|
|||||||
DD_Primary->Blt(&rcWindow, AltSurface == 0 ? DD_CFB : DD_CFB16, &BlitArea, DDBLT_WAIT, NULL);
|
DD_Primary->Blt(&rcWindow, AltSurface == 0 ? DD_CFB : DD_CFB16, &BlitArea, DDBLT_WAIT, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD InputEn=0;
|
DWORD InputEn=0;
|
||||||
|
|
||||||
BOOL InputAcquire(void)
|
BOOL InputAcquire(void)
|
||||||
@@ -652,11 +652,11 @@ LRESULT CALLBACK Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||||||
case WM_PAINT:
|
case WM_PAINT:
|
||||||
ValidateRect(hWnd,NULL);
|
ValidateRect(hWnd,NULL);
|
||||||
break;
|
break;
|
||||||
case WM_ACTIVATE:
|
case WM_ACTIVATE:
|
||||||
if (LOWORD(wParam) != WA_INACTIVE)
|
if (LOWORD(wParam) != WA_INACTIVE)
|
||||||
{
|
{
|
||||||
IsActivated = 1;
|
IsActivated = 1;
|
||||||
if (FirstActivate == 0) initwinvideo();
|
if (FirstActivate == 0) initwinvideo();
|
||||||
InputAcquire();
|
InputAcquire();
|
||||||
if (FirstActivate == 1) FirstActivate = 0;
|
if (FirstActivate == 1) FirstActivate = 0;
|
||||||
CheckPriority();
|
CheckPriority();
|
||||||
@@ -769,7 +769,7 @@ BOOL InitSound()
|
|||||||
else UsePrimaryBuffer=0;
|
else UsePrimaryBuffer=0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
@@ -826,7 +826,7 @@ BOOL InitSound()
|
|||||||
wfx.wBitsPerSample = 16;
|
wfx.wBitsPerSample = 16;
|
||||||
wfx.nAvgBytesPerSec = wfx.nSamplesPerSec * wfx.nBlockAlign;
|
wfx.nAvgBytesPerSec = wfx.nSamplesPerSec * wfx.nBlockAlign;
|
||||||
wfx.cbSize=0;
|
wfx.cbSize=0;
|
||||||
|
|
||||||
memset(&dsbd, 0, sizeof(DSBUFFERDESC));
|
memset(&dsbd, 0, sizeof(DSBUFFERDESC));
|
||||||
dsbd.dwSize = sizeof(DSBUFFERDESC);
|
dsbd.dwSize = sizeof(DSBUFFERDESC);
|
||||||
dsbd.dwFlags = DSBCAPS_GETCURRENTPOSITION2 | DSBCAPS_STICKYFOCUS;
|
dsbd.dwFlags = DSBCAPS_GETCURRENTPOSITION2 | DSBCAPS_STICKYFOCUS;
|
||||||
@@ -863,8 +863,8 @@ BOOL InitSound()
|
|||||||
SoundEnabled=1;
|
SoundEnabled=1;
|
||||||
FirstSound=0;
|
FirstSound=0;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
@@ -955,7 +955,7 @@ BOOL ReInitSound()
|
|||||||
wfx.wBitsPerSample = 16;
|
wfx.wBitsPerSample = 16;
|
||||||
wfx.nAvgBytesPerSec = wfx.nSamplesPerSec * wfx.nBlockAlign;
|
wfx.nAvgBytesPerSec = wfx.nSamplesPerSec * wfx.nBlockAlign;
|
||||||
wfx.cbSize=0;
|
wfx.cbSize=0;
|
||||||
|
|
||||||
memset(&dsbd, 0, sizeof(DSBUFFERDESC));
|
memset(&dsbd, 0, sizeof(DSBUFFERDESC));
|
||||||
dsbd.dwSize = sizeof(DSBUFFERDESC);
|
dsbd.dwSize = sizeof(DSBUFFERDESC);
|
||||||
dsbd.dwFlags = DSBCAPS_GETCURRENTPOSITION2 | DSBCAPS_STICKYFOCUS;
|
dsbd.dwFlags = DSBCAPS_GETCURRENTPOSITION2 | DSBCAPS_STICKYFOCUS;
|
||||||
@@ -992,8 +992,8 @@ BOOL ReInitSound()
|
|||||||
SoundEnabled=1;
|
SoundEnabled=1;
|
||||||
FirstSound=0;
|
FirstSound=0;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
@@ -1100,7 +1100,7 @@ BOOL FAR PASCAL InitJoystickInput(LPCDIDEVICEINSTANCE pdinst, LPVOID pvRef)
|
|||||||
return DIENUM_CONTINUE;
|
return DIENUM_CONTINUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (didc.dwButtons <= 16)
|
if (didc.dwButtons <= 16)
|
||||||
NumBTN[CurrentJoy] = didc.dwButtons;
|
NumBTN[CurrentJoy] = didc.dwButtons;
|
||||||
else
|
else
|
||||||
NumBTN[CurrentJoy] = 16;
|
NumBTN[CurrentJoy] = 16;
|
||||||
@@ -1396,7 +1396,7 @@ void TestJoy()
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1462,7 +1462,7 @@ int InitDirectDraw()
|
|||||||
}
|
}
|
||||||
|
|
||||||
ReleaseDirectDraw();
|
ReleaseDirectDraw();
|
||||||
|
|
||||||
GetClientRect(hMainWindow, &rcWindow);
|
GetClientRect(hMainWindow, &rcWindow);
|
||||||
ClientToScreen(hMainWindow, ( LPPOINT )&rcWindow);
|
ClientToScreen(hMainWindow, ( LPPOINT )&rcWindow);
|
||||||
ClientToScreen(hMainWindow, ( LPPOINT )&rcWindow + 1);
|
ClientToScreen(hMainWindow, ( LPPOINT )&rcWindow + 1);
|
||||||
@@ -1550,7 +1550,7 @@ int InitDirectDraw()
|
|||||||
ddsd2.dwSize = sizeof(DDSURFACEDESC2);
|
ddsd2.dwSize = sizeof(DDSURFACEDESC2);
|
||||||
ddsd2.dwFlags = DDSD_CAPS;
|
ddsd2.dwFlags = DDSD_CAPS;
|
||||||
ddsd2.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
|
ddsd2.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
|
||||||
|
|
||||||
if (FullScreen == 1)
|
if (FullScreen == 1)
|
||||||
{
|
{
|
||||||
ddsd2.dwFlags |= DDSD_BACKBUFFERCOUNT;
|
ddsd2.dwFlags |= DDSD_BACKBUFFERCOUNT;
|
||||||
@@ -1592,20 +1592,20 @@ int InitDirectDraw()
|
|||||||
lpDD=NULL;
|
lpDD=NULL;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lpDDClipper->SetHWnd(0,hMainWindow) != DD_OK)
|
if (lpDDClipper->SetHWnd(0,hMainWindow) != DD_OK)
|
||||||
{
|
{
|
||||||
lpDD->Release();
|
lpDD->Release();
|
||||||
lpDD=NULL;
|
lpDD=NULL;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (DD_Primary->SetClipper(lpDDClipper) != DD_OK)
|
if (DD_Primary->SetClipper(lpDDClipper) != DD_OK)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
format.dwSize = sizeof(DDPIXELFORMAT);
|
format.dwSize = sizeof(DDPIXELFORMAT);
|
||||||
|
|
||||||
if (DD_Primary->GetPixelFormat(&format) != DD_OK)
|
if (DD_Primary->GetPixelFormat(&format) != DD_OK)
|
||||||
@@ -1720,7 +1720,7 @@ DWORD LockSurface()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UnlockSurface()
|
void UnlockSurface()
|
||||||
@@ -1948,8 +1948,8 @@ void initwinvideo(void)
|
|||||||
if (DMode == 1)
|
if (DMode == 1)
|
||||||
{
|
{
|
||||||
if ((DSMode == 1) || (FullScreen == 0))
|
if ((DSMode == 1) || (FullScreen == 0))
|
||||||
SurfaceX = 512;
|
SurfaceX = 512;
|
||||||
else
|
else
|
||||||
SurfaceX = 640;
|
SurfaceX = 640;
|
||||||
SurfaceY=480;
|
SurfaceY=480;
|
||||||
}
|
}
|
||||||
@@ -2078,7 +2078,7 @@ void initwinvideo(void)
|
|||||||
CheckAlwaysOnTop();
|
CheckAlwaysOnTop();
|
||||||
|
|
||||||
if (!hMainWindow)
|
if (!hMainWindow)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2098,7 +2098,7 @@ void initwinvideo(void)
|
|||||||
if (Force60hz) Refresh = 60;
|
if (Force60hz) Refresh = 60;
|
||||||
InitDirectDraw();
|
InitDirectDraw();
|
||||||
clearwin();
|
clearwin();
|
||||||
asm_call(Clear2xSaIBuffer);
|
Clear2xSaIBuffer();
|
||||||
clear_display();
|
clear_display();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -2110,11 +2110,10 @@ void initwinvideo(void)
|
|||||||
ReleaseDirectDraw();
|
ReleaseDirectDraw();
|
||||||
InitDirectDraw();
|
InitDirectDraw();
|
||||||
clearwin();
|
clearwin();
|
||||||
asm_call(Clear2xSaIBuffer);
|
Clear2xSaIBuffer();
|
||||||
clear_display();
|
clear_display();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
extern unsigned int vidbuffer;
|
extern unsigned int vidbuffer;
|
||||||
@@ -2149,7 +2148,7 @@ void CheckTimers(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
start2 += update_ticks_pc2;
|
start2 += update_ticks_pc2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (T60HZEnabled == 1)
|
if (T60HZEnabled == 1)
|
||||||
{
|
{
|
||||||
@@ -2159,7 +2158,7 @@ void CheckTimers(void)
|
|||||||
{
|
{
|
||||||
Game60hzcall();
|
Game60hzcall();
|
||||||
start += update_ticks_pc;
|
start += update_ticks_pc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (T36HZEnabled == 1)
|
if (T36HZEnabled == 1)
|
||||||
@@ -2170,7 +2169,7 @@ void CheckTimers(void)
|
|||||||
{
|
{
|
||||||
GUI36hzcall();
|
GUI36hzcall();
|
||||||
start += update_ticks_pc;
|
start += update_ticks_pc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2533,7 +2532,7 @@ void drawscreenwin(void)
|
|||||||
|
|
||||||
SURFDW=(DWORD *) &SurfBuf[(resolutn-1)*pitch];
|
SURFDW=(DWORD *) &SurfBuf[(resolutn-1)*pitch];
|
||||||
color32=0x7F000000;
|
color32=0x7F000000;
|
||||||
|
|
||||||
for(i=0;i<256;i++)
|
for(i=0;i<256;i++)
|
||||||
{
|
{
|
||||||
SURFDW[i]=color32;
|
SURFDW[i]=color32;
|
||||||
@@ -2541,11 +2540,11 @@ void drawscreenwin(void)
|
|||||||
|
|
||||||
SURFDW=(DWORD *) &SurfBuf[resolutn*pitch];
|
SURFDW=(DWORD *) &SurfBuf[resolutn*pitch];
|
||||||
color32=0x7F000000;
|
color32=0x7F000000;
|
||||||
|
|
||||||
for(i=0;i<256;i++)
|
for(i=0;i<256;i++)
|
||||||
{
|
{
|
||||||
SURFDW[i]=color32;
|
SURFDW[i]=color32;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 24:
|
case 24:
|
||||||
MessageBox (NULL, "Sorry. ZSNESw does not work in windowed 24 bit color modes. \nClick 'OK' to switch to a full screen mode.", "DDRAW Error" , MB_ICONERROR );
|
MessageBox (NULL, "Sorry. ZSNESw does not work in windowed 24 bit color modes. \nClick 'OK' to switch to a full screen mode.", "DDRAW Error" , MB_ICONERROR );
|
||||||
@@ -2579,7 +2578,7 @@ void drawscreenwin(void)
|
|||||||
{
|
{
|
||||||
SURFDW=(DWORD *) &SurfBuf[j*pitch];
|
SURFDW=(DWORD *) &SurfBuf[j*pitch];
|
||||||
color32=0x7F000000;
|
color32=0x7F000000;
|
||||||
|
|
||||||
for(i=0;i<320;i++)
|
for(i=0;i<320;i++)
|
||||||
{
|
{
|
||||||
SURFDW[i]=color32;
|
SURFDW[i]=color32;
|
||||||
@@ -2612,7 +2611,7 @@ void drawscreenwin(void)
|
|||||||
ScreenPtr=ScreenPtr+576-512;
|
ScreenPtr=ScreenPtr+576-512;
|
||||||
SURFDW=(DWORD *) &SurfBuf[(j)*pitch];
|
SURFDW=(DWORD *) &SurfBuf[(j)*pitch];
|
||||||
}
|
}
|
||||||
|
|
||||||
for(j=((resolutn-1)+8);j<240;j++)
|
for(j=((resolutn-1)+8);j<240;j++)
|
||||||
{
|
{
|
||||||
SURFDW=(DWORD *) &SurfBuf[j*pitch];
|
SURFDW=(DWORD *) &SurfBuf[j*pitch];
|
||||||
@@ -2856,7 +2855,7 @@ void WinUpdateDevices()
|
|||||||
case 4500:
|
case 4500:
|
||||||
keys[0x100 + i * 32 + 0] = 1;
|
keys[0x100 + i * 32 + 0] = 1;
|
||||||
keys[0x100 + i * 32 + 3] = 1;
|
keys[0x100 + i * 32 + 3] = 1;
|
||||||
break;
|
break;
|
||||||
case 9000:
|
case 9000:
|
||||||
keys[0x100 + i * 32 + 0] = 1;
|
keys[0x100 + i * 32 + 0] = 1;
|
||||||
break;
|
break;
|
||||||
@@ -2893,7 +2892,7 @@ void WinUpdateDevices()
|
|||||||
keys[0x100 + i * 32 + j] = 0;
|
keys[0x100 + i * 32 + j] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3068,7 +3067,7 @@ void FrameSemaphore()
|
|||||||
QueryPerformanceCounter((LARGE_INTEGER*)&end);
|
QueryPerformanceCounter((LARGE_INTEGER*)&end);
|
||||||
|
|
||||||
delay = ((update_ticks_pc - (end - start)) * 1000.0 / freq) - 3.0;
|
delay = ((update_ticks_pc - (end - start)) * 1000.0 / freq) - 3.0;
|
||||||
|
|
||||||
if (delay>0.0) WaitForSingleObject(hLock, (unsigned int)delay);
|
if (delay>0.0) WaitForSingleObject(hLock, (unsigned int)delay);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user