From dfcf252af9959f33d2a339cefad9e2b6f0877c99 Mon Sep 17 00:00:00 2001 From: pagefault <> Date: Mon, 24 Mar 2003 20:27:08 +0000 Subject: [PATCH] Code cleanup and updates --- zsnes/src/cfgload.asm | 59 +++++---- zsnes/src/endmem.asm | 2 +- zsnes/src/vcache.asm | 288 +++++++++++++++++++++++++++--------------- 3 files changed, 224 insertions(+), 125 deletions(-) diff --git a/zsnes/src/cfgload.asm b/zsnes/src/cfgload.asm index be33fe9a..b539b797 100644 --- a/zsnes/src/cfgload.asm +++ b/zsnes/src/cfgload.asm @@ -371,8 +371,10 @@ NEWSYM DOScreatenewcfg checkitemcfg 'v', [cfgreinittime],.checkv jmp .loop -.temp db 0 -.temp2 db 0 +section .bss +.temp resb 1 +.temp2 resb 1 +section .text .insertnum ; preserve ecx and edx, output al into edi @@ -540,6 +542,8 @@ NEWSYM DOScreatenewcfg .nomoredirc jmp .loop +section .data + .cfgfiledata db '; ZSNES Configuration file',13,10 db '',13,10 @@ -721,6 +725,8 @@ db '',13,10 db 'GameDirectory = %e',13,10 .cfgfilesize equ $-.cfgfiledata +section .text + NEWSYM getcfg mov byte[.forceauto],0 ; open file @@ -1258,7 +1264,7 @@ NEWSYM getcfg inc ecx dec dword[.strlenb] cmp bl,',' - je near .finstr1 + je .finstr1 cmp bl,'0' jb near .nextstr1 cmp bl,'9' @@ -1272,7 +1278,7 @@ NEWSYM getcfg and edx,0FFh add eax,edx cmp dword[.strlenb],0 - je near .finstr1 + je .finstr1 jmp .nextstr1 .finstr1 ; determine which variable according to bh & write @@ -1343,7 +1349,7 @@ NEWSYM getcfg inc ecx dec dword[.strlenb] cmp bl,',' - je near .finstr2 + je .finstr2 cmp bl,'0' jb near .nextstr2 cmp bl,'9' @@ -1357,7 +1363,7 @@ NEWSYM getcfg and edx,0FFh add eax,edx cmp dword[.strlenb],0 - je near .finstr2 + je .finstr2 jmp .nextstr2 .finstr2 ; determine which variable according to bh & write @@ -1735,17 +1741,17 @@ NEWSYM getcfg inc ecx dec dword[.strlenb] cmp bl,',' - je near .finstr3 + je .finstr3 cmp bl,'0' - jb near .nextstr3 + jb .nextstr3 cmp bl,'9' - ja near .nextstr3 + ja .nextstr3 sub bl,48 mov dl,10 mul dl add al,bl cmp dword[.strlenb],0 - je near .finstr3 + je .finstr3 jmp .nextstr3 .finstr3 ; determine which variable according to bh & write @@ -1878,22 +1884,25 @@ NEWSYM getcfg .novolume 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 .stra dd 9 db 'FRAMESKIP' diff --git a/zsnes/src/endmem.asm b/zsnes/src/endmem.asm index 47f4e280..8a6783dd 100644 --- a/zsnes/src/endmem.asm +++ b/zsnes/src/endmem.asm @@ -32,7 +32,7 @@ Stuff db 'ZSNES v?.??? / free software, programmed by zsKnight, _Demo_, and Phar SECTION .bss -ALIGN32 +; ALIGN32 ; silly boy, bss section gets aligned by default XD NEWSYM wramdataa, resb 65536 NEWSYM ram7fa, resb 65536 diff --git a/zsnes/src/vcache.asm b/zsnes/src/vcache.asm index ba0c4789..df306f44 100644 --- a/zsnes/src/vcache.asm +++ b/zsnes/src/vcache.asm @@ -63,24 +63,33 @@ NEWSYM VCacheAsmStart ; Process stuff & Cache sprites -NEWSYM fskipped, db 0 -NEWSYM objvramadder, dd 0 -NEWSYM pobjvram, dw 0 +SECTION .bss +NEWSYM fskipped, resb 1 +NEWSYM objvramadder, resd 1 +NEWSYM pobjvram, resw 1 + +SECTION .data NEWSYM sprprifix, db 1 -ALIGN32 -NEWSYM OMBGTestVal, dd 0 -NEWSYM ngptrdat2, dd 0 -NEWSYM ofshvaladd, dd 0 -NEWSYM ofsmtptrs, dd 0 -NEWSYM ofsmcptr2, dd 0 -NEWSYM sramb4save, dd 0 -NEWSYM mode7hiresen, dd 1 -NEWSYM hiresstuff, dd 0 -NEWSYM cmovietimeint, dd 0 -NEWSYM overalltimer, dd 0 +SECTION .bss +NEWSYM OMBGTestVal, resd 1 +NEWSYM ngptrdat2, resd 1 +NEWSYM ofshvaladd, resd 1 +NEWSYM ofsmtptrs, resd 1 +NEWSYM ofsmcptr2, resd 1 +NEWSYM sramb4save, resd 1 -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: pushad xor eax,eax - 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 mov al,[DSPMem+0Ch] call WDSPReg0C @@ -235,11 +244,15 @@ NEWSYM dsp1teststuff ; ///////////////////////////// ret -FastForwardLock db 0 -SlowDownLock db 0 -FastForwardLockp db 0 +SECTION .data 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 mov byte[NextLineCache],0 @@ -891,9 +904,38 @@ NEWSYM yesblank pop ebx ret -.Zero dd 0,0 -.Zero2 dd 0,0 +NEWSYM ClearBGFPUCopy + 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 cachedmode, db 0 NEWSYM tempfname, db 'vram.bin',0 @@ -951,6 +993,7 @@ bg2laydis db 'BG2 LAYER DISABLED',0 bg3laydis db 'BG3 LAYER DISABLED',0 bg4laydis db 'BG4 LAYER DISABLED',0 sprlaydis db 'SPRITE LAYER DISABLED',0 +section .text ;******************************************************* ; Process Sprites @@ -1099,14 +1142,16 @@ NEWSYM processsprites pop ebp ret -.objvramloc dd 0 -.objvramloc2 dd 0 -.curpri dd 0 -.trypri dd 0 -.objleft dd 0 -.prileft dd 0 -.size1ptr dd 0 -.size2ptr dd 0 +SECTION .bss +.objvramloc resd 1 +.objvramloc2 resd 1 +.curpri resd 1 +.trypri resd 1 +.objleft resd 1 +.prileft resd 1 +.size1ptr resd 1 +.size2ptr resd 1 +SECTION .text .reprocesssprite cmp cx,-8 @@ -1190,7 +1235,9 @@ NEWSYM processsprites sub esi,64 ret -.statusbit db 0 +section .bss +.statusbit resb 1 +section .text .process8x8sprite: test dh,40h @@ -1211,7 +1258,10 @@ NEWSYM processsprites add esi,56 call .reprocessspriteflipy jmp .returnfromptr -.numleft2do db 0 + +section .bss +.numleft2do resb 1 +section .text .process16x16sprite: mov [.statusbit],dh @@ -1757,15 +1807,17 @@ NEWSYM processspritesb pop ebp ret -.objvramloc dd 0 -.objvramloc2 dd 0 -.curpri dd 0 -.trypri dd 0 -.objleft dd 0 -.prileft dd 0 -.size1ptr dd 0 -.size2ptr dd 0 -.cpri dd 0 +SECTION .bss +.objvramloc resd 1 +.objvramloc2 resd 1 +.curpri resd 1 +.trypri resd 1 +.objleft resd 1 +.prileft resd 1 +.size1ptr resd 1 +.size2ptr resd 1 +.cpri resd 1 +SECTION .text .reprocesssprite cmp cx,-8 @@ -1851,7 +1903,9 @@ NEWSYM processspritesb sub esi,64 ret -.statusbit db 0 +section .bss +.statusbit resb 1 +section .text .process8x8sprite: test dh,40h @@ -1872,7 +1926,10 @@ NEWSYM processspritesb add esi,56 call .reprocessspriteflipy jmp .returnfromptr -.numleft2do db 0 + +section .bss +.numleft2do resb 1 +section .text .process16x16sprite: mov [.statusbit],dh @@ -2368,26 +2425,31 @@ NEWSYM cachesprites jnz near .nextobj ret -.objptra dd 0 -.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 +SECTION .data .num2do dd 1 -.curobj dd 0 .byteb4add dd 2 -.byte2move dd 0 -.byte2add dd 0 -.sprnum dd 0 -.sprcheck dd 0 -.sprfillpl dd 0 + +SECTION .bss +.objptra resd 1 +.objptrb resd 1 +.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 @@ -2466,11 +2528,15 @@ NEWSYM cachetile2b pop eax ret -.nbg dw 0 -.count db 0 -.a db 0 -.rowleft db 0 -.nextar db 0 +section .bss + +.nbg resw 1 +.count resb 1 +.a resb 1 +.rowleft resb 1 +.nextar resb 1 + +section .text NEWSYM cache2bit ret @@ -2563,10 +2629,14 @@ NEWSYM cachetile4b pop eax ret -.nbg dw 0 -.count db 0 -.rowleft db 0 -.nextar db 0 +section .bss + +.nbg resw 1 +.count resb 1 +.rowleft resb 1 +.nextar resb 1 + +section .text NEWSYM cache4bit ret @@ -2953,11 +3023,15 @@ NEWSYM cachetile8b pop eax ret -.nbg dw 0 -.count db 0 -.a db 0 -.rowleft db 0 -.nextar db 0 +section .bss + +.nbg resw 1 +.count resb 1 +.a resb 1 +.rowleft resb 1 +.nextar resb 1 + +section .text NEWSYM cache8bit ret @@ -3051,12 +3125,16 @@ NEWSYM cachetile2b16x16 pop eax ret -.nbg dw 0 -.count db 0 -.a db 0 -.rowleft db 0 -.nextar db 0 -.tileleft db 0 +section .bss + +.nbg resw 1 +.count resb 1 +.a resb 1 +.rowleft resb 1 +.nextar resb 1 +.tileleft resb 1 + +section .text NEWSYM cache2bit16x16 ret @@ -3155,11 +3233,15 @@ NEWSYM cachetile4b16x16 pop eax ret -.nbg dw 0 -.count db 0 -.rowleft db 0 -.nextar db 0 -.tileleft db 0 +section .bss + +.nbg resw 1 +.count resb 1 +.rowleft resb 1 +.nextar resb 1 +.tileleft resb 1 + +section .text NEWSYM cache4bit16x16 ret @@ -3558,12 +3640,16 @@ NEWSYM cachetile8b16x16 pop eax ret -.nbg dw 0 -.count db 0 -.a db 0 -.rowleft db 0 -.nextar db 0 -.tileleft db 0 +section .bss + +.nbg resw 1 +.count resb 1 +.a resb 1 +.rowleft resb 1 +.nextar resb 1 +.tileleft resb 1 + +section .text NEWSYM cache8bit16x16 ret @@ -3623,8 +3709,12 @@ NEWSYM cachesingle4b NEWSYM cachesingle2b ret -NEWSYM scacheloop, db 0 -NEWSYM tiletypec, db 0 +section .bss + +NEWSYM scacheloop, resb 1 +NEWSYM tiletypec, resb 1 + +section .text %macro processcache4b3 1 xor al,al