#18 closed defect (fixed)
Crash on LE CPUs with alignement issues
Reported by: | SF/bbrox | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | Port: WinCE |
Version: | Keywords: | ||
Cc: | Game: |
Description
On the iPAQ (Little-endian based with ARM CPU), memory accesses NEED to be aligned.
By doing some hacks (ie checking on all READ_LE_UINT16 and READ_LE_UINT32 inline functions if the pointer is correctly aligned), I changed a LOT of these function calls to the (newly created) READ_LE_UINT16_UNALIGNED and READ_LE_UINT32_UNALIGNED.
Now, I wonder if by default, on platform like the ARM, the default should not be 'unaligned'...
Or is there really some places where we are sure to be aligned ?
Ticket imported from: #478437. Ticket imported from: bugs/18.
Change History (8)
comment:1 by , 23 years ago
comment:2 by , 23 years ago
Status: | new → pending |
---|
comment:3 by , 23 years ago
Have you located the source of the bug, and can this bug report be closed?
comment:4 by , 23 years ago
This is closed since the CVS commit that added the SCUMM_NEED_ALIGNMENT define in scummsys.h .
comment:5 by , 23 years ago
Resolution: | → fixed |
---|---|
Status: | pending → new |
comment:6 by , 23 years ago
Status: | new → closed |
---|
comment:7 by , 6 years ago
Component: | → Ports |
---|
comment:8 by , 6 years ago
Component: | Ports → Port: WinCE |
---|
Just to add that I now changed ALL the READ_LE_UINTxx functions to the UNALIGNED version (by some #define magic in scummsys.h).
Now, Day of the Tentacle almost starts on the iPAQ (yoohoo), but I get this :
Error: Gdi::drawBitmap, strip drawn to 256 below window bottom 200!
Time to go back to some GDBing to search for further alignement problems :-)
Anyway, thanks for the cool project, I was dreaming of doing the same thing on my own but never even knew how to start !