Fixed command line loading of roms.
This commit is contained in:
@@ -31,7 +31,7 @@ EXTSYM Create_File,Write_File,Close_File
|
||||
%ifdef __LINUX__
|
||||
; if TextFile==0, zlib functions aren't used
|
||||
; useful to save the config file
|
||||
EXTSYM TextFile
|
||||
EXTSYM TextFile, InitDir, InitDrive, Change_Dir
|
||||
%endif
|
||||
|
||||
NEWSYM CfgLoadAsmStart
|
||||
@@ -257,6 +257,11 @@ NEWSYM ConvertJoyMap2
|
||||
NEWSYM DOScreatenewcfg
|
||||
; make a new file
|
||||
; copy .cfgfiledata to mode7tab, replacing each %
|
||||
%ifdef __LINUX__
|
||||
mov dl,[SRAMDrive]
|
||||
mov ebx,SRAMDir
|
||||
call Change_Dir
|
||||
%endif
|
||||
mov esi,.cfgfiledata
|
||||
mov edi,mode7tab
|
||||
xor ecx,ecx
|
||||
|
||||
@@ -1454,6 +1454,8 @@ NEWSYM sramsave
|
||||
|
||||
NEWSYM statesaver
|
||||
clim
|
||||
|
||||
|
||||
sub dword[Curtableaddr],tableA
|
||||
sub dword[spcPCRam],spcRam
|
||||
sub dword[spcRamDP],spcRam
|
||||
@@ -1462,6 +1464,11 @@ NEWSYM statesaver
|
||||
call initrevst
|
||||
; jmp .skipsaves
|
||||
; Save State
|
||||
%ifdef __LINUX__
|
||||
mov dl,[SRAMDrive]
|
||||
mov ebx,SRAMDir
|
||||
call Change_Dir
|
||||
%endif
|
||||
mov edx,fnamest+1
|
||||
call Create_File
|
||||
jc near .nosavestuff
|
||||
@@ -1820,6 +1827,12 @@ NEWSYM loadstate
|
||||
mov byte[pressed+eax],2
|
||||
mov byte[multchange],1
|
||||
clim
|
||||
%ifdef __LINUX__
|
||||
mov dl,[SRAMDrive]
|
||||
mov ebx,SRAMDir
|
||||
call Change_Dir
|
||||
%endif
|
||||
|
||||
mov edx,fnamest+1
|
||||
call Open_File
|
||||
jc near .nofile
|
||||
|
||||
@@ -3366,9 +3366,15 @@ NEWSYM loadfile
|
||||
mov byte[TextFile], 0
|
||||
call GetCurDir
|
||||
mov byte[InGUI],0
|
||||
%ifdef __LINUX__
|
||||
mov dl,[InitDrive]
|
||||
mov ebx,InitDir
|
||||
call Change_Dir
|
||||
%endif
|
||||
|
||||
jmp loadfileGUI.nogui
|
||||
|
||||
|
||||
%ifndef __LINUX__
|
||||
mov dword[MessageOn],0
|
||||
mov byte[loadedfromgui],0
|
||||
mov byte[yesoutofmemory],0
|
||||
@@ -3564,7 +3570,7 @@ NEWSYM loadfile
|
||||
mov ah,9
|
||||
call Output_Text
|
||||
jmp DosExit
|
||||
|
||||
%endif
|
||||
SECTION .data
|
||||
.multfound db 0
|
||||
.first db 0
|
||||
|
||||
@@ -39,7 +39,7 @@ EXTSYM pl1Bk
|
||||
EXTSYM pl1Rk
|
||||
EXTSYM cfgcvidmode
|
||||
EXTSYM pl1contrl,pl2contrl
|
||||
EXTSYM InitDir,InitDrive
|
||||
EXTSYM InitDir,InitDrive, SRAMDir, SRAMDrive
|
||||
EXTSYM DOScreatenewcfg,ExecGUISaveVars
|
||||
EXTSYM allocptr
|
||||
EXTSYM putchar
|
||||
@@ -252,14 +252,22 @@ NEWSYM SystemInit
|
||||
; Get and set the initial directory
|
||||
%ifdef __LINUX__
|
||||
call obtaindir
|
||||
mov ebx,InitDir
|
||||
mov edx,InitDrive
|
||||
call Get_Dir
|
||||
|
||||
mov dl,[SRAMDrive]
|
||||
mov ebx,SRAMDir
|
||||
call Change_Dir
|
||||
%else
|
||||
mov ebx,InitDir
|
||||
mov edx,InitDrive
|
||||
call Get_Dir
|
||||
%endif
|
||||
|
||||
mov dl,[InitDrive]
|
||||
mov ebx,InitDir
|
||||
call Change_Dir
|
||||
%endif
|
||||
|
||||
|
||||
call GUIRestoreVars ; Load GUI stuff
|
||||
|
||||
@@ -256,6 +256,11 @@ DWORD ZFileMKDir()
|
||||
#endif
|
||||
}
|
||||
|
||||
extern char SRAMDir;
|
||||
extern char InitDir;
|
||||
extern char LoadDir;
|
||||
|
||||
|
||||
DWORD ZFileCHDir()
|
||||
{
|
||||
return(chdir(CHPath));
|
||||
@@ -443,9 +448,6 @@ DWORD GetDate()
|
||||
|
||||
#ifdef __LINUX__
|
||||
|
||||
extern char SRAMDir;
|
||||
extern char InitDir;
|
||||
extern char LoadDir;
|
||||
|
||||
void obtaindir()
|
||||
{
|
||||
@@ -467,7 +469,8 @@ void obtaindir()
|
||||
} else {
|
||||
closedir(tmp);
|
||||
}
|
||||
strcpy(&InitDir, cfgdir);
|
||||
// strcpy(&InitDir, cfgdir);
|
||||
// getcwd(&InitDir, 128);
|
||||
if (SRAMDir == 0){
|
||||
strcpy(&SRAMDir, cfgdir);
|
||||
}
|
||||
@@ -476,4 +479,29 @@ void obtaindir()
|
||||
getcwd(&LoadDir, 128);
|
||||
}
|
||||
}
|
||||
|
||||
extern char fnamest, fnames;
|
||||
|
||||
void GetFilename()
|
||||
{
|
||||
char *tmp = &fnamest;
|
||||
char size;
|
||||
|
||||
*tmp = '/';
|
||||
while (*tmp!=0) tmp++;
|
||||
while (*tmp!='/') tmp--;
|
||||
size = (strlen(tmp)-1) & 0xFF;
|
||||
strcpy(&fnamest, tmp);
|
||||
fnamest = size;
|
||||
|
||||
tmp = &fnames;
|
||||
*tmp = '/';
|
||||
while (*tmp!=0) tmp++;
|
||||
while (*tmp!='/') tmp--;
|
||||
size = (strlen(tmp)-1) & 0xFF;
|
||||
strcpy(&fnames, tmp);
|
||||
fnames = size;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -35,9 +35,9 @@ EXTSYM Open_File, Get_File_Date, Close_File, Change_Dir, Get_Dir
|
||||
EXTSYM romloadskip
|
||||
EXTSYM cfgloadgdir,cfgloadsdir
|
||||
EXTSYM init18_2hz
|
||||
|
||||
%ifdef __LINUX__
|
||||
EXTSYM LinuxExit
|
||||
EXTSYM GetFilename
|
||||
%endif
|
||||
|
||||
NEWSYM UIAsmStart
|
||||
@@ -1204,6 +1204,11 @@ NEWSYM makeextension
|
||||
add ah,4
|
||||
mov [fnames],ah
|
||||
mov [fnamest],ah
|
||||
%ifdef __LINUX__
|
||||
pushad
|
||||
call GetFilename
|
||||
popad
|
||||
%endif
|
||||
cmp byte[LatestSave],1
|
||||
je .latestsave
|
||||
ret
|
||||
|
||||
Reference in New Issue
Block a user