Silly mouse behaviour removed, ported the binary config file handling code to C.

This commit is contained in:
grinvader
2005-05-31 17:37:50 +00:00
parent 8dcef02eea
commit ad2f191c9a
10 changed files with 159 additions and 157 deletions

View File

@@ -41,7 +41,7 @@ CPUOBJ=${CPUDIR}/addrni.o ${CPUDIR}/dma.o ${CPUDIR}/dsp.o ${CPUDIR}/dspproc.o\
${CPUDIR}/memtable.o ${CPUDIR}/spc700.o ${CPUDIR}/stable.o\ ${CPUDIR}/memtable.o ${CPUDIR}/spc700.o ${CPUDIR}/stable.o\
${CPUDIR}/table.o ${CPUDIR}/tableb.o ${CPUDIR}/tablec.o ${CPUDIR}/table.o ${CPUDIR}/tableb.o ${CPUDIR}/tablec.o
GUIOBJ=${GUIDIR}/gui.o ${GUIDIR}/menu.o GUIOBJ=${GUIDIR}/gui.o ${GUIDIR}/guifuncs.o ${GUIDIR}/menu.o
VIDEOBJ=${VIDEODIR}/makev16b.o ${VIDEODIR}/makev16t.o ${VIDEODIR}/makevid.o\ VIDEOBJ=${VIDEODIR}/makev16b.o ${VIDEODIR}/makev16t.o ${VIDEODIR}/makevid.o\
${VIDEODIR}/mode716.o ${VIDEODIR}/mode716b.o ${VIDEODIR}/mode716d.o\ ${VIDEODIR}/mode716.o ${VIDEODIR}/mode716b.o ${VIDEODIR}/mode716d.o\
@@ -77,7 +77,7 @@ MAINOBJ=cfgload.o endmem.o init.o initc.o uic.o patch.o ui.o vcache.o version.o\
OBJS=${CHIPSOBJ} ${CPUOBJ} ${WINOBJ} ${WINDOSOBJ} ${GUIOBJ} ${VIDEOBJ} ${MAINOBJ} ${NETOBJ} ${ZIPOBJ} ${EFFECTSOBJ} ${JMAOBJ} OBJS=${CHIPSOBJ} ${CPUOBJ} ${WINOBJ} ${WINDOSOBJ} ${GUIOBJ} ${VIDEOBJ} ${MAINOBJ} ${NETOBJ} ${ZIPOBJ} ${EFFECTSOBJ} ${JMAOBJ}
.SUFFIXES: .cpp .c .asm .SUFFIXES: .cpp .c .asm
%.o: %.cpp %.o: %.cpp
@CXX@ @CFLAGS@ -o $@ -c $< @CXX@ @CFLAGS@ -o $@ -c $<
@@ -188,6 +188,7 @@ ${GUIDIR}/gui.o: ${GUIDIR}/gui.asm ${GUIDIR}/guitools.inc\
${GUIDIR}/guimisc.inc ${GUIDIR}/guimouse.inc ${GUIDIR}/guiwindp.inc\ ${GUIDIR}/guimisc.inc ${GUIDIR}/guimouse.inc ${GUIDIR}/guiwindp.inc\
${GUIDIR}/guikeys.inc ${GUIDIR}/guicheat.inc\ ${GUIDIR}/guikeys.inc ${GUIDIR}/guicheat.inc\
${GUIDIR}/guicombo.inc ${GUIDIR}/guiload.inc macros.mac ${GUIDIR}/guicombo.inc ${GUIDIR}/guiload.inc macros.mac
${GUIDIR}/guifuncs.o: ${GUIDIR}/guifuncs.c
${GUIDIR}/menu.o: ${GUIDIR}/menu.asm macros.mac ${GUIDIR}/menu.o: ${GUIDIR}/menu.asm macros.mac
${VIDEODIR}/newgfx.o:${VIDEODIR}/newgfx.asm ${VIDEODIR}/vidmacro.mac\ ${VIDEODIR}/newgfx.o:${VIDEODIR}/newgfx.asm ${VIDEODIR}/vidmacro.mac\
${VIDEODIR}/newgfx2.mac ${VIDEODIR}/newgfx.mac macros.mac ${VIDEODIR}/newgfx2.mac ${VIDEODIR}/newgfx.mac macros.mac

View File

@@ -44,6 +44,7 @@ source_files = Split("""
effects/water.c effects/water.c
effects/smoke.c effects/smoke.c
gui/gui.asm gui/gui.asm
gui/guifuncs.c
gui/menu.asm gui/menu.asm
video/makev16b.asm video/makev16b.asm
video/makev16t.asm video/makev16t.asm

View File

@@ -102,7 +102,9 @@ NEWSYM SystemInit
mov ebx,InitDir mov ebx,InitDir
call Change_Dir call Change_Dir
pushad
call GUIRestoreVars ; Load GUI stuff call GUIRestoreVars ; Load GUI stuff
popad
call getcfg ; Load cfg stuff call getcfg ; Load cfg stuff
call obtaindir ; Get Save/Init Directories call obtaindir ; Get Save/Init Directories
call ConvertJoyMap ; Mini joystick init call ConvertJoyMap ; Mini joystick init
@@ -124,7 +126,9 @@ NEWSYM createnewcfg
call DOScreatenewcfg call DOScreatenewcfg
ret ret
NEWSYM GUISaveVars NEWSYM GUISaveVars
pushad
call ExecGUISaveVars call ExecGUISaveVars
popad
ret ret
; Allocate memory - see allocptr in ui.asm for details on what to allocate ; Allocate memory - see allocptr in ui.asm for details on what to allocate

View File

@@ -252,7 +252,7 @@ GUIMiscMenuData
; If menu should go to Load or last position when ESC ; If menu should go to Load or last position when ESC
; is pressed from game ; is pressed from game
GUIRAdd db 15 NEWSYM GUIRAdd, db 15
GUIGAdd db 10 GUIGAdd db 10
GUIBAdd db 31 GUIBAdd db 31
mousewrap db 0 ; 0 = mouse boundries, 1 = mouse wrap mousewrap db 0 ; 0 = mouse boundries, 1 = mouse wrap
@@ -335,8 +335,8 @@ prevloadnames times 16*10 db 32
prevloaddname times 128*10 db 0 prevloaddname times 128*10 db 0
prevloadfname times 16*10 db 32 prevloadfname times 16*10 db 32
prevlfreeze db 0 prevlfreeze db 0
GUIsmallscreenon db 0 NEWSYM GUIsmallscreenon, db 0
GUIScreenScale db 0 NEWSYM GUIScreenScale, db 0
NEWSYM pl3contrl, db 0 NEWSYM pl3contrl, db 0
NEWSYM pl4contrl, db 0 NEWSYM pl4contrl, db 0
@@ -613,12 +613,12 @@ NEWSYM SDRatio, db 0 ; 0 = /2, 28 = /30
NEWSYM KeyEmuSpeedUp, dd 0 NEWSYM KeyEmuSpeedUp, dd 0
NEWSYM KeyEmuSpeedDown, dd 0 NEWSYM KeyEmuSpeedDown, dd 0
NEWSYM AllowUDLR, db 0 NEWSYM AllowUDLR, db 0
NEWSYM EEgg, db 0
;end NEWSYM end ;end NEWSYM end
GUIsave equ $-GUIRAdd GUIsave equ $-GUIRAdd
NEWSYM PHnumGUIsave, dd GUIsave
section .bss SECTION .bss
NEWSYM ForceROMTiming, resb 1 NEWSYM ForceROMTiming, resb 1
NEWSYM ForceHiLoROM, resb 1 NEWSYM ForceHiLoROM, resb 1
@@ -639,7 +639,7 @@ GUIwinsizex dd 0,244 ,126 ,189 ,167 ,180 ,188 ,244 ,8*16,240 ,240 ,190 ,9*16,8
GUIwinsizey dd 0,190 ,3*16,166 ,190 ,192 ,188 ,191 ,40 ,170 ,150 ,190 ,42 ,40 ,42 ,160 ,190 ,100 ,100 ,190 ,160 ,180 GUIwinsizey dd 0,190 ,3*16,166 ,190 ,192 ,188 ,191 ,40 ,170 ,150 ,190 ,42 ,40 ,42 ,160 ,190 ,100 ,100 ,190 ,160 ,180
GUIwinptr db 0 GUIwinptr db 0
section .bss SECTION .bss
GUItextcolor resb 5 GUItextcolor resb 5
GUIcmenupos resb 1 GUIcmenupos resb 1
GUIescpress resb 1 GUIescpress resb 1
@@ -707,6 +707,7 @@ NEWSYM GUIcurrentdir, resb 131
curgsval resb 1 curgsval resb 1
SECTION .data SECTION .data
NEWSYM EEgg, db 0
RestoreValues db 0 RestoreValues db 0
NEWSYM numdrives, dd 26 NEWSYM numdrives, dd 26
SubPalTable times 256 db 1 ; Corresponding Gray Scale Color SubPalTable times 256 db 1 ; Corresponding Gray Scale Color
@@ -863,142 +864,11 @@ GUIQuickLoadUpdate:
jnz near .mainloop jnz near .mainloop
ret ret
CalcChecksum:
mov eax,GUIRAdd
mov ecx,100
xor edx,edx
xor ebx,ebx
.loop
mov bl,[eax]
add edx,ebx
inc eax
dec ecx
jnz .loop
mov ebx,edx
xor bx,1011001011101101b
xor eax,eax
test bh,08h
jz .nb
mov al,1
.nb
and bh,0F7h
test bl,10h
jz .nb2
or bh,08h
.nb2
and bl,0EFh
test al,1
jz .nb3
or bl,10h
.nb3
xor bl,bh
or bl,80h
ret
NEWSYM GUIRestoreVars
mov edx,GUIFName
call Open_File
jc .fail
mov bx,ax
mov edx,GUIRAdd
mov ecx,GUIsave
call Read_File
call Close_File
.fail
mov al,[GUIsmallscreenon]
mov [smallscreenon],al
mov al,[GUIScreenScale]
mov [ScreenScale],al
call CalcChecksum
cmp byte[TimeChecker],bl
jne .nottimer
mov byte[ShowTimer],1
mov dword[NumSnow],200
mov dword[SnowTimer],0
.nottimer
cmp byte[ReCalib],0
je .nocal
mov byte[ReCalib],0
mov dword[CalibXmin],0
mov dword[CalibXmax],0
mov dword[CalibYmin],0
mov dword[CalibYmax],0
mov dword[CalibXmin209],0
mov dword[CalibXmax209],0
mov dword[CalibYmin209],0
mov dword[CalibYmax209],0
.nocal
mov dword[NumComboGlob],0
mov edx,GUICName
call Open_File
jc .failb
mov bx,ax
mov edx,ComboBlHeader
mov ecx,23
call Read_File
mov al,byte[ComboBlHeader+22]
or al,al
jz .done
mov [NumComboGlob],al
mov ecx,[NumComboGlob]
mov edx,ecx
shl ecx,6
add ecx,edx
add ecx,edx
mov edx,CombinDataGlob
call Read_File
.done
call Close_File
.failb
ret
SECTION .data SECTION .data
NEWSYM ComboHeader, db 'Key Combination File',26,1,0 NEWSYM ComboHeader, db 'Key Combination File',26,1,0
NEWSYM ComboBlHeader, times 23 db 0 NEWSYM ComboBlHeader, times 23 db 0
SECTION .text SECTION .text
NEWSYM ExecGUISaveVars
cmp byte[ShowTimer],1
jne .nottimer
call CalcChecksum
mov byte[TimeChecker],bl
.nottimer
cmp byte[cfgdontsave],1
je .failed
mov edx,GUIFName
call Create_File
jc .failed
mov bx,ax
mov edx,GUIRAdd
mov ecx,GUIsave
call Write_File
call Close_File
.failed
mov al,[NumComboGlob]
or al,al
jz .failb
mov [ComboHeader+22],al
mov edx,GUICName
call Create_File
jc .failb
mov bx,ax
mov edx,ComboHeader
mov ecx,23
call Write_File
mov ecx,[NumComboGlob]
mov edx,ecx
shl ecx,6
add ecx,edx
add ecx,edx
mov edx,CombinDataGlob
call Write_File
call Close_File
.failb
ret
%macro GUIInitIRQs 0 %macro GUIInitIRQs 0
call GUIInit call GUIInit
mov esi,pressed mov esi,pressed
@@ -1235,7 +1105,7 @@ db 1,1,0,1,1,0,1,1,0,0,1,1,1,1,1,1
SantaPos dd 272 SantaPos dd 272
SantaNextT dd 36*15 SantaNextT dd 36*15
NumSnow dd 0 NEWSYM NumSnow, dd 0
NEWSYM SnowTimer, dd 36*30 NEWSYM SnowTimer, dd 36*30
MsgGiftLeft dd 0 MsgGiftLeft dd 0
SECTION .text SECTION .text
@@ -1471,9 +1341,9 @@ NEWSYM ProcRewind
mov dword[eax+8],0 mov dword[eax+8],0
.noteq .noteq
ret ret
section .bss SECTION .bss
.temp resd 2 .temp resd 2
section .text SECTION .text
%macro ProcessOneDigit 1 %macro ProcessOneDigit 1
cmp dl,9 cmp dl,9
@@ -2204,7 +2074,7 @@ guipostvideo:
je .pressedokay je .pressedokay
;This is to make all ports not register space bar from being pressed earlier ;This is to make all ports not register space bar from being pressed earlier
mov byte[pressed+2Ch],0 mov byte[pressed+2Ch],0
call JoyRead call JoyRead

126
zsnes/src/gui/guifuncs.c Normal file
View File

@@ -0,0 +1,126 @@
/*
Copyright (C) 1997-2005 ZSNES Team ( zsKnight, _Demo_, pagefault, Nach )
http://www.zsnes.com
http://sourceforge.net/projects/zsnes
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later
version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifdef __LINUX__
#include "gblhdr.h"
#define DIR_SLASH "/"
#else
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <zlib.h>
#define DIR_SLASH "\\"
#endif
extern unsigned char ComboHeader[23], ComboBlHeader[23], GUIRAdd, GUIFName[256];
extern unsigned char GUICName[256], GUIsmallscreenon, ScreenScale, TimeChecker;
extern unsigned char GUIScreenScale, ShowTimer, ReCalib, cfgdontsave;
extern unsigned char CombinDataGlob[3300];
extern unsigned int PHnumGUIsave, smallscreenon, SnowTimer, NumSnow;
extern unsigned int CalibXmin, CalibXmax, CalibYmin, CalibYmax, NumComboGlob;
extern unsigned int CalibXmin209, CalibXmax209, CalibYmin209, CalibYmax209;
unsigned char CalcCfgChecksum()
{
unsigned char *ptr = &GUIRAdd, i = 0;
unsigned short chksum = 0;
for (; i < 100 ; i++, ptr++) { chksum += *ptr; }
chksum ^= 0xB2ED; // xor bx,1011001011101101b
i = (chksum & 0x800) >> 8;
chksum &= 0xF7FF; // and bh,0F7h
if (chksum & 0x10) { chksum |= 0x800; }
chksum &= 0xFFEF; // and bl,0EFh
if (i) { chksum |= 0x10; }
i = (chksum >> 8);
return (((chksum & 0xFF) ^ i) | 0x80);
}
void GUIRestoreVars()
{
FILE *cfg_fp;
if ((cfg_fp = fopen(GUIFName, "rb")))
{
fread(&GUIRAdd, 1, PHnumGUIsave, cfg_fp);
fclose(cfg_fp);
}
smallscreenon = (unsigned int)GUIsmallscreenon;
ScreenScale = GUIScreenScale;
if (TimeChecker == CalcCfgChecksum());
{
ShowTimer = 1;
NumSnow = 200;
SnowTimer = 0;
}
if (ReCalib)
{
ReCalib = 0;
CalibXmin = CalibXmax = CalibYmin = CalibYmax = 0;
CalibXmin209 = CalibXmax209 = CalibYmin209 = CalibYmax209 = 0;
}
NumComboGlob = 0;
if ((cfg_fp = fopen(GUICName, "rb")))
{
fread(ComboBlHeader, 1, 23, cfg_fp);
if (ComboBlHeader[22])
{
NumComboGlob = ComboBlHeader[22];
fread(CombinDataGlob, 1, (NumComboGlob << 6)+2*NumComboGlob, cfg_fp);
}
fclose(cfg_fp);
}
}
void ExecGUISaveVars()
{
FILE *cfg_fp;
if (ShowTimer == 1) { TimeChecker = CalcCfgChecksum(); }
if (!cfgdontsave && (cfg_fp = fopen(GUIFName, "wb")))
{
fwrite(&GUIRAdd, 1, PHnumGUIsave, cfg_fp);
fclose(cfg_fp);
}
if (NumComboGlob && (cfg_fp = fopen(GUICName, "wb")))
{
ComboHeader[22] = NumComboGlob;
fwrite(ComboHeader, 1, 23, cfg_fp);
fwrite(CombinDataGlob, 1, (NumComboGlob << 6)+2*NumComboGlob, cfg_fp);
fclose(cfg_fp);
}
}

View File

@@ -4000,7 +4000,7 @@ GUIccombviewloc resd 1
GUIccombcursloc resd 1 GUIccombcursloc resd 1
GUIccomblcursloc resd 1 GUIccomblcursloc resd 1
NEWSYM NumCombo, resd 1 NEWSYM NumCombo, resd 1
NumComboGlob resd 1 NEWSYM NumComboGlob, resd 1
NEWSYM NumComboLocl, resd 1 NEWSYM NumComboLocl, resd 1
GUICSStC resd 3 GUICSStC resd 3
GUIComboKey resd 1 GUIComboKey resd 1

View File

@@ -114,13 +114,11 @@ NEWSYM SystemInit
call Change_Dir call Change_Dir
%endif %endif
pushad
call GUIRestoreVars ; Load GUI stuff call GUIRestoreVars ; Load GUI stuff
popad
call getcfg ; Load cfg stuff call getcfg ; Load cfg stuff
call obtaindir ; Get Save/Init Directories call obtaindir ; Get Save/Init Directories
call ConvertJoyMap ; Mini joystick init call ConvertJoyMap ; Mini joystick init
call tparms call tparms
pushad pushad
@@ -137,7 +135,9 @@ NEWSYM createnewcfg
call DOScreatenewcfg call DOScreatenewcfg
ret ret
NEWSYM GUISaveVars NEWSYM GUISaveVars
pushad
call ExecGUISaveVars call ExecGUISaveVars
popad
ret ret
; Allocate memory - see allocptr in ui.asm for details on what to allocate ; Allocate memory - see allocptr in ui.asm for details on what to allocate

View File

@@ -74,7 +74,7 @@ endif
ifeq (${ENV},win32-unix-shell) ifeq (${ENV},win32-unix-shell)
ENV=win32 ENV=win32
CROSS=yes CROSS=yes
endif endif
ifeq (${ENV},win32) ifeq (${ENV},win32)
CC = gcc CC = gcc
@@ -154,7 +154,7 @@ CPUOBJ=${CPUDIR}/dma${OE} ${CPUDIR}/dsp${OE} ${CPUDIR}/dspproc${OE}\
${CPUDIR}/memtable${OE} ${CPUDIR}/spc700${OE} ${CPUDIR}/stable${OE}\ ${CPUDIR}/memtable${OE} ${CPUDIR}/spc700${OE} ${CPUDIR}/stable${OE}\
${CPUDIR}/table${OE} ${CPUDIR}/tableb${OE} ${CPUDIR}/tablec${OE} ${CPUDIR}/table${OE} ${CPUDIR}/tableb${OE} ${CPUDIR}/tablec${OE}
GUIOBJ=${GUIDIR}/gui${OE} ${GUIDIR}/menu${OE} GUIOBJ=${GUIDIR}/gui${OE} ${GUIDIR}/guifuncs${OE} ${GUIDIR}/menu${OE}
VIDEOBJ=${VIDEODIR}/makev16b${OE} ${VIDEODIR}/makev16t${OE} ${VIDEODIR}/makevid${OE}\ VIDEOBJ=${VIDEODIR}/makev16b${OE} ${VIDEODIR}/makev16t${OE} ${VIDEODIR}/makevid${OE}\
${VIDEODIR}/mode716${OE} ${VIDEODIR}/mode716b${OE} ${VIDEODIR}/mode716d${OE}\ ${VIDEODIR}/mode716${OE} ${VIDEODIR}/mode716b${OE} ${VIDEODIR}/mode716d${OE}\
@@ -181,7 +181,7 @@ EFFECTSOBJ=${EFFECTSDIR}/burn${OE} ${EFFECTSDIR}/water${OE} ${EFFECTSDIR}/smoke$
JMAOBJ=${JMADIR}/7zlzma${OE} ${JMADIR}/crc32${OE} ${JMADIR}/iiostrm${OE}\ JMAOBJ=${JMADIR}/7zlzma${OE} ${JMADIR}/crc32${OE} ${JMADIR}/iiostrm${OE}\
${JMADIR}/inbyte${OE} ${JMADIR}/jma${OE} ${JMADIR}/lzma${OE} ${JMADIR}/lzmadec${OE}\ ${JMADIR}/inbyte${OE} ${JMADIR}/jma${OE} ${JMADIR}/lzma${OE} ${JMADIR}/lzmadec${OE}\
${JMADIR}/winout${OE} ${JMADIR}/zsnesjma${OE} ${JMADIR}/winout${OE} ${JMADIR}/zsnesjma${OE}
MAINOBJ=cfgload${OE} endmem${OE} init${OE} initc${OE} uic${OE} patch${OE}\ MAINOBJ=cfgload${OE} endmem${OE} init${OE} initc${OE} uic${OE} patch${OE}\
ui${OE} vcache${OE} version${OE} zmovie${OE} zstate${OE} zloader${OE} ui${OE} vcache${OE} version${OE} zmovie${OE} zstate${OE} zloader${OE}
@@ -315,6 +315,7 @@ ${GUIDIR}/gui${OE}: $< ${GUIDIR}/guitools.inc\
${GUIDIR}/guimisc.inc ${GUIDIR}/guimouse.inc ${GUIDIR}/guiwindp.inc\ ${GUIDIR}/guimisc.inc ${GUIDIR}/guimouse.inc ${GUIDIR}/guiwindp.inc\
${GUIDIR}/guikeys.inc ${GUIDIR}/guicheat.inc\ ${GUIDIR}/guikeys.inc ${GUIDIR}/guicheat.inc\
${GUIDIR}/guicombo.inc ${GUIDIR}/guiload.inc macros.mac ${GUIDIR}/guicombo.inc ${GUIDIR}/guiload.inc macros.mac
${GUIDIR}/guifuncs${OE}: $<
${GUIDIR}/menu${OE}: $< macros.mac ${GUIDIR}/menu${OE}: $< macros.mac
${EFFECTSDIR}/water${OE}: $< ${EFFECTSDIR}/fixsin.h ${EFFECTSDIR}/water${OE}: $< ${EFFECTSDIR}/fixsin.h
@@ -362,7 +363,7 @@ ${OBJFIX}: $<
gcc -O3 -o $@ objfix.c gcc -O3 -o $@ objfix.c
endif endif
clean: clean:
${DELETECOMMAND} ${EXE} ${TRUTH} ${DELETECOMMAND} ${EXE} ${TRUTH}
${DELETECOMMAND} *${OE} ${TRUTH} ${DELETECOMMAND} *${OE} ${TRUTH}

View File

@@ -71,7 +71,6 @@ NEWSYM mode7hiresen, dd 1
NEWSYM hiresstuff, dd 0 NEWSYM hiresstuff, dd 0
NEWSYM cmovietimeint, dd 0 NEWSYM cmovietimeint, dd 0
NEWSYM overalltimer, dd 0 NEWSYM overalltimer, dd 0
mousecheck db 0
SECTION .text SECTION .text
@@ -408,10 +407,6 @@ NEWSYM cachevideo
push esi push esi
push edi push edi
push edx push edx
inc byte[mousecheck]
and byte[mousecheck],07h
cmp byte[mousecheck],0
jne .noclick
cmp byte[GUIClick],0 cmp byte[GUIClick],0
je .noclick je .noclick
cmp byte[snesmouse],0 cmp byte[snesmouse],0

View File

@@ -107,7 +107,9 @@ NEWSYM SystemInit
mov ebx,InitDir mov ebx,InitDir
call Change_Dir call Change_Dir
pushad
call GUIRestoreVars ; Load GUI stuff call GUIRestoreVars ; Load GUI stuff
popad
call getcfg ; Load cfg stuff call getcfg ; Load cfg stuff
call obtaindir ; Get Save/Init Directories call obtaindir ; Get Save/Init Directories
call ConvertJoyMap ; Mini joystick init call ConvertJoyMap ; Mini joystick init
@@ -129,7 +131,9 @@ NEWSYM createnewcfg
call DOScreatenewcfg call DOScreatenewcfg
ret ret
NEWSYM GUISaveVars NEWSYM GUISaveVars
pushad
call ExecGUISaveVars call ExecGUISaveVars
popad
ret ret
; Allocate memory - see allocptr in ui.asm for details on what to allocate ; Allocate memory - see allocptr in ui.asm for details on what to allocate