Some SRAM stuff cleanup, slight fix.

This commit is contained in:
n-a-c-h
2004-12-08 23:43:27 +00:00
parent 5cf0e6918b
commit 1005559163
2 changed files with 35 additions and 57 deletions

View File

@@ -1471,74 +1471,47 @@ 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 .failed
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
stim stim
.savesramdone
call SaveCombFile call SaveCombFile
; change dir to InitDrive/InitDir ; change dir to InitDrive/InitDir

View File

@@ -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);