Some more input: The problem was related to this code:
typedef struct _screen_config screen_config; struct _screen_config { int type; /* type of screen */ int width, height; /* default total width/height (HTOTAL, VTOTAL) */ rectangle visarea; /* default visible area (HBLANK end/start, VBLANK end/start) */ UINT8 oldstyle_vblank_supplied; /* MDRV_SCREEN_VBLANK_TIME macro used */ attoseconds_t refresh; /* default refresh period */ attoseconds_t vblank; /* duration of a VBLANK */ bitmap_format format; /* bitmap format */ float xoffset, yoffset; /* default X/Y offsets */ float xscale, yscale; /* default X/Y scale factor */ };
As you can clearly see the structure is not 32 Bit aligned starting at "refresh" (attoseconds_t is a long long, bitmap_format also a 32 Bit value, and rectangle consists of 4 int's BTW). I *did* recompile with -mstrict-align (I forgot to add -mstrict-align to the linking command, is this a problem? Or is it only needed on compiling) and it still happened.
Now I am trying a different thing, including 3 Pad-Bytes after the UINT8 (well, let's hope there are not more such things...).
Any input welcome
And I would be interested in a non-Sam-tester, to see if the problem only happens on Sam! The person would need a ftp site, though, as the file is too big for email.
Steffen
|