More updates and fixes
This commit is contained in:
@@ -37,7 +37,9 @@ NEWSYM DmaAsmStart
|
|||||||
;*******************************************************
|
;*******************************************************
|
||||||
; DMA transfer register
|
; DMA transfer register
|
||||||
|
|
||||||
NEWSYM AddrNoIncr, db 0
|
section .bss
|
||||||
|
NEWSYM AddrNoIncr, resb 1
|
||||||
|
section .text
|
||||||
|
|
||||||
%macro ExecSPCCycles 0
|
%macro ExecSPCCycles 0
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
@@ -220,6 +222,7 @@ NEWSYM transdma
|
|||||||
mov byte[AddrNoIncr],0
|
mov byte[AddrNoIncr],0
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
section .data
|
||||||
ALIGN32
|
ALIGN32
|
||||||
|
|
||||||
.curbank dd 0
|
.curbank dd 0
|
||||||
@@ -233,6 +236,7 @@ ALIGN32
|
|||||||
.regptrd dd 0
|
.regptrd dd 0
|
||||||
.readaddr dd 0
|
.readaddr dd 0
|
||||||
.cebx dd 0
|
.cebx dd 0
|
||||||
|
section .text
|
||||||
|
|
||||||
NEWSYM transdmappu2cpu
|
NEWSYM transdmappu2cpu
|
||||||
; set address increment value
|
; set address increment value
|
||||||
@@ -379,6 +383,7 @@ NEWSYM transdmappu2cpu
|
|||||||
pop eax
|
pop eax
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
section .data
|
||||||
ALIGN32
|
ALIGN32
|
||||||
|
|
||||||
.curbank dd 0
|
.curbank dd 0
|
||||||
@@ -392,6 +397,7 @@ ALIGN32
|
|||||||
.regptrd dd 0
|
.regptrd dd 0
|
||||||
.writeaddr dd 0
|
.writeaddr dd 0
|
||||||
.cebx dd 0
|
.cebx dd 0
|
||||||
|
section .text
|
||||||
|
|
||||||
%macro TestDMA 0
|
%macro TestDMA 0
|
||||||
%endmacro
|
%endmacro
|
||||||
@@ -566,9 +572,11 @@ NEWSYM setuphdma
|
|||||||
or [hdmatype],ah
|
or [hdmatype],ah
|
||||||
ret
|
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
|
.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
|
dw 0,1,2,3
|
||||||
.addrnumt db 1,2,2,4,4,4,4,4
|
.addrnumt db 1,2,2,4,4,4,4,4
|
||||||
|
section .text
|
||||||
|
|
||||||
NEWSYM setuphdmars
|
NEWSYM setuphdmars
|
||||||
push eax
|
push eax
|
||||||
@@ -666,9 +674,11 @@ NEWSYM setuphdmars
|
|||||||
pop eax
|
pop eax
|
||||||
ret
|
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
|
.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
|
dw 0,1,2,3
|
||||||
.addrnumt db 1,2,2,4,4,4,4,4
|
.addrnumt db 1,2,2,4,4,4,4,4
|
||||||
|
section .text
|
||||||
|
|
||||||
NEWSYM setuphdma2
|
NEWSYM setuphdma2
|
||||||
push eax
|
push eax
|
||||||
@@ -777,12 +787,17 @@ NEWSYM setuphdma2
|
|||||||
and [nexthdma],ah
|
and [nexthdma],ah
|
||||||
ret
|
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
|
.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
|
dw 0,1,2,3
|
||||||
.addrnumt db 1,2,2,4,4,4,4,4
|
.addrnumt db 1,2,2,4,4,4,4,4
|
||||||
|
|
||||||
NEWSYM hdmastartsc, db 0
|
section .bss
|
||||||
NEWSYM hdmarestart, db 0
|
|
||||||
|
NEWSYM hdmastartsc, resb 1
|
||||||
|
NEWSYM hdmarestart, resb 1
|
||||||
|
|
||||||
|
section .text
|
||||||
|
|
||||||
NEWSYM reg420Cw
|
NEWSYM reg420Cw
|
||||||
|
|
||||||
@@ -1024,7 +1039,9 @@ NEWSYM dohdma
|
|||||||
pop eax
|
pop eax
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.tempdecr db 0
|
section .bss
|
||||||
|
.tempdecr resd 1
|
||||||
|
section .text
|
||||||
|
|
||||||
NEWSYM hdmatype2
|
NEWSYM hdmatype2
|
||||||
mov al,[edx+16]
|
mov al,[edx+16]
|
||||||
@@ -1067,7 +1084,9 @@ NEWSYM hdmatype2
|
|||||||
dec byte[esi+10]
|
dec byte[esi+10]
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.tempdecr db 0
|
section .bss
|
||||||
|
.tempdecr resd 1
|
||||||
|
section .text
|
||||||
|
|
||||||
NEWSYM indirectaddr
|
NEWSYM indirectaddr
|
||||||
push eax
|
push eax
|
||||||
@@ -1128,7 +1147,7 @@ NEWSYM indirectaddr
|
|||||||
mov bl,[esi+7]
|
mov bl,[esi+7]
|
||||||
mov cx,[esi+5] ; increment/decrement/keep pointer location
|
mov cx,[esi+5] ; increment/decrement/keep pointer location
|
||||||
add cx,3
|
add cx,3
|
||||||
call dword near [memtabler8+ebx*4]
|
call dword near [memtabler8+ebx*4]
|
||||||
call dword near [edx+12]
|
call dword near [edx+12]
|
||||||
jmp .finhdma
|
jmp .finhdma
|
||||||
.nozero
|
.nozero
|
||||||
@@ -1146,11 +1165,17 @@ NEWSYM indirectaddr
|
|||||||
pop eax
|
pop eax
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.tempdecr db 0
|
section .bss
|
||||||
|
.tempdecr resd 1
|
||||||
|
|
||||||
|
section .data
|
||||||
.fname2 db 9,'vram2.dat',0
|
.fname2 db 9,'vram2.dat',0
|
||||||
|
section .text
|
||||||
|
|
||||||
EXTSYM spcRam
|
EXTSYM spcRam
|
||||||
|
section .data
|
||||||
NEWSYM ewj2hack, dd 0
|
NEWSYM ewj2hack, dd 0
|
||||||
|
section .text
|
||||||
|
|
||||||
NEWSYM hdmatype2indirect
|
NEWSYM hdmatype2indirect
|
||||||
cmp dword [ewj2hack],1
|
cmp dword [ewj2hack],1
|
||||||
@@ -1243,8 +1268,10 @@ NEWSYM hdmatype2indirect
|
|||||||
dec byte[esi+10]
|
dec byte[esi+10]
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.dest dd 0
|
section .bss
|
||||||
.tempdecr db 0
|
.tempdecr resd 1
|
||||||
|
.dest resd 1
|
||||||
|
section .text
|
||||||
|
|
||||||
NEWSYM exechdma
|
NEWSYM exechdma
|
||||||
cmp byte[hdmarestart],1
|
cmp byte[hdmarestart],1
|
||||||
|
|||||||
@@ -391,7 +391,7 @@ NEWSYM ResetExecStuff
|
|||||||
mov dword[nmistatus],0
|
mov dword[nmistatus],0
|
||||||
mov byte[NextLineCache],0
|
mov byte[NextLineCache],0
|
||||||
mov dword[spcnumread],0
|
mov dword[spcnumread],0
|
||||||
mov dword[spchalted],-1
|
; mov dword[spchalted],-1
|
||||||
mov dword[timer2upd],0
|
mov dword[timer2upd],0
|
||||||
mov dword[HIRQCycNext],0
|
mov dword[HIRQCycNext],0
|
||||||
mov byte[HIRQNextExe],0
|
mov byte[HIRQNextExe],0
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ EXTSYM SPC7110Enable,initSPC7110regs,RTCEnable,RTCReset
|
|||||||
EXTSYM curypos,cycpl,debuggeron,pdh
|
EXTSYM curypos,cycpl,debuggeron,pdh
|
||||||
EXTSYM vram
|
EXTSYM vram
|
||||||
EXTSYM romispal
|
EXTSYM romispal
|
||||||
EXTSYM reg1read,spcnumread,spcon
|
EXTSYM reg1read,spcnumread,spchalted,spcon
|
||||||
EXTSYM reg2read
|
EXTSYM reg2read
|
||||||
EXTSYM reg3read
|
EXTSYM reg3read
|
||||||
EXTSYM reg4read
|
EXTSYM reg4read
|
||||||
@@ -30,6 +30,9 @@ EXTSYM snesmouse
|
|||||||
EXTSYM cycphb,joycontren,totlines
|
EXTSYM cycphb,joycontren,totlines
|
||||||
EXTSYM DosExit,invalid,numinst,previdmode,printhex,printnum
|
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
|
ret
|
||||||
|
|
||||||
; global variables
|
; global variables
|
||||||
|
SECTION .data ;ALIGN=32
|
||||||
NEWSYM invreg, dw 0
|
NEWSYM invreg, dw 0
|
||||||
NEWSYM sndrot, db 0 ; rotates to use A,X or Y for sound skip
|
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
|
NEWSYM sndrot2, db 0 ; rotates a random value for sound skip
|
||||||
@@ -712,6 +716,8 @@ NEWSYM nssdip4, db 0
|
|||||||
NEWSYM nssdip5, db 0
|
NEWSYM nssdip5, db 0
|
||||||
NEWSYM nssdip6, db 0
|
NEWSYM nssdip6, db 0
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM ClearRegs
|
NEWSYM ClearRegs
|
||||||
mov word[VIRQLoc],0
|
mov word[VIRQLoc],0
|
||||||
mov word[bg1ptr],0
|
mov word[bg1ptr],0
|
||||||
@@ -984,11 +990,16 @@ reg213Fr:
|
|||||||
|
|
||||||
; Sound Reg #1
|
; Sound Reg #1
|
||||||
reg2140r:
|
reg2140r:
|
||||||
|
%ifdef OPENSPC
|
||||||
|
mov al,[SPC_PORT0W]
|
||||||
|
ret
|
||||||
|
%else
|
||||||
cmp byte[spcon],0
|
cmp byte[spcon],0
|
||||||
je .nosound
|
je .nosound
|
||||||
inc dword[SPC700read]
|
inc dword[SPC700read]
|
||||||
mov al,[reg1read]
|
mov al,[reg1read]
|
||||||
mov byte[spcnumread],0
|
mov dword[spcnumread],0
|
||||||
|
; mov dword[spchalted],-1
|
||||||
ret
|
ret
|
||||||
.nosound
|
.nosound
|
||||||
; Find for D0
|
; Find for D0
|
||||||
@@ -1020,14 +1031,20 @@ reg2140r:
|
|||||||
mov al,[xa]
|
mov al,[xa]
|
||||||
.n
|
.n
|
||||||
ret
|
ret
|
||||||
|
%endif
|
||||||
|
|
||||||
; Sound Reg #2
|
; Sound Reg #2
|
||||||
reg2141r:
|
reg2141r:
|
||||||
|
%ifdef OPENSPC
|
||||||
|
mov al,[SPC_PORT1W]
|
||||||
|
ret
|
||||||
|
%else
|
||||||
cmp byte[spcon],0
|
cmp byte[spcon],0
|
||||||
je .nosound
|
je .nosound
|
||||||
inc dword[SPC700read]
|
inc dword[SPC700read]
|
||||||
mov al,[reg2read]
|
mov al,[reg2read]
|
||||||
mov byte[spcnumread],0
|
mov dword[spcnumread],0
|
||||||
|
; mov dword[spchalted],-1
|
||||||
ret
|
ret
|
||||||
.nosound
|
.nosound
|
||||||
; Find for D0
|
; Find for D0
|
||||||
@@ -1051,14 +1068,20 @@ reg2141r:
|
|||||||
mov al,[xa]
|
mov al,[xa]
|
||||||
.n
|
.n
|
||||||
ret
|
ret
|
||||||
|
%endif
|
||||||
|
|
||||||
; Sound Reg #3
|
; Sound Reg #3
|
||||||
reg2142r:
|
reg2142r:
|
||||||
|
%ifdef OPENSPC
|
||||||
|
mov al,[SPC_PORT2W]
|
||||||
|
ret
|
||||||
|
%else
|
||||||
cmp byte[spcon],0
|
cmp byte[spcon],0
|
||||||
je .nosound
|
je .nosound
|
||||||
inc dword[SPC700read]
|
inc dword[SPC700read]
|
||||||
mov al,[reg3read]
|
mov al,[reg3read]
|
||||||
mov byte[spcnumread],0
|
mov dword[spcnumread],0
|
||||||
|
; mov dword[spchalted],-1
|
||||||
ret
|
ret
|
||||||
.nosound
|
.nosound
|
||||||
; Find for D0
|
; Find for D0
|
||||||
@@ -1081,14 +1104,20 @@ reg2142r:
|
|||||||
mov al,[xa+1]
|
mov al,[xa+1]
|
||||||
.n
|
.n
|
||||||
ret
|
ret
|
||||||
|
%endif
|
||||||
|
|
||||||
; Sound Reg #4
|
; Sound Reg #4
|
||||||
reg2143r:
|
reg2143r:
|
||||||
|
%ifdef OPENSPC
|
||||||
|
mov al,[SPC_PORT3W]
|
||||||
|
ret
|
||||||
|
%else
|
||||||
cmp byte[spcon],0
|
cmp byte[spcon],0
|
||||||
je .nosound
|
je .nosound
|
||||||
inc dword[SPC700read]
|
inc dword[SPC700read]
|
||||||
mov al,[reg4read]
|
mov al,[reg4read]
|
||||||
mov byte[spcnumread],0
|
mov dword[spcnumread],0
|
||||||
|
; mov dword[spchalted],-1
|
||||||
ret
|
ret
|
||||||
.nosound
|
.nosound
|
||||||
; Find for D0
|
; Find for D0
|
||||||
@@ -1107,6 +1136,7 @@ reg2143r:
|
|||||||
.notfound
|
.notfound
|
||||||
mov al,[xa+1]
|
mov al,[xa+1]
|
||||||
ret
|
ret
|
||||||
|
%endif
|
||||||
|
|
||||||
reg2144r:
|
reg2144r:
|
||||||
xor al,al
|
xor al,al
|
||||||
@@ -1136,7 +1166,10 @@ reg4016r:
|
|||||||
rol dword[JoyANow],1
|
rol dword[JoyANow],1
|
||||||
ret
|
ret
|
||||||
|
|
||||||
NEWSYM MultiTap, db 0
|
SECTION .bss ;ALIGN=32
|
||||||
|
NEWSYM MultiTap, resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
; Joystick Data for controller 2 and 4
|
; Joystick Data for controller 2 and 4
|
||||||
reg4017r:
|
reg4017r:
|
||||||
cmp byte[snesmouse],0
|
cmp byte[snesmouse],0
|
||||||
@@ -1242,6 +1275,10 @@ reg4211r:
|
|||||||
.nohblank
|
.nohblank
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .bss
|
||||||
|
NEWSYM hblank, resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
; H/V Blank Flag & Joystick Controller Enable Flag
|
; 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
|
; bit 7 = vblank, 0=out,1=in, bit 6 = hblank, 0=out,1=in, bit 0 = joystick on
|
||||||
reg4212r:
|
reg4212r:
|
||||||
@@ -1275,8 +1312,10 @@ reg4212r:
|
|||||||
or al,80h
|
or al,80h
|
||||||
; jmp .nohblank
|
; jmp .nohblank
|
||||||
.novbl
|
.novbl
|
||||||
|
mov byte[hblank],0
|
||||||
cmp dh,[cycphb]
|
cmp dh,[cycphb]
|
||||||
jae .nohblank
|
jae .nohblank
|
||||||
|
mov byte[hblank],1
|
||||||
or al,40h
|
or al,40h
|
||||||
.nohblank
|
.nohblank
|
||||||
test byte[INTEnab],01h
|
test byte[INTEnab],01h
|
||||||
@@ -1464,6 +1503,8 @@ regINVALID: ; Invalid Register
|
|||||||
call printnum
|
call printnum
|
||||||
jmp DosExit
|
jmp DosExit
|
||||||
|
|
||||||
|
SECTION .data ;ALIGN=32
|
||||||
.invalidreg db 'Invalid Read Register : $'
|
.invalidreg db 'Invalid Read Register : $'
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -32,14 +32,17 @@ EXTSYM opexec358,opexec358cph
|
|||||||
EXTSYM hdmarestart
|
EXTSYM hdmarestart
|
||||||
EXTSYM printhex8
|
EXTSYM printhex8
|
||||||
|
|
||||||
|
%ifdef OPENSPC
|
||||||
|
EXTSYM SPC_PORT0R, SPC_PORT1R, SPC_PORT2R, SPC_PORT3R
|
||||||
|
%endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SECTION .bss ;ALIGN=32
|
||||||
NEWSYM testgfxv1, db 0
|
NEWSYM testgfxv1, resb 1
|
||||||
NEWSYM testgfxv2, db 0
|
NEWSYM testgfxv2, resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM initregw
|
NEWSYM initregw
|
||||||
; Fill register pointer with invalid register accesses
|
; Fill register pointer with invalid register accesses
|
||||||
@@ -444,7 +447,9 @@ reg2100w:
|
|||||||
and byte[forceblnk],80h
|
and byte[forceblnk],80h
|
||||||
ret
|
ret
|
||||||
|
|
||||||
NEWSYM prevoamptr, db 0
|
SECTION .bss ;ALIGN=32
|
||||||
|
NEWSYM prevoamptr, resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
; OAM size register
|
; OAM size register
|
||||||
reg2101w:
|
reg2101w:
|
||||||
@@ -487,6 +492,7 @@ reg2101w:
|
|||||||
.noproc
|
.noproc
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data ;ALIGN=32
|
||||||
.objsize1 db 1,1,1,4,4,16,1,1
|
.objsize1 db 1,1,1,4,4,16,1,1
|
||||||
.objsize2 db 4,16,64,16,64,64,4,4
|
.objsize2 db 4,16,64,16,64,64,4,4
|
||||||
.objmovs1 db 2,2,2,2,2,4,2,2
|
.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
|
.objadds1 dw 14,14,14,14,14,12,14,14
|
||||||
.objadds2 dw 14,12,8,12,8,8,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
|
; OAM address register
|
||||||
reg2102w:
|
reg2102w:
|
||||||
@@ -798,7 +806,9 @@ reg210Ew:
|
|||||||
mov byte[bg1scroly+1],al
|
mov byte[bg1scroly+1],al
|
||||||
ret
|
ret
|
||||||
|
|
||||||
bgscroltemp db 0
|
SECTION .bss ;ALIGN=32
|
||||||
|
bgscroltemp resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
; BG2 horizontal scroll register
|
; BG2 horizontal scroll register
|
||||||
reg210Fw:
|
reg210Fw:
|
||||||
@@ -1124,7 +1134,9 @@ reg211Aw:
|
|||||||
mov [mode7set],al
|
mov [mode7set],al
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data ;ALIGN=32
|
||||||
NEWSYM multchange, db 1
|
NEWSYM multchange, db 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
; COS (COSINE) rotate angle / X Expansion
|
; COS (COSINE) rotate angle / X Expansion
|
||||||
reg211Bw:
|
reg211Bw:
|
||||||
@@ -1328,7 +1340,9 @@ reg2133w:
|
|||||||
mov word[resolutn],239
|
mov word[resolutn],239
|
||||||
ret
|
ret
|
||||||
|
|
||||||
NEWSYM CleartheScreen, db 0
|
SECTION .bss ;ALIGN=32
|
||||||
|
NEWSYM CleartheScreen, resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
; Sound Register #1
|
; Sound Register #1
|
||||||
reg2140w:
|
reg2140w:
|
||||||
@@ -1337,9 +1351,13 @@ reg2140w:
|
|||||||
jne .n
|
jne .n
|
||||||
mov byte[nmirept],0
|
mov byte[nmirept],0
|
||||||
.n
|
.n
|
||||||
|
%ifdef OPENSPC
|
||||||
|
mov byte[SPC_PORT0R],al
|
||||||
|
%else
|
||||||
mov byte[spcRam+0F4h],al
|
mov byte[spcRam+0F4h],al
|
||||||
inc dword[SPC700write]
|
inc dword[SPC700write]
|
||||||
reenablespc
|
reenablespc
|
||||||
|
%endif
|
||||||
ret
|
ret
|
||||||
; cmp dword[cycpbl],0FFFFh
|
; cmp dword[cycpbl],0FFFFh
|
||||||
; ja .spcreset
|
; ja .spcreset
|
||||||
@@ -1351,9 +1369,13 @@ reg2140w:
|
|||||||
; Sound Register #2
|
; Sound Register #2
|
||||||
reg2141w:
|
reg2141w:
|
||||||
mov byte[sndwrit],1
|
mov byte[sndwrit],1
|
||||||
|
%ifdef OPENSPC
|
||||||
|
mov byte[SPC_PORT1R],al
|
||||||
|
%else
|
||||||
mov byte[spcRam+0F5h],al
|
mov byte[spcRam+0F5h],al
|
||||||
inc dword[SPC700write]
|
inc dword[SPC700write]
|
||||||
reenablespc
|
reenablespc
|
||||||
|
%endif
|
||||||
ret
|
ret
|
||||||
; cmp dword[cycpbl],0FFFFh
|
; cmp dword[cycpbl],0FFFFh
|
||||||
; ja .spcreset
|
; ja .spcreset
|
||||||
@@ -1365,9 +1387,13 @@ reg2141w:
|
|||||||
; Sound Register #3
|
; Sound Register #3
|
||||||
reg2142w:
|
reg2142w:
|
||||||
mov byte[sndwrit],1
|
mov byte[sndwrit],1
|
||||||
|
%ifdef OPENSPC
|
||||||
|
mov byte[SPC_PORT2R],al
|
||||||
|
%else
|
||||||
mov byte[spcRam+0F6h],al
|
mov byte[spcRam+0F6h],al
|
||||||
inc dword[SPC700write]
|
inc dword[SPC700write]
|
||||||
reenablespc
|
reenablespc
|
||||||
|
%endif
|
||||||
ret
|
ret
|
||||||
; cmp dword[cycpbl],0FFFFh
|
; cmp dword[cycpbl],0FFFFh
|
||||||
; ja .spcreset
|
; ja .spcreset
|
||||||
@@ -1379,9 +1405,13 @@ reg2142w:
|
|||||||
; Sound Register #4
|
; Sound Register #4
|
||||||
reg2143w:
|
reg2143w:
|
||||||
mov byte[sndwrit],1
|
mov byte[sndwrit],1
|
||||||
|
%ifdef OPENSPC
|
||||||
|
mov byte[SPC_PORT3R],al
|
||||||
|
%else
|
||||||
mov byte[spcRam+0F7h],al
|
mov byte[spcRam+0F7h],al
|
||||||
inc dword[SPC700write]
|
inc dword[SPC700write]
|
||||||
reenablespc
|
reenablespc
|
||||||
|
%endif
|
||||||
ret
|
ret
|
||||||
; cmp dword[cycpbl],0FFFFh
|
; cmp dword[cycpbl],0FFFFh
|
||||||
; ja .spcreset
|
; ja .spcreset
|
||||||
@@ -1417,7 +1447,9 @@ reg2183w:
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
; Joystick 1 & 2 status bytes
|
; Joystick 1 & 2 status bytes
|
||||||
NEWSYM MultiTapStat, db 0
|
SECTION .bss ;ALIGN=32
|
||||||
|
NEWSYM MultiTapStat, resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
reg4016w:
|
reg4016w:
|
||||||
test byte[INTEnab],1
|
test byte[INTEnab],1
|
||||||
@@ -1831,7 +1863,11 @@ regexiter:
|
|||||||
call printnum
|
call printnum
|
||||||
jmp DosExit
|
jmp DosExit
|
||||||
|
|
||||||
|
SECTION .data ;ALIGN=32
|
||||||
.invalidreg db 'Invalid Write Register : $'
|
.invalidreg db 'Invalid Write Register : $'
|
||||||
.invalidaddr db ' at address $'
|
.invalidaddr db ' at address $'
|
||||||
.invbank db 0
|
|
||||||
.invaddr db 0
|
SECTION .bss ;ALIGN=32
|
||||||
|
.invbank resb 1
|
||||||
|
.invaddr resb 1
|
||||||
|
SECTION .text
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ EXTSYM nmirept,nmistatus,opexec268,opexec268b,opexec268cph
|
|||||||
EXTSYM opexec268cphb,opexec358,opexec358b,opexec358cph,spcextraram
|
EXTSYM opexec268cphb,opexec358,opexec358b,opexec358cph,spcextraram
|
||||||
EXTSYM opexec358cphb,prevoamptr,reg1read,reg2read,reg3read
|
EXTSYM opexec358cphb,prevoamptr,reg1read,reg2read,reg3read
|
||||||
EXTSYM reg4read,resolutn,romdata,scrndis,spcBuffera,spcP,spcRam
|
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 SPC700read,SPC700write,GUIDoReset,spc700read
|
||||||
EXTSYM InitC4,SA1Reset,SetAddressingModesSA1,SetAddressingModes,SDD1BankA,SPC7110init
|
EXTSYM InitC4,SA1Reset,SetAddressingModesSA1,SetAddressingModes,SDD1BankA,SPC7110init
|
||||||
EXTSYM RTCinit,InitOBC
|
EXTSYM RTCinit,InitOBC
|
||||||
@@ -223,13 +223,14 @@ NEWSYM init
|
|||||||
xor edx,edx
|
xor edx,edx
|
||||||
mov al,[MusicRelVol]
|
mov al,[MusicRelVol]
|
||||||
shl eax,7
|
shl eax,7
|
||||||
mov ebx,100
|
mov ebx,0A3D70A3Dh
|
||||||
div ebx
|
mul ebx
|
||||||
cmp al,127
|
shr edx,6
|
||||||
|
cmp dl,127
|
||||||
jb .noof
|
jb .noof
|
||||||
mov al,127
|
mov dl,127
|
||||||
.noof
|
.noof
|
||||||
mov [MusicVol],al
|
mov [MusicVol],dl
|
||||||
|
|
||||||
; FIX STATMAT
|
; FIX STATMAT
|
||||||
; Here's the auto-load ZST file stuff
|
; 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 cycpbl2, db 109 ; percentage left of CPU/SPC to run (3.58 = 175)
|
||||||
NEWSYM cycpblt2, db 149 ; percentage of CPU/SPC to run
|
NEWSYM cycpblt2, db 149 ; percentage of CPU/SPC to run
|
||||||
NEWSYM writeon, db 0 ; Write enable/disable on snes rom memory
|
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 soundon, db 0 ; Current sound enabled (1=enabled)
|
||||||
NEWSYM zsmesg, db 'ZSNES Save State File V0.6',26
|
NEWSYM zsmesg, db 'ZSNES Save State File V0.6',26
|
||||||
NEWSYM versn, db 60 ; version #/100
|
NEWSYM versn, db 60 ; version #/100
|
||||||
@@ -585,29 +586,29 @@ NEWSYM Setper2exec
|
|||||||
; Read Input Device Reads from Keyboard, etc.
|
; Read Input Device Reads from Keyboard, etc.
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
|
|
||||||
SECTION .data
|
SECTION .bss
|
||||||
NEWSYM WhichSW, db 0
|
NEWSYM WhichSW, resb 1
|
||||||
NEWSYM WhichGR, db 0
|
NEWSYM WhichGR, resb 1
|
||||||
NEWSYM autofr, db 0
|
NEWSYM autofr, resb 1
|
||||||
TurboCB db 0
|
TurboCB resb 1
|
||||||
|
|
||||||
NEWSYM MovieTemp, db 0
|
NEWSYM MovieTemp, resb 1
|
||||||
NEWSYM JoyAOrig, dd 0
|
NEWSYM JoyAOrig, resd 1
|
||||||
NEWSYM JoyBOrig, dd 0
|
NEWSYM JoyBOrig, resd 1
|
||||||
NEWSYM JoyCOrig, dd 0
|
NEWSYM JoyCOrig, resd 1
|
||||||
NEWSYM JoyDOrig, dd 0
|
NEWSYM JoyDOrig, resd 1
|
||||||
NEWSYM JoyEOrig, dd 0
|
NEWSYM JoyEOrig, resd 1
|
||||||
NEWSYM JoyANow, dd 0
|
NEWSYM JoyANow, resd 1
|
||||||
NEWSYM JoyBNow, dd 0
|
NEWSYM JoyBNow, resd 1
|
||||||
NEWSYM JoyCNow, dd 0
|
NEWSYM JoyCNow, resd 1
|
||||||
NEWSYM JoyDNow, dd 0
|
NEWSYM JoyDNow, resd 1
|
||||||
NEWSYM JoyENow, dd 0
|
NEWSYM JoyENow, resd 1
|
||||||
NEWSYM PJoyAOrig, dd 0
|
NEWSYM PJoyAOrig, resd 1
|
||||||
NEWSYM PJoyBOrig, dd 0
|
NEWSYM PJoyBOrig, resd 1
|
||||||
NEWSYM PJoyCOrig, dd 0
|
NEWSYM PJoyCOrig, resd 1
|
||||||
NEWSYM PJoyDOrig, dd 0
|
NEWSYM PJoyDOrig, resd 1
|
||||||
NEWSYM PJoyEOrig, dd 0
|
NEWSYM PJoyEOrig, resd 1
|
||||||
NEWSYM LethEnData, dd 0
|
NEWSYM LethEnData, resd 1
|
||||||
SECTION .text
|
SECTION .text
|
||||||
|
|
||||||
%macro PlayerDeviceHelp 3
|
%macro PlayerDeviceHelp 3
|
||||||
@@ -682,7 +683,8 @@ SECTION .text
|
|||||||
je %%startprogress
|
je %%startprogress
|
||||||
%%nopress
|
%%nopress
|
||||||
add eax,66
|
add eax,66
|
||||||
loop %%loop
|
dec ecx
|
||||||
|
jnz %%loop
|
||||||
jmp %%endcomb
|
jmp %%endcomb
|
||||||
%%startprogress
|
%%startprogress
|
||||||
mov byte[pressed+ebx],2
|
mov byte[pressed+ebx],2
|
||||||
@@ -1355,15 +1357,20 @@ NEWSYM ProcessMovies
|
|||||||
call .writebuffertodisk
|
call .writebuffertodisk
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
|
|
||||||
.movieended db 'MOVIE FINISHED.',0
|
.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 CFWriteStart, dd 64+30
|
||||||
NEWSYM CReadHead, dd 0
|
|
||||||
NEWSYM ReadHead, dd 0
|
SECTION .bss
|
||||||
NEWSYM CFWriteHead, dd 0
|
NEWSYM MovieBuffSize, resd 1
|
||||||
NEWSYM StoreBuffer, times 128*32 db 0
|
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
|
; Init 65816 Initializes the Registers
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
@@ -1498,7 +1505,9 @@ headerhack2:
|
|||||||
.nokingofrally
|
.nokingofrally
|
||||||
ret
|
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
|
.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 ewj2hack
|
||||||
EXTSYM latchyr
|
EXTSYM latchyr
|
||||||
@@ -1747,16 +1756,16 @@ NEWSYM headerhack
|
|||||||
mov byte[esi+1],0BCh ; RTS instead of jumping to a rts
|
mov byte[esi+1],0BCh ; RTS instead of jumping to a rts
|
||||||
.nothomealone
|
.nothomealone
|
||||||
|
|
||||||
mov esi,[romdata]
|
; mov esi,[romdata]
|
||||||
add esi,0FFC0h
|
; add esi,0FFC0h
|
||||||
cmp dword[esi],'EMER'
|
; cmp dword[esi],'EMER'
|
||||||
jne .notemeralddragon
|
; jne .notemeralddragon
|
||||||
cmp dword[esi+4],'ALD '
|
; cmp dword[esi+4],'ALD '
|
||||||
jne .notemeralddragon
|
; jne .notemeralddragon
|
||||||
cmp dword[esi+8],'DRAG'
|
; cmp dword[esi+8],'DRAG'
|
||||||
jne .notemeralddragon
|
; jne .notemeralddragon
|
||||||
mov byte[ENVDisable],1
|
; mov byte[ENVDisable],1
|
||||||
.notemeralddragon
|
;.notemeralddragon
|
||||||
|
|
||||||
mov esi,[romdata]
|
mov esi,[romdata]
|
||||||
add esi,7FC0h
|
add esi,7FC0h
|
||||||
@@ -2124,6 +2133,8 @@ NEWSYM headerhack
|
|||||||
.noromheaddk
|
.noromheaddk
|
||||||
ret
|
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
|
.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
|
.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
|
.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
|
.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
|
.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
|
NEWSYM idledetectspc
|
||||||
@@ -2151,13 +2163,15 @@ NEWSYM idledetectspc
|
|||||||
mov eax,[MsgCount]
|
mov eax,[MsgCount]
|
||||||
mov [MessageOn],eax
|
mov [MessageOn],eax
|
||||||
ret
|
ret
|
||||||
.unableskip db 'SPC700 STALL DETECTED.',0
|
|
||||||
|
|
||||||
SECTION .data
|
SECTION .data
|
||||||
NEWSYM ReturnFromSPCStall, db 0
|
.unableskip db 'SPC700 STALL DETECTED.',0
|
||||||
NEWSYM SPCStallSetting, db 0
|
|
||||||
NEWSYM SPCSkipXtraROM, db 0
|
SECTION .bss
|
||||||
NEWSYM WindowDisables, dd 0
|
NEWSYM ReturnFromSPCStall, resb 1
|
||||||
|
NEWSYM SPCStallSetting, resb 1
|
||||||
|
NEWSYM SPCSkipXtraROM, resb 1
|
||||||
|
NEWSYM WindowDisables, resd 1
|
||||||
SECTION .text
|
SECTION .text
|
||||||
|
|
||||||
%macro helpclearmem 2
|
%macro helpclearmem 2
|
||||||
@@ -2327,7 +2341,8 @@ NEWSYM init65816
|
|||||||
mov byte [reg3read],0
|
mov byte [reg3read],0
|
||||||
mov byte [reg4read],0
|
mov byte [reg4read],0
|
||||||
mov dword[cycpbl],0
|
mov dword[cycpbl],0
|
||||||
mov byte[spcnumread],0
|
mov dword[spcnumread],0
|
||||||
|
mov dword[spchalted],-1
|
||||||
mov dword[coladdr],0
|
mov dword[coladdr],0
|
||||||
mov byte[NMIEnab],1
|
mov byte[NMIEnab],1
|
||||||
mov word[VIRQLoc],0
|
mov word[VIRQLoc],0
|
||||||
@@ -2481,7 +2496,9 @@ NEWSYM init65816
|
|||||||
mov dword[wramwriteptr],setwram1fff
|
mov dword[wramwriteptr],setwram1fff
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.boffound db '.....',0
|
.boffound db '.....',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
getwram1fff:
|
getwram1fff:
|
||||||
mov al,[wramdataa+1fffh]
|
mov al,[wramdataa+1fffh]
|
||||||
@@ -2500,11 +2517,11 @@ setwram1fff:
|
|||||||
; Bank 7E : WRAM (0000h-FFFFh)
|
; Bank 7E : WRAM (0000h-FFFFh)
|
||||||
; Bank 7F : ExtendRAM (0000h-FFFFh)
|
; Bank 7F : ExtendRAM (0000h-FFFFh)
|
||||||
|
|
||||||
SECTION .data
|
SECTION .bss
|
||||||
NEWSYM curromsize, db 0
|
NEWSYM curromsize, resb 1
|
||||||
NEWSYM cromptradd, dd 0
|
NEWSYM cromptradd, resd 1
|
||||||
NEWSYM NoiseDisTemp, dd 0,0
|
NEWSYM NoiseDisTemp, resd 2
|
||||||
NEWSYM lorommapmode2, db 0
|
NEWSYM lorommapmode2, resb 1
|
||||||
SECTION .text
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM initsnes
|
NEWSYM initsnes
|
||||||
@@ -3719,7 +3736,9 @@ NEWSYM printhex
|
|||||||
jnz .loopa
|
jnz .loopa
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.hexdat db '0123456789ABCDEF'
|
.hexdat db '0123456789ABCDEF'
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM printhex8
|
NEWSYM printhex8
|
||||||
mov ecx,2
|
mov ecx,2
|
||||||
@@ -3728,7 +3747,7 @@ NEWSYM printhex8
|
|||||||
mov bx,ax
|
mov bx,ax
|
||||||
and bx,0F0h
|
and bx,0F0h
|
||||||
shr bx,4
|
shr bx,4
|
||||||
mov dl,[.hexdat+ebx]
|
mov dl,[printhex.hexdat+ebx]
|
||||||
push ax
|
push ax
|
||||||
mov ah,02h
|
mov ah,02h
|
||||||
call Output_Text
|
call Output_Text
|
||||||
@@ -3738,7 +3757,31 @@ NEWSYM printhex8
|
|||||||
jnz .loopb
|
jnz .loopb
|
||||||
ret
|
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
|
; Load File
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
@@ -3768,7 +3811,10 @@ NEWSYM RetrieveDataIPS
|
|||||||
inc ecx
|
inc ecx
|
||||||
ret
|
ret
|
||||||
|
|
||||||
IPSSL dd 0
|
|
||||||
|
SECTION .bss
|
||||||
|
IPSSL resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM PatchIPS
|
NEWSYM PatchIPS
|
||||||
%ifdef __LINUX__
|
%ifdef __LINUX__
|
||||||
@@ -3941,25 +3987,28 @@ NEWSYM PatchIPS
|
|||||||
;.ltop
|
;.ltop
|
||||||
; mov byte[esi+edx],0
|
; mov byte[esi+edx],0
|
||||||
; inc edx
|
; inc edx
|
||||||
; loop .ltop
|
; dec ecx
|
||||||
|
; jnz .ltop
|
||||||
%ifdef __LINUX__
|
%ifdef __LINUX__
|
||||||
pushad
|
pushad
|
||||||
call popdir
|
call popdir
|
||||||
popad
|
popad
|
||||||
%endif
|
%endif
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.ipsokaymsg db 'IPS PATCHED.',0
|
.ipsokaymsg db 'IPS PATCHED.',0
|
||||||
.ipsnokaymsg db 'IPS IS CORRUPT.',0
|
.ipsnokaymsg db 'IPS IS CORRUPT.',0
|
||||||
|
|
||||||
section .data
|
SECTION .bss
|
||||||
NEWSYM Header512, db 0
|
NEWSYM Header512, resb 1
|
||||||
NEWSYM Prevextn, dd 0
|
NEWSYM Prevextn, resd 1
|
||||||
NEWSYM Headchek, db 0,0,0,0,0
|
NEWSYM Headchek, resb 5
|
||||||
NEWSYM IPSLimit, dd 0
|
NEWSYM IPSLimit, resd 1
|
||||||
NEWSYM IPSOffset, dd 0
|
NEWSYM IPSOffset, resd 1
|
||||||
NEWSYM IPSCount, dd 0
|
NEWSYM IPSCount, resd 1
|
||||||
IPSPatched db 0
|
IPSPatched resb 1
|
||||||
section .text
|
SECTION .text
|
||||||
|
|
||||||
OpenCombFile:
|
OpenCombFile:
|
||||||
mov edx,fnames+1
|
mov edx,fnames+1
|
||||||
@@ -4057,37 +4106,42 @@ NEWSYM loadfile
|
|||||||
jmp loadfileGUI.nogui
|
jmp loadfileGUI.nogui
|
||||||
|
|
||||||
SECTION .data
|
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
|
.failop db 'Error opening file!',13,10,0
|
||||||
.opened db 'File opened successfully!',13,10,0
|
.opened db 'File opened successfully!',13,10,0
|
||||||
.mult db 'Multiple file format detected.',13,10,13,10,0
|
.mult db 'Multiple file format detected.',13,10,13,10,0
|
||||||
.temp db 0
|
SECTION .bss
|
||||||
.fail db 0
|
.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 Checksumvalue, resw 1
|
||||||
NEWSYM Checksumvalue2, dw 0
|
NEWSYM Checksumvalue2, resw 1
|
||||||
NEWSYM SramExists, db 0
|
NEWSYM SramExists, resb 1
|
||||||
NEWSYM NumofBanks, dd 0
|
NEWSYM NumofBanks, resd 1
|
||||||
NEWSYM NumofBytes, dd 0
|
NEWSYM NumofBytes, resd 1
|
||||||
NEWSYM ZipSupport, db 0
|
NEWSYM ZipSupport, resb 1
|
||||||
InGUI db 0
|
InGUI resb 1
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
|
|
||||||
%ifdef __LINUX__
|
%ifdef __LINUX__
|
||||||
tempdirname db '/tmp/zziptmp',0
|
tempdirname db '/tmp/zziptmp',0
|
||||||
%else
|
%else
|
||||||
tempdirname db 'zziptmp_.__z',0
|
tempdirname db 'zziptmp_.__z',0
|
||||||
%endif
|
%endif
|
||||||
PrevDir db '..',0
|
PrevDir db '..',0
|
||||||
SECTION .text
|
|
||||||
|
|
||||||
|
|
||||||
GUIfindBlank db '*.',0
|
GUIfindBlank db '*.',0
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
%macro UnZipSearch 1
|
%macro UnZipSearch 1
|
||||||
mov cx,20h
|
mov cx,20h
|
||||||
mov edx,%1
|
mov edx,%1
|
||||||
@@ -4099,9 +4153,13 @@ GUIfindBlank db '*.',0
|
|||||||
%%notfound
|
%%notfound
|
||||||
%endmacro
|
%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
|
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:
|
UnZipFile:
|
||||||
; cmp byte[OSPort],1
|
; cmp byte[OSPort],1
|
||||||
@@ -4271,7 +4329,9 @@ ZipDelete:
|
|||||||
call Makemode7Table
|
call Makemode7Table
|
||||||
ret
|
ret
|
||||||
|
|
||||||
tempzip db 0
|
SECTION .bss
|
||||||
|
tempzip resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
ZipDeleteRecurse:
|
ZipDeleteRecurse:
|
||||||
; Find all directories
|
; Find all directories
|
||||||
@@ -4343,15 +4403,14 @@ ZipDeleteRecurse:
|
|||||||
.notfound
|
.notfound
|
||||||
ret
|
ret
|
||||||
|
|
||||||
SPC7110Allocated db 0
|
SECTION .data
|
||||||
|
|
||||||
SPC7110DIRA db 'FEOEZSP7',0
|
SPC7110DIRA db 'FEOEZSP7',0
|
||||||
SPC7110DIRB db 'SMHT-SP7',0
|
SPC7110DIRB db 'SMHT-SP7',0
|
||||||
SDD1DIRA db 'SOCNSDD1',0
|
SDD1DIRA db 'SOCNSDD1',0
|
||||||
SDD1DIRB db 'SFA2SDD1',0
|
SDD1DIRB db 'SFA2SDD1',0
|
||||||
SPC7110IndexName db 'index.bin',0
|
SPC7110IndexName db 'index.bin',0
|
||||||
SPC7110DirEntry db '*.bin',0
|
SPC7110DirEntry db '*.bin',0
|
||||||
SPC7110CPtr dd 0
|
|
||||||
SPC7110CPtr2 dd 0
|
|
||||||
NEWSYM SDD1Offset, dd 65536*8
|
NEWSYM SDD1Offset, dd 65536*8
|
||||||
%ifndef __LINUX__
|
%ifndef __LINUX__
|
||||||
NEWSYM SDD1nfname, db ' \_00000-0.bin',0
|
NEWSYM SDD1nfname, db ' \_00000-0.bin',0
|
||||||
@@ -4363,13 +4422,21 @@ NEWSYM SPC7110nfname, db ' / .bin',0
|
|||||||
NEWSYM SDD1ifname, db 'sdd1gfx.idx',0
|
NEWSYM SDD1ifname, db 'sdd1gfx.idx',0
|
||||||
NEWSYM SDD1dfname, db 'sdd1gfx.dat',0
|
NEWSYM SDD1dfname, db 'sdd1gfx.dat',0
|
||||||
NEWSYM SDD1pfname, db 'sdd1gfx.pat',0
|
NEWSYM SDD1pfname, db 'sdd1gfx.pat',0
|
||||||
NEWSYM SPC7110IndexSize, dd 0
|
|
||||||
NEWSYM SPC7110Entries, dd 0
|
|
||||||
spc7110notfound db 'DECOMPRESSED PACK NOT FOUND',0
|
spc7110notfound db 'DECOMPRESSED PACK NOT FOUND',0
|
||||||
spc7110notfoundb db 'INDEX DATA NOT FOUND',0
|
spc7110notfoundb db 'INDEX DATA NOT FOUND',0
|
||||||
SDD1PatchAddr dd 0
|
|
||||||
SDD1PatchOfs dd 0
|
SECTION .bss
|
||||||
SDD1PatchLen dd 0
|
|
||||||
|
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
|
EXTSYM sdd1fname
|
||||||
|
|
||||||
@@ -5111,8 +5178,13 @@ NEWSYM loadfileGUI
|
|||||||
|
|
||||||
jmp near .notwiz4
|
jmp near .notwiz4
|
||||||
|
|
||||||
.romtable times 128 db 0
|
SECTION .bss
|
||||||
.romtableb times 128 db 0
|
|
||||||
|
.romtable resb 128
|
||||||
|
.romtableb resb 128
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
.notwiz4
|
.notwiz4
|
||||||
|
|
||||||
jmp .skipall
|
jmp .skipall
|
||||||
@@ -5290,20 +5362,23 @@ NEWSYM loadfileGUI
|
|||||||
jmp DosExit
|
jmp DosExit
|
||||||
|
|
||||||
SECTION .data
|
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
|
.failop db 'Error opening file!',13,10,0
|
||||||
.opened db 'File opened successfully!',13,10,0
|
.opened db 'File opened successfully!',13,10,0
|
||||||
.mult db 'Multiple file format detected.',13,10,13,10,0
|
.mult db 'Multiple file format detected.',13,10,13,10,0
|
||||||
.maxromspace dd 0
|
|
||||||
.curromspace dd 0
|
SECTION .bss
|
||||||
NEWSYM GUIloadfailed, db 0
|
|
||||||
|
.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
|
SECTION .text
|
||||||
|
|
||||||
@@ -5385,7 +5460,9 @@ NEWSYM convertsram
|
|||||||
call Change_Dir
|
call Change_Dir
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
NEWSYM CSStatus, db ' TYPE: CHSUM:OK ',0
|
NEWSYM CSStatus, db ' TYPE: CHSUM:OK ',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM showinfogui
|
NEWSYM showinfogui
|
||||||
mov esi,[romdata]
|
mov esi,[romdata]
|
||||||
@@ -5880,7 +5957,6 @@ NEWSYM showinfo
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
SECTION .data
|
SECTION .data
|
||||||
.memfree times 30 db 0
|
|
||||||
.filename db 'Filename : ',0
|
.filename db 'Filename : ',0
|
||||||
.frameskip db 'Frame Skip : ',0
|
.frameskip db 'Frame Skip : ',0
|
||||||
.percexec db '% to Exec : ',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
|
.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
|
.intlvd db 'Image is uninterleaved.',13,10,0
|
||||||
|
|
||||||
NEWSYM DSP1Type, db 0
|
SECTION .bss
|
||||||
NEWSYM intldone, db 0
|
|
||||||
|
.memfree resb 30
|
||||||
|
|
||||||
|
NEWSYM DSP1Type, resb 1
|
||||||
|
NEWSYM intldone, resb 1
|
||||||
SECTION .text
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM CheckROMType
|
NEWSYM CheckROMType
|
||||||
@@ -6371,18 +6451,18 @@ NEWSYM CheckROMType
|
|||||||
call SPC7110Load
|
call SPC7110Load
|
||||||
ret
|
ret
|
||||||
|
|
||||||
SECTION .data
|
SECTION .bss
|
||||||
NEWSYM SFXEnable, db 0
|
NEWSYM SFXEnable, resb 1
|
||||||
NEWSYM C4Enable, db 0
|
NEWSYM C4Enable, resb 1
|
||||||
NEWSYM SPC7110Enable, db 0
|
NEWSYM SPC7110Enable, resb 1
|
||||||
NEWSYM RTCEnable, db 0
|
NEWSYM RTCEnable, resb 1
|
||||||
NEWSYM SA1Enable, db 0
|
NEWSYM SA1Enable, resb 1
|
||||||
NEWSYM SDD1Enable, db 0
|
NEWSYM SDD1Enable, resb 1
|
||||||
NEWSYM OBCEnable, db 0
|
NEWSYM OBCEnable, resb 1
|
||||||
NEWSYM C4RamR, dd 0
|
NEWSYM C4RamR, resd 1
|
||||||
NEWSYM C4RamW, dd 0
|
NEWSYM C4RamW, resd 1
|
||||||
NEWSYM C4Ram, dd 0
|
NEWSYM C4Ram, resd 1
|
||||||
NEWSYM ROMTypeNOTFound, db 0
|
NEWSYM ROMTypeNOTFound, resb 1
|
||||||
SECTION .text
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM SetIRQVectors
|
NEWSYM SetIRQVectors
|
||||||
@@ -6482,8 +6562,9 @@ NEWSYM outofmemfix
|
|||||||
mov dword[MessageOn],0FFFFFFFFh
|
mov dword[MessageOn],0FFFFFFFFh
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .bss
|
||||||
|
NEWSYM yesoutofmemory, resb 1
|
||||||
SECTION .data
|
SECTION .data
|
||||||
NEWSYM yesoutofmemory, db 0
|
|
||||||
NEWSYM outofmemoryerror, db 'OUT OF MEMORY.',0
|
NEWSYM outofmemoryerror, db 'OUT OF MEMORY.',0
|
||||||
NEWSYM outofmemoryerror2, db 'ROM IS TOO BIG.',0
|
NEWSYM outofmemoryerror2, db 'ROM IS TOO BIG.',0
|
||||||
SECTION .text
|
SECTION .text
|
||||||
|
|||||||
Reference in New Issue
Block a user