Attempt at stopping file load errors on 3.10 on an A3000

This commit is contained in:
stevenhowes
2021-04-08 21:02:44 +01:00
parent 387e36f4c3
commit 74b97661e2
5 changed files with 14 additions and 15 deletions
Binary file not shown.
Binary file not shown.
+6 -5
View File
@@ -19,7 +19,7 @@ void load_sprites(char* filename, unsigned char **buffername)
int length; int length;
// Attempt to get file info // Attempt to get file info
inreg.r[0] = 13; inreg.r[0] = 5;
inreg.r[1] = (int) filename; inreg.r[1] = (int) filename;
_kernel_swi(OS_File,&inreg,&outreg); _kernel_swi(OS_File,&inreg,&outreg);
@@ -29,7 +29,7 @@ void load_sprites(char* filename, unsigned char **buffername)
// If it's <1 it's fil not found // If it's <1 it's fil not found
if(outreg.r[0] < 1) if(outreg.r[0] < 1)
{ {
printf("Sprite file %s not found",filename); printf("Sprite file %s not found, object type is %i and size is %i\n",filename,outreg.r[0],outreg.r[4]);
exit(0); exit(0);
} }
@@ -37,7 +37,7 @@ void load_sprites(char* filename, unsigned char **buffername)
if(length > 200000) if(length > 200000)
{ {
screen_nobuffer(); screen_nobuffer();
printf("Sprite file %s seems unreasonably large at %i bytes",filename, length); printf("Sprite file %s seems unreasonably large at %i bytes, object type is %i\n",filename, length, outreg.r[0]);
exit(0); exit(0);
} }
@@ -47,7 +47,7 @@ void load_sprites(char* filename, unsigned char **buffername)
if(buffername==NULL) if(buffername==NULL)
{ {
screen_nobuffer(); screen_nobuffer();
printf("Couldn't malloc %i bytes for sprite buffer",length); printf("Couldn't malloc %i bytes for sprite buffer\n",length);
exit(0); exit(0);
} }
@@ -89,7 +89,8 @@ void display_mode(int mode)
if (_kernel_swi(OS_ChangeDynamicArea, &inreg, &outreg) != NULL) if (_kernel_swi(OS_ChangeDynamicArea, &inreg, &outreg) != NULL)
{ {
screen_nobuffer(); screen_nobuffer();
printf("Couldn't OS_ChangeDynamicArea"); while(1)
printf("Couldn't OS_ChangeDynamicArea\n");
exit(0); exit(0);
} }
} }
+4 -5
View File
@@ -64,7 +64,7 @@ void game2_loadmap(char* filename)
int length; int length;
// Attempt to get file info // Attempt to get file info
inreg.r[0] = 13; inreg.r[0] = 5;
inreg.r[1] = (int) filename; inreg.r[1] = (int) filename;
_kernel_swi(OS_File,&inreg,&outreg); _kernel_swi(OS_File,&inreg,&outreg);
@@ -73,10 +73,9 @@ void game2_loadmap(char* filename)
if(length > sizeof(fullmap)) if(length > sizeof(fullmap))
{ {
// TODO: Work out why real machine doesn't appear to read size and gives object type 19 screen_nobuffer();
/*screen_nobuffer(); printf("Map exceeds %d bytes (%d bytes) object type is %d",sizeof(fullmap),length,outreg.r[0]);
printf("Map exceeds %d bytes (%d bytes) Object Type %d",sizeof(fullmap),length,outreg.r[0]); exit(0);
exit(0);*/
} }
// Attempt to get file info // Attempt to get file info
+4 -5
View File
@@ -43,7 +43,7 @@ void game2_loadmap(char* filename)
int length; int length;
// Attempt to get file info // Attempt to get file info
inreg.r[0] = 13; inreg.r[0] = 5;
inreg.r[1] = (int) filename; inreg.r[1] = (int) filename;
_kernel_swi(OS_File,&inreg,&outreg); _kernel_swi(OS_File,&inreg,&outreg);
@@ -52,10 +52,9 @@ void game2_loadmap(char* filename)
if(length > sizeof(fullmap)) if(length > sizeof(fullmap))
{ {
// TODO: Work out why real machine doesn't appear to read size and gives object type 19 screen_nobuffer();
/*screen_nobuffer(); printf("Map exceeds %d bytes (%d bytes) object type is %d\n",sizeof(fullmap),length,outreg.r[0]);
printf("Map exceeds %d bytes (%d bytes) Object Type %d",sizeof(fullmap),length,outreg.r[0]); exit(0);
exit(0);*/
} }
// Attempt to get file info // Attempt to get file info