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:
Adrien Destugues 2009-04-29 17:28:44 +00:00
parent 1eeed5aca4
commit 506ea20d36
6 changed files with 22 additions and 17 deletions

BIN
gfx2.cfg

Binary file not shown.

View File

@ -324,26 +324,27 @@ static const T_Help_table helptable_credits[] =
HELP_TEXT ("")
HELP_TEXT (" BDCIron Ced El Topo ")
HELP_TEXT (" fallenblood Frost Grimmy ")
HELP_TEXT (" iLKke keito kusma ")
HELP_TEXT (" Lord Graga mind MooZ ")
HELP_TEXT (" richienyhus TeeEmCee tempest ")
HELP_TEXT (" Timo Kurrpa titus^Rab Tobé ")
HELP_TEXT (" 00ai99 00.rgb.studios")
HELP_TEXT (" Gürkan Sengün iLKke keito ")
HELP_TEXT (" kusma Lord Graga mind ")
HELP_TEXT (" MooZ richienyhus TeeEmCee ")
HELP_TEXT (" tempest Timo Kurrpa titus^Rab ")
HELP_TEXT (" Tobé 00ai99 00.rgb.studios")
HELP_TEXT ("")
HELP_TEXT (" Posted the annoying bugreports")
HELP_TEXT ("")
HELP_TITLE(" FILE FORMATS CREDITS")
HELP_TEXT ("")
HELP_TEXT (" PKM : Sunset Design")
HELP_TEXT (" LBM : Electronic Arts")
HELP_TEXT (" GIF : Compuserve")
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 (" 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 (" PCX : Z-Soft")
HELP_TEXT (" PI1,PC1 : Degas Elite")
HELP_TEXT (" PKM : Sunset Design")
HELP_TEXT (" PNG : ")
HELP_TEXT (" SCx : Colorix (?)")
HELP_TEXT ("")
HELP_TITLE (" OUR HOMEPAGE") //
HELP_TEXT ("") //

View File

@ -159,6 +159,8 @@
#undef opendir
#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__)
#ifndef ME_DUMMY
# define ME_DUMMY(Fs_name, Fs_type) \
@ -180,7 +182,6 @@
|| strcmp (Fs_type, "nfs") == 0 \
|| strcmp (Fs_type, "volfs") == 0)
#endif
#endif
#ifndef ME_REMOTE
/* A file system is `remote' if its Fs_name contains a `:'
@ -192,6 +193,7 @@
&& (strcmp (Fs_type, "smbfs") == 0 \
|| strcmp (Fs_type, "cifs") == 0)))
#endif
#endif // HAIKU / BEOS
#ifdef MOUNTED_GETMNTINFO

2
op_c.c
View File

@ -962,7 +962,7 @@ void GS_Generate(T_Gradient_set * ds,T_Cluster_set * cs)
int diff; // difference de chrominance courante
// Pour chacun des clusters … traiter
for (ic=1;ic<cs->nb;ic++)
for (ic=0;ic<cs->nb;ic++)
{
// On recherche le dgrad le plus proche de la chrominance du cluster
best_gradient=-1;

View File

@ -85,16 +85,18 @@ void Set_program_directory(ARG_UNUSED const char * argv0,char * program_dir)
Extract_path(program_dir, argv0);
#endif
}
// Determine which directory contains the read-only data.
// IN: The directory containing the executable
// OUT: Write into data_dir. Trailing / or \ is kept.
void Set_data_directory(const char * program_dir, char * data_dir)
{
// On all platforms, data is in the executable's directory
strcpy(data_dir,program_dir);
// Except MacOSX:
#if defined(__macosx__)
strcat(data_dir,"Contents/Resources/");
#else
strcpy(data_dir,program_dir);
#endif
}

View File

@ -181,7 +181,7 @@ typedef struct
dword Inverse; ///< Boolean, true if the gradient goes in descending order
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)
} __attribute__((__packed__)) T_Gradient_array;
} T_Gradient_array;
/// Data for one setting of shade. Warning, this one is saved/loaded as binary.
typedef struct
@ -214,7 +214,7 @@ typedef struct
{
byte Number; ///< Section identfier. Possible values are in enum ::CHUNKS_CFG
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.
typedef struct