From 10055591635cd9d87cf10d74371ef060feabcc9d Mon Sep 17 00:00:00 2001 From: n-a-c-h <> Date: Wed, 8 Dec 2004 23:43:27 +0000 Subject: [PATCH] Some SRAM stuff cleanup, slight fix. --- zsnes/src/gui/gui.asm | 87 +++++++++++++++---------------------------- zsnes/src/initc.c | 5 +++ 2 files changed, 35 insertions(+), 57 deletions(-) diff --git a/zsnes/src/gui/gui.asm b/zsnes/src/gui/gui.asm index 71f33e0c..392356ad 100644 --- a/zsnes/src/gui/gui.asm +++ b/zsnes/src/gui/gui.asm @@ -1471,74 +1471,47 @@ NEWSYM SaveSramData mov ebx,SRAMDir 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 - cmp byte[SFXEnable],1 - 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 + push edx ;Backup data to save mov edx,fnames+1 call Create_File jc .failed mov bx,ax xor ecx,ecx mov ecx,[ramsize] - mov edx,[sram] + pop edx ;Restore data to save call Write_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 - +.savesramdone + call SaveCombFile ; change dir to InitDrive/InitDir diff --git a/zsnes/src/initc.c b/zsnes/src/initc.c index 098a84ba..6777bd7d 100755 --- a/zsnes/src/initc.c +++ b/zsnes/src/initc.c @@ -395,6 +395,7 @@ void MirrorROM() #define SRAMSizeOffset 24 #define CompanyOffset 26 extern bool SFXEnable; +extern bool SETAEnable; void SetupSramSize() { unsigned char *ROM = (unsigned char *)romdata; @@ -409,6 +410,10 @@ void SetupSramSize() ramsize = 256; } } + else if (SETAEnable) + { + ramsize = 32; + } else { ramsize = ((ROM[infoloc+SRAMSizeOffset]) ? (8 << ((unsigned int)ROM[infoloc+SRAMSizeOffset])) : 0);