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
|
||||
|
||||
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}
|
||||
|
||||
@@ -78,6 +78,7 @@ ${ZIPDIR}/zzip.o: ${ZIPDIR}/zzip.c ${ZIPDIR}/zunzip.h
|
||||
fixsin.o: fixsin.c
|
||||
water.o: water.c
|
||||
smoke.o: smoke.c
|
||||
burn.o: burn.c
|
||||
${VIDEODIR}/procvid.o: ${VIDEODIR}/procvid.asm macros.mac ${VIDEODIR}/copyvid.inc ${VIDEODIR}/2xsaimmx.inc
|
||||
${CHIPDIR}/dsp1proc.o: ${CHIPDIR}/dsp1proc.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 FIRTAPVal0,FIRTAPVal1,FIRTAPVal2,FIRTAPVal3,FIRTAPVal4,FIRTAPVal5
|
||||
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 Voice0Start,Voice0State,Voice0Status,Voice0Time,Voice1End,Voice1Noise
|
||||
EXTSYM Voice1Prev0,Voice1Prev1,Voice1Start,Voice2End,Voice2Noise,Voice2Prev0
|
||||
@@ -47,7 +47,9 @@ NEWSYM DspAsmStart
|
||||
|
||||
;none times 256 db 0
|
||||
|
||||
SECTION .data
|
||||
identcode db 255,1,78,78
|
||||
SECTION .text
|
||||
;sardcode db 234,76,80,128,65,65 ; 6
|
||||
;efxcode db 17,47,62,97,26,126,98 ; 7
|
||||
;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
|
||||
%endmacro
|
||||
|
||||
ALIGN32
|
||||
|
||||
NEWSYM DSPMem, times 256 db 0
|
||||
SECTION .bss ;ALIGN=32
|
||||
alignb 32
|
||||
NEWSYM DSPMem, resb 256
|
||||
SECTION .text
|
||||
|
||||
;Read DSP Registers functions
|
||||
|
||||
@@ -1114,7 +1117,7 @@ NEWSYM RDSPRegFF ;
|
||||
test byte [DSPMem+07h+%1*10h],40h
|
||||
jnz near %%Increase
|
||||
test byte [DSPMem+07h+%1*10h],20h
|
||||
jz near %%LinearDec
|
||||
jz %%LinearDec
|
||||
xor eax,eax
|
||||
mov al,[DSPMem+07h+%1*10h]
|
||||
and al,1Fh
|
||||
@@ -1216,7 +1219,7 @@ NEWSYM RDSPRegFF ;
|
||||
test byte [DSPMem+07h+%1*10h],40h
|
||||
jnz near %%Increase
|
||||
test byte [DSPMem+07h+%1*10h],20h
|
||||
jz near %%LinearDec
|
||||
jz %%LinearDec
|
||||
xor eax,eax
|
||||
mov al,[DSPMem+07h+%1*10h]
|
||||
and al,1Fh
|
||||
@@ -1524,11 +1527,11 @@ NEWSYM RDSPRegFF ;
|
||||
|
||||
%macro VoiceGain 1
|
||||
test byte[MuteVoiceF],1 << %1
|
||||
jnz near .nogain
|
||||
jnz .nogain
|
||||
cmp byte[Voice0State+%1],200
|
||||
je near .nogain
|
||||
je .nogain
|
||||
cmp [DSPMem+07h+%1*10h],al
|
||||
je near .nogain
|
||||
je .nogain
|
||||
mov [DSPMem+07h+%1*10h],al
|
||||
cmp byte[Voice0Status+%1],1
|
||||
jne .nogain
|
||||
@@ -1550,7 +1553,9 @@ NEWSYM RDSPRegFF ;
|
||||
ProcessGain2 %1
|
||||
%endmacro
|
||||
|
||||
NEWSYM ADSRGAINSwitch, db 0
|
||||
SECTION .bss
|
||||
NEWSYM ADSRGAINSwitch, resb 1
|
||||
SECTION .text
|
||||
|
||||
;Write DSP Registers functions
|
||||
|
||||
@@ -1584,7 +1589,9 @@ NEWSYM WDSPReg04 ; Voice 0 SCRN
|
||||
mov [DSPMem+04h],al
|
||||
ret
|
||||
|
||||
NEWSYM TempValueSnd, db 0
|
||||
SECTION .bss
|
||||
NEWSYM TempValueSnd, resb 1
|
||||
SECTION .text
|
||||
|
||||
NEWSYM WDSPReg05 ; Voice 0 ADSR (1)
|
||||
inc byte[TempValueSnd]
|
||||
@@ -2231,7 +2238,9 @@ NEWSYM WDSPReg6B ; Voice 6
|
||||
mov [DSPMem+06Bh],al
|
||||
ret
|
||||
|
||||
spcres db 0
|
||||
SECTION .bss
|
||||
spcres resb 1
|
||||
SECTION .text
|
||||
|
||||
NEWSYM WDSPReg6C ; Voice 6
|
||||
mov [DSPMem+06Ch],al
|
||||
@@ -2258,10 +2267,8 @@ NEWSYM WDSPReg6C ; Voice 6
|
||||
and eax,1Fh
|
||||
xor edx,edx
|
||||
mov eax,[NoiseSpeeds+eax*4]
|
||||
mov ebx,[SBToSPC]
|
||||
shl eax,16
|
||||
div ebx
|
||||
shl eax,2
|
||||
Mul dword [dspPAdj]
|
||||
ShrD EAX, EDX, 17
|
||||
mov [NoiseInc],eax
|
||||
pop edx
|
||||
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 Voice0Status
|
||||
EXTSYM UpdateDPage
|
||||
EXTSYM Interror,MessageOn,MsgCount,Msgptr,StartGUI,cbitmode,debuggeron,romdata
|
||||
EXTSYM frameskip,initvideo,newgfx16b,oldhandSBo,oldhandSBs,soundon,cvidmode
|
||||
EXTSYM MessageOn,MsgCount,Msgptr,StartGUI,cbitmode,debuggeron,romdata
|
||||
EXTSYM frameskip,initvideo,newgfx16b,soundon,cvidmode
|
||||
EXTSYM vidbuffer,vidbufferofsa,vidbufferofsb,disable65816sh,GUISaveVars,virqnodisable
|
||||
EXTSYM KeySaveState,KeyLoadState,KeyQuickExit,KeyQuickLoad,KeyQuickRst,GUIDoReset
|
||||
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 OSPort
|
||||
; EXTSYM tempblah,romdata
|
||||
EXTSYM Curtableaddr,DeInitSPC,InitSB,PICMaskP,SBHandler,SBInt
|
||||
EXTSYM SBIrq,curcyc,debugdisble,dmadata,guioff,memtabler8,SetupPreGame
|
||||
EXTSYM Curtableaddr
|
||||
EXTSYM curcyc,debugdisble,dmadata,guioff,memtabler8,SetupPreGame
|
||||
EXTSYM memtablew8,regaccessbankr8,showmenu,snesmap2,snesmmap,DeInitPostGame
|
||||
EXTSYM spcPCRam,startdebugger,xp,xpb,xpc,tablead,tableadb,tableadc
|
||||
; EXTSYM oamram
|
||||
@@ -53,8 +53,10 @@ EXTSYM OSExit,DosExit,InitDir,InitDrive,createnewcfg,fnames,gotoroot,previdmode
|
||||
EXTSYM ramsize,sfxramdata,sram,SRAMDrive,SRAMDir,welcome
|
||||
; EXTSYM tempstore
|
||||
EXTSYM printhex
|
||||
%ifdef __MSDOS__
|
||||
EXTSYM ModemInitStat, DeInitModem
|
||||
EXTSYM deinitipx
|
||||
%endif
|
||||
EXTSYM deinitvideo
|
||||
EXTSYM BRRBuffer,DSPMem,PrepareSaveState,ResetState,SFXEnable,PHdspsave
|
||||
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 SfxRAMBR,SfxRAMMem,SfxROMBR,SfxRomBuffer,Voice0Freq
|
||||
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 multchange,procexecloop,vidmemch2
|
||||
EXTSYM romispal
|
||||
EXTSYM dssel
|
||||
EXTSYM scrndis,sprlefttot,sprleftpr,processsprites,cachesprites
|
||||
EXTSYM NextLineStart,FlipWait,LastLineStart
|
||||
EXTSYM opcjmptab
|
||||
@@ -118,6 +119,14 @@ EXTSYM ReadSPC7110log,WriteSPC7110log
|
||||
EXTSYM NetPlayNoMore
|
||||
EXTSYM statefileloc
|
||||
|
||||
%ifdef OPENSPC
|
||||
EXTSYM OSPC_Run, ospc_cycle_frac
|
||||
%endif
|
||||
|
||||
%ifdef __MSDOS__
|
||||
EXTSYM dssel
|
||||
%endif
|
||||
|
||||
NEWSYM ExecuteAsmStart
|
||||
|
||||
%macro BackupCVMacM 2
|
||||
@@ -130,7 +139,8 @@ NEWSYM ExecuteAsmStart
|
||||
movq [ebx+8],mm1
|
||||
add edx,16
|
||||
add ebx,16
|
||||
loop %%loop
|
||||
dec ecx
|
||||
jnz %%loop
|
||||
%endmacro
|
||||
|
||||
%macro BackupCVMac 2
|
||||
@@ -141,7 +151,8 @@ NEWSYM ExecuteAsmStart
|
||||
mov [ebx],eax
|
||||
add edx,4
|
||||
add ebx,4
|
||||
loop %%loop
|
||||
dec ecx
|
||||
jnz %%loop
|
||||
%endmacro
|
||||
|
||||
%macro BackupCVMacB 2
|
||||
@@ -152,7 +163,8 @@ NEWSYM ExecuteAsmStart
|
||||
mov [ebx],al
|
||||
inc edx
|
||||
inc ebx
|
||||
loop %%loop
|
||||
dec ecx
|
||||
jnz %%loop
|
||||
%endmacro
|
||||
|
||||
%macro BackupCVRMacM 2
|
||||
@@ -165,7 +177,8 @@ NEWSYM ExecuteAsmStart
|
||||
movq [edx+8],mm1
|
||||
add edx,16
|
||||
add ebx,16
|
||||
loop %%loop
|
||||
dec ecx
|
||||
jnz %%loop
|
||||
%endmacro
|
||||
|
||||
%macro BackupCVRMac 2
|
||||
@@ -176,7 +189,8 @@ NEWSYM ExecuteAsmStart
|
||||
mov [edx],eax
|
||||
add edx,4
|
||||
add ebx,4
|
||||
loop %%loop
|
||||
dec ecx
|
||||
jnz %%loop
|
||||
%endmacro
|
||||
|
||||
%macro BackupCVRMacB 2
|
||||
@@ -187,46 +201,57 @@ NEWSYM ExecuteAsmStart
|
||||
mov [edx],al
|
||||
inc edx
|
||||
inc ebx
|
||||
loop %%loop
|
||||
dec ecx
|
||||
jnz %%loop
|
||||
%endmacro
|
||||
|
||||
NEWSYM CBackupPos, dd 0
|
||||
NEWSYM StateBackup, dd 0
|
||||
NEWSYM PBackupPos, dd 0
|
||||
NEWSYM PPValue, dd 0 ; Previous PValue
|
||||
NEWSYM DPValue, dd 0 ; Destination PValue
|
||||
NEWSYM CurRecv, dd 0 ; Set to 1 if Recovery mode is on
|
||||
SECTION .bss
|
||||
NEWSYM CBackupPos, resd 1
|
||||
NEWSYM StateBackup, resd 1
|
||||
NEWSYM PBackupPos, resd 1
|
||||
NEWSYM PPValue, resd 1 ; Previous PValue
|
||||
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
|
||||
; draw to screen, do not key on, restore previous local key presses,
|
||||
; when disabling key ons, divert dspmem write/read to a different
|
||||
; array temporarly, then re-copy back in when finished
|
||||
NEWSYM PPContrl, times 16 dd 0 ; Previous Controller 1 Data
|
||||
NEWSYM PPContrl2, times 16 dd 0 ; Previous Controller 2 Data
|
||||
NEWSYM PPContrl3, times 16 dd 0 ; Previous Controller 3 Data
|
||||
NEWSYM PPContrl4, times 16 dd 0 ; Previous Controller 4 Data
|
||||
NEWSYM PPContrl5, times 16 dd 0 ; Previous Controller 5 Data
|
||||
NEWSYM tempedx, dd 0
|
||||
NEWSYM NetSent2, dd 0
|
||||
NEWSYM NetQuitter, dd 0
|
||||
NEWSYM QBackupPos, dd 0
|
||||
NEWSYM LatencyV, times 256 db 0
|
||||
NEWSYM LatencyRecvPtr, dd 0
|
||||
NEWSYM LatencySendPtr, dd 0
|
||||
NEWSYM latencytimer, dd 0
|
||||
NEWSYM PPContrl, resd 16 ; Previous Controller 1 Data
|
||||
NEWSYM PPContrl2, resd 16 ; Previous Controller 2 Data
|
||||
NEWSYM PPContrl3, resd 16 ; Previous Controller 3 Data
|
||||
NEWSYM PPContrl4, resd 16 ; Previous Controller 4 Data
|
||||
NEWSYM PPContrl5, resd 16 ; Previous Controller 5 Data
|
||||
NEWSYM tempedx, resd 1
|
||||
NEWSYM NetSent2, resd 1
|
||||
NEWSYM NetQuitter, resd 1
|
||||
NEWSYM QBackupPos, resd 1
|
||||
NEWSYM LatencyV, resb 256
|
||||
NEWSYM LatencyRecvPtr, resd 1
|
||||
NEWSYM LatencySendPtr, resd 1
|
||||
NEWSYM latencytimer, resd 1
|
||||
|
||||
SECTION .data
|
||||
NEWSYM BackState, db 1
|
||||
NEWSYM BackStateSize, dd 6
|
||||
NEWSYM nojoystickpoll, dd 0
|
||||
NEWSYM RemoteLValue, db 0
|
||||
NEWSYM LocalLValue, db 0
|
||||
NEWSYM chatstrLt, times 15 db 0
|
||||
NEWSYM RewindOldPos, dd 0
|
||||
NEWSYM RewindPos, dd 0
|
||||
NEWSYM RewindTimer, dd 0
|
||||
|
||||
SECTION .bss
|
||||
NEWSYM nojoystickpoll, resd 1
|
||||
NEWSYM RemoteLValue, resb 1
|
||||
NEWSYM LocalLValue, resb 1
|
||||
NEWSYM chatstrLt, resb 15
|
||||
NEWSYM RewindOldPos, resd 1
|
||||
NEWSYM RewindPos, resd 1
|
||||
NEWSYM RewindTimer, resd 1
|
||||
|
||||
SECTION .data
|
||||
NEWSYM ResendTimer, dd 60
|
||||
NEWSYM valuea, dd 0
|
||||
NEWSYM valueb, dd 0
|
||||
NEWSYM valuet, dd 0
|
||||
BackupArray times 2000 dd 0
|
||||
|
||||
SECTION .bss
|
||||
NEWSYM valuea, resd 1
|
||||
NEWSYM valueb, resd 1
|
||||
NEWSYM valuet, resd 1
|
||||
BackupArray resd 3000
|
||||
SECTION .text
|
||||
|
||||
NEWSYM SplitStringChat
|
||||
push ebx
|
||||
@@ -352,7 +377,9 @@ NEWSYM GenLatencyDisplay
|
||||
mov [chatstrLt+4],dl
|
||||
mov [chatstrLt+3],al
|
||||
ret
|
||||
.temp dd 0
|
||||
SECTION .bss
|
||||
.temp resd 1
|
||||
SECTION .text
|
||||
|
||||
NEWSYM ResetExecStuff
|
||||
mov dword[soundcycleft],0
|
||||
@@ -363,7 +390,8 @@ NEWSYM ResetExecStuff
|
||||
mov dword[nmiprevline],224
|
||||
mov dword[nmistatus],0
|
||||
mov byte[NextLineCache],0
|
||||
mov byte[spcnumread],0
|
||||
mov dword[spcnumread],0
|
||||
mov dword[spchalted],-1
|
||||
mov dword[timer2upd],0
|
||||
mov dword[HIRQCycNext],0
|
||||
mov byte[HIRQNextExe],0
|
||||
@@ -465,7 +493,8 @@ NEWSYM BackupSystemVars
|
||||
BackupCVMac spc700read,10
|
||||
BackupCVMac timer2upd,1
|
||||
BackupCVMac xa,14
|
||||
BackupCVMacB spcnumread,1
|
||||
BackupCVMacB spcnumread,4
|
||||
BackupCVMacB spchalted,4
|
||||
BackupCVMac opcd,6
|
||||
BackupCVMacB HIRQCycNext,5
|
||||
BackupCVMac oamaddr,14
|
||||
@@ -487,7 +516,8 @@ NEWSYM RestoreSystemVars
|
||||
BackupCVRMac spc700read,10
|
||||
BackupCVRMac timer2upd,1
|
||||
BackupCVRMac xa,14
|
||||
BackupCVRMacB spcnumread,1
|
||||
BackupCVRMacB spcnumread,4
|
||||
BackupCVRMacB spchalted,4
|
||||
BackupCVRMac opcd,6
|
||||
BackupCVRMacB HIRQCycNext,5
|
||||
BackupCVRMac oamaddr,14
|
||||
@@ -560,7 +590,8 @@ NEWSYM BackupCVFrame
|
||||
BackupCVMac spc700read,10
|
||||
BackupCVMac timer2upd,1
|
||||
BackupCVMac xa,14
|
||||
BackupCVMacB spcnumread,1
|
||||
BackupCVMacB spcnumread,4
|
||||
BackupCVMacB spchalted,4
|
||||
BackupCVMac opcd,6
|
||||
BackupCVMacB HIRQCycNext,5
|
||||
BackupCVMac oamaddr,14
|
||||
@@ -654,7 +685,8 @@ NEWSYM RestoreCVFrame
|
||||
BackupCVRMac spc700read,10
|
||||
BackupCVRMac timer2upd,1
|
||||
BackupCVRMac xa,14
|
||||
BackupCVRMacB spcnumread,1
|
||||
BackupCVRMacB spcnumread,4
|
||||
BackupCVRMacB spchalted,4
|
||||
BackupCVRMac opcd,6
|
||||
BackupCVRMacB HIRQCycNext,5
|
||||
BackupCVRMac oamaddr,14
|
||||
@@ -689,7 +721,9 @@ NEWSYM RestoreCVFrame
|
||||
emms
|
||||
ret
|
||||
|
||||
NEWSYM MuteVoiceF, db 0
|
||||
SECTION .bss
|
||||
NEWSYM MuteVoiceF, resb 0
|
||||
SECTION .text
|
||||
|
||||
VoiceEndMute:
|
||||
mov byte[MuteVoiceF],0
|
||||
@@ -973,19 +1007,22 @@ NetSaveState:
|
||||
; pexecs
|
||||
; *** Copy to PC whenever a non-relative jump is executed
|
||||
|
||||
NEWSYM romloadskip, db 0
|
||||
NEWSYM abcdefg, dd 0
|
||||
NEWSYM abcdefg1, dd 0
|
||||
NEWSYM abcdefg2, dd 0
|
||||
NEWSYM abcdefg3, dd 0
|
||||
NEWSYM SSKeyPressed, dd 0
|
||||
NEWSYM SPCKeyPressed, dd 0
|
||||
NEWSYM NoSoundReinit, dd 0
|
||||
NEWSYM NextNGDisplay, db 0
|
||||
NEWSYM TempVidInfo, dd 0
|
||||
SECTION .bss
|
||||
NEWSYM romloadskip, resb 1
|
||||
NEWSYM abcdefg, resd 1
|
||||
NEWSYM abcdefg1, resd 1
|
||||
NEWSYM abcdefg2, resd 1
|
||||
NEWSYM abcdefg3, resd 1
|
||||
NEWSYM SSKeyPressed, resd 1
|
||||
NEWSYM SPCKeyPressed, resd 1
|
||||
NEWSYM NoSoundReinit, resd 1
|
||||
NEWSYM NextNGDisplay, resb 1
|
||||
NEWSYM TempVidInfo, resd 1
|
||||
|
||||
|
||||
NEWSYM tempdh, db 0
|
||||
NEWSYM tempdh, resb 1
|
||||
|
||||
SECTION .text
|
||||
|
||||
NEWSYM start65816
|
||||
|
||||
@@ -1282,8 +1319,10 @@ reexecuteb2:
|
||||
jnz near endprog
|
||||
jmp StartGUI
|
||||
|
||||
SECTION .data
|
||||
NEWSYM EndMessage
|
||||
db ' ',13,10,0
|
||||
SECTION .text
|
||||
|
||||
NEWSYM endprog
|
||||
call deinitvideo
|
||||
@@ -1417,6 +1456,7 @@ NEWSYM endprog
|
||||
mov ebx,InitDir
|
||||
call Change_Dir
|
||||
|
||||
%ifdef __MSDOS__
|
||||
; Deinit modem if necessary
|
||||
cmp byte[ModemInitStat],0
|
||||
je .nodeinitmodem
|
||||
@@ -1424,12 +1464,13 @@ NEWSYM endprog
|
||||
.nodeinitmodem
|
||||
; cmp byte[OSPort],1
|
||||
; jae .nodeinitipx
|
||||
%ifdef __MSDOS__
|
||||
call deinitipx
|
||||
%endif
|
||||
;.nodeinitipx
|
||||
%endif
|
||||
jmp OSExit
|
||||
SECTION .data
|
||||
NEWSYM sdd1fname, db 'sdd1dat.dat',0,0
|
||||
SECTION .text
|
||||
|
||||
NEWSYM interror
|
||||
stim
|
||||
@@ -1439,31 +1480,38 @@ NEWSYM interror
|
||||
call Output_Text ;to print a string
|
||||
jmp DosExit
|
||||
|
||||
SECTION .data
|
||||
.nohand db 'Cannot process interrupt handler!',13,10,0
|
||||
|
||||
SECTION .bss
|
||||
; global variables
|
||||
NEWSYM invalid, db 0
|
||||
NEWSYM invopcd, db 0
|
||||
NEWSYM pressed, times 256+128+64 db 0 ; keyboard pressed keys in scancode
|
||||
NEWSYM exiter, db 0
|
||||
NEWSYM oldhand9o, dd 0
|
||||
NEWSYM oldhand9s, dw 0
|
||||
NEWSYM oldhand8o, dd 0
|
||||
NEWSYM oldhand8s, dw 0
|
||||
NEWSYM opcd, dd 0
|
||||
NEWSYM pdh, dd 0
|
||||
NEWSYM pcury, dd 0
|
||||
NEWSYM timercount, dd 0
|
||||
NEWSYM initaddrl, dd 0 ; initial address location
|
||||
NEWSYM NetSent, dd 0
|
||||
NEWSYM nextframe, dd 0 ; tick count for timer
|
||||
NEWSYM curfps, db 0 ; frame/sec for current screen
|
||||
NEWSYM SFXSRAM, db 0
|
||||
NEWSYM invalid, resb 1
|
||||
NEWSYM invopcd, resb 1
|
||||
NEWSYM pressed, resb 256+128+64 ; keyboard pressed keys in scancode
|
||||
NEWSYM exiter, resb 1
|
||||
NEWSYM oldhand9o, resd 1
|
||||
NEWSYM oldhand9s, resw 1
|
||||
NEWSYM oldhand8o, resd 1
|
||||
NEWSYM oldhand8s, resw 1
|
||||
NEWSYM opcd, resd 1
|
||||
NEWSYM pdh, resd 1
|
||||
NEWSYM pcury, resd 1
|
||||
NEWSYM timercount, resd 1
|
||||
NEWSYM initaddrl, resd 1 ; initial address location
|
||||
NEWSYM NetSent, resd 1
|
||||
NEWSYM nextframe, resd 1 ; tick count for timer
|
||||
NEWSYM curfps, resb 1 ; frame/sec for current screen
|
||||
NEWSYM SFXSRAM, resb 1
|
||||
|
||||
SECTION .data
|
||||
NEWSYM newgfxerror, db 'NEED MEMORY FOR GFX ENGINE',0
|
||||
NEWSYM newgfxerror2, db 'NEED 320x240 FOR NEW GFX 16B',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
|
||||
@@ -1496,10 +1544,13 @@ NEWSYM sramsave
|
||||
mov [MessageOn],eax
|
||||
jmp reexecute
|
||||
|
||||
SECTION .data
|
||||
.savesrmmsg1 db 'SRAM DATA SAVED.',0
|
||||
.savesrmmsg2 db 'NO SRAM DATA.',0
|
||||
|
||||
NEWSYM firstsaveinc, db 0
|
||||
SECTION .bss
|
||||
NEWSYM firstsaveinc, resb 1
|
||||
SECTION .text
|
||||
|
||||
NEWSYM statesaver
|
||||
clim
|
||||
@@ -1671,8 +1722,10 @@ NEWSYM statesaver
|
||||
mov [MessageOn],eax
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
.savemsg db 'STATE - SAVED.',0
|
||||
.savemsgfail db 'UNABLE TO SAVE.',0
|
||||
SECTION .text
|
||||
|
||||
NEWSYM savestate
|
||||
jmp .save
|
||||
@@ -1708,9 +1761,12 @@ NEWSYM savestate
|
||||
call statesaver
|
||||
jmp reexecuteb
|
||||
|
||||
SECTION .data
|
||||
.fname2 db 9,'image.dat',0
|
||||
|
||||
cycpblblah dd 0,0
|
||||
SECTION .bss
|
||||
cycpblblah resd 2
|
||||
SECTION .text
|
||||
|
||||
; Load State
|
||||
NEWSYM stateloader
|
||||
@@ -1835,7 +1891,8 @@ NEWSYM stateloader
|
||||
.nosdd1
|
||||
call Close_File
|
||||
call repackfunct
|
||||
mov byte[spcnumread],0
|
||||
mov dword[spcnumread],0
|
||||
mov dword[spchalted],-1
|
||||
mov byte[nexthdma],0
|
||||
|
||||
; call headerhack
|
||||
@@ -1900,7 +1957,8 @@ NEWSYM stateloader
|
||||
call Close_File
|
||||
call repackfunct
|
||||
mov dword[cycpbl],0
|
||||
mov byte[spcnumread],0
|
||||
mov dword[spcnumread],0
|
||||
mov dword[spchalted],-1
|
||||
mov byte[nexthdma],0
|
||||
call headerhack
|
||||
call initpitch
|
||||
@@ -1964,9 +2022,11 @@ NEWSYM loadstate
|
||||
stim
|
||||
jmp reexecuteb
|
||||
|
||||
SECTION .data
|
||||
.loadmsg db 'STATE - LOADED.',0
|
||||
.convmsg db 'STATE - LOADED/CONVERTED',0
|
||||
.nfndmsg db 'UNABLE TO LOAD STATE -.',0
|
||||
SECTION .text
|
||||
|
||||
NEWSYM loadstate2
|
||||
mov edx,fnamest+1
|
||||
@@ -2034,6 +2094,7 @@ NEWSYM Game60hzcall
|
||||
inc byte[nextframe]
|
||||
ret
|
||||
|
||||
%ifdef __MSDOS__
|
||||
NEWSYM handler8h
|
||||
cli
|
||||
push ds
|
||||
@@ -2056,16 +2117,23 @@ NEWSYM handler8hseg
|
||||
pop ds
|
||||
sti
|
||||
iretd
|
||||
%endif
|
||||
|
||||
SECTION .data
|
||||
NEWSYM timeradj, dd 65536
|
||||
NEWSYM t1cc, dw 0
|
||||
SECTION .bss
|
||||
NEWSYM t1cc, resw 1
|
||||
SECTION .text
|
||||
|
||||
;*******************************************************
|
||||
; Int 09h vector
|
||||
;*******************************************************
|
||||
|
||||
NEWSYM skipnextkey42, db 0
|
||||
SECTION .bss
|
||||
NEWSYM skipnextkey42, resb 1
|
||||
SECTION .text
|
||||
|
||||
%ifdef __MSDOS__
|
||||
NEWSYM handler9h
|
||||
cli
|
||||
push ds
|
||||
@@ -2127,21 +2195,26 @@ NEWSYM handler9h
|
||||
pop ds
|
||||
sti
|
||||
iretd
|
||||
%endif
|
||||
|
||||
ALIGN32
|
||||
SECTION .bss ;ALIGN=32
|
||||
NEWSYM soundcycleft, resd 1
|
||||
NEWSYM curexecstate, resd 1
|
||||
|
||||
NEWSYM soundcycleft, dd 0
|
||||
NEWSYM curexecstate, dd 0
|
||||
NEWSYM nmiprevaddrl, resd 1 ; observed address -5
|
||||
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
|
||||
NEWSYM nmiprevaddrh, dd 0 ; observed address +5
|
||||
NEWSYM nmirept, dd 0 ; NMI repeat check, if 6 then okay
|
||||
SECTION .data
|
||||
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
|
||||
NEWSYM joycontren, dd 0 ; joystick read control check
|
||||
NEWSYM NextLineCache, db 0
|
||||
NEWSYM NetQuit, db 0
|
||||
NEWSYM joycontren, resd 1 ; joystick read control check
|
||||
NEWSYM NextLineCache, resb 1
|
||||
NEWSYM NetQuit, resb 1
|
||||
SECTION .text
|
||||
|
||||
Donextlinecache:
|
||||
cmp word[curypos],0
|
||||
@@ -2235,6 +2308,8 @@ Donextlinecache:
|
||||
; 65816 execution
|
||||
;*******************************************************
|
||||
|
||||
SECTION .data
|
||||
|
||||
SpeedHackSafeTable
|
||||
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
|
||||
@@ -2252,6 +2327,7 @@ SpeedHackSafeTable
|
||||
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,1,1,0,1,1,1,0,1,0,0,0,1,1,1
|
||||
SECTION .text
|
||||
|
||||
NEWSYM exitloop2
|
||||
mov byte[ExecExitOkay],0
|
||||
@@ -2316,7 +2392,6 @@ ALIGN16
|
||||
%%noflip
|
||||
%endmacro
|
||||
|
||||
|
||||
NEWSYM execute
|
||||
NEWSYM execloop
|
||||
mov bl,dl
|
||||
@@ -2333,6 +2408,17 @@ NEWSYM execloop
|
||||
jmp cpuover
|
||||
.sound
|
||||
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
|
||||
jnc .skipallspc
|
||||
mov eax,[cycpblt]
|
||||
@@ -2343,6 +2429,7 @@ NEWSYM execloop
|
||||
call dword near [opcjmptab+ebx*4]
|
||||
xor ebx,ebx
|
||||
.skipallspc
|
||||
%endif
|
||||
mov bl,[esi]
|
||||
inc esi
|
||||
sub dh,[cpucycle+ebx]
|
||||
@@ -2353,25 +2440,27 @@ NEWSYM execloop
|
||||
|
||||
|
||||
|
||||
SECTION .data
|
||||
SECTION .data ;ALIGN=32
|
||||
ALIGN32
|
||||
NEWSYM ExecExitOkay, db 1
|
||||
NEWSYM JoyABack, dd 0
|
||||
NEWSYM JoyBBack, dd 0
|
||||
NEWSYM JoyCBack, dd 0
|
||||
NEWSYM JoyDBack, dd 0
|
||||
NEWSYM JoyEBack, dd 0
|
||||
NEWSYM NetCommand, dd 0
|
||||
NEWSYM spc700read, dd 0
|
||||
NEWSYM lowestspc, dd 0
|
||||
NEWSYM highestspc, dd 0
|
||||
NEWSYM SA1UBound, dd 0
|
||||
NEWSYM SA1LBound, dd 0
|
||||
NEWSYM SA1SH, dd 0
|
||||
NEWSYM SA1SHb, dd 0
|
||||
NEWSYM NumberOfOpcodes2, dd 0
|
||||
NEWSYM ChangeOps, dd 0
|
||||
NEWSYM SFXProc, dd 0
|
||||
|
||||
SECTION .bss ;ALIGN=32
|
||||
NEWSYM JoyABack, resd 1
|
||||
NEWSYM JoyBBack, resd 1
|
||||
NEWSYM JoyCBack, resd 1
|
||||
NEWSYM JoyDBack, resd 1
|
||||
NEWSYM JoyEBack, resd 1
|
||||
NEWSYM NetCommand, resd 1
|
||||
NEWSYM spc700read, resd 1
|
||||
NEWSYM lowestspc, resd 1
|
||||
NEWSYM highestspc, resd 1
|
||||
NEWSYM SA1UBound, resd 1
|
||||
NEWSYM SA1LBound, resd 1
|
||||
NEWSYM SA1SH, resd 1
|
||||
NEWSYM SA1SHb, resd 1
|
||||
NEWSYM NumberOfOpcodes2, resd 1
|
||||
NEWSYM ChangeOps, resd 1
|
||||
NEWSYM SFXProc, resd 1
|
||||
SECTION .text
|
||||
|
||||
|
||||
@@ -2388,7 +2477,7 @@ NEWSYM cpuover
|
||||
dec esi
|
||||
cmp byte[HIRQNextExe],0
|
||||
je .nohirq
|
||||
mov dh,[HIRQCycNext]
|
||||
add dh,[HIRQCycNext]
|
||||
mov byte[HIRQCycNext],0
|
||||
jmp .hirq
|
||||
.nohirq
|
||||
@@ -3974,7 +4063,9 @@ NEWSYM cpuover
|
||||
pop eax
|
||||
jmp .returncheat
|
||||
|
||||
.numcheat db 0
|
||||
SECTION .bss ;ALIGN=32
|
||||
.numcheat resb 1
|
||||
SECTION .text ;ALIGN=32
|
||||
|
||||
ALIGN16
|
||||
|
||||
|
||||
@@ -31,9 +31,6 @@ NEWSYM Spc700AsmStart
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
; SPC 700 Emulation by _Demo_
|
||||
; Version 2.0
|
||||
|
||||
@@ -42,6 +39,7 @@ NEWSYM Spc700AsmStart
|
||||
; Read byte : read al from [ebx]
|
||||
; update timer : update the timers, called every scanline
|
||||
|
||||
SECTION .data ;ALIGN=32
|
||||
|
||||
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 0F6h,0DAh,000h,0BAh,0F4h,0C4h,0F4h,0DDh,05Dh,0D0h,0DBh,01Fh,000h,000h,0C0h,0FFh
|
||||
|
||||
SECTION .text
|
||||
|
||||
%macro WriteByte 0
|
||||
cmp ebx,0ffh+spcRam
|
||||
ja .extramem
|
||||
ja %%extramem
|
||||
cmp ebx,0f0h+spcRam
|
||||
jb .normalmem
|
||||
jb %%normalmem
|
||||
sub ebx,spcRam
|
||||
call dword near [spcWptr+ebx*4-0f0h*4]
|
||||
jmp .finished
|
||||
.extramem
|
||||
push dword %%finished
|
||||
jmp dword near [spcWptr+ebx*4-0f0h*4]
|
||||
; call dword near [spcWptr+ebx*4-0f0h*4]
|
||||
; jmp .finished
|
||||
%%extramem
|
||||
cmp ebx,0ffc0h+spcRam
|
||||
jb .normalmem
|
||||
jb %%normalmem
|
||||
mov [spcextraram+ebx-0FFC0h-spcRam],al
|
||||
test byte[spcRam+0F1h],80h
|
||||
jnz .finished
|
||||
jnz %%finished
|
||||
; push ecx
|
||||
; mov cl,[DSPMem+06Ch]
|
||||
; test cl,20h
|
||||
; pop ecx
|
||||
; jz .finished
|
||||
.normalmem
|
||||
%%normalmem
|
||||
mov [ebx],al
|
||||
.finished
|
||||
%%finished
|
||||
%endmacro
|
||||
|
||||
%macro ReadByte 0
|
||||
cmp ebx,0f0h+spcRam
|
||||
jb .rnormalmem2
|
||||
jb %%normalmem2
|
||||
cmp ebx,0ffh+spcRam
|
||||
ja .rnormalmem
|
||||
ja %%normalmem
|
||||
sub ebx,spcRam
|
||||
call dword near [spcRptr+ebx*4-0f0h*4]
|
||||
jmp .rfinished
|
||||
.rnormalmem
|
||||
push dword %%finished
|
||||
jmp dword near [spcRptr+ebx*4-0f0h*4]
|
||||
; call dword near [spcRptr+ebx*4-0f0h*4]
|
||||
; jmp .rfinished
|
||||
%%normalmem
|
||||
; cmp ebx,0ffc0h+spcRam
|
||||
; jb .rnormalmem2
|
||||
; test byte [DSPMem+6Ch],10h
|
||||
; jz .rnormalmem2
|
||||
; mov al,[spcextraram+ebx-0FFC0h-spcRam]
|
||||
; jmp .rfinished
|
||||
.rnormalmem2
|
||||
%%normalmem2
|
||||
mov al,[ebx]
|
||||
.rfinished
|
||||
%%finished
|
||||
%endmacro
|
||||
|
||||
%macro ReadByte2 0
|
||||
cmp ebx,0f0h+spcRam
|
||||
jb .rnormalmem2
|
||||
jb %%normalmem2
|
||||
cmp ebx,0ffh+spcRam
|
||||
ja .rnormalmem
|
||||
ja %%normalmem
|
||||
sub ebx,spcRam
|
||||
call dword near [spcRptr+ebx*4-0f0h*4]
|
||||
add ebx,spcRam
|
||||
jmp .rfinished
|
||||
.rnormalmem
|
||||
jmp %%finished
|
||||
%%normalmem
|
||||
; cmp ebx,0ffc0h+spcRam
|
||||
; jb .rnormalmem2
|
||||
; test byte [DSPMem+6Ch],10h
|
||||
; jz .rnormalmem2
|
||||
; mov al,[spcextraram+ebx-0FFC0h-spcRam]
|
||||
; jmp .rfinished
|
||||
.rnormalmem2
|
||||
%%normalmem2
|
||||
mov al,[ebx]
|
||||
.rfinished
|
||||
%%finished
|
||||
%endmacro
|
||||
|
||||
NEWSYM timer2upd, dd 0
|
||||
SECTION .bss
|
||||
NEWSYM timer2upd, resd 1
|
||||
SECTION .text
|
||||
|
||||
; This function is called every scanline (262*60 times/sec)
|
||||
; Make it call 0.9825 times (393/400) (skip when divisible by 64)
|
||||
; 2 8khz, 1 64khz
|
||||
@@ -223,6 +230,8 @@ NEWSYM updatetimer
|
||||
mov [timinl0],al
|
||||
cmp byte[spcRam+0FDh],1
|
||||
jne .noin0
|
||||
cmp byte[spchalted],0
|
||||
jz .noin0
|
||||
reenablespc
|
||||
mov dword[cycpbl],0
|
||||
.noin0
|
||||
@@ -235,6 +244,8 @@ NEWSYM updatetimer
|
||||
mov [timinl1],al
|
||||
cmp byte[spcRam+0FEh],1
|
||||
jne .noin1
|
||||
cmp byte[spchalted+1],0
|
||||
jz .noin1
|
||||
reenablespc
|
||||
mov dword[cycpbl],0
|
||||
.noin1
|
||||
@@ -248,6 +259,8 @@ NEWSYM updatetimer
|
||||
mov [timinl2],al
|
||||
cmp byte[spcRam+0FFh],1
|
||||
jne .noin2
|
||||
cmp byte[spchalted+2],0
|
||||
jz .noin2
|
||||
reenablespc
|
||||
mov dword[cycpbl],0
|
||||
.noin2
|
||||
@@ -258,6 +271,8 @@ NEWSYM updatetimer
|
||||
mov [timinl2],al
|
||||
cmp byte[spcRam+0FFh],1
|
||||
jne .noin2b
|
||||
cmp byte[spchalted+2],0
|
||||
jz .noin2b
|
||||
reenablespc
|
||||
mov dword[cycpbl],0
|
||||
.noin2b
|
||||
@@ -268,6 +283,8 @@ NEWSYM updatetimer
|
||||
mov [timinl2],al
|
||||
cmp byte[spcRam+0FFh],1
|
||||
jne .noin2c
|
||||
cmp byte[spchalted+2],0
|
||||
jz .noin2c
|
||||
reenablespc
|
||||
mov dword[cycpbl],0
|
||||
.noin2c
|
||||
@@ -278,6 +295,8 @@ NEWSYM updatetimer
|
||||
mov [timinl2],al
|
||||
cmp byte[spcRam+0FFh],1
|
||||
jne .noin2d
|
||||
cmp byte[spchalted+2],0
|
||||
jz .noin2d
|
||||
reenablespc
|
||||
mov dword[cycpbl],0
|
||||
.noin2d
|
||||
@@ -438,17 +457,63 @@ NEWSYM RSPCRegF2
|
||||
NEWSYM RSPCRegF3
|
||||
mov al,[spcRam+0f3h]
|
||||
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
|
||||
mov al,[spcRam+0f4h]
|
||||
%ifdef SPCDUMP
|
||||
spcdump 0
|
||||
%endif
|
||||
ret
|
||||
NEWSYM RSPCRegF5
|
||||
mov al,[spcRam+0f5h]
|
||||
%ifdef SPCDUMP
|
||||
spcdump 1
|
||||
%endif
|
||||
ret
|
||||
NEWSYM RSPCRegF6
|
||||
mov al,[spcRam+0f6h]
|
||||
%ifdef SPCDUMP
|
||||
spcdump 2
|
||||
%endif
|
||||
ret
|
||||
NEWSYM RSPCRegF7
|
||||
mov al,[spcRam+0f7h]
|
||||
%ifdef SPCDUMP
|
||||
spcdump 3
|
||||
%endif
|
||||
ret
|
||||
NEWSYM RSPCRegF8
|
||||
mov al,0 ;[spcRam+0f8h]
|
||||
@@ -465,30 +530,74 @@ NEWSYM RSPCRegFB
|
||||
NEWSYM RSPCRegFC
|
||||
mov al,[spcRam+0fch]
|
||||
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
|
||||
mov al,[spcRam+0fdh]
|
||||
and al,0Fh
|
||||
cmp byte[spcRam+0fdh],0
|
||||
je spcnextskip
|
||||
je .spcnextskip
|
||||
mov byte [spcRam+0fdh],0
|
||||
mov byte [spcnumread],0
|
||||
ret
|
||||
skipmacro 0
|
||||
|
||||
NEWSYM RSPCRegFE
|
||||
mov al,[spcRam+0feh]
|
||||
and al,0Fh
|
||||
cmp byte[spcRam+0feh],0
|
||||
je spcnextskip
|
||||
je .spcnextskip
|
||||
mov byte [spcRam+0feh],0
|
||||
mov byte [spcnumread],0
|
||||
mov byte [spcnumread+1],0
|
||||
ret
|
||||
skipmacro 1
|
||||
|
||||
NEWSYM RSPCRegFF
|
||||
mov al,[spcRam+0ffh]
|
||||
and al,0Fh
|
||||
cmp byte[spcRam+0ffh],0
|
||||
je spcnextskip
|
||||
je .spcnextskip
|
||||
mov byte [spcRam+0ffh],0
|
||||
mov byte [spcnumread],0
|
||||
mov byte [spcnumread+2],0
|
||||
ret
|
||||
skipmacro 2
|
||||
|
||||
%if 0
|
||||
NEWSYM spcnextskip
|
||||
inc byte[spcnumread]
|
||||
cmp byte[spcnumread],5
|
||||
@@ -510,9 +619,12 @@ NEWSYM haltspc
|
||||
.nochangestate
|
||||
mov byte[spcnumread],0
|
||||
ret
|
||||
%endif
|
||||
|
||||
NEWSYM spcnumread, db 0
|
||||
|
||||
SECTION .data
|
||||
NEWSYM spcnumread, dd 0
|
||||
NEWSYM spchalted, dd 0
|
||||
SECTION .text
|
||||
|
||||
%macro SPCSetFlagnzc 0
|
||||
js .setsignflag
|
||||
|
||||
@@ -18,10 +18,14 @@
|
||||
%include "macros.mac"
|
||||
|
||||
EXTSYM ComNum, ComIRQ, BaudRate
|
||||
EXTSYM dssel,FossilUse
|
||||
EXTSYM FossilUse
|
||||
EXTSYM GUIinit18_2hz,GUIinit36_4hz
|
||||
EXTSYM GUIMenuItem
|
||||
EXTSYM delay
|
||||
EXTSYM delay
|
||||
|
||||
%ifdef __MSDOS__
|
||||
EXTSYM dssel
|
||||
%endif
|
||||
|
||||
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 ModemInited, db 0
|
||||
|
||||
SECTION .bss
|
||||
NEWSYM ModemInited, resb 1
|
||||
|
||||
SECTION .data
|
||||
ComPort dw 2E8h ; 1=3F8,2=2F8,3=3E8,4=2E8
|
||||
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
|
||||
oldhandmodems dw 0
|
||||
oldhandmodemo dd 0
|
||||
|
||||
SECTION .bss
|
||||
oldhandmodems resw 1
|
||||
oldhandmodemo resd 1
|
||||
|
||||
SECTION .data
|
||||
PICMaskPm db 21h
|
||||
PortNum dw 0
|
||||
CharStore db 0
|
||||
|
||||
SECTION .bss
|
||||
PortNum resw 1
|
||||
CharStore resb 1
|
||||
SECTION .text
|
||||
|
||||
NEWSYM ModemGetChar
|
||||
cmp byte[UartType],2
|
||||
@@ -165,7 +185,6 @@ FossilSendChar:
|
||||
popad
|
||||
ret
|
||||
|
||||
|
||||
NEWSYM InitModem
|
||||
mov byte[ModemInited],1
|
||||
cmp byte[FossilUse],0
|
||||
@@ -302,7 +321,9 @@ InitFossil:
|
||||
modemhandler:
|
||||
push ds
|
||||
push eax
|
||||
%ifdef __MSDOS__
|
||||
mov ax,[cs:dssel]
|
||||
%endif
|
||||
mov ds,ax
|
||||
push edx
|
||||
mov dx,[ComPort]
|
||||
@@ -349,9 +370,11 @@ NEWSYM ModemClearBuffer
|
||||
mov dword[modemtail],0
|
||||
ret
|
||||
|
||||
NEWSYM modembuffer, times 2048 db 0
|
||||
NEWSYM modemhead, dd 0
|
||||
NEWSYM modemtail, dd 0
|
||||
SECTION .bss
|
||||
NEWSYM modembuffer, resb 2048
|
||||
NEWSYM modemhead, resd 1
|
||||
NEWSYM modemtail, resd 1
|
||||
SECTION .text
|
||||
|
||||
NEWSYM DeInitModem
|
||||
cmp byte[ModemInited],1
|
||||
|
||||
@@ -64,9 +64,9 @@
|
||||
|
||||
%include "macros.mac"
|
||||
|
||||
EXTSYM dssel, curblank, vidpastecopyscr, frameskip, newengen, vsyncon, cantinitmodem
|
||||
EXTSYM curblank, vidpastecopyscr, frameskip, newengen, vsyncon
|
||||
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 t1cc, LoadDir, SRAMDir, LoadDrive,SRAMDrive, initsnes, romloadskip
|
||||
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 Change_Drive,Change_Single_Dir,Change_Dir,Get_Dir,Get_First_Entry
|
||||
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 ScanCodeListing,AdjustFrequency,GUISaveVars,Init_Mouse
|
||||
EXTSYM Get_MouseData,Set_MouseXMax,Set_MouseYMax,Set_MousePosition,Get_MousePositionDisplacement
|
||||
EXTSYM GUIInit,GUIDeInit,SpecialLine
|
||||
EXTSYM DrawWater,DrawSmoke,RemoteDisconnect,loadstate3
|
||||
EXTSYM ModemClearBuffer,IPXSearchval
|
||||
EXTSYM ipxlookforconnect
|
||||
EXTSYM DrawWater,DrawBurn,RemoteDisconnect,loadstate3
|
||||
EXTSYM SA1Enable,SA1RAMArea
|
||||
EXTSYM GUIFName,GUICName
|
||||
EXTSYM printnum
|
||||
@@ -108,7 +106,6 @@ EXTSYM showinfogui
|
||||
EXTSYM BackupCVFrame
|
||||
EXTSYM Wait1SecWin,ClearUDPStuff
|
||||
EXTSYM DisableSUDPPacket,EnableSUDPPacket
|
||||
EXTSYM ModemGetChar
|
||||
EXTSYM BackStateSize
|
||||
EXTSYM ResetExecStuff
|
||||
EXTSYM RestoreCVFrame
|
||||
@@ -141,11 +138,8 @@ EXTSYM Force8b,convertnum,converthex
|
||||
EXTSYM per2exec
|
||||
EXTSYM hostname
|
||||
EXTSYM UDPConfig
|
||||
EXTSYM DeInitModem
|
||||
EXTSYM snesmouse
|
||||
EXTSYM pl1upk,pl1downk,pl1leftk,pl1rightk,pl1Lk,pl1Rk,pl1Ak,pl1Bk
|
||||
EXTSYM deinitipx
|
||||
EXTSYM InitModem
|
||||
EXTSYM outofmemfix,yesoutofmemory
|
||||
EXTSYM CReadHead,ReadHead,CFWriteHead,CFWriteStart
|
||||
EXTSYM JoyX,JoyY,JoyMinX,JoyMinY,JoyMaxX,JoyMaxY,JoyMinX209,JoyMaxX209
|
||||
@@ -158,26 +152,29 @@ EXTSYM TCPIPWaitForConnection
|
||||
EXTSYM tcperr
|
||||
EXTSYM TCPIPConnectToServer
|
||||
EXTSYM TCPIPConnectToServerW
|
||||
EXTSYM initipx
|
||||
EXTSYM selc0040
|
||||
EXTSYM ModemCheckRing
|
||||
EXTSYM ModemCheckDCD
|
||||
EXTSYM PreparePacketIPX,TCPIPPreparePacket
|
||||
EXTSYM SendPacketIPX,TCPIPSendPacket,TCPIPSendPacketUDP
|
||||
EXTSYM TCPIPPreparePacket
|
||||
EXTSYM TCPIPSendPacket,TCPIPSendPacketUDP
|
||||
EXTSYM TCPIPDisconnect,TCPIPStatus
|
||||
EXTSYM DeInitModemC
|
||||
EXTSYM ipxgetchar,ipxsendchar,TCPIPStoreByte
|
||||
EXTSYM TCPIPStoreByte
|
||||
EXTSYM TCPIPGetByte,GUIBIFIL
|
||||
EXTSYM ModemSendChar
|
||||
EXTSYM firstsaveinc
|
||||
EXTSYM nssdip1,nssdip2,nssdip3,nssdip4,nssdip5,nssdip6
|
||||
%ifndef __MSDOS__
|
||||
EXTSYM GUIMBVID
|
||||
%endif
|
||||
|
||||
%ifdef __LINUX__
|
||||
EXTSYM numlockptr
|
||||
%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
|
||||
|
||||
@@ -193,6 +190,7 @@ NEWSYM GuiAsmStart
|
||||
|
||||
|
||||
|
||||
SECTION .data
|
||||
|
||||
|
||||
; ProcessRemoteCommand
|
||||
@@ -597,33 +595,37 @@ NEWSYM KeyQuickClock, dd 0
|
||||
NEWSYM KeyQuickSaveSPC, dd 0
|
||||
NEWSYM AutoIncSaveSlot, db 0
|
||||
NEWSYM TCPIPAddress, times 29 db 0
|
||||
NEWSYM SoundInterpType, db 1
|
||||
NEWSYM SoundInterpType, db 2
|
||||
NEWSYM KeyDisplayFPS, dd 0
|
||||
NEWSYM KeyIncStateSlot, dd 0
|
||||
NEWSYM KeyDecStateSlot, dd 0
|
||||
NEWSYM MotionBlur, dd 0
|
||||
|
||||
GUIsave equ $-GUIRAdd
|
||||
|
||||
NEWSYM ForceROMTiming, db 0
|
||||
NEWSYM ForceHiLoROM, db 0
|
||||
section .bss
|
||||
|
||||
NEWSYM CombinDataGlob, times 3300 db 0 ; 20-name, 42-combo, 2-key#, 1-P#, 1-ff
|
||||
NEWSYM CombinDataLocl, times 3300 db 0
|
||||
NEWSYM ForceROMTiming, resb 1
|
||||
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 CmdLineTCPIPAddress, times 29 db 0
|
||||
section .bss
|
||||
|
||||
GUIwinorder times 18 db 0
|
||||
GUIwinpos times 18 db 0
|
||||
GUIwinactiv times 18 db 0
|
||||
DialNumber times 40 db 0
|
||||
ViewBuffer times 50*32 db 0
|
||||
NEWSYM ModemInitStat, db 0
|
||||
ModemProcess db 0 ; Shows current dial/answer process
|
||||
ModemPTimer dd 0 ; Timer for modem process
|
||||
ModemOKStat db 0 ; OK is detected on modem status
|
||||
GUIwinorder resb 18
|
||||
GUIwinpos resb 18
|
||||
GUIwinactiv resb 18
|
||||
DialNumber resb 40
|
||||
ViewBuffer resb 50*32
|
||||
NEWSYM ModemInitStat, resb 1
|
||||
ModemProcess resb 1 ; Shows current dial/answer process
|
||||
ModemPTimer resd 1 ; Timer for modem process
|
||||
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
|
||||
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
|
||||
@@ -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
|
||||
GUIwinptr db 0
|
||||
|
||||
GUItextcolor db 0,0,0,0,0
|
||||
GUIcmenupos db 0
|
||||
GUIescpress db 0
|
||||
GUIcwinpress db 0
|
||||
GUIpmenupos db 0
|
||||
GUIcrowpos dd 0
|
||||
GUIpclicked db 0
|
||||
GUImouseposx dd 0
|
||||
GUImouseposy dd 0
|
||||
GUICYLocPtr dd 0
|
||||
GUIMenuL dd 0
|
||||
GUIMenuR dd 0
|
||||
GUIMenuD dd 0
|
||||
GUIOnMenuItm db 0
|
||||
NEWSYM GUIQuit, db 0
|
||||
GUIHold db 0
|
||||
GUIHoldx dd 0
|
||||
GUIHoldy dd 0
|
||||
GUIHoldxm dd 0
|
||||
GUIHoldym dd 0
|
||||
GUIcolscaleval dd 0
|
||||
cwindrawn db 0
|
||||
GUIWincol dd 0
|
||||
GUIWincoladd dd 0
|
||||
GUITemp dd 0
|
||||
GUIHoldXlimL dd 0
|
||||
GUIHoldXlimR dd 0
|
||||
GUIHoldYlim dd 0
|
||||
GUIHoldYlimR dd 0
|
||||
cloadnpos dd 0
|
||||
cloadnposb dd 0
|
||||
cloadmaxlen dd 0
|
||||
cloadnleft dd 0
|
||||
cplayernum db 0
|
||||
vbuflimtop dd 0
|
||||
vbuflimbot dd 0
|
||||
GUIScrolTim1 dd 0
|
||||
GUIScrolTim2 dd 0
|
||||
GUICHold dd 0
|
||||
GUICBHold dd 0
|
||||
GUICBHold2 dd 0
|
||||
GUIDClickTL dd 0
|
||||
GUIDClCWin dd 0
|
||||
GUIDClCEntry dd 0
|
||||
GUICResetPos dd 0
|
||||
GUICStatePos dd 0
|
||||
GUICCFlash db 0
|
||||
GUILDFlash db 0
|
||||
GUIPalConv dd 0
|
||||
PrevResoln dw 0
|
||||
SnowMover dd 0
|
||||
keycontrolval dd 0
|
||||
NEWSYM CheatBDoor, db 0
|
||||
NEWSYM ShowTimer, db 0
|
||||
NEWSYM MousePRClick, db 0
|
||||
NEWSYM MouseDis, db 0
|
||||
NEWSYM NetPlayNoMore, db 0
|
||||
RestoreValues db 0
|
||||
NEWSYM NetChatFirst, db 0
|
||||
NEWSYM NetServer, db 0
|
||||
NEWSYM NetQuitAfter, db 0
|
||||
NEWSYM NetNewNick, times 16 db 0
|
||||
NEWSYM NetFilename, times 512 db 0
|
||||
section .bss
|
||||
GUItextcolor resb 5
|
||||
GUIcmenupos resb 1
|
||||
GUIescpress resb 1
|
||||
GUIcwinpress resb 1
|
||||
GUIpmenupos resb 1
|
||||
GUIcrowpos resd 1
|
||||
GUIpclicked resb 1
|
||||
GUImouseposx resd 1
|
||||
GUImouseposy resd 1
|
||||
GUICYLocPtr resd 1
|
||||
GUIMenuL resd 1
|
||||
GUIMenuR resd 1
|
||||
GUIMenuD resd 1
|
||||
GUIOnMenuItm resb 1
|
||||
NEWSYM GUIQuit, resb 1
|
||||
GUIHold resb 1
|
||||
GUIHoldx resd 1
|
||||
GUIHoldy resd 1
|
||||
GUIHoldxm resd 1
|
||||
GUIHoldym resd 1
|
||||
GUIcolscaleval resd 1
|
||||
cwindrawn resb 1
|
||||
GUIWincol resd 1
|
||||
GUIWincoladd resd 1
|
||||
GUITemp resd 1
|
||||
GUIHoldXlimL resd 1
|
||||
GUIHoldXlimR resd 1
|
||||
GUIHoldYlim resd 1
|
||||
GUIHoldYlimR resd 1
|
||||
cloadnpos resd 1
|
||||
cloadnposb resd 1
|
||||
cloadmaxlen resd 1
|
||||
cloadnleft resd 1
|
||||
cplayernum resb 1
|
||||
vbuflimtop resd 1
|
||||
vbuflimbot resd 1
|
||||
GUIScrolTim1 resd 1
|
||||
GUIScrolTim2 resd 1
|
||||
GUICHold resd 1
|
||||
GUICBHold resd 1
|
||||
GUICBHold2 resd 1
|
||||
GUIDClickTL resd 1
|
||||
GUIDClCWin resd 1
|
||||
GUIDClCEntry resd 1
|
||||
GUICResetPos resd 1
|
||||
GUICStatePos resd 1
|
||||
GUICCFlash resb 1
|
||||
GUILDFlash resb 1
|
||||
GUIPalConv resd 1
|
||||
PrevResoln resw 1
|
||||
SnowMover resd 1
|
||||
keycontrolval resd 1
|
||||
NEWSYM CheatBDoor, resb 1
|
||||
NEWSYM ShowTimer, resb 1
|
||||
NEWSYM MousePRClick, resb 1
|
||||
NEWSYM MouseDis, resb 1
|
||||
NEWSYM NetPlayNoMore, resb 1
|
||||
RestoreValues resb 1
|
||||
NEWSYM NetChatFirst, resb 1
|
||||
NEWSYM NetServer, resb 1
|
||||
NEWSYM NetQuitAfter, resb 1
|
||||
NEWSYM NetNewNick, resb 16
|
||||
NEWSYM NetFilename, resb 512
|
||||
|
||||
NEWSYM CheatOn, dd 0
|
||||
NEWSYM NumCheats, dd 0
|
||||
NEWSYM cheatdataprev, times 28 db 0 ; leave contents blank
|
||||
NEWSYM cheatdata, times 28*255+56 db 0 ; toggle, value, address, pvalue, name(22)
|
||||
NEWSYM CheatOn, resd 1
|
||||
NEWSYM NumCheats, resd 1
|
||||
NEWSYM cheatdataprev, resb 28 ; leave contents blank
|
||||
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 db 0
|
||||
curgsval resb 1
|
||||
|
||||
SECTION .data
|
||||
NEWSYM numdrives, dd 26
|
||||
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
|
||||
NEWSYM pl2neten, db 0
|
||||
NEWSYM pl3neten, db 0
|
||||
NEWSYM pl4neten, db 0
|
||||
NEWSYM pl5neten, db 0
|
||||
NEWSYM cnetplaybuf, times 512 db 0
|
||||
NEWSYM cnetptrhead, dd 0
|
||||
NEWSYM cnetptrtail, dd 0
|
||||
NEWSYM prevp1net, dd 0
|
||||
NEWSYM prevp2net, dd 0
|
||||
NEWSYM prevp3net, dd 0
|
||||
NEWSYM prevp4net, dd 0
|
||||
NEWSYM prevp5net, dd 0
|
||||
NEWSYM netdelayed, db 0
|
||||
NEWSYM ChatProgress,dd 0
|
||||
NEWSYM RecvProgress,dd 0
|
||||
NEWSYM IPXInfoStr, dw 0
|
||||
NEWSYM IPXInfoStrR, dw 0
|
||||
NEWSYM GUICMessage, dd 0
|
||||
NEWSYM GUICTimer, dd 0
|
||||
NEWSYM GUIOn, db 0
|
||||
NEWSYM GUIOn2, db 0
|
||||
NEWSYM GUIReset, db 0
|
||||
SECTION .bss
|
||||
WhichRemote resd 1 ; Modem = 1, IPX = 2, TCP/IP = 4
|
||||
Connected resd 1
|
||||
IDCheckPos resd 1
|
||||
|
||||
NEWSYM pl1neten, resb 1
|
||||
NEWSYM pl2neten, resb 1
|
||||
NEWSYM pl3neten, resb 1
|
||||
NEWSYM pl4neten, resb 1
|
||||
NEWSYM pl5neten, resb 1
|
||||
NEWSYM cnetplaybuf, resb 512
|
||||
NEWSYM cnetptrhead, resd 1
|
||||
NEWSYM cnetptrtail, resd 1
|
||||
NEWSYM prevp1net, resd 1
|
||||
NEWSYM prevp2net, resd 1
|
||||
NEWSYM prevp3net, resd 1
|
||||
NEWSYM prevp4net, resd 1
|
||||
NEWSYM prevp5net, resd 1
|
||||
NEWSYM netdelayed, resb 1
|
||||
NEWSYM ChatProgress,resd 1
|
||||
NEWSYM RecvProgress,resd 1
|
||||
NEWSYM IPXInfoStr, resw 1
|
||||
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
|
||||
NEWSYM CurPalSelect, db 0
|
||||
NEWSYM CurPalSelect, resb 1
|
||||
NEWSYM MotionBlur, resb 1
|
||||
|
||||
NEWSYM StartLL, dd 0
|
||||
NEWSYM StartLR, dd 0
|
||||
NEWSYM LatencyVal, times 32 db 0
|
||||
NEWSYM StartLL, resd 1
|
||||
NEWSYM StartLR, resd 1
|
||||
NEWSYM LatencyVal, resb 32
|
||||
|
||||
NEWSYM NetLoadState, db 0
|
||||
NEWSYM NetLoadState, resb 1
|
||||
|
||||
NEWSYM TRVal, dw 0
|
||||
NEWSYM TGVal, dw 0
|
||||
NEWSYM TBVal, dw 0
|
||||
NEWSYM TRVali, dw 0
|
||||
NEWSYM TGVali, dw 0
|
||||
NEWSYM TBVali, dw 0
|
||||
NEWSYM TRVal2, dw 0
|
||||
NEWSYM TGVal2, dw 0
|
||||
NEWSYM TBVal2, dw 0
|
||||
NEWSYM TRVal, resw 1
|
||||
NEWSYM TGVal, resw 1
|
||||
NEWSYM TBVal, resw 1
|
||||
NEWSYM TRVali, resw 1
|
||||
NEWSYM TGVali, resw 1
|
||||
NEWSYM TBVali, resw 1
|
||||
NEWSYM TRVal2, resw 1
|
||||
NEWSYM TGVal2, resw 1
|
||||
NEWSYM TBVal2, resw 1
|
||||
|
||||
SECTION .text
|
||||
|
||||
%macro stim 0
|
||||
%ifdef __MSDOS__
|
||||
@@ -1032,14 +1042,14 @@ NEWSYM ExecGUISaveVars
|
||||
call GUIDeInit
|
||||
%endmacro
|
||||
|
||||
SECTION .data
|
||||
NEWSYM GUIoldhand9o, dd 0
|
||||
NEWSYM GUIoldhand9s, dw 0
|
||||
NEWSYM GUIoldhand8o, dd 0
|
||||
NEWSYM GUIoldhand8s, dw 0
|
||||
GUIt1cc dd 0
|
||||
GUIt1ccSwap db 0
|
||||
GUIskipnextkey42 db 0
|
||||
SECTION .bss
|
||||
NEWSYM GUIoldhand9o, resd 1
|
||||
NEWSYM GUIoldhand9s, resw 1
|
||||
NEWSYM GUIoldhand8o, resd 1
|
||||
NEWSYM GUIoldhand8s, resw 1
|
||||
GUIt1cc resd 1
|
||||
GUIt1ccSwap resb 1
|
||||
GUIskipnextkey42 resb 1
|
||||
|
||||
SECTION .text
|
||||
NEWSYM GUIinit18_2hz
|
||||
@@ -1099,6 +1109,7 @@ NEWSYM GUI36hzcall
|
||||
and byte[GUINetTextm2+2],0Fh
|
||||
ret
|
||||
|
||||
%ifdef __MSDOS__
|
||||
NEWSYM GUIhandler8h
|
||||
cli
|
||||
push ds
|
||||
@@ -1166,6 +1177,7 @@ NEWSYM GUIhandler9h
|
||||
pop ds
|
||||
sti
|
||||
iretd
|
||||
%endif
|
||||
|
||||
%macro loadmenuopen 1
|
||||
mov al,[GUIcmenupos]
|
||||
@@ -1211,7 +1223,9 @@ loadnetopen:
|
||||
loadmenuopen 8
|
||||
ret
|
||||
|
||||
MouseInitOkay db 0
|
||||
SECTION .bss
|
||||
MouseInitOkay resb 1
|
||||
SECTION .text
|
||||
|
||||
LoadDetermine:
|
||||
mov byte[GUIGameMenuData+14],1
|
||||
@@ -1333,7 +1347,9 @@ DrawSnow:
|
||||
.nomore
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
.giftmsg db 'A GIFT TO YOU IN THE OPTIONS!',0
|
||||
SECTION .text
|
||||
|
||||
ProcessSnowVelocity:
|
||||
cmp dword[MsgGiftLeft],0
|
||||
@@ -1388,8 +1404,11 @@ ProcessSnowVelocity:
|
||||
jnz .loop
|
||||
ret
|
||||
|
||||
OkaySC db 0
|
||||
SECTION .bss
|
||||
OkaySC resb 1
|
||||
SECTION .data
|
||||
cstempfname db 'tmpchtsr.___',0
|
||||
SECTION .text
|
||||
|
||||
|
||||
NEWSYM SaveSramData
|
||||
@@ -1465,7 +1484,9 @@ NEWSYM ProcRewind
|
||||
mov dword[eax+8],0
|
||||
.noteq
|
||||
ret
|
||||
.temp dd 0,0
|
||||
section .bss
|
||||
.temp resd 2
|
||||
section .text
|
||||
|
||||
%macro ProcessOneDigit 1
|
||||
cmp dl,9
|
||||
@@ -1500,7 +1521,9 @@ NEWSYM TestSent
|
||||
mov dword[GUICMessage],.message
|
||||
mov dword[GUICTimer],100000
|
||||
ret
|
||||
SECTION .data
|
||||
.message db 0,0,0,0,' ',0,0,0,0,0,0,0
|
||||
SECTION .text
|
||||
|
||||
NEWSYM StartGUI
|
||||
; cmp byte[OSPort],1
|
||||
@@ -1846,12 +1869,14 @@ NEWSYM StartGUI
|
||||
mov byte[GUIcmenupos],0
|
||||
mov byte[GUIcrowpos],0
|
||||
call loadnetopen
|
||||
%ifdef __MSDOS__
|
||||
cmp byte[WhichRemote],1
|
||||
jne .yesdcd
|
||||
call ModemCheckDCD
|
||||
cmp al,1
|
||||
jne near .nostat20
|
||||
.yesdcd
|
||||
%endif
|
||||
|
||||
mov byte[RestoreValues],1
|
||||
pushad
|
||||
@@ -2029,7 +2054,8 @@ NEWSYM StartGUI
|
||||
.nowater2
|
||||
cmp byte[GUIEffect],4
|
||||
jne .nosmoke
|
||||
call DrawSmoke
|
||||
; call DrawSmoke
|
||||
call DrawBurn
|
||||
.nosmoke
|
||||
; call TestSent
|
||||
cmp byte[CNetType],20
|
||||
@@ -2087,6 +2113,7 @@ NEWSYM StartGUI
|
||||
jne near .nomodem
|
||||
.modem
|
||||
call ProcessModem
|
||||
%ifdef __MSDOS__
|
||||
cmp byte[Connected],1
|
||||
je near .nomodem
|
||||
call ModemGetChar
|
||||
@@ -2121,6 +2148,7 @@ NEWSYM StartGUI
|
||||
.skipstat
|
||||
mov dh,0
|
||||
call NetAddChar
|
||||
%endif
|
||||
.nomodem
|
||||
|
||||
cmp dword[GUIEditStringcWin],0
|
||||
@@ -2249,7 +2277,8 @@ NEWSYM StartGUI
|
||||
mov dword[nmirept],0
|
||||
mov dword[nmiprevline],224
|
||||
mov dword[nmistatus],0
|
||||
mov byte[spcnumread],0
|
||||
mov dword[spcnumread],0
|
||||
mov dword[spchalted],-1
|
||||
mov byte[NextLineCache],0
|
||||
mov byte[DSPMem+08h],0
|
||||
mov byte[DSPMem+18h],0
|
||||
@@ -2474,8 +2503,12 @@ NEWSYM StartGUI
|
||||
call WinErrorB
|
||||
jmp continueprog
|
||||
|
||||
CheckSumVal dd 0
|
||||
SECTION .bss
|
||||
CheckSumVal resd 1
|
||||
SECTION .data
|
||||
WrongCheckSum db 10,13,'ROM Data Mismatch',10,13,10,13,0
|
||||
SECTION .text
|
||||
|
||||
|
||||
SRAMDirc:
|
||||
; get LoadDrive/LoadDir
|
||||
@@ -2550,6 +2583,7 @@ guifirsttimemsg:
|
||||
.mousedis2
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
guiftimemsg1 db 'ONE TIME USER REMINDER :',0
|
||||
guiftimemsg2 db 'PLEASE BE SURE TO READ',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
|
||||
guiftimemsg7 db 'ZSNES.FAQ AND README.TXT',0
|
||||
guiftimemsg8 db 'PRESS "Z" TO CONTINUE.',0
|
||||
SECTION .text
|
||||
|
||||
guimustrestartmsg:
|
||||
xor ebx,ebx
|
||||
@@ -2623,11 +2658,13 @@ guimustrestartmsg:
|
||||
mov byte[GUIQuit],1
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
guiqtimemsg1 db 'ZSNES MUST BE RESTARTED',0
|
||||
guiqtimemsg2 db 'TO USE THIS OPTION.',0
|
||||
guiqtimemsg3 db 'THIS PROGRAM WILL NOW',0
|
||||
guiqtimemsg4 db 'EXIT.',0
|
||||
guiqtimemsg8 db 'PRESS ANY KEY.',0
|
||||
SECTION .text
|
||||
|
||||
guiprevideo:
|
||||
xor ebx,ebx
|
||||
@@ -2695,6 +2732,7 @@ guiprevideo:
|
||||
.mousedis2
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
guiprevidmsg1 db 'ZSNES WILL NOW ATTEMPT',0
|
||||
guiprevidmsg2 db 'TO CHANGE YOUR VIDEO',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
|
||||
guiprevidmsg6 db 'MODE WILL BE RESET',0
|
||||
guiprevidmsg7 db 'PRESS ANY KEY',0
|
||||
SECTION .text
|
||||
|
||||
guipostvideo:
|
||||
mov ecx,255*144
|
||||
@@ -2790,8 +2829,10 @@ guipostvideo:
|
||||
mov byte[GUIpclicked],1
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
guipostvidmsg1 db 'VIDEO MODE CHANGED.',0
|
||||
guipostvidmsg2 db 'PRESS ANY KEY',0
|
||||
SECTION .text
|
||||
|
||||
guipostvideofail:
|
||||
mov dword[guipostvidptr],guipostvidmsg3b
|
||||
@@ -2883,13 +2924,16 @@ guipostvideofail:
|
||||
%endif
|
||||
jmp guipostvideo.pressedfail
|
||||
|
||||
SECTION .data
|
||||
guipostvidmsg1b db 'VIDEO MODE CHANGE FAILED.',0
|
||||
guipostvidmsg2b db 'UNABLE TO INIT VESA2:',0
|
||||
guipostvidmsg3b db 'AAAAAAAAAAAAAAAAAAAAAAAAA',0
|
||||
guipostvidmsg4b db 'AAAAAAAAAAAAAAAAAAAAAAAAA',0
|
||||
guipostvidmsg5b db 'AAAAAAAAAAAAAAAAAAAAAAAAA',0
|
||||
guipostvidmsg8b db 'PRESS ANY KEY',0
|
||||
guipostvidptr dd 0
|
||||
SECTION .bss
|
||||
guipostvidptr resd 1
|
||||
SECTION .text
|
||||
|
||||
GUILoadManualDir
|
||||
mov ebx,GUILoadTextA
|
||||
@@ -2982,14 +3026,18 @@ GUILoadManualDir
|
||||
.norefresh
|
||||
ret
|
||||
|
||||
ManualCPtr dd 0
|
||||
ManualStatus db 0
|
||||
SECTION .bss
|
||||
ManualCPtr resd 1
|
||||
ManualStatus resb 1
|
||||
|
||||
NEWSYM MovieCounter, dd 0
|
||||
NEWSYM MovieCounter, resd 1
|
||||
|
||||
SECTION .data
|
||||
UnableMovie2 db 'MUST PLAY WITH SOUND OFF',0
|
||||
UnableMovie3 db 'MUST PLAY WITH SOUND ON',0
|
||||
|
||||
SECTION .text
|
||||
|
||||
MoviePlay:
|
||||
cmp byte[CNetType],20
|
||||
je near .dontplay
|
||||
@@ -3029,7 +3077,8 @@ MoviePlay:
|
||||
mov dword[nmirept],0
|
||||
mov dword[nmiprevline],224
|
||||
mov dword[nmistatus],0
|
||||
mov byte[spcnumread],0
|
||||
mov dword[spcnumread],0
|
||||
mov dword[spchalted],-1
|
||||
mov byte[NextLineCache],0
|
||||
.noextra
|
||||
mov al,[RecData]
|
||||
@@ -3077,12 +3126,15 @@ MoviePlay:
|
||||
pop eax
|
||||
ret
|
||||
|
||||
NEWSYM Totalbyteloaded, dd 0
|
||||
NEWSYM sramsavedis, db 0
|
||||
|
||||
SECTION .bss
|
||||
NEWSYM Totalbyteloaded, resd 1
|
||||
NEWSYM sramsavedis, resb 1
|
||||
|
||||
SECTION .data
|
||||
DevicePtr dd pl1selk,pl2selk,pl3selk,pl4selk,pl5selk
|
||||
|
||||
SECTION .text
|
||||
|
||||
CheckMenuItemHelp:
|
||||
mov al,[GUIcmenupos]
|
||||
mov [GUIpmenupos],al
|
||||
@@ -3370,7 +3422,9 @@ GUITryMenuItem:
|
||||
.nomisc
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
.message1 db 'CONFIGURATION FILES SAVED.',0
|
||||
SECTION .text
|
||||
|
||||
DisplayBoxes:
|
||||
xor esi,esi
|
||||
@@ -3585,8 +3639,9 @@ GUIProcReset:
|
||||
dec byte[GUIwinptr]
|
||||
ret
|
||||
|
||||
LoadDuplicFound db 0
|
||||
|
||||
SECTION .bss
|
||||
LoadDuplicFound resb 1
|
||||
SECTION .text
|
||||
|
||||
%macro GUIDMHelp 4
|
||||
mov byte[GUItextcolor],46
|
||||
@@ -4289,7 +4344,9 @@ GUISetPal:
|
||||
jnz .next
|
||||
ret
|
||||
|
||||
NEWSYM GUICPC, times 256 dw 0
|
||||
SECTION .bss ;ALIGN=32
|
||||
NEWSYM GUICPC, resw 256
|
||||
SECTION .text
|
||||
|
||||
%macro GUIPal16b 4
|
||||
mov ax,%2
|
||||
@@ -4746,9 +4803,11 @@ GUISetPal16:
|
||||
jnz .next
|
||||
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,
|
||||
db 17,18,18,19,20,20,21,22,22,23,24,24,25,26,26,27,28,28,29,30,30,
|
||||
db 31
|
||||
SECTION .text
|
||||
|
||||
GUIBufferData:
|
||||
mov ecx,16384
|
||||
@@ -4906,6 +4965,7 @@ GUIconvpal:
|
||||
mov [cgram],ax
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
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 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 226,86,221,254,72,14,126,180,200,171,85,94,120,124,196,225,150,57,219,158
|
||||
|
||||
SECTION .text
|
||||
|
||||
NEWSYM GuiAsmEnd
|
||||
|
||||
@@ -222,8 +222,10 @@ CheatCodeSearchProcess:
|
||||
mov byte[CopyRamToggle],1
|
||||
ret
|
||||
|
||||
CopyRamToggle db 0
|
||||
FirstSearch db 0
|
||||
SECTION .bss
|
||||
CopyRamToggle resb 1
|
||||
FirstSearch resb 1
|
||||
SECTION .text
|
||||
|
||||
CheatCodeSearchInit:
|
||||
mov byte[CSInputDisplay],'_'
|
||||
@@ -1189,7 +1191,9 @@ decodegg:
|
||||
mov dword[GUIcurrentcheatviewloc],0
|
||||
.noview
|
||||
ret
|
||||
SECTION .data
|
||||
.GG2Norm db 04h,06h,0Dh,0Eh,02h,07h,08h,03h,0Bh,05h,0Ch,09h,0Ah,00h,0Fh,01h
|
||||
SECTION .text
|
||||
|
||||
decodepar:
|
||||
; convert code to number format
|
||||
@@ -1344,10 +1348,12 @@ guicheaterror:
|
||||
mov dword[GUIcurrentcheatwin],1
|
||||
mov byte[GUIpclicked],1
|
||||
ret
|
||||
SECTION .data
|
||||
guicheaterror1 db 'INVALID CODE! YOU',0
|
||||
guicheaterror2 db 'MUST ENTER A VALID',0
|
||||
guicheaterror3 db 'GAME GENIE,PAR, OR',0
|
||||
guicheaterror4 db 'GOLD FINGER CODE.',0
|
||||
guicheaterror5 db 'PRESS ANY KEY.',0
|
||||
guicheatvalrep db 0
|
||||
|
||||
SECTION .bss
|
||||
guicheatvalrep resb 1
|
||||
SECTION .text
|
||||
|
||||
@@ -122,14 +122,17 @@
|
||||
%%noclick
|
||||
%endmacro
|
||||
|
||||
GUIfirstkey dd 0
|
||||
GUIlastkey dd 0
|
||||
NEWSYM GUIkeydelay, dd 0
|
||||
NEWSYM GUIkeydelay2, dd 0
|
||||
GUInextkeydelay dd 0
|
||||
GUIJoyPadnk db 0,0,0,0,0,0,0,0
|
||||
NEWSYM GUIDelayB, db 0
|
||||
UseExtKey db 0
|
||||
SECTION .bss
|
||||
GUIfirstkey resd 1
|
||||
GUIlastkey resd 1
|
||||
NEWSYM GUIkeydelay, resd 1
|
||||
NEWSYM GUIkeydelay2, resd 1
|
||||
GUInextkeydelay resd 1
|
||||
GUIJoyPadnk resb 8
|
||||
NEWSYM GUIDelayB, resb 1
|
||||
UseExtKey resb 1
|
||||
|
||||
SECTION .text
|
||||
|
||||
GUIgetcurrentinput:
|
||||
cmp byte[HoldCommand],2
|
||||
@@ -331,8 +334,10 @@ GUIgetcurrentinput:
|
||||
cmp dh,32
|
||||
jb .noprocess7
|
||||
.ret
|
||||
%ifdef __MSDOS__
|
||||
mov al,dh
|
||||
call ModemSendChar
|
||||
%endif
|
||||
ret
|
||||
.noprocess7
|
||||
cmp dl,27
|
||||
@@ -352,17 +357,21 @@ GUIgetcurrentinput:
|
||||
jmp .nonetwin
|
||||
.yesnet15
|
||||
mov byte[CNetType],0
|
||||
%ifdef __MSDOS__
|
||||
; cmp byte[OSPort],1
|
||||
; je .nodeinitipx
|
||||
call deinitipx
|
||||
.nodeinitipx
|
||||
%endif
|
||||
jmp .closewin
|
||||
.yesnetwin
|
||||
%ifdef __MSDOS__
|
||||
cmp byte[ModemInitStat],0
|
||||
je .nodeinitmodem
|
||||
call DeInitModemC
|
||||
mov byte[ModemInitStat],0
|
||||
.nodeinitmodem
|
||||
%endif
|
||||
mov byte[CNetType],1
|
||||
ret
|
||||
.nonetwin
|
||||
@@ -795,7 +804,9 @@ GUITCPIPKeys:
|
||||
ret
|
||||
|
||||
|
||||
SECTION .data
|
||||
NEWSYM TCPIPPortNum, dd 7845
|
||||
SECTION .text
|
||||
|
||||
GUIOptionKeys:
|
||||
cmp dh,'a'
|
||||
@@ -1158,16 +1169,6 @@ GUIVideoKeys:
|
||||
je .nohiresmode7
|
||||
xor byte[Mode7HiRes16b],1
|
||||
.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'
|
||||
jne .nobilinearfilter
|
||||
xor ebx,ebx
|
||||
@@ -1176,6 +1177,7 @@ GUIVideoKeys:
|
||||
je .nobilinearfilter
|
||||
xor byte[BilinearFilter],1
|
||||
.nobilinearfilter
|
||||
%ifdef __WIN32__
|
||||
cmp dh,'T'
|
||||
jne .notriplebufferwin
|
||||
xor eax,eax
|
||||
@@ -1183,9 +1185,12 @@ GUIVideoKeys:
|
||||
cmp byte[GUITBWVID+eax],0
|
||||
je near .notriplebufferwin
|
||||
xor byte[TripleBufferWin],1
|
||||
mov byte[vsyncon],0
|
||||
mov byte[cfgvsync],0
|
||||
; mov byte[vsyncon],0
|
||||
; mov byte[cfgvsync],0
|
||||
call initDirectDraw
|
||||
.notriplebufferwin
|
||||
%endif
|
||||
%ifdef __MSDOS__
|
||||
cmp dh,'T'
|
||||
jne .notriplebuffer
|
||||
xor ebx,ebx
|
||||
@@ -1193,9 +1198,10 @@ GUIVideoKeys:
|
||||
cmp byte[GUITBVID+ebx],0
|
||||
je .notriplebuffer
|
||||
xor byte[Triplebufen],1
|
||||
mov byte[vsyncon],0
|
||||
mov byte[cfgvsync],0
|
||||
; mov byte[vsyncon],0
|
||||
; mov byte[cfgvsync],0
|
||||
.notriplebuffer
|
||||
%endif
|
||||
cmp dh,'G'
|
||||
jne .nograyscale
|
||||
xor byte[GrayscaleMode],1
|
||||
@@ -1207,10 +1213,11 @@ GUIVideoKeys:
|
||||
mov al,[vsyncon]
|
||||
mov [cfgvsync],al
|
||||
%ifdef __WIN32__
|
||||
mov byte[TripleBufferWin],0
|
||||
; mov byte[TripleBufferWin],0
|
||||
call initDirectDraw
|
||||
%endif
|
||||
%ifdef __MSDOS__
|
||||
mov byte[Triplebufen],0
|
||||
; mov byte[Triplebufen],0
|
||||
%endif
|
||||
.novsync
|
||||
%endif
|
||||
@@ -1226,6 +1233,11 @@ GUISoundKeys:
|
||||
cmp dh,'E'
|
||||
jne .notenablesound
|
||||
xor byte[cfgsoundon],1
|
||||
%ifdef __WIN32__
|
||||
pushad
|
||||
call reInitSound
|
||||
popad
|
||||
%endif
|
||||
.notenablesound
|
||||
%ifdef __MSDOS__
|
||||
cmp dh,'F'
|
||||
@@ -1300,7 +1312,9 @@ GUISoundKeys:
|
||||
%endif
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
.sampratenext db 1,4,5,6,2,3,0,0,0,0
|
||||
SECTION .text
|
||||
|
||||
GUINetMenuKeys1:
|
||||
cmp dh,'a'
|
||||
@@ -1321,22 +1335,26 @@ GUINetMenuKeys1:
|
||||
jne .notmanual
|
||||
mov byte[CNetType],12
|
||||
mov byte[ModemProcess],0
|
||||
%ifdef __MSDOS__
|
||||
cmp byte[ModemInitStat],1
|
||||
je .noinit
|
||||
call InitModem
|
||||
mov byte[ModemInitStat],1
|
||||
.noinit
|
||||
%endif
|
||||
ret
|
||||
.notmanual
|
||||
cmp dh,'W'
|
||||
jne .notwait
|
||||
mov byte[CNetType],10
|
||||
mov byte[ModemProcess],0
|
||||
%ifdef __MSDOS__
|
||||
cmp byte[ModemInitStat],1
|
||||
je .noinit2
|
||||
call InitModem
|
||||
mov byte[ModemInitStat],1
|
||||
.noinit2
|
||||
%endif
|
||||
ret
|
||||
.notwait
|
||||
ret
|
||||
@@ -1357,10 +1375,12 @@ GUIGetInputLine:
|
||||
jne .nodial
|
||||
mov byte[CNetType],11
|
||||
mov byte[ModemProcess],0
|
||||
%ifdef __MSDOS__
|
||||
cmp byte[ModemInitStat],1
|
||||
je .noinit
|
||||
call InitModem
|
||||
mov byte[ModemInitStat],1
|
||||
%endif
|
||||
.noedit
|
||||
ret
|
||||
.noinit
|
||||
@@ -1409,12 +1429,14 @@ GUIGetInputLine:
|
||||
mov [GUIEditStringcLen],eax
|
||||
ret
|
||||
|
||||
GUIEditString dd 0 ; Pointer to string
|
||||
GUIEditStringcLen dd 0 ; Pointer to end of string (done in function)
|
||||
GUIEditStringmLen dd 0 ; Max length of string
|
||||
GUIEditStringLTxt dd 0 ; blink value, should be set to 0 when box selected
|
||||
GUIEditStringLstb dd 0 ; if cursor is placed (set in main function)
|
||||
GUIEditStringcWin dd 0 ; 0 = no text window selected
|
||||
SECTION .bss
|
||||
GUIEditString resd 1 ; Pointer to string
|
||||
GUIEditStringcLen resd 1 ; Pointer to end of string (done in function)
|
||||
GUIEditStringmLen resd 1 ; Max length of string
|
||||
GUIEditStringLTxt resd 1 ; blink value, should be set to 0 when box selected
|
||||
GUIEditStringLstb resd 1 ; if cursor is placed (set in main function)
|
||||
GUIEditStringcWin resd 1 ; 0 = no text window selected
|
||||
SECTION .text
|
||||
|
||||
GUIComboKeys:
|
||||
; Calculate Position
|
||||
@@ -1837,8 +1859,10 @@ InsertSearchCharacter:
|
||||
pop edx
|
||||
ret
|
||||
|
||||
CSOverValue db 0
|
||||
CSCurValue dd 0
|
||||
SECTION .bss
|
||||
CSOverValue resb 1
|
||||
CSCurValue resd 1
|
||||
SECTION .text
|
||||
|
||||
InsertSearchDescription:
|
||||
mov eax,CSDescDisplay
|
||||
@@ -2792,9 +2816,11 @@ GUILoadKeys:
|
||||
call GUILoadData
|
||||
.notdirectload
|
||||
ret
|
||||
.foundval dd 0
|
||||
.numfound dd 0
|
||||
.maxfound dd 0
|
||||
SECTION .bss
|
||||
.foundval resd 1
|
||||
.numfound resd 1
|
||||
.maxfound resd 1
|
||||
SECTION .text
|
||||
|
||||
.dirwin
|
||||
%ifdef __LINUX__
|
||||
|
||||
@@ -166,7 +166,9 @@
|
||||
|
||||
;LGUI
|
||||
|
||||
netlastloaded db 0
|
||||
SECTION .bss
|
||||
netlastloaded resb 1
|
||||
SECTION .text
|
||||
|
||||
GUIloadfilename:
|
||||
cmp byte[CNetType],15
|
||||
@@ -266,7 +268,8 @@ GUIloadfilename:
|
||||
mov dword[nmirept],0
|
||||
mov dword[nmiprevline],224
|
||||
mov dword[nmistatus],0
|
||||
mov byte[spcnumread],0
|
||||
mov dword[spcnumread],0
|
||||
mov dword[spchalted],-1
|
||||
mov byte[NextLineCache],0
|
||||
mov byte[curexecstate],1
|
||||
|
||||
@@ -339,14 +342,12 @@ GUIloadfilename:
|
||||
mov al,2
|
||||
.nopal2
|
||||
mov byte[romispal],0
|
||||
mov word[totlines],262
|
||||
mov word[totlines],263
|
||||
mov dword[MsgCount],120
|
||||
cmp al,1
|
||||
jbe .nopal
|
||||
cmp al,0Dh
|
||||
je .nopal
|
||||
mov byte[romispal],1
|
||||
mov word[totlines],314
|
||||
mov word[totlines],313
|
||||
mov dword[MsgCount],100
|
||||
.nopal
|
||||
call showinfogui
|
||||
@@ -565,7 +566,9 @@ GUILoadData:
|
||||
mov byte[GUIwinorder+eax],0
|
||||
dec byte[GUIwinptr]
|
||||
ret
|
||||
SECTION .data
|
||||
.drivefn db 'A:\temp.tmp',0
|
||||
SECTION .text
|
||||
|
||||
GetNormalEntries2:
|
||||
cmp byte[showallext],1
|
||||
@@ -781,8 +784,10 @@ GetLoadLfn:
|
||||
pop edi
|
||||
ret
|
||||
|
||||
LFNData times 400 db 0
|
||||
LFNHandle dw 0
|
||||
SECTION .bss
|
||||
LFNData resb 400
|
||||
LFNHandle resw 1
|
||||
SECTION .text
|
||||
|
||||
GetLoadNormal:
|
||||
call GetNormalEntries2
|
||||
@@ -1035,8 +1040,11 @@ GetLoadHeader:
|
||||
jnz .loop3
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
.invfile db ' ** INVALID FILE **',0
|
||||
fnameheadtemp times 22 db 0
|
||||
SECTION .bss
|
||||
fnameheadtemp resb 22
|
||||
SECTION .text
|
||||
|
||||
GetNormalDirEntries2:
|
||||
GUIGetDir2
|
||||
@@ -1090,7 +1098,9 @@ GetLoadDirNormallfn:
|
||||
pop edi
|
||||
ret
|
||||
|
||||
Win95Failed db 0
|
||||
SECTION .bss
|
||||
Win95Failed resb 1
|
||||
SECTION .text
|
||||
|
||||
NEWSYM GetCurDir
|
||||
; get Drive/Dir
|
||||
@@ -1400,16 +1410,19 @@ GUIGetDirs:
|
||||
%endif
|
||||
ret
|
||||
|
||||
BubbleSorted db 0
|
||||
GUIcurrentfilewin dd 0
|
||||
GUIcurrentviewloc dd 0
|
||||
GUIcurrentcursloc dd 0
|
||||
GUIcurrentdirviewloc dd 0
|
||||
GUIcurrentdircursloc dd 0
|
||||
GUIdirStartLoc dd 0
|
||||
GUInumentries dd 0
|
||||
GUIdirentries dd 0
|
||||
GUIfileentries dd 0
|
||||
SECTION .bss
|
||||
BubbleSorted resb 1
|
||||
GUIcurrentfilewin resd 1
|
||||
GUIcurrentviewloc resd 1
|
||||
GUIcurrentcursloc resd 1
|
||||
GUIcurrentdirviewloc resd 1
|
||||
GUIcurrentdircursloc resd 1
|
||||
GUIdirStartLoc resd 1
|
||||
GUInumentries resd 1
|
||||
GUIdirentries resd 1
|
||||
GUIfileentries resd 0
|
||||
|
||||
SECTION .data
|
||||
%ifdef __LINUX__
|
||||
NEWSYM GUIsmcfind, db '*.[sS][mM][cC]',0
|
||||
NEWSYM GUIsfcfind, db '*.[sS][fF][cC]',0
|
||||
@@ -1444,8 +1457,12 @@ NEWSYM GUIfindall, db '*',0
|
||||
GUIfindDIR db '*.*',0
|
||||
NEWSYM GUIfindall, db '*.*',0
|
||||
%endif
|
||||
|
||||
SECTION .data
|
||||
NEWSYM DTALoc, times 2048+32 db 0
|
||||
|
||||
SECTION .text
|
||||
|
||||
; Routines to load from the Quick Menu
|
||||
loadquickfname:
|
||||
pushad
|
||||
@@ -1622,4 +1639,7 @@ loadquickfname:
|
||||
.failed
|
||||
pop eax
|
||||
ret
|
||||
.temp times 256 dd 0
|
||||
|
||||
SECTION .bss
|
||||
.temp resd 256
|
||||
SECTION .text
|
||||
|
||||
@@ -90,7 +90,8 @@ MovieRecord:
|
||||
mov dword[nmirept],0
|
||||
mov dword[nmiprevline],224
|
||||
mov dword[nmistatus],0
|
||||
mov byte[spcnumread],0
|
||||
mov dword[spcnumread],0
|
||||
mov dword[spchalted],-1
|
||||
mov byte[NextLineCache],0
|
||||
mov dword[PJoyAOrig],0
|
||||
mov dword[PJoyBOrig],0
|
||||
@@ -114,12 +115,15 @@ MovieRecord:
|
||||
.dontrecord
|
||||
ret
|
||||
|
||||
MovieRecordWinVal db 0
|
||||
NEWSYM MovieProcessing, db 0
|
||||
NEWSYM MovieFileHand, dw 0
|
||||
NEWSYM RepeatFrame, db 0
|
||||
NEWSYM RecData, times 16 db 0
|
||||
NEWSYM NoPictureSave, db 0
|
||||
SECTION .bss
|
||||
MovieRecordWinVal resb 1
|
||||
NEWSYM MovieProcessing, resb 1
|
||||
NEWSYM MovieFileHand, resw 1
|
||||
NEWSYM RepeatFrame, resb 1
|
||||
NEWSYM RecData, resb 16
|
||||
NEWSYM NoPictureSave, resb 1
|
||||
|
||||
SECTION .text
|
||||
|
||||
SkipMovie:
|
||||
mov byte[MovieRecordWinVal],0
|
||||
@@ -190,6 +194,7 @@ CalibrateDispB:
|
||||
call WaitForKey
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
guicalberror1 db 'PRESS THE TOP LEFT',0
|
||||
guicalberror2 db 'CORNER AND PRESS A',0
|
||||
guicalberror3 db 'BUTTON OR KEY',0
|
||||
@@ -197,6 +202,7 @@ guicalberror4 db 'PRESS THE BOTTOM',0
|
||||
guicalberror5 db 'RIGHT CORNER AND',0
|
||||
guicalberror6 db 'PRESS A BUTTON OR',0
|
||||
guicalberror7 db 'KEY',0
|
||||
SECTION .text
|
||||
|
||||
|
||||
SetAllKeys:
|
||||
@@ -247,7 +253,9 @@ SetAllKeys:
|
||||
dec ecx
|
||||
jnz .loop
|
||||
ret
|
||||
SECTION .data
|
||||
.ordercalb dd 2,3,4,5,1,0,7,10,6,9,8,11
|
||||
SECTION .text
|
||||
|
||||
CalibrateDev1:
|
||||
xor eax,eax
|
||||
@@ -392,10 +400,12 @@ CalibrateDev1:
|
||||
mov [JoyMaxY209],eax
|
||||
mov [CalibYmax209],eax
|
||||
ret
|
||||
.joyblx dd 0
|
||||
.joybly dd 0
|
||||
.joybcx dd 0
|
||||
.joybcy dd 0
|
||||
SECTION .bss
|
||||
.joyblx resd 1
|
||||
.joybly resd 1
|
||||
.joybcx resd 1
|
||||
.joybcy resd 1
|
||||
SECTION .text
|
||||
|
||||
|
||||
SetDevice:
|
||||
|
||||
@@ -23,10 +23,12 @@ EXTSYM CheckScreenSaver
|
||||
EXTSYM MinimizeWindow
|
||||
%endif
|
||||
|
||||
lastmouseholded db 0
|
||||
mousebuttonstat dw 0
|
||||
MouseMoveOkay db 0
|
||||
LastHoldEnable db 0
|
||||
SECTION .bss
|
||||
lastmouseholded resb 1
|
||||
mousebuttonstat resw 1
|
||||
MouseMoveOkay resb 1
|
||||
LastHoldEnable resb 1
|
||||
SECTION .text
|
||||
|
||||
ProcessMouse:
|
||||
; Process holds
|
||||
@@ -832,6 +834,9 @@ GUIProcVideo:
|
||||
je .failed2
|
||||
mov dword[GUIkeydelay],0
|
||||
ret
|
||||
.fullsc
|
||||
mov [PrevFSMode],al
|
||||
ret
|
||||
.failed
|
||||
mov byte[videotroub],0
|
||||
mov al,[.prevvid]
|
||||
@@ -851,7 +856,9 @@ GUIProcVideo:
|
||||
call GUISetPal
|
||||
mov dword[GUIkeydelay],0
|
||||
ret
|
||||
.prevvid db 0
|
||||
SECTION .bss
|
||||
.prevvid resb 1
|
||||
SECTION .text
|
||||
|
||||
NEWSYM SwitchFullScreen
|
||||
pushad
|
||||
@@ -1007,6 +1014,43 @@ GUIWinClicked:
|
||||
%%noclick
|
||||
%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
|
||||
cmp eax,%1+1
|
||||
jl %%noclick
|
||||
@@ -1108,6 +1152,29 @@ GUIWinClicked:
|
||||
%%noclick
|
||||
%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
|
||||
cmp eax,%1+1
|
||||
jl %%noclick
|
||||
@@ -1443,11 +1510,13 @@ GUIWinClicked:
|
||||
%%nolower
|
||||
%endmacro
|
||||
|
||||
GUIlastdispval dd 0
|
||||
GUIdispmode dd 0
|
||||
GUIlastypos dd 0
|
||||
GUIlastcpos dd 0
|
||||
GUIlastvpos dd 0
|
||||
SECTION .bss
|
||||
GUIlastdispval resd 1
|
||||
GUIdispmode resd 1
|
||||
GUIlastypos resd 1
|
||||
GUIlastcpos resd 1
|
||||
GUIlastvpos resd 1
|
||||
SECTION .text
|
||||
|
||||
%macro GUISlidebarImpl 10 ; x1,y1,x2,y2,GUI?StA,ScrnSize,ViewLoc,CursLoc,Entries,win#
|
||||
mov dword[GUIdispmode],0
|
||||
@@ -2243,7 +2312,7 @@ DisplayGUIVideoClick:
|
||||
.nocheckboxttb
|
||||
GUIClickCButton 11,183,byte[GrayscaleMode]
|
||||
%ifdef __WIN32__
|
||||
GUIClickCButtonT 115,183,byte[vsyncon],byte[TripleBufferWin]
|
||||
GUIClickCButtonf 115,183,byte[vsyncon],initDirectDraw
|
||||
%endif
|
||||
%ifdef __MSDOS__
|
||||
GUIClickCButtonT 115,183,byte[vsyncon],byte[Triplebufen]
|
||||
@@ -2251,16 +2320,9 @@ DisplayGUIVideoClick:
|
||||
xor ebx,ebx
|
||||
mov bl,[cvidmode]
|
||||
cmp byte[GUIM7VID+ebx],0
|
||||
je .nocheckboxm7
|
||||
je .nocheckboxtm7
|
||||
GUIClickCButton5 11,173,byte[Mode7HiRes16b],1
|
||||
.nocheckboxm7
|
||||
%ifndef __MSDOS__
|
||||
mov bl,[cvidmode]
|
||||
cmp byte[GUIMBVID+ebx],0
|
||||
je .nocheckboxmb
|
||||
GUIClickCButton5 11,173,byte[MotionBlur],1
|
||||
.nocheckboxmb
|
||||
%endif
|
||||
.nocheckboxtm7
|
||||
xor ebx,ebx
|
||||
mov bl,[cvidmode]
|
||||
cmp byte[GUIHSVID+ebx],0
|
||||
@@ -2273,7 +2335,7 @@ DisplayGUIVideoClick:
|
||||
mov bl,[cvidmode]
|
||||
cmp byte[GUITBWVID+ebx],0
|
||||
je near .notriplebufferwin
|
||||
GUIClickCButtonT 11,123,byte[TripleBufferWin],byte[vsyncon]
|
||||
GUIClickCButtonf 11,123,byte[TripleBufferWin],initDirectDraw
|
||||
.notriplebufferwin
|
||||
%endif
|
||||
xor ebx,ebx
|
||||
@@ -2320,15 +2382,17 @@ DisplayGUIVideoClick:
|
||||
xor al,al
|
||||
ret
|
||||
|
||||
GUINumValue dd 0
|
||||
GUIBlankVar dd 0
|
||||
SECTION .bss
|
||||
GUINumValue resd 1
|
||||
GUIBlankVar resd 1
|
||||
SECTION .text
|
||||
|
||||
DisplayGUISoundClick:
|
||||
mov eax,[GUImouseposx]
|
||||
sub eax,[GUIwinposx+6*4]
|
||||
mov edx,[GUImouseposy]
|
||||
sub edx,[GUIwinposy+6*4]
|
||||
GUIClickCButton 11,21,byte[cfgsoundon]
|
||||
GUIClickCButtonf 11,21,byte[cfgsoundon],reInitSound
|
||||
%ifdef __MSDOS__
|
||||
GUIClickCButton 102,21,byte[cfgforce8b]
|
||||
%endif
|
||||
@@ -2404,7 +2468,9 @@ DisplayGUISoundClick:
|
||||
.nomovebar
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
sampratenext db 1,4,5,6,2,3,0,0,0,0
|
||||
SECTION .text
|
||||
|
||||
%macro GUIBoxVar 6
|
||||
cmp eax,%1
|
||||
@@ -2600,9 +2666,11 @@ guipresstest:
|
||||
; pop ebx
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
guipresstext1 db 'ENTER THE KEY',0
|
||||
guipresstext2 db 'OR BUTTON TO USE',0
|
||||
guipresstext3 db '(ESC TO CLEAR)',0
|
||||
SECTION .text
|
||||
|
||||
guipresstestb:
|
||||
call GUIUnBuffer
|
||||
@@ -2674,6 +2742,7 @@ guipresstestb:
|
||||
; pop ebx
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
guipresstext3b db '(ESC TO SKIP)',0
|
||||
guipresstext4b db 'FOR UP ',0
|
||||
db 'FOR DOWN ',0
|
||||
@@ -2687,8 +2756,10 @@ db 'FOR X (TOP BUTTON) ',0
|
||||
db 'FOR Y (LEFT BUTTON) ',0
|
||||
db 'FOR THE L BUTTON ',0
|
||||
db 'FOR THE R BUTTON ',0
|
||||
guipressptr dd 0
|
||||
guicpressptr dd 0
|
||||
SECTION .bss
|
||||
guipressptr resd 1
|
||||
guicpressptr resd 1
|
||||
SECTION .text
|
||||
|
||||
DisplayGameOptnsClick:
|
||||
; Process boxes
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
; GUI NetPlay Routines (Modem,IPX,UDP+TCP/IP)
|
||||
|
||||
ProcessModem:
|
||||
%ifdef __WIN32__
|
||||
cmp byte[ModemProcess],40
|
||||
jne near .noprocess40
|
||||
cmp byte[maxskip],3
|
||||
@@ -28,7 +29,7 @@ ProcessModem:
|
||||
mov byte[frameskip],0
|
||||
mov byte[Latencytochange],3
|
||||
mov byte[Latency],3
|
||||
mov byte[IPXSearchval],0
|
||||
; mov byte[IPXSearchval],0
|
||||
mov byte[RemoteDisconnect],0
|
||||
mov byte[HoldCommand],1
|
||||
mov byte[RemoteCommand],1
|
||||
@@ -63,6 +64,7 @@ ProcessModem:
|
||||
call .writestr
|
||||
mov byte[ModemProcess],42
|
||||
ret
|
||||
SECTION .data
|
||||
.tcpipdones db 'DONE',13,10,13,10,'WAITING FOR CLIENT...',0
|
||||
.tcpipdonec db 'DONE',13,10,13,10,'CONNECTING TO SERVER...',0
|
||||
.tcpipdones2 db 13,10,13,10,'FOUND CLIENT.',0
|
||||
@@ -77,6 +79,8 @@ ProcessModem:
|
||||
.errorinit db 'FAILED NET INIT',0
|
||||
.errorinit2 db 'CANNOT START SERVER',0
|
||||
.errorinit3 db 'CANNOT CONNECT',0
|
||||
SECTION .text
|
||||
|
||||
.noprocess40
|
||||
cmp byte[ModemProcess],41
|
||||
jne near .noprocess41
|
||||
@@ -87,7 +91,7 @@ ProcessModem:
|
||||
mov byte[frameskip],0
|
||||
mov byte[Latencytochange],3
|
||||
mov byte[Latency],3
|
||||
mov byte[IPXSearchval],0
|
||||
; mov byte[IPXSearchval],0
|
||||
mov byte[RemoteDisconnect],0
|
||||
mov byte[HoldCommand],1
|
||||
mov byte[RemoteCommand],1
|
||||
@@ -226,6 +230,8 @@ ProcessModem:
|
||||
mov byte[ModemProcess],66
|
||||
ret
|
||||
.noprocess47
|
||||
%endif
|
||||
%ifdef __MSDOS__
|
||||
cmp byte[ModemProcess],30
|
||||
jne near .noprocess30
|
||||
mov byte[Latencytochange],2
|
||||
@@ -477,6 +483,7 @@ ProcessModem:
|
||||
.nocdc7
|
||||
ret
|
||||
.noprocess7
|
||||
%endif
|
||||
|
||||
; Connect initialization
|
||||
cmp byte[ModemProcess],64
|
||||
@@ -746,7 +753,9 @@ ProcessModem:
|
||||
mov dl,[.hexval+edx]
|
||||
call NetAddChar
|
||||
ret
|
||||
SECTION .data
|
||||
.hexval db '0123456789ABCDEF'
|
||||
%ifdef __MSDOS__
|
||||
.unableinit db 'CANNOT INIT DRIVER!',13,10,0
|
||||
.init db 'ZSNES MODEM TERMINAL',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
|
||||
.ata db 'ATA',13,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
|
||||
.invsnd db 'INVALID SOUND SETTING!',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
|
||||
.localid db 'LOCAL ID : ',0
|
||||
.remoteid db 'REMOTE ID : ',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
|
||||
.tcpipserv db 'INIT SERVER ... ',0
|
||||
.tcpipclie db 'INIT CLIENT ... ',0
|
||||
InitStr1Done db 0
|
||||
%endif
|
||||
SECTION .bss
|
||||
InitStr1Done resb 1
|
||||
SECTION .text
|
||||
|
||||
NEWSYM PreparePacket
|
||||
%ifdef __MSDOS__
|
||||
call PreparePacketIPX
|
||||
%endif
|
||||
cmp byte[WhichRemote],4
|
||||
jne .nottcpip
|
||||
call TCPIPPreparePacket
|
||||
@@ -779,7 +795,9 @@ NEWSYM PreparePacket
|
||||
ret
|
||||
|
||||
NEWSYM SendPacket
|
||||
%ifdef __MSDOS__
|
||||
call SendPacketIPX
|
||||
%endif
|
||||
cmp byte[WhichRemote],4
|
||||
jne .nottcpip
|
||||
call TCPIPSendPacket
|
||||
@@ -787,7 +805,9 @@ NEWSYM SendPacket
|
||||
ret
|
||||
|
||||
NEWSYM SendPacketUDP
|
||||
%ifdef __MSDOS__
|
||||
call SendPacketIPX
|
||||
%endif
|
||||
cmp byte[WhichRemote],4
|
||||
jne .nottcpip
|
||||
call TCPIPSendPacketUDP
|
||||
@@ -807,15 +827,19 @@ NEWSYM WritetochatBuffer
|
||||
.nomore
|
||||
ret
|
||||
|
||||
NEWSYM RemoteCommand, db 0
|
||||
HoldCommand db 0
|
||||
SECTION .bss
|
||||
NEWSYM RemoteCommand, resb 1
|
||||
HoldCommand resb 1
|
||||
SECTION .text
|
||||
|
||||
RemoteDeInit:
|
||||
%ifdef __MSDOS__
|
||||
cmp byte[ModemInitStat],0
|
||||
je .nodeinitmodem
|
||||
call DeInitModemC
|
||||
mov byte[ModemInitStat],0
|
||||
.nodeinitmodem
|
||||
%endif
|
||||
mov byte[CNetType],1
|
||||
cmp byte[WhichRemote],2
|
||||
jne .noipx
|
||||
@@ -850,9 +874,12 @@ Checkfileexist:
|
||||
.failed
|
||||
mov eax,1
|
||||
ret
|
||||
.temp db 0
|
||||
SECTION .bss
|
||||
.temp resb 1
|
||||
SECTION .text
|
||||
|
||||
ProcessRemoteCommand:
|
||||
%ifdef __MSDOS__
|
||||
cmp byte[WhichRemote],1
|
||||
jne .notmodem
|
||||
push edx
|
||||
@@ -861,6 +888,7 @@ ProcessRemoteCommand:
|
||||
cmp al,1
|
||||
jne near .nomulti
|
||||
.notmodem
|
||||
%endif
|
||||
cmp byte[RemoteDisconnect],1
|
||||
je near .nomulti
|
||||
call ProcRewind
|
||||
@@ -1379,6 +1407,7 @@ ProcessRemoteCommand:
|
||||
mov byte[RemoteCommand],1
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
.chatinitial db '>',0
|
||||
.actinitial db '*',0
|
||||
.actinitial2 db ' ',0
|
||||
@@ -1390,6 +1419,7 @@ ProcessRemoteCommand:
|
||||
.strinvalid db '** INVALID NICK **',13,10,0
|
||||
.strtoolong db '** NICK IS TOO LONG **',13,10,0
|
||||
.nickchangeb db ' IS NOW KNOWN AS ',0
|
||||
SECTION .text
|
||||
|
||||
transfersram:
|
||||
cmp byte[SFXSRAM],0
|
||||
@@ -1528,6 +1558,7 @@ NEWSYM RemoteGetEAX
|
||||
|
||||
|
||||
NEWSYM RemoteSendChar
|
||||
%ifdef __MSDOS__
|
||||
cmp byte[WhichRemote],1
|
||||
jne .nomodem
|
||||
call ModemSendChar
|
||||
@@ -1536,6 +1567,7 @@ NEWSYM RemoteSendChar
|
||||
jne .noipx
|
||||
call ipxsendchar
|
||||
.noipx
|
||||
%endif
|
||||
cmp byte[WhichRemote],4
|
||||
jne .notcpip
|
||||
call TCPIPStoreByte
|
||||
@@ -1543,6 +1575,7 @@ NEWSYM RemoteSendChar
|
||||
ret
|
||||
|
||||
NEWSYM RemoteGetChar
|
||||
%ifdef __MSDOS
|
||||
cmp byte[WhichRemote],1
|
||||
jne .nomodem
|
||||
call ModemGetChar
|
||||
@@ -1551,12 +1584,14 @@ NEWSYM RemoteGetChar
|
||||
jne .noipx
|
||||
call ipxgetchar
|
||||
.noipx
|
||||
%endif
|
||||
cmp byte[WhichRemote],4
|
||||
jne .notcpip
|
||||
call TCPIPGetByte
|
||||
.notcpip
|
||||
ret
|
||||
|
||||
%ifdef __MSDOS__
|
||||
ModemSendStr:
|
||||
.loop
|
||||
mov al,[esi]
|
||||
@@ -1567,13 +1602,17 @@ ModemSendStr:
|
||||
jmp .loop
|
||||
.nomore
|
||||
ret
|
||||
%endif
|
||||
|
||||
NetLoadHandle dw 0
|
||||
NetStateSize dd 0
|
||||
NetStateTotal dd 0
|
||||
NetStateQuit db 0
|
||||
NetStateBuffer times 2048 db 0
|
||||
SECTION .bss
|
||||
NetLoadHandle resw 1
|
||||
NetStateSize resd 1
|
||||
NetStateTotal resd 1
|
||||
NetStateQuit resb 1
|
||||
NetStateBuffer resb 2048
|
||||
SECTION .data
|
||||
Netfname db 'nettemp.zst',0
|
||||
SECTION .text
|
||||
|
||||
NetLoadStuff:
|
||||
call loadnetopen
|
||||
@@ -1783,6 +1822,7 @@ loadstaterecv:
|
||||
.notzero
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
StateLoadedOk db 10,13,'STATE LOADED.',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
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
GUILoadText1 db 'SELECT FILE TO LOAD :',0
|
||||
GUILoadText2 db 'DISPLAY TYPE :',0
|
||||
GUILoadText3 db 'NORMAL 8.3 FORMAT',0
|
||||
@@ -819,9 +820,12 @@ GUILoadTextC db 'NTSC',0
|
||||
GUILoadTextD db 'PAL',0
|
||||
GUILoadTextE db 'LOROM',0
|
||||
GUILoadTextF db 'HIROM',0
|
||||
GUILStA dd 0,0,0
|
||||
GUILStB dd 0,0,0
|
||||
GUILoadPos db 0
|
||||
|
||||
SECTION .bss
|
||||
GUILStA resd 3
|
||||
GUILStB resd 3
|
||||
GUILoadPos resb 1
|
||||
SECTION .text
|
||||
|
||||
DisplayGUIReset:
|
||||
GUIDrawWindowBox 12,GUIResetDisp
|
||||
@@ -854,9 +858,11 @@ DisplayGUIReset:
|
||||
GUIOuttextwin2 12,5,15,GUIResetText1
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
GUIResetText1 db 'RESET : ARE YOU SURE ?',0
|
||||
GUIResetText2 db 'YES',0
|
||||
GUIResetText3 db 'NO',0
|
||||
SECTION .text
|
||||
|
||||
DisplayGUIStates:
|
||||
GUIDrawWindowBox 14,GUIStatesDisp
|
||||
@@ -901,11 +907,13 @@ DisplayGUIStates:
|
||||
.save2
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
GUIStatesText1 db 'OKAY TO SAVE STATE?',0
|
||||
GUIStatesText2 db 'OKAY TO LOAD STATE?',0
|
||||
GUIStatesText3 db 'YES',0
|
||||
GUIStatesText4 db 'NO',0
|
||||
GUIStatesText5 db 0
|
||||
SECTION .text
|
||||
|
||||
DisplayGUIChoseSave:
|
||||
GUIDrawWindowBox 2,GUIStateSelDisp
|
||||
@@ -980,8 +988,10 @@ DisplayGUIChoseSave:
|
||||
GUIDisplayButtonHole 2,90,43,byte[GUIChoseSaveText2],'9'
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
GUIChoseSaveText1 db 'SELECT SAVE SLOT :',0
|
||||
GUIChoseSaveText2 db '-',0
|
||||
SECTION .text
|
||||
|
||||
%macro DGOptnsDrawBox 3
|
||||
mov eax,dword[GUIwinposx+9*4]
|
||||
@@ -1333,6 +1343,7 @@ DisplayGUIInput:
|
||||
DrawGUIWinBox 3,5,78,107,78,dl
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
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
|
||||
GUIInputRefP dd pl1contrl,pl2contrl,pl3contrl,pl4contrl,pl5contrl
|
||||
@@ -1363,10 +1374,13 @@ GUIInputTextd db 'UL',0
|
||||
GUIInputTexte db 'UR',0
|
||||
GUIInputTextf db 'DL',0
|
||||
GUIInputTextg db 'DR',0
|
||||
GUIIStA dd 0,0,0
|
||||
|
||||
GUIcurrentinputviewloc dd 0
|
||||
GUIcurrentinputcursloc dd 0
|
||||
SECTION .bss
|
||||
GUIIStA resd 3
|
||||
|
||||
GUIcurrentinputviewloc resd 1
|
||||
GUIcurrentinputcursloc resd 1
|
||||
SECTION .text
|
||||
|
||||
DisplayGUIOption:
|
||||
; 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
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
GUIOptionText1 db 'FRAME RATE',0
|
||||
GUIOptionText2 db 'AUTO FRAME RATE',0
|
||||
GUIOptionText3 db 'MAX FRAME SKIP',0
|
||||
@@ -1614,6 +1629,7 @@ GUIOptionTextL db 'USE ALTERNATE TIMER',0
|
||||
GUIOptionText8 db '-',0
|
||||
GUIOptionText9 db '+',0
|
||||
GUIOptionText10 db '-',0
|
||||
SECTION .text
|
||||
|
||||
DisplayGUIVideo:
|
||||
cmp byte[TripBufAvail],0
|
||||
@@ -1742,13 +1758,6 @@ DisplayGUIVideo:
|
||||
je .notext8
|
||||
GUIOuttextwin2u 5,26,178,GUIVideoText8b,0
|
||||
.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
|
||||
%ifndef __LINUX__
|
||||
GUIOuttextwin2u 5,130,188,GUIVideoText9,0
|
||||
@@ -1850,13 +1859,6 @@ DisplayGUIVideo:
|
||||
je .notext8b
|
||||
GUIOuttextwin2 5,25,177,GUIVideoText8b
|
||||
.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
|
||||
%ifndef __LINUX__
|
||||
GUIOuttextwin2 5,129,187,GUIVideoText9
|
||||
@@ -1982,18 +1984,6 @@ DisplayGUIVideo:
|
||||
.nocheckbox1m72
|
||||
GUIDisplayIconWin 5,11,173,[GUITemp]
|
||||
.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
|
||||
cmp byte[GrayscaleMode],0
|
||||
je .nocheckboxm73
|
||||
@@ -2147,6 +2137,7 @@ DisplayGUIVideo:
|
||||
GUIOuttextwin2 5,48,195,[GUITemp]
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
GUIVideoText1 db 'VIDEO MODES :',0
|
||||
GUIVideoText2 db 'FULL SCANLINES',0
|
||||
GUIVideoTextb db 'SCANLINES:',0
|
||||
@@ -2164,7 +2155,6 @@ GUIVideoText5b db 'WIDE SCREEN',0 ; -c
|
||||
GUIVideoText6 db 'SMALL SCREEN',0 ; -c
|
||||
GUIVideoText7 db 'TRIPLE BUFFERING',0 ; -c
|
||||
GUIVideoText8b db 'HI-RESOLUTION MODE7',0 ; -c
|
||||
GUIVideoText8b2 db 'MOTION BLUR',0 ; -c
|
||||
GUIVideoText8c db 'GRAYSCALE MODE',0 ; -c
|
||||
GUIVideoText8 db 'SET',0 ; set button
|
||||
GUIVideoText9 db 'VSYNC',0 ; -c
|
||||
@@ -2173,10 +2163,14 @@ GUIVideoTextw0 db 'LEGEND:',0
|
||||
GUIVideoTextw1 db ' S = SCALED TO FIT SCREEN',0
|
||||
GUIVideoTextw2 db ' R = MATCHED SCREEN RATIO',0
|
||||
GUIVideoTextw3 db ' D = ALLOW 2XSAI,HIRES,ETC',0
|
||||
GUIVStA dd 0,0,0
|
||||
|
||||
GUIcurrentvideoviewloc dd 0
|
||||
GUIcurrentvideocursloc dd 0
|
||||
SECTION .bss
|
||||
GUIVStA resd 3
|
||||
|
||||
GUIcurrentvideoviewloc resd 1
|
||||
GUIcurrentvideocursloc resd 1
|
||||
|
||||
SECTION .text
|
||||
|
||||
|
||||
DisplayGUISound:
|
||||
@@ -2433,6 +2427,7 @@ DisplayGUISound:
|
||||
GUIOuttextwin2 6,118,88,[GUITemp]
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
GUISoundText1 db 'ENABLE SOUND',0
|
||||
GUISoundText1b db 'FORCE 8-BIT',0
|
||||
GUISoundText2 db 'SAMPLING RATE :',0
|
||||
@@ -2461,7 +2456,7 @@ GUISoundTextT db 'LOWPASS :',0
|
||||
GUISoundTextU db 'SIMPLE',0
|
||||
GUISoundTextV db 'DYNAMIC',0
|
||||
GUISoundTextW db 'HI QUALITY',0
|
||||
|
||||
SECTION .text
|
||||
|
||||
|
||||
DisplayGUICheatConv:
|
||||
@@ -2775,6 +2770,7 @@ DisplayGUICheat:
|
||||
GUIDisplayIconWin 7,11,186,[GUITemp]
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
GUICheatText1 db 'ENTER CODE :',0
|
||||
GUICheatText2 db '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
|
||||
GUICheatTextG db ' INSERT THE "-" FOR GAME GENIE CODES',0
|
||||
GUICheatTextJ db 'AUTO-LOAD .CHT FILE AT GAME LOAD',0
|
||||
GUICheatPosA db 0
|
||||
GUICheatPosB db 0
|
||||
GUICStA dd 0,0,0
|
||||
GUIcurrentcheatviewloc dd 0
|
||||
GUIcurrentcheatcursloc dd 0
|
||||
GUIcurrentcheatwin dd 0
|
||||
ccheatnpos dd 0
|
||||
ccheatnleft dd 0
|
||||
SECTION .bss
|
||||
GUICheatPosA resb 1
|
||||
GUICheatPosB resb 1
|
||||
GUICStA resd 3
|
||||
GUIcurrentcheatviewloc resd 1
|
||||
GUIcurrentcheatcursloc resd 1
|
||||
GUIcurrentcheatwin resd 1
|
||||
ccheatnpos resd 1
|
||||
ccheatnleft resd 1
|
||||
SECTION .text
|
||||
|
||||
DrawWindowSearch:
|
||||
GUIDrawWindowBox 13,GUISearchDisp
|
||||
@@ -3440,29 +3438,35 @@ Cheatmodeadd:
|
||||
;CheatSrcByteSize db 0
|
||||
;CheatSrcByteBase db 0
|
||||
;CheatSrcSearchType db 0
|
||||
CheatWinMode db 0
|
||||
CheatSearchStatus db 0
|
||||
CheatCompareValue dd 0
|
||||
NumCheatSrc dd 0
|
||||
GUIcurrentchtsrcviewloc dd 0
|
||||
GUIcurrentchtsrccursloc dd 0
|
||||
CSStartEntry dd 0
|
||||
CSCurEntry dd 0
|
||||
CheatSearchXPos dd 0
|
||||
CheatSearchYPos dd 0
|
||||
CheatLooped dd 0
|
||||
ccheatnleftb dd 0
|
||||
CurCStextpos dd 0
|
||||
SECTION .bss
|
||||
CheatWinMode resb 1
|
||||
CheatSearchStatus resb 1
|
||||
CheatCompareValue resd 1
|
||||
NumCheatSrc resd 1
|
||||
GUIcurrentchtsrcviewloc resd 1
|
||||
GUIcurrentchtsrccursloc resd 1
|
||||
CSStartEntry resd 1
|
||||
CSCurEntry resd 1
|
||||
CheatSearchXPos resd 1
|
||||
CheatSearchYPos resd 1
|
||||
CheatLooped resd 1
|
||||
ccheatnleftb resd 1
|
||||
CurCStextpos resd 1
|
||||
|
||||
SECTION .data
|
||||
SrcMask dd 0FFh,0FFFFh,0FFFFFFh,0FFFFFFFFh
|
||||
CSInputDisplay 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
|
||||
GUISrcText2 db 'HAS NOT BEEN',0
|
||||
GUISrcText3 db 'IMPLEMENTED YET',0
|
||||
@@ -3500,6 +3504,7 @@ GUICSrcTextV db 'ENTER NEW VALUE:',0
|
||||
GUICSrcTextW db 'ENTER CHEAT DESCRIPTION:',0
|
||||
GUICSrcTextX db 'PAR CODE EQUIVALENT:',0
|
||||
GUICSrcTextY db 'USE ONLY UPPER BYTE',0
|
||||
SECTION .text
|
||||
|
||||
|
||||
NEWSYM NetAddChar ; dl = color, dh = char
|
||||
@@ -3621,13 +3626,16 @@ NEWSYM NetAddChar ; dl = color, dh = char
|
||||
ret
|
||||
|
||||
|
||||
CCursLoc dd 0
|
||||
CViewLoc dd 0
|
||||
NViewLoc dd 0
|
||||
TViewLoc dd 0
|
||||
section .bss
|
||||
CCursLoc resd 1
|
||||
CViewLoc resd 1
|
||||
NViewLoc resd 1
|
||||
TViewLoc resd 1
|
||||
section .text
|
||||
|
||||
|
||||
DisplayNetOptns:
|
||||
|
||||
mov dword[GUIwinsizex+8*4],7*16
|
||||
mov dword[GUIwinsizey+8*4],57
|
||||
mov dword[GUINetDisp],'IPX '
|
||||
@@ -3641,6 +3649,7 @@ DisplayNetOptns:
|
||||
mov dword[GUINetDisp+4],'R! '
|
||||
jmp .nomodem
|
||||
.netokay
|
||||
%ifdef __MSDOS__
|
||||
cmp byte[CNetType],8
|
||||
jne .noipxinvalid
|
||||
mov dword[GUIwinsizex+8*4],7*16
|
||||
@@ -3648,6 +3657,7 @@ DisplayNetOptns:
|
||||
mov dword[GUINetDisp],'ERRO'
|
||||
mov dword[GUINetDisp+4],'R! '
|
||||
.noipxinvalid
|
||||
%endif
|
||||
|
||||
cmp byte[CNetType],22
|
||||
je .yesstate
|
||||
@@ -3703,6 +3713,7 @@ DisplayNetOptns:
|
||||
mov dword[GUIwinsizex+8*4],201
|
||||
mov dword[GUIwinsizey+8*4],48
|
||||
.notcpip
|
||||
%ifdef __MSDOS__
|
||||
cmp byte[CNetType],3
|
||||
je .yesmodem
|
||||
cmp byte[CNetType],1
|
||||
@@ -3729,6 +3740,7 @@ DisplayNetOptns:
|
||||
mov dword[GUINetDisp+8],'TTIN'
|
||||
mov word[GUINetDisp+12],'GS'
|
||||
mov byte[GUINetDisp+14],0
|
||||
%endif
|
||||
.nomodem
|
||||
GUIDrawWindowBox 8,GUINetDisp
|
||||
cmp byte[per2exec],99
|
||||
@@ -3739,12 +3751,14 @@ DisplayNetOptns:
|
||||
cmp byte[CNetType],21
|
||||
je near DisplayNetTCPIPState
|
||||
|
||||
%ifdef __MSDOS__
|
||||
cmp byte[CNetType],1
|
||||
je near DisplayNetOptnsModem
|
||||
cmp byte[CNetType],2
|
||||
je near DisplayNetOptnsModemConfig
|
||||
cmp byte[CNetType],3
|
||||
je near DisplayNetOptnsModemDial
|
||||
%endif
|
||||
cmp byte[CNetType],4
|
||||
je near DisplayNetOptnsTCPIP
|
||||
cmp byte[CNetType],10
|
||||
@@ -3757,6 +3771,7 @@ DisplayNetOptns:
|
||||
je near DisplayNetOptnsModemTerm
|
||||
cmp byte[CNetType],20
|
||||
je near DisplayNetOptnsChatWindow
|
||||
%ifdef __MSDOS__
|
||||
cmp byte[CNetType],7
|
||||
je near DisplayNetIPXStart
|
||||
cmp byte[CNetType],8
|
||||
@@ -3785,6 +3800,7 @@ DisplayNetOptns:
|
||||
GUIOuttextwin2 8,5,15,GUINetText1
|
||||
GUIOuttextwin2 8,5,25,GUINetText2
|
||||
ret
|
||||
%endif
|
||||
|
||||
DisplayNetTCPIPState:
|
||||
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
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
GUITCPStateText1 db 'SENDING STATUS',0
|
||||
GUITCPStateText2 db 'RECEIVING STATUS',0
|
||||
GUITCPStateText3 db 'CANCEL',0
|
||||
SECTION .text
|
||||
|
||||
%ifdef __MSDOS
|
||||
DisplayNetIPXStart:
|
||||
DrawGUIButton 8,53,48,87,59,GUINetTextZ,34,0,0
|
||||
sub byte[GUItextcolor],15
|
||||
@@ -3851,6 +3870,7 @@ DisplayNetIPXStart:
|
||||
|
||||
DisplayNetIPXInvalid:
|
||||
ret
|
||||
%endif
|
||||
|
||||
DisplayNetOptnsTCPIP:
|
||||
; Your IP:
|
||||
@@ -3973,6 +3993,7 @@ DisplayNetOptnsInvalid:
|
||||
GUIOuttextwin2 8,5,25,GUINetText2b
|
||||
GUIOuttextwin2 8,5,35,GUINetText3b
|
||||
ret
|
||||
%ifdef __MSDOS__
|
||||
DisplayNetOptnsModem:
|
||||
mov dword[GUIEditStringcWin],0
|
||||
DrawGUIButton 8,5,15,89,26,GUINetTextG,21,0,0
|
||||
@@ -4101,6 +4122,7 @@ DisplayNetOptnsModemDial:
|
||||
; mov dword[GUIEditStringmLenM],27
|
||||
mov dword[GUIEditStringcWin],1
|
||||
ret
|
||||
%endif
|
||||
DisplayNetOptnsModemTerm:
|
||||
DrawGUIWinBox 8,6,15,181,127,167
|
||||
; draw borders
|
||||
@@ -4378,23 +4400,30 @@ DisplayNetOptnsChatWindow:
|
||||
; DrawSlideBarWin 8,181,15,[NViewLoc],[TViewLoc],12,97,GUINCStA
|
||||
ret
|
||||
|
||||
NEWSYM GUINCStA, dd 0,0,0
|
||||
NEWSYM CNetType, db 0
|
||||
SECTION .bss
|
||||
NEWSYM GUINCStA, resd 3
|
||||
NEWSYM CNetType, resb 1
|
||||
SECTION .data
|
||||
NEWSYM Latency, db 2
|
||||
NEWSYM Latencytochange, db 2
|
||||
NEWSYM LatencyLeft, db 2
|
||||
NEWSYM NetSwap, db 0
|
||||
RemCNetType db 0
|
||||
UseRemoteSRAMData db 0
|
||||
ChatString times 276 db 0
|
||||
FileNameMod times 512 db 0
|
||||
CurCStringPos dd 0
|
||||
SECTION .bss
|
||||
NEWSYM NetSwap, resb 1
|
||||
RemCNetType resb 1
|
||||
UseRemoteSRAMData resb 1
|
||||
ChatString resb 276
|
||||
FileNameMod resb 512
|
||||
CurCStringPos resd 1
|
||||
|
||||
SECTION .data
|
||||
%ifdef __MSDOS__
|
||||
GUINetText1 db 'IPX HAS NOT BEEN',0
|
||||
GUINetText2 db 'IMPLEMENTED YET',0
|
||||
%endif
|
||||
GUINetText1b db 'PLEASE SET THE',0
|
||||
GUINetText2b db 'PERCENTAGE OF',0
|
||||
GUINetText3b db 'EXECUTION TO 100',0
|
||||
%ifdef __MSDOS__
|
||||
GUINetText1c db 'IPX IS IN BETA',0
|
||||
GUINetText2c db 'STAGES. IT MAY',0
|
||||
GUINetText3c db 'NOT WORK RIGHT!',0
|
||||
@@ -4403,9 +4432,11 @@ GUINetText4 db 'COM2 (2F8)',0
|
||||
GUINetText5 db 'COM3 (3E8)',0
|
||||
GUINetText6 db 'COM4 (2E8)',0
|
||||
GUINetText7 db 'IRQ ',0
|
||||
%endif
|
||||
GUINetText8 db '00',0
|
||||
GUINetText9 db '+',0
|
||||
GUINetTextA db '-',0
|
||||
%ifdef __MSDOS__
|
||||
GUINetTextC db 'TONE (ATDT)',0
|
||||
GUINetTextD db 'PULSE (ATDP)',0
|
||||
GUINetTextE db 'INIT STRINGS :',0
|
||||
@@ -4425,12 +4456,17 @@ GUINetTextO db '57600',0
|
||||
GUINetTextP db '115200',0
|
||||
GUINetTextQ db 'BAUDRATE (BPS) :',0
|
||||
GUINetTextR db 'COMPORT :',0
|
||||
%endif
|
||||
GUINetTextS db 'CANCEL',0
|
||||
%ifdef __MSDOS__
|
||||
GUINetTextT db 'DIAL',0
|
||||
%endif
|
||||
GUINetTextU db 'DISCONNECT',0
|
||||
GUINetTextV db 'PLAYER SELECT :',0
|
||||
GUINetTextW db '1',0,'2',0,'3',0,'4',0,'5',0
|
||||
%ifdef __MSDOS__
|
||||
GUINetTextX db 'USE FOSSIL DRIVER',0
|
||||
%endif
|
||||
GUINetTextY db 'LATENCY',0
|
||||
GUINetTextZ db 'OKAY',0
|
||||
GUINetTexta db 'SAVE DATA :',0
|
||||
@@ -4453,7 +4489,11 @@ GUINetTextr1 db 'PLEASE RESTART ZSNESW',0
|
||||
GUINetTextr2 db 'BEFORE STARTING A NEW',0
|
||||
GUINetTextr3 db 'NETPLAY SESSION',0
|
||||
|
||||
%ifdef __MSDOS__
|
||||
BaudVal dd 9600,14400,19200,28800,38400,57600,115200
|
||||
%endif
|
||||
|
||||
SECTION .text
|
||||
|
||||
DisplayGameOptns:
|
||||
; Key redefinition for :
|
||||
@@ -4735,9 +4775,12 @@ DisplayGameOptns:
|
||||
DGOptnsDrawBox 8+108+70,188,[KeyQuickSaveSPC]
|
||||
ret
|
||||
|
||||
GUIGameOptnsColA db 0
|
||||
GUIGameOptnsColB db 0
|
||||
GUIGameDisplayKy dd 0
|
||||
SECTION .bss
|
||||
GUIGameOptnsColA resb 1
|
||||
GUIGameOptnsColB resb 1
|
||||
GUIGameDisplayKy resd 1
|
||||
|
||||
SECTION .data
|
||||
GUIGameOptnsText1 db 'SOUND DISABLES :',0
|
||||
GUIGameOptnsText2 db 'CH#',0
|
||||
GUIGameOptnsText3 db 'BG DISABLES :',0
|
||||
@@ -4772,6 +4815,7 @@ GUIGameOptnsTextV db 'SAVE SPC',0
|
||||
GUIGameOptnsTextX db 'DISPLAY FPS',0
|
||||
GUIGameOptnsTextY db 'ST+',0
|
||||
GUIGameOptnsTextZ db 'ST-',0
|
||||
SECTION .text
|
||||
|
||||
DisplayGUIOptns:
|
||||
%ifdef __WIN32__
|
||||
@@ -5101,6 +5145,7 @@ DisplayGUIOptns:
|
||||
;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
|
||||
|
||||
SECTION .data
|
||||
GUIGUIOptnsText1 db 'COLOR:',0
|
||||
GUIGUIOptnsText2 db 'MOUSE WRAP',0
|
||||
GUIGUIOptnsText3 db 'MOUSE SHADOW',0
|
||||
@@ -5112,7 +5157,7 @@ GUIGUIOptnsText8 db 'CLICK ENTERS GUI',0
|
||||
GUIGUIOptnsText9 dd 0
|
||||
GUIGUIOptnsTextA db 'USE JOYPAD1',0
|
||||
GUIGUIOptnsTextB dd 'SNOW EFFECT',0
|
||||
GUIGUIOptnsTextBb dd 'SMOKE EFFECT',0
|
||||
GUIGUIOptnsTextBb dd 'BURNING EFFECT',0
|
||||
GUIGUIOptnsTextC dd 'WATER EFFECT A',0
|
||||
GUIGUIOptnsTextCb dd 'WATER EFFECT B',0
|
||||
GUIGUIOptnsTextD dd 'MAIN WINDOW OPTIONS :',0
|
||||
@@ -5126,6 +5171,7 @@ GUIGUIOptnsTextK db 'WHEEL MOUSE',0
|
||||
GUIGUIOptnsTextL db 'ALLOW MULTIPLE INSTANCES',0
|
||||
GUIGUIOptnsTextM db 'FILTERED GUI',0
|
||||
GUIGUIOptnsTextN db 'TRAP MOUSE CURSOR',0
|
||||
SECTION .text
|
||||
|
||||
DisplayGUIAbout:
|
||||
GUIDrawWindowBox 11,GUIAboutDisp
|
||||
@@ -5184,6 +5230,7 @@ DisplayGUIAbout:
|
||||
GUIOuttextwin2 11,5,75,GUIGUIAboutText5
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
GUIGUIAboutText1 db 'ZSNES V',ZVERSION,0
|
||||
GUIGUIAboutText2 db 'CODED BY : ',0
|
||||
GUIGUIAboutText3 db ' ZSKNIGHT',0
|
||||
@@ -5212,6 +5259,8 @@ GUIGUIAboutTextE db 'certain conditions; please',0
|
||||
GUIGUIAboutTextF db 'please read ',39,'LICENSE',39,0
|
||||
GUIGUIAboutTextG db 'thoroughly before using it.',0
|
||||
|
||||
SECTION .text
|
||||
|
||||
DisplayGUIMovies:
|
||||
GUIDrawWindowBox 15,GUIMovieDisp
|
||||
cmp byte[MovieRecordWinVal],0
|
||||
@@ -5312,6 +5361,7 @@ DisplayGUIMovies:
|
||||
GUIDisplayButtonHole 15,80,55,byte[CMovieExt],'9'
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
GUIMovieText1 db 'PLAY',0
|
||||
GUIMovieText2 db 'RECORD',0
|
||||
GUIMovieText3 db 'STOP',0
|
||||
@@ -5324,6 +5374,8 @@ GUIMovieText9 db 'NO',0
|
||||
GUIMovieTextA db 'STATUS : ',0
|
||||
CMovieExt db 'v'
|
||||
|
||||
SECTION .text
|
||||
|
||||
; 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
|
||||
|
||||
@@ -5712,6 +5764,15 @@ DisplayGUICombo:
|
||||
mov byte[GUIGameDisplayKy+3],0
|
||||
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
|
||||
GUIDisplayButtonHole 16,178,82,byte[GUIComboPNum],0
|
||||
GUIDisplayButtonHole 16,196,82,byte[GUIComboPNum],1
|
||||
@@ -5921,27 +5982,28 @@ DisplayGUICombo:
|
||||
.noscrolldisplay
|
||||
ret
|
||||
|
||||
|
||||
GUIccombviewloc dd 0
|
||||
GUIccombcursloc dd 0
|
||||
GUIccomblcursloc dd 0
|
||||
NEWSYM NumCombo, dd 0
|
||||
NumComboGlob dd 0
|
||||
NEWSYM NumComboLocl, dd 0
|
||||
GUICSStC dd 0,0,0
|
||||
GUIComboKey dd 0
|
||||
GUIComboPos db 0
|
||||
GUIComboPNum db 0
|
||||
GUIComboLHorz db 0
|
||||
NEWSYM GUINumCombo, db 0
|
||||
GUIComboData times 50 db 0
|
||||
GUIScrolBufA times 21 db 0
|
||||
GUIScrolBufB times 10 db 0
|
||||
SECTION .bss
|
||||
GUIccombviewloc resd 1
|
||||
GUIccombcursloc resd 1
|
||||
GUIccomblcursloc resd 1
|
||||
NEWSYM NumCombo, resd 1
|
||||
NumComboGlob resd 1
|
||||
NEWSYM NumComboLocl, resd 1
|
||||
GUICSStC resd 3
|
||||
GUIComboKey resd 1
|
||||
GUIComboPos resb 1
|
||||
GUIComboPNum resb 1
|
||||
GUIComboLHorz resb 1
|
||||
NEWSYM GUINumCombo, resb 1
|
||||
GUIComboData resb 50
|
||||
GUIScrolBufA resb 21
|
||||
GUIScrolBufB resb 10
|
||||
|
||||
|
||||
;CombinDataGlob times 3300 db 0 ; 20-name, 42-combo, 2-key#, 1-P#, 1-ff
|
||||
;CombinDataLocl times 3300 db 0
|
||||
|
||||
SECTION .data
|
||||
GUIComboText1 db 'DESCRIPTION',0
|
||||
GUIComboText2 db 'KEY P# LH',0
|
||||
GUIComboText3 db ' ',0
|
||||
@@ -6024,6 +6086,8 @@ GUIIconDataComboSecond:
|
||||
db 0 ,48 ,46 ,44 ,42 ,0 ,0 ,0 ,0 ,0
|
||||
db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0
|
||||
|
||||
SECTION .text
|
||||
|
||||
DisplayGUIAddOns:
|
||||
GUIDrawWindowBox 17,GUIAddOnsDisp
|
||||
sub byte[GUItextcolor],15
|
||||
@@ -6095,6 +6159,7 @@ DisplayGUIAddOns:
|
||||
GUIDisplayIconWin 17,109,93,[GUITemp]
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
GUIAddOnText1 db 'NONE',0
|
||||
GUIAddOnText2 db 'SNES MOUSE AT PORT #1',0
|
||||
GUIAddOnText3 db 'SNES MOUSE AT PORT #2',0
|
||||
@@ -6126,9 +6191,11 @@ GUIStatesDisp db 'STATE CONFIRM',0
|
||||
GUIComboDisp db 'KEY COMBINATION EDITOR',0
|
||||
GUIAddOnsDisp db 'ADD-ON SELECTOR',0
|
||||
|
||||
GUIItemBoxColor dd 0
|
||||
TextColorSp dd 0
|
||||
SECTION .bss
|
||||
GUIItemBoxColor resd 1
|
||||
TextColorSp resd 1
|
||||
|
||||
SECTION .data
|
||||
NEWSYM GUIMenuItem, db 'GAME ',0
|
||||
db 'CONFIG',0
|
||||
db 'CHEAT ',0
|
||||
@@ -6136,3 +6203,4 @@ NEWSYM GUIMenuItem, db 'GAME ',0
|
||||
db 'MISC ',0
|
||||
db 25,0
|
||||
|
||||
SECTION .text
|
||||
|
||||
@@ -85,14 +85,25 @@ GUIUnBuffer:
|
||||
jnz .loop
|
||||
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
|
||||
NEWSYM NoInputRead, db 0
|
||||
NEWSYM PrevMenuPos, db 0
|
||||
NEWSYM MenuDisplace, dd 0
|
||||
NEWSYM MenuDisplace16, dd 0
|
||||
NEWSYM MenuNoExit, db 0
|
||||
NEWSYM SPCSave, db 0
|
||||
%ifdef SPCDUMP
|
||||
SECTION .data
|
||||
NEWSYM SPCSave_dump, db 0
|
||||
SECTION .bss
|
||||
|
||||
EXTSYM SPCSave_buffer, SPCSave_ports
|
||||
NEWSYM SPCSave_handle, resd 1
|
||||
%endif
|
||||
|
||||
SECTION .text
|
||||
|
||||
NEWSYM showmenu
|
||||
mov byte[ForceNonTransp],1
|
||||
@@ -160,13 +171,13 @@ NEWSYM showmenu
|
||||
call savepcx
|
||||
jmp .nopalwrite
|
||||
.nosskey
|
||||
cmp byte[SPCKeyPressed],1
|
||||
je near .savespckey
|
||||
test byte[pressed+14],1
|
||||
jz .nof12
|
||||
call savepcx
|
||||
jmp .nopalwrite
|
||||
.nof12
|
||||
cmp byte[SPCKeyPressed],1
|
||||
je near .savespckey
|
||||
mov dword[menucloc],0
|
||||
cmp byte[nextmenupopup],0
|
||||
je .nomenuinc2
|
||||
@@ -237,10 +248,10 @@ NEWSYM showmenu
|
||||
.nogoup
|
||||
sub dword[menucloc],10*288
|
||||
call menudrawbox8b
|
||||
mov al,[newengen]
|
||||
mov byte[newengen],0
|
||||
; mov al,[newengen] ; WTF?
|
||||
; mov byte[newengen],0
|
||||
|
||||
mov [newengen],al
|
||||
; mov [newengen],al
|
||||
jmp .nextkey
|
||||
.noup
|
||||
cmp al,80
|
||||
@@ -251,12 +262,12 @@ NEWSYM showmenu
|
||||
.nogodown
|
||||
add dword[menucloc],10*288
|
||||
call menudrawbox8b
|
||||
mov al,[newengen]
|
||||
mov byte[newengen],0
|
||||
push eax
|
||||
; mov al,[newengen]
|
||||
; mov byte[newengen],0
|
||||
; push eax
|
||||
call copyvid
|
||||
pop eax
|
||||
mov [newengen],al
|
||||
; pop eax
|
||||
; mov [newengen],al
|
||||
jmp .nextkey
|
||||
.nodown
|
||||
jmp .nextkey
|
||||
@@ -268,12 +279,12 @@ NEWSYM showmenu
|
||||
jmp .nextkey
|
||||
.done
|
||||
call GUIUnBuffer
|
||||
mov al,[newengen]
|
||||
mov byte[newengen],0
|
||||
push eax
|
||||
; mov al,[newengen]
|
||||
; mov byte[newengen],0
|
||||
; push eax
|
||||
call copyvid
|
||||
pop eax
|
||||
mov [newengen],al
|
||||
; pop eax
|
||||
; mov [newengen],al
|
||||
cmp dword[menucloc],0
|
||||
jne .nosavepcx
|
||||
call savepcx
|
||||
@@ -340,17 +351,34 @@ NEWSYM showmenu
|
||||
.savespckey
|
||||
cmp byte[spcon],0
|
||||
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
|
||||
mov dword[Msgptr],.search
|
||||
mov eax,[MsgCount]
|
||||
mov [MessageOn],eax
|
||||
mov al,[newengen]
|
||||
mov byte[newengen],0
|
||||
push eax
|
||||
; mov al,[newengen]
|
||||
; mov byte[newengen],0
|
||||
; push eax
|
||||
call copyvid
|
||||
pop eax
|
||||
mov [newengen],al
|
||||
; pop eax
|
||||
; mov [newengen],al
|
||||
; call breakatsignc
|
||||
; cmp byte[prbreak],1
|
||||
; je .yesesc
|
||||
@@ -360,6 +388,7 @@ NEWSYM showmenu
|
||||
; cmp byte[prbreak],1
|
||||
; je .yesesc
|
||||
call savespcdata
|
||||
|
||||
mov byte[curblank],40h
|
||||
mov dword[Msgptr],.saved
|
||||
mov eax,[MsgCount]
|
||||
@@ -393,12 +422,12 @@ NEWSYM showmenu
|
||||
jmp .nopalwrite
|
||||
.exitloop
|
||||
call GUIUnBuffer
|
||||
mov al,[newengen]
|
||||
mov byte[newengen],0
|
||||
push eax
|
||||
; mov al,[newengen]
|
||||
; mov byte[newengen],0
|
||||
; push eax
|
||||
call copyvid
|
||||
pop eax
|
||||
mov [newengen],al
|
||||
; pop eax
|
||||
; mov [newengen],al
|
||||
cmp byte[cbitmode],1
|
||||
je near .nopalwrite
|
||||
mov edi,[vidbuffer]
|
||||
@@ -447,6 +476,7 @@ NEWSYM showmenu
|
||||
mov byte[MenuNoExit],0
|
||||
jmp showmenu
|
||||
|
||||
SECTION .data
|
||||
.unablefps db 'NEED AUTO FRAMERATE ON',0
|
||||
.sndbufsav db 'BUFFER SAVED AS SOUNDDMP.RAW',0
|
||||
.search db 'SEARCHING FOR SONG START.',0
|
||||
@@ -454,6 +484,7 @@ NEWSYM showmenu
|
||||
.unable db 'CANNOT USE IN NEW GFX ENGINE.',0
|
||||
.escpress db 'ESC TERMINATED SEARCH.',0
|
||||
.saved db '.SPC FILE SAVED.',0
|
||||
SECTION .text
|
||||
|
||||
NEWSYM menudrawbox8b
|
||||
cmp byte[cbitmode],1
|
||||
@@ -551,14 +582,15 @@ NEWSYM menudrawbox8b
|
||||
add esi,[MenuDisplace]
|
||||
mov edi,.stringi
|
||||
call OutputGraphicString
|
||||
mov al,[newengen]
|
||||
mov byte[newengen],0
|
||||
push eax
|
||||
; mov al,[newengen]
|
||||
; mov byte[newengen],0
|
||||
; push eax
|
||||
call copyvid
|
||||
pop eax
|
||||
mov [newengen],al
|
||||
; pop eax
|
||||
; mov [newengen],al
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
.string db 'MISC OPTIONS',0
|
||||
.stringa db 'SAVE SNAPSHOT',0
|
||||
.stringb db 'SHOW FPS',0
|
||||
@@ -569,6 +601,7 @@ NEWSYM menudrawbox8b
|
||||
.stringg db 'INCR FRAME ONLY',0
|
||||
.stringh db 'MOVE THIS WINDOW',0
|
||||
.stringi db 'IMAGE FORMAT: ---',0
|
||||
SECTION .text
|
||||
|
||||
NEWSYM menudrawcursor8b
|
||||
cmp byte[cbitmode],1
|
||||
@@ -592,7 +625,9 @@ NEWSYM menudrawcursor8b
|
||||
mov al,128
|
||||
ret
|
||||
|
||||
NEWSYM menucloc, dd 0
|
||||
SECTION .bss ;ALIGN=32
|
||||
NEWSYM menucloc, resd 1
|
||||
SECTION .text
|
||||
|
||||
NEWSYM menudrawbox16b
|
||||
; draw shadow behind box
|
||||
@@ -736,19 +771,22 @@ NEWSYM menudrawbox16b
|
||||
add esi,[MenuDisplace16]
|
||||
mov edi,menudrawbox8b.stringi
|
||||
call OutputGraphicString16b
|
||||
mov al,[newengen]
|
||||
mov byte[newengen],0
|
||||
push eax
|
||||
; mov al,[newengen]
|
||||
; mov byte[newengen],0
|
||||
; push eax
|
||||
call copyvid
|
||||
pop eax
|
||||
mov [newengen],al
|
||||
; pop eax
|
||||
; mov [newengen],al
|
||||
ret
|
||||
|
||||
.allred dw 0
|
||||
.blue dw 0
|
||||
.stepb dw 0
|
||||
SECTION .bss
|
||||
.allred resw 1
|
||||
.blue resw 1
|
||||
.stepb resw 1
|
||||
|
||||
NEWSYM menu16btrans, db 0
|
||||
NEWSYM menu16btrans, resb 1
|
||||
|
||||
SECTION .text
|
||||
|
||||
NEWSYM menudrawcursor16b
|
||||
; draw a small red box
|
||||
@@ -944,13 +982,38 @@ NEWSYM savespcdata
|
||||
mov ecx,256
|
||||
mov edx,DSPMem
|
||||
call Write_File
|
||||
|
||||
%ifdef SPCDUMP
|
||||
mov [SPCSave_handle], ebx
|
||||
%else
|
||||
call Close_File
|
||||
%endif
|
||||
|
||||
add dword[spcPCRam],spcRam
|
||||
add dword[spcRamDP],spcRam
|
||||
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
|
||||
|
||||
.spcfname times 128 db 0
|
||||
SECTION .bss
|
||||
.spcfname resb 128
|
||||
|
||||
SECTION .data
|
||||
;.SPC File Format
|
||||
|
||||
;Offset 00000h - File Header : SNES-SPC700 Sound File Data v0.10
|
||||
@@ -1016,6 +1079,8 @@ NEWSYM ssdatst
|
||||
; SPCRAM (offset 256), 64k
|
||||
; DSPRAM (offset 256+65536), 256 bytes
|
||||
|
||||
SECTION .text
|
||||
|
||||
NEWSYM dumpsound
|
||||
mov cx,0
|
||||
mov edx,.filename
|
||||
@@ -1058,6 +1123,7 @@ NEWSYM dumpsound
|
||||
xor esi,esi
|
||||
jmp .return
|
||||
|
||||
SECTION .data
|
||||
.filename db 'SOUNDDMP.RAW',0
|
||||
|
||||
NEWSYM pcxheader
|
||||
@@ -1069,7 +1135,11 @@ NEWSYM pcxheader
|
||||
.bpline dw 256
|
||||
times 128-68 db 0
|
||||
|
||||
NEWSYM picnum, dw 0
|
||||
SECTION .bss
|
||||
|
||||
NEWSYM picnum, resw 1
|
||||
|
||||
SECTION .data
|
||||
|
||||
NEWSYM savepcx
|
||||
%ifndef NO_PNG
|
||||
@@ -1370,12 +1440,15 @@ NEWSYM savepcx
|
||||
call restore16b
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
.pcxsaved db 'SNAPSHOT SAVED TO '
|
||||
.filename db 'image.pcx',0,0,0,0
|
||||
.rawsaved db 'SNAPSHOT SAVED TO '
|
||||
.filename2 db 'image.bmp',0,0,0,0
|
||||
.rowsleft db 0
|
||||
.curdptr dd 0
|
||||
SECTION .bss
|
||||
.rowsleft resb 1
|
||||
.curdptr resd 1
|
||||
SECTION .text
|
||||
|
||||
NEWSYM save16b2
|
||||
call prepare16b
|
||||
@@ -1517,10 +1590,13 @@ NEWSYM save16b2
|
||||
call restore16b
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
.rawsaved db 'SNAPSHOT SAVED TO '
|
||||
.filename2 db 'image.bmp',0,0,0,0
|
||||
.rowsleft dd 0
|
||||
.curdptr dd 0
|
||||
SECTION .bss
|
||||
.rowsleft resd 1
|
||||
.curdptr resd 1
|
||||
SECTION .text
|
||||
|
||||
prepare16b:
|
||||
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\
|
||||
${DOSDIR}/initvid.o ${DOSDIR}/modemrtn.o ${DOSDIR}/sw32.o\
|
||||
${DOSDIR}/joy.o ${DOSDIR}/sw.o ${DOSDIR}/vesa12.o ${DOSDIR}/vesa2.o\
|
||||
${DOSDIR}/zloader.o ${DOSDIR}/zsipx.o ${DOSDIR}/zfile.o
|
||||
${DOSDIR}/joy.o ${DOSDIR}/sound.o ${DOSDIR}/sw.o ${DOSDIR}/vesa12.o\
|
||||
${DOSDIR}/vesa2.o ${DOSDIR}/zloader.o ${DOSDIR}/zsipx.o\
|
||||
${DOSDIR}/zfile.o
|
||||
|
||||
WINOBJ=${WINDIR}/copywin.o ${WINDIR}/winintrf.o ${WINDIR}/winlink.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}
|
||||
LIBS=-lz -lm -lpng
|
||||
#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__
|
||||
ASM=nasm
|
||||
ASMFLAGS=-f coff -D__MSDOS__
|
||||
|
||||
@@ -63,7 +63,7 @@ PREOBJ=
|
||||
|
||||
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}
|
||||
LIBS=
|
||||
@@ -112,6 +112,7 @@ ${DOSDIR}/vesa12.o: ${DOSDIR}/vesa12.asm macros.mac
|
||||
fixsin.obj: fixsin.c
|
||||
water.obj: water.c
|
||||
smoke.obj: smoke.c
|
||||
burn.obj: burn.c
|
||||
${VIDEODIR}/2xsaiw.obj: ${VIDEODIR}/2xsaiw.asm macros.mac
|
||||
${VIDEODIR}/procvid.obj: ${VIDEODIR}/procvid.asm macros.mac ${VIDEODIR}/copyvid.inc ${VIDEODIR}/2xSaImmx.inc
|
||||
${CHIPDIR}/sa1regs.obj: ${CHIPDIR}/sa1regs.asm macros.mac\
|
||||
|
||||
@@ -1,12 +1,8 @@
|
||||
|
||||
|
||||
#ifdef __LINUX__
|
||||
# include "gblhdr.h"
|
||||
#else
|
||||
# include <stdlib.h>
|
||||
# include <string.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 FPSOn,FPSAtStart,cfgsoundon
|
||||
EXTSYM xa
|
||||
EXTSYM SBPort,SBInt,SBIrq,SBDMA,SBDMAPage,SBHDMAPage,getenv,vibracard
|
||||
EXTSYM ram7fa,wramdataa
|
||||
EXTSYM malloc,free
|
||||
EXTSYM StateBackup
|
||||
@@ -42,6 +41,10 @@ EXTSYM LinuxExit
|
||||
EXTSYM GetFilename
|
||||
%endif
|
||||
|
||||
%ifdef OPENSPC
|
||||
EXTSYM OSPC_Init
|
||||
%endif
|
||||
|
||||
NEWSYM UIAsmStart
|
||||
|
||||
|
||||
@@ -69,8 +72,12 @@ NEWSYM zstart
|
||||
|
||||
cld ;clear direction flag
|
||||
|
||||
%ifdef OPENSPC
|
||||
call OSPC_Init
|
||||
%else
|
||||
call setnoise
|
||||
call InitSPC
|
||||
%endif
|
||||
call allocmem ;allocate memory
|
||||
|
||||
cmp byte[soundon],0
|
||||
@@ -131,12 +138,6 @@ SECTION .data
|
||||
NEWSYM mydebug, db '',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
|
||||
|
||||
|
||||
@@ -243,7 +244,6 @@ NEWSYM SecondPort, db 0 ; Secondary Joystick Port Enabled (209h)
|
||||
; New Variables
|
||||
NEWSYM ForcePal, db 0 ; 1 = NTSC, 2 = PAL
|
||||
NEWSYM Force8b, db 0 ; Force 8-bit sound on
|
||||
NEWSYM dssel, dw 0
|
||||
NEWSYM Doublevbuf, db 1 ; Double video buffer
|
||||
NEWSYM V8Mode, db 0 ; Vegetable mode! =)
|
||||
NEWSYM fastmemptr, db 0
|
||||
@@ -323,11 +323,23 @@ NEWSYM AllocMem
|
||||
; Get Command Line Locates SET CMDLINE environment
|
||||
;*******************************************************
|
||||
|
||||
%ifdef __WIN32__
|
||||
EXTSYM _imp__GetModuleFileNameA@12
|
||||
EXTSYM memcpy
|
||||
%elifdef __MSDOS__
|
||||
EXTSYM argv
|
||||
%endif
|
||||
|
||||
NEWSYM getcmdline
|
||||
%ifdef __MSDOS__
|
||||
%if 0
|
||||
mov edx,.string2s
|
||||
push edx
|
||||
call getenv
|
||||
pop edx
|
||||
%else
|
||||
mov eax,[argv]
|
||||
%endif
|
||||
cmp eax,0
|
||||
je near .nfound
|
||||
mov esi,eax
|
||||
@@ -344,6 +356,7 @@ NEWSYM getcmdline
|
||||
.nocap
|
||||
mov [edi],dl
|
||||
mov [edi+256],dl
|
||||
mov [edi+512],dl
|
||||
inc esi
|
||||
inc edi
|
||||
cmp dl,32
|
||||
@@ -351,8 +364,31 @@ NEWSYM getcmdline
|
||||
cmp dl,0
|
||||
jne .a
|
||||
.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 eax,CMDLineStr
|
||||
ret ; *sigh*
|
||||
%endif
|
||||
mov esi,CMDLineStr
|
||||
mov eax,esi
|
||||
.next2
|
||||
cmp eax,edi
|
||||
je .nomore
|
||||
@@ -402,7 +438,7 @@ NEWSYM getcmdline
|
||||
mov byte[esi+5+512],'c'
|
||||
mov byte[esi+6+512],'m'
|
||||
mov byte[esi+7+512],'b'
|
||||
mov byte[esI+8+512],0
|
||||
mov byte[esi+8+512],0
|
||||
ret
|
||||
.nfound
|
||||
mov edx,.stringnf
|
||||
@@ -439,7 +475,7 @@ NEWSYM getcmdline
|
||||
mov byte[esi+5+512],'c'
|
||||
mov byte[esi+6+512],'m'
|
||||
mov byte[esi+7+512],'b'
|
||||
mov byte[esI+8+512],0
|
||||
mov byte[esi+8+512],0
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
@@ -452,249 +488,6 @@ NEWSYM GUIFName, resb 256
|
||||
NEWSYM GUICName, resb 256
|
||||
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
|
||||
;*******************************************************
|
||||
; 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 gammalevel,hirestiledat,ignor512,latchx,latchy,maxbr,ForceNewGfxOff
|
||||
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 vesa2_clbit,vesa2_gpos,vesa2_rpos,vesa2red10,vesa2selec,vidbuffer
|
||||
EXTSYM vidbufferm,vram,vsyncon,vbufdptr,KeyStateSelct,forceblnk,soundon
|
||||
@@ -64,11 +64,17 @@ EXTSYM vidbufferofsb
|
||||
;EXTSYM Super2xSaI
|
||||
EXTSYM HalfTransB,HalfTransC
|
||||
|
||||
%ifdef __MSDOS__
|
||||
EXTSYM SB_blank
|
||||
%endif
|
||||
|
||||
|
||||
NEWSYM ProcVidAsmStart
|
||||
|
||||
NEWSYM ScreenScale, db 0 ; If horizontal is scaled or not
|
||||
NEWSYM TempDebugV, dw 0 ; Temporary Debugging variable
|
||||
SECTION .bss
|
||||
NEWSYM ScreenScale, resb 1 ; If horizontal is scaled or not
|
||||
NEWSYM TempDebugV, resw 1 ; Temporary Debugging variable
|
||||
SECTION .text
|
||||
|
||||
|
||||
%macro MMXStuff 0
|
||||
@@ -98,6 +104,9 @@ NEWSYM TempDebugV, dw 0 ; Temporary Debugging variable
|
||||
|
||||
SECTION .text
|
||||
NEWSYM FPUZero
|
||||
%if 0
|
||||
|
||||
; omg this is lame ;P
|
||||
mov [.Zero],eax
|
||||
mov [.Zero+4],eax
|
||||
mov [.Zero2],eax
|
||||
@@ -111,10 +120,25 @@ NEWSYM FPUZero
|
||||
ADD EDI,16
|
||||
DEC ECX
|
||||
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
|
||||
|
||||
.Zero dd 0,0
|
||||
.Zero2 dd 0,0
|
||||
%if 0
|
||||
SECTION .bss
|
||||
.Zero resd 2
|
||||
.Zero2 resd 2
|
||||
SECTION .text
|
||||
%endif
|
||||
|
||||
;*******************************************************
|
||||
; ShowVideo Processes & displays video
|
||||
@@ -240,20 +264,25 @@ NEWSYM processmouse
|
||||
pop esi
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
.ssautoen db 'AUTOFIRE ENABLED.',0
|
||||
.ssautodi db 'AUTOFIRE DISABLED.',0
|
||||
|
||||
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 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
|
||||
;*******************************************************
|
||||
@@ -464,6 +493,7 @@ NEWSYM outputhex16
|
||||
pop edi
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
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,30h,00h,00h,00h,00h,00h,00h
|
||||
@@ -595,6 +625,8 @@ NEWSYM FontData
|
||||
; +, 38 `, 41 .5,4A
|
||||
; ,, 39 ^, 42
|
||||
|
||||
SECTION .text
|
||||
|
||||
;*******************************************************
|
||||
; Output Char Outputs char in al @ esi
|
||||
;*******************************************************
|
||||
@@ -657,8 +689,10 @@ NEWSYM outputchar16b
|
||||
pop edi
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
NEWSYM textcolor, db 128
|
||||
NEWSYM textcolor16b, dw 0FFFFh
|
||||
SECTION .text
|
||||
|
||||
NEWSYM outputchar5x5
|
||||
push edi
|
||||
@@ -1155,13 +1189,15 @@ NEWSYM OutputGraphicString16bb
|
||||
;*******************************************************
|
||||
; For Save State
|
||||
|
||||
NEWSYM csounddisable, db 0
|
||||
NEWSYM statefileloc, dd 0
|
||||
newestfileloc db 0
|
||||
newestfiledate dd 0
|
||||
f3menuen db 0
|
||||
PrevPictureVal db 0
|
||||
CurPictureVal db 0
|
||||
SECTION .bss
|
||||
NEWSYM csounddisable, resb 1
|
||||
NEWSYM statefileloc, resd 1
|
||||
newestfileloc resb 1
|
||||
newestfiledate resd 1
|
||||
f3menuen resb 1
|
||||
PrevPictureVal resb 1
|
||||
CurPictureVal resb 1
|
||||
SECTION .text
|
||||
|
||||
NEWSYM drawhline
|
||||
.loop
|
||||
@@ -1591,16 +1627,7 @@ NEWSYM saveselect
|
||||
;cmp byte[OSPort],1
|
||||
;ja .nosound
|
||||
%ifdef __MSDOS__
|
||||
push es
|
||||
mov es,[sbselec]
|
||||
mov edi,[sbpmofs]
|
||||
mov ecx,320
|
||||
.loopa
|
||||
mov dword[es:edi],0
|
||||
add edi,4
|
||||
dec ecx
|
||||
jnz .loopa
|
||||
pop es
|
||||
call SB_blank
|
||||
%endif
|
||||
.nosound
|
||||
cmp byte[cbitmode],1
|
||||
@@ -1805,11 +1832,13 @@ NEWSYM saveselect
|
||||
mov byte[ForceNonTransp],0
|
||||
ret
|
||||
|
||||
.allred dw 0
|
||||
.allgrn dw 0
|
||||
.allgrnb dw 0
|
||||
.blue dw 0
|
||||
.stepb dw 0
|
||||
SECTION .bss ;ALIGN=32
|
||||
.allred resw 1
|
||||
.allgrn resw 1
|
||||
.allgrnb resw 1
|
||||
.blue resw 1
|
||||
.stepb resw 1
|
||||
SECTION .text
|
||||
|
||||
; Start 16-bit stuff here
|
||||
.16b
|
||||
@@ -2110,13 +2139,17 @@ NEWSYM saveselect
|
||||
call Clear2xSaIBuffer
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
.stringa db 'PLEASE SELECT',0
|
||||
.stringb db 'SAVE STATE SLOT',0
|
||||
.stringc db 'USE CURSOR KEYS',0
|
||||
.stringd db 'TO MOVE AND',0
|
||||
.stringe db 'ENTER TO SELECT',0
|
||||
|
||||
NEWSYM ForceNonTransp, db 0
|
||||
SECTION .bss
|
||||
NEWSYM ForceNonTransp, resb 1
|
||||
|
||||
SECTION .text
|
||||
|
||||
NEWSYM testpressed8b
|
||||
test byte[pressed+2],1
|
||||
@@ -2214,7 +2247,10 @@ NEWSYM testpressed8b
|
||||
; MakePal Changes the entire palette
|
||||
;*******************************************************
|
||||
; set the brightness with [maxbr]
|
||||
NEWSYM cgramback, times 256 dw 0
|
||||
SECTION .bss ;ALIGN=32
|
||||
NEWSYM cgramback, resw 256
|
||||
SECTION .text
|
||||
|
||||
NEWSYM doveg
|
||||
pushad
|
||||
; backup cgram
|
||||
@@ -2285,7 +2321,9 @@ NEWSYM dovegrest
|
||||
popad
|
||||
ret
|
||||
|
||||
blahblahblah dw 0
|
||||
SECTION .bss ;ALIGN=32
|
||||
blahblahblah resw 1
|
||||
SECTION .text
|
||||
|
||||
NEWSYM dosmakepal
|
||||
cmp byte[V8Mode],1
|
||||
@@ -2422,7 +2460,9 @@ NEWSYM makepalb
|
||||
call dovegrest
|
||||
.noveg2
|
||||
ret
|
||||
NEWSYM tempco0, dw 0
|
||||
SECTION .bss ;ALIGN=32
|
||||
NEWSYM tempco0, resw 1
|
||||
SECTION .text
|
||||
|
||||
;*******************************************************
|
||||
; ChangePal Sets up the palette
|
||||
@@ -2563,7 +2603,9 @@ NEWSYM doschangepal
|
||||
.noveg2
|
||||
ret
|
||||
|
||||
NEWSYM prevbright, db 0 ; previous brightness
|
||||
SECTION .bss
|
||||
NEWSYM prevbright, resb 1 ; previous brightness
|
||||
SECTION .text
|
||||
|
||||
;*******************************************************
|
||||
; CopyVid Copies buffer into video
|
||||
@@ -2686,10 +2728,12 @@ NEWSYM showfps
|
||||
call outputhex
|
||||
ret
|
||||
|
||||
NEWSYM spcdebugaddr, dd 0
|
||||
NEWSYM tempoffset, dw 0
|
||||
SECTION .bss ;ALIGN=32
|
||||
NEWSYM spcdebugaddr, resd 1
|
||||
NEWSYM tempoffset, resw 1
|
||||
|
||||
NEWSYM Testval, dd 0
|
||||
NEWSYM Testval, resd 1
|
||||
SECTION .text
|
||||
|
||||
|
||||
NEWSYM ClockOutput
|
||||
@@ -2989,13 +3033,16 @@ NEWSYM ClockOutputB
|
||||
popad
|
||||
ret
|
||||
|
||||
|
||||
SECTION .data
|
||||
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
|
||||
|
||||
@@ -3106,15 +3153,17 @@ NEWSYM hextestoutput
|
||||
call outputhex
|
||||
ret
|
||||
|
||||
NEWSYM SoundPlayed0, db 0
|
||||
NEWSYM SoundPlayed1, db 0
|
||||
NEWSYM SoundPlayed2, db 0
|
||||
NEWSYM SoundPlayed3, db 0
|
||||
NEWSYM SoundPlayed4, db 0
|
||||
NEWSYM SoundPlayed5, db 0
|
||||
NEWSYM SoundPlayed6, db 0
|
||||
NEWSYM SoundPlayed7, db 0
|
||||
NEWSYM ngfont, db 0
|
||||
SECTION .bss
|
||||
NEWSYM SoundPlayed0, resb 1
|
||||
NEWSYM SoundPlayed1, resb 1
|
||||
NEWSYM SoundPlayed2, resb 1
|
||||
NEWSYM SoundPlayed3, resb 1
|
||||
NEWSYM SoundPlayed4, resb 1
|
||||
NEWSYM SoundPlayed5, resb 1
|
||||
NEWSYM SoundPlayed6, resb 1
|
||||
NEWSYM SoundPlayed7, resb 1
|
||||
NEWSYM ngfont, resb 1
|
||||
SECTION .text
|
||||
|
||||
NEWSYM ShowSound
|
||||
add esi,[vidbuffer]
|
||||
@@ -3207,21 +3256,26 @@ NEWSYM waitvsync
|
||||
jz .loop2 ;updating the screen
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
NEWSYM prevengval, db 10
|
||||
NEWSYM chaton, db 0
|
||||
NEWSYM chatstrL, times 140 db 0
|
||||
NEWSYM chatLpos, dd 0
|
||||
NEWSYM chatstrR, times 140 db 0
|
||||
NEWSYM chatstrR2, times 140 db 0
|
||||
NEWSYM chatstrR3, times 140 db 0
|
||||
NEWSYM chatstrR4, times 140 db 0
|
||||
NEWSYM chatstrR5, times 140 db 0
|
||||
NEWSYM chatRTL, dd 0
|
||||
NEWSYM chatRTL2, dd 0
|
||||
NEWSYM chatRTL3, dd 0
|
||||
NEWSYM chatRTL4, dd 0
|
||||
NEWSYM chatRTL5, dd 0
|
||||
NEWSYM chatTL, dd 0
|
||||
|
||||
SECTION .bss
|
||||
NEWSYM chaton, resb 1
|
||||
NEWSYM chatstrL, resb 140
|
||||
NEWSYM chatLpos, resd 1
|
||||
NEWSYM chatstrR, resb 140
|
||||
NEWSYM chatstrR2, resb 140
|
||||
NEWSYM chatstrR3, resb 140
|
||||
NEWSYM chatstrR4, resb 140
|
||||
NEWSYM chatstrR5, resb 140
|
||||
NEWSYM chatRTL, resd 1
|
||||
NEWSYM chatRTL2, resd 1
|
||||
NEWSYM chatRTL3, resd 1
|
||||
NEWSYM chatRTL4, resd 1
|
||||
NEWSYM chatRTL5, resd 1
|
||||
NEWSYM chatTL, resd 1
|
||||
|
||||
SECTION .data
|
||||
NEWSYM chatreqtable
|
||||
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'
|
||||
@@ -3233,6 +3287,7 @@ NEWSYM chatreqtable
|
||||
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
|
||||
|
||||
SECTION .text
|
||||
|
||||
; Letters transferred & string cleared when chatstrL[0]!=0 and chaton=0
|
||||
; Disable all transfers when chaton=1 (except joysticks and upper keyboard
|
||||
@@ -3542,7 +3597,9 @@ NEWSYM copyvid
|
||||
dec dword[MessageOn]
|
||||
.nomsg
|
||||
jmp vidpaste
|
||||
.sdrawptr dd 0
|
||||
SECTION .bss ;ALIGN=32
|
||||
.sdrawptr resd 1
|
||||
SECTION .text
|
||||
|
||||
NEWSYM vidpaste
|
||||
cmp byte[vsyncon],0
|
||||
@@ -3664,7 +3721,9 @@ NEWSYM vidpaste
|
||||
jnz .ssloopb
|
||||
jmp .returnfromdraw
|
||||
|
||||
.SSRedCo dw 0
|
||||
SECTION .bss ;ALIGN=32
|
||||
.SSRedCo resw 1
|
||||
SECTION .text
|
||||
|
||||
|
||||
NEWSYM Clear2xSaIBuffer
|
||||
@@ -3678,14 +3737,18 @@ NEWSYM Clear2xSaIBuffer
|
||||
jnz .nextb
|
||||
ret
|
||||
|
||||
|
||||
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
|
||||
SECTION .data
|
||||
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
|
||||
|
||||
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,0,0,0,0,0,0,0,0,0,0,0
|
||||
|
||||
SECTION .text
|
||||
|
||||
NEWSYM ProcVidAsmEnd
|
||||
|
||||
@@ -346,7 +346,7 @@ void SineBlob(int x, int y, int radius, int height, int page)
|
||||
int left,top,right,bottom;
|
||||
int square, dist;
|
||||
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(y<0) y = 1+radius+ rand()%(SCRH-2*radius-1);
|
||||
|
||||
@@ -17,9 +17,9 @@
|
||||
|
||||
%include "macros.mac"
|
||||
|
||||
EXTSYM dssel,selcA000,selcB800,selc0040,previdmode,DosExit,ZFileSystemInit
|
||||
EXTSYM previdmode,DosExit,ZFileSystemInit
|
||||
EXTSYM getcmdline,GUIRestoreVars,getcfg,obtaindir,ConvertJoyMap,tparms
|
||||
EXTSYM preparedir,getblaster,Force8b,SBHDMA
|
||||
EXTSYM preparedir,SBHDMA
|
||||
EXTSYM ccmdline
|
||||
EXTSYM FilenameStart
|
||||
EXTSYM spcon
|
||||
@@ -51,9 +51,8 @@ EXTSYM ZFileMKDir,ZFileCHDir,ZFileRMDir,CHPath,MKPath,RMPath
|
||||
EXTSYM ZFileGetDir,DriveNumber,DirName
|
||||
EXTSYM _getdrive
|
||||
EXTSYM DTALoc,DTALocPos,ZFileFindATTRIB,ZFileFindFirst,ZFileFindNext,ZFileFindPATH
|
||||
EXTSYM oldhand9s,oldhand9o,interror,oldhand8s,oldhand8o,oldhandSBs,oldhandSBo
|
||||
EXTSYM NoSoundReinit,soundon,DSPDisable,SBInt,NoSoundReinit,PICMaskP,SBIrq
|
||||
EXTSYM SBHandler,InitSB,handler8h,handler9h,init60hz,Interror,init18_2hz,DeInitSPC
|
||||
EXTSYM NoSoundReinit,soundon,DSPDisable,NoSoundReinit
|
||||
EXTSYM init60hz,init18_2hz
|
||||
EXTSYM Start60HZ
|
||||
EXTSYM pressed
|
||||
EXTSYM RaisePitch,AdjustFrequency
|
||||
@@ -104,7 +103,7 @@ EXTSYM SetMouseX,SetMouseY
|
||||
EXTSYM T36HZEnabled
|
||||
EXTSYM MouseButton
|
||||
EXTSYM GUIinit36_4hz,GUIoldhand9s,GUIoldhand9o,GUIoldhand8s,GUIoldhand8o
|
||||
EXTSYM GUIhandler9h,GUIhandler8h,GUIinit18_2hz
|
||||
EXTSYM GUIinit18_2hz
|
||||
EXTSYM Start36HZ
|
||||
EXTSYM Stop36HZ
|
||||
EXTSYM BufferSizeW,BufferSizeB,ProcessSoundBuffer
|
||||
@@ -134,6 +133,7 @@ EXTSYM V8Mode,GrayscaleMode
|
||||
EXTSYM PrevWinMode,PrevFSMode
|
||||
EXTSYM _imp__GetLocalTime@4
|
||||
|
||||
;EXTSYM FrameSemaphore
|
||||
|
||||
%ifdef __MINGW__
|
||||
NEWSYM WinIntRFAsmStart
|
||||
@@ -269,7 +269,9 @@ NEWSYM PrintStr ; Print ASCIIZ string
|
||||
ret
|
||||
|
||||
|
||||
NEWSYM wfkey, db 0
|
||||
SECTION .bss
|
||||
NEWSYM wfkey, resb 1
|
||||
SECTION .text
|
||||
|
||||
NEWSYM WaitForKey ; Wait for a key to be pressed
|
||||
pushad
|
||||
@@ -288,7 +290,9 @@ NEWSYM OSExit
|
||||
call exit
|
||||
jmp DosExit
|
||||
|
||||
NEWSYM TempHandle, dd 0
|
||||
SECTION .bss
|
||||
NEWSYM TempHandle, resd 1
|
||||
SECTION .text
|
||||
|
||||
NEWSYM Open_File
|
||||
pushad
|
||||
@@ -310,10 +314,10 @@ NEWSYM Open_File
|
||||
popad
|
||||
stc
|
||||
ret
|
||||
mov ax,3D00h
|
||||
int 21h
|
||||
; mov ax,3D00h
|
||||
; int 21h
|
||||
; return bx = file handle, carry = error
|
||||
ret
|
||||
; ret
|
||||
|
||||
NEWSYM Open_File_Write
|
||||
pushad
|
||||
@@ -335,10 +339,10 @@ NEWSYM Open_File_Write
|
||||
popad
|
||||
stc
|
||||
ret
|
||||
mov ax,3D01h
|
||||
int 21h
|
||||
; mov ax,3D01h
|
||||
; int 21h
|
||||
; return bx = file handle, carry = error
|
||||
ret
|
||||
; ret
|
||||
|
||||
NEWSYM Create_File
|
||||
pushad
|
||||
@@ -356,11 +360,11 @@ NEWSYM Create_File
|
||||
popad
|
||||
stc
|
||||
ret
|
||||
mov ah,3Ch
|
||||
mov cx,0
|
||||
int 21h
|
||||
; mov ah,3Ch
|
||||
; mov cx,0
|
||||
; int 21h
|
||||
; return bx = file handle
|
||||
ret
|
||||
; ret
|
||||
|
||||
NEWSYM Write_File
|
||||
mov dword[ZFileWriteHandle],0
|
||||
@@ -380,9 +384,9 @@ NEWSYM Write_File
|
||||
mov eax,0
|
||||
stc
|
||||
ret
|
||||
mov ah,40h
|
||||
int 21h
|
||||
ret
|
||||
; mov ah,40h
|
||||
; int 21h
|
||||
; ret
|
||||
|
||||
NEWSYM Read_File
|
||||
mov dword[ZFileReadHandle],0
|
||||
@@ -396,9 +400,9 @@ NEWSYM Read_File
|
||||
mov eax,[TempVarSeek]
|
||||
clc
|
||||
ret
|
||||
mov ah,3Fh
|
||||
int 21h
|
||||
ret
|
||||
; mov ah,3Fh
|
||||
; int 21h
|
||||
; ret
|
||||
|
||||
NEWSYM Delete_File
|
||||
mov [ZFileDelFName],edx
|
||||
@@ -406,9 +410,9 @@ NEWSYM Delete_File
|
||||
call ZFileDelete
|
||||
popad
|
||||
ret
|
||||
mov ah,41h
|
||||
int 21h
|
||||
ret
|
||||
; mov ah,41h
|
||||
; int 21h
|
||||
; ret
|
||||
|
||||
NEWSYM Close_File
|
||||
mov dword[ZCloseFileHandle],0
|
||||
@@ -418,9 +422,9 @@ NEWSYM Close_File
|
||||
popad
|
||||
clc
|
||||
ret
|
||||
mov ah,3Eh
|
||||
int 21h
|
||||
ret
|
||||
; mov ah,3Eh
|
||||
; int 21h
|
||||
; ret
|
||||
|
||||
NEWSYM File_Seek
|
||||
mov word[ZFileSeekPos+2],cx
|
||||
@@ -435,9 +439,9 @@ NEWSYM File_Seek
|
||||
mov dx,cx
|
||||
ret
|
||||
; seek to cx:dx from 0 position, return carry as error
|
||||
mov ax,4200h
|
||||
int 21h
|
||||
ret
|
||||
; mov ax,4200h
|
||||
; int 21h
|
||||
; ret
|
||||
|
||||
NEWSYM File_Seek_End
|
||||
mov word[ZFileSeekPos+2],cx
|
||||
@@ -456,9 +460,9 @@ NEWSYM File_Seek_End
|
||||
mov dx,[TempVarSeek+2]
|
||||
ret
|
||||
; seek to cx:dx from end position, and return file location in dx:ax
|
||||
mov ax,4202h
|
||||
int 21h
|
||||
ret
|
||||
; mov ax,4202h
|
||||
; int 21h
|
||||
; ret
|
||||
|
||||
NEWSYM Get_Time
|
||||
pushad
|
||||
@@ -493,10 +497,10 @@ NEWSYM Get_File_Date
|
||||
mov ecx,[ZFTime]
|
||||
ret
|
||||
; return packed date in dx:cx
|
||||
mov ah,57h
|
||||
mov al,00h
|
||||
int 21h
|
||||
ret
|
||||
; mov ah,57h
|
||||
; mov al,00h
|
||||
; int 21h
|
||||
; ret
|
||||
|
||||
|
||||
RefreshKeybBuffer:
|
||||
@@ -542,7 +546,7 @@ RefreshKeybBuffer:
|
||||
mov ebx,[HoldKey]
|
||||
cmp ebx,0A8h
|
||||
jb .skipdecval
|
||||
sub ebx,80h
|
||||
add ebx,-80h
|
||||
.skipdecval
|
||||
cmp ebx,58h
|
||||
jae .none
|
||||
@@ -567,15 +571,18 @@ RefreshKeybBuffer:
|
||||
mov [Keybtail],al
|
||||
.none
|
||||
ret
|
||||
Keybhead db 0
|
||||
Keybtail db 0
|
||||
HoldKey dd 0
|
||||
HoldKeyBuf times 16 db 0
|
||||
PKeyBuf times 100h db 0
|
||||
|
||||
NEWSYM CurKeyPos, dd 0
|
||||
NEWSYM CurKeyReadPos, dd 0
|
||||
NEWSYM KeyBuffer, times 16 dd 0
|
||||
SECTION .bss
|
||||
Keybhead resb 1
|
||||
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
|
||||
mov al,[CurKeyPos]
|
||||
@@ -618,7 +625,7 @@ NEWSYM Get_Key
|
||||
and dword[CurKeyReadPos],0Fh
|
||||
ret
|
||||
.upper
|
||||
sub word[KeyBuffer+eax*4],100h
|
||||
add word[KeyBuffer+eax*4],-100h
|
||||
xor al,al
|
||||
ret
|
||||
|
||||
@@ -633,7 +640,7 @@ NEWSYM Get_Key
|
||||
test bl,80h
|
||||
jz .notupperkey
|
||||
xor bl,bl
|
||||
sub byte[HoldKeyBuf+eax],80h
|
||||
add byte[HoldKeyBuf+eax],-80h
|
||||
jmp .yesupperkey
|
||||
.notupperkey
|
||||
inc al
|
||||
@@ -649,6 +656,7 @@ NEWSYM Get_Key
|
||||
; return key in al
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
KeyConvTable
|
||||
db 255,27 ,'1','2','3','4','5','6' ; 00h
|
||||
db '7','8','9','0','-','=',8 ,9
|
||||
@@ -673,6 +681,7 @@ KeyConvTableS
|
||||
db 255,255,255,255,255,255,255,255 ; 40h
|
||||
db 200,201,202,203,204,205,206,207
|
||||
db 208,209,210,211,255,255,255,255 ; 50h
|
||||
SECTION .text
|
||||
|
||||
; mov dl,[SRAMDrive]
|
||||
; mov ebx,SRAMDir
|
||||
@@ -703,9 +712,9 @@ NEWSYM Change_Single_Dir
|
||||
stc
|
||||
ret
|
||||
; Dir in edx, return error in carry flag
|
||||
mov ah,3Bh
|
||||
int 21h
|
||||
ret
|
||||
; mov ah,3Bh
|
||||
; int 21h
|
||||
; ret
|
||||
|
||||
NEWSYM Create_Dir
|
||||
; change to dir in edx
|
||||
@@ -721,9 +730,9 @@ NEWSYM Create_Dir
|
||||
popad
|
||||
stc
|
||||
ret
|
||||
mov ah,39h
|
||||
int 21h
|
||||
ret
|
||||
; mov ah,39h
|
||||
; int 21h
|
||||
; ret
|
||||
|
||||
NEWSYM Remove_Dir
|
||||
; remove dir in edx
|
||||
@@ -739,9 +748,9 @@ NEWSYM Remove_Dir
|
||||
popad
|
||||
stc
|
||||
ret
|
||||
mov ah,3Ah
|
||||
int 21h
|
||||
ret
|
||||
; mov ah,3Ah
|
||||
; int 21h
|
||||
; ret
|
||||
|
||||
; mov dl,[LoadDrive]
|
||||
; mov ebx,LoadDir
|
||||
@@ -780,20 +789,20 @@ NEWSYM Change_Dir
|
||||
ret
|
||||
|
||||
; dl = drive, ebx = dir
|
||||
push ebx
|
||||
mov ah,0Eh
|
||||
int 21h
|
||||
mov ah,3Bh
|
||||
mov edx,gotoroot
|
||||
int 21h
|
||||
pop ebx
|
||||
mov edx,ebx
|
||||
cmp byte[edx],0
|
||||
je .nodir
|
||||
mov ah,3Bh
|
||||
int 21h
|
||||
.nodir
|
||||
ret
|
||||
; push ebx
|
||||
; mov ah,0Eh
|
||||
; int 21h
|
||||
; mov ah,3Bh
|
||||
; mov edx,gotoroot
|
||||
; int 21h
|
||||
; pop ebx
|
||||
; mov edx,ebx
|
||||
; cmp byte[edx],0
|
||||
; je .nodir
|
||||
; mov ah,3Bh
|
||||
; int 21h
|
||||
;.nodir
|
||||
; ret
|
||||
|
||||
; mov ebx,LoadDir
|
||||
; mov edx,LoadDrive
|
||||
@@ -820,21 +829,21 @@ NEWSYM Get_Dir
|
||||
call _getdrive
|
||||
; mov ah,19h
|
||||
; int 21h
|
||||
sub al,1
|
||||
add al,-1
|
||||
pop edx
|
||||
mov [edx],al
|
||||
ret
|
||||
|
||||
push edx
|
||||
mov ah,47h
|
||||
mov dl,0
|
||||
mov esi,ebx
|
||||
int 21h
|
||||
mov ah,19h
|
||||
int 21h
|
||||
pop edx
|
||||
mov [edx],al
|
||||
ret
|
||||
; push edx
|
||||
; mov ah,47h
|
||||
; mov dl,0
|
||||
; mov esi,ebx
|
||||
; int 21h
|
||||
; mov ah,19h
|
||||
; int 21h
|
||||
; pop edx
|
||||
; mov [edx],al
|
||||
; ret
|
||||
|
||||
NEWSYM Get_First_Entry
|
||||
; cx = attributes, edx = pointer to wildcard
|
||||
@@ -855,10 +864,10 @@ NEWSYM Get_First_Entry
|
||||
popad
|
||||
stc
|
||||
ret
|
||||
mov ah,4Eh
|
||||
mov al,0
|
||||
int 21h
|
||||
ret
|
||||
; mov ah,4Eh
|
||||
; mov al,0
|
||||
; int 21h
|
||||
; ret
|
||||
|
||||
NEWSYM Get_Next_Entry
|
||||
mov dword[DTALocPos],DTALoc
|
||||
@@ -873,9 +882,9 @@ NEWSYM Get_Next_Entry
|
||||
popad
|
||||
stc
|
||||
ret
|
||||
mov ah,04Fh
|
||||
int 21h
|
||||
ret
|
||||
; mov ah,04Fh
|
||||
; int 21h
|
||||
; ret
|
||||
|
||||
NEWSYM Set_DTA_Address
|
||||
; Only needed for dos stuff
|
||||
@@ -980,91 +989,93 @@ NEWSYM changepal ; 8-bit palette set (changes only)
|
||||
NEWSYM displayfpspal
|
||||
ret
|
||||
|
||||
mov al,128
|
||||
mov dx,03C8h
|
||||
out dx,al
|
||||
inc dx
|
||||
mov al,63
|
||||
out dx,al
|
||||
out dx,al
|
||||
out dx,al
|
||||
mov al,128+64
|
||||
mov dx,03C8h
|
||||
out dx,al
|
||||
inc dx
|
||||
mov al,0
|
||||
out dx,al
|
||||
out dx,al
|
||||
out dx,al
|
||||
ret
|
||||
; mov al,128
|
||||
; mov dx,03C8h
|
||||
; out dx,al
|
||||
; inc dx
|
||||
; mov al,63
|
||||
; out dx,al
|
||||
; out dx,al
|
||||
; out dx,al
|
||||
; mov al,128+64
|
||||
; mov dx,03C8h
|
||||
; out dx,al
|
||||
; inc dx
|
||||
; mov al,0
|
||||
; out dx,al
|
||||
; out dx,al
|
||||
; out dx,al
|
||||
; ret
|
||||
|
||||
NEWSYM superscopepal
|
||||
ret
|
||||
|
||||
mov al,128+16
|
||||
mov dx,03C8h
|
||||
out dx,al
|
||||
inc dx
|
||||
mov al,63
|
||||
out dx,al
|
||||
xor al,al
|
||||
out dx,al
|
||||
out dx,al
|
||||
ret
|
||||
; mov al,128+16
|
||||
; mov dx,03C8h
|
||||
; out dx,al
|
||||
; inc dx
|
||||
; mov al,63
|
||||
; out dx,al
|
||||
; xor al,al
|
||||
; out dx,al
|
||||
; out dx,al
|
||||
; ret
|
||||
|
||||
NEWSYM saveselectpal
|
||||
ret
|
||||
|
||||
; set palette of colors 128,144, and 160 to white, blue, and red
|
||||
mov al,128
|
||||
mov dx,03C8h
|
||||
out dx,al
|
||||
inc dx
|
||||
mov al,63
|
||||
out dx,al
|
||||
out dx,al
|
||||
out dx,al
|
||||
mov al,144
|
||||
mov dx,03C8h
|
||||
out dx,al
|
||||
inc dx
|
||||
xor al,al
|
||||
out dx,al
|
||||
out dx,al
|
||||
mov al,50
|
||||
out dx,al
|
||||
mov al,160
|
||||
mov dx,03C8h
|
||||
out dx,al
|
||||
inc dx
|
||||
mov al,45
|
||||
out dx,al
|
||||
xor al,al
|
||||
out dx,al
|
||||
out dx,al
|
||||
mov al,176
|
||||
mov dx,03C8h
|
||||
out dx,al
|
||||
inc dx
|
||||
mov al,47
|
||||
out dx,al
|
||||
xor al,al
|
||||
out dx,al
|
||||
out dx,al
|
||||
mov al,208
|
||||
mov dx,03C8h
|
||||
out dx,al
|
||||
inc dx
|
||||
mov al,50
|
||||
out dx,al
|
||||
mov al,25
|
||||
out dx,al
|
||||
xor al,al
|
||||
out dx,al
|
||||
ret
|
||||
; mov al,128
|
||||
; mov dx,03C8h
|
||||
; out dx,al
|
||||
; inc dx
|
||||
; mov al,63
|
||||
; out dx,al
|
||||
; out dx,al
|
||||
; out dx,al
|
||||
; mov al,144
|
||||
; mov dx,03C8h
|
||||
; out dx,al
|
||||
; inc dx
|
||||
; xor al,al
|
||||
; out dx,al
|
||||
; out dx,al
|
||||
; mov al,50
|
||||
; out dx,al
|
||||
; mov al,160
|
||||
; mov dx,03C8h
|
||||
; out dx,al
|
||||
; inc dx
|
||||
; mov al,45
|
||||
; out dx,al
|
||||
; xor al,al
|
||||
; out dx,al
|
||||
; out dx,al
|
||||
; mov al,176
|
||||
; mov dx,03C8h
|
||||
; out dx,al
|
||||
; inc dx
|
||||
; mov al,47
|
||||
; out dx,al
|
||||
; xor al,al
|
||||
; out dx,al
|
||||
; out dx,al
|
||||
; mov al,208
|
||||
; mov dx,03C8h
|
||||
; out dx,al
|
||||
; inc dx
|
||||
; mov al,50
|
||||
; out dx,al
|
||||
; mov al,25
|
||||
; out dx,al
|
||||
; xor al,al
|
||||
; out dx,al
|
||||
; ret
|
||||
|
||||
; ** init video mode functions **
|
||||
SECTION .data
|
||||
NEWSYM firstvideo, dd 1
|
||||
SECTION .text
|
||||
|
||||
|
||||
NEWSYM initvideo ; Returns 1 in videotroub if trouble occurs
|
||||
@@ -1131,7 +1142,10 @@ NEWSYM deinitvideo
|
||||
ret
|
||||
|
||||
; ** 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
|
||||
cmp dword [converta],1
|
||||
jne near .skipconv
|
||||
@@ -1171,7 +1185,7 @@ NEWSYM vidpastecopyscr ; GUI screen render
|
||||
mov eax,[vidbuffer]
|
||||
mov ecx,224*288
|
||||
mov edx,ecx
|
||||
sub ecx,288
|
||||
add ecx,-288
|
||||
dec edx
|
||||
.loop
|
||||
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 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 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
|
||||
@@ -1391,12 +1404,11 @@ NEWSYM ScanCodeListing
|
||||
db 'P2B','P2Y','P2S','P2T','P2U','P2D','P2L','P2R'
|
||||
db 'P2A','P2X','P2L','P2R',' ',' ',' ',' '
|
||||
|
||||
SECTION .text
|
||||
|
||||
SECTION .data
|
||||
NEWSYM ZSNESBase, dd 0
|
||||
TempVarSeek dd 0
|
||||
gotoroot db '\',0
|
||||
|
||||
SECTION .bss
|
||||
NEWSYM ZSNESBase, resd 1
|
||||
TempVarSeek resd 1
|
||||
SECTION .text
|
||||
|
||||
; ****************************
|
||||
@@ -1408,13 +1420,14 @@ NEWSYM Init_Mouse
|
||||
mov eax,01h
|
||||
ret
|
||||
|
||||
NEWSYM WMouseX, dd 0
|
||||
NEWSYM WMouseY, dd 0
|
||||
NEWSYM WMouseMoveX, dd 0
|
||||
NEWSYM WMouseMoveY, dd 0
|
||||
NEWSYM WMouseButton, dd 0
|
||||
|
||||
SECTION .bss
|
||||
NEWSYM WMouseX, resd 1
|
||||
NEWSYM WMouseY, resd 1
|
||||
NEWSYM WMouseMoveX, resd 1
|
||||
NEWSYM WMouseMoveY, resd 1
|
||||
NEWSYM WMouseButton, resd 1
|
||||
|
||||
SECTION .text
|
||||
|
||||
|
||||
NEWSYM Get_MouseData ; Returns both pressed and coordinates
|
||||
@@ -1543,15 +1556,18 @@ NEWSYM Check60hz
|
||||
; Call the timer update function here
|
||||
pushad
|
||||
call CheckTimers
|
||||
; call FrameSemaphore
|
||||
popad
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
BitPosR db 11
|
||||
BitPosG db 5
|
||||
BitPosB db 0
|
||||
BitSizeR db 5
|
||||
BitSizeG db 6
|
||||
BitSizeB db 5
|
||||
SECTION .text
|
||||
|
||||
|
||||
InitializeGfxStuff:
|
||||
@@ -1714,19 +1730,22 @@ NEWSYM SetInputDevice
|
||||
mov dword[eax+44],46
|
||||
ret
|
||||
|
||||
|
||||
SECTION .bss
|
||||
; ****************************
|
||||
; TCP/IP Stuff
|
||||
; ****************************
|
||||
|
||||
; TCPIPPortNum
|
||||
NEWSYM TCPIPStatus, db 0
|
||||
NEWSYM PacketSendSize, dd 0
|
||||
NEWSYM PacketRecvSize, dd 0
|
||||
NEWSYM PacketRecvPtr, dd 0
|
||||
NEWSYM PacketSendArray, times 2048+256 db 0
|
||||
NEWSYM PacketRecvArray, times 2048+256 db 0
|
||||
NEWSYM IPAddrStr, times 20 db 0
|
||||
NEWSYM RemoteDisconnect, db 0
|
||||
NEWSYM TCPIPStatus, resb 1
|
||||
NEWSYM PacketSendSize, resd 1
|
||||
NEWSYM PacketRecvSize, resd 1
|
||||
NEWSYM PacketRecvPtr, resd 1
|
||||
NEWSYM PacketSendArray, resb 2048+256
|
||||
NEWSYM PacketRecvArray, resb 2048+256
|
||||
NEWSYM IPAddrStr, resb 20
|
||||
NEWSYM RemoteDisconnect, resb 1
|
||||
SECTION .text
|
||||
|
||||
NEWSYM TCPIPStartServer
|
||||
mov byte[RemoteDisconnect],0
|
||||
@@ -1772,7 +1791,9 @@ NEWSYM TCPIPWaitForConnection
|
||||
popad
|
||||
mov eax,-1
|
||||
ret
|
||||
.temp dd 0
|
||||
SECTION .bss
|
||||
.temp resd 1
|
||||
SECTION .text
|
||||
|
||||
NEWSYM TCPIPInitConnectToServer
|
||||
pushad
|
||||
@@ -1825,7 +1846,9 @@ NEWSYM TCPIPConnectToServer
|
||||
popad
|
||||
mov eax,[.temp]
|
||||
ret
|
||||
.temp dd 0
|
||||
SECTION .bss
|
||||
.temp resd 1
|
||||
SECTION .text
|
||||
|
||||
NEWSYM TCPIPConnectToServerW
|
||||
; int ConnectServer(char *servername, unsigned short port)
|
||||
@@ -1843,7 +1866,9 @@ NEWSYM TCPIPConnectToServerW
|
||||
popad
|
||||
mov eax,[.temp]
|
||||
ret
|
||||
.temp dd 0
|
||||
SECTION .bss
|
||||
.temp resd 0
|
||||
SECTION .text
|
||||
|
||||
NEWSYM TCPIPStoreByte
|
||||
; Store al into the array
|
||||
@@ -2025,17 +2050,93 @@ NEWSYM GetTimeInSeconds
|
||||
add eax,ebx
|
||||
ret
|
||||
|
||||
SECTION .bss
|
||||
|
||||
SystemTime:
|
||||
.wYear dw 0
|
||||
.wMonth dw 0
|
||||
.wDayOfWeek dw 0
|
||||
.wDay dw 0
|
||||
.wHour dw 0
|
||||
.wMinute dw 0
|
||||
.wSecond dw 0
|
||||
.wMilliseconds dw 0
|
||||
.wYear resw 1
|
||||
.wMonth resw 1
|
||||
.wDayOfWeek resw 1
|
||||
.wDay resw 1
|
||||
.wHour resw 1
|
||||
.wMinute resw 1
|
||||
.wSecond resw 1
|
||||
.wMilliseconds resw 1
|
||||
|
||||
|
||||
SECTION .text
|
||||
%ifdef __MINGW__
|
||||
NEWSYM WinIntRFAsmEnd
|
||||
%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);
|
||||
DWORD LastUsedPos=0;
|
||||
DWORD CurMode=-1;
|
||||
int InitDirectDraw();
|
||||
int ReInitSound();
|
||||
void initDirectDraw()
|
||||
{
|
||||
InitDirectDraw();
|
||||
}
|
||||
void reInitSound()
|
||||
{
|
||||
ReInitSound();
|
||||
}
|
||||
}
|
||||
|
||||
void DDrawError(){
|
||||
|
||||
Reference in New Issue
Block a user