Some SRAM stuff cleanup, slight fix.
This commit is contained in:
@@ -1471,73 +1471,46 @@ NEWSYM SaveSramData
|
|||||||
mov ebx,SRAMDir
|
mov ebx,SRAMDir
|
||||||
call Change_Dir
|
call Change_Dir
|
||||||
|
|
||||||
|
cmp byte[sramsavedis],1
|
||||||
|
je .savesramdone
|
||||||
|
|
||||||
|
cmp dword[ramsize],0
|
||||||
|
je .savesramdone
|
||||||
|
|
||||||
|
mov edx,[sram]
|
||||||
|
cmp byte[SFXEnable],1
|
||||||
|
jne .notsfx
|
||||||
|
mov edx,[sfxramdata]
|
||||||
|
.notsfx
|
||||||
|
cmp byte[SA1Enable],1
|
||||||
|
jne .notsa1
|
||||||
|
mov edx,[SA1RAMArea]
|
||||||
|
.notsa1
|
||||||
|
cmp byte[SETAEnable],1
|
||||||
|
jne .notseta
|
||||||
|
mov edx,[setaramdata]
|
||||||
|
.notseta
|
||||||
|
cmp edx,[sram]
|
||||||
|
je .notspecial
|
||||||
|
cmp byte[CHIPBATT],0
|
||||||
|
je .savesramdone
|
||||||
|
.notspecial
|
||||||
|
|
||||||
clim
|
clim
|
||||||
|
|
||||||
cmp byte[SFXEnable],1
|
push edx ;Backup data to save
|
||||||
je .nosram
|
|
||||||
cmp byte[SA1Enable],1
|
|
||||||
je .nosram
|
|
||||||
cmp byte[sramsavedis],1
|
|
||||||
je .nosram
|
|
||||||
cmp dword[ramsize],0
|
|
||||||
je .nosram
|
|
||||||
xor eax,eax
|
|
||||||
xor ebx,ebx
|
|
||||||
xor ecx,ecx
|
|
||||||
xor edx,edx
|
|
||||||
xor esi,esi
|
|
||||||
xor edi,edi
|
|
||||||
mov edx,fnames+1
|
mov edx,fnames+1
|
||||||
call Create_File
|
call Create_File
|
||||||
jc .failed
|
jc .failed
|
||||||
mov bx,ax
|
mov bx,ax
|
||||||
xor ecx,ecx
|
xor ecx,ecx
|
||||||
mov ecx,[ramsize]
|
mov ecx,[ramsize]
|
||||||
mov edx,[sram]
|
pop edx ;Restore data to save
|
||||||
call Write_File
|
call Write_File
|
||||||
call Close_File
|
call Close_File
|
||||||
.nosram
|
|
||||||
cmp byte[SFXEnable],0
|
|
||||||
je .nosfxbatt
|
|
||||||
cmp byte[CHIPBATT],0
|
|
||||||
je .nosfxbatt
|
|
||||||
mov edx,fnames+1
|
|
||||||
call Create_File
|
|
||||||
jc .failed
|
|
||||||
mov bx,ax
|
|
||||||
mov ecx,[ramsize]
|
|
||||||
mov edx,[sfxramdata]
|
|
||||||
call Write_File
|
|
||||||
call Close_File
|
|
||||||
.nosfxbatt
|
|
||||||
|
|
||||||
cmp byte[SETAEnable],0
|
|
||||||
je .nosetasram
|
|
||||||
mov edx,fnames+1
|
|
||||||
call Create_File
|
|
||||||
jc .failed
|
|
||||||
mov bx,ax
|
|
||||||
mov ecx,4096
|
|
||||||
mov edx,[setaramdata]
|
|
||||||
call Write_File
|
|
||||||
call Close_File
|
|
||||||
.nosetasram
|
|
||||||
|
|
||||||
cmp byte[SA1Enable],1
|
|
||||||
jne .nosa1
|
|
||||||
cmp byte[CHIPBATT],1
|
|
||||||
jne .nosa1
|
|
||||||
mov edx,fnames+1
|
|
||||||
call Create_File
|
|
||||||
jc .failed
|
|
||||||
mov bx,ax
|
|
||||||
mov ecx,[ramsize]
|
|
||||||
mov edx,[SA1RAMArea]
|
|
||||||
call Write_File
|
|
||||||
call Close_File
|
|
||||||
.nosa1
|
|
||||||
.failed
|
.failed
|
||||||
stim
|
stim
|
||||||
|
.savesramdone
|
||||||
|
|
||||||
call SaveCombFile
|
call SaveCombFile
|
||||||
|
|
||||||
|
|||||||
@@ -395,6 +395,7 @@ void MirrorROM()
|
|||||||
#define SRAMSizeOffset 24
|
#define SRAMSizeOffset 24
|
||||||
#define CompanyOffset 26
|
#define CompanyOffset 26
|
||||||
extern bool SFXEnable;
|
extern bool SFXEnable;
|
||||||
|
extern bool SETAEnable;
|
||||||
void SetupSramSize()
|
void SetupSramSize()
|
||||||
{
|
{
|
||||||
unsigned char *ROM = (unsigned char *)romdata;
|
unsigned char *ROM = (unsigned char *)romdata;
|
||||||
@@ -409,6 +410,10 @@ void SetupSramSize()
|
|||||||
ramsize = 256;
|
ramsize = 256;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (SETAEnable)
|
||||||
|
{
|
||||||
|
ramsize = 32;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ramsize = ((ROM[infoloc+SRAMSizeOffset]) ? (8 << ((unsigned int)ROM[infoloc+SRAMSizeOffset])) : 0);
|
ramsize = ((ROM[infoloc+SRAMSizeOffset]) ? (8 << ((unsigned int)ROM[infoloc+SRAMSizeOffset])) : 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user