Started moving out some ASM video code out of C files
This commit is contained in:
@@ -1 +1 @@
|
|||||||
/Fezsnesw.exe chips\dsp1proc.obj dos\sw.obj dos\gppro.obj dos\vesa12.obj dos\zsipx.obj dos\modemrtn.obj dos\joy.obj dos\debug.obj dos\vesa2.obj dos\initvid.obj cfgload.obj endmem.obj fixsin.obj init.obj ui.obj vcache.obj water.obj smoke.obj video\procvid.obj win\copyvwin.obj win\winintrf.obj win\winlink.obj win\zloaderw.obj win\ztcp.obj win\zfilew.obj win\zipxw.obj video\makev16b.obj video\makev16t.obj video\makevid.obj video\mode716.obj video\mode716b.obj video\mode716d.obj video\mode716e.obj video\mode716t.obj video\mode7.obj video\mode7ext.obj video\mv16tms.obj video\newg162.obj video\newgfx16.obj video\newgfx2.obj video\newgfx.obj video\m716text.obj video\2xsaiw.obj gui\gui.obj gui\menu.obj cpu\addrni.obj cpu\dma.obj cpu\dsp.obj cpu\dspproc.obj cpu\execute.obj cpu\irq.obj cpu\memory.obj cpu\spc700.obj cpu\stable.obj cpu\table.obj cpu\tableb.obj cpu\tablec.obj chips\dsp1emu.obj chips\fxemu2.obj chips\fxemu2b.obj chips\fxemu2c.obj chips\fxtable.obj chips\sa1proc.obj chips\sa1regs.obj chips\sfxproc.obj zip\unzip.obj zip\zzip.obj zip\zpng.obj zlib.lib libpng.lib wsock32.lib user32.lib gdi32.lib shell32.lib winmm.lib ddraw.lib dsound.lib dinput8.lib d3dx.lib /link /section:.text,erw
|
/Fezsnesw.exe chips\dsp1proc.obj dos\sw.obj dos\gppro.obj dos\vesa12.obj dos\zsipx.obj dos\modemrtn.obj dos\joy.obj dos\debug.obj dos\vesa2.obj dos\initvid.obj cfgload.obj endmem.obj fixsin.obj init.obj ui.obj vcache.obj water.obj smoke.obj video\procvid.obj win\copyvwin.obj win\winintrf.obj win\winlink.obj win\zloaderw.obj win\ztcp.obj win\zfilew.obj win\zipxw.obj video\makev16b.obj video\makev16t.obj video\makevid.obj video\mode716.obj video\mode716b.obj video\mode716d.obj video\mode716e.obj video\mode716t.obj video\mode7.obj video\mode7ext.obj video\mv16tms.obj video\newg162.obj video\newgfx16.obj video\newgfx2.obj video\newgfx.obj video\m716text.obj video\2xsaiw.obj video\sw_draw.obj gui\gui.obj gui\menu.obj cpu\addrni.obj cpu\dma.obj cpu\dsp.obj cpu\dspproc.obj cpu\execute.obj cpu\irq.obj cpu\memory.obj cpu\spc700.obj cpu\stable.obj cpu\table.obj cpu\tableb.obj cpu\tablec.obj chips\dsp1emu.obj chips\fxemu2.obj chips\fxemu2b.obj chips\fxemu2c.obj chips\fxtable.obj chips\sa1proc.obj chips\sa1regs.obj chips\sfxproc.obj zip\unzip.obj zip\zzip.obj zip\zpng.obj zlib.lib libpng.lib wsock32.lib user32.lib gdi32.lib shell32.lib winmm.lib ddraw.lib dsound.lib dinput8.lib d3dx.lib /link /section:.text,erw
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ VIDEOBJ=${VIDEODIR}/makev16b.obj ${VIDEODIR}/makev16t.obj ${VIDEODIR}/makevid.ob
|
|||||||
${VIDEODIR}/mode7ext.obj ${VIDEODIR}/mv16tms.obj ${VIDEODIR}/newg162.obj\
|
${VIDEODIR}/mode7ext.obj ${VIDEODIR}/mv16tms.obj ${VIDEODIR}/newg162.obj\
|
||||||
${VIDEODIR}/newgfx16.obj ${VIDEODIR}/newgfx2.obj ${VIDEODIR}/newgfx.obj\
|
${VIDEODIR}/newgfx16.obj ${VIDEODIR}/newgfx2.obj ${VIDEODIR}/newgfx.obj\
|
||||||
${VIDEODIR}/m716text.obj ${VIDEODIR}/2xsaiw.obj\
|
${VIDEODIR}/m716text.obj ${VIDEODIR}/2xsaiw.obj\
|
||||||
${VIDEODIR}/procvid.obj
|
${VIDEODIR}/procvid.obj ${VIDEODIR}/sw_draw.obj
|
||||||
|
|
||||||
WINOBJ=${WINDIR}/copyvwin.obj ${WINDIR}/winintrf.obj ${WINDIR}/winlink.obj\
|
WINOBJ=${WINDIR}/copyvwin.obj ${WINDIR}/winintrf.obj ${WINDIR}/winlink.obj\
|
||||||
${WINDIR}/zloaderw.obj ${WINDIR}/ztcp.obj ${WINDIR}/zipxw.obj\
|
${WINDIR}/zloaderw.obj ${WINDIR}/ztcp.obj ${WINDIR}/zipxw.obj\
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ ALIGN 32
|
|||||||
|
|
||||||
EXTSYM SurfaceX,SurfaceY
|
EXTSYM SurfaceX,SurfaceY
|
||||||
EXTSYM ScreenPtr,SurfBufD
|
EXTSYM ScreenPtr,SurfBufD
|
||||||
EXTSYM pitch, MMXSupport
|
EXTSYM pitch,MMXSupport
|
||||||
|
|
||||||
SECTION .text
|
SECTION .text
|
||||||
|
|
||||||
@@ -45,6 +45,28 @@ NEWSYM ClearWin16
|
|||||||
popad
|
popad
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
NEWSYM ClearWin32
|
||||||
|
push es
|
||||||
|
mov ax,ds
|
||||||
|
mov es,ax
|
||||||
|
xor eax,eax
|
||||||
|
mov edi, [SurfBufD]
|
||||||
|
xor ebx,ebx
|
||||||
|
.Blank3:
|
||||||
|
xor eax,eax
|
||||||
|
mov ecx, [SurfaceX]
|
||||||
|
rep stosd
|
||||||
|
add edi, [pitch]
|
||||||
|
sub edi, [SurfaceX]
|
||||||
|
sub edi, [SurfaceX]
|
||||||
|
sub edi, [SurfaceX]
|
||||||
|
sub edi, [SurfaceX]
|
||||||
|
add ebx,1
|
||||||
|
cmp ebx, [SurfaceY]
|
||||||
|
jne .Blank3
|
||||||
|
pop es
|
||||||
|
ret
|
||||||
|
|
||||||
NEWSYM DrawWin256x224x16
|
NEWSYM DrawWin256x224x16
|
||||||
pushad
|
pushad
|
||||||
mov esi, [ScreenPtr]
|
mov esi, [ScreenPtr]
|
||||||
|
|||||||
@@ -120,16 +120,17 @@ int MouseMove2X;
|
|||||||
int MouseMove2Y;
|
int MouseMove2Y;
|
||||||
BYTE MouseButtonPressed;
|
BYTE MouseButtonPressed;
|
||||||
|
|
||||||
DWORD SurfaceX=0;
|
|
||||||
DWORD SurfaceY=0;
|
|
||||||
|
|
||||||
BYTE IsActivated=1;
|
BYTE IsActivated=1;
|
||||||
|
|
||||||
BYTE AltTimer=0;
|
BYTE AltTimer=0;
|
||||||
WORD PrevRes=0;
|
WORD PrevRes=0;
|
||||||
RECT BlitArea;
|
RECT BlitArea;
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
DWORD MouseButton;
|
DWORD MouseButton;
|
||||||
|
DWORD SurfaceX=0;
|
||||||
|
DWORD SurfaceY=0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static char dinput8_dll[] = {"dinput8.dll\0"};
|
static char dinput8_dll[] = {"dinput8.dll\0"};
|
||||||
@@ -1409,7 +1410,7 @@ unsigned char Noise[]={ 27,232,234,138,187,246,176,81,25,241,1,127,154,190,195,1
|
|||||||
157,205,27,21,107,63,85,164};
|
157,205,27,21,107,63,85,164};
|
||||||
|
|
||||||
int X, Y;
|
int X, Y;
|
||||||
DWORD Temp1;
|
DWORD pitch;
|
||||||
MSG msg;
|
MSG msg;
|
||||||
DWORD SurfBufD;
|
DWORD SurfBufD;
|
||||||
int count, x,count2;
|
int count, x,count2;
|
||||||
@@ -2015,14 +2016,16 @@ extern unsigned char * WinVidMemStart;
|
|||||||
extern void copy640x480x16bwin(void);
|
extern void copy640x480x16bwin(void);
|
||||||
extern unsigned char NGNoTransp;
|
extern unsigned char NGNoTransp;
|
||||||
extern unsigned char newengen;
|
extern unsigned char newengen;
|
||||||
|
extern void ClearWin16();
|
||||||
|
extern void ClearWin32();
|
||||||
|
|
||||||
void clearwin()
|
void clearwin()
|
||||||
{
|
{
|
||||||
DWORD i,j,color32;
|
DWORD i,j,color32;
|
||||||
DWORD *SURFDW;
|
DWORD *SURFDW;
|
||||||
|
|
||||||
Temp1=LockSurface();
|
pitch=LockSurface();
|
||||||
if (Temp1==0) { return; }
|
if (pitch==0) { return; }
|
||||||
|
|
||||||
SurfBufD=(DWORD) &SurfBuf[0];
|
SurfBufD=(DWORD) &SurfBuf[0];
|
||||||
SURFDW=(DWORD *) &SurfBuf[0];
|
SURFDW=(DWORD *) &SurfBuf[0];
|
||||||
@@ -2030,48 +2033,10 @@ void clearwin()
|
|||||||
switch (BitDepth)
|
switch (BitDepth)
|
||||||
{
|
{
|
||||||
case 16:
|
case 16:
|
||||||
_asm {
|
ClearWin16();
|
||||||
push es
|
|
||||||
mov ax,ds
|
|
||||||
mov es,ax
|
|
||||||
xor eax,eax
|
|
||||||
mov edi,SurfBufD
|
|
||||||
xor ebx,ebx
|
|
||||||
Blank2:
|
|
||||||
xor eax,eax
|
|
||||||
mov ecx,SurfaceX
|
|
||||||
rep stosw
|
|
||||||
add edi,Temp1
|
|
||||||
sub edi,SurfaceX
|
|
||||||
sub edi,SurfaceX
|
|
||||||
add ebx,1
|
|
||||||
cmp ebx,SurfaceY
|
|
||||||
jne Blank2
|
|
||||||
pop es // BUGFIX
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 32:
|
case 32:
|
||||||
_asm {
|
ClearWin32();
|
||||||
push es
|
|
||||||
mov ax,ds
|
|
||||||
mov es,ax
|
|
||||||
xor eax,eax
|
|
||||||
mov edi,SurfBufD
|
|
||||||
xor ebx,ebx
|
|
||||||
Blank3:
|
|
||||||
xor eax,eax
|
|
||||||
mov ecx,SurfaceX
|
|
||||||
rep stosd
|
|
||||||
add edi,Temp1
|
|
||||||
sub edi,SurfaceX
|
|
||||||
sub edi,SurfaceX
|
|
||||||
sub edi,SurfaceX
|
|
||||||
sub edi,SurfaceX
|
|
||||||
add ebx,1
|
|
||||||
cmp ebx,SurfaceY
|
|
||||||
jne Blank3
|
|
||||||
pop es // BUGFIX
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
UnlockSurface();
|
UnlockSurface();
|
||||||
@@ -2093,7 +2058,7 @@ void drawscreenwin(void)
|
|||||||
UpdateVFrame();
|
UpdateVFrame();
|
||||||
if (curblank!=0) return;
|
if (curblank!=0) return;
|
||||||
|
|
||||||
if (!(Temp1 = LockSurface()))
|
if (!(pitch = LockSurface()))
|
||||||
{
|
{
|
||||||
DD_Primary->Restore();
|
DD_Primary->Restore();
|
||||||
DD_CFB->Restore();
|
DD_CFB->Restore();
|
||||||
@@ -2151,7 +2116,7 @@ void drawscreenwin(void)
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz CopyLoop
|
jnz CopyLoop
|
||||||
inc eax
|
inc eax
|
||||||
add edi,Temp1
|
add edi,pitch
|
||||||
sub edi,512
|
sub edi,512
|
||||||
sub esi,512
|
sub esi,512
|
||||||
add esi,576
|
add esi,576
|
||||||
@@ -2177,7 +2142,7 @@ void drawscreenwin(void)
|
|||||||
mov ecx,128
|
mov ecx,128
|
||||||
rep movsd
|
rep movsd
|
||||||
inc eax
|
inc eax
|
||||||
add edi,Temp1
|
add edi,pitch
|
||||||
sub edi,512
|
sub edi,512
|
||||||
sub esi,512
|
sub esi,512
|
||||||
add esi,576
|
add esi,576
|
||||||
@@ -2213,7 +2178,7 @@ void drawscreenwin(void)
|
|||||||
jnz CopyLoop32b
|
jnz CopyLoop32b
|
||||||
pop eax
|
pop eax
|
||||||
inc eax
|
inc eax
|
||||||
add edi,Temp1
|
add edi,pitch
|
||||||
sub edi,1024
|
sub edi,1024
|
||||||
sub esi,512
|
sub esi,512
|
||||||
add esi,576
|
add esi,576
|
||||||
@@ -2222,7 +2187,7 @@ void drawscreenwin(void)
|
|||||||
pop es
|
pop es
|
||||||
}
|
}
|
||||||
|
|
||||||
SURFDW=(DWORD *) &SurfBuf[(resolutn-1)*Temp1];
|
SURFDW=(DWORD *) &SurfBuf[(resolutn-1)*pitch];
|
||||||
color32=0x7F000000;
|
color32=0x7F000000;
|
||||||
|
|
||||||
for(i=0;i<256;i++)
|
for(i=0;i<256;i++)
|
||||||
@@ -2230,7 +2195,7 @@ void drawscreenwin(void)
|
|||||||
SURFDW[i]=color32;
|
SURFDW[i]=color32;
|
||||||
}
|
}
|
||||||
|
|
||||||
SURFDW=(DWORD *) &SurfBuf[resolutn*Temp1];
|
SURFDW=(DWORD *) &SurfBuf[resolutn*pitch];
|
||||||
color32=0x7F000000;
|
color32=0x7F000000;
|
||||||
|
|
||||||
for(i=0;i<256;i++)
|
for(i=0;i<256;i++)
|
||||||
@@ -2277,7 +2242,7 @@ void drawscreenwin(void)
|
|||||||
mov ecx,160
|
mov ecx,160
|
||||||
rep stosd
|
rep stosd
|
||||||
sub edi,640
|
sub edi,640
|
||||||
add edi,Temp1
|
add edi,pitch
|
||||||
add ebx,1
|
add ebx,1
|
||||||
cmp ebx,8
|
cmp ebx,8
|
||||||
jne Blank1MMX
|
jne Blank1MMX
|
||||||
@@ -2309,7 +2274,7 @@ void drawscreenwin(void)
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz MMXLoopC
|
jnz MMXLoopC
|
||||||
inc ebx
|
inc ebx
|
||||||
add edi,Temp1
|
add edi,pitch
|
||||||
sub edi,640
|
sub edi,640
|
||||||
sub esi,512
|
sub esi,512
|
||||||
add esi,576
|
add esi,576
|
||||||
@@ -2337,7 +2302,7 @@ void drawscreenwin(void)
|
|||||||
mov ecx,160
|
mov ecx,160
|
||||||
rep stosd
|
rep stosd
|
||||||
sub edi,640
|
sub edi,640
|
||||||
add edi,Temp1
|
add edi,pitch
|
||||||
add ebx,1
|
add ebx,1
|
||||||
cmp ebx,8
|
cmp ebx,8
|
||||||
jne Blank1
|
jne Blank1
|
||||||
@@ -2352,7 +2317,7 @@ void drawscreenwin(void)
|
|||||||
mov ecx,16
|
mov ecx,16
|
||||||
rep stosd
|
rep stosd
|
||||||
inc ebx
|
inc ebx
|
||||||
add edi,Temp1
|
add edi,pitch
|
||||||
sub edi,640
|
sub edi,640
|
||||||
sub esi,512
|
sub esi,512
|
||||||
add esi,576
|
add esi,576
|
||||||
@@ -2368,7 +2333,7 @@ void drawscreenwin(void)
|
|||||||
case 32:
|
case 32:
|
||||||
for(j=0;j<8;j++)
|
for(j=0;j<8;j++)
|
||||||
{
|
{
|
||||||
SURFDW=(DWORD *) &SurfBuf[j*Temp1];
|
SURFDW=(DWORD *) &SurfBuf[j*pitch];
|
||||||
color32=0x7F000000;
|
color32=0x7F000000;
|
||||||
|
|
||||||
for(i=0;i<320;i++)
|
for(i=0;i<320;i++)
|
||||||
@@ -2401,12 +2366,12 @@ void drawscreenwin(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
ScreenPtr=ScreenPtr+576-512;
|
ScreenPtr=ScreenPtr+576-512;
|
||||||
SURFDW=(DWORD *) &SurfBuf[(j)*Temp1];
|
SURFDW=(DWORD *) &SurfBuf[(j)*pitch];
|
||||||
}
|
}
|
||||||
|
|
||||||
for(j=((resolutn-1)+8);j<240;j++)
|
for(j=((resolutn-1)+8);j<240;j++)
|
||||||
{
|
{
|
||||||
SURFDW=(DWORD *) &SurfBuf[j*Temp1];
|
SURFDW=(DWORD *) &SurfBuf[j*pitch];
|
||||||
|
|
||||||
color32=0x7F000000;
|
color32=0x7F000000;
|
||||||
for(i=0;i<320;i++)
|
for(i=0;i<320;i++)
|
||||||
@@ -2431,8 +2396,8 @@ void drawscreenwin(void)
|
|||||||
switch (BitDepth)
|
switch (BitDepth)
|
||||||
{
|
{
|
||||||
case 16:
|
case 16:
|
||||||
AddEndBytes=Temp1-1024;
|
AddEndBytes=pitch-1024;
|
||||||
NumBytesPerLine=Temp1;
|
NumBytesPerLine=pitch;
|
||||||
WinVidMemStart=&SurfBuf[0];
|
WinVidMemStart=&SurfBuf[0];
|
||||||
_asm
|
_asm
|
||||||
{
|
{
|
||||||
@@ -2456,8 +2421,8 @@ void drawscreenwin(void)
|
|||||||
switch (BitDepth)
|
switch (BitDepth)
|
||||||
{
|
{
|
||||||
case 16:
|
case 16:
|
||||||
AddEndBytes=Temp1-1024;
|
AddEndBytes=pitch-1024;
|
||||||
NumBytesPerLine=Temp1;
|
NumBytesPerLine=pitch;
|
||||||
WinVidMemStart=&SurfBuf[16*640*2+64*2];
|
WinVidMemStart=&SurfBuf[16*640*2+64*2];
|
||||||
_asm
|
_asm
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user