Code cleanup and updates

This commit is contained in:
pagefault
2003-03-24 20:27:08 +00:00
parent 52b3109da4
commit dfcf252af9
3 changed files with 224 additions and 125 deletions

View File

@@ -371,8 +371,10 @@ NEWSYM DOScreatenewcfg
checkitemcfg 'v', [cfgreinittime],.checkv checkitemcfg 'v', [cfgreinittime],.checkv
jmp .loop jmp .loop
.temp db 0 section .bss
.temp2 db 0 .temp resb 1
.temp2 resb 1
section .text
.insertnum .insertnum
; preserve ecx and edx, output al into edi ; preserve ecx and edx, output al into edi
@@ -540,6 +542,8 @@ NEWSYM DOScreatenewcfg
.nomoredirc .nomoredirc
jmp .loop jmp .loop
section .data
.cfgfiledata .cfgfiledata
db '; ZSNES Configuration file',13,10 db '; ZSNES Configuration file',13,10
db '',13,10 db '',13,10
@@ -721,6 +725,8 @@ db '',13,10
db 'GameDirectory = %e',13,10 db 'GameDirectory = %e',13,10
.cfgfilesize equ $-.cfgfiledata .cfgfilesize equ $-.cfgfiledata
section .text
NEWSYM getcfg NEWSYM getcfg
mov byte[.forceauto],0 mov byte[.forceauto],0
; open file ; open file
@@ -1258,7 +1264,7 @@ NEWSYM getcfg
inc ecx inc ecx
dec dword[.strlenb] dec dword[.strlenb]
cmp bl,',' cmp bl,','
je near .finstr1 je .finstr1
cmp bl,'0' cmp bl,'0'
jb near .nextstr1 jb near .nextstr1
cmp bl,'9' cmp bl,'9'
@@ -1272,7 +1278,7 @@ NEWSYM getcfg
and edx,0FFh and edx,0FFh
add eax,edx add eax,edx
cmp dword[.strlenb],0 cmp dword[.strlenb],0
je near .finstr1 je .finstr1
jmp .nextstr1 jmp .nextstr1
.finstr1 .finstr1
; determine which variable according to bh & write ; determine which variable according to bh & write
@@ -1343,7 +1349,7 @@ NEWSYM getcfg
inc ecx inc ecx
dec dword[.strlenb] dec dword[.strlenb]
cmp bl,',' cmp bl,','
je near .finstr2 je .finstr2
cmp bl,'0' cmp bl,'0'
jb near .nextstr2 jb near .nextstr2
cmp bl,'9' cmp bl,'9'
@@ -1357,7 +1363,7 @@ NEWSYM getcfg
and edx,0FFh and edx,0FFh
add eax,edx add eax,edx
cmp dword[.strlenb],0 cmp dword[.strlenb],0
je near .finstr2 je .finstr2
jmp .nextstr2 jmp .nextstr2
.finstr2 .finstr2
; determine which variable according to bh & write ; determine which variable according to bh & write
@@ -1735,17 +1741,17 @@ NEWSYM getcfg
inc ecx inc ecx
dec dword[.strlenb] dec dword[.strlenb]
cmp bl,',' cmp bl,','
je near .finstr3 je .finstr3
cmp bl,'0' cmp bl,'0'
jb near .nextstr3 jb .nextstr3
cmp bl,'9' cmp bl,'9'
ja near .nextstr3 ja .nextstr3
sub bl,48 sub bl,48
mov dl,10 mov dl,10
mul dl mul dl
add al,bl add al,bl
cmp dword[.strlenb],0 cmp dword[.strlenb],0
je near .finstr3 je .finstr3
jmp .nextstr3 jmp .nextstr3
.finstr3 .finstr3
; determine which variable according to bh & write ; determine which variable according to bh & write
@@ -1878,22 +1884,25 @@ NEWSYM getcfg
.novolume .novolume
ret ret
SECTION .data SECTION .bss
.per2exec resb 1
.volume resb 1
.fileloc resw 1
.eofile resb 1
.ignore resb 1
.strlen resd 1
.stralen resd 1 ; actual string length
.strlena resd 1
.strlenb resd 1
.cchar resb 1
.forceauto resb 1
.string resb 128 ; full string
.stringa resb 128
.stringb resb 128
section .data
.per2exec db 0
.volume db 0
.fileloc dw 0
.eofile db 0
.ignore db 0
.strlen dd 0
.stralen dd 0 ; actual string length
.strlena dd 0
.strlenb dd 0
.cchar db 0
.forceauto db 0
.string times 128 db 0 ; full string
.stringa times 128 db 0
.stringb times 128 db 0
.cfgfname db 'zsnes.cfg',0 .cfgfname db 'zsnes.cfg',0
.stra dd 9 .stra dd 9
db 'FRAMESKIP' db 'FRAMESKIP'

View File

@@ -32,7 +32,7 @@ Stuff db 'ZSNES v?.??? / free software, programmed by zsKnight, _Demo_, and Phar
SECTION .bss SECTION .bss
ALIGN32 ; ALIGN32 ; silly boy, bss section gets aligned by default XD
NEWSYM wramdataa, resb 65536 NEWSYM wramdataa, resb 65536
NEWSYM ram7fa, resb 65536 NEWSYM ram7fa, resb 65536

View File

@@ -63,24 +63,33 @@ NEWSYM VCacheAsmStart
; Process stuff & Cache sprites ; Process stuff & Cache sprites
NEWSYM fskipped, db 0 SECTION .bss
NEWSYM objvramadder, dd 0 NEWSYM fskipped, resb 1
NEWSYM pobjvram, dw 0 NEWSYM objvramadder, resd 1
NEWSYM pobjvram, resw 1
SECTION .data
NEWSYM sprprifix, db 1 NEWSYM sprprifix, db 1
ALIGN32 SECTION .bss
NEWSYM OMBGTestVal, dd 0 NEWSYM OMBGTestVal, resd 1
NEWSYM ngptrdat2, dd 0 NEWSYM ngptrdat2, resd 1
NEWSYM ofshvaladd, dd 0 NEWSYM ofshvaladd, resd 1
NEWSYM ofsmtptrs, dd 0 NEWSYM ofsmtptrs, resd 1
NEWSYM ofsmcptr2, dd 0 NEWSYM ofsmcptr2, resd 1
NEWSYM sramb4save, dd 0 NEWSYM sramb4save, resd 1
NEWSYM mode7hiresen, dd 1
NEWSYM hiresstuff, dd 0
NEWSYM cmovietimeint, dd 0
NEWSYM overalltimer, dd 0
mousecheck db 0 SECTION .data
NEWSYM mode7hiresen, dd 1
SECTION .bss
NEWSYM hiresstuff, resd 1
NEWSYM cmovietimeint, resd 1
NEWSYM overalltimer, resd 1
mousecheck resb 1
section .text
@@ -121,16 +130,16 @@ mousecheck db 0
UpdateVolume: UpdateVolume:
pushad pushad
xor eax,eax xor eax,eax
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
mov al,[DSPMem+0Ch] mov al,[DSPMem+0Ch]
call WDSPReg0C call WDSPReg0C
@@ -235,11 +244,15 @@ NEWSYM dsp1teststuff
; ///////////////////////////// ; /////////////////////////////
ret ret
FastForwardLock db 0 SECTION .data
SlowDownLock db 0
FastForwardLockp db 0
SaveRamSaved db 'SAVED SRAM DATA',0 SaveRamSaved db 'SAVED SRAM DATA',0
NEWSYM CSprWinPtr, dd 0
SECTION .bss
FastForwardLock resb 1
SlowDownLock resb 1
FastForwardLockp resb 1
NEWSYM CSprWinPtr, resd 1
section .text
NEWSYM cachevideo NEWSYM cachevideo
mov byte[NextLineCache],0 mov byte[NextLineCache],0
@@ -891,9 +904,38 @@ NEWSYM yesblank
pop ebx pop ebx
ret ret
.Zero dd 0,0 NEWSYM ClearBGFPUCopy
.Zero2 dd 0,0 mov edi,[vidbuffer]
xor eax,eax
add edi,16
mov dl,[resolutn]
.loopa
mov ecx,16
.TopOfLoop
FLDZ
FLDZ
FISTP QWORD [EDI]
FISTP QWORD [EDI+8]
ADD EDI,16
DEC ECX
JNZ .TopOfLoop
add edi,32
dec dl
jnz .loopa
.skipbgclear
xor ecx,ecx
pop es
pop edx
pop edi
pop esi
pop ebx
ret
SECTION .bss
.Zero resd 2
.Zero2 resd 2
SECTION .data
NEWSYM osm2dis, db 0 NEWSYM osm2dis, db 0
NEWSYM cachedmode, db 0 NEWSYM cachedmode, db 0
NEWSYM tempfname, db 'vram.bin',0 NEWSYM tempfname, db 'vram.bin',0
@@ -951,6 +993,7 @@ bg2laydis db 'BG2 LAYER DISABLED',0
bg3laydis db 'BG3 LAYER DISABLED',0 bg3laydis db 'BG3 LAYER DISABLED',0
bg4laydis db 'BG4 LAYER DISABLED',0 bg4laydis db 'BG4 LAYER DISABLED',0
sprlaydis db 'SPRITE LAYER DISABLED',0 sprlaydis db 'SPRITE LAYER DISABLED',0
section .text
;******************************************************* ;*******************************************************
; Process Sprites ; Process Sprites
@@ -1099,14 +1142,16 @@ NEWSYM processsprites
pop ebp pop ebp
ret ret
.objvramloc dd 0 SECTION .bss
.objvramloc2 dd 0 .objvramloc resd 1
.curpri dd 0 .objvramloc2 resd 1
.trypri dd 0 .curpri resd 1
.objleft dd 0 .trypri resd 1
.prileft dd 0 .objleft resd 1
.size1ptr dd 0 .prileft resd 1
.size2ptr dd 0 .size1ptr resd 1
.size2ptr resd 1
SECTION .text
.reprocesssprite .reprocesssprite
cmp cx,-8 cmp cx,-8
@@ -1190,7 +1235,9 @@ NEWSYM processsprites
sub esi,64 sub esi,64
ret ret
.statusbit db 0 section .bss
.statusbit resb 1
section .text
.process8x8sprite: .process8x8sprite:
test dh,40h test dh,40h
@@ -1211,7 +1258,10 @@ NEWSYM processsprites
add esi,56 add esi,56
call .reprocessspriteflipy call .reprocessspriteflipy
jmp .returnfromptr jmp .returnfromptr
.numleft2do db 0
section .bss
.numleft2do resb 1
section .text
.process16x16sprite: .process16x16sprite:
mov [.statusbit],dh mov [.statusbit],dh
@@ -1757,15 +1807,17 @@ NEWSYM processspritesb
pop ebp pop ebp
ret ret
.objvramloc dd 0 SECTION .bss
.objvramloc2 dd 0 .objvramloc resd 1
.curpri dd 0 .objvramloc2 resd 1
.trypri dd 0 .curpri resd 1
.objleft dd 0 .trypri resd 1
.prileft dd 0 .objleft resd 1
.size1ptr dd 0 .prileft resd 1
.size2ptr dd 0 .size1ptr resd 1
.cpri dd 0 .size2ptr resd 1
.cpri resd 1
SECTION .text
.reprocesssprite .reprocesssprite
cmp cx,-8 cmp cx,-8
@@ -1851,7 +1903,9 @@ NEWSYM processspritesb
sub esi,64 sub esi,64
ret ret
.statusbit db 0 section .bss
.statusbit resb 1
section .text
.process8x8sprite: .process8x8sprite:
test dh,40h test dh,40h
@@ -1872,7 +1926,10 @@ NEWSYM processspritesb
add esi,56 add esi,56
call .reprocessspriteflipy call .reprocessspriteflipy
jmp .returnfromptr jmp .returnfromptr
.numleft2do db 0
section .bss
.numleft2do resb 1
section .text
.process16x16sprite: .process16x16sprite:
mov [.statusbit],dh mov [.statusbit],dh
@@ -2368,26 +2425,31 @@ NEWSYM cachesprites
jnz near .nextobj jnz near .nextobj
ret ret
.objptra dd 0 SECTION .data
.objptrb dd 0
.nbg dd 0
.objptra2 dd 0
.objptrb2 dd 0
.nbg2 dd 0
.objleft db 0
.rowleft db 0
.a dd 0
.objptr dd 0
.objleftinbyte dd 0
.curobjtype dd 0
.num2do dd 1 .num2do dd 1
.curobj dd 0
.byteb4add dd 2 .byteb4add dd 2
.byte2move dd 0
.byte2add dd 0 SECTION .bss
.sprnum dd 0 .objptra resd 1
.sprcheck dd 0 .objptrb resd 1
.sprfillpl dd 0 .nbg resd 1
.objptra2 resd 1
.objptrb2 resd 1
.nbg2 resd 1
.objleft resb 1
.rowleft resb 1
.a resd 1
.objptr resd 1
.objleftinbyte resd 1
.curobjtype resd 1
.curobj resd 1
.byte2move resd 1
.byte2add resd 1
.sprnum resd 1
.sprcheck resd 1
.sprfillpl resd 1
section .text
;******************************************************* ;*******************************************************
; Cache 2-Bit ; Cache 2-Bit
@@ -2466,11 +2528,15 @@ NEWSYM cachetile2b
pop eax pop eax
ret ret
.nbg dw 0 section .bss
.count db 0
.a db 0 .nbg resw 1
.rowleft db 0 .count resb 1
.nextar db 0 .a resb 1
.rowleft resb 1
.nextar resb 1
section .text
NEWSYM cache2bit NEWSYM cache2bit
ret ret
@@ -2563,10 +2629,14 @@ NEWSYM cachetile4b
pop eax pop eax
ret ret
.nbg dw 0 section .bss
.count db 0
.rowleft db 0 .nbg resw 1
.nextar db 0 .count resb 1
.rowleft resb 1
.nextar resb 1
section .text
NEWSYM cache4bit NEWSYM cache4bit
ret ret
@@ -2953,11 +3023,15 @@ NEWSYM cachetile8b
pop eax pop eax
ret ret
.nbg dw 0 section .bss
.count db 0
.a db 0 .nbg resw 1
.rowleft db 0 .count resb 1
.nextar db 0 .a resb 1
.rowleft resb 1
.nextar resb 1
section .text
NEWSYM cache8bit NEWSYM cache8bit
ret ret
@@ -3051,12 +3125,16 @@ NEWSYM cachetile2b16x16
pop eax pop eax
ret ret
.nbg dw 0 section .bss
.count db 0
.a db 0 .nbg resw 1
.rowleft db 0 .count resb 1
.nextar db 0 .a resb 1
.tileleft db 0 .rowleft resb 1
.nextar resb 1
.tileleft resb 1
section .text
NEWSYM cache2bit16x16 NEWSYM cache2bit16x16
ret ret
@@ -3155,11 +3233,15 @@ NEWSYM cachetile4b16x16
pop eax pop eax
ret ret
.nbg dw 0 section .bss
.count db 0
.rowleft db 0 .nbg resw 1
.nextar db 0 .count resb 1
.tileleft db 0 .rowleft resb 1
.nextar resb 1
.tileleft resb 1
section .text
NEWSYM cache4bit16x16 NEWSYM cache4bit16x16
ret ret
@@ -3558,12 +3640,16 @@ NEWSYM cachetile8b16x16
pop eax pop eax
ret ret
.nbg dw 0 section .bss
.count db 0
.a db 0 .nbg resw 1
.rowleft db 0 .count resb 1
.nextar db 0 .a resb 1
.tileleft db 0 .rowleft resb 1
.nextar resb 1
.tileleft resb 1
section .text
NEWSYM cache8bit16x16 NEWSYM cache8bit16x16
ret ret
@@ -3623,8 +3709,12 @@ NEWSYM cachesingle4b
NEWSYM cachesingle2b NEWSYM cachesingle2b
ret ret
NEWSYM scacheloop, db 0 section .bss
NEWSYM tiletypec, db 0
NEWSYM scacheloop, resb 1
NEWSYM tiletypec, resb 1
section .text
%macro processcache4b3 1 %macro processcache4b3 1
xor al,al xor al,al