More updates and fixes

This commit is contained in:
pagefault
2003-03-17 01:36:52 +00:00
parent d35231879b
commit 8aa021748b
5 changed files with 338 additions and 153 deletions

View File

@@ -37,7 +37,9 @@ NEWSYM DmaAsmStart
;*******************************************************
; DMA transfer register
NEWSYM AddrNoIncr, db 0
section .bss
NEWSYM AddrNoIncr, resb 1
section .text
%macro ExecSPCCycles 0
xor ebx,ebx
@@ -220,6 +222,7 @@ NEWSYM transdma
mov byte[AddrNoIncr],0
ret
section .data
ALIGN32
.curbank dd 0
@@ -233,6 +236,7 @@ ALIGN32
.regptrd dd 0
.readaddr dd 0
.cebx dd 0
section .text
NEWSYM transdmappu2cpu
; set address increment value
@@ -379,6 +383,7 @@ NEWSYM transdmappu2cpu
pop eax
ret
section .data
ALIGN32
.curbank dd 0
@@ -392,6 +397,7 @@ ALIGN32
.regptrd dd 0
.writeaddr dd 0
.cebx dd 0
section .text
%macro TestDMA 0
%endmacro
@@ -566,9 +572,11 @@ NEWSYM setuphdma
or [hdmatype],ah
ret
section .data
.addrwrite dw 0,0,0,0, 0,1,0,1, 0,0,0,0, 0,0,1,1, 0,1,2,3, 0,1,2,3, 0,1,2,3
dw 0,1,2,3
.addrnumt db 1,2,2,4,4,4,4,4
section .text
NEWSYM setuphdmars
push eax
@@ -666,9 +674,11 @@ NEWSYM setuphdmars
pop eax
ret
section .data
.addrwrite dw 0,0,0,0, 0,1,0,1, 0,0,0,0, 0,0,1,1, 0,1,2,3, 0,1,2,3, 0,1,2,3
dw 0,1,2,3
.addrnumt db 1,2,2,4,4,4,4,4
section .text
NEWSYM setuphdma2
push eax
@@ -777,12 +787,17 @@ NEWSYM setuphdma2
and [nexthdma],ah
ret
section .data
.addrwrite dw 0,0,0,0, 0,1,0,1, 0,0,0,0, 0,0,1,1, 0,1,2,3, 0,1,2,3, 0,1,2,3
dw 0,1,2,3
.addrnumt db 1,2,2,4,4,4,4,4
NEWSYM hdmastartsc, db 0
NEWSYM hdmarestart, db 0
section .bss
NEWSYM hdmastartsc, resb 1
NEWSYM hdmarestart, resb 1
section .text
NEWSYM reg420Cw
@@ -1024,7 +1039,9 @@ NEWSYM dohdma
pop eax
ret
.tempdecr db 0
section .bss
.tempdecr resd 1
section .text
NEWSYM hdmatype2
mov al,[edx+16]
@@ -1067,7 +1084,9 @@ NEWSYM hdmatype2
dec byte[esi+10]
ret
.tempdecr db 0
section .bss
.tempdecr resd 1
section .text
NEWSYM indirectaddr
push eax
@@ -1128,7 +1147,7 @@ NEWSYM indirectaddr
mov bl,[esi+7]
mov cx,[esi+5] ; increment/decrement/keep pointer location
add cx,3
call dword near [memtabler8+ebx*4]
call dword near [memtabler8+ebx*4]
call dword near [edx+12]
jmp .finhdma
.nozero
@@ -1146,11 +1165,17 @@ NEWSYM indirectaddr
pop eax
ret
.tempdecr db 0
section .bss
.tempdecr resd 1
section .data
.fname2 db 9,'vram2.dat',0
section .text
EXTSYM spcRam
section .data
NEWSYM ewj2hack, dd 0
section .text
NEWSYM hdmatype2indirect
cmp dword [ewj2hack],1
@@ -1243,8 +1268,10 @@ NEWSYM hdmatype2indirect
dec byte[esi+10]
ret
.dest dd 0
.tempdecr db 0
section .bss
.tempdecr resd 1
.dest resd 1
section .text
NEWSYM exechdma
cmp byte[hdmarestart],1

View File

@@ -391,7 +391,7 @@ NEWSYM ResetExecStuff
mov dword[nmistatus],0
mov byte[NextLineCache],0
mov dword[spcnumread],0
mov dword[spchalted],-1
; mov dword[spchalted],-1
mov dword[timer2upd],0
mov dword[HIRQCycNext],0
mov byte[HIRQNextExe],0

View File

@@ -21,7 +21,7 @@ EXTSYM SPC7110Enable,initSPC7110regs,RTCEnable,RTCReset
EXTSYM curypos,cycpl,debuggeron,pdh
EXTSYM vram
EXTSYM romispal
EXTSYM reg1read,spcnumread,spcon
EXTSYM reg1read,spcnumread,spchalted,spcon
EXTSYM reg2read
EXTSYM reg3read
EXTSYM reg4read
@@ -30,6 +30,9 @@ EXTSYM snesmouse
EXTSYM cycphb,joycontren,totlines
EXTSYM DosExit,invalid,numinst,previdmode,printhex,printnum
%ifdef OPENSPC
EXTSYM SPC_PORT0W, SPC_PORT1W, SPC_PORT2W, SPC_PORT3W
%endif
@@ -505,6 +508,7 @@ NEWSYM initregr
ret
; global variables
SECTION .data ;ALIGN=32
NEWSYM invreg, dw 0
NEWSYM sndrot, db 0 ; rotates to use A,X or Y for sound skip
NEWSYM sndrot2, db 0 ; rotates a random value for sound skip
@@ -712,6 +716,8 @@ NEWSYM nssdip4, db 0
NEWSYM nssdip5, db 0
NEWSYM nssdip6, db 0
SECTION .text
NEWSYM ClearRegs
mov word[VIRQLoc],0
mov word[bg1ptr],0
@@ -984,11 +990,16 @@ reg213Fr:
; Sound Reg #1
reg2140r:
%ifdef OPENSPC
mov al,[SPC_PORT0W]
ret
%else
cmp byte[spcon],0
je .nosound
inc dword[SPC700read]
mov al,[reg1read]
mov byte[spcnumread],0
mov dword[spcnumread],0
; mov dword[spchalted],-1
ret
.nosound
; Find for D0
@@ -1020,14 +1031,20 @@ reg2140r:
mov al,[xa]
.n
ret
%endif
; Sound Reg #2
reg2141r:
%ifdef OPENSPC
mov al,[SPC_PORT1W]
ret
%else
cmp byte[spcon],0
je .nosound
inc dword[SPC700read]
mov al,[reg2read]
mov byte[spcnumread],0
mov dword[spcnumread],0
; mov dword[spchalted],-1
ret
.nosound
; Find for D0
@@ -1051,14 +1068,20 @@ reg2141r:
mov al,[xa]
.n
ret
%endif
; Sound Reg #3
reg2142r:
%ifdef OPENSPC
mov al,[SPC_PORT2W]
ret
%else
cmp byte[spcon],0
je .nosound
inc dword[SPC700read]
mov al,[reg3read]
mov byte[spcnumread],0
mov dword[spcnumread],0
; mov dword[spchalted],-1
ret
.nosound
; Find for D0
@@ -1081,14 +1104,20 @@ reg2142r:
mov al,[xa+1]
.n
ret
%endif
; Sound Reg #4
reg2143r:
%ifdef OPENSPC
mov al,[SPC_PORT3W]
ret
%else
cmp byte[spcon],0
je .nosound
inc dword[SPC700read]
mov al,[reg4read]
mov byte[spcnumread],0
mov dword[spcnumread],0
; mov dword[spchalted],-1
ret
.nosound
; Find for D0
@@ -1107,6 +1136,7 @@ reg2143r:
.notfound
mov al,[xa+1]
ret
%endif
reg2144r:
xor al,al
@@ -1136,7 +1166,10 @@ reg4016r:
rol dword[JoyANow],1
ret
NEWSYM MultiTap, db 0
SECTION .bss ;ALIGN=32
NEWSYM MultiTap, resb 1
SECTION .text
; Joystick Data for controller 2 and 4
reg4017r:
cmp byte[snesmouse],0
@@ -1242,6 +1275,10 @@ reg4211r:
.nohblank
ret
SECTION .bss
NEWSYM hblank, resb 1
SECTION .text
; H/V Blank Flag & Joystick Controller Enable Flag
; bit 7 = vblank, 0=out,1=in, bit 6 = hblank, 0=out,1=in, bit 0 = joystick on
reg4212r:
@@ -1275,8 +1312,10 @@ reg4212r:
or al,80h
; jmp .nohblank
.novbl
mov byte[hblank],0
cmp dh,[cycphb]
jae .nohblank
mov byte[hblank],1
or al,40h
.nohblank
test byte[INTEnab],01h
@@ -1464,6 +1503,8 @@ regINVALID: ; Invalid Register
call printnum
jmp DosExit
SECTION .data ;ALIGN=32
.invalidreg db 'Invalid Read Register : $'
SECTION .text

View File

@@ -32,14 +32,17 @@ EXTSYM opexec358,opexec358cph
EXTSYM hdmarestart
EXTSYM printhex8
%ifdef OPENSPC
EXTSYM SPC_PORT0R, SPC_PORT1R, SPC_PORT2R, SPC_PORT3R
%endif
NEWSYM testgfxv1, db 0
NEWSYM testgfxv2, db 0
SECTION .bss ;ALIGN=32
NEWSYM testgfxv1, resb 1
NEWSYM testgfxv2, resb 1
SECTION .text
NEWSYM initregw
; Fill register pointer with invalid register accesses
@@ -444,7 +447,9 @@ reg2100w:
and byte[forceblnk],80h
ret
NEWSYM prevoamptr, db 0
SECTION .bss ;ALIGN=32
NEWSYM prevoamptr, resb 1
SECTION .text
; OAM size register
reg2101w:
@@ -487,6 +492,7 @@ reg2101w:
.noproc
ret
SECTION .data ;ALIGN=32
.objsize1 db 1,1,1,4,4,16,1,1
.objsize2 db 4,16,64,16,64,64,4,4
.objmovs1 db 2,2,2,2,2,4,2,2
@@ -494,7 +500,9 @@ reg2101w:
.objadds1 dw 14,14,14,14,14,12,14,14
.objadds2 dw 14,12,8,12,8,8,14,14
NEWSYM oamlow, db 0
SECTION .bss ;ALIGN=32
NEWSYM oamlow, resb 1
SECTION .text
; OAM address register
reg2102w:
@@ -798,7 +806,9 @@ reg210Ew:
mov byte[bg1scroly+1],al
ret
bgscroltemp db 0
SECTION .bss ;ALIGN=32
bgscroltemp resb 1
SECTION .text
; BG2 horizontal scroll register
reg210Fw:
@@ -1124,7 +1134,9 @@ reg211Aw:
mov [mode7set],al
ret
SECTION .data ;ALIGN=32
NEWSYM multchange, db 1
SECTION .text
; COS (COSINE) rotate angle / X Expansion
reg211Bw:
@@ -1328,7 +1340,9 @@ reg2133w:
mov word[resolutn],239
ret
NEWSYM CleartheScreen, db 0
SECTION .bss ;ALIGN=32
NEWSYM CleartheScreen, resb 1
SECTION .text
; Sound Register #1
reg2140w:
@@ -1337,9 +1351,13 @@ reg2140w:
jne .n
mov byte[nmirept],0
.n
%ifdef OPENSPC
mov byte[SPC_PORT0R],al
%else
mov byte[spcRam+0F4h],al
inc dword[SPC700write]
reenablespc
%endif
ret
; cmp dword[cycpbl],0FFFFh
; ja .spcreset
@@ -1351,9 +1369,13 @@ reg2140w:
; Sound Register #2
reg2141w:
mov byte[sndwrit],1
%ifdef OPENSPC
mov byte[SPC_PORT1R],al
%else
mov byte[spcRam+0F5h],al
inc dword[SPC700write]
reenablespc
%endif
ret
; cmp dword[cycpbl],0FFFFh
; ja .spcreset
@@ -1365,9 +1387,13 @@ reg2141w:
; Sound Register #3
reg2142w:
mov byte[sndwrit],1
%ifdef OPENSPC
mov byte[SPC_PORT2R],al
%else
mov byte[spcRam+0F6h],al
inc dword[SPC700write]
reenablespc
%endif
ret
; cmp dword[cycpbl],0FFFFh
; ja .spcreset
@@ -1379,9 +1405,13 @@ reg2142w:
; Sound Register #4
reg2143w:
mov byte[sndwrit],1
%ifdef OPENSPC
mov byte[SPC_PORT3R],al
%else
mov byte[spcRam+0F7h],al
inc dword[SPC700write]
reenablespc
%endif
ret
; cmp dword[cycpbl],0FFFFh
; ja .spcreset
@@ -1417,7 +1447,9 @@ reg2183w:
ret
; Joystick 1 & 2 status bytes
NEWSYM MultiTapStat, db 0
SECTION .bss ;ALIGN=32
NEWSYM MultiTapStat, resb 1
SECTION .text
reg4016w:
test byte[INTEnab],1
@@ -1831,7 +1863,11 @@ regexiter:
call printnum
jmp DosExit
SECTION .data ;ALIGN=32
.invalidreg db 'Invalid Write Register : $'
.invalidaddr db ' at address $'
.invbank db 0
.invaddr db 0
SECTION .bss ;ALIGN=32
.invbank resb 1
.invaddr resb 1
SECTION .text

View File

@@ -66,7 +66,7 @@ EXTSYM nmirept,nmistatus,opexec268,opexec268b,opexec268cph
EXTSYM opexec268cphb,opexec358,opexec358b,opexec358cph,spcextraram
EXTSYM opexec358cphb,prevoamptr,reg1read,reg2read,reg3read
EXTSYM reg4read,resolutn,romdata,scrndis,spcBuffera,spcP,spcRam
EXTSYM spcnumread,tableD,timeron,vidbright,DSPMem,OldGfxMode2
EXTSYM spcnumread,spchalted,tableD,timeron,vidbright,DSPMem,OldGfxMode2
EXTSYM SPC700read,SPC700write,GUIDoReset,spc700read
EXTSYM InitC4,SA1Reset,SetAddressingModesSA1,SetAddressingModes,SDD1BankA,SPC7110init
EXTSYM RTCinit,InitOBC
@@ -223,13 +223,14 @@ NEWSYM init
xor edx,edx
mov al,[MusicRelVol]
shl eax,7
mov ebx,100
div ebx
cmp al,127
mov ebx,0A3D70A3Dh
mul ebx
shr edx,6
cmp dl,127
jb .noof
mov al,127
mov dl,127
.noof
mov [MusicVol],al
mov [MusicVol],dl
; FIX STATMAT
; Here's the auto-load ZST file stuff
@@ -406,7 +407,7 @@ NEWSYM cycpb358, db 149 ; 155
NEWSYM cycpbl2, db 109 ; percentage left of CPU/SPC to run (3.58 = 175)
NEWSYM cycpblt2, db 149 ; percentage of CPU/SPC to run
NEWSYM writeon, db 0 ; Write enable/disable on snes rom memory
NEWSYM totlines, dw 262 ; total # of lines
NEWSYM totlines, dw 263 ; total # of lines
NEWSYM soundon, db 0 ; Current sound enabled (1=enabled)
NEWSYM zsmesg, db 'ZSNES Save State File V0.6',26
NEWSYM versn, db 60 ; version #/100
@@ -585,29 +586,29 @@ NEWSYM Setper2exec
; Read Input Device Reads from Keyboard, etc.
;*******************************************************
SECTION .data
NEWSYM WhichSW, db 0
NEWSYM WhichGR, db 0
NEWSYM autofr, db 0
TurboCB db 0
SECTION .bss
NEWSYM WhichSW, resb 1
NEWSYM WhichGR, resb 1
NEWSYM autofr, resb 1
TurboCB resb 1
NEWSYM MovieTemp, db 0
NEWSYM JoyAOrig, dd 0
NEWSYM JoyBOrig, dd 0
NEWSYM JoyCOrig, dd 0
NEWSYM JoyDOrig, dd 0
NEWSYM JoyEOrig, dd 0
NEWSYM JoyANow, dd 0
NEWSYM JoyBNow, dd 0
NEWSYM JoyCNow, dd 0
NEWSYM JoyDNow, dd 0
NEWSYM JoyENow, dd 0
NEWSYM PJoyAOrig, dd 0
NEWSYM PJoyBOrig, dd 0
NEWSYM PJoyCOrig, dd 0
NEWSYM PJoyDOrig, dd 0
NEWSYM PJoyEOrig, dd 0
NEWSYM LethEnData, dd 0
NEWSYM MovieTemp, resb 1
NEWSYM JoyAOrig, resd 1
NEWSYM JoyBOrig, resd 1
NEWSYM JoyCOrig, resd 1
NEWSYM JoyDOrig, resd 1
NEWSYM JoyEOrig, resd 1
NEWSYM JoyANow, resd 1
NEWSYM JoyBNow, resd 1
NEWSYM JoyCNow, resd 1
NEWSYM JoyDNow, resd 1
NEWSYM JoyENow, resd 1
NEWSYM PJoyAOrig, resd 1
NEWSYM PJoyBOrig, resd 1
NEWSYM PJoyCOrig, resd 1
NEWSYM PJoyDOrig, resd 1
NEWSYM PJoyEOrig, resd 1
NEWSYM LethEnData, resd 1
SECTION .text
%macro PlayerDeviceHelp 3
@@ -682,7 +683,8 @@ SECTION .text
je %%startprogress
%%nopress
add eax,66
loop %%loop
dec ecx
jnz %%loop
jmp %%endcomb
%%startprogress
mov byte[pressed+ebx],2
@@ -1355,15 +1357,20 @@ NEWSYM ProcessMovies
call .writebuffertodisk
ret
SECTION .data
.movieended db 'MOVIE FINISHED.',0
NEWSYM MovieBuffSize, dd 0
NEWSYM MovieBuffFrame, dd 0
MovieBuffer times 21*60 dd 0
NEWSYM CFWriteStart, dd 64+30
NEWSYM CReadHead, dd 0
NEWSYM ReadHead, dd 0
NEWSYM CFWriteHead, dd 0
NEWSYM StoreBuffer, times 128*32 db 0
SECTION .bss
NEWSYM MovieBuffSize, resd 1
NEWSYM MovieBuffFrame, resd 1
MovieBuffer resd 21*60
NEWSYM CReadHead, resd 1
NEWSYM ReadHead, resd 1
NEWSYM CFWriteHead, resd 1
NEWSYM StoreBuffer, resb 128*32
;*******************************************************
; Init 65816 Initializes the Registers
;*******************************************************
@@ -1498,7 +1505,9 @@ headerhack2:
.nokingofrally
ret
SECTION .data
.mmx2head db 50,58,56,62,50,62,49,95,39,77,95,95,95,95,95,95,95,95,95,95
SECTION .text
EXTSYM ewj2hack
EXTSYM latchyr
@@ -1747,16 +1756,16 @@ NEWSYM headerhack
mov byte[esi+1],0BCh ; RTS instead of jumping to a rts
.nothomealone
mov esi,[romdata]
add esi,0FFC0h
cmp dword[esi],'EMER'
jne .notemeralddragon
cmp dword[esi+4],'ALD '
jne .notemeralddragon
cmp dword[esi+8],'DRAG'
jne .notemeralddragon
mov byte[ENVDisable],1
.notemeralddragon
; mov esi,[romdata]
; add esi,0FFC0h
; cmp dword[esi],'EMER'
; jne .notemeralddragon
; cmp dword[esi+4],'ALD '
; jne .notemeralddragon
; cmp dword[esi+8],'DRAG'
; jne .notemeralddragon
; mov byte[ENVDisable],1
;.notemeralddragon
mov esi,[romdata]
add esi,7FC0h
@@ -2124,6 +2133,8 @@ NEWSYM headerhack
.noromheaddk
ret
SECTION .data
.ewj2head db 58,62,45,43,55,40,48,45,50,95,53,54,50,95,77,95,95,95,95,95
.bubshead db 61,10,29,12,06,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95
.btvdhead db 61,62,43,43,51,58,43,48,62,59,44,95,59,81,59,81,95,95,95,95
@@ -2136,6 +2147,7 @@ NEWSYM headerhack
.adm3head db 62,59,59,62,50,44,95,57,62,50,54,51,38,95,41,62,51,42,58,44
.fmishead db 57,13,16,17,11,95,50,22,12,12,22,16,17,95,87,58,86,95,95,95
SECTION .text
NEWSYM idledetectspc
@@ -2151,13 +2163,15 @@ NEWSYM idledetectspc
mov eax,[MsgCount]
mov [MessageOn],eax
ret
.unableskip db 'SPC700 STALL DETECTED.',0
SECTION .data
NEWSYM ReturnFromSPCStall, db 0
NEWSYM SPCStallSetting, db 0
NEWSYM SPCSkipXtraROM, db 0
NEWSYM WindowDisables, dd 0
.unableskip db 'SPC700 STALL DETECTED.',0
SECTION .bss
NEWSYM ReturnFromSPCStall, resb 1
NEWSYM SPCStallSetting, resb 1
NEWSYM SPCSkipXtraROM, resb 1
NEWSYM WindowDisables, resd 1
SECTION .text
%macro helpclearmem 2
@@ -2327,7 +2341,8 @@ NEWSYM init65816
mov byte [reg3read],0
mov byte [reg4read],0
mov dword[cycpbl],0
mov byte[spcnumread],0
mov dword[spcnumread],0
mov dword[spchalted],-1
mov dword[coladdr],0
mov byte[NMIEnab],1
mov word[VIRQLoc],0
@@ -2481,7 +2496,9 @@ NEWSYM init65816
mov dword[wramwriteptr],setwram1fff
ret
SECTION .data
.boffound db '.....',0
SECTION .text
getwram1fff:
mov al,[wramdataa+1fffh]
@@ -2500,11 +2517,11 @@ setwram1fff:
; Bank 7E : WRAM (0000h-FFFFh)
; Bank 7F : ExtendRAM (0000h-FFFFh)
SECTION .data
NEWSYM curromsize, db 0
NEWSYM cromptradd, dd 0
NEWSYM NoiseDisTemp, dd 0,0
NEWSYM lorommapmode2, db 0
SECTION .bss
NEWSYM curromsize, resb 1
NEWSYM cromptradd, resd 1
NEWSYM NoiseDisTemp, resd 2
NEWSYM lorommapmode2, resb 1
SECTION .text
NEWSYM initsnes
@@ -3719,7 +3736,9 @@ NEWSYM printhex
jnz .loopa
ret
SECTION .data
.hexdat db '0123456789ABCDEF'
SECTION .text
NEWSYM printhex8
mov ecx,2
@@ -3728,7 +3747,7 @@ NEWSYM printhex8
mov bx,ax
and bx,0F0h
shr bx,4
mov dl,[.hexdat+ebx]
mov dl,[printhex.hexdat+ebx]
push ax
mov ah,02h
call Output_Text
@@ -3738,7 +3757,31 @@ NEWSYM printhex8
jnz .loopb
ret
.hexdat db '0123456789ABCDEF'
;EXTSYM _imp__OutputDebugStringA@4
;NEWSYM printhex32
; pushf
; mov ecx,8
;.loopa
; mov ebx,eax
; and ebx,0Fh
; mov dl,[printhex.hexdat+ebx]
; mov [.hexout-1+ecx],dl
; shr eax,4
; dec ecx
; jnz .loopa
; push dword .hexout
; call [_imp__OutputDebugStringA@4]
; popf
; db 0C3h ; ret
;section .bss
;NEWSYM __debug_crap_address__, dd 0,0,0,0
;.hexout db "blahblah",0
;section .text
;*******************************************************
; Load File
;*******************************************************
@@ -3768,7 +3811,10 @@ NEWSYM RetrieveDataIPS
inc ecx
ret
IPSSL dd 0
SECTION .bss
IPSSL resd 1
SECTION .text
NEWSYM PatchIPS
%ifdef __LINUX__
@@ -3941,25 +3987,28 @@ NEWSYM PatchIPS
;.ltop
; mov byte[esi+edx],0
; inc edx
; loop .ltop
; dec ecx
; jnz .ltop
%ifdef __LINUX__
pushad
call popdir
popad
%endif
ret
SECTION .data
.ipsokaymsg db 'IPS PATCHED.',0
.ipsnokaymsg db 'IPS IS CORRUPT.',0
section .data
NEWSYM Header512, db 0
NEWSYM Prevextn, dd 0
NEWSYM Headchek, db 0,0,0,0,0
NEWSYM IPSLimit, dd 0
NEWSYM IPSOffset, dd 0
NEWSYM IPSCount, dd 0
IPSPatched db 0
section .text
SECTION .bss
NEWSYM Header512, resb 1
NEWSYM Prevextn, resd 1
NEWSYM Headchek, resb 5
NEWSYM IPSLimit, resd 1
NEWSYM IPSOffset, resd 1
NEWSYM IPSCount, resd 1
IPSPatched resb 1
SECTION .text
OpenCombFile:
mov edx,fnames+1
@@ -4057,37 +4106,42 @@ NEWSYM loadfile
jmp loadfileGUI.nogui
SECTION .data
.multfound db 0
.first db 0
.cchar db 0
.dotpos dd 0
.curfileofs dd 0
.filehand dw 0
.failop db 'Error opening file!',13,10,0
.opened db 'File opened successfully!',13,10,0
.mult db 'Multiple file format detected.',13,10,13,10,0
.temp db 0
.fail db 0
SECTION .bss
.multfound resb 1
.first resb 1
.cchar resb 1
.dotpos resd 1
.curfileofs resd 1
.filehand resw 1
.temp resb 1
.fail resb 1
NEWSYM Checksumvalue, dw 0
NEWSYM Checksumvalue2, dw 0
NEWSYM SramExists, db 0
NEWSYM NumofBanks, dd 0
NEWSYM NumofBytes, dd 0
NEWSYM ZipSupport, db 0
InGUI db 0
NEWSYM Checksumvalue, resw 1
NEWSYM Checksumvalue2, resw 1
NEWSYM SramExists, resb 1
NEWSYM NumofBanks, resd 1
NEWSYM NumofBytes, resd 1
NEWSYM ZipSupport, resb 1
InGUI resb 1
SECTION .data
%ifdef __LINUX__
tempdirname db '/tmp/zziptmp',0
%else
tempdirname db 'zziptmp_.__z',0
%endif
PrevDir db '..',0
SECTION .text
GUIfindBlank db '*.',0
SECTION .text
%macro UnZipSearch 1
mov cx,20h
mov edx,%1
@@ -4099,9 +4153,13 @@ GUIfindBlank db '*.',0
%%notfound
%endmacro
SECTION .data
InvalidZip db 'ZSNES Version A does not support .ZIP files.',13,10,'Please use Version C for this feature.',10,13,0
ZipError db 0
SECTION .bss
ZipError resb 1
SECTION .text
UnZipFile:
; cmp byte[OSPort],1
@@ -4271,7 +4329,9 @@ ZipDelete:
call Makemode7Table
ret
tempzip db 0
SECTION .bss
tempzip resb 1
SECTION .text
ZipDeleteRecurse:
; Find all directories
@@ -4343,15 +4403,14 @@ ZipDeleteRecurse:
.notfound
ret
SPC7110Allocated db 0
SECTION .data
SPC7110DIRA db 'FEOEZSP7',0
SPC7110DIRB db 'SMHT-SP7',0
SDD1DIRA db 'SOCNSDD1',0
SDD1DIRB db 'SFA2SDD1',0
SPC7110IndexName db 'index.bin',0
SPC7110DirEntry db '*.bin',0
SPC7110CPtr dd 0
SPC7110CPtr2 dd 0
NEWSYM SDD1Offset, dd 65536*8
%ifndef __LINUX__
NEWSYM SDD1nfname, db ' \_00000-0.bin',0
@@ -4363,13 +4422,21 @@ NEWSYM SPC7110nfname, db ' / .bin',0
NEWSYM SDD1ifname, db 'sdd1gfx.idx',0
NEWSYM SDD1dfname, db 'sdd1gfx.dat',0
NEWSYM SDD1pfname, db 'sdd1gfx.pat',0
NEWSYM SPC7110IndexSize, dd 0
NEWSYM SPC7110Entries, dd 0
spc7110notfound db 'DECOMPRESSED PACK NOT FOUND',0
spc7110notfoundb db 'INDEX DATA NOT FOUND',0
SDD1PatchAddr dd 0
SDD1PatchOfs dd 0
SDD1PatchLen dd 0
SECTION .bss
SPC7110Allocated resb 1
SPC7110CPtr resd 1
SPC7110CPtr2 resd 1
NEWSYM SPC7110IndexSize, resd 1
NEWSYM SPC7110Entries, resd 1
SDD1PatchAddr resd 1
SDD1PatchOfs resd 1
SDD1PatchLen resd 1
SECTION .text
EXTSYM sdd1fname
@@ -5111,8 +5178,13 @@ NEWSYM loadfileGUI
jmp near .notwiz4
.romtable times 128 db 0
.romtableb times 128 db 0
SECTION .bss
.romtable resb 128
.romtableb resb 128
SECTION .text
.notwiz4
jmp .skipall
@@ -5290,20 +5362,23 @@ NEWSYM loadfileGUI
jmp DosExit
SECTION .data
.multfound db 0
.first db 0
.cchar db 0
.dotpos dd 0
.curfileofs dd 0
.filehand dw 0
.temp db 0
.fail db 0
.failop db 'Error opening file!',13,10,0
.opened db 'File opened successfully!',13,10,0
.mult db 'Multiple file format detected.',13,10,13,10,0
.maxromspace dd 0
.curromspace dd 0
NEWSYM GUIloadfailed, db 0
SECTION .bss
.multfound resb 1
.first resb 1
.cchar resb 1
.dotpos resd 1
.curfileofs resd 1
.filehand resw 1
.temp resb 1
.fail resb 1
.maxromspace resd 1
.curromspace resd 1
NEWSYM GUIloadfailed, resb 1
SECTION .text
@@ -5385,7 +5460,9 @@ NEWSYM convertsram
call Change_Dir
ret
SECTION .data
NEWSYM CSStatus, db ' TYPE: CHSUM:OK ',0
SECTION .text
NEWSYM showinfogui
mov esi,[romdata]
@@ -5880,7 +5957,6 @@ NEWSYM showinfo
ret
SECTION .data
.memfree times 30 db 0
.filename db 'Filename : ',0
.frameskip db 'Frame Skip : ',0
.percexec db '% to Exec : ',0
@@ -5930,8 +6006,12 @@ SECTION .data
.doh db 'Cannot detect whether cartridge is HiROM or LoROM.',13,10,'Please use -h/-l',13,10,0
.intlvd db 'Image is uninterleaved.',13,10,0
NEWSYM DSP1Type, db 0
NEWSYM intldone, db 0
SECTION .bss
.memfree resb 30
NEWSYM DSP1Type, resb 1
NEWSYM intldone, resb 1
SECTION .text
NEWSYM CheckROMType
@@ -6371,18 +6451,18 @@ NEWSYM CheckROMType
call SPC7110Load
ret
SECTION .data
NEWSYM SFXEnable, db 0
NEWSYM C4Enable, db 0
NEWSYM SPC7110Enable, db 0
NEWSYM RTCEnable, db 0
NEWSYM SA1Enable, db 0
NEWSYM SDD1Enable, db 0
NEWSYM OBCEnable, db 0
NEWSYM C4RamR, dd 0
NEWSYM C4RamW, dd 0
NEWSYM C4Ram, dd 0
NEWSYM ROMTypeNOTFound, db 0
SECTION .bss
NEWSYM SFXEnable, resb 1
NEWSYM C4Enable, resb 1
NEWSYM SPC7110Enable, resb 1
NEWSYM RTCEnable, resb 1
NEWSYM SA1Enable, resb 1
NEWSYM SDD1Enable, resb 1
NEWSYM OBCEnable, resb 1
NEWSYM C4RamR, resd 1
NEWSYM C4RamW, resd 1
NEWSYM C4Ram, resd 1
NEWSYM ROMTypeNOTFound, resb 1
SECTION .text
NEWSYM SetIRQVectors
@@ -6482,8 +6562,9 @@ NEWSYM outofmemfix
mov dword[MessageOn],0FFFFFFFFh
ret
SECTION .bss
NEWSYM yesoutofmemory, resb 1
SECTION .data
NEWSYM yesoutofmemory, db 0
NEWSYM outofmemoryerror, db 'OUT OF MEMORY.',0
NEWSYM outofmemoryerror2, db 'ROM IS TOO BIG.',0
SECTION .text