Sparc CPU does not like accessing non-aligned things. Depack some structures so the program don't crash. We should probably fix every struct, but I'm too lazy to check all of them right now (could corrupt saving and/or loading).
Added Gürkan Sengün to the bugfinders as he found the problem. Thanks ! git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@759 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
		
							parent
							
								
									1eeed5aca4
								
							
						
					
					
						commit
						506ea20d36
					
				
							
								
								
									
										25
									
								
								helpfile.h
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								helpfile.h
									
									
									
									
									
								
							@ -324,26 +324,27 @@ static const T_Help_table helptable_credits[] =
 | 
				
			|||||||
  HELP_TEXT ("")
 | 
					  HELP_TEXT ("")
 | 
				
			||||||
  HELP_TEXT ("  BDCIron         Ced             El Topo  ")
 | 
					  HELP_TEXT ("  BDCIron         Ced             El Topo  ")
 | 
				
			||||||
  HELP_TEXT ("  fallenblood     Frost           Grimmy   ")
 | 
					  HELP_TEXT ("  fallenblood     Frost           Grimmy   ")
 | 
				
			||||||
  HELP_TEXT ("  iLKke           keito           kusma    ")
 | 
					  HELP_TEXT ("  Gürkan Sengün   iLKke           keito         ")
 | 
				
			||||||
  HELP_TEXT ("  Lord Graga      mind            MooZ     ")
 | 
					  HELP_TEXT ("  kusma           Lord Graga      mind          ")
 | 
				
			||||||
  HELP_TEXT ("  richienyhus     TeeEmCee        tempest  ")
 | 
					  HELP_TEXT ("  MooZ            richienyhus     TeeEmCee      ")
 | 
				
			||||||
  HELP_TEXT ("  Timo Kurrpa     titus^Rab       Tobé     ")
 | 
					  HELP_TEXT ("  tempest         Timo Kurrpa     titus^Rab     ")
 | 
				
			||||||
  HELP_TEXT ("  00ai99          00.rgb.studios")
 | 
					  HELP_TEXT ("  Tobé            00ai99          00.rgb.studios")
 | 
				
			||||||
  HELP_TEXT ("")
 | 
					  HELP_TEXT ("")
 | 
				
			||||||
  HELP_TEXT ("  Posted the annoying bugreports")
 | 
					  HELP_TEXT ("  Posted the annoying bugreports")
 | 
				
			||||||
  HELP_TEXT ("")
 | 
					  HELP_TEXT ("")
 | 
				
			||||||
  HELP_TITLE(" FILE FORMATS CREDITS")
 | 
					  HELP_TITLE(" FILE FORMATS CREDITS")
 | 
				
			||||||
  HELP_TEXT ("")
 | 
					  HELP_TEXT ("")
 | 
				
			||||||
  HELP_TEXT ("   PKM : Sunset Design")
 | 
					 | 
				
			||||||
  HELP_TEXT ("   LBM : Electronic Arts")
 | 
					 | 
				
			||||||
  HELP_TEXT ("   GIF : Compuserve")
 | 
					 | 
				
			||||||
  HELP_TEXT ("   BMP : Microsoft")
 | 
					  HELP_TEXT ("   BMP : Microsoft")
 | 
				
			||||||
  HELP_TEXT ("   PCX : Z-Soft")
 | 
					 | 
				
			||||||
  HELP_TEXT ("   IMG : Bivas (W. Wiedmann?)")
 | 
					 | 
				
			||||||
  HELP_TEXT ("   SCx : Colorix (?)")
 | 
					 | 
				
			||||||
  HELP_TEXT ("   CEL,KCF : K.O.S. (KISekae Set system)")
 | 
					  HELP_TEXT ("   CEL,KCF : K.O.S. (KISekae Set system)")
 | 
				
			||||||
  HELP_TEXT ("   PI1,PC1 : Degas Elite")
 | 
					  HELP_TEXT ("   GIF : Compuserve")
 | 
				
			||||||
 | 
					  HELP_TEXT ("   IMG : Bivas (W. Wiedmann?)")
 | 
				
			||||||
 | 
					  HELP_TEXT ("   LBM : Electronic Arts")
 | 
				
			||||||
  HELP_TEXT ("   PAL : ermmh... nobody (?)")
 | 
					  HELP_TEXT ("   PAL : ermmh... nobody (?)")
 | 
				
			||||||
 | 
					  HELP_TEXT ("   PCX : Z-Soft")
 | 
				
			||||||
 | 
					  HELP_TEXT ("   PI1,PC1 : Degas Elite")
 | 
				
			||||||
 | 
					  HELP_TEXT ("   PKM : Sunset Design")
 | 
				
			||||||
 | 
					  HELP_TEXT ("   PNG : ")
 | 
				
			||||||
 | 
					  HELP_TEXT ("   SCx : Colorix (?)")
 | 
				
			||||||
  HELP_TEXT ("")
 | 
					  HELP_TEXT ("")
 | 
				
			||||||
  HELP_TITLE ("  OUR HOMEPAGE")               //
 | 
					  HELP_TITLE ("  OUR HOMEPAGE")               //
 | 
				
			||||||
  HELP_TEXT ("")                                          //
 | 
					  HELP_TEXT ("")                                          //
 | 
				
			||||||
 | 
				
			|||||||
@ -159,6 +159,8 @@
 | 
				
			|||||||
#undef opendir
 | 
					#undef opendir
 | 
				
			||||||
#undef closedir
 | 
					#undef closedir
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// gcc2 under haiku and beos don't like these macros for some reason.
 | 
				
			||||||
 | 
					// As they are not used there anyways, we remove them and everyone is happy.
 | 
				
			||||||
#if !defined(__HAIKU__) && !defined(__BEOS__)
 | 
					#if !defined(__HAIKU__) && !defined(__BEOS__)
 | 
				
			||||||
#ifndef ME_DUMMY
 | 
					#ifndef ME_DUMMY
 | 
				
			||||||
# define ME_DUMMY(Fs_name, Fs_type)		\
 | 
					# define ME_DUMMY(Fs_name, Fs_type)		\
 | 
				
			||||||
@ -180,7 +182,6 @@
 | 
				
			|||||||
     || strcmp (Fs_type, "nfs") == 0            \
 | 
					     || strcmp (Fs_type, "nfs") == 0            \
 | 
				
			||||||
     || strcmp (Fs_type, "volfs") == 0)
 | 
					     || strcmp (Fs_type, "volfs") == 0)
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef ME_REMOTE
 | 
					#ifndef ME_REMOTE
 | 
				
			||||||
/* A file system is `remote' if its Fs_name contains a `:'
 | 
					/* A file system is `remote' if its Fs_name contains a `:'
 | 
				
			||||||
@ -192,6 +193,7 @@
 | 
				
			|||||||
	 && (strcmp (Fs_type, "smbfs") == 0	\
 | 
						 && (strcmp (Fs_type, "smbfs") == 0	\
 | 
				
			||||||
	     || strcmp (Fs_type, "cifs") == 0)))
 | 
						     || strcmp (Fs_type, "cifs") == 0)))
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					#endif // HAIKU / BEOS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef MOUNTED_GETMNTINFO
 | 
					#ifdef MOUNTED_GETMNTINFO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										2
									
								
								op_c.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								op_c.c
									
									
									
									
									
								
							@ -962,7 +962,7 @@ void GS_Generate(T_Gradient_set * ds,T_Cluster_set * cs)
 | 
				
			|||||||
    int diff;  // difference de chrominance courante
 | 
					    int diff;  // difference de chrominance courante
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Pour chacun des clusters … traiter
 | 
					    // Pour chacun des clusters … traiter
 | 
				
			||||||
    for (ic=1;ic<cs->nb;ic++)
 | 
					    for (ic=0;ic<cs->nb;ic++)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        // On recherche le d‚grad‚ le plus proche de la chrominance du cluster
 | 
					        // On recherche le d‚grad‚ le plus proche de la chrominance du cluster
 | 
				
			||||||
        best_gradient=-1;
 | 
					        best_gradient=-1;
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										4
									
								
								setup.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								setup.c
									
									
									
									
									
								
							@ -85,16 +85,18 @@ void Set_program_directory(ARG_UNUSED const char * argv0,char * program_dir)
 | 
				
			|||||||
    Extract_path(program_dir, argv0);
 | 
					    Extract_path(program_dir, argv0);
 | 
				
			||||||
  #endif
 | 
					  #endif
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Determine which directory contains the read-only data.
 | 
					// Determine which directory contains the read-only data.
 | 
				
			||||||
// IN: The directory containing the executable
 | 
					// IN: The directory containing the executable
 | 
				
			||||||
// OUT: Write into data_dir. Trailing / or \ is kept.
 | 
					// OUT: Write into data_dir. Trailing / or \ is kept.
 | 
				
			||||||
void Set_data_directory(const char * program_dir, char * data_dir)
 | 
					void Set_data_directory(const char * program_dir, char * data_dir)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  // On all platforms, data is in the executable's directory
 | 
					  // On all platforms, data is in the executable's directory
 | 
				
			||||||
  strcpy(data_dir,program_dir);
 | 
					 | 
				
			||||||
  // Except MacOSX:
 | 
					  // Except MacOSX:
 | 
				
			||||||
  #if defined(__macosx__)
 | 
					  #if defined(__macosx__)
 | 
				
			||||||
    strcat(data_dir,"Contents/Resources/");
 | 
					    strcat(data_dir,"Contents/Resources/");
 | 
				
			||||||
 | 
					  #else
 | 
				
			||||||
 | 
					  	strcpy(data_dir,program_dir);
 | 
				
			||||||
  #endif
 | 
					  #endif
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										4
									
								
								struct.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								struct.h
									
									
									
									
									
								
							@ -181,7 +181,7 @@ typedef struct
 | 
				
			|||||||
  dword Inverse;  ///< Boolean, true if the gradient goes in descending order
 | 
					  dword Inverse;  ///< Boolean, true if the gradient goes in descending order
 | 
				
			||||||
  dword Mix;      ///< Amount of randomness to add to the mix (0-255)
 | 
					  dword Mix;      ///< Amount of randomness to add to the mix (0-255)
 | 
				
			||||||
  dword Technique;///< Gradient technique: 0 (no pattern) 1 (dithering), or 2 (big dithering)
 | 
					  dword Technique;///< Gradient technique: 0 (no pattern) 1 (dithering), or 2 (big dithering)
 | 
				
			||||||
} __attribute__((__packed__)) T_Gradient_array;
 | 
					} T_Gradient_array;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/// Data for one setting of shade. Warning, this one is saved/loaded as binary.
 | 
					/// Data for one setting of shade. Warning, this one is saved/loaded as binary.
 | 
				
			||||||
typedef struct
 | 
					typedef struct
 | 
				
			||||||
@ -214,7 +214,7 @@ typedef struct
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  byte Number; ///< Section identfier. Possible values are in enum ::CHUNKS_CFG
 | 
					  byte Number; ///< Section identfier. Possible values are in enum ::CHUNKS_CFG
 | 
				
			||||||
  word Size;   ///< Size of the configuration block that follows, in bytes.
 | 
					  word Size;   ///< Size of the configuration block that follows, in bytes.
 | 
				
			||||||
} __attribute__((__packed__)) T_Config_chunk;
 | 
					} T_Config_chunk;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/// Configuration for one keyboard shortcut in gfx2.cfg. Warning, this one is saved/loaded as binary.
 | 
					/// Configuration for one keyboard shortcut in gfx2.cfg. Warning, this one is saved/loaded as binary.
 | 
				
			||||||
typedef struct
 | 
					typedef struct
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user