A lot of updates
This commit is contained in:
@@ -55,7 +55,7 @@ WINDOSOBJ=${DOSDIR}/debug.o ${DOSDIR}/joy.o ${DOSDIR}/modemrtn.o ${DOSDIR}/vesa2
|
|||||||
|
|
||||||
ZIPOBJ=${ZIPDIR}/zzip.o ${ZIPDIR}/unzip.o ${ZIPDIR}/zpng.o
|
ZIPOBJ=${ZIPDIR}/zzip.o ${ZIPDIR}/unzip.o ${ZIPDIR}/zpng.o
|
||||||
|
|
||||||
MAINOBJ=cfgload.o endmem.o fixsin.o init.o ui.o vcache.o water.o smoke.o
|
MAINOBJ=cfgload.o endmem.o fixsin.o init.o ui.o vcache.o water.o smoke.o burn.o
|
||||||
|
|
||||||
OBJS=${CHIPSOBJ} ${CPUOBJ} ${WINOBJ} ${WINDOSOBJ} ${GUIOBJ} ${VIDEOBJ} ${ZIPOBJ} ${MAINOBJ}
|
OBJS=${CHIPSOBJ} ${CPUOBJ} ${WINOBJ} ${WINDOSOBJ} ${GUIOBJ} ${VIDEOBJ} ${ZIPOBJ} ${MAINOBJ}
|
||||||
|
|
||||||
@@ -78,6 +78,7 @@ ${ZIPDIR}/zzip.o: ${ZIPDIR}/zzip.c ${ZIPDIR}/zunzip.h
|
|||||||
fixsin.o: fixsin.c
|
fixsin.o: fixsin.c
|
||||||
water.o: water.c
|
water.o: water.c
|
||||||
smoke.o: smoke.c
|
smoke.o: smoke.c
|
||||||
|
burn.o: burn.c
|
||||||
${VIDEODIR}/procvid.o: ${VIDEODIR}/procvid.asm macros.mac ${VIDEODIR}/copyvid.inc ${VIDEODIR}/2xsaimmx.inc
|
${VIDEODIR}/procvid.o: ${VIDEODIR}/procvid.asm macros.mac ${VIDEODIR}/copyvid.inc ${VIDEODIR}/2xsaimmx.inc
|
||||||
${CHIPDIR}/dsp1proc.o: ${CHIPDIR}/dsp1proc.asm macros.mac
|
${CHIPDIR}/dsp1proc.o: ${CHIPDIR}/dsp1proc.asm macros.mac
|
||||||
${CHIPDIR}/sa1regs.o: ${CHIPDIR}/sa1regs.asm macros.mac\
|
${CHIPDIR}/sa1regs.o: ${CHIPDIR}/sa1regs.asm macros.mac\
|
||||||
|
|||||||
302
zsnes/src/burn.c
Normal file
302
zsnes/src/burn.c
Normal file
@@ -0,0 +1,302 @@
|
|||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <math.h>
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
|
#ifndef M_PI
|
||||||
|
#ifndef PI
|
||||||
|
#define M_PI 3.1415926535897932384626433832795
|
||||||
|
#else
|
||||||
|
#define M_PI PI
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
Hi guys, try this, use it in your code, but please credit
|
||||||
|
|
||||||
|
Frank Jan Sorensen Alias:Frank Patxi (fjs@lab.jt.dk) for the
|
||||||
|
fireroutine.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
Hi again, guys!
|
||||||
|
|
||||||
|
If you use this code, please also credit me, Joachim Fenkes, 'cause I added
|
||||||
|
the following speedups:
|
||||||
|
|
||||||
|
-Replaced one tiny loop with a faster Move(...) (not much speedup)
|
||||||
|
-Wrote the main display loop in 100% assembler, including a faster random
|
||||||
|
number generator (the RNG is only a more or less optimized version of
|
||||||
|
Borland's generator (see MEGARAND.ASM), but with the advantage of the
|
||||||
|
ultimate crash if you call it normally :-)
|
||||||
|
-Changed version number into 1.10 (this isn't a speedup, but necessary :-)
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
Bcoz of the knowledge that reading from videocards is much slower than
|
||||||
|
writing to them, I changed some things to write and read from/to a pointer
|
||||||
|
and put the result with 32-Bit moves to the screen
|
||||||
|
|
||||||
|
Also I added now a much more faster randommer.
|
||||||
|
|
||||||
|
The result of this change is more than 3 times fast than before
|
||||||
|
Stefan Goehler
|
||||||
|
Please credit me!
|
||||||
|
...
|
||||||
|
to JF: your bug is fixed!
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
Oops, silly me, I removed all of the assembly code, so I can let the compiler
|
||||||
|
have at it. Also makes it more portable... even though I am doing this to add
|
||||||
|
to a project that is very non-portable.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define BUF_WIDTH 288
|
||||||
|
#define BUF_HEIGHT 224
|
||||||
|
|
||||||
|
const int rootrand = 20; /* Max/Min decrease of the root of the flames */
|
||||||
|
const int decay = 5; /* How far should the flames go up on the screen? */
|
||||||
|
/* This MUST be positive - JF */
|
||||||
|
const int miny = 0; /* Startingline of the flame routine.
|
||||||
|
(should be adjusted along with MinY above) */
|
||||||
|
const int smooth = 1; /* How descrete can the flames be?*/
|
||||||
|
const int minfire = 50; /* limit between the "starting to burn" and
|
||||||
|
the "is burning" routines */
|
||||||
|
const int xstart = 0; /* Startingpos on the screen, should be divideable by 4 without remain!*/
|
||||||
|
const int xend = 287; /* Guess! */
|
||||||
|
const int width = 1 + 287; /* +xend-xstart; Well- */
|
||||||
|
const int maxcolor = 110; /* Constant for the MakePal procedure */
|
||||||
|
const int fireincrease = 3; /*3 = Wood, 90 = Gazolin*/
|
||||||
|
|
||||||
|
typedef struct colorvalue
|
||||||
|
{
|
||||||
|
unsigned char r, g, b;
|
||||||
|
} colorvalue;
|
||||||
|
typedef colorvalue vgapalettetype[256];
|
||||||
|
|
||||||
|
void hsi2rgb(double h, double s, double i, struct colorvalue *c)
|
||||||
|
/*Convert (Hue, Saturation, Intensity) -> (RGB)*/
|
||||||
|
{
|
||||||
|
double t;
|
||||||
|
double rv, gv, bv;
|
||||||
|
|
||||||
|
t = h;
|
||||||
|
rv = 1 + s * sin(t - 2 * M_PI / 3);
|
||||||
|
gv = 1 + s * sin(t);
|
||||||
|
bv = 1 + s * sin(t + 2 * M_PI / 3);
|
||||||
|
t = 255.999 * i / 2;
|
||||||
|
{
|
||||||
|
c->r = floor(rv * t);
|
||||||
|
c->g = floor(gv * t);
|
||||||
|
c->b = floor(bv * t);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void genpal()
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
vgapalettetype pal;
|
||||||
|
|
||||||
|
memset(pal, 0, 3);
|
||||||
|
for( i=1; i <= maxcolor; i ++)
|
||||||
|
hsi2rgb(4.6-1.5*i/maxcolor,(double)(i)/maxcolor,(double)(i)/maxcolor,&pal[i]);
|
||||||
|
for( i=maxcolor; i <= 255; i ++)
|
||||||
|
{
|
||||||
|
pal[i]=pal[i-1];
|
||||||
|
{
|
||||||
|
struct colorvalue *with = &pal[i];
|
||||||
|
|
||||||
|
if (with->r<255) with->r += 1;
|
||||||
|
if (with->r<255) with->r += 1;
|
||||||
|
if ((~i & 1) && (with->g<215)) with->g += 1;
|
||||||
|
if ((~i & 1) && (with->b<255)) with->b += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int started = 0;
|
||||||
|
|
||||||
|
#if 0 // emulating Turbo Pascal
|
||||||
|
|
||||||
|
unsigned int randseed;
|
||||||
|
const unsigned modulus = 2147483647;
|
||||||
|
const unsigned factor = 397204094;
|
||||||
|
|
||||||
|
void Randomize()
|
||||||
|
{
|
||||||
|
randseed = time(NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned int randint(unsigned range)
|
||||||
|
{
|
||||||
|
randseed = randseed * factor % modulus;
|
||||||
|
return range ? randseed % range : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
double randreal()
|
||||||
|
{
|
||||||
|
randseed = randseed * factor % modulus;
|
||||||
|
return (double)randseed / modulus;
|
||||||
|
}
|
||||||
|
|
||||||
|
int rand1(int r) /* Return a random number between -R And R*/
|
||||||
|
{
|
||||||
|
int result;
|
||||||
|
result=randint(r*2+1)-r;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
#define Randomize()
|
||||||
|
#define randint(a) (rand() % (a))
|
||||||
|
#define randreal() (((double)rand()) / ((double)RAND_MAX))
|
||||||
|
#define rand1(a) ((randint(a*2+1))-a)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
unsigned char flamearray[BUF_WIDTH];
|
||||||
|
int morefire;
|
||||||
|
extern unsigned char *vidbuffer;
|
||||||
|
|
||||||
|
/* damn, this seems like such a waste */
|
||||||
|
static unsigned char pt[BUF_WIDTH * BUF_HEIGHT];
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
|
||||||
|
int burn_init()
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
if (flamearray) return 1;
|
||||||
|
|
||||||
|
flamearray = (unsigned char *) malloc(BUF_WIDTH);
|
||||||
|
|
||||||
|
for( i=xstart; i <= xend; i++)
|
||||||
|
flamearray[i]=0;
|
||||||
|
|
||||||
|
Randomize();
|
||||||
|
|
||||||
|
morefire=1;
|
||||||
|
genpal();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void burn_shutdown()
|
||||||
|
{
|
||||||
|
if (flamearray)
|
||||||
|
{
|
||||||
|
free(flamearray);
|
||||||
|
flamearray = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void DrawBurn()
|
||||||
|
{
|
||||||
|
int i,j;
|
||||||
|
int x,p;
|
||||||
|
int v;
|
||||||
|
|
||||||
|
if (!started)
|
||||||
|
{
|
||||||
|
started = 1;
|
||||||
|
|
||||||
|
for( i=xstart; i <= xend; i++)
|
||||||
|
flamearray[i]=0;
|
||||||
|
|
||||||
|
Randomize();
|
||||||
|
|
||||||
|
morefire=1;
|
||||||
|
|
||||||
|
memset(pt, 0, BUF_HEIGHT * BUF_WIDTH);
|
||||||
|
/* genpal(); */
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
for (x=0; x < BUF_WIDTH*BUF_HEIGHT; x++)
|
||||||
|
{
|
||||||
|
i = pt[x];
|
||||||
|
j = vidbuffer[x] << 2;
|
||||||
|
|
||||||
|
if (i > j) pt[x] = i;
|
||||||
|
else pt[x] = (i + j) >> 1;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Put the values from FlameArray on the bottom line of the screen */
|
||||||
|
memcpy(pt+((BUF_HEIGHT-1)*BUF_WIDTH)+xstart,flamearray, width);
|
||||||
|
|
||||||
|
/* This loop makes the actual flames */
|
||||||
|
|
||||||
|
for( i=xstart; i <= xend; i++)
|
||||||
|
for( j=miny; j <= (BUF_HEIGHT-1); j ++)
|
||||||
|
{
|
||||||
|
v = pt[j*BUF_WIDTH + i];
|
||||||
|
if ((v==0) ||
|
||||||
|
(v<decay) ||
|
||||||
|
(i<=xstart) ||
|
||||||
|
(i>=xend))
|
||||||
|
pt[(j-1)*BUF_WIDTH + i] = 0;
|
||||||
|
else
|
||||||
|
pt[((j-1)*BUF_WIDTH) + (i-(randint(3)-1))] = v - randint(decay);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Match?*/
|
||||||
|
if (randint(150)==0)
|
||||||
|
memset(flamearray + xstart + randint(xend-xstart-5),255,5);
|
||||||
|
|
||||||
|
/*This loop controls the "root" of the
|
||||||
|
flames ie. the values in FlameArray.*/
|
||||||
|
for( i=xstart; i <= xend; i++)
|
||||||
|
{
|
||||||
|
x=flamearray[i];
|
||||||
|
|
||||||
|
if (x<minfire) /* Increase by the "burnability"*/
|
||||||
|
{
|
||||||
|
/*Starting to burn:*/
|
||||||
|
if (x>10) x += randint(fireincrease);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
/* Otherwise randomize and increase by intensity (is burning)*/
|
||||||
|
x += rand1(rootrand)+morefire;
|
||||||
|
if (x>255) x=255; /* X Too large ?*/
|
||||||
|
flamearray[i]=x;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Pour a little water on both sides of
|
||||||
|
the fire to make it look nice on the sides*/
|
||||||
|
/*
|
||||||
|
for( i=1; i <= width / 8; i ++)
|
||||||
|
{
|
||||||
|
x=floor(sqrt(randreal())*width/8);
|
||||||
|
flamearray[xstart+x]=0;
|
||||||
|
flamearray[xend-x]=0;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*Smoothen the values of FrameArray to avoid "descrete" flames*/
|
||||||
|
p=0;
|
||||||
|
for( i=xstart+smooth; i <= xend-smooth; i++)
|
||||||
|
{
|
||||||
|
x=0;
|
||||||
|
for( j=-smooth; j <= smooth; j++) x += flamearray[i+j];
|
||||||
|
flamearray[i] = x / ((smooth << 1) + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (x=0; x < BUF_WIDTH*BUF_HEIGHT; x++)
|
||||||
|
{
|
||||||
|
i = vidbuffer[x];
|
||||||
|
j = pt[x] >> 3;
|
||||||
|
|
||||||
|
if (j > i) vidbuffer[x] = j;
|
||||||
|
else vidbuffer[x] = ((i + j) >> 1) + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ EXTSYM BRRPlace0,BRRPlace1,BRRPlace2,BRRPlace3,BRRPlace4,BRRPlace5,BRRPlace6
|
|||||||
EXTSYM BRRPlace7,Decrease,DecreaseRateExp,EchoFB,EchoRate,EchoVL,EchoVR
|
EXTSYM BRRPlace7,Decrease,DecreaseRateExp,EchoFB,EchoRate,EchoVL,EchoVR
|
||||||
EXTSYM FIRTAPVal0,FIRTAPVal1,FIRTAPVal2,FIRTAPVal3,FIRTAPVal4,FIRTAPVal5
|
EXTSYM FIRTAPVal0,FIRTAPVal1,FIRTAPVal2,FIRTAPVal3,FIRTAPVal4,FIRTAPVal5
|
||||||
EXTSYM FIRTAPVal6,FIRTAPVal7,GlobalVL,GlobalVR,Increase,IncreaseBent
|
EXTSYM FIRTAPVal6,FIRTAPVal7,GlobalVL,GlobalVR,Increase,IncreaseBent
|
||||||
EXTSYM MaxEcho,MusicVol,NoiseInc,NoiseSpeeds,SBToSPC,Voice0End,Voice0EnvInc
|
EXTSYM MaxEcho,MusicVol,NoiseInc,NoiseSpeeds,dspPAdj,Voice0End,Voice0EnvInc
|
||||||
EXTSYM Voice0IncNumber,Voice0Loop,Voice0Noise,Voice0Prev0,Voice0Prev1
|
EXTSYM Voice0IncNumber,Voice0Loop,Voice0Noise,Voice0Prev0,Voice0Prev1
|
||||||
EXTSYM Voice0Start,Voice0State,Voice0Status,Voice0Time,Voice1End,Voice1Noise
|
EXTSYM Voice0Start,Voice0State,Voice0Status,Voice0Time,Voice1End,Voice1Noise
|
||||||
EXTSYM Voice1Prev0,Voice1Prev1,Voice1Start,Voice2End,Voice2Noise,Voice2Prev0
|
EXTSYM Voice1Prev0,Voice1Prev1,Voice1Start,Voice2End,Voice2Noise,Voice2Prev0
|
||||||
@@ -47,7 +47,9 @@ NEWSYM DspAsmStart
|
|||||||
|
|
||||||
;none times 256 db 0
|
;none times 256 db 0
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
identcode db 255,1,78,78
|
identcode db 255,1,78,78
|
||||||
|
SECTION .text
|
||||||
;sardcode db 234,76,80,128,65,65 ; 6
|
;sardcode db 234,76,80,128,65,65 ; 6
|
||||||
;efxcode db 17,47,62,97,26,126,98 ; 7
|
;efxcode db 17,47,62,97,26,126,98 ; 7
|
||||||
;zopcode db 54,39,21,0,0,8,14,12,18 ; 9
|
;zopcode db 54,39,21,0,0,8,14,12,18 ; 9
|
||||||
@@ -67,9 +69,10 @@ identcode db 255,1,78,78
|
|||||||
mov [DSPMem+00h+%1],al
|
mov [DSPMem+00h+%1],al
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
ALIGN32
|
SECTION .bss ;ALIGN=32
|
||||||
|
alignb 32
|
||||||
NEWSYM DSPMem, times 256 db 0
|
NEWSYM DSPMem, resb 256
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
;Read DSP Registers functions
|
;Read DSP Registers functions
|
||||||
|
|
||||||
@@ -1114,7 +1117,7 @@ NEWSYM RDSPRegFF ;
|
|||||||
test byte [DSPMem+07h+%1*10h],40h
|
test byte [DSPMem+07h+%1*10h],40h
|
||||||
jnz near %%Increase
|
jnz near %%Increase
|
||||||
test byte [DSPMem+07h+%1*10h],20h
|
test byte [DSPMem+07h+%1*10h],20h
|
||||||
jz near %%LinearDec
|
jz %%LinearDec
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov al,[DSPMem+07h+%1*10h]
|
mov al,[DSPMem+07h+%1*10h]
|
||||||
and al,1Fh
|
and al,1Fh
|
||||||
@@ -1216,7 +1219,7 @@ NEWSYM RDSPRegFF ;
|
|||||||
test byte [DSPMem+07h+%1*10h],40h
|
test byte [DSPMem+07h+%1*10h],40h
|
||||||
jnz near %%Increase
|
jnz near %%Increase
|
||||||
test byte [DSPMem+07h+%1*10h],20h
|
test byte [DSPMem+07h+%1*10h],20h
|
||||||
jz near %%LinearDec
|
jz %%LinearDec
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov al,[DSPMem+07h+%1*10h]
|
mov al,[DSPMem+07h+%1*10h]
|
||||||
and al,1Fh
|
and al,1Fh
|
||||||
@@ -1524,11 +1527,11 @@ NEWSYM RDSPRegFF ;
|
|||||||
|
|
||||||
%macro VoiceGain 1
|
%macro VoiceGain 1
|
||||||
test byte[MuteVoiceF],1 << %1
|
test byte[MuteVoiceF],1 << %1
|
||||||
jnz near .nogain
|
jnz .nogain
|
||||||
cmp byte[Voice0State+%1],200
|
cmp byte[Voice0State+%1],200
|
||||||
je near .nogain
|
je .nogain
|
||||||
cmp [DSPMem+07h+%1*10h],al
|
cmp [DSPMem+07h+%1*10h],al
|
||||||
je near .nogain
|
je .nogain
|
||||||
mov [DSPMem+07h+%1*10h],al
|
mov [DSPMem+07h+%1*10h],al
|
||||||
cmp byte[Voice0Status+%1],1
|
cmp byte[Voice0Status+%1],1
|
||||||
jne .nogain
|
jne .nogain
|
||||||
@@ -1550,7 +1553,9 @@ NEWSYM RDSPRegFF ;
|
|||||||
ProcessGain2 %1
|
ProcessGain2 %1
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
NEWSYM ADSRGAINSwitch, db 0
|
SECTION .bss
|
||||||
|
NEWSYM ADSRGAINSwitch, resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
;Write DSP Registers functions
|
;Write DSP Registers functions
|
||||||
|
|
||||||
@@ -1584,7 +1589,9 @@ NEWSYM WDSPReg04 ; Voice 0 SCRN
|
|||||||
mov [DSPMem+04h],al
|
mov [DSPMem+04h],al
|
||||||
ret
|
ret
|
||||||
|
|
||||||
NEWSYM TempValueSnd, db 0
|
SECTION .bss
|
||||||
|
NEWSYM TempValueSnd, resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM WDSPReg05 ; Voice 0 ADSR (1)
|
NEWSYM WDSPReg05 ; Voice 0 ADSR (1)
|
||||||
inc byte[TempValueSnd]
|
inc byte[TempValueSnd]
|
||||||
@@ -2231,7 +2238,9 @@ NEWSYM WDSPReg6B ; Voice 6
|
|||||||
mov [DSPMem+06Bh],al
|
mov [DSPMem+06Bh],al
|
||||||
ret
|
ret
|
||||||
|
|
||||||
spcres db 0
|
SECTION .bss
|
||||||
|
spcres resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM WDSPReg6C ; Voice 6
|
NEWSYM WDSPReg6C ; Voice 6
|
||||||
mov [DSPMem+06Ch],al
|
mov [DSPMem+06Ch],al
|
||||||
@@ -2258,10 +2267,8 @@ NEWSYM WDSPReg6C ; Voice 6
|
|||||||
and eax,1Fh
|
and eax,1Fh
|
||||||
xor edx,edx
|
xor edx,edx
|
||||||
mov eax,[NoiseSpeeds+eax*4]
|
mov eax,[NoiseSpeeds+eax*4]
|
||||||
mov ebx,[SBToSPC]
|
Mul dword [dspPAdj]
|
||||||
shl eax,16
|
ShrD EAX, EDX, 17
|
||||||
div ebx
|
|
||||||
shl eax,2
|
|
||||||
mov [NoiseInc],eax
|
mov [NoiseInc],eax
|
||||||
pop edx
|
pop edx
|
||||||
pop ecx
|
pop ecx
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -28,8 +28,8 @@ EXTSYM Op08X,Op18X,Op28X,Op0CA,Op02FX,Op0AVS,Op06X,Op0DX,Op03F,Op14Zr
|
|||||||
EXTSYM Op0EH,DSP1Type,Op01m
|
EXTSYM Op0EH,DSP1Type,Op01m
|
||||||
EXTSYM Voice0Status
|
EXTSYM Voice0Status
|
||||||
EXTSYM UpdateDPage
|
EXTSYM UpdateDPage
|
||||||
EXTSYM Interror,MessageOn,MsgCount,Msgptr,StartGUI,cbitmode,debuggeron,romdata
|
EXTSYM MessageOn,MsgCount,Msgptr,StartGUI,cbitmode,debuggeron,romdata
|
||||||
EXTSYM frameskip,initvideo,newgfx16b,oldhandSBo,oldhandSBs,soundon,cvidmode
|
EXTSYM frameskip,initvideo,newgfx16b,soundon,cvidmode
|
||||||
EXTSYM vidbuffer,vidbufferofsa,vidbufferofsb,disable65816sh,GUISaveVars,virqnodisable
|
EXTSYM vidbuffer,vidbufferofsa,vidbufferofsb,disable65816sh,GUISaveVars,virqnodisable
|
||||||
EXTSYM KeySaveState,KeyLoadState,KeyQuickExit,KeyQuickLoad,KeyQuickRst,GUIDoReset
|
EXTSYM KeySaveState,KeyLoadState,KeyQuickExit,KeyQuickLoad,KeyQuickRst,GUIDoReset
|
||||||
EXTSYM KeyOnStA,KeyOnStB,ProcessKeyOn,printnum,sramsavedis,DSPDisable,C4Enable
|
EXTSYM KeyOnStA,KeyOnStB,ProcessKeyOn,printnum,sramsavedis,DSPDisable,C4Enable
|
||||||
@@ -39,8 +39,8 @@ EXTSYM csounddisable,videotroub,Open_File,Close_File,Read_File,ResetTripleBuf
|
|||||||
EXTSYM Write_File,Output_Text,Create_File,Check_Key,Get_Key,Change_Dir,InitPreGame
|
EXTSYM Write_File,Output_Text,Create_File,Check_Key,Get_Key,Change_Dir,InitPreGame
|
||||||
;EXTSYM OSPort
|
;EXTSYM OSPort
|
||||||
; EXTSYM tempblah,romdata
|
; EXTSYM tempblah,romdata
|
||||||
EXTSYM Curtableaddr,DeInitSPC,InitSB,PICMaskP,SBHandler,SBInt
|
EXTSYM Curtableaddr
|
||||||
EXTSYM SBIrq,curcyc,debugdisble,dmadata,guioff,memtabler8,SetupPreGame
|
EXTSYM curcyc,debugdisble,dmadata,guioff,memtabler8,SetupPreGame
|
||||||
EXTSYM memtablew8,regaccessbankr8,showmenu,snesmap2,snesmmap,DeInitPostGame
|
EXTSYM memtablew8,regaccessbankr8,showmenu,snesmap2,snesmmap,DeInitPostGame
|
||||||
EXTSYM spcPCRam,startdebugger,xp,xpb,xpc,tablead,tableadb,tableadc
|
EXTSYM spcPCRam,startdebugger,xp,xpb,xpc,tablead,tableadb,tableadc
|
||||||
; EXTSYM oamram
|
; EXTSYM oamram
|
||||||
@@ -53,8 +53,10 @@ EXTSYM OSExit,DosExit,InitDir,InitDrive,createnewcfg,fnames,gotoroot,previdmode
|
|||||||
EXTSYM ramsize,sfxramdata,sram,SRAMDrive,SRAMDir,welcome
|
EXTSYM ramsize,sfxramdata,sram,SRAMDrive,SRAMDir,welcome
|
||||||
; EXTSYM tempstore
|
; EXTSYM tempstore
|
||||||
EXTSYM printhex
|
EXTSYM printhex
|
||||||
|
%ifdef __MSDOS__
|
||||||
EXTSYM ModemInitStat, DeInitModem
|
EXTSYM ModemInitStat, DeInitModem
|
||||||
EXTSYM deinitipx
|
EXTSYM deinitipx
|
||||||
|
%endif
|
||||||
EXTSYM deinitvideo
|
EXTSYM deinitvideo
|
||||||
EXTSYM BRRBuffer,DSPMem,PrepareSaveState,ResetState,SFXEnable,PHdspsave
|
EXTSYM BRRBuffer,DSPMem,PrepareSaveState,ResetState,SFXEnable,PHdspsave
|
||||||
EXTSYM fnamest,sndrot,spcRam,spcRamDP,tableA,unpackfunct,vram,wramdata
|
EXTSYM fnamest,sndrot,spcRam,spcRamDP,tableA,unpackfunct,vram,wramdata
|
||||||
@@ -67,11 +69,10 @@ EXTSYM CapturePicture,PrevPicture,NoPictureSave
|
|||||||
EXTSYM BRRPlace0,SfxCPB,SfxCROM,SfxLastRamAdr,SfxMemTable,Totalbyteloaded
|
EXTSYM BRRPlace0,SfxCPB,SfxCROM,SfxLastRamAdr,SfxMemTable,Totalbyteloaded
|
||||||
EXTSYM SfxRAMBR,SfxRAMMem,SfxROMBR,SfxRomBuffer,Voice0Freq
|
EXTSYM SfxRAMBR,SfxRAMMem,SfxROMBR,SfxRomBuffer,Voice0Freq
|
||||||
EXTSYM cycpbl,cycpbl2,cycpblt,cycpblt2,irqon,nexthdma
|
EXTSYM cycpbl,cycpbl2,cycpblt,cycpblt2,irqon,nexthdma
|
||||||
EXTSYM repackfunct,spcnumread,spcon,versn,headerhack,initpitch
|
EXTSYM repackfunct,spcnumread,spchalted,spcon,versn,headerhack,initpitch
|
||||||
EXTSYM SPCMultA,PHnum2writespc7110reg
|
EXTSYM SPCMultA,PHnum2writespc7110reg
|
||||||
EXTSYM multchange,procexecloop,vidmemch2
|
EXTSYM multchange,procexecloop,vidmemch2
|
||||||
EXTSYM romispal
|
EXTSYM romispal
|
||||||
EXTSYM dssel
|
|
||||||
EXTSYM scrndis,sprlefttot,sprleftpr,processsprites,cachesprites
|
EXTSYM scrndis,sprlefttot,sprleftpr,processsprites,cachesprites
|
||||||
EXTSYM NextLineStart,FlipWait,LastLineStart
|
EXTSYM NextLineStart,FlipWait,LastLineStart
|
||||||
EXTSYM opcjmptab
|
EXTSYM opcjmptab
|
||||||
@@ -118,6 +119,14 @@ EXTSYM ReadSPC7110log,WriteSPC7110log
|
|||||||
EXTSYM NetPlayNoMore
|
EXTSYM NetPlayNoMore
|
||||||
EXTSYM statefileloc
|
EXTSYM statefileloc
|
||||||
|
|
||||||
|
%ifdef OPENSPC
|
||||||
|
EXTSYM OSPC_Run, ospc_cycle_frac
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
EXTSYM dssel
|
||||||
|
%endif
|
||||||
|
|
||||||
NEWSYM ExecuteAsmStart
|
NEWSYM ExecuteAsmStart
|
||||||
|
|
||||||
%macro BackupCVMacM 2
|
%macro BackupCVMacM 2
|
||||||
@@ -130,7 +139,8 @@ NEWSYM ExecuteAsmStart
|
|||||||
movq [ebx+8],mm1
|
movq [ebx+8],mm1
|
||||||
add edx,16
|
add edx,16
|
||||||
add ebx,16
|
add ebx,16
|
||||||
loop %%loop
|
dec ecx
|
||||||
|
jnz %%loop
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
%macro BackupCVMac 2
|
%macro BackupCVMac 2
|
||||||
@@ -141,7 +151,8 @@ NEWSYM ExecuteAsmStart
|
|||||||
mov [ebx],eax
|
mov [ebx],eax
|
||||||
add edx,4
|
add edx,4
|
||||||
add ebx,4
|
add ebx,4
|
||||||
loop %%loop
|
dec ecx
|
||||||
|
jnz %%loop
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
%macro BackupCVMacB 2
|
%macro BackupCVMacB 2
|
||||||
@@ -152,7 +163,8 @@ NEWSYM ExecuteAsmStart
|
|||||||
mov [ebx],al
|
mov [ebx],al
|
||||||
inc edx
|
inc edx
|
||||||
inc ebx
|
inc ebx
|
||||||
loop %%loop
|
dec ecx
|
||||||
|
jnz %%loop
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
%macro BackupCVRMacM 2
|
%macro BackupCVRMacM 2
|
||||||
@@ -165,7 +177,8 @@ NEWSYM ExecuteAsmStart
|
|||||||
movq [edx+8],mm1
|
movq [edx+8],mm1
|
||||||
add edx,16
|
add edx,16
|
||||||
add ebx,16
|
add ebx,16
|
||||||
loop %%loop
|
dec ecx
|
||||||
|
jnz %%loop
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
%macro BackupCVRMac 2
|
%macro BackupCVRMac 2
|
||||||
@@ -176,7 +189,8 @@ NEWSYM ExecuteAsmStart
|
|||||||
mov [edx],eax
|
mov [edx],eax
|
||||||
add edx,4
|
add edx,4
|
||||||
add ebx,4
|
add ebx,4
|
||||||
loop %%loop
|
dec ecx
|
||||||
|
jnz %%loop
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
%macro BackupCVRMacB 2
|
%macro BackupCVRMacB 2
|
||||||
@@ -187,46 +201,57 @@ NEWSYM ExecuteAsmStart
|
|||||||
mov [edx],al
|
mov [edx],al
|
||||||
inc edx
|
inc edx
|
||||||
inc ebx
|
inc ebx
|
||||||
loop %%loop
|
dec ecx
|
||||||
|
jnz %%loop
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
NEWSYM CBackupPos, dd 0
|
SECTION .bss
|
||||||
NEWSYM StateBackup, dd 0
|
NEWSYM CBackupPos, resd 1
|
||||||
NEWSYM PBackupPos, dd 0
|
NEWSYM StateBackup, resd 1
|
||||||
NEWSYM PPValue, dd 0 ; Previous PValue
|
NEWSYM PBackupPos, resd 1
|
||||||
NEWSYM DPValue, dd 0 ; Destination PValue
|
NEWSYM PPValue, resd 1 ; Previous PValue
|
||||||
NEWSYM CurRecv, dd 0 ; Set to 1 if Recovery mode is on
|
NEWSYM DPValue, resd 1 ; Destination PValue
|
||||||
|
NEWSYM CurRecv, resd 1 ; Set to 1 if Recovery mode is on
|
||||||
; if CurRecv=1, then do not send tcp/ip data, always frame skip, do not
|
; if CurRecv=1, then do not send tcp/ip data, always frame skip, do not
|
||||||
; draw to screen, do not key on, restore previous local key presses,
|
; draw to screen, do not key on, restore previous local key presses,
|
||||||
; when disabling key ons, divert dspmem write/read to a different
|
; when disabling key ons, divert dspmem write/read to a different
|
||||||
; array temporarly, then re-copy back in when finished
|
; array temporarly, then re-copy back in when finished
|
||||||
NEWSYM PPContrl, times 16 dd 0 ; Previous Controller 1 Data
|
NEWSYM PPContrl, resd 16 ; Previous Controller 1 Data
|
||||||
NEWSYM PPContrl2, times 16 dd 0 ; Previous Controller 2 Data
|
NEWSYM PPContrl2, resd 16 ; Previous Controller 2 Data
|
||||||
NEWSYM PPContrl3, times 16 dd 0 ; Previous Controller 3 Data
|
NEWSYM PPContrl3, resd 16 ; Previous Controller 3 Data
|
||||||
NEWSYM PPContrl4, times 16 dd 0 ; Previous Controller 4 Data
|
NEWSYM PPContrl4, resd 16 ; Previous Controller 4 Data
|
||||||
NEWSYM PPContrl5, times 16 dd 0 ; Previous Controller 5 Data
|
NEWSYM PPContrl5, resd 16 ; Previous Controller 5 Data
|
||||||
NEWSYM tempedx, dd 0
|
NEWSYM tempedx, resd 1
|
||||||
NEWSYM NetSent2, dd 0
|
NEWSYM NetSent2, resd 1
|
||||||
NEWSYM NetQuitter, dd 0
|
NEWSYM NetQuitter, resd 1
|
||||||
NEWSYM QBackupPos, dd 0
|
NEWSYM QBackupPos, resd 1
|
||||||
NEWSYM LatencyV, times 256 db 0
|
NEWSYM LatencyV, resb 256
|
||||||
NEWSYM LatencyRecvPtr, dd 0
|
NEWSYM LatencyRecvPtr, resd 1
|
||||||
NEWSYM LatencySendPtr, dd 0
|
NEWSYM LatencySendPtr, resd 1
|
||||||
NEWSYM latencytimer, dd 0
|
NEWSYM latencytimer, resd 1
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
NEWSYM BackState, db 1
|
NEWSYM BackState, db 1
|
||||||
NEWSYM BackStateSize, dd 6
|
NEWSYM BackStateSize, dd 6
|
||||||
NEWSYM nojoystickpoll, dd 0
|
|
||||||
NEWSYM RemoteLValue, db 0
|
SECTION .bss
|
||||||
NEWSYM LocalLValue, db 0
|
NEWSYM nojoystickpoll, resd 1
|
||||||
NEWSYM chatstrLt, times 15 db 0
|
NEWSYM RemoteLValue, resb 1
|
||||||
NEWSYM RewindOldPos, dd 0
|
NEWSYM LocalLValue, resb 1
|
||||||
NEWSYM RewindPos, dd 0
|
NEWSYM chatstrLt, resb 15
|
||||||
NEWSYM RewindTimer, dd 0
|
NEWSYM RewindOldPos, resd 1
|
||||||
|
NEWSYM RewindPos, resd 1
|
||||||
|
NEWSYM RewindTimer, resd 1
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
NEWSYM ResendTimer, dd 60
|
NEWSYM ResendTimer, dd 60
|
||||||
NEWSYM valuea, dd 0
|
|
||||||
NEWSYM valueb, dd 0
|
SECTION .bss
|
||||||
NEWSYM valuet, dd 0
|
NEWSYM valuea, resd 1
|
||||||
BackupArray times 2000 dd 0
|
NEWSYM valueb, resd 1
|
||||||
|
NEWSYM valuet, resd 1
|
||||||
|
BackupArray resd 3000
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM SplitStringChat
|
NEWSYM SplitStringChat
|
||||||
push ebx
|
push ebx
|
||||||
@@ -352,7 +377,9 @@ NEWSYM GenLatencyDisplay
|
|||||||
mov [chatstrLt+4],dl
|
mov [chatstrLt+4],dl
|
||||||
mov [chatstrLt+3],al
|
mov [chatstrLt+3],al
|
||||||
ret
|
ret
|
||||||
.temp dd 0
|
SECTION .bss
|
||||||
|
.temp resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM ResetExecStuff
|
NEWSYM ResetExecStuff
|
||||||
mov dword[soundcycleft],0
|
mov dword[soundcycleft],0
|
||||||
@@ -363,7 +390,8 @@ NEWSYM ResetExecStuff
|
|||||||
mov dword[nmiprevline],224
|
mov dword[nmiprevline],224
|
||||||
mov dword[nmistatus],0
|
mov dword[nmistatus],0
|
||||||
mov byte[NextLineCache],0
|
mov byte[NextLineCache],0
|
||||||
mov byte[spcnumread],0
|
mov dword[spcnumread],0
|
||||||
|
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
|
||||||
@@ -465,7 +493,8 @@ NEWSYM BackupSystemVars
|
|||||||
BackupCVMac spc700read,10
|
BackupCVMac spc700read,10
|
||||||
BackupCVMac timer2upd,1
|
BackupCVMac timer2upd,1
|
||||||
BackupCVMac xa,14
|
BackupCVMac xa,14
|
||||||
BackupCVMacB spcnumread,1
|
BackupCVMacB spcnumread,4
|
||||||
|
BackupCVMacB spchalted,4
|
||||||
BackupCVMac opcd,6
|
BackupCVMac opcd,6
|
||||||
BackupCVMacB HIRQCycNext,5
|
BackupCVMacB HIRQCycNext,5
|
||||||
BackupCVMac oamaddr,14
|
BackupCVMac oamaddr,14
|
||||||
@@ -487,7 +516,8 @@ NEWSYM RestoreSystemVars
|
|||||||
BackupCVRMac spc700read,10
|
BackupCVRMac spc700read,10
|
||||||
BackupCVRMac timer2upd,1
|
BackupCVRMac timer2upd,1
|
||||||
BackupCVRMac xa,14
|
BackupCVRMac xa,14
|
||||||
BackupCVRMacB spcnumread,1
|
BackupCVRMacB spcnumread,4
|
||||||
|
BackupCVRMacB spchalted,4
|
||||||
BackupCVRMac opcd,6
|
BackupCVRMac opcd,6
|
||||||
BackupCVRMacB HIRQCycNext,5
|
BackupCVRMacB HIRQCycNext,5
|
||||||
BackupCVRMac oamaddr,14
|
BackupCVRMac oamaddr,14
|
||||||
@@ -560,7 +590,8 @@ NEWSYM BackupCVFrame
|
|||||||
BackupCVMac spc700read,10
|
BackupCVMac spc700read,10
|
||||||
BackupCVMac timer2upd,1
|
BackupCVMac timer2upd,1
|
||||||
BackupCVMac xa,14
|
BackupCVMac xa,14
|
||||||
BackupCVMacB spcnumread,1
|
BackupCVMacB spcnumread,4
|
||||||
|
BackupCVMacB spchalted,4
|
||||||
BackupCVMac opcd,6
|
BackupCVMac opcd,6
|
||||||
BackupCVMacB HIRQCycNext,5
|
BackupCVMacB HIRQCycNext,5
|
||||||
BackupCVMac oamaddr,14
|
BackupCVMac oamaddr,14
|
||||||
@@ -654,7 +685,8 @@ NEWSYM RestoreCVFrame
|
|||||||
BackupCVRMac spc700read,10
|
BackupCVRMac spc700read,10
|
||||||
BackupCVRMac timer2upd,1
|
BackupCVRMac timer2upd,1
|
||||||
BackupCVRMac xa,14
|
BackupCVRMac xa,14
|
||||||
BackupCVRMacB spcnumread,1
|
BackupCVRMacB spcnumread,4
|
||||||
|
BackupCVRMacB spchalted,4
|
||||||
BackupCVRMac opcd,6
|
BackupCVRMac opcd,6
|
||||||
BackupCVRMacB HIRQCycNext,5
|
BackupCVRMacB HIRQCycNext,5
|
||||||
BackupCVRMac oamaddr,14
|
BackupCVRMac oamaddr,14
|
||||||
@@ -689,7 +721,9 @@ NEWSYM RestoreCVFrame
|
|||||||
emms
|
emms
|
||||||
ret
|
ret
|
||||||
|
|
||||||
NEWSYM MuteVoiceF, db 0
|
SECTION .bss
|
||||||
|
NEWSYM MuteVoiceF, resb 0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
VoiceEndMute:
|
VoiceEndMute:
|
||||||
mov byte[MuteVoiceF],0
|
mov byte[MuteVoiceF],0
|
||||||
@@ -973,19 +1007,22 @@ NetSaveState:
|
|||||||
; pexecs
|
; pexecs
|
||||||
; *** Copy to PC whenever a non-relative jump is executed
|
; *** Copy to PC whenever a non-relative jump is executed
|
||||||
|
|
||||||
NEWSYM romloadskip, db 0
|
SECTION .bss
|
||||||
NEWSYM abcdefg, dd 0
|
NEWSYM romloadskip, resb 1
|
||||||
NEWSYM abcdefg1, dd 0
|
NEWSYM abcdefg, resd 1
|
||||||
NEWSYM abcdefg2, dd 0
|
NEWSYM abcdefg1, resd 1
|
||||||
NEWSYM abcdefg3, dd 0
|
NEWSYM abcdefg2, resd 1
|
||||||
NEWSYM SSKeyPressed, dd 0
|
NEWSYM abcdefg3, resd 1
|
||||||
NEWSYM SPCKeyPressed, dd 0
|
NEWSYM SSKeyPressed, resd 1
|
||||||
NEWSYM NoSoundReinit, dd 0
|
NEWSYM SPCKeyPressed, resd 1
|
||||||
NEWSYM NextNGDisplay, db 0
|
NEWSYM NoSoundReinit, resd 1
|
||||||
NEWSYM TempVidInfo, dd 0
|
NEWSYM NextNGDisplay, resb 1
|
||||||
|
NEWSYM TempVidInfo, resd 1
|
||||||
|
|
||||||
|
|
||||||
NEWSYM tempdh, db 0
|
NEWSYM tempdh, resb 1
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM start65816
|
NEWSYM start65816
|
||||||
|
|
||||||
@@ -1282,8 +1319,10 @@ reexecuteb2:
|
|||||||
jnz near endprog
|
jnz near endprog
|
||||||
jmp StartGUI
|
jmp StartGUI
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
NEWSYM EndMessage
|
NEWSYM EndMessage
|
||||||
db ' ',13,10,0
|
db ' ',13,10,0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM endprog
|
NEWSYM endprog
|
||||||
call deinitvideo
|
call deinitvideo
|
||||||
@@ -1417,6 +1456,7 @@ NEWSYM endprog
|
|||||||
mov ebx,InitDir
|
mov ebx,InitDir
|
||||||
call Change_Dir
|
call Change_Dir
|
||||||
|
|
||||||
|
%ifdef __MSDOS__
|
||||||
; Deinit modem if necessary
|
; Deinit modem if necessary
|
||||||
cmp byte[ModemInitStat],0
|
cmp byte[ModemInitStat],0
|
||||||
je .nodeinitmodem
|
je .nodeinitmodem
|
||||||
@@ -1424,12 +1464,13 @@ NEWSYM endprog
|
|||||||
.nodeinitmodem
|
.nodeinitmodem
|
||||||
; cmp byte[OSPort],1
|
; cmp byte[OSPort],1
|
||||||
; jae .nodeinitipx
|
; jae .nodeinitipx
|
||||||
%ifdef __MSDOS__
|
|
||||||
call deinitipx
|
call deinitipx
|
||||||
%endif
|
|
||||||
;.nodeinitipx
|
;.nodeinitipx
|
||||||
|
%endif
|
||||||
jmp OSExit
|
jmp OSExit
|
||||||
|
SECTION .data
|
||||||
NEWSYM sdd1fname, db 'sdd1dat.dat',0,0
|
NEWSYM sdd1fname, db 'sdd1dat.dat',0,0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM interror
|
NEWSYM interror
|
||||||
stim
|
stim
|
||||||
@@ -1439,31 +1480,38 @@ NEWSYM interror
|
|||||||
call Output_Text ;to print a string
|
call Output_Text ;to print a string
|
||||||
jmp DosExit
|
jmp DosExit
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.nohand db 'Cannot process interrupt handler!',13,10,0
|
.nohand db 'Cannot process interrupt handler!',13,10,0
|
||||||
|
|
||||||
|
SECTION .bss
|
||||||
; global variables
|
; global variables
|
||||||
NEWSYM invalid, db 0
|
NEWSYM invalid, resb 1
|
||||||
NEWSYM invopcd, db 0
|
NEWSYM invopcd, resb 1
|
||||||
NEWSYM pressed, times 256+128+64 db 0 ; keyboard pressed keys in scancode
|
NEWSYM pressed, resb 256+128+64 ; keyboard pressed keys in scancode
|
||||||
NEWSYM exiter, db 0
|
NEWSYM exiter, resb 1
|
||||||
NEWSYM oldhand9o, dd 0
|
NEWSYM oldhand9o, resd 1
|
||||||
NEWSYM oldhand9s, dw 0
|
NEWSYM oldhand9s, resw 1
|
||||||
NEWSYM oldhand8o, dd 0
|
NEWSYM oldhand8o, resd 1
|
||||||
NEWSYM oldhand8s, dw 0
|
NEWSYM oldhand8s, resw 1
|
||||||
NEWSYM opcd, dd 0
|
NEWSYM opcd, resd 1
|
||||||
NEWSYM pdh, dd 0
|
NEWSYM pdh, resd 1
|
||||||
NEWSYM pcury, dd 0
|
NEWSYM pcury, resd 1
|
||||||
NEWSYM timercount, dd 0
|
NEWSYM timercount, resd 1
|
||||||
NEWSYM initaddrl, dd 0 ; initial address location
|
NEWSYM initaddrl, resd 1 ; initial address location
|
||||||
NEWSYM NetSent, dd 0
|
NEWSYM NetSent, resd 1
|
||||||
NEWSYM nextframe, dd 0 ; tick count for timer
|
NEWSYM nextframe, resd 1 ; tick count for timer
|
||||||
NEWSYM curfps, db 0 ; frame/sec for current screen
|
NEWSYM curfps, resb 1 ; frame/sec for current screen
|
||||||
NEWSYM SFXSRAM, db 0
|
NEWSYM SFXSRAM, resb 1
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
NEWSYM newgfxerror, db 'NEED MEMORY FOR GFX ENGINE',0
|
NEWSYM newgfxerror, db 'NEED MEMORY FOR GFX ENGINE',0
|
||||||
NEWSYM newgfxerror2, db 'NEED 320x240 FOR NEW GFX 16B',0
|
NEWSYM newgfxerror2, db 'NEED 320x240 FOR NEW GFX 16B',0
|
||||||
;newgfxerror db 'NEW GFX IN 16BIT IS N/A',0
|
;newgfxerror db 'NEW GFX IN 16BIT IS N/A',0
|
||||||
NEWSYM HIRQCycNext, dd 0
|
|
||||||
NEWSYM HIRQNextExe, db 0
|
SECTION .bss
|
||||||
|
NEWSYM HIRQCycNext, resd 1
|
||||||
|
NEWSYM HIRQNextExe, resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
; Save/Load States
|
; Save/Load States
|
||||||
@@ -1496,10 +1544,13 @@ NEWSYM sramsave
|
|||||||
mov [MessageOn],eax
|
mov [MessageOn],eax
|
||||||
jmp reexecute
|
jmp reexecute
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.savesrmmsg1 db 'SRAM DATA SAVED.',0
|
.savesrmmsg1 db 'SRAM DATA SAVED.',0
|
||||||
.savesrmmsg2 db 'NO SRAM DATA.',0
|
.savesrmmsg2 db 'NO SRAM DATA.',0
|
||||||
|
|
||||||
NEWSYM firstsaveinc, db 0
|
SECTION .bss
|
||||||
|
NEWSYM firstsaveinc, resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM statesaver
|
NEWSYM statesaver
|
||||||
clim
|
clim
|
||||||
@@ -1671,8 +1722,10 @@ NEWSYM statesaver
|
|||||||
mov [MessageOn],eax
|
mov [MessageOn],eax
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.savemsg db 'STATE - SAVED.',0
|
.savemsg db 'STATE - SAVED.',0
|
||||||
.savemsgfail db 'UNABLE TO SAVE.',0
|
.savemsgfail db 'UNABLE TO SAVE.',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM savestate
|
NEWSYM savestate
|
||||||
jmp .save
|
jmp .save
|
||||||
@@ -1708,9 +1761,12 @@ NEWSYM savestate
|
|||||||
call statesaver
|
call statesaver
|
||||||
jmp reexecuteb
|
jmp reexecuteb
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.fname2 db 9,'image.dat',0
|
.fname2 db 9,'image.dat',0
|
||||||
|
|
||||||
cycpblblah dd 0,0
|
SECTION .bss
|
||||||
|
cycpblblah resd 2
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
; Load State
|
; Load State
|
||||||
NEWSYM stateloader
|
NEWSYM stateloader
|
||||||
@@ -1835,7 +1891,8 @@ NEWSYM stateloader
|
|||||||
.nosdd1
|
.nosdd1
|
||||||
call Close_File
|
call Close_File
|
||||||
call repackfunct
|
call repackfunct
|
||||||
mov byte[spcnumread],0
|
mov dword[spcnumread],0
|
||||||
|
mov dword[spchalted],-1
|
||||||
mov byte[nexthdma],0
|
mov byte[nexthdma],0
|
||||||
|
|
||||||
; call headerhack
|
; call headerhack
|
||||||
@@ -1900,7 +1957,8 @@ NEWSYM stateloader
|
|||||||
call Close_File
|
call Close_File
|
||||||
call repackfunct
|
call repackfunct
|
||||||
mov dword[cycpbl],0
|
mov dword[cycpbl],0
|
||||||
mov byte[spcnumread],0
|
mov dword[spcnumread],0
|
||||||
|
mov dword[spchalted],-1
|
||||||
mov byte[nexthdma],0
|
mov byte[nexthdma],0
|
||||||
call headerhack
|
call headerhack
|
||||||
call initpitch
|
call initpitch
|
||||||
@@ -1964,9 +2022,11 @@ NEWSYM loadstate
|
|||||||
stim
|
stim
|
||||||
jmp reexecuteb
|
jmp reexecuteb
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.loadmsg db 'STATE - LOADED.',0
|
.loadmsg db 'STATE - LOADED.',0
|
||||||
.convmsg db 'STATE - LOADED/CONVERTED',0
|
.convmsg db 'STATE - LOADED/CONVERTED',0
|
||||||
.nfndmsg db 'UNABLE TO LOAD STATE -.',0
|
.nfndmsg db 'UNABLE TO LOAD STATE -.',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM loadstate2
|
NEWSYM loadstate2
|
||||||
mov edx,fnamest+1
|
mov edx,fnamest+1
|
||||||
@@ -2034,6 +2094,7 @@ NEWSYM Game60hzcall
|
|||||||
inc byte[nextframe]
|
inc byte[nextframe]
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
%ifdef __MSDOS__
|
||||||
NEWSYM handler8h
|
NEWSYM handler8h
|
||||||
cli
|
cli
|
||||||
push ds
|
push ds
|
||||||
@@ -2056,16 +2117,23 @@ NEWSYM handler8hseg
|
|||||||
pop ds
|
pop ds
|
||||||
sti
|
sti
|
||||||
iretd
|
iretd
|
||||||
|
%endif
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
NEWSYM timeradj, dd 65536
|
NEWSYM timeradj, dd 65536
|
||||||
NEWSYM t1cc, dw 0
|
SECTION .bss
|
||||||
|
NEWSYM t1cc, resw 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
; Int 09h vector
|
; Int 09h vector
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
|
|
||||||
NEWSYM skipnextkey42, db 0
|
SECTION .bss
|
||||||
|
NEWSYM skipnextkey42, resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
|
%ifdef __MSDOS__
|
||||||
NEWSYM handler9h
|
NEWSYM handler9h
|
||||||
cli
|
cli
|
||||||
push ds
|
push ds
|
||||||
@@ -2127,21 +2195,26 @@ NEWSYM handler9h
|
|||||||
pop ds
|
pop ds
|
||||||
sti
|
sti
|
||||||
iretd
|
iretd
|
||||||
|
%endif
|
||||||
|
|
||||||
ALIGN32
|
SECTION .bss ;ALIGN=32
|
||||||
|
NEWSYM soundcycleft, resd 1
|
||||||
|
NEWSYM curexecstate, resd 1
|
||||||
|
|
||||||
NEWSYM soundcycleft, dd 0
|
NEWSYM nmiprevaddrl, resd 1 ; observed address -5
|
||||||
NEWSYM curexecstate, dd 0
|
NEWSYM nmiprevaddrh, resd 1 ; observed address +5
|
||||||
|
NEWSYM nmirept, resd 1 ; NMI repeat check, if 6 then okay
|
||||||
|
|
||||||
NEWSYM nmiprevaddrl, dd 0 ; observed address -5
|
SECTION .data
|
||||||
NEWSYM nmiprevaddrh, dd 0 ; observed address +5
|
|
||||||
NEWSYM nmirept, dd 0 ; NMI repeat check, if 6 then okay
|
|
||||||
NEWSYM nmiprevline, dd 224 ; previous line
|
NEWSYM nmiprevline, dd 224 ; previous line
|
||||||
NEWSYM nmistatus, dd 0 ; 0 = none, 1 = waiting for nmi location,
|
|
||||||
|
SECTION .bss
|
||||||
|
NEWSYM nmistatus, resd 1 ; 0 = none, 1 = waiting for nmi location,
|
||||||
; 2 = found, disable at next line
|
; 2 = found, disable at next line
|
||||||
NEWSYM joycontren, dd 0 ; joystick read control check
|
NEWSYM joycontren, resd 1 ; joystick read control check
|
||||||
NEWSYM NextLineCache, db 0
|
NEWSYM NextLineCache, resb 1
|
||||||
NEWSYM NetQuit, db 0
|
NEWSYM NetQuit, resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
Donextlinecache:
|
Donextlinecache:
|
||||||
cmp word[curypos],0
|
cmp word[curypos],0
|
||||||
@@ -2235,6 +2308,8 @@ Donextlinecache:
|
|||||||
; 65816 execution
|
; 65816 execution
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
|
|
||||||
SpeedHackSafeTable
|
SpeedHackSafeTable
|
||||||
db 1,0,1,0,0,0,1,0,1,0,1,1,0,0,0,0
|
db 1,0,1,0,0,0,1,0,1,0,1,1,0,0,0,0
|
||||||
db 0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0
|
db 0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0
|
||||||
@@ -2252,6 +2327,7 @@ SpeedHackSafeTable
|
|||||||
db 0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0
|
db 0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0
|
||||||
db 0,1,0,1,0,1,1,1,1,1,0,0,0,1,1,1
|
db 0,1,0,1,0,1,1,1,1,1,0,0,0,1,1,1
|
||||||
db 0,1,1,1,0,1,1,1,0,1,0,0,0,1,1,1
|
db 0,1,1,1,0,1,1,1,0,1,0,0,0,1,1,1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM exitloop2
|
NEWSYM exitloop2
|
||||||
mov byte[ExecExitOkay],0
|
mov byte[ExecExitOkay],0
|
||||||
@@ -2316,7 +2392,6 @@ ALIGN16
|
|||||||
%%noflip
|
%%noflip
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
|
|
||||||
NEWSYM execute
|
NEWSYM execute
|
||||||
NEWSYM execloop
|
NEWSYM execloop
|
||||||
mov bl,dl
|
mov bl,dl
|
||||||
@@ -2333,6 +2408,17 @@ NEWSYM execloop
|
|||||||
jmp cpuover
|
jmp cpuover
|
||||||
.sound
|
.sound
|
||||||
mov edi,[tableadc+ebx*4]
|
mov edi,[tableadc+ebx*4]
|
||||||
|
%ifdef OPENSPC
|
||||||
|
pushad
|
||||||
|
mov bl,[esi]
|
||||||
|
movzx eax,byte[cpucycle+ebx]
|
||||||
|
mov ebx,0xC3A13DE6
|
||||||
|
mul ebx
|
||||||
|
add [ospc_cycle_frac],eax
|
||||||
|
adc [SPC_Cycles],edx
|
||||||
|
call OSPC_Run
|
||||||
|
popad
|
||||||
|
%else
|
||||||
sub dword[cycpbl],55
|
sub dword[cycpbl],55
|
||||||
jnc .skipallspc
|
jnc .skipallspc
|
||||||
mov eax,[cycpblt]
|
mov eax,[cycpblt]
|
||||||
@@ -2343,6 +2429,7 @@ NEWSYM execloop
|
|||||||
call dword near [opcjmptab+ebx*4]
|
call dword near [opcjmptab+ebx*4]
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
.skipallspc
|
.skipallspc
|
||||||
|
%endif
|
||||||
mov bl,[esi]
|
mov bl,[esi]
|
||||||
inc esi
|
inc esi
|
||||||
sub dh,[cpucycle+ebx]
|
sub dh,[cpucycle+ebx]
|
||||||
@@ -2353,25 +2440,27 @@ NEWSYM execloop
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
SECTION .data
|
SECTION .data ;ALIGN=32
|
||||||
ALIGN32
|
ALIGN32
|
||||||
NEWSYM ExecExitOkay, db 1
|
NEWSYM ExecExitOkay, db 1
|
||||||
NEWSYM JoyABack, dd 0
|
|
||||||
NEWSYM JoyBBack, dd 0
|
SECTION .bss ;ALIGN=32
|
||||||
NEWSYM JoyCBack, dd 0
|
NEWSYM JoyABack, resd 1
|
||||||
NEWSYM JoyDBack, dd 0
|
NEWSYM JoyBBack, resd 1
|
||||||
NEWSYM JoyEBack, dd 0
|
NEWSYM JoyCBack, resd 1
|
||||||
NEWSYM NetCommand, dd 0
|
NEWSYM JoyDBack, resd 1
|
||||||
NEWSYM spc700read, dd 0
|
NEWSYM JoyEBack, resd 1
|
||||||
NEWSYM lowestspc, dd 0
|
NEWSYM NetCommand, resd 1
|
||||||
NEWSYM highestspc, dd 0
|
NEWSYM spc700read, resd 1
|
||||||
NEWSYM SA1UBound, dd 0
|
NEWSYM lowestspc, resd 1
|
||||||
NEWSYM SA1LBound, dd 0
|
NEWSYM highestspc, resd 1
|
||||||
NEWSYM SA1SH, dd 0
|
NEWSYM SA1UBound, resd 1
|
||||||
NEWSYM SA1SHb, dd 0
|
NEWSYM SA1LBound, resd 1
|
||||||
NEWSYM NumberOfOpcodes2, dd 0
|
NEWSYM SA1SH, resd 1
|
||||||
NEWSYM ChangeOps, dd 0
|
NEWSYM SA1SHb, resd 1
|
||||||
NEWSYM SFXProc, dd 0
|
NEWSYM NumberOfOpcodes2, resd 1
|
||||||
|
NEWSYM ChangeOps, resd 1
|
||||||
|
NEWSYM SFXProc, resd 1
|
||||||
SECTION .text
|
SECTION .text
|
||||||
|
|
||||||
|
|
||||||
@@ -2388,7 +2477,7 @@ NEWSYM cpuover
|
|||||||
dec esi
|
dec esi
|
||||||
cmp byte[HIRQNextExe],0
|
cmp byte[HIRQNextExe],0
|
||||||
je .nohirq
|
je .nohirq
|
||||||
mov dh,[HIRQCycNext]
|
add dh,[HIRQCycNext]
|
||||||
mov byte[HIRQCycNext],0
|
mov byte[HIRQCycNext],0
|
||||||
jmp .hirq
|
jmp .hirq
|
||||||
.nohirq
|
.nohirq
|
||||||
@@ -3974,7 +4063,9 @@ NEWSYM cpuover
|
|||||||
pop eax
|
pop eax
|
||||||
jmp .returncheat
|
jmp .returncheat
|
||||||
|
|
||||||
.numcheat db 0
|
SECTION .bss ;ALIGN=32
|
||||||
|
.numcheat resb 1
|
||||||
|
SECTION .text ;ALIGN=32
|
||||||
|
|
||||||
ALIGN16
|
ALIGN16
|
||||||
|
|
||||||
|
|||||||
@@ -31,9 +31,6 @@ NEWSYM Spc700AsmStart
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; SPC 700 Emulation by _Demo_
|
; SPC 700 Emulation by _Demo_
|
||||||
; Version 2.0
|
; Version 2.0
|
||||||
|
|
||||||
@@ -42,6 +39,7 @@ NEWSYM Spc700AsmStart
|
|||||||
; Read byte : read al from [ebx]
|
; Read byte : read al from [ebx]
|
||||||
; update timer : update the timers, called every scanline
|
; update timer : update the timers, called every scanline
|
||||||
|
|
||||||
|
SECTION .data ;ALIGN=32
|
||||||
|
|
||||||
ALIGN32
|
ALIGN32
|
||||||
|
|
||||||
@@ -126,72 +124,81 @@ NEWSYM SPCROM
|
|||||||
db 0CBh,0F4h,0D7h,000h,0FCh,0D0h,0F3h,0ABh,001h,010h,0EFh,07Eh,0F4h,010h,0EBh,0BAh
|
db 0CBh,0F4h,0D7h,000h,0FCh,0D0h,0F3h,0ABh,001h,010h,0EFh,07Eh,0F4h,010h,0EBh,0BAh
|
||||||
db 0F6h,0DAh,000h,0BAh,0F4h,0C4h,0F4h,0DDh,05Dh,0D0h,0DBh,01Fh,000h,000h,0C0h,0FFh
|
db 0F6h,0DAh,000h,0BAh,0F4h,0C4h,0F4h,0DDh,05Dh,0D0h,0DBh,01Fh,000h,000h,0C0h,0FFh
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
%macro WriteByte 0
|
%macro WriteByte 0
|
||||||
cmp ebx,0ffh+spcRam
|
cmp ebx,0ffh+spcRam
|
||||||
ja .extramem
|
ja %%extramem
|
||||||
cmp ebx,0f0h+spcRam
|
cmp ebx,0f0h+spcRam
|
||||||
jb .normalmem
|
jb %%normalmem
|
||||||
sub ebx,spcRam
|
sub ebx,spcRam
|
||||||
call dword near [spcWptr+ebx*4-0f0h*4]
|
push dword %%finished
|
||||||
jmp .finished
|
jmp dword near [spcWptr+ebx*4-0f0h*4]
|
||||||
.extramem
|
; call dword near [spcWptr+ebx*4-0f0h*4]
|
||||||
|
; jmp .finished
|
||||||
|
%%extramem
|
||||||
cmp ebx,0ffc0h+spcRam
|
cmp ebx,0ffc0h+spcRam
|
||||||
jb .normalmem
|
jb %%normalmem
|
||||||
mov [spcextraram+ebx-0FFC0h-spcRam],al
|
mov [spcextraram+ebx-0FFC0h-spcRam],al
|
||||||
test byte[spcRam+0F1h],80h
|
test byte[spcRam+0F1h],80h
|
||||||
jnz .finished
|
jnz %%finished
|
||||||
; push ecx
|
; push ecx
|
||||||
; mov cl,[DSPMem+06Ch]
|
; mov cl,[DSPMem+06Ch]
|
||||||
; test cl,20h
|
; test cl,20h
|
||||||
; pop ecx
|
; pop ecx
|
||||||
; jz .finished
|
; jz .finished
|
||||||
.normalmem
|
%%normalmem
|
||||||
mov [ebx],al
|
mov [ebx],al
|
||||||
.finished
|
%%finished
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
%macro ReadByte 0
|
%macro ReadByte 0
|
||||||
cmp ebx,0f0h+spcRam
|
cmp ebx,0f0h+spcRam
|
||||||
jb .rnormalmem2
|
jb %%normalmem2
|
||||||
cmp ebx,0ffh+spcRam
|
cmp ebx,0ffh+spcRam
|
||||||
ja .rnormalmem
|
ja %%normalmem
|
||||||
sub ebx,spcRam
|
sub ebx,spcRam
|
||||||
call dword near [spcRptr+ebx*4-0f0h*4]
|
push dword %%finished
|
||||||
jmp .rfinished
|
jmp dword near [spcRptr+ebx*4-0f0h*4]
|
||||||
.rnormalmem
|
; call dword near [spcRptr+ebx*4-0f0h*4]
|
||||||
|
; jmp .rfinished
|
||||||
|
%%normalmem
|
||||||
; cmp ebx,0ffc0h+spcRam
|
; cmp ebx,0ffc0h+spcRam
|
||||||
; jb .rnormalmem2
|
; jb .rnormalmem2
|
||||||
; test byte [DSPMem+6Ch],10h
|
; test byte [DSPMem+6Ch],10h
|
||||||
; jz .rnormalmem2
|
; jz .rnormalmem2
|
||||||
; mov al,[spcextraram+ebx-0FFC0h-spcRam]
|
; mov al,[spcextraram+ebx-0FFC0h-spcRam]
|
||||||
; jmp .rfinished
|
; jmp .rfinished
|
||||||
.rnormalmem2
|
%%normalmem2
|
||||||
mov al,[ebx]
|
mov al,[ebx]
|
||||||
.rfinished
|
%%finished
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
%macro ReadByte2 0
|
%macro ReadByte2 0
|
||||||
cmp ebx,0f0h+spcRam
|
cmp ebx,0f0h+spcRam
|
||||||
jb .rnormalmem2
|
jb %%normalmem2
|
||||||
cmp ebx,0ffh+spcRam
|
cmp ebx,0ffh+spcRam
|
||||||
ja .rnormalmem
|
ja %%normalmem
|
||||||
sub ebx,spcRam
|
sub ebx,spcRam
|
||||||
call dword near [spcRptr+ebx*4-0f0h*4]
|
call dword near [spcRptr+ebx*4-0f0h*4]
|
||||||
add ebx,spcRam
|
add ebx,spcRam
|
||||||
jmp .rfinished
|
jmp %%finished
|
||||||
.rnormalmem
|
%%normalmem
|
||||||
; cmp ebx,0ffc0h+spcRam
|
; cmp ebx,0ffc0h+spcRam
|
||||||
; jb .rnormalmem2
|
; jb .rnormalmem2
|
||||||
; test byte [DSPMem+6Ch],10h
|
; test byte [DSPMem+6Ch],10h
|
||||||
; jz .rnormalmem2
|
; jz .rnormalmem2
|
||||||
; mov al,[spcextraram+ebx-0FFC0h-spcRam]
|
; mov al,[spcextraram+ebx-0FFC0h-spcRam]
|
||||||
; jmp .rfinished
|
; jmp .rfinished
|
||||||
.rnormalmem2
|
%%normalmem2
|
||||||
mov al,[ebx]
|
mov al,[ebx]
|
||||||
.rfinished
|
%%finished
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
NEWSYM timer2upd, dd 0
|
SECTION .bss
|
||||||
|
NEWSYM timer2upd, resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
; This function is called every scanline (262*60 times/sec)
|
; This function is called every scanline (262*60 times/sec)
|
||||||
; Make it call 0.9825 times (393/400) (skip when divisible by 64)
|
; Make it call 0.9825 times (393/400) (skip when divisible by 64)
|
||||||
; 2 8khz, 1 64khz
|
; 2 8khz, 1 64khz
|
||||||
@@ -223,6 +230,8 @@ NEWSYM updatetimer
|
|||||||
mov [timinl0],al
|
mov [timinl0],al
|
||||||
cmp byte[spcRam+0FDh],1
|
cmp byte[spcRam+0FDh],1
|
||||||
jne .noin0
|
jne .noin0
|
||||||
|
cmp byte[spchalted],0
|
||||||
|
jz .noin0
|
||||||
reenablespc
|
reenablespc
|
||||||
mov dword[cycpbl],0
|
mov dword[cycpbl],0
|
||||||
.noin0
|
.noin0
|
||||||
@@ -235,6 +244,8 @@ NEWSYM updatetimer
|
|||||||
mov [timinl1],al
|
mov [timinl1],al
|
||||||
cmp byte[spcRam+0FEh],1
|
cmp byte[spcRam+0FEh],1
|
||||||
jne .noin1
|
jne .noin1
|
||||||
|
cmp byte[spchalted+1],0
|
||||||
|
jz .noin1
|
||||||
reenablespc
|
reenablespc
|
||||||
mov dword[cycpbl],0
|
mov dword[cycpbl],0
|
||||||
.noin1
|
.noin1
|
||||||
@@ -248,6 +259,8 @@ NEWSYM updatetimer
|
|||||||
mov [timinl2],al
|
mov [timinl2],al
|
||||||
cmp byte[spcRam+0FFh],1
|
cmp byte[spcRam+0FFh],1
|
||||||
jne .noin2
|
jne .noin2
|
||||||
|
cmp byte[spchalted+2],0
|
||||||
|
jz .noin2
|
||||||
reenablespc
|
reenablespc
|
||||||
mov dword[cycpbl],0
|
mov dword[cycpbl],0
|
||||||
.noin2
|
.noin2
|
||||||
@@ -258,6 +271,8 @@ NEWSYM updatetimer
|
|||||||
mov [timinl2],al
|
mov [timinl2],al
|
||||||
cmp byte[spcRam+0FFh],1
|
cmp byte[spcRam+0FFh],1
|
||||||
jne .noin2b
|
jne .noin2b
|
||||||
|
cmp byte[spchalted+2],0
|
||||||
|
jz .noin2b
|
||||||
reenablespc
|
reenablespc
|
||||||
mov dword[cycpbl],0
|
mov dword[cycpbl],0
|
||||||
.noin2b
|
.noin2b
|
||||||
@@ -268,6 +283,8 @@ NEWSYM updatetimer
|
|||||||
mov [timinl2],al
|
mov [timinl2],al
|
||||||
cmp byte[spcRam+0FFh],1
|
cmp byte[spcRam+0FFh],1
|
||||||
jne .noin2c
|
jne .noin2c
|
||||||
|
cmp byte[spchalted+2],0
|
||||||
|
jz .noin2c
|
||||||
reenablespc
|
reenablespc
|
||||||
mov dword[cycpbl],0
|
mov dword[cycpbl],0
|
||||||
.noin2c
|
.noin2c
|
||||||
@@ -278,6 +295,8 @@ NEWSYM updatetimer
|
|||||||
mov [timinl2],al
|
mov [timinl2],al
|
||||||
cmp byte[spcRam+0FFh],1
|
cmp byte[spcRam+0FFh],1
|
||||||
jne .noin2d
|
jne .noin2d
|
||||||
|
cmp byte[spchalted+2],0
|
||||||
|
jz .noin2d
|
||||||
reenablespc
|
reenablespc
|
||||||
mov dword[cycpbl],0
|
mov dword[cycpbl],0
|
||||||
.noin2d
|
.noin2d
|
||||||
@@ -438,17 +457,63 @@ NEWSYM RSPCRegF2
|
|||||||
NEWSYM RSPCRegF3
|
NEWSYM RSPCRegF3
|
||||||
mov al,[spcRam+0f3h]
|
mov al,[spcRam+0f3h]
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
%ifdef SPCDUMP
|
||||||
|
SECTION .bss
|
||||||
|
ALIGNB 4
|
||||||
|
NEWSYM SPCSave_start, resd 2
|
||||||
|
NEWSYM SPCSave_buffer, resb 4
|
||||||
|
NEWSYM SPCSave_ports, resb 4
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
|
EXTSYM SPCSave_dump, SPCSave_handle, Write_File
|
||||||
|
|
||||||
|
%macro spcdump 1
|
||||||
|
cmp byte[SPCSave_dump], 1
|
||||||
|
jne %%nodump
|
||||||
|
|
||||||
|
inc dword[SPCSave_buffer]
|
||||||
|
cmp [SPCSave_ports+%1], al
|
||||||
|
je %%nodump
|
||||||
|
mov [SPCSave_ports+%1], al
|
||||||
|
pushad
|
||||||
|
mov byte[SPCSave_buffer+2], %1
|
||||||
|
mov byte[SPCSave_buffer+3], al
|
||||||
|
mov ebx, [SPCSave_handle]
|
||||||
|
mov ecx, 4
|
||||||
|
mov edx, SPCSave_buffer
|
||||||
|
call Write_File
|
||||||
|
xor eax, eax
|
||||||
|
mov [SPCSave_buffer], eax
|
||||||
|
|
||||||
|
popad
|
||||||
|
%%nodump
|
||||||
|
%endmacro
|
||||||
|
%endif
|
||||||
|
|
||||||
NEWSYM RSPCRegF4
|
NEWSYM RSPCRegF4
|
||||||
mov al,[spcRam+0f4h]
|
mov al,[spcRam+0f4h]
|
||||||
|
%ifdef SPCDUMP
|
||||||
|
spcdump 0
|
||||||
|
%endif
|
||||||
ret
|
ret
|
||||||
NEWSYM RSPCRegF5
|
NEWSYM RSPCRegF5
|
||||||
mov al,[spcRam+0f5h]
|
mov al,[spcRam+0f5h]
|
||||||
|
%ifdef SPCDUMP
|
||||||
|
spcdump 1
|
||||||
|
%endif
|
||||||
ret
|
ret
|
||||||
NEWSYM RSPCRegF6
|
NEWSYM RSPCRegF6
|
||||||
mov al,[spcRam+0f6h]
|
mov al,[spcRam+0f6h]
|
||||||
|
%ifdef SPCDUMP
|
||||||
|
spcdump 2
|
||||||
|
%endif
|
||||||
ret
|
ret
|
||||||
NEWSYM RSPCRegF7
|
NEWSYM RSPCRegF7
|
||||||
mov al,[spcRam+0f7h]
|
mov al,[spcRam+0f7h]
|
||||||
|
%ifdef SPCDUMP
|
||||||
|
spcdump 3
|
||||||
|
%endif
|
||||||
ret
|
ret
|
||||||
NEWSYM RSPCRegF8
|
NEWSYM RSPCRegF8
|
||||||
mov al,0 ;[spcRam+0f8h]
|
mov al,0 ;[spcRam+0f8h]
|
||||||
@@ -465,30 +530,74 @@ NEWSYM RSPCRegFB
|
|||||||
NEWSYM RSPCRegFC
|
NEWSYM RSPCRegFC
|
||||||
mov al,[spcRam+0fch]
|
mov al,[spcRam+0fch]
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
%macro skipmacro 1
|
||||||
|
.spcnextskip
|
||||||
|
test byte[timeron],1<<%1
|
||||||
|
je .ret
|
||||||
|
cmp byte[timincr0+%1],0
|
||||||
|
je .ret
|
||||||
|
;cmp byte[SpeedHack],0
|
||||||
|
;je .ret
|
||||||
|
inc byte[spcnumread+%1]
|
||||||
|
cmp byte[spcnumread+%1],8h
|
||||||
|
je near haltspc
|
||||||
|
.ret
|
||||||
|
ret
|
||||||
|
%endmacro
|
||||||
|
|
||||||
|
ALIGN16
|
||||||
|
NEWSYM haltspc
|
||||||
|
cmp byte[SPC700sh],1
|
||||||
|
je .nochangestate
|
||||||
|
mov dword[cycpbl],0FFFFFFFFh
|
||||||
|
test byte[curexecstate],02h
|
||||||
|
jz .nochangestate
|
||||||
|
and byte[curexecstate],0FDh
|
||||||
|
push ebx
|
||||||
|
|
||||||
|
mov ebx,[spcnumread]
|
||||||
|
mov [spchalted],ebx
|
||||||
|
|
||||||
|
xor ebx,ebx
|
||||||
|
mov bl,dl
|
||||||
|
mov edi,[tableadb+ebx*4]
|
||||||
|
pop ebx
|
||||||
|
.nochangestate
|
||||||
|
mov dword[spcnumread],0
|
||||||
|
ret
|
||||||
|
|
||||||
NEWSYM RSPCRegFD
|
NEWSYM RSPCRegFD
|
||||||
mov al,[spcRam+0fdh]
|
mov al,[spcRam+0fdh]
|
||||||
and al,0Fh
|
and al,0Fh
|
||||||
cmp byte[spcRam+0fdh],0
|
cmp byte[spcRam+0fdh],0
|
||||||
je spcnextskip
|
je .spcnextskip
|
||||||
mov byte [spcRam+0fdh],0
|
mov byte [spcRam+0fdh],0
|
||||||
mov byte [spcnumread],0
|
mov byte [spcnumread],0
|
||||||
ret
|
ret
|
||||||
|
skipmacro 0
|
||||||
|
|
||||||
NEWSYM RSPCRegFE
|
NEWSYM RSPCRegFE
|
||||||
mov al,[spcRam+0feh]
|
mov al,[spcRam+0feh]
|
||||||
and al,0Fh
|
and al,0Fh
|
||||||
cmp byte[spcRam+0feh],0
|
cmp byte[spcRam+0feh],0
|
||||||
je spcnextskip
|
je .spcnextskip
|
||||||
mov byte [spcRam+0feh],0
|
mov byte [spcRam+0feh],0
|
||||||
mov byte [spcnumread],0
|
mov byte [spcnumread+1],0
|
||||||
ret
|
ret
|
||||||
|
skipmacro 1
|
||||||
|
|
||||||
NEWSYM RSPCRegFF
|
NEWSYM RSPCRegFF
|
||||||
mov al,[spcRam+0ffh]
|
mov al,[spcRam+0ffh]
|
||||||
and al,0Fh
|
and al,0Fh
|
||||||
cmp byte[spcRam+0ffh],0
|
cmp byte[spcRam+0ffh],0
|
||||||
je spcnextskip
|
je .spcnextskip
|
||||||
mov byte [spcRam+0ffh],0
|
mov byte [spcRam+0ffh],0
|
||||||
mov byte [spcnumread],0
|
mov byte [spcnumread+2],0
|
||||||
ret
|
ret
|
||||||
|
skipmacro 2
|
||||||
|
|
||||||
|
%if 0
|
||||||
NEWSYM spcnextskip
|
NEWSYM spcnextskip
|
||||||
inc byte[spcnumread]
|
inc byte[spcnumread]
|
||||||
cmp byte[spcnumread],5
|
cmp byte[spcnumread],5
|
||||||
@@ -510,9 +619,12 @@ NEWSYM haltspc
|
|||||||
.nochangestate
|
.nochangestate
|
||||||
mov byte[spcnumread],0
|
mov byte[spcnumread],0
|
||||||
ret
|
ret
|
||||||
|
%endif
|
||||||
|
|
||||||
NEWSYM spcnumread, db 0
|
SECTION .data
|
||||||
|
NEWSYM spcnumread, dd 0
|
||||||
|
NEWSYM spchalted, dd 0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
%macro SPCSetFlagnzc 0
|
%macro SPCSetFlagnzc 0
|
||||||
js .setsignflag
|
js .setsignflag
|
||||||
|
|||||||
@@ -18,10 +18,14 @@
|
|||||||
%include "macros.mac"
|
%include "macros.mac"
|
||||||
|
|
||||||
EXTSYM ComNum, ComIRQ, BaudRate
|
EXTSYM ComNum, ComIRQ, BaudRate
|
||||||
EXTSYM dssel,FossilUse
|
EXTSYM FossilUse
|
||||||
EXTSYM GUIinit18_2hz,GUIinit36_4hz
|
EXTSYM GUIinit18_2hz,GUIinit36_4hz
|
||||||
EXTSYM GUIMenuItem
|
EXTSYM GUIMenuItem
|
||||||
EXTSYM delay
|
EXTSYM delay
|
||||||
|
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
EXTSYM dssel
|
||||||
|
%endif
|
||||||
|
|
||||||
NEWSYM DosModemRTNAsmStart
|
NEWSYM DosModemRTNAsmStart
|
||||||
|
|
||||||
@@ -30,20 +34,36 @@ NEWSYM DosModemRTNAsmStart
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SECTION .bss
|
||||||
|
NEWSYM UartType, resb 1
|
||||||
|
|
||||||
NEWSYM UartType, db 0
|
SECTION .data
|
||||||
NEWSYM cantinitmodem, db 1
|
NEWSYM cantinitmodem, db 1
|
||||||
NEWSYM ModemInited, db 0
|
|
||||||
|
|
||||||
|
SECTION .bss
|
||||||
|
NEWSYM ModemInited, resb 1
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
ComPort dw 2E8h ; 1=3F8,2=2F8,3=3E8,4=2E8
|
ComPort dw 2E8h ; 1=3F8,2=2F8,3=3E8,4=2E8
|
||||||
PortData dw 0,3F8h,2F8h,3E8h,2E8h
|
PortData dw 0,3F8h,2F8h,3E8h,2E8h
|
||||||
ComInt db 0
|
|
||||||
|
SECTION .bss
|
||||||
|
ComInt resb 1
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
BRateSel dw 000Ch,0008h,0006h,0004h,0003h,0002h,0001h
|
BRateSel dw 000Ch,0008h,0006h,0004h,0003h,0002h,0001h
|
||||||
oldhandmodems dw 0
|
|
||||||
oldhandmodemo dd 0
|
SECTION .bss
|
||||||
|
oldhandmodems resw 1
|
||||||
|
oldhandmodemo resd 1
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
PICMaskPm db 21h
|
PICMaskPm db 21h
|
||||||
PortNum dw 0
|
|
||||||
CharStore db 0
|
SECTION .bss
|
||||||
|
PortNum resw 1
|
||||||
|
CharStore resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM ModemGetChar
|
NEWSYM ModemGetChar
|
||||||
cmp byte[UartType],2
|
cmp byte[UartType],2
|
||||||
@@ -165,7 +185,6 @@ FossilSendChar:
|
|||||||
popad
|
popad
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
NEWSYM InitModem
|
NEWSYM InitModem
|
||||||
mov byte[ModemInited],1
|
mov byte[ModemInited],1
|
||||||
cmp byte[FossilUse],0
|
cmp byte[FossilUse],0
|
||||||
@@ -302,7 +321,9 @@ InitFossil:
|
|||||||
modemhandler:
|
modemhandler:
|
||||||
push ds
|
push ds
|
||||||
push eax
|
push eax
|
||||||
|
%ifdef __MSDOS__
|
||||||
mov ax,[cs:dssel]
|
mov ax,[cs:dssel]
|
||||||
|
%endif
|
||||||
mov ds,ax
|
mov ds,ax
|
||||||
push edx
|
push edx
|
||||||
mov dx,[ComPort]
|
mov dx,[ComPort]
|
||||||
@@ -349,9 +370,11 @@ NEWSYM ModemClearBuffer
|
|||||||
mov dword[modemtail],0
|
mov dword[modemtail],0
|
||||||
ret
|
ret
|
||||||
|
|
||||||
NEWSYM modembuffer, times 2048 db 0
|
SECTION .bss
|
||||||
NEWSYM modemhead, dd 0
|
NEWSYM modembuffer, resb 2048
|
||||||
NEWSYM modemtail, dd 0
|
NEWSYM modemhead, resd 1
|
||||||
|
NEWSYM modemtail, resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM DeInitModem
|
NEWSYM DeInitModem
|
||||||
cmp byte[ModemInited],1
|
cmp byte[ModemInited],1
|
||||||
|
|||||||
@@ -64,9 +64,9 @@
|
|||||||
|
|
||||||
%include "macros.mac"
|
%include "macros.mac"
|
||||||
|
|
||||||
EXTSYM dssel, curblank, vidpastecopyscr, frameskip, newengen, vsyncon, cantinitmodem
|
EXTSYM curblank, vidpastecopyscr, frameskip, newengen, vsyncon
|
||||||
EXTSYM cvidmode, antienab, smallscreenon, smallscreence,NetQuit
|
EXTSYM cvidmode, antienab, smallscreenon, smallscreence,NetQuit
|
||||||
EXTSYM soundon, StereoSound, SoundCompD, SoundQuality, MusicRelVol,UartType
|
EXTSYM soundon, StereoSound, SoundCompD, SoundQuality, MusicRelVol
|
||||||
EXTSYM endprog, continueprog, spcBuffera, spcRamcmp, cbitmode, makepal
|
EXTSYM endprog, continueprog, spcBuffera, spcRamcmp, cbitmode, makepal
|
||||||
EXTSYM t1cc, LoadDir, SRAMDir, LoadDrive,SRAMDrive, initsnes, romloadskip
|
EXTSYM t1cc, LoadDir, SRAMDir, LoadDrive,SRAMDrive, initsnes, romloadskip
|
||||||
EXTSYM fname, makeextension, sram, clearmem2, loadfileGUI, GUIloadfailed
|
EXTSYM fname, makeextension, sram, clearmem2, loadfileGUI, GUIloadfailed
|
||||||
@@ -89,14 +89,12 @@ EXTSYM cfgdontsave,videotroub,Open_File,Read_File,Close_File,Write_File,Create_F
|
|||||||
EXTSYM File_Seek,File_Seek_End,Open_File_Write,Get_Date,Check_Key,Get_Key
|
EXTSYM File_Seek,File_Seek_End,Open_File_Write,Get_Date,Check_Key,Get_Key
|
||||||
EXTSYM Change_Drive,Change_Single_Dir,Change_Dir,Get_Dir,Get_First_Entry
|
EXTSYM Change_Drive,Change_Single_Dir,Change_Dir,Get_Dir,Get_First_Entry
|
||||||
EXTSYM Get_Next_Entry,Set_DTA_Address,timer2upd,curexecstate,TripBufAvail
|
EXTSYM Get_Next_Entry,Set_DTA_Address,timer2upd,curexecstate,TripBufAvail
|
||||||
EXTSYM nmiprevaddrl,nmiprevaddrh,nmirept,nmiprevline,nmistatus,spcnumread
|
EXTSYM nmiprevaddrl,nmiprevaddrh,nmirept,nmiprevline,nmistatus,spcnumread,spchalted
|
||||||
EXTSYM NextLineCache,VidStartDraw,ResetTripleBuf,GUINGVID
|
EXTSYM NextLineCache,VidStartDraw,ResetTripleBuf,GUINGVID
|
||||||
EXTSYM ScanCodeListing,AdjustFrequency,GUISaveVars,Init_Mouse
|
EXTSYM ScanCodeListing,AdjustFrequency,GUISaveVars,Init_Mouse
|
||||||
EXTSYM Get_MouseData,Set_MouseXMax,Set_MouseYMax,Set_MousePosition,Get_MousePositionDisplacement
|
EXTSYM Get_MouseData,Set_MouseXMax,Set_MouseYMax,Set_MousePosition,Get_MousePositionDisplacement
|
||||||
EXTSYM GUIInit,GUIDeInit,SpecialLine
|
EXTSYM GUIInit,GUIDeInit,SpecialLine
|
||||||
EXTSYM DrawWater,DrawSmoke,RemoteDisconnect,loadstate3
|
EXTSYM DrawWater,DrawBurn,RemoteDisconnect,loadstate3
|
||||||
EXTSYM ModemClearBuffer,IPXSearchval
|
|
||||||
EXTSYM ipxlookforconnect
|
|
||||||
EXTSYM SA1Enable,SA1RAMArea
|
EXTSYM SA1Enable,SA1RAMArea
|
||||||
EXTSYM GUIFName,GUICName
|
EXTSYM GUIFName,GUICName
|
||||||
EXTSYM printnum
|
EXTSYM printnum
|
||||||
@@ -108,7 +106,6 @@ EXTSYM showinfogui
|
|||||||
EXTSYM BackupCVFrame
|
EXTSYM BackupCVFrame
|
||||||
EXTSYM Wait1SecWin,ClearUDPStuff
|
EXTSYM Wait1SecWin,ClearUDPStuff
|
||||||
EXTSYM DisableSUDPPacket,EnableSUDPPacket
|
EXTSYM DisableSUDPPacket,EnableSUDPPacket
|
||||||
EXTSYM ModemGetChar
|
|
||||||
EXTSYM BackStateSize
|
EXTSYM BackStateSize
|
||||||
EXTSYM ResetExecStuff
|
EXTSYM ResetExecStuff
|
||||||
EXTSYM RestoreCVFrame
|
EXTSYM RestoreCVFrame
|
||||||
@@ -141,11 +138,8 @@ EXTSYM Force8b,convertnum,converthex
|
|||||||
EXTSYM per2exec
|
EXTSYM per2exec
|
||||||
EXTSYM hostname
|
EXTSYM hostname
|
||||||
EXTSYM UDPConfig
|
EXTSYM UDPConfig
|
||||||
EXTSYM DeInitModem
|
|
||||||
EXTSYM snesmouse
|
EXTSYM snesmouse
|
||||||
EXTSYM pl1upk,pl1downk,pl1leftk,pl1rightk,pl1Lk,pl1Rk,pl1Ak,pl1Bk
|
EXTSYM pl1upk,pl1downk,pl1leftk,pl1rightk,pl1Lk,pl1Rk,pl1Ak,pl1Bk
|
||||||
EXTSYM deinitipx
|
|
||||||
EXTSYM InitModem
|
|
||||||
EXTSYM outofmemfix,yesoutofmemory
|
EXTSYM outofmemfix,yesoutofmemory
|
||||||
EXTSYM CReadHead,ReadHead,CFWriteHead,CFWriteStart
|
EXTSYM CReadHead,ReadHead,CFWriteHead,CFWriteStart
|
||||||
EXTSYM JoyX,JoyY,JoyMinX,JoyMinY,JoyMaxX,JoyMaxY,JoyMinX209,JoyMaxX209
|
EXTSYM JoyX,JoyY,JoyMinX,JoyMinY,JoyMaxX,JoyMaxY,JoyMinX209,JoyMaxX209
|
||||||
@@ -158,26 +152,29 @@ EXTSYM TCPIPWaitForConnection
|
|||||||
EXTSYM tcperr
|
EXTSYM tcperr
|
||||||
EXTSYM TCPIPConnectToServer
|
EXTSYM TCPIPConnectToServer
|
||||||
EXTSYM TCPIPConnectToServerW
|
EXTSYM TCPIPConnectToServerW
|
||||||
EXTSYM initipx
|
|
||||||
EXTSYM selc0040
|
EXTSYM selc0040
|
||||||
EXTSYM ModemCheckRing
|
EXTSYM TCPIPPreparePacket
|
||||||
EXTSYM ModemCheckDCD
|
EXTSYM TCPIPSendPacket,TCPIPSendPacketUDP
|
||||||
EXTSYM PreparePacketIPX,TCPIPPreparePacket
|
|
||||||
EXTSYM SendPacketIPX,TCPIPSendPacket,TCPIPSendPacketUDP
|
|
||||||
EXTSYM TCPIPDisconnect,TCPIPStatus
|
EXTSYM TCPIPDisconnect,TCPIPStatus
|
||||||
EXTSYM DeInitModemC
|
EXTSYM TCPIPStoreByte
|
||||||
EXTSYM ipxgetchar,ipxsendchar,TCPIPStoreByte
|
|
||||||
EXTSYM TCPIPGetByte,GUIBIFIL
|
EXTSYM TCPIPGetByte,GUIBIFIL
|
||||||
EXTSYM ModemSendChar
|
|
||||||
EXTSYM firstsaveinc
|
EXTSYM firstsaveinc
|
||||||
EXTSYM nssdip1,nssdip2,nssdip3,nssdip4,nssdip5,nssdip6
|
EXTSYM nssdip1,nssdip2,nssdip3,nssdip4,nssdip5,nssdip6
|
||||||
%ifndef __MSDOS__
|
|
||||||
EXTSYM GUIMBVID
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%ifdef __LINUX__
|
%ifdef __LINUX__
|
||||||
EXTSYM numlockptr
|
EXTSYM numlockptr
|
||||||
%endif
|
%endif
|
||||||
|
%ifdef __WIN32__
|
||||||
|
EXTSYM initDirectDraw
|
||||||
|
EXTSYM reInitSound
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
EXTSYM dssel, cantinitmodem, ModemClearBuffer, ModemGetChar
|
||||||
|
EXTSYM InitModem, DeInitModem, ModemCheckRing, ModemCheckDCD
|
||||||
|
EXTSYM DeInitModemC, ModemSendChar, UartType
|
||||||
|
EXTSYM deinitipx, IPXSearchval, ipxlookforconnect, initipx
|
||||||
|
EXTSYM PreparePacketIPX,SendPacketIPX,ipxgetchar,ipxsendchar
|
||||||
|
%endif
|
||||||
|
|
||||||
NEWSYM GuiAsmStart
|
NEWSYM GuiAsmStart
|
||||||
|
|
||||||
@@ -193,6 +190,7 @@ NEWSYM GuiAsmStart
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
|
|
||||||
|
|
||||||
; ProcessRemoteCommand
|
; ProcessRemoteCommand
|
||||||
@@ -597,33 +595,37 @@ NEWSYM KeyQuickClock, dd 0
|
|||||||
NEWSYM KeyQuickSaveSPC, dd 0
|
NEWSYM KeyQuickSaveSPC, dd 0
|
||||||
NEWSYM AutoIncSaveSlot, db 0
|
NEWSYM AutoIncSaveSlot, db 0
|
||||||
NEWSYM TCPIPAddress, times 29 db 0
|
NEWSYM TCPIPAddress, times 29 db 0
|
||||||
NEWSYM SoundInterpType, db 1
|
NEWSYM SoundInterpType, db 2
|
||||||
NEWSYM KeyDisplayFPS, dd 0
|
NEWSYM KeyDisplayFPS, dd 0
|
||||||
NEWSYM KeyIncStateSlot, dd 0
|
NEWSYM KeyIncStateSlot, dd 0
|
||||||
NEWSYM KeyDecStateSlot, dd 0
|
NEWSYM KeyDecStateSlot, dd 0
|
||||||
NEWSYM MotionBlur, dd 0
|
|
||||||
|
|
||||||
GUIsave equ $-GUIRAdd
|
GUIsave equ $-GUIRAdd
|
||||||
|
|
||||||
NEWSYM ForceROMTiming, db 0
|
section .bss
|
||||||
NEWSYM ForceHiLoROM, db 0
|
|
||||||
|
|
||||||
NEWSYM CombinDataGlob, times 3300 db 0 ; 20-name, 42-combo, 2-key#, 1-P#, 1-ff
|
NEWSYM ForceROMTiming, resb 1
|
||||||
NEWSYM CombinDataLocl, times 3300 db 0
|
NEWSYM ForceHiLoROM, resb 1
|
||||||
|
|
||||||
|
NEWSYM CombinDataGlob, resb 3300 ; 20-name, 42-combo, 2-key#, 1-P#, 1-ff
|
||||||
|
NEWSYM CombinDataLocl, resb 3300
|
||||||
|
|
||||||
|
section .data
|
||||||
NEWSYM CmdLineNetPlay, db 0
|
NEWSYM CmdLineNetPlay, db 0
|
||||||
NEWSYM CmdLineTCPIPAddress, times 29 db 0
|
NEWSYM CmdLineTCPIPAddress, times 29 db 0
|
||||||
|
section .bss
|
||||||
|
|
||||||
GUIwinorder times 18 db 0
|
GUIwinorder resb 18
|
||||||
GUIwinpos times 18 db 0
|
GUIwinpos resb 18
|
||||||
GUIwinactiv times 18 db 0
|
GUIwinactiv resb 18
|
||||||
DialNumber times 40 db 0
|
DialNumber resb 40
|
||||||
ViewBuffer times 50*32 db 0
|
ViewBuffer resb 50*32
|
||||||
NEWSYM ModemInitStat, db 0
|
NEWSYM ModemInitStat, resb 1
|
||||||
ModemProcess db 0 ; Shows current dial/answer process
|
ModemProcess resb 1 ; Shows current dial/answer process
|
||||||
ModemPTimer dd 0 ; Timer for modem process
|
ModemPTimer resd 1 ; Timer for modem process
|
||||||
ModemOKStat db 0 ; OK is detected on modem status
|
ModemOKStat resb 1 ; OK is detected on modem status
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
; LOAD STAT INPT OPT VID SND CHT NET GMKEY GUIOP ABT RSET SRC STCN MOVE CMBO ADDO
|
; LOAD STAT INPT OPT VID SND CHT NET GMKEY GUIOP ABT RSET SRC STCN MOVE CMBO ADDO
|
||||||
GUIwinposxo dd 0,5 ,60 ,30 ,55 ,50 ,35 ,5 ,30 ,10 ,10 ,50 ,65 ,20 ,70 ,50 ,3 ,50
|
GUIwinposxo dd 0,5 ,60 ,30 ,55 ,50 ,35 ,5 ,30 ,10 ,10 ,50 ,65 ,20 ,70 ,50 ,3 ,50
|
||||||
GUIwinposyo dd 0,20 ,70 ,30 ,20 ,20 ,20 ,20 ,30 ,20 ,20 ,20 ,60 ,30 ,65 ,50 ,22 ,60
|
GUIwinposyo dd 0,20 ,70 ,30 ,20 ,20 ,20 ,20 ,30 ,20 ,20 ,20 ,60 ,30 ,65 ,50 ,22 ,60
|
||||||
@@ -631,125 +633,133 @@ GUIwinsizex dd 0,244 ,126 ,189 ,167 ,170 ,188 ,244 ,8*16,235 ,240 ,190 ,9*16,8
|
|||||||
GUIwinsizey dd 0,190 ,3*16,166 ,190 ,192 ,188 ,191 ,40 ,189 ,150 ,190 ,42 ,40 ,42 ,70 ,190 ,100
|
GUIwinsizey dd 0,190 ,3*16,166 ,190 ,192 ,188 ,191 ,40 ,189 ,150 ,190 ,42 ,40 ,42 ,70 ,190 ,100
|
||||||
GUIwinptr db 0
|
GUIwinptr db 0
|
||||||
|
|
||||||
GUItextcolor db 0,0,0,0,0
|
section .bss
|
||||||
GUIcmenupos db 0
|
GUItextcolor resb 5
|
||||||
GUIescpress db 0
|
GUIcmenupos resb 1
|
||||||
GUIcwinpress db 0
|
GUIescpress resb 1
|
||||||
GUIpmenupos db 0
|
GUIcwinpress resb 1
|
||||||
GUIcrowpos dd 0
|
GUIpmenupos resb 1
|
||||||
GUIpclicked db 0
|
GUIcrowpos resd 1
|
||||||
GUImouseposx dd 0
|
GUIpclicked resb 1
|
||||||
GUImouseposy dd 0
|
GUImouseposx resd 1
|
||||||
GUICYLocPtr dd 0
|
GUImouseposy resd 1
|
||||||
GUIMenuL dd 0
|
GUICYLocPtr resd 1
|
||||||
GUIMenuR dd 0
|
GUIMenuL resd 1
|
||||||
GUIMenuD dd 0
|
GUIMenuR resd 1
|
||||||
GUIOnMenuItm db 0
|
GUIMenuD resd 1
|
||||||
NEWSYM GUIQuit, db 0
|
GUIOnMenuItm resb 1
|
||||||
GUIHold db 0
|
NEWSYM GUIQuit, resb 1
|
||||||
GUIHoldx dd 0
|
GUIHold resb 1
|
||||||
GUIHoldy dd 0
|
GUIHoldx resd 1
|
||||||
GUIHoldxm dd 0
|
GUIHoldy resd 1
|
||||||
GUIHoldym dd 0
|
GUIHoldxm resd 1
|
||||||
GUIcolscaleval dd 0
|
GUIHoldym resd 1
|
||||||
cwindrawn db 0
|
GUIcolscaleval resd 1
|
||||||
GUIWincol dd 0
|
cwindrawn resb 1
|
||||||
GUIWincoladd dd 0
|
GUIWincol resd 1
|
||||||
GUITemp dd 0
|
GUIWincoladd resd 1
|
||||||
GUIHoldXlimL dd 0
|
GUITemp resd 1
|
||||||
GUIHoldXlimR dd 0
|
GUIHoldXlimL resd 1
|
||||||
GUIHoldYlim dd 0
|
GUIHoldXlimR resd 1
|
||||||
GUIHoldYlimR dd 0
|
GUIHoldYlim resd 1
|
||||||
cloadnpos dd 0
|
GUIHoldYlimR resd 1
|
||||||
cloadnposb dd 0
|
cloadnpos resd 1
|
||||||
cloadmaxlen dd 0
|
cloadnposb resd 1
|
||||||
cloadnleft dd 0
|
cloadmaxlen resd 1
|
||||||
cplayernum db 0
|
cloadnleft resd 1
|
||||||
vbuflimtop dd 0
|
cplayernum resb 1
|
||||||
vbuflimbot dd 0
|
vbuflimtop resd 1
|
||||||
GUIScrolTim1 dd 0
|
vbuflimbot resd 1
|
||||||
GUIScrolTim2 dd 0
|
GUIScrolTim1 resd 1
|
||||||
GUICHold dd 0
|
GUIScrolTim2 resd 1
|
||||||
GUICBHold dd 0
|
GUICHold resd 1
|
||||||
GUICBHold2 dd 0
|
GUICBHold resd 1
|
||||||
GUIDClickTL dd 0
|
GUICBHold2 resd 1
|
||||||
GUIDClCWin dd 0
|
GUIDClickTL resd 1
|
||||||
GUIDClCEntry dd 0
|
GUIDClCWin resd 1
|
||||||
GUICResetPos dd 0
|
GUIDClCEntry resd 1
|
||||||
GUICStatePos dd 0
|
GUICResetPos resd 1
|
||||||
GUICCFlash db 0
|
GUICStatePos resd 1
|
||||||
GUILDFlash db 0
|
GUICCFlash resb 1
|
||||||
GUIPalConv dd 0
|
GUILDFlash resb 1
|
||||||
PrevResoln dw 0
|
GUIPalConv resd 1
|
||||||
SnowMover dd 0
|
PrevResoln resw 1
|
||||||
keycontrolval dd 0
|
SnowMover resd 1
|
||||||
NEWSYM CheatBDoor, db 0
|
keycontrolval resd 1
|
||||||
NEWSYM ShowTimer, db 0
|
NEWSYM CheatBDoor, resb 1
|
||||||
NEWSYM MousePRClick, db 0
|
NEWSYM ShowTimer, resb 1
|
||||||
NEWSYM MouseDis, db 0
|
NEWSYM MousePRClick, resb 1
|
||||||
NEWSYM NetPlayNoMore, db 0
|
NEWSYM MouseDis, resb 1
|
||||||
RestoreValues db 0
|
NEWSYM NetPlayNoMore, resb 1
|
||||||
NEWSYM NetChatFirst, db 0
|
RestoreValues resb 1
|
||||||
NEWSYM NetServer, db 0
|
NEWSYM NetChatFirst, resb 1
|
||||||
NEWSYM NetQuitAfter, db 0
|
NEWSYM NetServer, resb 1
|
||||||
NEWSYM NetNewNick, times 16 db 0
|
NEWSYM NetQuitAfter, resb 1
|
||||||
NEWSYM NetFilename, times 512 db 0
|
NEWSYM NetNewNick, resb 16
|
||||||
|
NEWSYM NetFilename, resb 512
|
||||||
|
|
||||||
NEWSYM CheatOn, dd 0
|
NEWSYM CheatOn, resd 1
|
||||||
NEWSYM NumCheats, dd 0
|
NEWSYM NumCheats, resd 1
|
||||||
NEWSYM cheatdataprev, times 28 db 0 ; leave contents blank
|
NEWSYM cheatdataprev, resb 28 ; leave contents blank
|
||||||
NEWSYM cheatdata, times 28*255+56 db 0 ; toggle, value, address, pvalue, name(22)
|
NEWSYM cheatdata, resb 28*255+56 ; toggle, value, address, pvalue, name(22)
|
||||||
|
|
||||||
NEWSYM GUIcurrentdir, times 131 db 0
|
NEWSYM GUIcurrentdir, resb 131
|
||||||
|
|
||||||
numdrives dd 26
|
curgsval resb 1
|
||||||
curgsval db 0
|
|
||||||
|
SECTION .data
|
||||||
|
NEWSYM numdrives, dd 26
|
||||||
SubPalTable times 256 db 1 ; Corresponding Gray Scale Color
|
SubPalTable times 256 db 1 ; Corresponding Gray Scale Color
|
||||||
WhichRemote dd 0 ; Modem = 1, IPX = 2, TCP/IP = 4
|
|
||||||
Connected dd 0
|
|
||||||
IDCheckPos dd 0
|
|
||||||
|
|
||||||
NEWSYM pl1neten, db 0
|
SECTION .bss
|
||||||
NEWSYM pl2neten, db 0
|
WhichRemote resd 1 ; Modem = 1, IPX = 2, TCP/IP = 4
|
||||||
NEWSYM pl3neten, db 0
|
Connected resd 1
|
||||||
NEWSYM pl4neten, db 0
|
IDCheckPos resd 1
|
||||||
NEWSYM pl5neten, db 0
|
|
||||||
NEWSYM cnetplaybuf, times 512 db 0
|
NEWSYM pl1neten, resb 1
|
||||||
NEWSYM cnetptrhead, dd 0
|
NEWSYM pl2neten, resb 1
|
||||||
NEWSYM cnetptrtail, dd 0
|
NEWSYM pl3neten, resb 1
|
||||||
NEWSYM prevp1net, dd 0
|
NEWSYM pl4neten, resb 1
|
||||||
NEWSYM prevp2net, dd 0
|
NEWSYM pl5neten, resb 1
|
||||||
NEWSYM prevp3net, dd 0
|
NEWSYM cnetplaybuf, resb 512
|
||||||
NEWSYM prevp4net, dd 0
|
NEWSYM cnetptrhead, resd 1
|
||||||
NEWSYM prevp5net, dd 0
|
NEWSYM cnetptrtail, resd 1
|
||||||
NEWSYM netdelayed, db 0
|
NEWSYM prevp1net, resd 1
|
||||||
NEWSYM ChatProgress,dd 0
|
NEWSYM prevp2net, resd 1
|
||||||
NEWSYM RecvProgress,dd 0
|
NEWSYM prevp3net, resd 1
|
||||||
NEWSYM IPXInfoStr, dw 0
|
NEWSYM prevp4net, resd 1
|
||||||
NEWSYM IPXInfoStrR, dw 0
|
NEWSYM prevp5net, resd 1
|
||||||
NEWSYM GUICMessage, dd 0
|
NEWSYM netdelayed, resb 1
|
||||||
NEWSYM GUICTimer, dd 0
|
NEWSYM ChatProgress,resd 1
|
||||||
NEWSYM GUIOn, db 0
|
NEWSYM RecvProgress,resd 1
|
||||||
NEWSYM GUIOn2, db 0
|
NEWSYM IPXInfoStr, resw 1
|
||||||
NEWSYM GUIReset, db 0
|
NEWSYM IPXInfoStrR, resw 1
|
||||||
|
NEWSYM GUICMessage, resd 1
|
||||||
|
NEWSYM GUICTimer, resd 1
|
||||||
|
NEWSYM GUIOn, resb 1
|
||||||
|
NEWSYM GUIOn2, resb 1
|
||||||
|
NEWSYM GUIReset, resb 1
|
||||||
;GOSPort db 0
|
;GOSPort db 0
|
||||||
NEWSYM CurPalSelect, db 0
|
NEWSYM CurPalSelect, resb 1
|
||||||
|
NEWSYM MotionBlur, resb 1
|
||||||
|
|
||||||
NEWSYM StartLL, dd 0
|
NEWSYM StartLL, resd 1
|
||||||
NEWSYM StartLR, dd 0
|
NEWSYM StartLR, resd 1
|
||||||
NEWSYM LatencyVal, times 32 db 0
|
NEWSYM LatencyVal, resb 32
|
||||||
|
|
||||||
NEWSYM NetLoadState, db 0
|
NEWSYM NetLoadState, resb 1
|
||||||
|
|
||||||
NEWSYM TRVal, dw 0
|
NEWSYM TRVal, resw 1
|
||||||
NEWSYM TGVal, dw 0
|
NEWSYM TGVal, resw 1
|
||||||
NEWSYM TBVal, dw 0
|
NEWSYM TBVal, resw 1
|
||||||
NEWSYM TRVali, dw 0
|
NEWSYM TRVali, resw 1
|
||||||
NEWSYM TGVali, dw 0
|
NEWSYM TGVali, resw 1
|
||||||
NEWSYM TBVali, dw 0
|
NEWSYM TBVali, resw 1
|
||||||
NEWSYM TRVal2, dw 0
|
NEWSYM TRVal2, resw 1
|
||||||
NEWSYM TGVal2, dw 0
|
NEWSYM TGVal2, resw 1
|
||||||
NEWSYM TBVal2, dw 0
|
NEWSYM TBVal2, resw 1
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
%macro stim 0
|
%macro stim 0
|
||||||
%ifdef __MSDOS__
|
%ifdef __MSDOS__
|
||||||
@@ -1032,14 +1042,14 @@ NEWSYM ExecGUISaveVars
|
|||||||
call GUIDeInit
|
call GUIDeInit
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
SECTION .data
|
SECTION .bss
|
||||||
NEWSYM GUIoldhand9o, dd 0
|
NEWSYM GUIoldhand9o, resd 1
|
||||||
NEWSYM GUIoldhand9s, dw 0
|
NEWSYM GUIoldhand9s, resw 1
|
||||||
NEWSYM GUIoldhand8o, dd 0
|
NEWSYM GUIoldhand8o, resd 1
|
||||||
NEWSYM GUIoldhand8s, dw 0
|
NEWSYM GUIoldhand8s, resw 1
|
||||||
GUIt1cc dd 0
|
GUIt1cc resd 1
|
||||||
GUIt1ccSwap db 0
|
GUIt1ccSwap resb 1
|
||||||
GUIskipnextkey42 db 0
|
GUIskipnextkey42 resb 1
|
||||||
|
|
||||||
SECTION .text
|
SECTION .text
|
||||||
NEWSYM GUIinit18_2hz
|
NEWSYM GUIinit18_2hz
|
||||||
@@ -1099,6 +1109,7 @@ NEWSYM GUI36hzcall
|
|||||||
and byte[GUINetTextm2+2],0Fh
|
and byte[GUINetTextm2+2],0Fh
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
%ifdef __MSDOS__
|
||||||
NEWSYM GUIhandler8h
|
NEWSYM GUIhandler8h
|
||||||
cli
|
cli
|
||||||
push ds
|
push ds
|
||||||
@@ -1166,6 +1177,7 @@ NEWSYM GUIhandler9h
|
|||||||
pop ds
|
pop ds
|
||||||
sti
|
sti
|
||||||
iretd
|
iretd
|
||||||
|
%endif
|
||||||
|
|
||||||
%macro loadmenuopen 1
|
%macro loadmenuopen 1
|
||||||
mov al,[GUIcmenupos]
|
mov al,[GUIcmenupos]
|
||||||
@@ -1211,7 +1223,9 @@ loadnetopen:
|
|||||||
loadmenuopen 8
|
loadmenuopen 8
|
||||||
ret
|
ret
|
||||||
|
|
||||||
MouseInitOkay db 0
|
SECTION .bss
|
||||||
|
MouseInitOkay resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
LoadDetermine:
|
LoadDetermine:
|
||||||
mov byte[GUIGameMenuData+14],1
|
mov byte[GUIGameMenuData+14],1
|
||||||
@@ -1333,7 +1347,9 @@ DrawSnow:
|
|||||||
.nomore
|
.nomore
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.giftmsg db 'A GIFT TO YOU IN THE OPTIONS!',0
|
.giftmsg db 'A GIFT TO YOU IN THE OPTIONS!',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
ProcessSnowVelocity:
|
ProcessSnowVelocity:
|
||||||
cmp dword[MsgGiftLeft],0
|
cmp dword[MsgGiftLeft],0
|
||||||
@@ -1388,8 +1404,11 @@ ProcessSnowVelocity:
|
|||||||
jnz .loop
|
jnz .loop
|
||||||
ret
|
ret
|
||||||
|
|
||||||
OkaySC db 0
|
SECTION .bss
|
||||||
|
OkaySC resb 1
|
||||||
|
SECTION .data
|
||||||
cstempfname db 'tmpchtsr.___',0
|
cstempfname db 'tmpchtsr.___',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
|
|
||||||
NEWSYM SaveSramData
|
NEWSYM SaveSramData
|
||||||
@@ -1465,7 +1484,9 @@ NEWSYM ProcRewind
|
|||||||
mov dword[eax+8],0
|
mov dword[eax+8],0
|
||||||
.noteq
|
.noteq
|
||||||
ret
|
ret
|
||||||
.temp dd 0,0
|
section .bss
|
||||||
|
.temp resd 2
|
||||||
|
section .text
|
||||||
|
|
||||||
%macro ProcessOneDigit 1
|
%macro ProcessOneDigit 1
|
||||||
cmp dl,9
|
cmp dl,9
|
||||||
@@ -1500,7 +1521,9 @@ NEWSYM TestSent
|
|||||||
mov dword[GUICMessage],.message
|
mov dword[GUICMessage],.message
|
||||||
mov dword[GUICTimer],100000
|
mov dword[GUICTimer],100000
|
||||||
ret
|
ret
|
||||||
|
SECTION .data
|
||||||
.message db 0,0,0,0,' ',0,0,0,0,0,0,0
|
.message db 0,0,0,0,' ',0,0,0,0,0,0,0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM StartGUI
|
NEWSYM StartGUI
|
||||||
; cmp byte[OSPort],1
|
; cmp byte[OSPort],1
|
||||||
@@ -1846,12 +1869,14 @@ NEWSYM StartGUI
|
|||||||
mov byte[GUIcmenupos],0
|
mov byte[GUIcmenupos],0
|
||||||
mov byte[GUIcrowpos],0
|
mov byte[GUIcrowpos],0
|
||||||
call loadnetopen
|
call loadnetopen
|
||||||
|
%ifdef __MSDOS__
|
||||||
cmp byte[WhichRemote],1
|
cmp byte[WhichRemote],1
|
||||||
jne .yesdcd
|
jne .yesdcd
|
||||||
call ModemCheckDCD
|
call ModemCheckDCD
|
||||||
cmp al,1
|
cmp al,1
|
||||||
jne near .nostat20
|
jne near .nostat20
|
||||||
.yesdcd
|
.yesdcd
|
||||||
|
%endif
|
||||||
|
|
||||||
mov byte[RestoreValues],1
|
mov byte[RestoreValues],1
|
||||||
pushad
|
pushad
|
||||||
@@ -2029,7 +2054,8 @@ NEWSYM StartGUI
|
|||||||
.nowater2
|
.nowater2
|
||||||
cmp byte[GUIEffect],4
|
cmp byte[GUIEffect],4
|
||||||
jne .nosmoke
|
jne .nosmoke
|
||||||
call DrawSmoke
|
; call DrawSmoke
|
||||||
|
call DrawBurn
|
||||||
.nosmoke
|
.nosmoke
|
||||||
; call TestSent
|
; call TestSent
|
||||||
cmp byte[CNetType],20
|
cmp byte[CNetType],20
|
||||||
@@ -2087,6 +2113,7 @@ NEWSYM StartGUI
|
|||||||
jne near .nomodem
|
jne near .nomodem
|
||||||
.modem
|
.modem
|
||||||
call ProcessModem
|
call ProcessModem
|
||||||
|
%ifdef __MSDOS__
|
||||||
cmp byte[Connected],1
|
cmp byte[Connected],1
|
||||||
je near .nomodem
|
je near .nomodem
|
||||||
call ModemGetChar
|
call ModemGetChar
|
||||||
@@ -2121,6 +2148,7 @@ NEWSYM StartGUI
|
|||||||
.skipstat
|
.skipstat
|
||||||
mov dh,0
|
mov dh,0
|
||||||
call NetAddChar
|
call NetAddChar
|
||||||
|
%endif
|
||||||
.nomodem
|
.nomodem
|
||||||
|
|
||||||
cmp dword[GUIEditStringcWin],0
|
cmp dword[GUIEditStringcWin],0
|
||||||
@@ -2249,7 +2277,8 @@ NEWSYM StartGUI
|
|||||||
mov dword[nmirept],0
|
mov dword[nmirept],0
|
||||||
mov dword[nmiprevline],224
|
mov dword[nmiprevline],224
|
||||||
mov dword[nmistatus],0
|
mov dword[nmistatus],0
|
||||||
mov byte[spcnumread],0
|
mov dword[spcnumread],0
|
||||||
|
mov dword[spchalted],-1
|
||||||
mov byte[NextLineCache],0
|
mov byte[NextLineCache],0
|
||||||
mov byte[DSPMem+08h],0
|
mov byte[DSPMem+08h],0
|
||||||
mov byte[DSPMem+18h],0
|
mov byte[DSPMem+18h],0
|
||||||
@@ -2474,8 +2503,12 @@ NEWSYM StartGUI
|
|||||||
call WinErrorB
|
call WinErrorB
|
||||||
jmp continueprog
|
jmp continueprog
|
||||||
|
|
||||||
CheckSumVal dd 0
|
SECTION .bss
|
||||||
|
CheckSumVal resd 1
|
||||||
|
SECTION .data
|
||||||
WrongCheckSum db 10,13,'ROM Data Mismatch',10,13,10,13,0
|
WrongCheckSum db 10,13,'ROM Data Mismatch',10,13,10,13,0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
|
|
||||||
SRAMDirc:
|
SRAMDirc:
|
||||||
; get LoadDrive/LoadDir
|
; get LoadDrive/LoadDir
|
||||||
@@ -2550,6 +2583,7 @@ guifirsttimemsg:
|
|||||||
.mousedis2
|
.mousedis2
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
guiftimemsg1 db 'ONE TIME USER REMINDER :',0
|
guiftimemsg1 db 'ONE TIME USER REMINDER :',0
|
||||||
guiftimemsg2 db 'PLEASE BE SURE TO READ',0
|
guiftimemsg2 db 'PLEASE BE SURE TO READ',0
|
||||||
guiftimemsg3 db 'GUINOTES.TXT FOR AN',0
|
guiftimemsg3 db 'GUINOTES.TXT FOR AN',0
|
||||||
@@ -2558,6 +2592,7 @@ guiftimemsg5 db 'ALSO, WHENEVER YOU HAVE',0
|
|||||||
guiftimemsg6 db 'PROBLEMS, BE SURE TO READ',0
|
guiftimemsg6 db 'PROBLEMS, BE SURE TO READ',0
|
||||||
guiftimemsg7 db 'ZSNES.FAQ AND README.TXT',0
|
guiftimemsg7 db 'ZSNES.FAQ AND README.TXT',0
|
||||||
guiftimemsg8 db 'PRESS "Z" TO CONTINUE.',0
|
guiftimemsg8 db 'PRESS "Z" TO CONTINUE.',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
guimustrestartmsg:
|
guimustrestartmsg:
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
@@ -2623,11 +2658,13 @@ guimustrestartmsg:
|
|||||||
mov byte[GUIQuit],1
|
mov byte[GUIQuit],1
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
guiqtimemsg1 db 'ZSNES MUST BE RESTARTED',0
|
guiqtimemsg1 db 'ZSNES MUST BE RESTARTED',0
|
||||||
guiqtimemsg2 db 'TO USE THIS OPTION.',0
|
guiqtimemsg2 db 'TO USE THIS OPTION.',0
|
||||||
guiqtimemsg3 db 'THIS PROGRAM WILL NOW',0
|
guiqtimemsg3 db 'THIS PROGRAM WILL NOW',0
|
||||||
guiqtimemsg4 db 'EXIT.',0
|
guiqtimemsg4 db 'EXIT.',0
|
||||||
guiqtimemsg8 db 'PRESS ANY KEY.',0
|
guiqtimemsg8 db 'PRESS ANY KEY.',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
guiprevideo:
|
guiprevideo:
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
@@ -2695,6 +2732,7 @@ guiprevideo:
|
|||||||
.mousedis2
|
.mousedis2
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
guiprevidmsg1 db 'ZSNES WILL NOW ATTEMPT',0
|
guiprevidmsg1 db 'ZSNES WILL NOW ATTEMPT',0
|
||||||
guiprevidmsg2 db 'TO CHANGE YOUR VIDEO',0
|
guiprevidmsg2 db 'TO CHANGE YOUR VIDEO',0
|
||||||
guiprevidmsg3 db 'MODE. IF THE CHANGE',0
|
guiprevidmsg3 db 'MODE. IF THE CHANGE',0
|
||||||
@@ -2702,6 +2740,7 @@ guiprevidmsg4 db 'IS UNSUCCESSFUL, WAIT',0
|
|||||||
guiprevidmsg5 db '10 SECONDS AND VIDEO',0
|
guiprevidmsg5 db '10 SECONDS AND VIDEO',0
|
||||||
guiprevidmsg6 db 'MODE WILL BE RESET',0
|
guiprevidmsg6 db 'MODE WILL BE RESET',0
|
||||||
guiprevidmsg7 db 'PRESS ANY KEY',0
|
guiprevidmsg7 db 'PRESS ANY KEY',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
guipostvideo:
|
guipostvideo:
|
||||||
mov ecx,255*144
|
mov ecx,255*144
|
||||||
@@ -2790,8 +2829,10 @@ guipostvideo:
|
|||||||
mov byte[GUIpclicked],1
|
mov byte[GUIpclicked],1
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
guipostvidmsg1 db 'VIDEO MODE CHANGED.',0
|
guipostvidmsg1 db 'VIDEO MODE CHANGED.',0
|
||||||
guipostvidmsg2 db 'PRESS ANY KEY',0
|
guipostvidmsg2 db 'PRESS ANY KEY',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
guipostvideofail:
|
guipostvideofail:
|
||||||
mov dword[guipostvidptr],guipostvidmsg3b
|
mov dword[guipostvidptr],guipostvidmsg3b
|
||||||
@@ -2883,13 +2924,16 @@ guipostvideofail:
|
|||||||
%endif
|
%endif
|
||||||
jmp guipostvideo.pressedfail
|
jmp guipostvideo.pressedfail
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
guipostvidmsg1b db 'VIDEO MODE CHANGE FAILED.',0
|
guipostvidmsg1b db 'VIDEO MODE CHANGE FAILED.',0
|
||||||
guipostvidmsg2b db 'UNABLE TO INIT VESA2:',0
|
guipostvidmsg2b db 'UNABLE TO INIT VESA2:',0
|
||||||
guipostvidmsg3b db 'AAAAAAAAAAAAAAAAAAAAAAAAA',0
|
guipostvidmsg3b db 'AAAAAAAAAAAAAAAAAAAAAAAAA',0
|
||||||
guipostvidmsg4b db 'AAAAAAAAAAAAAAAAAAAAAAAAA',0
|
guipostvidmsg4b db 'AAAAAAAAAAAAAAAAAAAAAAAAA',0
|
||||||
guipostvidmsg5b db 'AAAAAAAAAAAAAAAAAAAAAAAAA',0
|
guipostvidmsg5b db 'AAAAAAAAAAAAAAAAAAAAAAAAA',0
|
||||||
guipostvidmsg8b db 'PRESS ANY KEY',0
|
guipostvidmsg8b db 'PRESS ANY KEY',0
|
||||||
guipostvidptr dd 0
|
SECTION .bss
|
||||||
|
guipostvidptr resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
GUILoadManualDir
|
GUILoadManualDir
|
||||||
mov ebx,GUILoadTextA
|
mov ebx,GUILoadTextA
|
||||||
@@ -2982,14 +3026,18 @@ GUILoadManualDir
|
|||||||
.norefresh
|
.norefresh
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ManualCPtr dd 0
|
SECTION .bss
|
||||||
ManualStatus db 0
|
ManualCPtr resd 1
|
||||||
|
ManualStatus resb 1
|
||||||
|
|
||||||
NEWSYM MovieCounter, dd 0
|
NEWSYM MovieCounter, resd 1
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
UnableMovie2 db 'MUST PLAY WITH SOUND OFF',0
|
UnableMovie2 db 'MUST PLAY WITH SOUND OFF',0
|
||||||
UnableMovie3 db 'MUST PLAY WITH SOUND ON',0
|
UnableMovie3 db 'MUST PLAY WITH SOUND ON',0
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
MoviePlay:
|
MoviePlay:
|
||||||
cmp byte[CNetType],20
|
cmp byte[CNetType],20
|
||||||
je near .dontplay
|
je near .dontplay
|
||||||
@@ -3029,7 +3077,8 @@ MoviePlay:
|
|||||||
mov dword[nmirept],0
|
mov dword[nmirept],0
|
||||||
mov dword[nmiprevline],224
|
mov dword[nmiprevline],224
|
||||||
mov dword[nmistatus],0
|
mov dword[nmistatus],0
|
||||||
mov byte[spcnumread],0
|
mov dword[spcnumread],0
|
||||||
|
mov dword[spchalted],-1
|
||||||
mov byte[NextLineCache],0
|
mov byte[NextLineCache],0
|
||||||
.noextra
|
.noextra
|
||||||
mov al,[RecData]
|
mov al,[RecData]
|
||||||
@@ -3077,12 +3126,15 @@ MoviePlay:
|
|||||||
pop eax
|
pop eax
|
||||||
ret
|
ret
|
||||||
|
|
||||||
NEWSYM Totalbyteloaded, dd 0
|
SECTION .bss
|
||||||
NEWSYM sramsavedis, db 0
|
NEWSYM Totalbyteloaded, resd 1
|
||||||
|
NEWSYM sramsavedis, resb 1
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
DevicePtr dd pl1selk,pl2selk,pl3selk,pl4selk,pl5selk
|
DevicePtr dd pl1selk,pl2selk,pl3selk,pl4selk,pl5selk
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
CheckMenuItemHelp:
|
CheckMenuItemHelp:
|
||||||
mov al,[GUIcmenupos]
|
mov al,[GUIcmenupos]
|
||||||
mov [GUIpmenupos],al
|
mov [GUIpmenupos],al
|
||||||
@@ -3370,7 +3422,9 @@ GUITryMenuItem:
|
|||||||
.nomisc
|
.nomisc
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.message1 db 'CONFIGURATION FILES SAVED.',0
|
.message1 db 'CONFIGURATION FILES SAVED.',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
DisplayBoxes:
|
DisplayBoxes:
|
||||||
xor esi,esi
|
xor esi,esi
|
||||||
@@ -3585,8 +3639,9 @@ GUIProcReset:
|
|||||||
dec byte[GUIwinptr]
|
dec byte[GUIwinptr]
|
||||||
ret
|
ret
|
||||||
|
|
||||||
LoadDuplicFound db 0
|
SECTION .bss
|
||||||
|
LoadDuplicFound resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
%macro GUIDMHelp 4
|
%macro GUIDMHelp 4
|
||||||
mov byte[GUItextcolor],46
|
mov byte[GUItextcolor],46
|
||||||
@@ -4289,7 +4344,9 @@ GUISetPal:
|
|||||||
jnz .next
|
jnz .next
|
||||||
ret
|
ret
|
||||||
|
|
||||||
NEWSYM GUICPC, times 256 dw 0
|
SECTION .bss ;ALIGN=32
|
||||||
|
NEWSYM GUICPC, resw 256
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
%macro GUIPal16b 4
|
%macro GUIPal16b 4
|
||||||
mov ax,%2
|
mov ax,%2
|
||||||
@@ -4746,9 +4803,11 @@ GUISetPal16:
|
|||||||
jnz .next
|
jnz .next
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.multab db 1,1,1,2,2,3,4,4,5,6,6,7,8,8,9,10,10,11,12,12,13,14,14,15,16,16,
|
.multab db 1,1,1,2,2,3,4,4,5,6,6,7,8,8,9,10,10,11,12,12,13,14,14,15,16,16,
|
||||||
db 17,18,18,19,20,20,21,22,22,23,24,24,25,26,26,27,28,28,29,30,30,
|
db 17,18,18,19,20,20,21,22,22,23,24,24,25,26,26,27,28,28,29,30,30,
|
||||||
db 31
|
db 31
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
GUIBufferData:
|
GUIBufferData:
|
||||||
mov ecx,16384
|
mov ecx,16384
|
||||||
@@ -4906,6 +4965,7 @@ GUIconvpal:
|
|||||||
mov [cgram],ax
|
mov [cgram],ax
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
GUIMousePtr db 50+88,47+88,45+88,43+88,42+88,00,00,00
|
GUIMousePtr db 50+88,47+88,45+88,43+88,42+88,00,00,00
|
||||||
db 53+88,52+88,46+88,42+88,00,00,00,00
|
db 53+88,52+88,46+88,42+88,00,00,00,00
|
||||||
db 55+88,54+88,54+88,44+88,00,00,00,00
|
db 55+88,54+88,54+88,44+88,00,00,00,00
|
||||||
@@ -5505,4 +5565,6 @@ db 57,103,110,236,113,118,203,200,22,87,251,7,138,37,12,84,221,171,51,209
|
|||||||
db 242,37,89,73,151,162,139,189,131,209,221,96,107,144,175,79,199,123,98,138
|
db 242,37,89,73,151,162,139,189,131,209,221,96,107,144,175,79,199,123,98,138
|
||||||
db 226,86,221,254,72,14,126,180,200,171,85,94,120,124,196,225,150,57,219,158
|
db 226,86,221,254,72,14,126,180,200,171,85,94,120,124,196,225,150,57,219,158
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM GuiAsmEnd
|
NEWSYM GuiAsmEnd
|
||||||
|
|||||||
@@ -222,8 +222,10 @@ CheatCodeSearchProcess:
|
|||||||
mov byte[CopyRamToggle],1
|
mov byte[CopyRamToggle],1
|
||||||
ret
|
ret
|
||||||
|
|
||||||
CopyRamToggle db 0
|
SECTION .bss
|
||||||
FirstSearch db 0
|
CopyRamToggle resb 1
|
||||||
|
FirstSearch resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
CheatCodeSearchInit:
|
CheatCodeSearchInit:
|
||||||
mov byte[CSInputDisplay],'_'
|
mov byte[CSInputDisplay],'_'
|
||||||
@@ -1189,7 +1191,9 @@ decodegg:
|
|||||||
mov dword[GUIcurrentcheatviewloc],0
|
mov dword[GUIcurrentcheatviewloc],0
|
||||||
.noview
|
.noview
|
||||||
ret
|
ret
|
||||||
|
SECTION .data
|
||||||
.GG2Norm db 04h,06h,0Dh,0Eh,02h,07h,08h,03h,0Bh,05h,0Ch,09h,0Ah,00h,0Fh,01h
|
.GG2Norm db 04h,06h,0Dh,0Eh,02h,07h,08h,03h,0Bh,05h,0Ch,09h,0Ah,00h,0Fh,01h
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
decodepar:
|
decodepar:
|
||||||
; convert code to number format
|
; convert code to number format
|
||||||
@@ -1344,10 +1348,12 @@ guicheaterror:
|
|||||||
mov dword[GUIcurrentcheatwin],1
|
mov dword[GUIcurrentcheatwin],1
|
||||||
mov byte[GUIpclicked],1
|
mov byte[GUIpclicked],1
|
||||||
ret
|
ret
|
||||||
|
SECTION .data
|
||||||
guicheaterror1 db 'INVALID CODE! YOU',0
|
guicheaterror1 db 'INVALID CODE! YOU',0
|
||||||
guicheaterror2 db 'MUST ENTER A VALID',0
|
guicheaterror2 db 'MUST ENTER A VALID',0
|
||||||
guicheaterror3 db 'GAME GENIE,PAR, OR',0
|
guicheaterror3 db 'GAME GENIE,PAR, OR',0
|
||||||
guicheaterror4 db 'GOLD FINGER CODE.',0
|
guicheaterror4 db 'GOLD FINGER CODE.',0
|
||||||
guicheaterror5 db 'PRESS ANY KEY.',0
|
guicheaterror5 db 'PRESS ANY KEY.',0
|
||||||
guicheatvalrep db 0
|
SECTION .bss
|
||||||
|
guicheatvalrep resb 1
|
||||||
|
SECTION .text
|
||||||
|
|||||||
@@ -122,14 +122,17 @@
|
|||||||
%%noclick
|
%%noclick
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
GUIfirstkey dd 0
|
SECTION .bss
|
||||||
GUIlastkey dd 0
|
GUIfirstkey resd 1
|
||||||
NEWSYM GUIkeydelay, dd 0
|
GUIlastkey resd 1
|
||||||
NEWSYM GUIkeydelay2, dd 0
|
NEWSYM GUIkeydelay, resd 1
|
||||||
GUInextkeydelay dd 0
|
NEWSYM GUIkeydelay2, resd 1
|
||||||
GUIJoyPadnk db 0,0,0,0,0,0,0,0
|
GUInextkeydelay resd 1
|
||||||
NEWSYM GUIDelayB, db 0
|
GUIJoyPadnk resb 8
|
||||||
UseExtKey db 0
|
NEWSYM GUIDelayB, resb 1
|
||||||
|
UseExtKey resb 1
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
GUIgetcurrentinput:
|
GUIgetcurrentinput:
|
||||||
cmp byte[HoldCommand],2
|
cmp byte[HoldCommand],2
|
||||||
@@ -331,8 +334,10 @@ GUIgetcurrentinput:
|
|||||||
cmp dh,32
|
cmp dh,32
|
||||||
jb .noprocess7
|
jb .noprocess7
|
||||||
.ret
|
.ret
|
||||||
|
%ifdef __MSDOS__
|
||||||
mov al,dh
|
mov al,dh
|
||||||
call ModemSendChar
|
call ModemSendChar
|
||||||
|
%endif
|
||||||
ret
|
ret
|
||||||
.noprocess7
|
.noprocess7
|
||||||
cmp dl,27
|
cmp dl,27
|
||||||
@@ -352,17 +357,21 @@ GUIgetcurrentinput:
|
|||||||
jmp .nonetwin
|
jmp .nonetwin
|
||||||
.yesnet15
|
.yesnet15
|
||||||
mov byte[CNetType],0
|
mov byte[CNetType],0
|
||||||
|
%ifdef __MSDOS__
|
||||||
; cmp byte[OSPort],1
|
; cmp byte[OSPort],1
|
||||||
; je .nodeinitipx
|
; je .nodeinitipx
|
||||||
call deinitipx
|
call deinitipx
|
||||||
.nodeinitipx
|
.nodeinitipx
|
||||||
|
%endif
|
||||||
jmp .closewin
|
jmp .closewin
|
||||||
.yesnetwin
|
.yesnetwin
|
||||||
|
%ifdef __MSDOS__
|
||||||
cmp byte[ModemInitStat],0
|
cmp byte[ModemInitStat],0
|
||||||
je .nodeinitmodem
|
je .nodeinitmodem
|
||||||
call DeInitModemC
|
call DeInitModemC
|
||||||
mov byte[ModemInitStat],0
|
mov byte[ModemInitStat],0
|
||||||
.nodeinitmodem
|
.nodeinitmodem
|
||||||
|
%endif
|
||||||
mov byte[CNetType],1
|
mov byte[CNetType],1
|
||||||
ret
|
ret
|
||||||
.nonetwin
|
.nonetwin
|
||||||
@@ -795,7 +804,9 @@ GUITCPIPKeys:
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
NEWSYM TCPIPPortNum, dd 7845
|
NEWSYM TCPIPPortNum, dd 7845
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
GUIOptionKeys:
|
GUIOptionKeys:
|
||||||
cmp dh,'a'
|
cmp dh,'a'
|
||||||
@@ -1158,16 +1169,6 @@ GUIVideoKeys:
|
|||||||
je .nohiresmode7
|
je .nohiresmode7
|
||||||
xor byte[Mode7HiRes16b],1
|
xor byte[Mode7HiRes16b],1
|
||||||
.nohiresmode7
|
.nohiresmode7
|
||||||
%ifndef __MSDOS__
|
|
||||||
cmp dh,'M'
|
|
||||||
jne .nomotionblur
|
|
||||||
xor ebx,ebx
|
|
||||||
mov bl,[cvidmode]
|
|
||||||
cmp byte[GUIMBVID+ebx],0
|
|
||||||
je .nomotionblur
|
|
||||||
xor byte[MotionBlur],1
|
|
||||||
.nomotionblur
|
|
||||||
%endif
|
|
||||||
cmp dh,'B'
|
cmp dh,'B'
|
||||||
jne .nobilinearfilter
|
jne .nobilinearfilter
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
@@ -1176,6 +1177,7 @@ GUIVideoKeys:
|
|||||||
je .nobilinearfilter
|
je .nobilinearfilter
|
||||||
xor byte[BilinearFilter],1
|
xor byte[BilinearFilter],1
|
||||||
.nobilinearfilter
|
.nobilinearfilter
|
||||||
|
%ifdef __WIN32__
|
||||||
cmp dh,'T'
|
cmp dh,'T'
|
||||||
jne .notriplebufferwin
|
jne .notriplebufferwin
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
@@ -1183,9 +1185,12 @@ GUIVideoKeys:
|
|||||||
cmp byte[GUITBWVID+eax],0
|
cmp byte[GUITBWVID+eax],0
|
||||||
je near .notriplebufferwin
|
je near .notriplebufferwin
|
||||||
xor byte[TripleBufferWin],1
|
xor byte[TripleBufferWin],1
|
||||||
mov byte[vsyncon],0
|
; mov byte[vsyncon],0
|
||||||
mov byte[cfgvsync],0
|
; mov byte[cfgvsync],0
|
||||||
|
call initDirectDraw
|
||||||
.notriplebufferwin
|
.notriplebufferwin
|
||||||
|
%endif
|
||||||
|
%ifdef __MSDOS__
|
||||||
cmp dh,'T'
|
cmp dh,'T'
|
||||||
jne .notriplebuffer
|
jne .notriplebuffer
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
@@ -1193,9 +1198,10 @@ GUIVideoKeys:
|
|||||||
cmp byte[GUITBVID+ebx],0
|
cmp byte[GUITBVID+ebx],0
|
||||||
je .notriplebuffer
|
je .notriplebuffer
|
||||||
xor byte[Triplebufen],1
|
xor byte[Triplebufen],1
|
||||||
mov byte[vsyncon],0
|
; mov byte[vsyncon],0
|
||||||
mov byte[cfgvsync],0
|
; mov byte[cfgvsync],0
|
||||||
.notriplebuffer
|
.notriplebuffer
|
||||||
|
%endif
|
||||||
cmp dh,'G'
|
cmp dh,'G'
|
||||||
jne .nograyscale
|
jne .nograyscale
|
||||||
xor byte[GrayscaleMode],1
|
xor byte[GrayscaleMode],1
|
||||||
@@ -1207,10 +1213,11 @@ GUIVideoKeys:
|
|||||||
mov al,[vsyncon]
|
mov al,[vsyncon]
|
||||||
mov [cfgvsync],al
|
mov [cfgvsync],al
|
||||||
%ifdef __WIN32__
|
%ifdef __WIN32__
|
||||||
mov byte[TripleBufferWin],0
|
; mov byte[TripleBufferWin],0
|
||||||
|
call initDirectDraw
|
||||||
%endif
|
%endif
|
||||||
%ifdef __MSDOS__
|
%ifdef __MSDOS__
|
||||||
mov byte[Triplebufen],0
|
; mov byte[Triplebufen],0
|
||||||
%endif
|
%endif
|
||||||
.novsync
|
.novsync
|
||||||
%endif
|
%endif
|
||||||
@@ -1226,6 +1233,11 @@ GUISoundKeys:
|
|||||||
cmp dh,'E'
|
cmp dh,'E'
|
||||||
jne .notenablesound
|
jne .notenablesound
|
||||||
xor byte[cfgsoundon],1
|
xor byte[cfgsoundon],1
|
||||||
|
%ifdef __WIN32__
|
||||||
|
pushad
|
||||||
|
call reInitSound
|
||||||
|
popad
|
||||||
|
%endif
|
||||||
.notenablesound
|
.notenablesound
|
||||||
%ifdef __MSDOS__
|
%ifdef __MSDOS__
|
||||||
cmp dh,'F'
|
cmp dh,'F'
|
||||||
@@ -1300,7 +1312,9 @@ GUISoundKeys:
|
|||||||
%endif
|
%endif
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.sampratenext db 1,4,5,6,2,3,0,0,0,0
|
.sampratenext db 1,4,5,6,2,3,0,0,0,0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
GUINetMenuKeys1:
|
GUINetMenuKeys1:
|
||||||
cmp dh,'a'
|
cmp dh,'a'
|
||||||
@@ -1321,22 +1335,26 @@ GUINetMenuKeys1:
|
|||||||
jne .notmanual
|
jne .notmanual
|
||||||
mov byte[CNetType],12
|
mov byte[CNetType],12
|
||||||
mov byte[ModemProcess],0
|
mov byte[ModemProcess],0
|
||||||
|
%ifdef __MSDOS__
|
||||||
cmp byte[ModemInitStat],1
|
cmp byte[ModemInitStat],1
|
||||||
je .noinit
|
je .noinit
|
||||||
call InitModem
|
call InitModem
|
||||||
mov byte[ModemInitStat],1
|
mov byte[ModemInitStat],1
|
||||||
.noinit
|
.noinit
|
||||||
|
%endif
|
||||||
ret
|
ret
|
||||||
.notmanual
|
.notmanual
|
||||||
cmp dh,'W'
|
cmp dh,'W'
|
||||||
jne .notwait
|
jne .notwait
|
||||||
mov byte[CNetType],10
|
mov byte[CNetType],10
|
||||||
mov byte[ModemProcess],0
|
mov byte[ModemProcess],0
|
||||||
|
%ifdef __MSDOS__
|
||||||
cmp byte[ModemInitStat],1
|
cmp byte[ModemInitStat],1
|
||||||
je .noinit2
|
je .noinit2
|
||||||
call InitModem
|
call InitModem
|
||||||
mov byte[ModemInitStat],1
|
mov byte[ModemInitStat],1
|
||||||
.noinit2
|
.noinit2
|
||||||
|
%endif
|
||||||
ret
|
ret
|
||||||
.notwait
|
.notwait
|
||||||
ret
|
ret
|
||||||
@@ -1357,10 +1375,12 @@ GUIGetInputLine:
|
|||||||
jne .nodial
|
jne .nodial
|
||||||
mov byte[CNetType],11
|
mov byte[CNetType],11
|
||||||
mov byte[ModemProcess],0
|
mov byte[ModemProcess],0
|
||||||
|
%ifdef __MSDOS__
|
||||||
cmp byte[ModemInitStat],1
|
cmp byte[ModemInitStat],1
|
||||||
je .noinit
|
je .noinit
|
||||||
call InitModem
|
call InitModem
|
||||||
mov byte[ModemInitStat],1
|
mov byte[ModemInitStat],1
|
||||||
|
%endif
|
||||||
.noedit
|
.noedit
|
||||||
ret
|
ret
|
||||||
.noinit
|
.noinit
|
||||||
@@ -1409,12 +1429,14 @@ GUIGetInputLine:
|
|||||||
mov [GUIEditStringcLen],eax
|
mov [GUIEditStringcLen],eax
|
||||||
ret
|
ret
|
||||||
|
|
||||||
GUIEditString dd 0 ; Pointer to string
|
SECTION .bss
|
||||||
GUIEditStringcLen dd 0 ; Pointer to end of string (done in function)
|
GUIEditString resd 1 ; Pointer to string
|
||||||
GUIEditStringmLen dd 0 ; Max length of string
|
GUIEditStringcLen resd 1 ; Pointer to end of string (done in function)
|
||||||
GUIEditStringLTxt dd 0 ; blink value, should be set to 0 when box selected
|
GUIEditStringmLen resd 1 ; Max length of string
|
||||||
GUIEditStringLstb dd 0 ; if cursor is placed (set in main function)
|
GUIEditStringLTxt resd 1 ; blink value, should be set to 0 when box selected
|
||||||
GUIEditStringcWin dd 0 ; 0 = no text window selected
|
GUIEditStringLstb resd 1 ; if cursor is placed (set in main function)
|
||||||
|
GUIEditStringcWin resd 1 ; 0 = no text window selected
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
GUIComboKeys:
|
GUIComboKeys:
|
||||||
; Calculate Position
|
; Calculate Position
|
||||||
@@ -1837,8 +1859,10 @@ InsertSearchCharacter:
|
|||||||
pop edx
|
pop edx
|
||||||
ret
|
ret
|
||||||
|
|
||||||
CSOverValue db 0
|
SECTION .bss
|
||||||
CSCurValue dd 0
|
CSOverValue resb 1
|
||||||
|
CSCurValue resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
InsertSearchDescription:
|
InsertSearchDescription:
|
||||||
mov eax,CSDescDisplay
|
mov eax,CSDescDisplay
|
||||||
@@ -2792,9 +2816,11 @@ GUILoadKeys:
|
|||||||
call GUILoadData
|
call GUILoadData
|
||||||
.notdirectload
|
.notdirectload
|
||||||
ret
|
ret
|
||||||
.foundval dd 0
|
SECTION .bss
|
||||||
.numfound dd 0
|
.foundval resd 1
|
||||||
.maxfound dd 0
|
.numfound resd 1
|
||||||
|
.maxfound resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
.dirwin
|
.dirwin
|
||||||
%ifdef __LINUX__
|
%ifdef __LINUX__
|
||||||
|
|||||||
@@ -166,7 +166,9 @@
|
|||||||
|
|
||||||
;LGUI
|
;LGUI
|
||||||
|
|
||||||
netlastloaded db 0
|
SECTION .bss
|
||||||
|
netlastloaded resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
GUIloadfilename:
|
GUIloadfilename:
|
||||||
cmp byte[CNetType],15
|
cmp byte[CNetType],15
|
||||||
@@ -266,7 +268,8 @@ GUIloadfilename:
|
|||||||
mov dword[nmirept],0
|
mov dword[nmirept],0
|
||||||
mov dword[nmiprevline],224
|
mov dword[nmiprevline],224
|
||||||
mov dword[nmistatus],0
|
mov dword[nmistatus],0
|
||||||
mov byte[spcnumread],0
|
mov dword[spcnumread],0
|
||||||
|
mov dword[spchalted],-1
|
||||||
mov byte[NextLineCache],0
|
mov byte[NextLineCache],0
|
||||||
mov byte[curexecstate],1
|
mov byte[curexecstate],1
|
||||||
|
|
||||||
@@ -339,14 +342,12 @@ GUIloadfilename:
|
|||||||
mov al,2
|
mov al,2
|
||||||
.nopal2
|
.nopal2
|
||||||
mov byte[romispal],0
|
mov byte[romispal],0
|
||||||
mov word[totlines],262
|
mov word[totlines],263
|
||||||
mov dword[MsgCount],120
|
mov dword[MsgCount],120
|
||||||
cmp al,1
|
cmp al,1
|
||||||
jbe .nopal
|
jbe .nopal
|
||||||
cmp al,0Dh
|
|
||||||
je .nopal
|
|
||||||
mov byte[romispal],1
|
mov byte[romispal],1
|
||||||
mov word[totlines],314
|
mov word[totlines],313
|
||||||
mov dword[MsgCount],100
|
mov dword[MsgCount],100
|
||||||
.nopal
|
.nopal
|
||||||
call showinfogui
|
call showinfogui
|
||||||
@@ -565,7 +566,9 @@ GUILoadData:
|
|||||||
mov byte[GUIwinorder+eax],0
|
mov byte[GUIwinorder+eax],0
|
||||||
dec byte[GUIwinptr]
|
dec byte[GUIwinptr]
|
||||||
ret
|
ret
|
||||||
|
SECTION .data
|
||||||
.drivefn db 'A:\temp.tmp',0
|
.drivefn db 'A:\temp.tmp',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
GetNormalEntries2:
|
GetNormalEntries2:
|
||||||
cmp byte[showallext],1
|
cmp byte[showallext],1
|
||||||
@@ -781,8 +784,10 @@ GetLoadLfn:
|
|||||||
pop edi
|
pop edi
|
||||||
ret
|
ret
|
||||||
|
|
||||||
LFNData times 400 db 0
|
SECTION .bss
|
||||||
LFNHandle dw 0
|
LFNData resb 400
|
||||||
|
LFNHandle resw 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
GetLoadNormal:
|
GetLoadNormal:
|
||||||
call GetNormalEntries2
|
call GetNormalEntries2
|
||||||
@@ -1035,8 +1040,11 @@ GetLoadHeader:
|
|||||||
jnz .loop3
|
jnz .loop3
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.invfile db ' ** INVALID FILE **',0
|
.invfile db ' ** INVALID FILE **',0
|
||||||
fnameheadtemp times 22 db 0
|
SECTION .bss
|
||||||
|
fnameheadtemp resb 22
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
GetNormalDirEntries2:
|
GetNormalDirEntries2:
|
||||||
GUIGetDir2
|
GUIGetDir2
|
||||||
@@ -1090,7 +1098,9 @@ GetLoadDirNormallfn:
|
|||||||
pop edi
|
pop edi
|
||||||
ret
|
ret
|
||||||
|
|
||||||
Win95Failed db 0
|
SECTION .bss
|
||||||
|
Win95Failed resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM GetCurDir
|
NEWSYM GetCurDir
|
||||||
; get Drive/Dir
|
; get Drive/Dir
|
||||||
@@ -1400,16 +1410,19 @@ GUIGetDirs:
|
|||||||
%endif
|
%endif
|
||||||
ret
|
ret
|
||||||
|
|
||||||
BubbleSorted db 0
|
SECTION .bss
|
||||||
GUIcurrentfilewin dd 0
|
BubbleSorted resb 1
|
||||||
GUIcurrentviewloc dd 0
|
GUIcurrentfilewin resd 1
|
||||||
GUIcurrentcursloc dd 0
|
GUIcurrentviewloc resd 1
|
||||||
GUIcurrentdirviewloc dd 0
|
GUIcurrentcursloc resd 1
|
||||||
GUIcurrentdircursloc dd 0
|
GUIcurrentdirviewloc resd 1
|
||||||
GUIdirStartLoc dd 0
|
GUIcurrentdircursloc resd 1
|
||||||
GUInumentries dd 0
|
GUIdirStartLoc resd 1
|
||||||
GUIdirentries dd 0
|
GUInumentries resd 1
|
||||||
GUIfileentries dd 0
|
GUIdirentries resd 1
|
||||||
|
GUIfileentries resd 0
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
%ifdef __LINUX__
|
%ifdef __LINUX__
|
||||||
NEWSYM GUIsmcfind, db '*.[sS][mM][cC]',0
|
NEWSYM GUIsmcfind, db '*.[sS][mM][cC]',0
|
||||||
NEWSYM GUIsfcfind, db '*.[sS][fF][cC]',0
|
NEWSYM GUIsfcfind, db '*.[sS][fF][cC]',0
|
||||||
@@ -1444,8 +1457,12 @@ NEWSYM GUIfindall, db '*',0
|
|||||||
GUIfindDIR db '*.*',0
|
GUIfindDIR db '*.*',0
|
||||||
NEWSYM GUIfindall, db '*.*',0
|
NEWSYM GUIfindall, db '*.*',0
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
NEWSYM DTALoc, times 2048+32 db 0
|
NEWSYM DTALoc, times 2048+32 db 0
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
; Routines to load from the Quick Menu
|
; Routines to load from the Quick Menu
|
||||||
loadquickfname:
|
loadquickfname:
|
||||||
pushad
|
pushad
|
||||||
@@ -1622,4 +1639,7 @@ loadquickfname:
|
|||||||
.failed
|
.failed
|
||||||
pop eax
|
pop eax
|
||||||
ret
|
ret
|
||||||
.temp times 256 dd 0
|
|
||||||
|
SECTION .bss
|
||||||
|
.temp resd 256
|
||||||
|
SECTION .text
|
||||||
|
|||||||
@@ -90,7 +90,8 @@ MovieRecord:
|
|||||||
mov dword[nmirept],0
|
mov dword[nmirept],0
|
||||||
mov dword[nmiprevline],224
|
mov dword[nmiprevline],224
|
||||||
mov dword[nmistatus],0
|
mov dword[nmistatus],0
|
||||||
mov byte[spcnumread],0
|
mov dword[spcnumread],0
|
||||||
|
mov dword[spchalted],-1
|
||||||
mov byte[NextLineCache],0
|
mov byte[NextLineCache],0
|
||||||
mov dword[PJoyAOrig],0
|
mov dword[PJoyAOrig],0
|
||||||
mov dword[PJoyBOrig],0
|
mov dword[PJoyBOrig],0
|
||||||
@@ -114,12 +115,15 @@ MovieRecord:
|
|||||||
.dontrecord
|
.dontrecord
|
||||||
ret
|
ret
|
||||||
|
|
||||||
MovieRecordWinVal db 0
|
SECTION .bss
|
||||||
NEWSYM MovieProcessing, db 0
|
MovieRecordWinVal resb 1
|
||||||
NEWSYM MovieFileHand, dw 0
|
NEWSYM MovieProcessing, resb 1
|
||||||
NEWSYM RepeatFrame, db 0
|
NEWSYM MovieFileHand, resw 1
|
||||||
NEWSYM RecData, times 16 db 0
|
NEWSYM RepeatFrame, resb 1
|
||||||
NEWSYM NoPictureSave, db 0
|
NEWSYM RecData, resb 16
|
||||||
|
NEWSYM NoPictureSave, resb 1
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
SkipMovie:
|
SkipMovie:
|
||||||
mov byte[MovieRecordWinVal],0
|
mov byte[MovieRecordWinVal],0
|
||||||
@@ -190,6 +194,7 @@ CalibrateDispB:
|
|||||||
call WaitForKey
|
call WaitForKey
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
guicalberror1 db 'PRESS THE TOP LEFT',0
|
guicalberror1 db 'PRESS THE TOP LEFT',0
|
||||||
guicalberror2 db 'CORNER AND PRESS A',0
|
guicalberror2 db 'CORNER AND PRESS A',0
|
||||||
guicalberror3 db 'BUTTON OR KEY',0
|
guicalberror3 db 'BUTTON OR KEY',0
|
||||||
@@ -197,6 +202,7 @@ guicalberror4 db 'PRESS THE BOTTOM',0
|
|||||||
guicalberror5 db 'RIGHT CORNER AND',0
|
guicalberror5 db 'RIGHT CORNER AND',0
|
||||||
guicalberror6 db 'PRESS A BUTTON OR',0
|
guicalberror6 db 'PRESS A BUTTON OR',0
|
||||||
guicalberror7 db 'KEY',0
|
guicalberror7 db 'KEY',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
|
|
||||||
SetAllKeys:
|
SetAllKeys:
|
||||||
@@ -247,7 +253,9 @@ SetAllKeys:
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz .loop
|
jnz .loop
|
||||||
ret
|
ret
|
||||||
|
SECTION .data
|
||||||
.ordercalb dd 2,3,4,5,1,0,7,10,6,9,8,11
|
.ordercalb dd 2,3,4,5,1,0,7,10,6,9,8,11
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
CalibrateDev1:
|
CalibrateDev1:
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
@@ -392,10 +400,12 @@ CalibrateDev1:
|
|||||||
mov [JoyMaxY209],eax
|
mov [JoyMaxY209],eax
|
||||||
mov [CalibYmax209],eax
|
mov [CalibYmax209],eax
|
||||||
ret
|
ret
|
||||||
.joyblx dd 0
|
SECTION .bss
|
||||||
.joybly dd 0
|
.joyblx resd 1
|
||||||
.joybcx dd 0
|
.joybly resd 1
|
||||||
.joybcy dd 0
|
.joybcx resd 1
|
||||||
|
.joybcy resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
|
|
||||||
SetDevice:
|
SetDevice:
|
||||||
|
|||||||
@@ -23,10 +23,12 @@ EXTSYM CheckScreenSaver
|
|||||||
EXTSYM MinimizeWindow
|
EXTSYM MinimizeWindow
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
lastmouseholded db 0
|
SECTION .bss
|
||||||
mousebuttonstat dw 0
|
lastmouseholded resb 1
|
||||||
MouseMoveOkay db 0
|
mousebuttonstat resw 1
|
||||||
LastHoldEnable db 0
|
MouseMoveOkay resb 1
|
||||||
|
LastHoldEnable resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
ProcessMouse:
|
ProcessMouse:
|
||||||
; Process holds
|
; Process holds
|
||||||
@@ -832,6 +834,9 @@ GUIProcVideo:
|
|||||||
je .failed2
|
je .failed2
|
||||||
mov dword[GUIkeydelay],0
|
mov dword[GUIkeydelay],0
|
||||||
ret
|
ret
|
||||||
|
.fullsc
|
||||||
|
mov [PrevFSMode],al
|
||||||
|
ret
|
||||||
.failed
|
.failed
|
||||||
mov byte[videotroub],0
|
mov byte[videotroub],0
|
||||||
mov al,[.prevvid]
|
mov al,[.prevvid]
|
||||||
@@ -851,7 +856,9 @@ GUIProcVideo:
|
|||||||
call GUISetPal
|
call GUISetPal
|
||||||
mov dword[GUIkeydelay],0
|
mov dword[GUIkeydelay],0
|
||||||
ret
|
ret
|
||||||
.prevvid db 0
|
SECTION .bss
|
||||||
|
.prevvid resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM SwitchFullScreen
|
NEWSYM SwitchFullScreen
|
||||||
pushad
|
pushad
|
||||||
@@ -1007,6 +1014,43 @@ GUIWinClicked:
|
|||||||
%%noclick
|
%%noclick
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
|
%macro GUIClickCButtonf 4
|
||||||
|
cmp eax,%1+1
|
||||||
|
jl %%noclick
|
||||||
|
cmp edx,%2+3
|
||||||
|
jl %%noclick
|
||||||
|
cmp eax,%1+6
|
||||||
|
jg %%noclick
|
||||||
|
cmp edx,%2+8
|
||||||
|
jg %%noclick
|
||||||
|
xor %3,1
|
||||||
|
%ifdef __WIN32__
|
||||||
|
pushad
|
||||||
|
call %4
|
||||||
|
popad
|
||||||
|
%endif
|
||||||
|
%%noclick
|
||||||
|
%endmacro
|
||||||
|
|
||||||
|
%macro GUIClickCButtonfT 5
|
||||||
|
cmp eax,%1+1
|
||||||
|
jl %%noclick
|
||||||
|
cmp edx,%2+3
|
||||||
|
jl %%noclick
|
||||||
|
cmp eax,%1+6
|
||||||
|
jg %%noclick
|
||||||
|
cmp edx,%2+8
|
||||||
|
jg %%noclick
|
||||||
|
xor %3,1
|
||||||
|
mov %4,0
|
||||||
|
%ifdef __WIN32__
|
||||||
|
pushad
|
||||||
|
call %5
|
||||||
|
popad
|
||||||
|
%endif
|
||||||
|
%%noclick
|
||||||
|
%endmacro
|
||||||
|
|
||||||
%macro GUIClickCButtonC 3
|
%macro GUIClickCButtonC 3
|
||||||
cmp eax,%1+1
|
cmp eax,%1+1
|
||||||
jl %%noclick
|
jl %%noclick
|
||||||
@@ -1108,6 +1152,29 @@ GUIWinClicked:
|
|||||||
%%noclick
|
%%noclick
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
|
%ifndef __LINUX__
|
||||||
|
%macro GUIClickCButton2r 5
|
||||||
|
cmp eax,%1+1
|
||||||
|
jl %%noclick
|
||||||
|
cmp edx,%2+3
|
||||||
|
jl %%noclick
|
||||||
|
cmp eax,%1+6
|
||||||
|
jg %%noclick
|
||||||
|
cmp edx,%2+8
|
||||||
|
jg %%noclick
|
||||||
|
xor %3,%5
|
||||||
|
mov al,%3
|
||||||
|
mov %4,al
|
||||||
|
%ifdef __WIN32__
|
||||||
|
pushad
|
||||||
|
call initDirectDraw
|
||||||
|
popad
|
||||||
|
%endif
|
||||||
|
ret
|
||||||
|
%%noclick
|
||||||
|
%endmacro
|
||||||
|
%endif
|
||||||
|
|
||||||
%macro GUIClickCButton3 5
|
%macro GUIClickCButton3 5
|
||||||
cmp eax,%1+1
|
cmp eax,%1+1
|
||||||
jl %%noclick
|
jl %%noclick
|
||||||
@@ -1443,11 +1510,13 @@ GUIWinClicked:
|
|||||||
%%nolower
|
%%nolower
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
GUIlastdispval dd 0
|
SECTION .bss
|
||||||
GUIdispmode dd 0
|
GUIlastdispval resd 1
|
||||||
GUIlastypos dd 0
|
GUIdispmode resd 1
|
||||||
GUIlastcpos dd 0
|
GUIlastypos resd 1
|
||||||
GUIlastvpos dd 0
|
GUIlastcpos resd 1
|
||||||
|
GUIlastvpos resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
%macro GUISlidebarImpl 10 ; x1,y1,x2,y2,GUI?StA,ScrnSize,ViewLoc,CursLoc,Entries,win#
|
%macro GUISlidebarImpl 10 ; x1,y1,x2,y2,GUI?StA,ScrnSize,ViewLoc,CursLoc,Entries,win#
|
||||||
mov dword[GUIdispmode],0
|
mov dword[GUIdispmode],0
|
||||||
@@ -2243,7 +2312,7 @@ DisplayGUIVideoClick:
|
|||||||
.nocheckboxttb
|
.nocheckboxttb
|
||||||
GUIClickCButton 11,183,byte[GrayscaleMode]
|
GUIClickCButton 11,183,byte[GrayscaleMode]
|
||||||
%ifdef __WIN32__
|
%ifdef __WIN32__
|
||||||
GUIClickCButtonT 115,183,byte[vsyncon],byte[TripleBufferWin]
|
GUIClickCButtonf 115,183,byte[vsyncon],initDirectDraw
|
||||||
%endif
|
%endif
|
||||||
%ifdef __MSDOS__
|
%ifdef __MSDOS__
|
||||||
GUIClickCButtonT 115,183,byte[vsyncon],byte[Triplebufen]
|
GUIClickCButtonT 115,183,byte[vsyncon],byte[Triplebufen]
|
||||||
@@ -2251,16 +2320,9 @@ DisplayGUIVideoClick:
|
|||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
mov bl,[cvidmode]
|
mov bl,[cvidmode]
|
||||||
cmp byte[GUIM7VID+ebx],0
|
cmp byte[GUIM7VID+ebx],0
|
||||||
je .nocheckboxm7
|
je .nocheckboxtm7
|
||||||
GUIClickCButton5 11,173,byte[Mode7HiRes16b],1
|
GUIClickCButton5 11,173,byte[Mode7HiRes16b],1
|
||||||
.nocheckboxm7
|
.nocheckboxtm7
|
||||||
%ifndef __MSDOS__
|
|
||||||
mov bl,[cvidmode]
|
|
||||||
cmp byte[GUIMBVID+ebx],0
|
|
||||||
je .nocheckboxmb
|
|
||||||
GUIClickCButton5 11,173,byte[MotionBlur],1
|
|
||||||
.nocheckboxmb
|
|
||||||
%endif
|
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
mov bl,[cvidmode]
|
mov bl,[cvidmode]
|
||||||
cmp byte[GUIHSVID+ebx],0
|
cmp byte[GUIHSVID+ebx],0
|
||||||
@@ -2273,7 +2335,7 @@ DisplayGUIVideoClick:
|
|||||||
mov bl,[cvidmode]
|
mov bl,[cvidmode]
|
||||||
cmp byte[GUITBWVID+ebx],0
|
cmp byte[GUITBWVID+ebx],0
|
||||||
je near .notriplebufferwin
|
je near .notriplebufferwin
|
||||||
GUIClickCButtonT 11,123,byte[TripleBufferWin],byte[vsyncon]
|
GUIClickCButtonf 11,123,byte[TripleBufferWin],initDirectDraw
|
||||||
.notriplebufferwin
|
.notriplebufferwin
|
||||||
%endif
|
%endif
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
@@ -2320,15 +2382,17 @@ DisplayGUIVideoClick:
|
|||||||
xor al,al
|
xor al,al
|
||||||
ret
|
ret
|
||||||
|
|
||||||
GUINumValue dd 0
|
SECTION .bss
|
||||||
GUIBlankVar dd 0
|
GUINumValue resd 1
|
||||||
|
GUIBlankVar resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
DisplayGUISoundClick:
|
DisplayGUISoundClick:
|
||||||
mov eax,[GUImouseposx]
|
mov eax,[GUImouseposx]
|
||||||
sub eax,[GUIwinposx+6*4]
|
sub eax,[GUIwinposx+6*4]
|
||||||
mov edx,[GUImouseposy]
|
mov edx,[GUImouseposy]
|
||||||
sub edx,[GUIwinposy+6*4]
|
sub edx,[GUIwinposy+6*4]
|
||||||
GUIClickCButton 11,21,byte[cfgsoundon]
|
GUIClickCButtonf 11,21,byte[cfgsoundon],reInitSound
|
||||||
%ifdef __MSDOS__
|
%ifdef __MSDOS__
|
||||||
GUIClickCButton 102,21,byte[cfgforce8b]
|
GUIClickCButton 102,21,byte[cfgforce8b]
|
||||||
%endif
|
%endif
|
||||||
@@ -2404,7 +2468,9 @@ DisplayGUISoundClick:
|
|||||||
.nomovebar
|
.nomovebar
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
sampratenext db 1,4,5,6,2,3,0,0,0,0
|
sampratenext db 1,4,5,6,2,3,0,0,0,0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
%macro GUIBoxVar 6
|
%macro GUIBoxVar 6
|
||||||
cmp eax,%1
|
cmp eax,%1
|
||||||
@@ -2600,9 +2666,11 @@ guipresstest:
|
|||||||
; pop ebx
|
; pop ebx
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
guipresstext1 db 'ENTER THE KEY',0
|
guipresstext1 db 'ENTER THE KEY',0
|
||||||
guipresstext2 db 'OR BUTTON TO USE',0
|
guipresstext2 db 'OR BUTTON TO USE',0
|
||||||
guipresstext3 db '(ESC TO CLEAR)',0
|
guipresstext3 db '(ESC TO CLEAR)',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
guipresstestb:
|
guipresstestb:
|
||||||
call GUIUnBuffer
|
call GUIUnBuffer
|
||||||
@@ -2674,6 +2742,7 @@ guipresstestb:
|
|||||||
; pop ebx
|
; pop ebx
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
guipresstext3b db '(ESC TO SKIP)',0
|
guipresstext3b db '(ESC TO SKIP)',0
|
||||||
guipresstext4b db 'FOR UP ',0
|
guipresstext4b db 'FOR UP ',0
|
||||||
db 'FOR DOWN ',0
|
db 'FOR DOWN ',0
|
||||||
@@ -2687,8 +2756,10 @@ db 'FOR X (TOP BUTTON) ',0
|
|||||||
db 'FOR Y (LEFT BUTTON) ',0
|
db 'FOR Y (LEFT BUTTON) ',0
|
||||||
db 'FOR THE L BUTTON ',0
|
db 'FOR THE L BUTTON ',0
|
||||||
db 'FOR THE R BUTTON ',0
|
db 'FOR THE R BUTTON ',0
|
||||||
guipressptr dd 0
|
SECTION .bss
|
||||||
guicpressptr dd 0
|
guipressptr resd 1
|
||||||
|
guicpressptr resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
DisplayGameOptnsClick:
|
DisplayGameOptnsClick:
|
||||||
; Process boxes
|
; Process boxes
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
; GUI NetPlay Routines (Modem,IPX,UDP+TCP/IP)
|
; GUI NetPlay Routines (Modem,IPX,UDP+TCP/IP)
|
||||||
|
|
||||||
ProcessModem:
|
ProcessModem:
|
||||||
|
%ifdef __WIN32__
|
||||||
cmp byte[ModemProcess],40
|
cmp byte[ModemProcess],40
|
||||||
jne near .noprocess40
|
jne near .noprocess40
|
||||||
cmp byte[maxskip],3
|
cmp byte[maxskip],3
|
||||||
@@ -28,7 +29,7 @@ ProcessModem:
|
|||||||
mov byte[frameskip],0
|
mov byte[frameskip],0
|
||||||
mov byte[Latencytochange],3
|
mov byte[Latencytochange],3
|
||||||
mov byte[Latency],3
|
mov byte[Latency],3
|
||||||
mov byte[IPXSearchval],0
|
; mov byte[IPXSearchval],0
|
||||||
mov byte[RemoteDisconnect],0
|
mov byte[RemoteDisconnect],0
|
||||||
mov byte[HoldCommand],1
|
mov byte[HoldCommand],1
|
||||||
mov byte[RemoteCommand],1
|
mov byte[RemoteCommand],1
|
||||||
@@ -63,6 +64,7 @@ ProcessModem:
|
|||||||
call .writestr
|
call .writestr
|
||||||
mov byte[ModemProcess],42
|
mov byte[ModemProcess],42
|
||||||
ret
|
ret
|
||||||
|
SECTION .data
|
||||||
.tcpipdones db 'DONE',13,10,13,10,'WAITING FOR CLIENT...',0
|
.tcpipdones db 'DONE',13,10,13,10,'WAITING FOR CLIENT...',0
|
||||||
.tcpipdonec db 'DONE',13,10,13,10,'CONNECTING TO SERVER...',0
|
.tcpipdonec db 'DONE',13,10,13,10,'CONNECTING TO SERVER...',0
|
||||||
.tcpipdones2 db 13,10,13,10,'FOUND CLIENT.',0
|
.tcpipdones2 db 13,10,13,10,'FOUND CLIENT.',0
|
||||||
@@ -77,6 +79,8 @@ ProcessModem:
|
|||||||
.errorinit db 'FAILED NET INIT',0
|
.errorinit db 'FAILED NET INIT',0
|
||||||
.errorinit2 db 'CANNOT START SERVER',0
|
.errorinit2 db 'CANNOT START SERVER',0
|
||||||
.errorinit3 db 'CANNOT CONNECT',0
|
.errorinit3 db 'CANNOT CONNECT',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
.noprocess40
|
.noprocess40
|
||||||
cmp byte[ModemProcess],41
|
cmp byte[ModemProcess],41
|
||||||
jne near .noprocess41
|
jne near .noprocess41
|
||||||
@@ -87,7 +91,7 @@ ProcessModem:
|
|||||||
mov byte[frameskip],0
|
mov byte[frameskip],0
|
||||||
mov byte[Latencytochange],3
|
mov byte[Latencytochange],3
|
||||||
mov byte[Latency],3
|
mov byte[Latency],3
|
||||||
mov byte[IPXSearchval],0
|
; mov byte[IPXSearchval],0
|
||||||
mov byte[RemoteDisconnect],0
|
mov byte[RemoteDisconnect],0
|
||||||
mov byte[HoldCommand],1
|
mov byte[HoldCommand],1
|
||||||
mov byte[RemoteCommand],1
|
mov byte[RemoteCommand],1
|
||||||
@@ -226,6 +230,8 @@ ProcessModem:
|
|||||||
mov byte[ModemProcess],66
|
mov byte[ModemProcess],66
|
||||||
ret
|
ret
|
||||||
.noprocess47
|
.noprocess47
|
||||||
|
%endif
|
||||||
|
%ifdef __MSDOS__
|
||||||
cmp byte[ModemProcess],30
|
cmp byte[ModemProcess],30
|
||||||
jne near .noprocess30
|
jne near .noprocess30
|
||||||
mov byte[Latencytochange],2
|
mov byte[Latencytochange],2
|
||||||
@@ -477,6 +483,7 @@ ProcessModem:
|
|||||||
.nocdc7
|
.nocdc7
|
||||||
ret
|
ret
|
||||||
.noprocess7
|
.noprocess7
|
||||||
|
%endif
|
||||||
|
|
||||||
; Connect initialization
|
; Connect initialization
|
||||||
cmp byte[ModemProcess],64
|
cmp byte[ModemProcess],64
|
||||||
@@ -746,7 +753,9 @@ ProcessModem:
|
|||||||
mov dl,[.hexval+edx]
|
mov dl,[.hexval+edx]
|
||||||
call NetAddChar
|
call NetAddChar
|
||||||
ret
|
ret
|
||||||
|
SECTION .data
|
||||||
.hexval db '0123456789ABCDEF'
|
.hexval db '0123456789ABCDEF'
|
||||||
|
%ifdef __MSDOS__
|
||||||
.unableinit db 'CANNOT INIT DRIVER!',13,10,0
|
.unableinit db 'CANNOT INIT DRIVER!',13,10,0
|
||||||
.init db 'ZSNES MODEM TERMINAL',13,10,0
|
.init db 'ZSNES MODEM TERMINAL',13,10,0
|
||||||
.initb db 13,10,'INITIALIZING MODEM :',13,10,13,10,0
|
.initb db 13,10,'INITIALIZING MODEM :',13,10,13,10,0
|
||||||
@@ -757,21 +766,28 @@ ProcessModem:
|
|||||||
.tout db 'MODEM RESPONSE TIMEOUT',13,10,0
|
.tout db 'MODEM RESPONSE TIMEOUT',13,10,0
|
||||||
.ata db 'ATA',13,0
|
.ata db 'ATA',13,0
|
||||||
.cdet db 'CARRIER DETECTED',13,10,0
|
.cdet db 'CARRIER DETECTED',13,10,0
|
||||||
.invver db 13,10,'INCOMPATIBLE VERSION!',13,10,0
|
|
||||||
.rdet db 'WAITING FOR RING...',13,10,0
|
.rdet db 'WAITING FOR RING...',13,10,0
|
||||||
.invsnd db 'INVALID SOUND SETTING!',13,10,0
|
|
||||||
.noipx db 13,10,13,10,'UNABLE TO INIT IPX!',13,10,0
|
.noipx db 13,10,13,10,'UNABLE TO INIT IPX!',13,10,0
|
||||||
.yesipx db 13,10,13,10,'IPX INITIALIZED.',13,10,13,10,'WAITING FOR REMOTE',13,10,0
|
.yesipx db 13,10,13,10,'IPX INITIALIZED.',13,10,13,10,'WAITING FOR REMOTE',13,10,0
|
||||||
.localid db 'LOCAL ID : ',0
|
.localid db 'LOCAL ID : ',0
|
||||||
.remoteid db 'REMOTE ID : ',0
|
.remoteid db 'REMOTE ID : ',0
|
||||||
.connectest db 'CONNECTION ESTABLISHED',13,10,0
|
.connectest db 'CONNECTION ESTABLISHED',13,10,0
|
||||||
|
%endif
|
||||||
|
.invver db 13,10,'INCOMPATIBLE VERSION!',13,10,0
|
||||||
|
.invsnd db 'INVALID SOUND SETTING!',13,10,0
|
||||||
|
%ifdef __WIN32__
|
||||||
.tcpipinit db 'ZSNES NET INTERFACE',13,10,13,10,0
|
.tcpipinit db 'ZSNES NET INTERFACE',13,10,13,10,0
|
||||||
.tcpipserv db 'INIT SERVER ... ',0
|
.tcpipserv db 'INIT SERVER ... ',0
|
||||||
.tcpipclie db 'INIT CLIENT ... ',0
|
.tcpipclie db 'INIT CLIENT ... ',0
|
||||||
InitStr1Done db 0
|
%endif
|
||||||
|
SECTION .bss
|
||||||
|
InitStr1Done resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM PreparePacket
|
NEWSYM PreparePacket
|
||||||
|
%ifdef __MSDOS__
|
||||||
call PreparePacketIPX
|
call PreparePacketIPX
|
||||||
|
%endif
|
||||||
cmp byte[WhichRemote],4
|
cmp byte[WhichRemote],4
|
||||||
jne .nottcpip
|
jne .nottcpip
|
||||||
call TCPIPPreparePacket
|
call TCPIPPreparePacket
|
||||||
@@ -779,7 +795,9 @@ NEWSYM PreparePacket
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
NEWSYM SendPacket
|
NEWSYM SendPacket
|
||||||
|
%ifdef __MSDOS__
|
||||||
call SendPacketIPX
|
call SendPacketIPX
|
||||||
|
%endif
|
||||||
cmp byte[WhichRemote],4
|
cmp byte[WhichRemote],4
|
||||||
jne .nottcpip
|
jne .nottcpip
|
||||||
call TCPIPSendPacket
|
call TCPIPSendPacket
|
||||||
@@ -787,7 +805,9 @@ NEWSYM SendPacket
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
NEWSYM SendPacketUDP
|
NEWSYM SendPacketUDP
|
||||||
|
%ifdef __MSDOS__
|
||||||
call SendPacketIPX
|
call SendPacketIPX
|
||||||
|
%endif
|
||||||
cmp byte[WhichRemote],4
|
cmp byte[WhichRemote],4
|
||||||
jne .nottcpip
|
jne .nottcpip
|
||||||
call TCPIPSendPacketUDP
|
call TCPIPSendPacketUDP
|
||||||
@@ -807,15 +827,19 @@ NEWSYM WritetochatBuffer
|
|||||||
.nomore
|
.nomore
|
||||||
ret
|
ret
|
||||||
|
|
||||||
NEWSYM RemoteCommand, db 0
|
SECTION .bss
|
||||||
HoldCommand db 0
|
NEWSYM RemoteCommand, resb 1
|
||||||
|
HoldCommand resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
RemoteDeInit:
|
RemoteDeInit:
|
||||||
|
%ifdef __MSDOS__
|
||||||
cmp byte[ModemInitStat],0
|
cmp byte[ModemInitStat],0
|
||||||
je .nodeinitmodem
|
je .nodeinitmodem
|
||||||
call DeInitModemC
|
call DeInitModemC
|
||||||
mov byte[ModemInitStat],0
|
mov byte[ModemInitStat],0
|
||||||
.nodeinitmodem
|
.nodeinitmodem
|
||||||
|
%endif
|
||||||
mov byte[CNetType],1
|
mov byte[CNetType],1
|
||||||
cmp byte[WhichRemote],2
|
cmp byte[WhichRemote],2
|
||||||
jne .noipx
|
jne .noipx
|
||||||
@@ -850,9 +874,12 @@ Checkfileexist:
|
|||||||
.failed
|
.failed
|
||||||
mov eax,1
|
mov eax,1
|
||||||
ret
|
ret
|
||||||
.temp db 0
|
SECTION .bss
|
||||||
|
.temp resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
ProcessRemoteCommand:
|
ProcessRemoteCommand:
|
||||||
|
%ifdef __MSDOS__
|
||||||
cmp byte[WhichRemote],1
|
cmp byte[WhichRemote],1
|
||||||
jne .notmodem
|
jne .notmodem
|
||||||
push edx
|
push edx
|
||||||
@@ -861,6 +888,7 @@ ProcessRemoteCommand:
|
|||||||
cmp al,1
|
cmp al,1
|
||||||
jne near .nomulti
|
jne near .nomulti
|
||||||
.notmodem
|
.notmodem
|
||||||
|
%endif
|
||||||
cmp byte[RemoteDisconnect],1
|
cmp byte[RemoteDisconnect],1
|
||||||
je near .nomulti
|
je near .nomulti
|
||||||
call ProcRewind
|
call ProcRewind
|
||||||
@@ -1379,6 +1407,7 @@ ProcessRemoteCommand:
|
|||||||
mov byte[RemoteCommand],1
|
mov byte[RemoteCommand],1
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.chatinitial db '>',0
|
.chatinitial db '>',0
|
||||||
.actinitial db '*',0
|
.actinitial db '*',0
|
||||||
.actinitial2 db ' ',0
|
.actinitial2 db ' ',0
|
||||||
@@ -1390,6 +1419,7 @@ ProcessRemoteCommand:
|
|||||||
.strinvalid db '** INVALID NICK **',13,10,0
|
.strinvalid db '** INVALID NICK **',13,10,0
|
||||||
.strtoolong db '** NICK IS TOO LONG **',13,10,0
|
.strtoolong db '** NICK IS TOO LONG **',13,10,0
|
||||||
.nickchangeb db ' IS NOW KNOWN AS ',0
|
.nickchangeb db ' IS NOW KNOWN AS ',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
transfersram:
|
transfersram:
|
||||||
cmp byte[SFXSRAM],0
|
cmp byte[SFXSRAM],0
|
||||||
@@ -1528,6 +1558,7 @@ NEWSYM RemoteGetEAX
|
|||||||
|
|
||||||
|
|
||||||
NEWSYM RemoteSendChar
|
NEWSYM RemoteSendChar
|
||||||
|
%ifdef __MSDOS__
|
||||||
cmp byte[WhichRemote],1
|
cmp byte[WhichRemote],1
|
||||||
jne .nomodem
|
jne .nomodem
|
||||||
call ModemSendChar
|
call ModemSendChar
|
||||||
@@ -1536,6 +1567,7 @@ NEWSYM RemoteSendChar
|
|||||||
jne .noipx
|
jne .noipx
|
||||||
call ipxsendchar
|
call ipxsendchar
|
||||||
.noipx
|
.noipx
|
||||||
|
%endif
|
||||||
cmp byte[WhichRemote],4
|
cmp byte[WhichRemote],4
|
||||||
jne .notcpip
|
jne .notcpip
|
||||||
call TCPIPStoreByte
|
call TCPIPStoreByte
|
||||||
@@ -1543,6 +1575,7 @@ NEWSYM RemoteSendChar
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
NEWSYM RemoteGetChar
|
NEWSYM RemoteGetChar
|
||||||
|
%ifdef __MSDOS
|
||||||
cmp byte[WhichRemote],1
|
cmp byte[WhichRemote],1
|
||||||
jne .nomodem
|
jne .nomodem
|
||||||
call ModemGetChar
|
call ModemGetChar
|
||||||
@@ -1551,12 +1584,14 @@ NEWSYM RemoteGetChar
|
|||||||
jne .noipx
|
jne .noipx
|
||||||
call ipxgetchar
|
call ipxgetchar
|
||||||
.noipx
|
.noipx
|
||||||
|
%endif
|
||||||
cmp byte[WhichRemote],4
|
cmp byte[WhichRemote],4
|
||||||
jne .notcpip
|
jne .notcpip
|
||||||
call TCPIPGetByte
|
call TCPIPGetByte
|
||||||
.notcpip
|
.notcpip
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
%ifdef __MSDOS__
|
||||||
ModemSendStr:
|
ModemSendStr:
|
||||||
.loop
|
.loop
|
||||||
mov al,[esi]
|
mov al,[esi]
|
||||||
@@ -1567,13 +1602,17 @@ ModemSendStr:
|
|||||||
jmp .loop
|
jmp .loop
|
||||||
.nomore
|
.nomore
|
||||||
ret
|
ret
|
||||||
|
%endif
|
||||||
|
|
||||||
NetLoadHandle dw 0
|
SECTION .bss
|
||||||
NetStateSize dd 0
|
NetLoadHandle resw 1
|
||||||
NetStateTotal dd 0
|
NetStateSize resd 1
|
||||||
NetStateQuit db 0
|
NetStateTotal resd 1
|
||||||
NetStateBuffer times 2048 db 0
|
NetStateQuit resb 1
|
||||||
|
NetStateBuffer resb 2048
|
||||||
|
SECTION .data
|
||||||
Netfname db 'nettemp.zst',0
|
Netfname db 'nettemp.zst',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NetLoadStuff:
|
NetLoadStuff:
|
||||||
call loadnetopen
|
call loadnetopen
|
||||||
@@ -1783,6 +1822,7 @@ loadstaterecv:
|
|||||||
.notzero
|
.notzero
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
StateLoadedOk db 10,13,'STATE LOADED.',10,13,10,13,0
|
StateLoadedOk db 10,13,'STATE LOADED.',10,13,10,13,0
|
||||||
StateLoadedFail db 10,13,'LOAD FAILED.',10,13,10,13,0
|
StateLoadedFail db 10,13,'LOAD FAILED.',10,13,10,13,0
|
||||||
|
SECTION .text
|
||||||
|
|||||||
@@ -804,6 +804,7 @@ DisplayGUILoad:
|
|||||||
DrawGUIWinBox 1,229,144,228,152,dl
|
DrawGUIWinBox 1,229,144,228,152,dl
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
GUILoadText1 db 'SELECT FILE TO LOAD :',0
|
GUILoadText1 db 'SELECT FILE TO LOAD :',0
|
||||||
GUILoadText2 db 'DISPLAY TYPE :',0
|
GUILoadText2 db 'DISPLAY TYPE :',0
|
||||||
GUILoadText3 db 'NORMAL 8.3 FORMAT',0
|
GUILoadText3 db 'NORMAL 8.3 FORMAT',0
|
||||||
@@ -819,9 +820,12 @@ GUILoadTextC db 'NTSC',0
|
|||||||
GUILoadTextD db 'PAL',0
|
GUILoadTextD db 'PAL',0
|
||||||
GUILoadTextE db 'LOROM',0
|
GUILoadTextE db 'LOROM',0
|
||||||
GUILoadTextF db 'HIROM',0
|
GUILoadTextF db 'HIROM',0
|
||||||
GUILStA dd 0,0,0
|
|
||||||
GUILStB dd 0,0,0
|
SECTION .bss
|
||||||
GUILoadPos db 0
|
GUILStA resd 3
|
||||||
|
GUILStB resd 3
|
||||||
|
GUILoadPos resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
DisplayGUIReset:
|
DisplayGUIReset:
|
||||||
GUIDrawWindowBox 12,GUIResetDisp
|
GUIDrawWindowBox 12,GUIResetDisp
|
||||||
@@ -854,9 +858,11 @@ DisplayGUIReset:
|
|||||||
GUIOuttextwin2 12,5,15,GUIResetText1
|
GUIOuttextwin2 12,5,15,GUIResetText1
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
GUIResetText1 db 'RESET : ARE YOU SURE ?',0
|
GUIResetText1 db 'RESET : ARE YOU SURE ?',0
|
||||||
GUIResetText2 db 'YES',0
|
GUIResetText2 db 'YES',0
|
||||||
GUIResetText3 db 'NO',0
|
GUIResetText3 db 'NO',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
DisplayGUIStates:
|
DisplayGUIStates:
|
||||||
GUIDrawWindowBox 14,GUIStatesDisp
|
GUIDrawWindowBox 14,GUIStatesDisp
|
||||||
@@ -901,11 +907,13 @@ DisplayGUIStates:
|
|||||||
.save2
|
.save2
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
GUIStatesText1 db 'OKAY TO SAVE STATE?',0
|
GUIStatesText1 db 'OKAY TO SAVE STATE?',0
|
||||||
GUIStatesText2 db 'OKAY TO LOAD STATE?',0
|
GUIStatesText2 db 'OKAY TO LOAD STATE?',0
|
||||||
GUIStatesText3 db 'YES',0
|
GUIStatesText3 db 'YES',0
|
||||||
GUIStatesText4 db 'NO',0
|
GUIStatesText4 db 'NO',0
|
||||||
GUIStatesText5 db 0
|
GUIStatesText5 db 0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
DisplayGUIChoseSave:
|
DisplayGUIChoseSave:
|
||||||
GUIDrawWindowBox 2,GUIStateSelDisp
|
GUIDrawWindowBox 2,GUIStateSelDisp
|
||||||
@@ -980,8 +988,10 @@ DisplayGUIChoseSave:
|
|||||||
GUIDisplayButtonHole 2,90,43,byte[GUIChoseSaveText2],'9'
|
GUIDisplayButtonHole 2,90,43,byte[GUIChoseSaveText2],'9'
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
GUIChoseSaveText1 db 'SELECT SAVE SLOT :',0
|
GUIChoseSaveText1 db 'SELECT SAVE SLOT :',0
|
||||||
GUIChoseSaveText2 db '-',0
|
GUIChoseSaveText2 db '-',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
%macro DGOptnsDrawBox 3
|
%macro DGOptnsDrawBox 3
|
||||||
mov eax,dword[GUIwinposx+9*4]
|
mov eax,dword[GUIwinposx+9*4]
|
||||||
@@ -1333,6 +1343,7 @@ DisplayGUIInput:
|
|||||||
DrawGUIWinBox 3,5,78,107,78,dl
|
DrawGUIWinBox 3,5,78,107,78,dl
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
GUIInputRefF db 0,1,2,3,5,18,6,7,8,9,10,11,14,15,16,17
|
GUIInputRefF db 0,1,2,3,5,18,6,7,8,9,10,11,14,15,16,17
|
||||||
GUIInputRefB db 0,1,2,3,3,4,6,7,8,9,10,11,11,11,12,13,14,15,5
|
GUIInputRefB db 0,1,2,3,3,4,6,7,8,9,10,11,11,11,12,13,14,15,5
|
||||||
GUIInputRefP dd pl1contrl,pl2contrl,pl3contrl,pl4contrl,pl5contrl
|
GUIInputRefP dd pl1contrl,pl2contrl,pl3contrl,pl4contrl,pl5contrl
|
||||||
@@ -1363,10 +1374,13 @@ GUIInputTextd db 'UL',0
|
|||||||
GUIInputTexte db 'UR',0
|
GUIInputTexte db 'UR',0
|
||||||
GUIInputTextf db 'DL',0
|
GUIInputTextf db 'DL',0
|
||||||
GUIInputTextg db 'DR',0
|
GUIInputTextg db 'DR',0
|
||||||
GUIIStA dd 0,0,0
|
|
||||||
|
|
||||||
GUIcurrentinputviewloc dd 0
|
SECTION .bss
|
||||||
GUIcurrentinputcursloc dd 0
|
GUIIStA resd 3
|
||||||
|
|
||||||
|
GUIcurrentinputviewloc resd 1
|
||||||
|
GUIcurrentinputcursloc resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
DisplayGUIOption:
|
DisplayGUIOption:
|
||||||
; Frame Rate/Auto Frame Rate/Max Frame Skip/New Gfx Engine/Save Confirm
|
; Frame Rate/Auto Frame Rate/Max Frame Skip/New Gfx Engine/Save Confirm
|
||||||
@@ -1591,6 +1605,7 @@ DisplayGUIOption:
|
|||||||
DrawGUIButton 4,129,12,137,22,GUIOptionText10,13,-2,0
|
DrawGUIButton 4,129,12,137,22,GUIOptionText10,13,-2,0
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
GUIOptionText1 db 'FRAME RATE',0
|
GUIOptionText1 db 'FRAME RATE',0
|
||||||
GUIOptionText2 db 'AUTO FRAME RATE',0
|
GUIOptionText2 db 'AUTO FRAME RATE',0
|
||||||
GUIOptionText3 db 'MAX FRAME SKIP',0
|
GUIOptionText3 db 'MAX FRAME SKIP',0
|
||||||
@@ -1614,6 +1629,7 @@ GUIOptionTextL db 'USE ALTERNATE TIMER',0
|
|||||||
GUIOptionText8 db '-',0
|
GUIOptionText8 db '-',0
|
||||||
GUIOptionText9 db '+',0
|
GUIOptionText9 db '+',0
|
||||||
GUIOptionText10 db '-',0
|
GUIOptionText10 db '-',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
DisplayGUIVideo:
|
DisplayGUIVideo:
|
||||||
cmp byte[TripBufAvail],0
|
cmp byte[TripBufAvail],0
|
||||||
@@ -1742,13 +1758,6 @@ DisplayGUIVideo:
|
|||||||
je .notext8
|
je .notext8
|
||||||
GUIOuttextwin2u 5,26,178,GUIVideoText8b,0
|
GUIOuttextwin2u 5,26,178,GUIVideoText8b,0
|
||||||
.notext8
|
.notext8
|
||||||
%ifndef __MSDOS__
|
|
||||||
mov al,[cvidmode]
|
|
||||||
cmp byte[GUIMBVID+eax],0
|
|
||||||
je .notext82
|
|
||||||
GUIOuttextwin2u 5,26,178,GUIVideoText8b2,0
|
|
||||||
.notext82
|
|
||||||
%endif
|
|
||||||
GUIOuttextwin2u 5,26,188,GUIVideoText8c,0
|
GUIOuttextwin2u 5,26,188,GUIVideoText8c,0
|
||||||
%ifndef __LINUX__
|
%ifndef __LINUX__
|
||||||
GUIOuttextwin2u 5,130,188,GUIVideoText9,0
|
GUIOuttextwin2u 5,130,188,GUIVideoText9,0
|
||||||
@@ -1850,13 +1859,6 @@ DisplayGUIVideo:
|
|||||||
je .notext8b
|
je .notext8b
|
||||||
GUIOuttextwin2 5,25,177,GUIVideoText8b
|
GUIOuttextwin2 5,25,177,GUIVideoText8b
|
||||||
.notext8b
|
.notext8b
|
||||||
%ifndef __MSDOS__
|
|
||||||
mov al,[cvidmode]
|
|
||||||
cmp byte[GUIMBVID+eax],0
|
|
||||||
je .notext8b2
|
|
||||||
GUIOuttextwin2 5,25,177,GUIVideoText8b2
|
|
||||||
.notext8b2
|
|
||||||
%endif
|
|
||||||
GUIOuttextwin2 5,25,187,GUIVideoText8c
|
GUIOuttextwin2 5,25,187,GUIVideoText8c
|
||||||
%ifndef __LINUX__
|
%ifndef __LINUX__
|
||||||
GUIOuttextwin2 5,129,187,GUIVideoText9
|
GUIOuttextwin2 5,129,187,GUIVideoText9
|
||||||
@@ -1982,18 +1984,6 @@ DisplayGUIVideo:
|
|||||||
.nocheckbox1m72
|
.nocheckbox1m72
|
||||||
GUIDisplayIconWin 5,11,173,[GUITemp]
|
GUIDisplayIconWin 5,11,173,[GUITemp]
|
||||||
.nocheckboxm72
|
.nocheckboxm72
|
||||||
%ifndef __MSDOS__
|
|
||||||
mov al,[cvidmode]
|
|
||||||
cmp byte[GUIMBVID+eax],0
|
|
||||||
je .nocheckboxmb2
|
|
||||||
mov dword[GUITemp],GUIIconDataCheckBoxUC
|
|
||||||
cmp byte[MotionBlur],0
|
|
||||||
je .nocheckboxmb
|
|
||||||
mov dword[GUITemp],GUIIconDataCheckBoxC
|
|
||||||
.nocheckboxmb
|
|
||||||
GUIDisplayIconWin 5,11,173,[GUITemp]
|
|
||||||
.nocheckboxmb2
|
|
||||||
%endif
|
|
||||||
mov dword[GUITemp],GUIIconDataCheckBoxUC
|
mov dword[GUITemp],GUIIconDataCheckBoxUC
|
||||||
cmp byte[GrayscaleMode],0
|
cmp byte[GrayscaleMode],0
|
||||||
je .nocheckboxm73
|
je .nocheckboxm73
|
||||||
@@ -2147,6 +2137,7 @@ DisplayGUIVideo:
|
|||||||
GUIOuttextwin2 5,48,195,[GUITemp]
|
GUIOuttextwin2 5,48,195,[GUITemp]
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
GUIVideoText1 db 'VIDEO MODES :',0
|
GUIVideoText1 db 'VIDEO MODES :',0
|
||||||
GUIVideoText2 db 'FULL SCANLINES',0
|
GUIVideoText2 db 'FULL SCANLINES',0
|
||||||
GUIVideoTextb db 'SCANLINES:',0
|
GUIVideoTextb db 'SCANLINES:',0
|
||||||
@@ -2164,7 +2155,6 @@ GUIVideoText5b db 'WIDE SCREEN',0 ; -c
|
|||||||
GUIVideoText6 db 'SMALL SCREEN',0 ; -c
|
GUIVideoText6 db 'SMALL SCREEN',0 ; -c
|
||||||
GUIVideoText7 db 'TRIPLE BUFFERING',0 ; -c
|
GUIVideoText7 db 'TRIPLE BUFFERING',0 ; -c
|
||||||
GUIVideoText8b db 'HI-RESOLUTION MODE7',0 ; -c
|
GUIVideoText8b db 'HI-RESOLUTION MODE7',0 ; -c
|
||||||
GUIVideoText8b2 db 'MOTION BLUR',0 ; -c
|
|
||||||
GUIVideoText8c db 'GRAYSCALE MODE',0 ; -c
|
GUIVideoText8c db 'GRAYSCALE MODE',0 ; -c
|
||||||
GUIVideoText8 db 'SET',0 ; set button
|
GUIVideoText8 db 'SET',0 ; set button
|
||||||
GUIVideoText9 db 'VSYNC',0 ; -c
|
GUIVideoText9 db 'VSYNC',0 ; -c
|
||||||
@@ -2173,10 +2163,14 @@ GUIVideoTextw0 db 'LEGEND:',0
|
|||||||
GUIVideoTextw1 db ' S = SCALED TO FIT SCREEN',0
|
GUIVideoTextw1 db ' S = SCALED TO FIT SCREEN',0
|
||||||
GUIVideoTextw2 db ' R = MATCHED SCREEN RATIO',0
|
GUIVideoTextw2 db ' R = MATCHED SCREEN RATIO',0
|
||||||
GUIVideoTextw3 db ' D = ALLOW 2XSAI,HIRES,ETC',0
|
GUIVideoTextw3 db ' D = ALLOW 2XSAI,HIRES,ETC',0
|
||||||
GUIVStA dd 0,0,0
|
|
||||||
|
|
||||||
GUIcurrentvideoviewloc dd 0
|
SECTION .bss
|
||||||
GUIcurrentvideocursloc dd 0
|
GUIVStA resd 3
|
||||||
|
|
||||||
|
GUIcurrentvideoviewloc resd 1
|
||||||
|
GUIcurrentvideocursloc resd 1
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
|
|
||||||
DisplayGUISound:
|
DisplayGUISound:
|
||||||
@@ -2433,6 +2427,7 @@ DisplayGUISound:
|
|||||||
GUIOuttextwin2 6,118,88,[GUITemp]
|
GUIOuttextwin2 6,118,88,[GUITemp]
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
GUISoundText1 db 'ENABLE SOUND',0
|
GUISoundText1 db 'ENABLE SOUND',0
|
||||||
GUISoundText1b db 'FORCE 8-BIT',0
|
GUISoundText1b db 'FORCE 8-BIT',0
|
||||||
GUISoundText2 db 'SAMPLING RATE :',0
|
GUISoundText2 db 'SAMPLING RATE :',0
|
||||||
@@ -2461,7 +2456,7 @@ GUISoundTextT db 'LOWPASS :',0
|
|||||||
GUISoundTextU db 'SIMPLE',0
|
GUISoundTextU db 'SIMPLE',0
|
||||||
GUISoundTextV db 'DYNAMIC',0
|
GUISoundTextV db 'DYNAMIC',0
|
||||||
GUISoundTextW db 'HI QUALITY',0
|
GUISoundTextW db 'HI QUALITY',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
|
|
||||||
DisplayGUICheatConv:
|
DisplayGUICheatConv:
|
||||||
@@ -2775,6 +2770,7 @@ DisplayGUICheat:
|
|||||||
GUIDisplayIconWin 7,11,186,[GUITemp]
|
GUIDisplayIconWin 7,11,186,[GUITemp]
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
GUICheatText1 db 'ENTER CODE :',0
|
GUICheatText1 db 'ENTER CODE :',0
|
||||||
GUICheatText2 db 'DESCRIPTION:',0
|
GUICheatText2 db 'DESCRIPTION:',0
|
||||||
GUICheatText3 db 'ADDRESS CV PV TGL DESCRIPTION',0
|
GUICheatText3 db 'ADDRESS CV PV TGL DESCRIPTION',0
|
||||||
@@ -2793,14 +2789,16 @@ GUICheatTextE db 'NOTE : YOU MAY HAVE TO RESET THE GAME',0
|
|||||||
GUICheatTextF db ' AFTER ENTERING THE CODE. REMEMBER TO',0
|
GUICheatTextF db ' AFTER ENTERING THE CODE. REMEMBER TO',0
|
||||||
GUICheatTextG db ' INSERT THE "-" FOR GAME GENIE CODES',0
|
GUICheatTextG db ' INSERT THE "-" FOR GAME GENIE CODES',0
|
||||||
GUICheatTextJ db 'AUTO-LOAD .CHT FILE AT GAME LOAD',0
|
GUICheatTextJ db 'AUTO-LOAD .CHT FILE AT GAME LOAD',0
|
||||||
GUICheatPosA db 0
|
SECTION .bss
|
||||||
GUICheatPosB db 0
|
GUICheatPosA resb 1
|
||||||
GUICStA dd 0,0,0
|
GUICheatPosB resb 1
|
||||||
GUIcurrentcheatviewloc dd 0
|
GUICStA resd 3
|
||||||
GUIcurrentcheatcursloc dd 0
|
GUIcurrentcheatviewloc resd 1
|
||||||
GUIcurrentcheatwin dd 0
|
GUIcurrentcheatcursloc resd 1
|
||||||
ccheatnpos dd 0
|
GUIcurrentcheatwin resd 1
|
||||||
ccheatnleft dd 0
|
ccheatnpos resd 1
|
||||||
|
ccheatnleft resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
DrawWindowSearch:
|
DrawWindowSearch:
|
||||||
GUIDrawWindowBox 13,GUISearchDisp
|
GUIDrawWindowBox 13,GUISearchDisp
|
||||||
@@ -3440,29 +3438,35 @@ Cheatmodeadd:
|
|||||||
;CheatSrcByteSize db 0
|
;CheatSrcByteSize db 0
|
||||||
;CheatSrcByteBase db 0
|
;CheatSrcByteBase db 0
|
||||||
;CheatSrcSearchType db 0
|
;CheatSrcSearchType db 0
|
||||||
CheatWinMode db 0
|
SECTION .bss
|
||||||
CheatSearchStatus db 0
|
CheatWinMode resb 1
|
||||||
CheatCompareValue dd 0
|
CheatSearchStatus resb 1
|
||||||
NumCheatSrc dd 0
|
CheatCompareValue resd 1
|
||||||
GUIcurrentchtsrcviewloc dd 0
|
NumCheatSrc resd 1
|
||||||
GUIcurrentchtsrccursloc dd 0
|
GUIcurrentchtsrcviewloc resd 1
|
||||||
CSStartEntry dd 0
|
GUIcurrentchtsrccursloc resd 1
|
||||||
CSCurEntry dd 0
|
CSStartEntry resd 1
|
||||||
CheatSearchXPos dd 0
|
CSCurEntry resd 1
|
||||||
CheatSearchYPos dd 0
|
CheatSearchXPos resd 1
|
||||||
CheatLooped dd 0
|
CheatSearchYPos resd 1
|
||||||
ccheatnleftb dd 0
|
CheatLooped resd 1
|
||||||
CurCStextpos dd 0
|
ccheatnleftb resd 1
|
||||||
|
CurCStextpos resd 1
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
SrcMask dd 0FFh,0FFFFh,0FFFFFFh,0FFFFFFFFh
|
SrcMask dd 0FFh,0FFFFh,0FFFFFFh,0FFFFFFFFh
|
||||||
CSInputDisplay db '_',0,' ',0
|
CSInputDisplay db '_',0,' ',0
|
||||||
CSDescDisplay db ' ',0,0
|
CSDescDisplay db ' ',0,0
|
||||||
curentryval dd 0
|
|
||||||
curentryleft dd 0
|
|
||||||
curaddrvalcs dd 0
|
|
||||||
curvaluecs dd 0
|
|
||||||
|
|
||||||
GUICSStA dd 0,0,0
|
SECTION .bss
|
||||||
|
curentryval resd 1
|
||||||
|
curentryleft resd 1
|
||||||
|
curaddrvalcs resd 1
|
||||||
|
curvaluecs resd 1
|
||||||
|
|
||||||
|
GUICSStA resd 3
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
GUISrcText1 db 'CHEAT SEARCH',0
|
GUISrcText1 db 'CHEAT SEARCH',0
|
||||||
GUISrcText2 db 'HAS NOT BEEN',0
|
GUISrcText2 db 'HAS NOT BEEN',0
|
||||||
GUISrcText3 db 'IMPLEMENTED YET',0
|
GUISrcText3 db 'IMPLEMENTED YET',0
|
||||||
@@ -3500,6 +3504,7 @@ GUICSrcTextV db 'ENTER NEW VALUE:',0
|
|||||||
GUICSrcTextW db 'ENTER CHEAT DESCRIPTION:',0
|
GUICSrcTextW db 'ENTER CHEAT DESCRIPTION:',0
|
||||||
GUICSrcTextX db 'PAR CODE EQUIVALENT:',0
|
GUICSrcTextX db 'PAR CODE EQUIVALENT:',0
|
||||||
GUICSrcTextY db 'USE ONLY UPPER BYTE',0
|
GUICSrcTextY db 'USE ONLY UPPER BYTE',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
|
|
||||||
NEWSYM NetAddChar ; dl = color, dh = char
|
NEWSYM NetAddChar ; dl = color, dh = char
|
||||||
@@ -3621,13 +3626,16 @@ NEWSYM NetAddChar ; dl = color, dh = char
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
CCursLoc dd 0
|
section .bss
|
||||||
CViewLoc dd 0
|
CCursLoc resd 1
|
||||||
NViewLoc dd 0
|
CViewLoc resd 1
|
||||||
TViewLoc dd 0
|
NViewLoc resd 1
|
||||||
|
TViewLoc resd 1
|
||||||
|
section .text
|
||||||
|
|
||||||
|
|
||||||
DisplayNetOptns:
|
DisplayNetOptns:
|
||||||
|
|
||||||
mov dword[GUIwinsizex+8*4],7*16
|
mov dword[GUIwinsizex+8*4],7*16
|
||||||
mov dword[GUIwinsizey+8*4],57
|
mov dword[GUIwinsizey+8*4],57
|
||||||
mov dword[GUINetDisp],'IPX '
|
mov dword[GUINetDisp],'IPX '
|
||||||
@@ -3641,6 +3649,7 @@ DisplayNetOptns:
|
|||||||
mov dword[GUINetDisp+4],'R! '
|
mov dword[GUINetDisp+4],'R! '
|
||||||
jmp .nomodem
|
jmp .nomodem
|
||||||
.netokay
|
.netokay
|
||||||
|
%ifdef __MSDOS__
|
||||||
cmp byte[CNetType],8
|
cmp byte[CNetType],8
|
||||||
jne .noipxinvalid
|
jne .noipxinvalid
|
||||||
mov dword[GUIwinsizex+8*4],7*16
|
mov dword[GUIwinsizex+8*4],7*16
|
||||||
@@ -3648,6 +3657,7 @@ DisplayNetOptns:
|
|||||||
mov dword[GUINetDisp],'ERRO'
|
mov dword[GUINetDisp],'ERRO'
|
||||||
mov dword[GUINetDisp+4],'R! '
|
mov dword[GUINetDisp+4],'R! '
|
||||||
.noipxinvalid
|
.noipxinvalid
|
||||||
|
%endif
|
||||||
|
|
||||||
cmp byte[CNetType],22
|
cmp byte[CNetType],22
|
||||||
je .yesstate
|
je .yesstate
|
||||||
@@ -3703,6 +3713,7 @@ DisplayNetOptns:
|
|||||||
mov dword[GUIwinsizex+8*4],201
|
mov dword[GUIwinsizex+8*4],201
|
||||||
mov dword[GUIwinsizey+8*4],48
|
mov dword[GUIwinsizey+8*4],48
|
||||||
.notcpip
|
.notcpip
|
||||||
|
%ifdef __MSDOS__
|
||||||
cmp byte[CNetType],3
|
cmp byte[CNetType],3
|
||||||
je .yesmodem
|
je .yesmodem
|
||||||
cmp byte[CNetType],1
|
cmp byte[CNetType],1
|
||||||
@@ -3729,6 +3740,7 @@ DisplayNetOptns:
|
|||||||
mov dword[GUINetDisp+8],'TTIN'
|
mov dword[GUINetDisp+8],'TTIN'
|
||||||
mov word[GUINetDisp+12],'GS'
|
mov word[GUINetDisp+12],'GS'
|
||||||
mov byte[GUINetDisp+14],0
|
mov byte[GUINetDisp+14],0
|
||||||
|
%endif
|
||||||
.nomodem
|
.nomodem
|
||||||
GUIDrawWindowBox 8,GUINetDisp
|
GUIDrawWindowBox 8,GUINetDisp
|
||||||
cmp byte[per2exec],99
|
cmp byte[per2exec],99
|
||||||
@@ -3739,12 +3751,14 @@ DisplayNetOptns:
|
|||||||
cmp byte[CNetType],21
|
cmp byte[CNetType],21
|
||||||
je near DisplayNetTCPIPState
|
je near DisplayNetTCPIPState
|
||||||
|
|
||||||
|
%ifdef __MSDOS__
|
||||||
cmp byte[CNetType],1
|
cmp byte[CNetType],1
|
||||||
je near DisplayNetOptnsModem
|
je near DisplayNetOptnsModem
|
||||||
cmp byte[CNetType],2
|
cmp byte[CNetType],2
|
||||||
je near DisplayNetOptnsModemConfig
|
je near DisplayNetOptnsModemConfig
|
||||||
cmp byte[CNetType],3
|
cmp byte[CNetType],3
|
||||||
je near DisplayNetOptnsModemDial
|
je near DisplayNetOptnsModemDial
|
||||||
|
%endif
|
||||||
cmp byte[CNetType],4
|
cmp byte[CNetType],4
|
||||||
je near DisplayNetOptnsTCPIP
|
je near DisplayNetOptnsTCPIP
|
||||||
cmp byte[CNetType],10
|
cmp byte[CNetType],10
|
||||||
@@ -3757,6 +3771,7 @@ DisplayNetOptns:
|
|||||||
je near DisplayNetOptnsModemTerm
|
je near DisplayNetOptnsModemTerm
|
||||||
cmp byte[CNetType],20
|
cmp byte[CNetType],20
|
||||||
je near DisplayNetOptnsChatWindow
|
je near DisplayNetOptnsChatWindow
|
||||||
|
%ifdef __MSDOS__
|
||||||
cmp byte[CNetType],7
|
cmp byte[CNetType],7
|
||||||
je near DisplayNetIPXStart
|
je near DisplayNetIPXStart
|
||||||
cmp byte[CNetType],8
|
cmp byte[CNetType],8
|
||||||
@@ -3785,6 +3800,7 @@ DisplayNetOptns:
|
|||||||
GUIOuttextwin2 8,5,15,GUINetText1
|
GUIOuttextwin2 8,5,15,GUINetText1
|
||||||
GUIOuttextwin2 8,5,25,GUINetText2
|
GUIOuttextwin2 8,5,25,GUINetText2
|
||||||
ret
|
ret
|
||||||
|
%endif
|
||||||
|
|
||||||
DisplayNetTCPIPState:
|
DisplayNetTCPIPState:
|
||||||
DrawGUIButton 8,73,48,127,59,GUITCPStateText3,64,0,0
|
DrawGUIButton 8,73,48,127,59,GUITCPStateText3,64,0,0
|
||||||
@@ -3833,10 +3849,13 @@ DisplayNetTCPIPState:
|
|||||||
DrawGUIWinBox 8,122,30,121,40,dl ; 2,0,1,0
|
DrawGUIWinBox 8,122,30,121,40,dl ; 2,0,1,0
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
GUITCPStateText1 db 'SENDING STATUS',0
|
GUITCPStateText1 db 'SENDING STATUS',0
|
||||||
GUITCPStateText2 db 'RECEIVING STATUS',0
|
GUITCPStateText2 db 'RECEIVING STATUS',0
|
||||||
GUITCPStateText3 db 'CANCEL',0
|
GUITCPStateText3 db 'CANCEL',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
|
%ifdef __MSDOS
|
||||||
DisplayNetIPXStart:
|
DisplayNetIPXStart:
|
||||||
DrawGUIButton 8,53,48,87,59,GUINetTextZ,34,0,0
|
DrawGUIButton 8,53,48,87,59,GUINetTextZ,34,0,0
|
||||||
sub byte[GUItextcolor],15
|
sub byte[GUItextcolor],15
|
||||||
@@ -3851,6 +3870,7 @@ DisplayNetIPXStart:
|
|||||||
|
|
||||||
DisplayNetIPXInvalid:
|
DisplayNetIPXInvalid:
|
||||||
ret
|
ret
|
||||||
|
%endif
|
||||||
|
|
||||||
DisplayNetOptnsTCPIP:
|
DisplayNetOptnsTCPIP:
|
||||||
; Your IP:
|
; Your IP:
|
||||||
@@ -3973,6 +3993,7 @@ DisplayNetOptnsInvalid:
|
|||||||
GUIOuttextwin2 8,5,25,GUINetText2b
|
GUIOuttextwin2 8,5,25,GUINetText2b
|
||||||
GUIOuttextwin2 8,5,35,GUINetText3b
|
GUIOuttextwin2 8,5,35,GUINetText3b
|
||||||
ret
|
ret
|
||||||
|
%ifdef __MSDOS__
|
||||||
DisplayNetOptnsModem:
|
DisplayNetOptnsModem:
|
||||||
mov dword[GUIEditStringcWin],0
|
mov dword[GUIEditStringcWin],0
|
||||||
DrawGUIButton 8,5,15,89,26,GUINetTextG,21,0,0
|
DrawGUIButton 8,5,15,89,26,GUINetTextG,21,0,0
|
||||||
@@ -4101,6 +4122,7 @@ DisplayNetOptnsModemDial:
|
|||||||
; mov dword[GUIEditStringmLenM],27
|
; mov dword[GUIEditStringmLenM],27
|
||||||
mov dword[GUIEditStringcWin],1
|
mov dword[GUIEditStringcWin],1
|
||||||
ret
|
ret
|
||||||
|
%endif
|
||||||
DisplayNetOptnsModemTerm:
|
DisplayNetOptnsModemTerm:
|
||||||
DrawGUIWinBox 8,6,15,181,127,167
|
DrawGUIWinBox 8,6,15,181,127,167
|
||||||
; draw borders
|
; draw borders
|
||||||
@@ -4378,23 +4400,30 @@ DisplayNetOptnsChatWindow:
|
|||||||
; DrawSlideBarWin 8,181,15,[NViewLoc],[TViewLoc],12,97,GUINCStA
|
; DrawSlideBarWin 8,181,15,[NViewLoc],[TViewLoc],12,97,GUINCStA
|
||||||
ret
|
ret
|
||||||
|
|
||||||
NEWSYM GUINCStA, dd 0,0,0
|
SECTION .bss
|
||||||
NEWSYM CNetType, db 0
|
NEWSYM GUINCStA, resd 3
|
||||||
|
NEWSYM CNetType, resb 1
|
||||||
|
SECTION .data
|
||||||
NEWSYM Latency, db 2
|
NEWSYM Latency, db 2
|
||||||
NEWSYM Latencytochange, db 2
|
NEWSYM Latencytochange, db 2
|
||||||
NEWSYM LatencyLeft, db 2
|
NEWSYM LatencyLeft, db 2
|
||||||
NEWSYM NetSwap, db 0
|
SECTION .bss
|
||||||
RemCNetType db 0
|
NEWSYM NetSwap, resb 1
|
||||||
UseRemoteSRAMData db 0
|
RemCNetType resb 1
|
||||||
ChatString times 276 db 0
|
UseRemoteSRAMData resb 1
|
||||||
FileNameMod times 512 db 0
|
ChatString resb 276
|
||||||
CurCStringPos dd 0
|
FileNameMod resb 512
|
||||||
|
CurCStringPos resd 1
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
|
%ifdef __MSDOS__
|
||||||
GUINetText1 db 'IPX HAS NOT BEEN',0
|
GUINetText1 db 'IPX HAS NOT BEEN',0
|
||||||
GUINetText2 db 'IMPLEMENTED YET',0
|
GUINetText2 db 'IMPLEMENTED YET',0
|
||||||
|
%endif
|
||||||
GUINetText1b db 'PLEASE SET THE',0
|
GUINetText1b db 'PLEASE SET THE',0
|
||||||
GUINetText2b db 'PERCENTAGE OF',0
|
GUINetText2b db 'PERCENTAGE OF',0
|
||||||
GUINetText3b db 'EXECUTION TO 100',0
|
GUINetText3b db 'EXECUTION TO 100',0
|
||||||
|
%ifdef __MSDOS__
|
||||||
GUINetText1c db 'IPX IS IN BETA',0
|
GUINetText1c db 'IPX IS IN BETA',0
|
||||||
GUINetText2c db 'STAGES. IT MAY',0
|
GUINetText2c db 'STAGES. IT MAY',0
|
||||||
GUINetText3c db 'NOT WORK RIGHT!',0
|
GUINetText3c db 'NOT WORK RIGHT!',0
|
||||||
@@ -4403,9 +4432,11 @@ GUINetText4 db 'COM2 (2F8)',0
|
|||||||
GUINetText5 db 'COM3 (3E8)',0
|
GUINetText5 db 'COM3 (3E8)',0
|
||||||
GUINetText6 db 'COM4 (2E8)',0
|
GUINetText6 db 'COM4 (2E8)',0
|
||||||
GUINetText7 db 'IRQ ',0
|
GUINetText7 db 'IRQ ',0
|
||||||
|
%endif
|
||||||
GUINetText8 db '00',0
|
GUINetText8 db '00',0
|
||||||
GUINetText9 db '+',0
|
GUINetText9 db '+',0
|
||||||
GUINetTextA db '-',0
|
GUINetTextA db '-',0
|
||||||
|
%ifdef __MSDOS__
|
||||||
GUINetTextC db 'TONE (ATDT)',0
|
GUINetTextC db 'TONE (ATDT)',0
|
||||||
GUINetTextD db 'PULSE (ATDP)',0
|
GUINetTextD db 'PULSE (ATDP)',0
|
||||||
GUINetTextE db 'INIT STRINGS :',0
|
GUINetTextE db 'INIT STRINGS :',0
|
||||||
@@ -4425,12 +4456,17 @@ GUINetTextO db '57600',0
|
|||||||
GUINetTextP db '115200',0
|
GUINetTextP db '115200',0
|
||||||
GUINetTextQ db 'BAUDRATE (BPS) :',0
|
GUINetTextQ db 'BAUDRATE (BPS) :',0
|
||||||
GUINetTextR db 'COMPORT :',0
|
GUINetTextR db 'COMPORT :',0
|
||||||
|
%endif
|
||||||
GUINetTextS db 'CANCEL',0
|
GUINetTextS db 'CANCEL',0
|
||||||
|
%ifdef __MSDOS__
|
||||||
GUINetTextT db 'DIAL',0
|
GUINetTextT db 'DIAL',0
|
||||||
|
%endif
|
||||||
GUINetTextU db 'DISCONNECT',0
|
GUINetTextU db 'DISCONNECT',0
|
||||||
GUINetTextV db 'PLAYER SELECT :',0
|
GUINetTextV db 'PLAYER SELECT :',0
|
||||||
GUINetTextW db '1',0,'2',0,'3',0,'4',0,'5',0
|
GUINetTextW db '1',0,'2',0,'3',0,'4',0,'5',0
|
||||||
|
%ifdef __MSDOS__
|
||||||
GUINetTextX db 'USE FOSSIL DRIVER',0
|
GUINetTextX db 'USE FOSSIL DRIVER',0
|
||||||
|
%endif
|
||||||
GUINetTextY db 'LATENCY',0
|
GUINetTextY db 'LATENCY',0
|
||||||
GUINetTextZ db 'OKAY',0
|
GUINetTextZ db 'OKAY',0
|
||||||
GUINetTexta db 'SAVE DATA :',0
|
GUINetTexta db 'SAVE DATA :',0
|
||||||
@@ -4453,7 +4489,11 @@ GUINetTextr1 db 'PLEASE RESTART ZSNESW',0
|
|||||||
GUINetTextr2 db 'BEFORE STARTING A NEW',0
|
GUINetTextr2 db 'BEFORE STARTING A NEW',0
|
||||||
GUINetTextr3 db 'NETPLAY SESSION',0
|
GUINetTextr3 db 'NETPLAY SESSION',0
|
||||||
|
|
||||||
|
%ifdef __MSDOS__
|
||||||
BaudVal dd 9600,14400,19200,28800,38400,57600,115200
|
BaudVal dd 9600,14400,19200,28800,38400,57600,115200
|
||||||
|
%endif
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
DisplayGameOptns:
|
DisplayGameOptns:
|
||||||
; Key redefinition for :
|
; Key redefinition for :
|
||||||
@@ -4735,9 +4775,12 @@ DisplayGameOptns:
|
|||||||
DGOptnsDrawBox 8+108+70,188,[KeyQuickSaveSPC]
|
DGOptnsDrawBox 8+108+70,188,[KeyQuickSaveSPC]
|
||||||
ret
|
ret
|
||||||
|
|
||||||
GUIGameOptnsColA db 0
|
SECTION .bss
|
||||||
GUIGameOptnsColB db 0
|
GUIGameOptnsColA resb 1
|
||||||
GUIGameDisplayKy dd 0
|
GUIGameOptnsColB resb 1
|
||||||
|
GUIGameDisplayKy resd 1
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
GUIGameOptnsText1 db 'SOUND DISABLES :',0
|
GUIGameOptnsText1 db 'SOUND DISABLES :',0
|
||||||
GUIGameOptnsText2 db 'CH#',0
|
GUIGameOptnsText2 db 'CH#',0
|
||||||
GUIGameOptnsText3 db 'BG DISABLES :',0
|
GUIGameOptnsText3 db 'BG DISABLES :',0
|
||||||
@@ -4772,6 +4815,7 @@ GUIGameOptnsTextV db 'SAVE SPC',0
|
|||||||
GUIGameOptnsTextX db 'DISPLAY FPS',0
|
GUIGameOptnsTextX db 'DISPLAY FPS',0
|
||||||
GUIGameOptnsTextY db 'ST+',0
|
GUIGameOptnsTextY db 'ST+',0
|
||||||
GUIGameOptnsTextZ db 'ST-',0
|
GUIGameOptnsTextZ db 'ST-',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
DisplayGUIOptns:
|
DisplayGUIOptns:
|
||||||
%ifdef __WIN32__
|
%ifdef __WIN32__
|
||||||
@@ -5101,6 +5145,7 @@ DisplayGUIOptns:
|
|||||||
;lastcursres db 0 ; 0 = go to load, 1 = go to previous menu, 2 = no menu
|
;lastcursres db 0 ; 0 = go to load, 1 = go to previous menu, 2 = no menu
|
||||||
;resetposn db 1 ; 0 = no window reset, 1 = window reset
|
;resetposn db 1 ; 0 = no window reset, 1 = window reset
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
GUIGUIOptnsText1 db 'COLOR:',0
|
GUIGUIOptnsText1 db 'COLOR:',0
|
||||||
GUIGUIOptnsText2 db 'MOUSE WRAP',0
|
GUIGUIOptnsText2 db 'MOUSE WRAP',0
|
||||||
GUIGUIOptnsText3 db 'MOUSE SHADOW',0
|
GUIGUIOptnsText3 db 'MOUSE SHADOW',0
|
||||||
@@ -5112,7 +5157,7 @@ GUIGUIOptnsText8 db 'CLICK ENTERS GUI',0
|
|||||||
GUIGUIOptnsText9 dd 0
|
GUIGUIOptnsText9 dd 0
|
||||||
GUIGUIOptnsTextA db 'USE JOYPAD1',0
|
GUIGUIOptnsTextA db 'USE JOYPAD1',0
|
||||||
GUIGUIOptnsTextB dd 'SNOW EFFECT',0
|
GUIGUIOptnsTextB dd 'SNOW EFFECT',0
|
||||||
GUIGUIOptnsTextBb dd 'SMOKE EFFECT',0
|
GUIGUIOptnsTextBb dd 'BURNING EFFECT',0
|
||||||
GUIGUIOptnsTextC dd 'WATER EFFECT A',0
|
GUIGUIOptnsTextC dd 'WATER EFFECT A',0
|
||||||
GUIGUIOptnsTextCb dd 'WATER EFFECT B',0
|
GUIGUIOptnsTextCb dd 'WATER EFFECT B',0
|
||||||
GUIGUIOptnsTextD dd 'MAIN WINDOW OPTIONS :',0
|
GUIGUIOptnsTextD dd 'MAIN WINDOW OPTIONS :',0
|
||||||
@@ -5126,6 +5171,7 @@ GUIGUIOptnsTextK db 'WHEEL MOUSE',0
|
|||||||
GUIGUIOptnsTextL db 'ALLOW MULTIPLE INSTANCES',0
|
GUIGUIOptnsTextL db 'ALLOW MULTIPLE INSTANCES',0
|
||||||
GUIGUIOptnsTextM db 'FILTERED GUI',0
|
GUIGUIOptnsTextM db 'FILTERED GUI',0
|
||||||
GUIGUIOptnsTextN db 'TRAP MOUSE CURSOR',0
|
GUIGUIOptnsTextN db 'TRAP MOUSE CURSOR',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
DisplayGUIAbout:
|
DisplayGUIAbout:
|
||||||
GUIDrawWindowBox 11,GUIAboutDisp
|
GUIDrawWindowBox 11,GUIAboutDisp
|
||||||
@@ -5184,6 +5230,7 @@ DisplayGUIAbout:
|
|||||||
GUIOuttextwin2 11,5,75,GUIGUIAboutText5
|
GUIOuttextwin2 11,5,75,GUIGUIAboutText5
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
GUIGUIAboutText1 db 'ZSNES V',ZVERSION,0
|
GUIGUIAboutText1 db 'ZSNES V',ZVERSION,0
|
||||||
GUIGUIAboutText2 db 'CODED BY : ',0
|
GUIGUIAboutText2 db 'CODED BY : ',0
|
||||||
GUIGUIAboutText3 db ' ZSKNIGHT',0
|
GUIGUIAboutText3 db ' ZSKNIGHT',0
|
||||||
@@ -5212,6 +5259,8 @@ GUIGUIAboutTextE db 'certain conditions; please',0
|
|||||||
GUIGUIAboutTextF db 'please read ',39,'LICENSE',39,0
|
GUIGUIAboutTextF db 'please read ',39,'LICENSE',39,0
|
||||||
GUIGUIAboutTextG db 'thoroughly before using it.',0
|
GUIGUIAboutTextG db 'thoroughly before using it.',0
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
DisplayGUIMovies:
|
DisplayGUIMovies:
|
||||||
GUIDrawWindowBox 15,GUIMovieDisp
|
GUIDrawWindowBox 15,GUIMovieDisp
|
||||||
cmp byte[MovieRecordWinVal],0
|
cmp byte[MovieRecordWinVal],0
|
||||||
@@ -5312,6 +5361,7 @@ DisplayGUIMovies:
|
|||||||
GUIDisplayButtonHole 15,80,55,byte[CMovieExt],'9'
|
GUIDisplayButtonHole 15,80,55,byte[CMovieExt],'9'
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
GUIMovieText1 db 'PLAY',0
|
GUIMovieText1 db 'PLAY',0
|
||||||
GUIMovieText2 db 'RECORD',0
|
GUIMovieText2 db 'RECORD',0
|
||||||
GUIMovieText3 db 'STOP',0
|
GUIMovieText3 db 'STOP',0
|
||||||
@@ -5324,6 +5374,8 @@ GUIMovieText9 db 'NO',0
|
|||||||
GUIMovieTextA db 'STATUS : ',0
|
GUIMovieTextA db 'STATUS : ',0
|
||||||
CMovieExt db 'v'
|
CMovieExt db 'v'
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
; Key types: Up, Down, Left, Right, A, B, X, Y, L, R (Press/Relase/P+R)
|
; Key types: Up, Down, Left, Right, A, B, X, Y, L, R (Press/Relase/P+R)
|
||||||
; Frame delays: 1 frame, 2, 3, 4, 5, 1 sec., 2, 3 ,4 ,5
|
; Frame delays: 1 frame, 2, 3, 4, 5, 1 sec., 2, 3 ,4 ,5
|
||||||
|
|
||||||
@@ -5712,6 +5764,15 @@ DisplayGUICombo:
|
|||||||
mov byte[GUIGameDisplayKy+3],0
|
mov byte[GUIGameDisplayKy+3],0
|
||||||
GUIOuttextwin2c 16,139,94,GUIGameDisplayKy
|
GUIOuttextwin2c 16,139,94,GUIGameDisplayKy
|
||||||
|
|
||||||
|
; Buttons
|
||||||
|
mov al,[TextColorSp+2]
|
||||||
|
add al,15
|
||||||
|
mov byte[GUItextcolor],al
|
||||||
|
DrawGUIButton 16,202,20,246,31,GUIComboTextA,60,-1,0
|
||||||
|
DrawGUIButton 16,202,35,246,46,GUIComboTextB,61,-1,0
|
||||||
|
DrawGUIButton 16,202,50,246,61,GUIComboTextC,62,-1,0
|
||||||
|
DrawGUIButton 16,202,65,246,76,GUIComboTextD,63,-1,0
|
||||||
|
|
||||||
; Hole Switches
|
; Hole Switches
|
||||||
GUIDisplayButtonHole 16,178,82,byte[GUIComboPNum],0
|
GUIDisplayButtonHole 16,178,82,byte[GUIComboPNum],0
|
||||||
GUIDisplayButtonHole 16,196,82,byte[GUIComboPNum],1
|
GUIDisplayButtonHole 16,196,82,byte[GUIComboPNum],1
|
||||||
@@ -5921,27 +5982,28 @@ DisplayGUICombo:
|
|||||||
.noscrolldisplay
|
.noscrolldisplay
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .bss
|
||||||
GUIccombviewloc dd 0
|
GUIccombviewloc resd 1
|
||||||
GUIccombcursloc dd 0
|
GUIccombcursloc resd 1
|
||||||
GUIccomblcursloc dd 0
|
GUIccomblcursloc resd 1
|
||||||
NEWSYM NumCombo, dd 0
|
NEWSYM NumCombo, resd 1
|
||||||
NumComboGlob dd 0
|
NumComboGlob resd 1
|
||||||
NEWSYM NumComboLocl, dd 0
|
NEWSYM NumComboLocl, resd 1
|
||||||
GUICSStC dd 0,0,0
|
GUICSStC resd 3
|
||||||
GUIComboKey dd 0
|
GUIComboKey resd 1
|
||||||
GUIComboPos db 0
|
GUIComboPos resb 1
|
||||||
GUIComboPNum db 0
|
GUIComboPNum resb 1
|
||||||
GUIComboLHorz db 0
|
GUIComboLHorz resb 1
|
||||||
NEWSYM GUINumCombo, db 0
|
NEWSYM GUINumCombo, resb 1
|
||||||
GUIComboData times 50 db 0
|
GUIComboData resb 50
|
||||||
GUIScrolBufA times 21 db 0
|
GUIScrolBufA resb 21
|
||||||
GUIScrolBufB times 10 db 0
|
GUIScrolBufB resb 10
|
||||||
|
|
||||||
|
|
||||||
;CombinDataGlob times 3300 db 0 ; 20-name, 42-combo, 2-key#, 1-P#, 1-ff
|
;CombinDataGlob times 3300 db 0 ; 20-name, 42-combo, 2-key#, 1-P#, 1-ff
|
||||||
;CombinDataLocl times 3300 db 0
|
;CombinDataLocl times 3300 db 0
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
GUIComboText1 db 'DESCRIPTION',0
|
GUIComboText1 db 'DESCRIPTION',0
|
||||||
GUIComboText2 db 'KEY P# LH',0
|
GUIComboText2 db 'KEY P# LH',0
|
||||||
GUIComboText3 db ' ',0
|
GUIComboText3 db ' ',0
|
||||||
@@ -6024,6 +6086,8 @@ GUIIconDataComboSecond:
|
|||||||
db 0 ,48 ,46 ,44 ,42 ,0 ,0 ,0 ,0 ,0
|
db 0 ,48 ,46 ,44 ,42 ,0 ,0 ,0 ,0 ,0
|
||||||
db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0
|
db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
DisplayGUIAddOns:
|
DisplayGUIAddOns:
|
||||||
GUIDrawWindowBox 17,GUIAddOnsDisp
|
GUIDrawWindowBox 17,GUIAddOnsDisp
|
||||||
sub byte[GUItextcolor],15
|
sub byte[GUItextcolor],15
|
||||||
@@ -6095,6 +6159,7 @@ DisplayGUIAddOns:
|
|||||||
GUIDisplayIconWin 17,109,93,[GUITemp]
|
GUIDisplayIconWin 17,109,93,[GUITemp]
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
GUIAddOnText1 db 'NONE',0
|
GUIAddOnText1 db 'NONE',0
|
||||||
GUIAddOnText2 db 'SNES MOUSE AT PORT #1',0
|
GUIAddOnText2 db 'SNES MOUSE AT PORT #1',0
|
||||||
GUIAddOnText3 db 'SNES MOUSE AT PORT #2',0
|
GUIAddOnText3 db 'SNES MOUSE AT PORT #2',0
|
||||||
@@ -6126,9 +6191,11 @@ GUIStatesDisp db 'STATE CONFIRM',0
|
|||||||
GUIComboDisp db 'KEY COMBINATION EDITOR',0
|
GUIComboDisp db 'KEY COMBINATION EDITOR',0
|
||||||
GUIAddOnsDisp db 'ADD-ON SELECTOR',0
|
GUIAddOnsDisp db 'ADD-ON SELECTOR',0
|
||||||
|
|
||||||
GUIItemBoxColor dd 0
|
SECTION .bss
|
||||||
TextColorSp dd 0
|
GUIItemBoxColor resd 1
|
||||||
|
TextColorSp resd 1
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
NEWSYM GUIMenuItem, db 'GAME ',0
|
NEWSYM GUIMenuItem, db 'GAME ',0
|
||||||
db 'CONFIG',0
|
db 'CONFIG',0
|
||||||
db 'CHEAT ',0
|
db 'CHEAT ',0
|
||||||
@@ -6136,3 +6203,4 @@ NEWSYM GUIMenuItem, db 'GAME ',0
|
|||||||
db 'MISC ',0
|
db 'MISC ',0
|
||||||
db 25,0
|
db 25,0
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|||||||
@@ -85,14 +85,25 @@ GUIUnBuffer:
|
|||||||
jnz .loop
|
jnz .loop
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .bss
|
||||||
|
NEWSYM nextmenupopup, resb 1
|
||||||
|
NEWSYM NoInputRead, resb 1
|
||||||
|
NEWSYM PrevMenuPos, resb 1
|
||||||
|
NEWSYM MenuDisplace, resd 1
|
||||||
|
NEWSYM MenuDisplace16, resd 1
|
||||||
|
NEWSYM MenuNoExit, resb 1
|
||||||
|
NEWSYM SPCSave, resb 1
|
||||||
|
|
||||||
NEWSYM nextmenupopup, db 0
|
%ifdef SPCDUMP
|
||||||
NEWSYM NoInputRead, db 0
|
SECTION .data
|
||||||
NEWSYM PrevMenuPos, db 0
|
NEWSYM SPCSave_dump, db 0
|
||||||
NEWSYM MenuDisplace, dd 0
|
SECTION .bss
|
||||||
NEWSYM MenuDisplace16, dd 0
|
|
||||||
NEWSYM MenuNoExit, db 0
|
EXTSYM SPCSave_buffer, SPCSave_ports
|
||||||
NEWSYM SPCSave, db 0
|
NEWSYM SPCSave_handle, resd 1
|
||||||
|
%endif
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM showmenu
|
NEWSYM showmenu
|
||||||
mov byte[ForceNonTransp],1
|
mov byte[ForceNonTransp],1
|
||||||
@@ -160,13 +171,13 @@ NEWSYM showmenu
|
|||||||
call savepcx
|
call savepcx
|
||||||
jmp .nopalwrite
|
jmp .nopalwrite
|
||||||
.nosskey
|
.nosskey
|
||||||
|
cmp byte[SPCKeyPressed],1
|
||||||
|
je near .savespckey
|
||||||
test byte[pressed+14],1
|
test byte[pressed+14],1
|
||||||
jz .nof12
|
jz .nof12
|
||||||
call savepcx
|
call savepcx
|
||||||
jmp .nopalwrite
|
jmp .nopalwrite
|
||||||
.nof12
|
.nof12
|
||||||
cmp byte[SPCKeyPressed],1
|
|
||||||
je near .savespckey
|
|
||||||
mov dword[menucloc],0
|
mov dword[menucloc],0
|
||||||
cmp byte[nextmenupopup],0
|
cmp byte[nextmenupopup],0
|
||||||
je .nomenuinc2
|
je .nomenuinc2
|
||||||
@@ -237,10 +248,10 @@ NEWSYM showmenu
|
|||||||
.nogoup
|
.nogoup
|
||||||
sub dword[menucloc],10*288
|
sub dword[menucloc],10*288
|
||||||
call menudrawbox8b
|
call menudrawbox8b
|
||||||
mov al,[newengen]
|
; mov al,[newengen] ; WTF?
|
||||||
mov byte[newengen],0
|
; mov byte[newengen],0
|
||||||
|
|
||||||
mov [newengen],al
|
; mov [newengen],al
|
||||||
jmp .nextkey
|
jmp .nextkey
|
||||||
.noup
|
.noup
|
||||||
cmp al,80
|
cmp al,80
|
||||||
@@ -251,12 +262,12 @@ NEWSYM showmenu
|
|||||||
.nogodown
|
.nogodown
|
||||||
add dword[menucloc],10*288
|
add dword[menucloc],10*288
|
||||||
call menudrawbox8b
|
call menudrawbox8b
|
||||||
mov al,[newengen]
|
; mov al,[newengen]
|
||||||
mov byte[newengen],0
|
; mov byte[newengen],0
|
||||||
push eax
|
; push eax
|
||||||
call copyvid
|
call copyvid
|
||||||
pop eax
|
; pop eax
|
||||||
mov [newengen],al
|
; mov [newengen],al
|
||||||
jmp .nextkey
|
jmp .nextkey
|
||||||
.nodown
|
.nodown
|
||||||
jmp .nextkey
|
jmp .nextkey
|
||||||
@@ -268,12 +279,12 @@ NEWSYM showmenu
|
|||||||
jmp .nextkey
|
jmp .nextkey
|
||||||
.done
|
.done
|
||||||
call GUIUnBuffer
|
call GUIUnBuffer
|
||||||
mov al,[newengen]
|
; mov al,[newengen]
|
||||||
mov byte[newengen],0
|
; mov byte[newengen],0
|
||||||
push eax
|
; push eax
|
||||||
call copyvid
|
call copyvid
|
||||||
pop eax
|
; pop eax
|
||||||
mov [newengen],al
|
; mov [newengen],al
|
||||||
cmp dword[menucloc],0
|
cmp dword[menucloc],0
|
||||||
jne .nosavepcx
|
jne .nosavepcx
|
||||||
call savepcx
|
call savepcx
|
||||||
@@ -340,17 +351,34 @@ NEWSYM showmenu
|
|||||||
.savespckey
|
.savespckey
|
||||||
cmp byte[spcon],0
|
cmp byte[spcon],0
|
||||||
je .nospc
|
je .nospc
|
||||||
cmp byte[newengen],1
|
|
||||||
|
%ifdef SPCDUMP
|
||||||
|
cmp byte[SPCSave_dump], 1
|
||||||
|
jne .start_dump
|
||||||
|
|
||||||
|
mov ebx, [SPCSave_handle]
|
||||||
|
mov eax, -1
|
||||||
|
mov [SPCSave_buffer], eax
|
||||||
|
mov ecx, 4
|
||||||
|
mov edx, SPCSave_buffer
|
||||||
|
call Write_File
|
||||||
|
call Close_File
|
||||||
|
mov byte[SPCSave_dump], 0
|
||||||
|
jmp .nospcsave
|
||||||
|
.start_dump
|
||||||
|
%endif
|
||||||
|
|
||||||
|
; cmp byte[newengen],1
|
||||||
; je .unablespc
|
; je .unablespc
|
||||||
mov dword[Msgptr],.search
|
mov dword[Msgptr],.search
|
||||||
mov eax,[MsgCount]
|
mov eax,[MsgCount]
|
||||||
mov [MessageOn],eax
|
mov [MessageOn],eax
|
||||||
mov al,[newengen]
|
; mov al,[newengen]
|
||||||
mov byte[newengen],0
|
; mov byte[newengen],0
|
||||||
push eax
|
; push eax
|
||||||
call copyvid
|
call copyvid
|
||||||
pop eax
|
; pop eax
|
||||||
mov [newengen],al
|
; mov [newengen],al
|
||||||
; call breakatsignc
|
; call breakatsignc
|
||||||
; cmp byte[prbreak],1
|
; cmp byte[prbreak],1
|
||||||
; je .yesesc
|
; je .yesesc
|
||||||
@@ -360,6 +388,7 @@ NEWSYM showmenu
|
|||||||
; cmp byte[prbreak],1
|
; cmp byte[prbreak],1
|
||||||
; je .yesesc
|
; je .yesesc
|
||||||
call savespcdata
|
call savespcdata
|
||||||
|
|
||||||
mov byte[curblank],40h
|
mov byte[curblank],40h
|
||||||
mov dword[Msgptr],.saved
|
mov dword[Msgptr],.saved
|
||||||
mov eax,[MsgCount]
|
mov eax,[MsgCount]
|
||||||
@@ -393,12 +422,12 @@ NEWSYM showmenu
|
|||||||
jmp .nopalwrite
|
jmp .nopalwrite
|
||||||
.exitloop
|
.exitloop
|
||||||
call GUIUnBuffer
|
call GUIUnBuffer
|
||||||
mov al,[newengen]
|
; mov al,[newengen]
|
||||||
mov byte[newengen],0
|
; mov byte[newengen],0
|
||||||
push eax
|
; push eax
|
||||||
call copyvid
|
call copyvid
|
||||||
pop eax
|
; pop eax
|
||||||
mov [newengen],al
|
; mov [newengen],al
|
||||||
cmp byte[cbitmode],1
|
cmp byte[cbitmode],1
|
||||||
je near .nopalwrite
|
je near .nopalwrite
|
||||||
mov edi,[vidbuffer]
|
mov edi,[vidbuffer]
|
||||||
@@ -447,6 +476,7 @@ NEWSYM showmenu
|
|||||||
mov byte[MenuNoExit],0
|
mov byte[MenuNoExit],0
|
||||||
jmp showmenu
|
jmp showmenu
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.unablefps db 'NEED AUTO FRAMERATE ON',0
|
.unablefps db 'NEED AUTO FRAMERATE ON',0
|
||||||
.sndbufsav db 'BUFFER SAVED AS SOUNDDMP.RAW',0
|
.sndbufsav db 'BUFFER SAVED AS SOUNDDMP.RAW',0
|
||||||
.search db 'SEARCHING FOR SONG START.',0
|
.search db 'SEARCHING FOR SONG START.',0
|
||||||
@@ -454,6 +484,7 @@ NEWSYM showmenu
|
|||||||
.unable db 'CANNOT USE IN NEW GFX ENGINE.',0
|
.unable db 'CANNOT USE IN NEW GFX ENGINE.',0
|
||||||
.escpress db 'ESC TERMINATED SEARCH.',0
|
.escpress db 'ESC TERMINATED SEARCH.',0
|
||||||
.saved db '.SPC FILE SAVED.',0
|
.saved db '.SPC FILE SAVED.',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM menudrawbox8b
|
NEWSYM menudrawbox8b
|
||||||
cmp byte[cbitmode],1
|
cmp byte[cbitmode],1
|
||||||
@@ -551,14 +582,15 @@ NEWSYM menudrawbox8b
|
|||||||
add esi,[MenuDisplace]
|
add esi,[MenuDisplace]
|
||||||
mov edi,.stringi
|
mov edi,.stringi
|
||||||
call OutputGraphicString
|
call OutputGraphicString
|
||||||
mov al,[newengen]
|
; mov al,[newengen]
|
||||||
mov byte[newengen],0
|
; mov byte[newengen],0
|
||||||
push eax
|
; push eax
|
||||||
call copyvid
|
call copyvid
|
||||||
pop eax
|
; pop eax
|
||||||
mov [newengen],al
|
; mov [newengen],al
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.string db 'MISC OPTIONS',0
|
.string db 'MISC OPTIONS',0
|
||||||
.stringa db 'SAVE SNAPSHOT',0
|
.stringa db 'SAVE SNAPSHOT',0
|
||||||
.stringb db 'SHOW FPS',0
|
.stringb db 'SHOW FPS',0
|
||||||
@@ -569,6 +601,7 @@ NEWSYM menudrawbox8b
|
|||||||
.stringg db 'INCR FRAME ONLY',0
|
.stringg db 'INCR FRAME ONLY',0
|
||||||
.stringh db 'MOVE THIS WINDOW',0
|
.stringh db 'MOVE THIS WINDOW',0
|
||||||
.stringi db 'IMAGE FORMAT: ---',0
|
.stringi db 'IMAGE FORMAT: ---',0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM menudrawcursor8b
|
NEWSYM menudrawcursor8b
|
||||||
cmp byte[cbitmode],1
|
cmp byte[cbitmode],1
|
||||||
@@ -592,7 +625,9 @@ NEWSYM menudrawcursor8b
|
|||||||
mov al,128
|
mov al,128
|
||||||
ret
|
ret
|
||||||
|
|
||||||
NEWSYM menucloc, dd 0
|
SECTION .bss ;ALIGN=32
|
||||||
|
NEWSYM menucloc, resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM menudrawbox16b
|
NEWSYM menudrawbox16b
|
||||||
; draw shadow behind box
|
; draw shadow behind box
|
||||||
@@ -736,19 +771,22 @@ NEWSYM menudrawbox16b
|
|||||||
add esi,[MenuDisplace16]
|
add esi,[MenuDisplace16]
|
||||||
mov edi,menudrawbox8b.stringi
|
mov edi,menudrawbox8b.stringi
|
||||||
call OutputGraphicString16b
|
call OutputGraphicString16b
|
||||||
mov al,[newengen]
|
; mov al,[newengen]
|
||||||
mov byte[newengen],0
|
; mov byte[newengen],0
|
||||||
push eax
|
; push eax
|
||||||
call copyvid
|
call copyvid
|
||||||
pop eax
|
; pop eax
|
||||||
mov [newengen],al
|
; mov [newengen],al
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.allred dw 0
|
SECTION .bss
|
||||||
.blue dw 0
|
.allred resw 1
|
||||||
.stepb dw 0
|
.blue resw 1
|
||||||
|
.stepb resw 1
|
||||||
|
|
||||||
NEWSYM menu16btrans, db 0
|
NEWSYM menu16btrans, resb 1
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM menudrawcursor16b
|
NEWSYM menudrawcursor16b
|
||||||
; draw a small red box
|
; draw a small red box
|
||||||
@@ -944,13 +982,38 @@ NEWSYM savespcdata
|
|||||||
mov ecx,256
|
mov ecx,256
|
||||||
mov edx,DSPMem
|
mov edx,DSPMem
|
||||||
call Write_File
|
call Write_File
|
||||||
|
|
||||||
|
%ifdef SPCDUMP
|
||||||
|
mov [SPCSave_handle], ebx
|
||||||
|
%else
|
||||||
call Close_File
|
call Close_File
|
||||||
|
%endif
|
||||||
|
|
||||||
add dword[spcPCRam],spcRam
|
add dword[spcPCRam],spcRam
|
||||||
add dword[spcRamDP],spcRam
|
add dword[spcRamDP],spcRam
|
||||||
call ResetState
|
call ResetState
|
||||||
|
|
||||||
|
%ifdef SPCDUMP
|
||||||
|
|
||||||
|
; w00t, reg dump crapola
|
||||||
|
; using a time reference because I don't feel like adding
|
||||||
|
; cycle counting to the SPC emulation just for this
|
||||||
|
|
||||||
|
mov byte[SPCSave_dump],1
|
||||||
|
|
||||||
|
mov eax, [spcRam+0F4h]
|
||||||
|
mov [SPCSave_ports], eax
|
||||||
|
xor eax, eax
|
||||||
|
mov [SPCSave_buffer], eax
|
||||||
|
|
||||||
|
%endif
|
||||||
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.spcfname times 128 db 0
|
SECTION .bss
|
||||||
|
.spcfname resb 128
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
;.SPC File Format
|
;.SPC File Format
|
||||||
|
|
||||||
;Offset 00000h - File Header : SNES-SPC700 Sound File Data v0.10
|
;Offset 00000h - File Header : SNES-SPC700 Sound File Data v0.10
|
||||||
@@ -1016,6 +1079,8 @@ NEWSYM ssdatst
|
|||||||
; SPCRAM (offset 256), 64k
|
; SPCRAM (offset 256), 64k
|
||||||
; DSPRAM (offset 256+65536), 256 bytes
|
; DSPRAM (offset 256+65536), 256 bytes
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM dumpsound
|
NEWSYM dumpsound
|
||||||
mov cx,0
|
mov cx,0
|
||||||
mov edx,.filename
|
mov edx,.filename
|
||||||
@@ -1058,6 +1123,7 @@ NEWSYM dumpsound
|
|||||||
xor esi,esi
|
xor esi,esi
|
||||||
jmp .return
|
jmp .return
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.filename db 'SOUNDDMP.RAW',0
|
.filename db 'SOUNDDMP.RAW',0
|
||||||
|
|
||||||
NEWSYM pcxheader
|
NEWSYM pcxheader
|
||||||
@@ -1069,7 +1135,11 @@ NEWSYM pcxheader
|
|||||||
.bpline dw 256
|
.bpline dw 256
|
||||||
times 128-68 db 0
|
times 128-68 db 0
|
||||||
|
|
||||||
NEWSYM picnum, dw 0
|
SECTION .bss
|
||||||
|
|
||||||
|
NEWSYM picnum, resw 1
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
|
|
||||||
NEWSYM savepcx
|
NEWSYM savepcx
|
||||||
%ifndef NO_PNG
|
%ifndef NO_PNG
|
||||||
@@ -1370,12 +1440,15 @@ NEWSYM savepcx
|
|||||||
call restore16b
|
call restore16b
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.pcxsaved db 'SNAPSHOT SAVED TO '
|
.pcxsaved db 'SNAPSHOT SAVED TO '
|
||||||
.filename db 'image.pcx',0,0,0,0
|
.filename db 'image.pcx',0,0,0,0
|
||||||
.rawsaved db 'SNAPSHOT SAVED TO '
|
.rawsaved db 'SNAPSHOT SAVED TO '
|
||||||
.filename2 db 'image.bmp',0,0,0,0
|
.filename2 db 'image.bmp',0,0,0,0
|
||||||
.rowsleft db 0
|
SECTION .bss
|
||||||
.curdptr dd 0
|
.rowsleft resb 1
|
||||||
|
.curdptr resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM save16b2
|
NEWSYM save16b2
|
||||||
call prepare16b
|
call prepare16b
|
||||||
@@ -1517,10 +1590,13 @@ NEWSYM save16b2
|
|||||||
call restore16b
|
call restore16b
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.rawsaved db 'SNAPSHOT SAVED TO '
|
.rawsaved db 'SNAPSHOT SAVED TO '
|
||||||
.filename2 db 'image.bmp',0,0,0,0
|
.filename2 db 'image.bmp',0,0,0,0
|
||||||
.rowsleft dd 0
|
SECTION .bss
|
||||||
.curdptr dd 0
|
.rowsleft resd 1
|
||||||
|
.curdptr resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
prepare16b:
|
prepare16b:
|
||||||
cmp byte[vesa2red10],1
|
cmp byte[vesa2red10],1
|
||||||
|
|||||||
@@ -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 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
|
/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 burn.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
|
||||||
|
|||||||
@@ -44,8 +44,9 @@ VIDEOBJ=${VIDEODIR}/makev16b.o ${VIDEODIR}/makev16t.o ${VIDEODIR}/makevid.o\
|
|||||||
|
|
||||||
DOSOBJ= ${DOSDIR}/dosintrf.o ${DOSDIR}/gppro.o ${DOSDIR}/debug.o\
|
DOSOBJ= ${DOSDIR}/dosintrf.o ${DOSDIR}/gppro.o ${DOSDIR}/debug.o\
|
||||||
${DOSDIR}/initvid.o ${DOSDIR}/modemrtn.o ${DOSDIR}/sw32.o\
|
${DOSDIR}/initvid.o ${DOSDIR}/modemrtn.o ${DOSDIR}/sw32.o\
|
||||||
${DOSDIR}/joy.o ${DOSDIR}/sw.o ${DOSDIR}/vesa12.o ${DOSDIR}/vesa2.o\
|
${DOSDIR}/joy.o ${DOSDIR}/sound.o ${DOSDIR}/sw.o ${DOSDIR}/vesa12.o\
|
||||||
${DOSDIR}/zloader.o ${DOSDIR}/zsipx.o ${DOSDIR}/zfile.o
|
${DOSDIR}/vesa2.o ${DOSDIR}/zloader.o ${DOSDIR}/zsipx.o\
|
||||||
|
${DOSDIR}/zfile.o
|
||||||
|
|
||||||
WINOBJ=${WINDIR}/copywin.o ${WINDIR}/winintrf.o ${WINDIR}/winlink.o\
|
WINOBJ=${WINDIR}/copywin.o ${WINDIR}/winintrf.o ${WINDIR}/winlink.o\
|
||||||
${WINDIR}/zloaderw.o ${WINDIR}/ztcp.o ${WINDIR}/zipxw.o
|
${WINDIR}/zloaderw.o ${WINDIR}/ztcp.o ${WINDIR}/zipxw.o
|
||||||
@@ -60,7 +61,7 @@ MAINOBJ=cfgload.o endmem.o fixsin.o init.o ui.o vcache.o water.o smoke.o
|
|||||||
OBJS=${CHIPSOBJ} ${CPUOBJ} ${DOSOBJ} ${GUIOBJ} ${VIDEOBJ} ${PREOBJ} ${MAINOBJ} ${ZIPOBJ}
|
OBJS=${CHIPSOBJ} ${CPUOBJ} ${DOSOBJ} ${GUIOBJ} ${VIDEOBJ} ${PREOBJ} ${MAINOBJ} ${ZIPOBJ}
|
||||||
LIBS=-lz -lm -lpng
|
LIBS=-lz -lm -lpng
|
||||||
#CFLAGS=-O2 -Wall -Wno-unused -D__MSDOS__
|
#CFLAGS=-O2 -Wall -Wno-unused -D__MSDOS__
|
||||||
CFLAGS=-O3 -march=i486 -fno-rtti -fno-exceptions -ffast-math\
|
CFLAGS=-O3 -march=i586 -fno-rtti -fno-exceptions -ffast-math\
|
||||||
-fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -D__MSDOS__
|
-fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -D__MSDOS__
|
||||||
ASM=nasm
|
ASM=nasm
|
||||||
ASMFLAGS=-f coff -D__MSDOS__
|
ASMFLAGS=-f coff -D__MSDOS__
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ PREOBJ=
|
|||||||
|
|
||||||
ZIPOBJ=${ZIPDIR}/zzip.obj ${ZIPDIR}/unzip.obj ${ZIPDIR}/zpng.obj
|
ZIPOBJ=${ZIPDIR}/zzip.obj ${ZIPDIR}/unzip.obj ${ZIPDIR}/zpng.obj
|
||||||
|
|
||||||
MAINOBJ=cfgload.obj endmem.obj fixsin.obj init.obj ui.obj vcache.obj water.obj smoke.obj
|
MAINOBJ=cfgload.obj endmem.obj fixsin.obj init.obj ui.obj vcache.obj water.obj smoke.obj burn.obj
|
||||||
|
|
||||||
OBJS=${CHIPSOBJ} ${CPUOBJ} ${WINOBJ} ${GUIOBJ} ${VIDEOBJ} ${ZIPOBJ} ${MAINOBJ} ${WINDOSOBJ}
|
OBJS=${CHIPSOBJ} ${CPUOBJ} ${WINOBJ} ${GUIOBJ} ${VIDEOBJ} ${ZIPOBJ} ${MAINOBJ} ${WINDOSOBJ}
|
||||||
LIBS=
|
LIBS=
|
||||||
@@ -112,6 +112,7 @@ ${DOSDIR}/vesa12.o: ${DOSDIR}/vesa12.asm macros.mac
|
|||||||
fixsin.obj: fixsin.c
|
fixsin.obj: fixsin.c
|
||||||
water.obj: water.c
|
water.obj: water.c
|
||||||
smoke.obj: smoke.c
|
smoke.obj: smoke.c
|
||||||
|
burn.obj: burn.c
|
||||||
${VIDEODIR}/2xsaiw.obj: ${VIDEODIR}/2xsaiw.asm macros.mac
|
${VIDEODIR}/2xsaiw.obj: ${VIDEODIR}/2xsaiw.asm macros.mac
|
||||||
${VIDEODIR}/procvid.obj: ${VIDEODIR}/procvid.asm macros.mac ${VIDEODIR}/copyvid.inc ${VIDEODIR}/2xSaImmx.inc
|
${VIDEODIR}/procvid.obj: ${VIDEODIR}/procvid.asm macros.mac ${VIDEODIR}/copyvid.inc ${VIDEODIR}/2xSaImmx.inc
|
||||||
${CHIPDIR}/sa1regs.obj: ${CHIPDIR}/sa1regs.asm macros.mac\
|
${CHIPDIR}/sa1regs.obj: ${CHIPDIR}/sa1regs.asm macros.mac\
|
||||||
|
|||||||
@@ -1,12 +1,8 @@
|
|||||||
|
|
||||||
|
|
||||||
#ifdef __LINUX__
|
|
||||||
# include "gblhdr.h"
|
|
||||||
#else
|
|
||||||
# include <stdlib.h>
|
# include <stdlib.h>
|
||||||
# include <string.h>
|
# include <string.h>
|
||||||
# include <time.h>
|
# include <time.h>
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
301
zsnes/src/ui.asm
301
zsnes/src/ui.asm
@@ -23,7 +23,6 @@ EXTSYM StartUp,PrintStr,WaitForKey,PrintChar,ZFileSystemInit
|
|||||||
EXTSYM SPCDisable,SystemInit,allocmem
|
EXTSYM SPCDisable,SystemInit,allocmem
|
||||||
EXTSYM FPSOn,FPSAtStart,cfgsoundon
|
EXTSYM FPSOn,FPSAtStart,cfgsoundon
|
||||||
EXTSYM xa
|
EXTSYM xa
|
||||||
EXTSYM SBPort,SBInt,SBIrq,SBDMA,SBDMAPage,SBHDMAPage,getenv,vibracard
|
|
||||||
EXTSYM ram7fa,wramdataa
|
EXTSYM ram7fa,wramdataa
|
||||||
EXTSYM malloc,free
|
EXTSYM malloc,free
|
||||||
EXTSYM StateBackup
|
EXTSYM StateBackup
|
||||||
@@ -42,6 +41,10 @@ EXTSYM LinuxExit
|
|||||||
EXTSYM GetFilename
|
EXTSYM GetFilename
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%ifdef OPENSPC
|
||||||
|
EXTSYM OSPC_Init
|
||||||
|
%endif
|
||||||
|
|
||||||
NEWSYM UIAsmStart
|
NEWSYM UIAsmStart
|
||||||
|
|
||||||
|
|
||||||
@@ -69,8 +72,12 @@ NEWSYM zstart
|
|||||||
|
|
||||||
cld ;clear direction flag
|
cld ;clear direction flag
|
||||||
|
|
||||||
|
%ifdef OPENSPC
|
||||||
|
call OSPC_Init
|
||||||
|
%else
|
||||||
call setnoise
|
call setnoise
|
||||||
call InitSPC
|
call InitSPC
|
||||||
|
%endif
|
||||||
call allocmem ;allocate memory
|
call allocmem ;allocate memory
|
||||||
|
|
||||||
cmp byte[soundon],0
|
cmp byte[soundon],0
|
||||||
@@ -131,12 +138,6 @@ SECTION .data
|
|||||||
NEWSYM mydebug, db '',13,10,0
|
NEWSYM mydebug, db '',13,10,0
|
||||||
NEWSYM outofmem, db 'You don',39,'t have enough memory to run this program!',13,10,0
|
NEWSYM outofmem, db 'You don',39,'t have enough memory to run this program!',13,10,0
|
||||||
|
|
||||||
; Line added by Peter Santing
|
|
||||||
NEWSYM vibradetect
|
|
||||||
db 'Creative ViBRA16X PnP card detected (support coded by Peter Santing)', 13, 10
|
|
||||||
db 'High-DMA is below dma #4', 13, 10
|
|
||||||
db 13,10, 'you have now full 16-bit stereo sound with the surround option!', 13, 10, 0
|
|
||||||
|
|
||||||
NEWSYM welcome
|
NEWSYM welcome
|
||||||
|
|
||||||
|
|
||||||
@@ -243,7 +244,6 @@ NEWSYM SecondPort, db 0 ; Secondary Joystick Port Enabled (209h)
|
|||||||
; New Variables
|
; New Variables
|
||||||
NEWSYM ForcePal, db 0 ; 1 = NTSC, 2 = PAL
|
NEWSYM ForcePal, db 0 ; 1 = NTSC, 2 = PAL
|
||||||
NEWSYM Force8b, db 0 ; Force 8-bit sound on
|
NEWSYM Force8b, db 0 ; Force 8-bit sound on
|
||||||
NEWSYM dssel, dw 0
|
|
||||||
NEWSYM Doublevbuf, db 1 ; Double video buffer
|
NEWSYM Doublevbuf, db 1 ; Double video buffer
|
||||||
NEWSYM V8Mode, db 0 ; Vegetable mode! =)
|
NEWSYM V8Mode, db 0 ; Vegetable mode! =)
|
||||||
NEWSYM fastmemptr, db 0
|
NEWSYM fastmemptr, db 0
|
||||||
@@ -323,11 +323,23 @@ NEWSYM AllocMem
|
|||||||
; Get Command Line Locates SET CMDLINE environment
|
; Get Command Line Locates SET CMDLINE environment
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
|
|
||||||
|
%ifdef __WIN32__
|
||||||
|
EXTSYM _imp__GetModuleFileNameA@12
|
||||||
|
EXTSYM memcpy
|
||||||
|
%elifdef __MSDOS__
|
||||||
|
EXTSYM argv
|
||||||
|
%endif
|
||||||
|
|
||||||
NEWSYM getcmdline
|
NEWSYM getcmdline
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
%if 0
|
||||||
mov edx,.string2s
|
mov edx,.string2s
|
||||||
push edx
|
push edx
|
||||||
call getenv
|
call getenv
|
||||||
pop edx
|
pop edx
|
||||||
|
%else
|
||||||
|
mov eax,[argv]
|
||||||
|
%endif
|
||||||
cmp eax,0
|
cmp eax,0
|
||||||
je near .nfound
|
je near .nfound
|
||||||
mov esi,eax
|
mov esi,eax
|
||||||
@@ -344,6 +356,7 @@ NEWSYM getcmdline
|
|||||||
.nocap
|
.nocap
|
||||||
mov [edi],dl
|
mov [edi],dl
|
||||||
mov [edi+256],dl
|
mov [edi+256],dl
|
||||||
|
mov [edi+512],dl
|
||||||
inc esi
|
inc esi
|
||||||
inc edi
|
inc edi
|
||||||
cmp dl,32
|
cmp dl,32
|
||||||
@@ -351,8 +364,31 @@ NEWSYM getcmdline
|
|||||||
cmp dl,0
|
cmp dl,0
|
||||||
jne .a
|
jne .a
|
||||||
.b
|
.b
|
||||||
|
%elifdef __WIN32__
|
||||||
|
push dword 256
|
||||||
|
push dword CMDLineStr
|
||||||
|
push byte +0
|
||||||
|
call [_imp__GetModuleFileNameA@12]
|
||||||
|
push eax
|
||||||
|
push eax
|
||||||
|
push dword CMDLineStr
|
||||||
|
push dword GUIFName
|
||||||
|
call memcpy
|
||||||
|
add esp,+12
|
||||||
|
mov eax,[esp]
|
||||||
|
push eax
|
||||||
|
push dword CMDLineStr
|
||||||
|
push dword GUICName
|
||||||
|
call memcpy
|
||||||
|
add esp,+12
|
||||||
|
pop edi
|
||||||
|
add edi,CMDLineStr
|
||||||
|
%else
|
||||||
mov esi,CMDLineStr
|
mov esi,CMDLineStr
|
||||||
mov eax,CMDLineStr
|
ret ; *sigh*
|
||||||
|
%endif
|
||||||
|
mov esi,CMDLineStr
|
||||||
|
mov eax,esi
|
||||||
.next2
|
.next2
|
||||||
cmp eax,edi
|
cmp eax,edi
|
||||||
je .nomore
|
je .nomore
|
||||||
@@ -402,7 +438,7 @@ NEWSYM getcmdline
|
|||||||
mov byte[esi+5+512],'c'
|
mov byte[esi+5+512],'c'
|
||||||
mov byte[esi+6+512],'m'
|
mov byte[esi+6+512],'m'
|
||||||
mov byte[esi+7+512],'b'
|
mov byte[esi+7+512],'b'
|
||||||
mov byte[esI+8+512],0
|
mov byte[esi+8+512],0
|
||||||
ret
|
ret
|
||||||
.nfound
|
.nfound
|
||||||
mov edx,.stringnf
|
mov edx,.stringnf
|
||||||
@@ -439,7 +475,7 @@ NEWSYM getcmdline
|
|||||||
mov byte[esi+5+512],'c'
|
mov byte[esi+5+512],'c'
|
||||||
mov byte[esi+6+512],'m'
|
mov byte[esi+6+512],'m'
|
||||||
mov byte[esi+7+512],'b'
|
mov byte[esi+7+512],'b'
|
||||||
mov byte[esI+8+512],0
|
mov byte[esi+8+512],0
|
||||||
ret
|
ret
|
||||||
|
|
||||||
SECTION .data
|
SECTION .data
|
||||||
@@ -452,249 +488,6 @@ NEWSYM GUIFName, resb 256
|
|||||||
NEWSYM GUICName, resb 256
|
NEWSYM GUICName, resb 256
|
||||||
NEWSYM FilenameStart, resd 1
|
NEWSYM FilenameStart, resd 1
|
||||||
|
|
||||||
SECTION .text
|
|
||||||
|
|
||||||
;*******************************************************
|
|
||||||
; Get Blaster Locates SET BLASTER environment
|
|
||||||
;*******************************************************
|
|
||||||
NEWSYM getblaster
|
|
||||||
%ifndef __LINUX__
|
|
||||||
mov edx,.string2s
|
|
||||||
push edx
|
|
||||||
call getenv
|
|
||||||
pop edx
|
|
||||||
cmp eax,0
|
|
||||||
je near .nfound
|
|
||||||
|
|
||||||
mov esi,eax
|
|
||||||
mov byte[.cursetting],0
|
|
||||||
.a
|
|
||||||
mov dl,[esi]
|
|
||||||
cmp dl,'a'
|
|
||||||
jb .nocap
|
|
||||||
cmp dl,'z'
|
|
||||||
ja .nocap
|
|
||||||
sub dl,'a'-'A'
|
|
||||||
.nocap
|
|
||||||
inc esi
|
|
||||||
mov byte[.blfound],1
|
|
||||||
cmp dl,'A'
|
|
||||||
jne .afound
|
|
||||||
mov byte[.cursetting],1
|
|
||||||
mov word[SBPort],0
|
|
||||||
jmp .src
|
|
||||||
.afound
|
|
||||||
cmp dl,'I'
|
|
||||||
jne .ifound
|
|
||||||
mov byte[.cursetting],2
|
|
||||||
mov byte[SBIrq],0
|
|
||||||
jmp .src
|
|
||||||
.ifound
|
|
||||||
cmp dl,'D'
|
|
||||||
jne .dfound
|
|
||||||
mov byte[.cursetting],3
|
|
||||||
mov byte[SBDMA],0
|
|
||||||
jmp .src
|
|
||||||
.dfound
|
|
||||||
cmp dl,'H'
|
|
||||||
jne .hfound
|
|
||||||
mov byte[.cursetting],4
|
|
||||||
mov byte[SBHDMA],0
|
|
||||||
jmp .src
|
|
||||||
.hfound
|
|
||||||
cmp dl,' '
|
|
||||||
je .src2
|
|
||||||
cmp dl,0
|
|
||||||
je .src2
|
|
||||||
jmp .src3
|
|
||||||
.src2
|
|
||||||
mov byte[.cursetting],0
|
|
||||||
jmp .src
|
|
||||||
.src3
|
|
||||||
cmp byte[.cursetting],1
|
|
||||||
jne .nproca
|
|
||||||
shl word[SBPort],4
|
|
||||||
sub dl,48
|
|
||||||
add byte[SBPort],dl
|
|
||||||
add dl,48
|
|
||||||
.nproca
|
|
||||||
cmp byte[.cursetting],2
|
|
||||||
jne .nproci
|
|
||||||
cmp byte[SBIrq],1
|
|
||||||
jne .no1
|
|
||||||
mov byte[SBIrq],10
|
|
||||||
.no1
|
|
||||||
sub dl,48
|
|
||||||
add [SBIrq],dl
|
|
||||||
add dl,48
|
|
||||||
.nproci
|
|
||||||
cmp byte[.cursetting],3
|
|
||||||
jne .nprocd
|
|
||||||
sub dl,48
|
|
||||||
mov [SBDMA],dl
|
|
||||||
add dl,48
|
|
||||||
.nprocd
|
|
||||||
cmp byte[.cursetting],4
|
|
||||||
jne .nproch
|
|
||||||
sub dl,48
|
|
||||||
mov [SBHDMA],dl
|
|
||||||
add dl,48
|
|
||||||
.nproch
|
|
||||||
.src
|
|
||||||
cmp dl,0
|
|
||||||
jne near .a
|
|
||||||
cmp byte[.blfound],0
|
|
||||||
je near .nfound
|
|
||||||
cmp byte[SBIrq],2
|
|
||||||
jne .noirq9
|
|
||||||
mov byte[SBIrq],9
|
|
||||||
.noirq9
|
|
||||||
mov al,[SBIrq]
|
|
||||||
add al,08h
|
|
||||||
cmp byte[SBIrq],7
|
|
||||||
jbe .nohighirq
|
|
||||||
add al,60h
|
|
||||||
add byte[PICRotateP],80h
|
|
||||||
add byte[PICMaskP],80h
|
|
||||||
.nohighirq
|
|
||||||
mov [SBInt],al
|
|
||||||
cmp byte[SBDMA],0
|
|
||||||
jne .dma0
|
|
||||||
mov byte[SBDMAPage],87h
|
|
||||||
.dma0
|
|
||||||
cmp byte[SBDMA],1
|
|
||||||
jne .dma1
|
|
||||||
mov byte[SBDMAPage],83h
|
|
||||||
.dma1
|
|
||||||
cmp byte[SBDMA],2
|
|
||||||
jne .dma2
|
|
||||||
mov byte[SBDMAPage],81h
|
|
||||||
.dma2
|
|
||||||
cmp byte[SBDMA],3
|
|
||||||
jne .dma3
|
|
||||||
mov byte[SBDMAPage],82h
|
|
||||||
.dma3
|
|
||||||
; ******************************************************
|
|
||||||
; **** this piece of code is added by Peter Santing ****
|
|
||||||
; **** it will enable ZSNES to use the full STEREO ****
|
|
||||||
; **** capability of the ViBRA16X line of creative ****
|
|
||||||
; **** instead of playing 8-bit MONOURAL sound ****
|
|
||||||
; ******************************************************
|
|
||||||
; cmp byte [SBHDMA], 0
|
|
||||||
; jne .vibradma0
|
|
||||||
; mov byte [SBDMAPage], 87h
|
|
||||||
; mov byte [vibracard], 1 ; set ViBRA16X mode
|
|
||||||
.vibradma0
|
|
||||||
cmp byte [SBHDMA], 1
|
|
||||||
jne .vibradma1
|
|
||||||
mov byte [SBDMAPage], 83h
|
|
||||||
mov byte [vibracard], 1 ; set ViBRA16X mode
|
|
||||||
.vibradma1
|
|
||||||
cmp byte [SBHDMA], 2
|
|
||||||
jne .vibradma2
|
|
||||||
mov byte [SBDMAPage], 81h
|
|
||||||
mov byte [vibracard], 1 ; set ViBRA16X mode
|
|
||||||
.vibradma2
|
|
||||||
cmp byte [SBHDMA], 3
|
|
||||||
jne .vibradma3
|
|
||||||
mov byte [SBDMAPage], 82h
|
|
||||||
mov byte [vibracard], 1 ; set ViBRA16X mode
|
|
||||||
.vibradma3
|
|
||||||
cmp byte [vibracard], 1
|
|
||||||
jne .vibrafix
|
|
||||||
push ax
|
|
||||||
mov al, [SBHDMA]
|
|
||||||
mov [SBDMA], al
|
|
||||||
pop ax
|
|
||||||
.vibrafix
|
|
||||||
cmp byte [SBHDMA],4
|
|
||||||
jae .hdma
|
|
||||||
; vibra implementation (make sure that zSNES doesn't go back
|
|
||||||
; to eight-bit-mode mono)
|
|
||||||
mov byte [SBHDMA],0
|
|
||||||
cmp byte[vibracard], 1
|
|
||||||
jne .hdma
|
|
||||||
push edx
|
|
||||||
mov edx, vibradetect
|
|
||||||
call PrintStr
|
|
||||||
;call WaitForKey
|
|
||||||
pop edx
|
|
||||||
|
|
||||||
; ********** END OF ViBRA16X implementation code **********
|
|
||||||
.hdma
|
|
||||||
cmp byte[SBHDMA],4
|
|
||||||
jne .hdma4
|
|
||||||
mov byte[SBHDMAPage],8Fh
|
|
||||||
.hdma4
|
|
||||||
cmp byte[SBHDMA],5
|
|
||||||
jne .hdma5
|
|
||||||
mov byte[SBHDMAPage],8Bh
|
|
||||||
.hdma5
|
|
||||||
cmp byte[SBHDMA],6
|
|
||||||
jne .hdma6
|
|
||||||
mov byte[SBHDMAPage],89h
|
|
||||||
.hdma6
|
|
||||||
cmp byte[SBHDMA],7
|
|
||||||
jne .hdma7
|
|
||||||
mov byte[SBHDMAPage],8Ah
|
|
||||||
.hdma7
|
|
||||||
cmp byte[DisplayS],1
|
|
||||||
je .displaysoundstuff
|
|
||||||
ret
|
|
||||||
.nfound
|
|
||||||
cmp byte[soundon],0
|
|
||||||
je .nosound
|
|
||||||
mov byte[soundon],0
|
|
||||||
mov edx, .blasterstr
|
|
||||||
call PrintStr
|
|
||||||
call WaitForKey
|
|
||||||
.nosound
|
|
||||||
ret
|
|
||||||
.displaysoundstuff
|
|
||||||
mov edx,.blasterinfo
|
|
||||||
call PrintStr
|
|
||||||
xor eax,eax
|
|
||||||
mov ax,[SBPort]
|
|
||||||
call printhex
|
|
||||||
mov edx,.blinfob
|
|
||||||
call PrintStr
|
|
||||||
xor eax,eax
|
|
||||||
mov al,[SBIrq]
|
|
||||||
call printnum
|
|
||||||
mov edx,.blinfoc
|
|
||||||
call PrintStr
|
|
||||||
xor eax,eax
|
|
||||||
mov al,[SBDMA]
|
|
||||||
call printnum
|
|
||||||
mov edx,.blinfod
|
|
||||||
call PrintStr
|
|
||||||
xor eax,eax
|
|
||||||
mov al,[SBHDMA]
|
|
||||||
call printnum
|
|
||||||
mov edx,.blasterstr2b
|
|
||||||
call PrintStr
|
|
||||||
call WaitForKey
|
|
||||||
%endif
|
|
||||||
ret
|
|
||||||
|
|
||||||
SECTION .bss
|
|
||||||
.blfound resb 1
|
|
||||||
.cursetting resb 1
|
|
||||||
|
|
||||||
SECTION .data
|
|
||||||
.string2s db 'BLASTER',0
|
|
||||||
.blasterstr db 'ERROR : SET BLASTER environment NOT found!',10,13
|
|
||||||
.blasterstr2 db 'Unable to enable sound.'
|
|
||||||
.blasterstr2b db 10,13,10,13
|
|
||||||
.blasterstr3 db 'Press any key to continue.',0
|
|
||||||
.blasterinfo db 'Sound Blaster Detection Values : ',10,13,10,13
|
|
||||||
.blinfoa db 'PORT : ',0
|
|
||||||
.blinfob db 13,10,'IRQ : ',0
|
|
||||||
.blinfoc db 13,10,'DMA : ',0
|
|
||||||
.blinfod db 13,10,'HDMA : ',0
|
|
||||||
|
|
||||||
NEWSYM PICRotateP, db 20h
|
|
||||||
NEWSYM PICMaskP, db 21h
|
|
||||||
;SECTION .text
|
;SECTION .text
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
; Variable section
|
; Variable section
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ EXTSYM ccud,cfield,cgfxmod,cgram,coladdb,coladdg,coladdr,cpalval,curblank
|
|||||||
EXTSYM curfps,cvidmode,delay,draw16bnng,extlatch,fnamest,fulladdtab,En2xSaI
|
EXTSYM curfps,cvidmode,delay,draw16bnng,extlatch,fnamest,fulladdtab,En2xSaI
|
||||||
EXTSYM gammalevel,hirestiledat,ignor512,latchx,latchy,maxbr,ForceNewGfxOff
|
EXTSYM gammalevel,hirestiledat,ignor512,latchx,latchy,maxbr,ForceNewGfxOff
|
||||||
EXTSYM newengen,nextframe,objptr,pressed,prevpal,res512switch,res640
|
EXTSYM newengen,nextframe,objptr,pressed,prevpal,res512switch,res640
|
||||||
EXTSYM resolutn,romispal,sbpmofs,sbselec,scaddtype,scadtng,scanlines
|
EXTSYM resolutn,romispal,scaddtype,scadtng,scanlines
|
||||||
EXTSYM scbcong,selcA000,snesmouse,t1cc,vcache4b,vesa2_bpos,spritetablea
|
EXTSYM scbcong,selcA000,snesmouse,t1cc,vcache4b,vesa2_bpos,spritetablea
|
||||||
EXTSYM vesa2_clbit,vesa2_gpos,vesa2_rpos,vesa2red10,vesa2selec,vidbuffer
|
EXTSYM vesa2_clbit,vesa2_gpos,vesa2_rpos,vesa2red10,vesa2selec,vidbuffer
|
||||||
EXTSYM vidbufferm,vram,vsyncon,vbufdptr,KeyStateSelct,forceblnk,soundon
|
EXTSYM vidbufferm,vram,vsyncon,vbufdptr,KeyStateSelct,forceblnk,soundon
|
||||||
@@ -64,11 +64,17 @@ EXTSYM vidbufferofsb
|
|||||||
;EXTSYM Super2xSaI
|
;EXTSYM Super2xSaI
|
||||||
EXTSYM HalfTransB,HalfTransC
|
EXTSYM HalfTransB,HalfTransC
|
||||||
|
|
||||||
|
%ifdef __MSDOS__
|
||||||
|
EXTSYM SB_blank
|
||||||
|
%endif
|
||||||
|
|
||||||
|
|
||||||
NEWSYM ProcVidAsmStart
|
NEWSYM ProcVidAsmStart
|
||||||
|
|
||||||
NEWSYM ScreenScale, db 0 ; If horizontal is scaled or not
|
SECTION .bss
|
||||||
NEWSYM TempDebugV, dw 0 ; Temporary Debugging variable
|
NEWSYM ScreenScale, resb 1 ; If horizontal is scaled or not
|
||||||
|
NEWSYM TempDebugV, resw 1 ; Temporary Debugging variable
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
|
|
||||||
%macro MMXStuff 0
|
%macro MMXStuff 0
|
||||||
@@ -98,6 +104,9 @@ NEWSYM TempDebugV, dw 0 ; Temporary Debugging variable
|
|||||||
|
|
||||||
SECTION .text
|
SECTION .text
|
||||||
NEWSYM FPUZero
|
NEWSYM FPUZero
|
||||||
|
%if 0
|
||||||
|
|
||||||
|
; omg this is lame ;P
|
||||||
mov [.Zero],eax
|
mov [.Zero],eax
|
||||||
mov [.Zero+4],eax
|
mov [.Zero+4],eax
|
||||||
mov [.Zero2],eax
|
mov [.Zero2],eax
|
||||||
@@ -111,10 +120,25 @@ NEWSYM FPUZero
|
|||||||
ADD EDI,16
|
ADD EDI,16
|
||||||
DEC ECX
|
DEC ECX
|
||||||
JNZ .TopOfLoop
|
JNZ .TopOfLoop
|
||||||
|
%else
|
||||||
|
fld1
|
||||||
|
fsub st0,st0
|
||||||
|
.TopOfLoop
|
||||||
|
fst qword [edi]
|
||||||
|
fst qword [edi+8]
|
||||||
|
add edi,16
|
||||||
|
dec ecx
|
||||||
|
jnz .TopOfLoop
|
||||||
|
fstp st0
|
||||||
|
%endif
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.Zero dd 0,0
|
%if 0
|
||||||
.Zero2 dd 0,0
|
SECTION .bss
|
||||||
|
.Zero resd 2
|
||||||
|
.Zero2 resd 2
|
||||||
|
SECTION .text
|
||||||
|
%endif
|
||||||
|
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
; ShowVideo Processes & displays video
|
; ShowVideo Processes & displays video
|
||||||
@@ -240,20 +264,25 @@ NEWSYM processmouse
|
|||||||
pop esi
|
pop esi
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.ssautoen db 'AUTOFIRE ENABLED.',0
|
.ssautoen db 'AUTOFIRE ENABLED.',0
|
||||||
.ssautodi db 'AUTOFIRE DISABLED.',0
|
.ssautodi db 'AUTOFIRE DISABLED.',0
|
||||||
|
|
||||||
NEWSYM ssautosw, db 20h
|
NEWSYM ssautosw, db 20h
|
||||||
NEWSYM ssautoswb, db 0
|
|
||||||
NEWSYM mousebuttons, dw 0
|
|
||||||
NEWSYM mousexpos, dw 0
|
|
||||||
NEWSYM mousexdir, db 0
|
|
||||||
NEWSYM mouseypos, dw 0
|
|
||||||
NEWSYM mouseydir, db 0
|
|
||||||
NEWSYM mousechan, db 0
|
|
||||||
NEWSYM mousexloc, dw 128
|
NEWSYM mousexloc, dw 128
|
||||||
NEWSYM mouseyloc, dw 112
|
NEWSYM mouseyloc, dw 112
|
||||||
|
|
||||||
|
SECTION .bss
|
||||||
|
NEWSYM ssautoswb, resb 1
|
||||||
|
NEWSYM mousebuttons, resw 1
|
||||||
|
NEWSYM mousexpos, resw 1
|
||||||
|
NEWSYM mousexdir, resb 1
|
||||||
|
NEWSYM mouseypos, resw 1
|
||||||
|
NEWSYM mouseydir, resb 1
|
||||||
|
NEWSYM mousechan, resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
; Output Hex Outputs the hex in al @ esi
|
; Output Hex Outputs the hex in al @ esi
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
@@ -464,6 +493,7 @@ NEWSYM outputhex16
|
|||||||
pop edi
|
pop edi
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
NEWSYM ASCII2Font
|
NEWSYM ASCII2Font
|
||||||
db 00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h
|
db 00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h
|
||||||
db 00h,00h,00h,00h,00h,00h,00h,00h,00h,30h,00h,00h,00h,00h,00h,00h
|
db 00h,00h,00h,00h,00h,00h,00h,00h,00h,30h,00h,00h,00h,00h,00h,00h
|
||||||
@@ -595,6 +625,8 @@ NEWSYM FontData
|
|||||||
; +, 38 `, 41 .5,4A
|
; +, 38 `, 41 .5,4A
|
||||||
; ,, 39 ^, 42
|
; ,, 39 ^, 42
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
; Output Char Outputs char in al @ esi
|
; Output Char Outputs char in al @ esi
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
@@ -657,8 +689,10 @@ NEWSYM outputchar16b
|
|||||||
pop edi
|
pop edi
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
NEWSYM textcolor, db 128
|
NEWSYM textcolor, db 128
|
||||||
NEWSYM textcolor16b, dw 0FFFFh
|
NEWSYM textcolor16b, dw 0FFFFh
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM outputchar5x5
|
NEWSYM outputchar5x5
|
||||||
push edi
|
push edi
|
||||||
@@ -1155,13 +1189,15 @@ NEWSYM OutputGraphicString16bb
|
|||||||
;*******************************************************
|
;*******************************************************
|
||||||
; For Save State
|
; For Save State
|
||||||
|
|
||||||
NEWSYM csounddisable, db 0
|
SECTION .bss
|
||||||
NEWSYM statefileloc, dd 0
|
NEWSYM csounddisable, resb 1
|
||||||
newestfileloc db 0
|
NEWSYM statefileloc, resd 1
|
||||||
newestfiledate dd 0
|
newestfileloc resb 1
|
||||||
f3menuen db 0
|
newestfiledate resd 1
|
||||||
PrevPictureVal db 0
|
f3menuen resb 1
|
||||||
CurPictureVal db 0
|
PrevPictureVal resb 1
|
||||||
|
CurPictureVal resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM drawhline
|
NEWSYM drawhline
|
||||||
.loop
|
.loop
|
||||||
@@ -1591,16 +1627,7 @@ NEWSYM saveselect
|
|||||||
;cmp byte[OSPort],1
|
;cmp byte[OSPort],1
|
||||||
;ja .nosound
|
;ja .nosound
|
||||||
%ifdef __MSDOS__
|
%ifdef __MSDOS__
|
||||||
push es
|
call SB_blank
|
||||||
mov es,[sbselec]
|
|
||||||
mov edi,[sbpmofs]
|
|
||||||
mov ecx,320
|
|
||||||
.loopa
|
|
||||||
mov dword[es:edi],0
|
|
||||||
add edi,4
|
|
||||||
dec ecx
|
|
||||||
jnz .loopa
|
|
||||||
pop es
|
|
||||||
%endif
|
%endif
|
||||||
.nosound
|
.nosound
|
||||||
cmp byte[cbitmode],1
|
cmp byte[cbitmode],1
|
||||||
@@ -1805,11 +1832,13 @@ NEWSYM saveselect
|
|||||||
mov byte[ForceNonTransp],0
|
mov byte[ForceNonTransp],0
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.allred dw 0
|
SECTION .bss ;ALIGN=32
|
||||||
.allgrn dw 0
|
.allred resw 1
|
||||||
.allgrnb dw 0
|
.allgrn resw 1
|
||||||
.blue dw 0
|
.allgrnb resw 1
|
||||||
.stepb dw 0
|
.blue resw 1
|
||||||
|
.stepb resw 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
; Start 16-bit stuff here
|
; Start 16-bit stuff here
|
||||||
.16b
|
.16b
|
||||||
@@ -2110,13 +2139,17 @@ NEWSYM saveselect
|
|||||||
call Clear2xSaIBuffer
|
call Clear2xSaIBuffer
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
.stringa db 'PLEASE SELECT',0
|
.stringa db 'PLEASE SELECT',0
|
||||||
.stringb db 'SAVE STATE SLOT',0
|
.stringb db 'SAVE STATE SLOT',0
|
||||||
.stringc db 'USE CURSOR KEYS',0
|
.stringc db 'USE CURSOR KEYS',0
|
||||||
.stringd db 'TO MOVE AND',0
|
.stringd db 'TO MOVE AND',0
|
||||||
.stringe db 'ENTER TO SELECT',0
|
.stringe db 'ENTER TO SELECT',0
|
||||||
|
|
||||||
NEWSYM ForceNonTransp, db 0
|
SECTION .bss
|
||||||
|
NEWSYM ForceNonTransp, resb 1
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM testpressed8b
|
NEWSYM testpressed8b
|
||||||
test byte[pressed+2],1
|
test byte[pressed+2],1
|
||||||
@@ -2214,7 +2247,10 @@ NEWSYM testpressed8b
|
|||||||
; MakePal Changes the entire palette
|
; MakePal Changes the entire palette
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
; set the brightness with [maxbr]
|
; set the brightness with [maxbr]
|
||||||
NEWSYM cgramback, times 256 dw 0
|
SECTION .bss ;ALIGN=32
|
||||||
|
NEWSYM cgramback, resw 256
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM doveg
|
NEWSYM doveg
|
||||||
pushad
|
pushad
|
||||||
; backup cgram
|
; backup cgram
|
||||||
@@ -2285,7 +2321,9 @@ NEWSYM dovegrest
|
|||||||
popad
|
popad
|
||||||
ret
|
ret
|
||||||
|
|
||||||
blahblahblah dw 0
|
SECTION .bss ;ALIGN=32
|
||||||
|
blahblahblah resw 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM dosmakepal
|
NEWSYM dosmakepal
|
||||||
cmp byte[V8Mode],1
|
cmp byte[V8Mode],1
|
||||||
@@ -2422,7 +2460,9 @@ NEWSYM makepalb
|
|||||||
call dovegrest
|
call dovegrest
|
||||||
.noveg2
|
.noveg2
|
||||||
ret
|
ret
|
||||||
NEWSYM tempco0, dw 0
|
SECTION .bss ;ALIGN=32
|
||||||
|
NEWSYM tempco0, resw 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
; ChangePal Sets up the palette
|
; ChangePal Sets up the palette
|
||||||
@@ -2563,7 +2603,9 @@ NEWSYM doschangepal
|
|||||||
.noveg2
|
.noveg2
|
||||||
ret
|
ret
|
||||||
|
|
||||||
NEWSYM prevbright, db 0 ; previous brightness
|
SECTION .bss
|
||||||
|
NEWSYM prevbright, resb 1 ; previous brightness
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
; CopyVid Copies buffer into video
|
; CopyVid Copies buffer into video
|
||||||
@@ -2686,10 +2728,12 @@ NEWSYM showfps
|
|||||||
call outputhex
|
call outputhex
|
||||||
ret
|
ret
|
||||||
|
|
||||||
NEWSYM spcdebugaddr, dd 0
|
SECTION .bss ;ALIGN=32
|
||||||
NEWSYM tempoffset, dw 0
|
NEWSYM spcdebugaddr, resd 1
|
||||||
|
NEWSYM tempoffset, resw 1
|
||||||
|
|
||||||
NEWSYM Testval, dd 0
|
NEWSYM Testval, resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
|
|
||||||
NEWSYM ClockOutput
|
NEWSYM ClockOutput
|
||||||
@@ -2989,13 +3033,16 @@ NEWSYM ClockOutputB
|
|||||||
popad
|
popad
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
hextestfilen db 'DSP1DUMP.DAT',0
|
hextestfilen db 'DSP1DUMP.DAT',0
|
||||||
|
|
||||||
NEWSYM SoundTest, db 0
|
SECTION .bss
|
||||||
|
NEWSYM SoundTest, resb 1
|
||||||
|
|
||||||
|
|
||||||
blahrnr dw 0
|
blahrnr resw 1
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM hextestoutput
|
NEWSYM hextestoutput
|
||||||
|
|
||||||
@@ -3106,15 +3153,17 @@ NEWSYM hextestoutput
|
|||||||
call outputhex
|
call outputhex
|
||||||
ret
|
ret
|
||||||
|
|
||||||
NEWSYM SoundPlayed0, db 0
|
SECTION .bss
|
||||||
NEWSYM SoundPlayed1, db 0
|
NEWSYM SoundPlayed0, resb 1
|
||||||
NEWSYM SoundPlayed2, db 0
|
NEWSYM SoundPlayed1, resb 1
|
||||||
NEWSYM SoundPlayed3, db 0
|
NEWSYM SoundPlayed2, resb 1
|
||||||
NEWSYM SoundPlayed4, db 0
|
NEWSYM SoundPlayed3, resb 1
|
||||||
NEWSYM SoundPlayed5, db 0
|
NEWSYM SoundPlayed4, resb 1
|
||||||
NEWSYM SoundPlayed6, db 0
|
NEWSYM SoundPlayed5, resb 1
|
||||||
NEWSYM SoundPlayed7, db 0
|
NEWSYM SoundPlayed6, resb 1
|
||||||
NEWSYM ngfont, db 0
|
NEWSYM SoundPlayed7, resb 1
|
||||||
|
NEWSYM ngfont, resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM ShowSound
|
NEWSYM ShowSound
|
||||||
add esi,[vidbuffer]
|
add esi,[vidbuffer]
|
||||||
@@ -3207,21 +3256,26 @@ NEWSYM waitvsync
|
|||||||
jz .loop2 ;updating the screen
|
jz .loop2 ;updating the screen
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
NEWSYM prevengval, db 10
|
NEWSYM prevengval, db 10
|
||||||
NEWSYM chaton, db 0
|
|
||||||
NEWSYM chatstrL, times 140 db 0
|
SECTION .bss
|
||||||
NEWSYM chatLpos, dd 0
|
NEWSYM chaton, resb 1
|
||||||
NEWSYM chatstrR, times 140 db 0
|
NEWSYM chatstrL, resb 140
|
||||||
NEWSYM chatstrR2, times 140 db 0
|
NEWSYM chatLpos, resd 1
|
||||||
NEWSYM chatstrR3, times 140 db 0
|
NEWSYM chatstrR, resb 140
|
||||||
NEWSYM chatstrR4, times 140 db 0
|
NEWSYM chatstrR2, resb 140
|
||||||
NEWSYM chatstrR5, times 140 db 0
|
NEWSYM chatstrR3, resb 140
|
||||||
NEWSYM chatRTL, dd 0
|
NEWSYM chatstrR4, resb 140
|
||||||
NEWSYM chatRTL2, dd 0
|
NEWSYM chatstrR5, resb 140
|
||||||
NEWSYM chatRTL3, dd 0
|
NEWSYM chatRTL, resd 1
|
||||||
NEWSYM chatRTL4, dd 0
|
NEWSYM chatRTL2, resd 1
|
||||||
NEWSYM chatRTL5, dd 0
|
NEWSYM chatRTL3, resd 1
|
||||||
NEWSYM chatTL, dd 0
|
NEWSYM chatRTL4, resd 1
|
||||||
|
NEWSYM chatRTL5, resd 1
|
||||||
|
NEWSYM chatTL, resd 1
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
NEWSYM chatreqtable
|
NEWSYM chatreqtable
|
||||||
db 0 ,2 ,'1','2','3','4','5','6','7','8','9','0','-','=',8 ,0
|
db 0 ,2 ,'1','2','3','4','5','6','7','8','9','0','-','=',8 ,0
|
||||||
db 'Q','W','E','R','T','Y','U','I','O','P','[',']',13 ,0 ,'A','S'
|
db 'Q','W','E','R','T','Y','U','I','O','P','[',']',13 ,0 ,'A','S'
|
||||||
@@ -3233,6 +3287,7 @@ NEWSYM chatreqtable
|
|||||||
db 'D','F','G','H','J','K','L',':','"','~',1 ,'|','Z','X','C','V'
|
db 'D','F','G','H','J','K','L',':','"','~',1 ,'|','Z','X','C','V'
|
||||||
db 'B','N','M','<','>','?',1 ,0 ,0 ,' ',0 ,0 ,0 ,0 ,0 ,0
|
db 'B','N','M','<','>','?',1 ,0 ,0 ,' ',0 ,0 ,0 ,0 ,0 ,0
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
; Letters transferred & string cleared when chatstrL[0]!=0 and chaton=0
|
; Letters transferred & string cleared when chatstrL[0]!=0 and chaton=0
|
||||||
; Disable all transfers when chaton=1 (except joysticks and upper keyboard
|
; Disable all transfers when chaton=1 (except joysticks and upper keyboard
|
||||||
@@ -3542,7 +3597,9 @@ NEWSYM copyvid
|
|||||||
dec dword[MessageOn]
|
dec dword[MessageOn]
|
||||||
.nomsg
|
.nomsg
|
||||||
jmp vidpaste
|
jmp vidpaste
|
||||||
.sdrawptr dd 0
|
SECTION .bss ;ALIGN=32
|
||||||
|
.sdrawptr resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM vidpaste
|
NEWSYM vidpaste
|
||||||
cmp byte[vsyncon],0
|
cmp byte[vsyncon],0
|
||||||
@@ -3664,7 +3721,9 @@ NEWSYM vidpaste
|
|||||||
jnz .ssloopb
|
jnz .ssloopb
|
||||||
jmp .returnfromdraw
|
jmp .returnfromdraw
|
||||||
|
|
||||||
.SSRedCo dw 0
|
SECTION .bss ;ALIGN=32
|
||||||
|
.SSRedCo resw 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
|
|
||||||
NEWSYM Clear2xSaIBuffer
|
NEWSYM Clear2xSaIBuffer
|
||||||
@@ -3678,14 +3737,18 @@ NEWSYM Clear2xSaIBuffer
|
|||||||
jnz .nextb
|
jnz .nextb
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
NEWSYM lastfps, db 0 ; stores the last fps encountered
|
|
||||||
NEWSYM lastfps2, db 0 ; stores the last fps encountered
|
|
||||||
NEWSYM curfps2, db 0 ; current video refresh fps
|
|
||||||
NEWSYM Msgptr, dd 0 ; Pointer to message
|
|
||||||
NEWSYM MessageOn, dd 0 ; Message On Countdown
|
|
||||||
NEWSYM MsgCount, dd 120 ; How long message will stay (PAL = 100)
|
NEWSYM MsgCount, dd 120 ; How long message will stay (PAL = 100)
|
||||||
NEWSYM FPSOn, db 0
|
|
||||||
|
SECTION .bss
|
||||||
|
NEWSYM lastfps, resb 1 ; stores the last fps encountered
|
||||||
|
NEWSYM lastfps2, resb 1 ; stores the last fps encountered
|
||||||
|
NEWSYM curfps2, resb 1 ; current video refresh fps
|
||||||
|
NEWSYM Msgptr, resd 1 ; Pointer to message
|
||||||
|
NEWSYM MessageOn, resd 1 ; Message On Countdown
|
||||||
|
NEWSYM FPSOn, resb 1
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
prevresolutn dd 224
|
prevresolutn dd 224
|
||||||
|
|
||||||
NEWSYM SScopeCursor
|
NEWSYM SScopeCursor
|
||||||
@@ -3710,4 +3773,6 @@ db 0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0
|
|||||||
db 0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
|
db 0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
|
||||||
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM ProcVidAsmEnd
|
NEWSYM ProcVidAsmEnd
|
||||||
|
|||||||
@@ -346,7 +346,7 @@ void SineBlob(int x, int y, int radius, int height, int page)
|
|||||||
int left,top,right,bottom;
|
int left,top,right,bottom;
|
||||||
int square, dist;
|
int square, dist;
|
||||||
int radsquare = radius * radius;
|
int radsquare = radius * radius;
|
||||||
float length = (1024.0/(float)radius)*(1024.0/(float)radius);
|
float length = (1024.0f/(float)radius)*(1024.0f/(float)radius);
|
||||||
|
|
||||||
if(x<0) x = 1+radius+ rand()%(SCRW-2*radius-1);
|
if(x<0) x = 1+radius+ rand()%(SCRW-2*radius-1);
|
||||||
if(y<0) y = 1+radius+ rand()%(SCRH-2*radius-1);
|
if(y<0) y = 1+radius+ rand()%(SCRH-2*radius-1);
|
||||||
|
|||||||
@@ -17,9 +17,9 @@
|
|||||||
|
|
||||||
%include "macros.mac"
|
%include "macros.mac"
|
||||||
|
|
||||||
EXTSYM dssel,selcA000,selcB800,selc0040,previdmode,DosExit,ZFileSystemInit
|
EXTSYM previdmode,DosExit,ZFileSystemInit
|
||||||
EXTSYM getcmdline,GUIRestoreVars,getcfg,obtaindir,ConvertJoyMap,tparms
|
EXTSYM getcmdline,GUIRestoreVars,getcfg,obtaindir,ConvertJoyMap,tparms
|
||||||
EXTSYM preparedir,getblaster,Force8b,SBHDMA
|
EXTSYM preparedir,SBHDMA
|
||||||
EXTSYM ccmdline
|
EXTSYM ccmdline
|
||||||
EXTSYM FilenameStart
|
EXTSYM FilenameStart
|
||||||
EXTSYM spcon
|
EXTSYM spcon
|
||||||
@@ -51,9 +51,8 @@ EXTSYM ZFileMKDir,ZFileCHDir,ZFileRMDir,CHPath,MKPath,RMPath
|
|||||||
EXTSYM ZFileGetDir,DriveNumber,DirName
|
EXTSYM ZFileGetDir,DriveNumber,DirName
|
||||||
EXTSYM _getdrive
|
EXTSYM _getdrive
|
||||||
EXTSYM DTALoc,DTALocPos,ZFileFindATTRIB,ZFileFindFirst,ZFileFindNext,ZFileFindPATH
|
EXTSYM DTALoc,DTALocPos,ZFileFindATTRIB,ZFileFindFirst,ZFileFindNext,ZFileFindPATH
|
||||||
EXTSYM oldhand9s,oldhand9o,interror,oldhand8s,oldhand8o,oldhandSBs,oldhandSBo
|
EXTSYM NoSoundReinit,soundon,DSPDisable,NoSoundReinit
|
||||||
EXTSYM NoSoundReinit,soundon,DSPDisable,SBInt,NoSoundReinit,PICMaskP,SBIrq
|
EXTSYM init60hz,init18_2hz
|
||||||
EXTSYM SBHandler,InitSB,handler8h,handler9h,init60hz,Interror,init18_2hz,DeInitSPC
|
|
||||||
EXTSYM Start60HZ
|
EXTSYM Start60HZ
|
||||||
EXTSYM pressed
|
EXTSYM pressed
|
||||||
EXTSYM RaisePitch,AdjustFrequency
|
EXTSYM RaisePitch,AdjustFrequency
|
||||||
@@ -104,7 +103,7 @@ EXTSYM SetMouseX,SetMouseY
|
|||||||
EXTSYM T36HZEnabled
|
EXTSYM T36HZEnabled
|
||||||
EXTSYM MouseButton
|
EXTSYM MouseButton
|
||||||
EXTSYM GUIinit36_4hz,GUIoldhand9s,GUIoldhand9o,GUIoldhand8s,GUIoldhand8o
|
EXTSYM GUIinit36_4hz,GUIoldhand9s,GUIoldhand9o,GUIoldhand8s,GUIoldhand8o
|
||||||
EXTSYM GUIhandler9h,GUIhandler8h,GUIinit18_2hz
|
EXTSYM GUIinit18_2hz
|
||||||
EXTSYM Start36HZ
|
EXTSYM Start36HZ
|
||||||
EXTSYM Stop36HZ
|
EXTSYM Stop36HZ
|
||||||
EXTSYM BufferSizeW,BufferSizeB,ProcessSoundBuffer
|
EXTSYM BufferSizeW,BufferSizeB,ProcessSoundBuffer
|
||||||
@@ -134,6 +133,7 @@ EXTSYM V8Mode,GrayscaleMode
|
|||||||
EXTSYM PrevWinMode,PrevFSMode
|
EXTSYM PrevWinMode,PrevFSMode
|
||||||
EXTSYM _imp__GetLocalTime@4
|
EXTSYM _imp__GetLocalTime@4
|
||||||
|
|
||||||
|
;EXTSYM FrameSemaphore
|
||||||
|
|
||||||
%ifdef __MINGW__
|
%ifdef __MINGW__
|
||||||
NEWSYM WinIntRFAsmStart
|
NEWSYM WinIntRFAsmStart
|
||||||
@@ -269,7 +269,9 @@ NEWSYM PrintStr ; Print ASCIIZ string
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
NEWSYM wfkey, db 0
|
SECTION .bss
|
||||||
|
NEWSYM wfkey, resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM WaitForKey ; Wait for a key to be pressed
|
NEWSYM WaitForKey ; Wait for a key to be pressed
|
||||||
pushad
|
pushad
|
||||||
@@ -288,7 +290,9 @@ NEWSYM OSExit
|
|||||||
call exit
|
call exit
|
||||||
jmp DosExit
|
jmp DosExit
|
||||||
|
|
||||||
NEWSYM TempHandle, dd 0
|
SECTION .bss
|
||||||
|
NEWSYM TempHandle, resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM Open_File
|
NEWSYM Open_File
|
||||||
pushad
|
pushad
|
||||||
@@ -310,10 +314,10 @@ NEWSYM Open_File
|
|||||||
popad
|
popad
|
||||||
stc
|
stc
|
||||||
ret
|
ret
|
||||||
mov ax,3D00h
|
; mov ax,3D00h
|
||||||
int 21h
|
; int 21h
|
||||||
; return bx = file handle, carry = error
|
; return bx = file handle, carry = error
|
||||||
ret
|
; ret
|
||||||
|
|
||||||
NEWSYM Open_File_Write
|
NEWSYM Open_File_Write
|
||||||
pushad
|
pushad
|
||||||
@@ -335,10 +339,10 @@ NEWSYM Open_File_Write
|
|||||||
popad
|
popad
|
||||||
stc
|
stc
|
||||||
ret
|
ret
|
||||||
mov ax,3D01h
|
; mov ax,3D01h
|
||||||
int 21h
|
; int 21h
|
||||||
; return bx = file handle, carry = error
|
; return bx = file handle, carry = error
|
||||||
ret
|
; ret
|
||||||
|
|
||||||
NEWSYM Create_File
|
NEWSYM Create_File
|
||||||
pushad
|
pushad
|
||||||
@@ -356,11 +360,11 @@ NEWSYM Create_File
|
|||||||
popad
|
popad
|
||||||
stc
|
stc
|
||||||
ret
|
ret
|
||||||
mov ah,3Ch
|
; mov ah,3Ch
|
||||||
mov cx,0
|
; mov cx,0
|
||||||
int 21h
|
; int 21h
|
||||||
; return bx = file handle
|
; return bx = file handle
|
||||||
ret
|
; ret
|
||||||
|
|
||||||
NEWSYM Write_File
|
NEWSYM Write_File
|
||||||
mov dword[ZFileWriteHandle],0
|
mov dword[ZFileWriteHandle],0
|
||||||
@@ -380,9 +384,9 @@ NEWSYM Write_File
|
|||||||
mov eax,0
|
mov eax,0
|
||||||
stc
|
stc
|
||||||
ret
|
ret
|
||||||
mov ah,40h
|
; mov ah,40h
|
||||||
int 21h
|
; int 21h
|
||||||
ret
|
; ret
|
||||||
|
|
||||||
NEWSYM Read_File
|
NEWSYM Read_File
|
||||||
mov dword[ZFileReadHandle],0
|
mov dword[ZFileReadHandle],0
|
||||||
@@ -396,9 +400,9 @@ NEWSYM Read_File
|
|||||||
mov eax,[TempVarSeek]
|
mov eax,[TempVarSeek]
|
||||||
clc
|
clc
|
||||||
ret
|
ret
|
||||||
mov ah,3Fh
|
; mov ah,3Fh
|
||||||
int 21h
|
; int 21h
|
||||||
ret
|
; ret
|
||||||
|
|
||||||
NEWSYM Delete_File
|
NEWSYM Delete_File
|
||||||
mov [ZFileDelFName],edx
|
mov [ZFileDelFName],edx
|
||||||
@@ -406,9 +410,9 @@ NEWSYM Delete_File
|
|||||||
call ZFileDelete
|
call ZFileDelete
|
||||||
popad
|
popad
|
||||||
ret
|
ret
|
||||||
mov ah,41h
|
; mov ah,41h
|
||||||
int 21h
|
; int 21h
|
||||||
ret
|
; ret
|
||||||
|
|
||||||
NEWSYM Close_File
|
NEWSYM Close_File
|
||||||
mov dword[ZCloseFileHandle],0
|
mov dword[ZCloseFileHandle],0
|
||||||
@@ -418,9 +422,9 @@ NEWSYM Close_File
|
|||||||
popad
|
popad
|
||||||
clc
|
clc
|
||||||
ret
|
ret
|
||||||
mov ah,3Eh
|
; mov ah,3Eh
|
||||||
int 21h
|
; int 21h
|
||||||
ret
|
; ret
|
||||||
|
|
||||||
NEWSYM File_Seek
|
NEWSYM File_Seek
|
||||||
mov word[ZFileSeekPos+2],cx
|
mov word[ZFileSeekPos+2],cx
|
||||||
@@ -435,9 +439,9 @@ NEWSYM File_Seek
|
|||||||
mov dx,cx
|
mov dx,cx
|
||||||
ret
|
ret
|
||||||
; seek to cx:dx from 0 position, return carry as error
|
; seek to cx:dx from 0 position, return carry as error
|
||||||
mov ax,4200h
|
; mov ax,4200h
|
||||||
int 21h
|
; int 21h
|
||||||
ret
|
; ret
|
||||||
|
|
||||||
NEWSYM File_Seek_End
|
NEWSYM File_Seek_End
|
||||||
mov word[ZFileSeekPos+2],cx
|
mov word[ZFileSeekPos+2],cx
|
||||||
@@ -456,9 +460,9 @@ NEWSYM File_Seek_End
|
|||||||
mov dx,[TempVarSeek+2]
|
mov dx,[TempVarSeek+2]
|
||||||
ret
|
ret
|
||||||
; seek to cx:dx from end position, and return file location in dx:ax
|
; seek to cx:dx from end position, and return file location in dx:ax
|
||||||
mov ax,4202h
|
; mov ax,4202h
|
||||||
int 21h
|
; int 21h
|
||||||
ret
|
; ret
|
||||||
|
|
||||||
NEWSYM Get_Time
|
NEWSYM Get_Time
|
||||||
pushad
|
pushad
|
||||||
@@ -493,10 +497,10 @@ NEWSYM Get_File_Date
|
|||||||
mov ecx,[ZFTime]
|
mov ecx,[ZFTime]
|
||||||
ret
|
ret
|
||||||
; return packed date in dx:cx
|
; return packed date in dx:cx
|
||||||
mov ah,57h
|
; mov ah,57h
|
||||||
mov al,00h
|
; mov al,00h
|
||||||
int 21h
|
; int 21h
|
||||||
ret
|
; ret
|
||||||
|
|
||||||
|
|
||||||
RefreshKeybBuffer:
|
RefreshKeybBuffer:
|
||||||
@@ -542,7 +546,7 @@ RefreshKeybBuffer:
|
|||||||
mov ebx,[HoldKey]
|
mov ebx,[HoldKey]
|
||||||
cmp ebx,0A8h
|
cmp ebx,0A8h
|
||||||
jb .skipdecval
|
jb .skipdecval
|
||||||
sub ebx,80h
|
add ebx,-80h
|
||||||
.skipdecval
|
.skipdecval
|
||||||
cmp ebx,58h
|
cmp ebx,58h
|
||||||
jae .none
|
jae .none
|
||||||
@@ -567,15 +571,18 @@ RefreshKeybBuffer:
|
|||||||
mov [Keybtail],al
|
mov [Keybtail],al
|
||||||
.none
|
.none
|
||||||
ret
|
ret
|
||||||
Keybhead db 0
|
|
||||||
Keybtail db 0
|
|
||||||
HoldKey dd 0
|
|
||||||
HoldKeyBuf times 16 db 0
|
|
||||||
PKeyBuf times 100h db 0
|
|
||||||
|
|
||||||
NEWSYM CurKeyPos, dd 0
|
SECTION .bss
|
||||||
NEWSYM CurKeyReadPos, dd 0
|
Keybhead resb 1
|
||||||
NEWSYM KeyBuffer, times 16 dd 0
|
Keybtail resb 1
|
||||||
|
HoldKey resd 1
|
||||||
|
HoldKeyBuf resb 16
|
||||||
|
PKeyBuf resb 100h
|
||||||
|
|
||||||
|
NEWSYM CurKeyPos, resd 1
|
||||||
|
NEWSYM CurKeyReadPos, resd 1
|
||||||
|
NEWSYM KeyBuffer, resd 16
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM Check_Key
|
NEWSYM Check_Key
|
||||||
mov al,[CurKeyPos]
|
mov al,[CurKeyPos]
|
||||||
@@ -618,7 +625,7 @@ NEWSYM Get_Key
|
|||||||
and dword[CurKeyReadPos],0Fh
|
and dword[CurKeyReadPos],0Fh
|
||||||
ret
|
ret
|
||||||
.upper
|
.upper
|
||||||
sub word[KeyBuffer+eax*4],100h
|
add word[KeyBuffer+eax*4],-100h
|
||||||
xor al,al
|
xor al,al
|
||||||
ret
|
ret
|
||||||
|
|
||||||
@@ -633,7 +640,7 @@ NEWSYM Get_Key
|
|||||||
test bl,80h
|
test bl,80h
|
||||||
jz .notupperkey
|
jz .notupperkey
|
||||||
xor bl,bl
|
xor bl,bl
|
||||||
sub byte[HoldKeyBuf+eax],80h
|
add byte[HoldKeyBuf+eax],-80h
|
||||||
jmp .yesupperkey
|
jmp .yesupperkey
|
||||||
.notupperkey
|
.notupperkey
|
||||||
inc al
|
inc al
|
||||||
@@ -649,6 +656,7 @@ NEWSYM Get_Key
|
|||||||
; return key in al
|
; return key in al
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
KeyConvTable
|
KeyConvTable
|
||||||
db 255,27 ,'1','2','3','4','5','6' ; 00h
|
db 255,27 ,'1','2','3','4','5','6' ; 00h
|
||||||
db '7','8','9','0','-','=',8 ,9
|
db '7','8','9','0','-','=',8 ,9
|
||||||
@@ -673,6 +681,7 @@ KeyConvTableS
|
|||||||
db 255,255,255,255,255,255,255,255 ; 40h
|
db 255,255,255,255,255,255,255,255 ; 40h
|
||||||
db 200,201,202,203,204,205,206,207
|
db 200,201,202,203,204,205,206,207
|
||||||
db 208,209,210,211,255,255,255,255 ; 50h
|
db 208,209,210,211,255,255,255,255 ; 50h
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
; mov dl,[SRAMDrive]
|
; mov dl,[SRAMDrive]
|
||||||
; mov ebx,SRAMDir
|
; mov ebx,SRAMDir
|
||||||
@@ -703,9 +712,9 @@ NEWSYM Change_Single_Dir
|
|||||||
stc
|
stc
|
||||||
ret
|
ret
|
||||||
; Dir in edx, return error in carry flag
|
; Dir in edx, return error in carry flag
|
||||||
mov ah,3Bh
|
; mov ah,3Bh
|
||||||
int 21h
|
; int 21h
|
||||||
ret
|
; ret
|
||||||
|
|
||||||
NEWSYM Create_Dir
|
NEWSYM Create_Dir
|
||||||
; change to dir in edx
|
; change to dir in edx
|
||||||
@@ -721,9 +730,9 @@ NEWSYM Create_Dir
|
|||||||
popad
|
popad
|
||||||
stc
|
stc
|
||||||
ret
|
ret
|
||||||
mov ah,39h
|
; mov ah,39h
|
||||||
int 21h
|
; int 21h
|
||||||
ret
|
; ret
|
||||||
|
|
||||||
NEWSYM Remove_Dir
|
NEWSYM Remove_Dir
|
||||||
; remove dir in edx
|
; remove dir in edx
|
||||||
@@ -739,9 +748,9 @@ NEWSYM Remove_Dir
|
|||||||
popad
|
popad
|
||||||
stc
|
stc
|
||||||
ret
|
ret
|
||||||
mov ah,3Ah
|
; mov ah,3Ah
|
||||||
int 21h
|
; int 21h
|
||||||
ret
|
; ret
|
||||||
|
|
||||||
; mov dl,[LoadDrive]
|
; mov dl,[LoadDrive]
|
||||||
; mov ebx,LoadDir
|
; mov ebx,LoadDir
|
||||||
@@ -780,20 +789,20 @@ NEWSYM Change_Dir
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
; dl = drive, ebx = dir
|
; dl = drive, ebx = dir
|
||||||
push ebx
|
; push ebx
|
||||||
mov ah,0Eh
|
; mov ah,0Eh
|
||||||
int 21h
|
; int 21h
|
||||||
mov ah,3Bh
|
; mov ah,3Bh
|
||||||
mov edx,gotoroot
|
; mov edx,gotoroot
|
||||||
int 21h
|
; int 21h
|
||||||
pop ebx
|
; pop ebx
|
||||||
mov edx,ebx
|
; mov edx,ebx
|
||||||
cmp byte[edx],0
|
; cmp byte[edx],0
|
||||||
je .nodir
|
; je .nodir
|
||||||
mov ah,3Bh
|
; mov ah,3Bh
|
||||||
int 21h
|
; int 21h
|
||||||
.nodir
|
;.nodir
|
||||||
ret
|
; ret
|
||||||
|
|
||||||
; mov ebx,LoadDir
|
; mov ebx,LoadDir
|
||||||
; mov edx,LoadDrive
|
; mov edx,LoadDrive
|
||||||
@@ -820,21 +829,21 @@ NEWSYM Get_Dir
|
|||||||
call _getdrive
|
call _getdrive
|
||||||
; mov ah,19h
|
; mov ah,19h
|
||||||
; int 21h
|
; int 21h
|
||||||
sub al,1
|
add al,-1
|
||||||
pop edx
|
pop edx
|
||||||
mov [edx],al
|
mov [edx],al
|
||||||
ret
|
ret
|
||||||
|
|
||||||
push edx
|
; push edx
|
||||||
mov ah,47h
|
; mov ah,47h
|
||||||
mov dl,0
|
; mov dl,0
|
||||||
mov esi,ebx
|
; mov esi,ebx
|
||||||
int 21h
|
; int 21h
|
||||||
mov ah,19h
|
; mov ah,19h
|
||||||
int 21h
|
; int 21h
|
||||||
pop edx
|
; pop edx
|
||||||
mov [edx],al
|
; mov [edx],al
|
||||||
ret
|
; ret
|
||||||
|
|
||||||
NEWSYM Get_First_Entry
|
NEWSYM Get_First_Entry
|
||||||
; cx = attributes, edx = pointer to wildcard
|
; cx = attributes, edx = pointer to wildcard
|
||||||
@@ -855,10 +864,10 @@ NEWSYM Get_First_Entry
|
|||||||
popad
|
popad
|
||||||
stc
|
stc
|
||||||
ret
|
ret
|
||||||
mov ah,4Eh
|
; mov ah,4Eh
|
||||||
mov al,0
|
; mov al,0
|
||||||
int 21h
|
; int 21h
|
||||||
ret
|
; ret
|
||||||
|
|
||||||
NEWSYM Get_Next_Entry
|
NEWSYM Get_Next_Entry
|
||||||
mov dword[DTALocPos],DTALoc
|
mov dword[DTALocPos],DTALoc
|
||||||
@@ -873,9 +882,9 @@ NEWSYM Get_Next_Entry
|
|||||||
popad
|
popad
|
||||||
stc
|
stc
|
||||||
ret
|
ret
|
||||||
mov ah,04Fh
|
; mov ah,04Fh
|
||||||
int 21h
|
; int 21h
|
||||||
ret
|
; ret
|
||||||
|
|
||||||
NEWSYM Set_DTA_Address
|
NEWSYM Set_DTA_Address
|
||||||
; Only needed for dos stuff
|
; Only needed for dos stuff
|
||||||
@@ -980,91 +989,93 @@ NEWSYM changepal ; 8-bit palette set (changes only)
|
|||||||
NEWSYM displayfpspal
|
NEWSYM displayfpspal
|
||||||
ret
|
ret
|
||||||
|
|
||||||
mov al,128
|
; mov al,128
|
||||||
mov dx,03C8h
|
; mov dx,03C8h
|
||||||
out dx,al
|
; out dx,al
|
||||||
inc dx
|
; inc dx
|
||||||
mov al,63
|
; mov al,63
|
||||||
out dx,al
|
; out dx,al
|
||||||
out dx,al
|
; out dx,al
|
||||||
out dx,al
|
; out dx,al
|
||||||
mov al,128+64
|
; mov al,128+64
|
||||||
mov dx,03C8h
|
; mov dx,03C8h
|
||||||
out dx,al
|
; out dx,al
|
||||||
inc dx
|
; inc dx
|
||||||
mov al,0
|
; mov al,0
|
||||||
out dx,al
|
; out dx,al
|
||||||
out dx,al
|
; out dx,al
|
||||||
out dx,al
|
; out dx,al
|
||||||
ret
|
; ret
|
||||||
|
|
||||||
NEWSYM superscopepal
|
NEWSYM superscopepal
|
||||||
ret
|
ret
|
||||||
|
|
||||||
mov al,128+16
|
; mov al,128+16
|
||||||
mov dx,03C8h
|
; mov dx,03C8h
|
||||||
out dx,al
|
; out dx,al
|
||||||
inc dx
|
; inc dx
|
||||||
mov al,63
|
; mov al,63
|
||||||
out dx,al
|
; out dx,al
|
||||||
xor al,al
|
; xor al,al
|
||||||
out dx,al
|
; out dx,al
|
||||||
out dx,al
|
; out dx,al
|
||||||
ret
|
; ret
|
||||||
|
|
||||||
NEWSYM saveselectpal
|
NEWSYM saveselectpal
|
||||||
ret
|
ret
|
||||||
|
|
||||||
; set palette of colors 128,144, and 160 to white, blue, and red
|
; set palette of colors 128,144, and 160 to white, blue, and red
|
||||||
mov al,128
|
; mov al,128
|
||||||
mov dx,03C8h
|
; mov dx,03C8h
|
||||||
out dx,al
|
; out dx,al
|
||||||
inc dx
|
; inc dx
|
||||||
mov al,63
|
; mov al,63
|
||||||
out dx,al
|
; out dx,al
|
||||||
out dx,al
|
; out dx,al
|
||||||
out dx,al
|
; out dx,al
|
||||||
mov al,144
|
; mov al,144
|
||||||
mov dx,03C8h
|
; mov dx,03C8h
|
||||||
out dx,al
|
; out dx,al
|
||||||
inc dx
|
; inc dx
|
||||||
xor al,al
|
; xor al,al
|
||||||
out dx,al
|
; out dx,al
|
||||||
out dx,al
|
; out dx,al
|
||||||
mov al,50
|
; mov al,50
|
||||||
out dx,al
|
; out dx,al
|
||||||
mov al,160
|
; mov al,160
|
||||||
mov dx,03C8h
|
; mov dx,03C8h
|
||||||
out dx,al
|
; out dx,al
|
||||||
inc dx
|
; inc dx
|
||||||
mov al,45
|
; mov al,45
|
||||||
out dx,al
|
; out dx,al
|
||||||
xor al,al
|
; xor al,al
|
||||||
out dx,al
|
; out dx,al
|
||||||
out dx,al
|
; out dx,al
|
||||||
mov al,176
|
; mov al,176
|
||||||
mov dx,03C8h
|
; mov dx,03C8h
|
||||||
out dx,al
|
; out dx,al
|
||||||
inc dx
|
; inc dx
|
||||||
mov al,47
|
; mov al,47
|
||||||
out dx,al
|
; out dx,al
|
||||||
xor al,al
|
; xor al,al
|
||||||
out dx,al
|
; out dx,al
|
||||||
out dx,al
|
; out dx,al
|
||||||
mov al,208
|
; mov al,208
|
||||||
mov dx,03C8h
|
; mov dx,03C8h
|
||||||
out dx,al
|
; out dx,al
|
||||||
inc dx
|
; inc dx
|
||||||
mov al,50
|
; mov al,50
|
||||||
out dx,al
|
; out dx,al
|
||||||
mov al,25
|
; mov al,25
|
||||||
out dx,al
|
; out dx,al
|
||||||
xor al,al
|
; xor al,al
|
||||||
out dx,al
|
; out dx,al
|
||||||
ret
|
; ret
|
||||||
|
|
||||||
; ** init video mode functions **
|
; ** init video mode functions **
|
||||||
|
SECTION .data
|
||||||
NEWSYM firstvideo, dd 1
|
NEWSYM firstvideo, dd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
|
|
||||||
NEWSYM initvideo ; Returns 1 in videotroub if trouble occurs
|
NEWSYM initvideo ; Returns 1 in videotroub if trouble occurs
|
||||||
@@ -1131,7 +1142,10 @@ NEWSYM deinitvideo
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
; ** copy video mode functions **
|
; ** copy video mode functions **
|
||||||
NEWSYM converta, dd 0
|
SECTION .bss
|
||||||
|
NEWSYM converta, resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM DrawScreen ; In-game screen render w/ triple buffer check
|
NEWSYM DrawScreen ; In-game screen render w/ triple buffer check
|
||||||
cmp dword [converta],1
|
cmp dword [converta],1
|
||||||
jne near .skipconv
|
jne near .skipconv
|
||||||
@@ -1171,7 +1185,7 @@ NEWSYM vidpastecopyscr ; GUI screen render
|
|||||||
mov eax,[vidbuffer]
|
mov eax,[vidbuffer]
|
||||||
mov ecx,224*288
|
mov ecx,224*288
|
||||||
mov edx,ecx
|
mov edx,ecx
|
||||||
sub ecx,288
|
add ecx,-288
|
||||||
dec edx
|
dec edx
|
||||||
.loop
|
.loop
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
@@ -1257,7 +1271,6 @@ NEWSYM GUIBIFIL, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
|||||||
NEWSYM GUITBWVID, db 0,1,0,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,1 ; Triple Buffering (Win)
|
NEWSYM GUITBWVID, db 0,1,0,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,1 ; Triple Buffering (Win)
|
||||||
NEWSYM GUISMODE, db 0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,1,0,0,0,0,1,0,1,0,0,1,0,1,0,0
|
NEWSYM GUISMODE, db 0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,1,0,0,0,0,1,0,1,0,0,1,0,1,0,0
|
||||||
NEWSYM GUIDSMODE, db 0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1
|
NEWSYM GUIDSMODE, db 0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1
|
||||||
NEWSYM GUIMBVID, db 1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,1,0,0,1,0,1,0,0
|
|
||||||
|
|
||||||
|
|
||||||
SECTION .text
|
SECTION .text
|
||||||
@@ -1391,12 +1404,11 @@ NEWSYM ScanCodeListing
|
|||||||
db 'P2B','P2Y','P2S','P2T','P2U','P2D','P2L','P2R'
|
db 'P2B','P2Y','P2S','P2T','P2U','P2D','P2L','P2R'
|
||||||
db 'P2A','P2X','P2L','P2R',' ',' ',' ',' '
|
db 'P2A','P2X','P2L','P2R',' ',' ',' ',' '
|
||||||
|
|
||||||
SECTION .text
|
|
||||||
|
|
||||||
SECTION .data
|
|
||||||
NEWSYM ZSNESBase, dd 0
|
|
||||||
TempVarSeek dd 0
|
|
||||||
gotoroot db '\',0
|
gotoroot db '\',0
|
||||||
|
|
||||||
|
SECTION .bss
|
||||||
|
NEWSYM ZSNESBase, resd 1
|
||||||
|
TempVarSeek resd 1
|
||||||
SECTION .text
|
SECTION .text
|
||||||
|
|
||||||
; ****************************
|
; ****************************
|
||||||
@@ -1408,13 +1420,14 @@ NEWSYM Init_Mouse
|
|||||||
mov eax,01h
|
mov eax,01h
|
||||||
ret
|
ret
|
||||||
|
|
||||||
NEWSYM WMouseX, dd 0
|
SECTION .bss
|
||||||
NEWSYM WMouseY, dd 0
|
NEWSYM WMouseX, resd 1
|
||||||
NEWSYM WMouseMoveX, dd 0
|
NEWSYM WMouseY, resd 1
|
||||||
NEWSYM WMouseMoveY, dd 0
|
NEWSYM WMouseMoveX, resd 1
|
||||||
NEWSYM WMouseButton, dd 0
|
NEWSYM WMouseMoveY, resd 1
|
||||||
|
NEWSYM WMouseButton, resd 1
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
|
|
||||||
NEWSYM Get_MouseData ; Returns both pressed and coordinates
|
NEWSYM Get_MouseData ; Returns both pressed and coordinates
|
||||||
@@ -1543,15 +1556,18 @@ NEWSYM Check60hz
|
|||||||
; Call the timer update function here
|
; Call the timer update function here
|
||||||
pushad
|
pushad
|
||||||
call CheckTimers
|
call CheckTimers
|
||||||
|
; call FrameSemaphore
|
||||||
popad
|
popad
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
BitPosR db 11
|
BitPosR db 11
|
||||||
BitPosG db 5
|
BitPosG db 5
|
||||||
BitPosB db 0
|
BitPosB db 0
|
||||||
BitSizeR db 5
|
BitSizeR db 5
|
||||||
BitSizeG db 6
|
BitSizeG db 6
|
||||||
BitSizeB db 5
|
BitSizeB db 5
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
|
|
||||||
InitializeGfxStuff:
|
InitializeGfxStuff:
|
||||||
@@ -1714,19 +1730,22 @@ NEWSYM SetInputDevice
|
|||||||
mov dword[eax+44],46
|
mov dword[eax+44],46
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
SECTION .bss
|
||||||
; ****************************
|
; ****************************
|
||||||
; TCP/IP Stuff
|
; TCP/IP Stuff
|
||||||
; ****************************
|
; ****************************
|
||||||
|
|
||||||
; TCPIPPortNum
|
; TCPIPPortNum
|
||||||
NEWSYM TCPIPStatus, db 0
|
NEWSYM TCPIPStatus, resb 1
|
||||||
NEWSYM PacketSendSize, dd 0
|
NEWSYM PacketSendSize, resd 1
|
||||||
NEWSYM PacketRecvSize, dd 0
|
NEWSYM PacketRecvSize, resd 1
|
||||||
NEWSYM PacketRecvPtr, dd 0
|
NEWSYM PacketRecvPtr, resd 1
|
||||||
NEWSYM PacketSendArray, times 2048+256 db 0
|
NEWSYM PacketSendArray, resb 2048+256
|
||||||
NEWSYM PacketRecvArray, times 2048+256 db 0
|
NEWSYM PacketRecvArray, resb 2048+256
|
||||||
NEWSYM IPAddrStr, times 20 db 0
|
NEWSYM IPAddrStr, resb 20
|
||||||
NEWSYM RemoteDisconnect, db 0
|
NEWSYM RemoteDisconnect, resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM TCPIPStartServer
|
NEWSYM TCPIPStartServer
|
||||||
mov byte[RemoteDisconnect],0
|
mov byte[RemoteDisconnect],0
|
||||||
@@ -1772,7 +1791,9 @@ NEWSYM TCPIPWaitForConnection
|
|||||||
popad
|
popad
|
||||||
mov eax,-1
|
mov eax,-1
|
||||||
ret
|
ret
|
||||||
.temp dd 0
|
SECTION .bss
|
||||||
|
.temp resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM TCPIPInitConnectToServer
|
NEWSYM TCPIPInitConnectToServer
|
||||||
pushad
|
pushad
|
||||||
@@ -1825,7 +1846,9 @@ NEWSYM TCPIPConnectToServer
|
|||||||
popad
|
popad
|
||||||
mov eax,[.temp]
|
mov eax,[.temp]
|
||||||
ret
|
ret
|
||||||
.temp dd 0
|
SECTION .bss
|
||||||
|
.temp resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM TCPIPConnectToServerW
|
NEWSYM TCPIPConnectToServerW
|
||||||
; int ConnectServer(char *servername, unsigned short port)
|
; int ConnectServer(char *servername, unsigned short port)
|
||||||
@@ -1843,7 +1866,9 @@ NEWSYM TCPIPConnectToServerW
|
|||||||
popad
|
popad
|
||||||
mov eax,[.temp]
|
mov eax,[.temp]
|
||||||
ret
|
ret
|
||||||
.temp dd 0
|
SECTION .bss
|
||||||
|
.temp resd 0
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM TCPIPStoreByte
|
NEWSYM TCPIPStoreByte
|
||||||
; Store al into the array
|
; Store al into the array
|
||||||
@@ -2025,17 +2050,93 @@ NEWSYM GetTimeInSeconds
|
|||||||
add eax,ebx
|
add eax,ebx
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
SECTION .bss
|
||||||
|
|
||||||
SystemTime:
|
SystemTime:
|
||||||
.wYear dw 0
|
.wYear resw 1
|
||||||
.wMonth dw 0
|
.wMonth resw 1
|
||||||
.wDayOfWeek dw 0
|
.wDayOfWeek resw 1
|
||||||
.wDay dw 0
|
.wDay resw 1
|
||||||
.wHour dw 0
|
.wHour resw 1
|
||||||
.wMinute dw 0
|
.wMinute resw 1
|
||||||
.wSecond dw 0
|
.wSecond resw 1
|
||||||
.wMilliseconds dw 0
|
.wMilliseconds resw 1
|
||||||
|
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
%ifdef __MINGW__
|
%ifdef __MINGW__
|
||||||
NEWSYM WinIntRFAsmEnd
|
NEWSYM WinIntRFAsmEnd
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%if 0
|
||||||
|
|
||||||
|
; here's some code to blur a 512x448 region inside a 640x wide buffer
|
||||||
|
; code "borrowed" from KEGA 0.04b
|
||||||
|
|
||||||
|
%macro blurcrap 0
|
||||||
|
mov eax,ebx
|
||||||
|
mov ebx,ecx
|
||||||
|
mov ecx,dword [edi+4]
|
||||||
|
shr ecx,1
|
||||||
|
and ecx,ebp
|
||||||
|
mov edx,ecx
|
||||||
|
add edx,eax
|
||||||
|
shr edx,1
|
||||||
|
and edx,ebp
|
||||||
|
add edx,ebx
|
||||||
|
mov word [edi+2],dx
|
||||||
|
push edx
|
||||||
|
shr edx,1
|
||||||
|
shr esi,1
|
||||||
|
and edx,ebp
|
||||||
|
and esi,ebp
|
||||||
|
add edx,esi
|
||||||
|
mov word [edi],dx
|
||||||
|
pop esi
|
||||||
|
add edi,4
|
||||||
|
%endmacro
|
||||||
|
|
||||||
|
NEWSYM fastblur
|
||||||
|
push ebx
|
||||||
|
push ecx
|
||||||
|
push edx
|
||||||
|
push esi
|
||||||
|
push edi
|
||||||
|
push ebp
|
||||||
|
mov ebp, 0111101111101111b
|
||||||
|
cmp dword [converta], 1
|
||||||
|
jne .565
|
||||||
|
mov ebp, 0011110111101111b
|
||||||
|
.565
|
||||||
|
mov edi, [esp+1Ch]
|
||||||
|
mov ecx, 448
|
||||||
|
|
||||||
|
.loop
|
||||||
|
push ecx
|
||||||
|
|
||||||
|
xor ebx, ebx
|
||||||
|
mov ecx, dword [edi]
|
||||||
|
xor esi, esi
|
||||||
|
shr ecx, 1
|
||||||
|
and ecx, ebp
|
||||||
|
|
||||||
|
%rep 256
|
||||||
|
blurcrap
|
||||||
|
%endrep
|
||||||
|
|
||||||
|
pop ecx
|
||||||
|
|
||||||
|
add edi, 256
|
||||||
|
|
||||||
|
dec ecx
|
||||||
|
jne .loop
|
||||||
|
|
||||||
|
pop ebp
|
||||||
|
pop edi
|
||||||
|
pop esi
|
||||||
|
pop edx
|
||||||
|
pop ecx
|
||||||
|
pop ebx
|
||||||
|
ret
|
||||||
|
|
||||||
|
%endif
|
||||||
@@ -241,6 +241,16 @@ extern "C"
|
|||||||
void drawscreenwin(void);
|
void drawscreenwin(void);
|
||||||
DWORD LastUsedPos=0;
|
DWORD LastUsedPos=0;
|
||||||
DWORD CurMode=-1;
|
DWORD CurMode=-1;
|
||||||
|
int InitDirectDraw();
|
||||||
|
int ReInitSound();
|
||||||
|
void initDirectDraw()
|
||||||
|
{
|
||||||
|
InitDirectDraw();
|
||||||
|
}
|
||||||
|
void reInitSound()
|
||||||
|
{
|
||||||
|
ReInitSound();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DDrawError(){
|
void DDrawError(){
|
||||||
|
|||||||
Reference in New Issue
Block a user