More updates and fixes
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user