#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 , 24 years ago
comment:2 by , 24 years ago
| Status: | new → pending |
|---|
comment:3 by , 24 years ago
Have you located the source of the bug, and can this bug report be closed?
comment:4 by , 24 years ago
This is closed since the CVS commit that added the SCUMM_NEED_ALIGNMENT define in scummsys.h .
comment:5 by , 24 years ago
| Resolution: | → fixed |
|---|---|
| Status: | pending → new |
comment:6 by , 24 years ago
| Status: | new → closed |
|---|
comment:7 by , 7 years ago
| Component: | → Ports |
|---|
comment:8 by , 7 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 !