Made ZMV store the start method, powercycle ZMVs are now possible, using a power-on state

This commit is contained in:
grinvader
2005-03-23 17:56:56 +00:00
parent 8b0b13366e
commit 80e723c9f9
6 changed files with 271 additions and 199 deletions

View File

@@ -34,6 +34,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#endif
#include "zip/zunzip.h"
#include "jma/zsnesjma.h"
#include "asm_call.h"
#ifndef __GNUC__
#define strcasecmp stricmp
@@ -1279,31 +1280,6 @@ extern unsigned char *vcache2b;
extern unsigned char *vcache4b;
extern unsigned char *vcache8b;
void clearmem2();
void clearmem()
{
memset(vidbuffer, 0, 131072);
memset(wramdataa, 0, 65536);
memset(ram7fa, 0, 65536);
memset(vram, 0, 65536);
memset(srama, 0, 65536);
memset(debugbufa, 0, 80000);
memset(regptra, 0, 49152);
memset(regptwa, 0, 49152);
memset(vcache2b, 0, 262144);
memset(vcache4b, 0, 131072);
memset(vcache8b, 0, 65536);
memset(vidmemch2, 0, 4096);
memset(vidmemch4, 0, 4096);
memset(vidmemch8, 0, 4096);
memset(pal16b, 0, 1024);
memset(pal16bcl, 0, 1024);
memset(pal16bclha, 0, 1024);
memset(pal16bxcl, 0xFF, 256);
memset(romdata, 0xFF, maxromspace+32768);
clearmem2();
}
void clearSPCRAM()
{
/*
@@ -1333,6 +1309,30 @@ void clearmem2()
clearSPCRAM();
}
void clearmem()
{
memset(vidbuffer, 0, 131072);
memset(wramdataa, 0, 65536);
memset(ram7fa, 0, 65536);
memset(vram, 0, 65536);
memset(srama, 0, 65536);
memset(debugbufa, 0, 80000);
memset(regptra, 0, 49152);
memset(regptwa, 0, 49152);
memset(vcache2b, 0, 262144);
memset(vcache4b, 0, 131072);
memset(vcache8b, 0, 65536);
memset(vidmemch2, 0, 4096);
memset(vidmemch4, 0, 4096);
memset(vidmemch8, 0, 4096);
memset(pal16b, 0, 1024);
memset(pal16bcl, 0, 1024);
memset(pal16bclha, 0, 1024);
memset(pal16bxcl, 0xFF, 256);
memset(romdata, 0xFF, maxromspace+32768);
clearmem2();
}
extern unsigned char BRRBuffer[32];
extern unsigned char echoon0;
extern unsigned int PHdspsave;
@@ -1803,3 +1803,35 @@ unsigned int showinfogui()
Msgptr = CSStatus;
return (MsgCount);
}
extern unsigned int nmiprevaddrl, nmiprevaddrh, nmirept, nmiprevline, nmistatus;
extern unsigned int spcnumread, spchalted;
extern unsigned char NextLineCache, sramsavedis, sndrot, regsbackup[3019];
extern unsigned char yesoutofmemory;
void powercycle()
{
memset(sram, 0xFF, 8192*4);
clearSPCRAM();
nmiprevaddrl = 0;
nmiprevaddrh = 0;
nmirept = 0;
nmiprevline = 224;
nmistatus = 0;
spcnumread = 0;
spchalted = ~0;
NextLineCache = 0;
curexecstate = 1;
asm_call(SetupROM);
asm_call(initsnes);
sramsavedis = 0;
memcpy(&sndrot, regsbackup, 3019);
if (yesoutofmemory == 1) { asm_call(outofmemfix); }
asm_call(GUIDoReset);
}