Illegal movement (x1, y1) -> (x1+/-3, y1+/-1) (Raspbian pre4 running on maemo)
issueid=1288 10-21-2012 11:40 PM
Senior Member
Number of reported issues by szopin: 6
Illegal movement (x1, y1) -> (x1+/-3, y1+/-1) (Raspbian pre4 running on maemo)

Got it first on first game with pre4 when entering shop in the bandit village. Here comes adom.err:
Code:
Basic ADOM Bug Report Data
--------------------------

Version: Version 1.2.0 (Linux ELF)
Error: Illegal movement (24, 13) -> (27, 12).


Partial Game State Dump
-----------------------
pcx: 24, pcy: 12, pcl: 1, pcr: 8, pcc: 1, pcms: -2500
pcpc: 200, pcpn: 0, pcpl: 0, pcmov: 56, pcmovl: 44
pcs: 0, pcp: 0, pcdv: 9, pcst: 884, pcil: -1, pcmil: -1
mdl: 22, sdl: 1, linfo: 44, kol: 3, ala: 0, bp: 0
ftis: 0, st: 25, hv: 100, sp: 38465, sa: 0, sre: 0
sgx: 24, sgy: 12
ht: 0, hthere: 0, hp: 0, hx: 0, hy: 0, ha: 0
mt: 0, sc: 0, tuid: 18
[L: 1,0:U] (0D { 2, 0}) (0U { 4, 1}) (1D { 1, 1}) [L: 1,1:U] (1D { 3, 0}) (1U { 1, 0}) [L: 1,2:U] (0D { 2, 2}) (0U { 4, 1}) [L: 1,3:U] (0D { 2, 3}) (0U { 4, 1}) 
[L: 2,0:U] (0D { 3, 0}) (0U { 1, 0}) [L: 2,1:U] (0D { 3, 1}) (1U {12, 0}) [L: 2,2:U] (0D { 3, 2}) (0U { 1, 2}) [L: 2,3:U] (0D { 3, 3}) (0U { 1, 3}) (1D { 9, 3}) 
[L: 3,0:U] (0D { 4, 0}) (0U { 2, 0}) (1U { 1, 1}) [L: 3,1:U] (0U { 2, 1}) (1D {14, 0}) [L: 3,2:U] (0D { 4, 2}) (0U { 2, 2}) [L: 3,3:U] (0D { 4, 3}) (0U { 2, 3}) (1D {17, 3}) 
[L: 4,0:U] (0D { 5, 0}) (0U { 3, 0}) [L: 4,1:V] (0D { 1, 3}) (0U {30, 1}) (1D {38, 1}) (1U {16, 2}) [L: 4,2:U] (0D { 5, 2}) (0U { 3, 2}) [L: 4,3:U] (0D { 5, 3}) (0U { 3, 3}) (1D {18, 3}) 
[L: 5,0:U] (0D { 6, 0}) (0U { 4, 0}) [L: 5,2:U] (0D { 6, 2}) (0U { 4, 2}) [L: 5,3:U] (0D { 6, 3}) (0U { 4, 3}) (1D {20, 3}) 
[L: 6,0:U] (0D { 7, 0}) (0U { 5, 0}) [L: 6,1:U] (0U { 4, 1}) [L: 6,2:U] (0D { 7, 2}) (0U { 5, 2}) [L: 6,3:U] (0D { 7, 3}) (0U { 5, 3}) 
[L: 7,0:U] (0D { 8, 0}) (0U { 6, 0}) [L: 7,1:U] (0D { 8, 1}) (0U { 4, 1}) [L: 7,2:U] (0U { 6, 2}) [L: 7,3:U] (0D { 8, 3}) (0U { 6, 3}) 
[L: 8,0:U] (0D { 9, 0}) (0U { 7, 0}) [L: 8,1:U] (0U { 7, 1}) [L: 8,2:U] (0D { 9, 2}) (0U {28, 1}) [L: 8,3:U] (0U { 7, 3}) 
[L: 9,0:U] (0D {10, 0}) (0U { 8, 0}) [L: 9,1:U] (0D {10, 1}) (0U { 4, 1}) [L: 9,2:U] (0D {10, 2}) (0U { 8, 2}) [L: 9,3:U] (0D {10, 3}) (1D {11, 3}) (1U { 2, 3}) 
[L: 10,0:U] (0D {11, 0}) (0U { 9, 0}) [L: 10,1:U] (0D {11, 1}) (0U { 9, 1}) [L: 10,2:U] (0D {11, 2}) (0U { 9, 2}) [L: 10,3:U] (0D {12, 3}) (0U { 9, 3}) 
[L: 11,0:U] (0D {12, 0}) (0U {10, 0}) [L: 11,1:U] (0D {12, 1}) (0U {10, 1}) [L: 11,2:U] (0D {12, 2}) (0U {10, 2}) [L: 11,3:U] (0D {13, 3}) (1D {19, 3}) (1U { 9, 3}) 
[L: 12,0:U] (0D {13, 0}) (0U {11, 0}) (1D { 2, 1}) [L: 12,1:U] (0D {13, 1}) (0U {11, 1}) [L: 12,2:U] (0D {13, 2}) (0U {11, 2}) [L: 12,3:U] (0D {14, 3}) (0U {10, 3}) (1U {17, 3}) 
[L: 13,0:U] (0D {14, 0}) (0U {12, 0}) [L: 13,1:U] (0D {14, 1}) (0U {12, 1}) [L: 13,2:U] (0D {14, 2}) (0U {12, 2}) [L: 13,3:U] (0D {15, 3}) (0U {11, 3}) (1D {16, 3}) 
[L: 14,0:U] (0D {15, 0}) (0U {13, 0}) (1U { 3, 1}) [L: 14,1:U] (0D {15, 1}) (0U {13, 1}) [L: 14,2:U] (0D {15, 2}) (0U {13, 2}) [L: 14,3:U] (0U {12, 3}) 
[L: 15,0:U] (0D {16, 0}) (0U {14, 0}) [L: 15,1:U] (0U {14, 1}) [L: 15,2:U] (0U {14, 2}) (1U { 4, 1}) [L: 15,3:U] (0D {21, 3}) (0U {13, 3}) 
[L: 16,0:U] (0D {17, 0}) (0U {15, 0}) [L: 16,1:U] (0U {22, 2}) [L: 16,2:U] (0U { 4, 1}) (1D { 4, 1}) [L: 16,3:U] (1U {13, 3}) 
[L: 17,0:U] (0D {18, 0}) (0U {16, 0}) [L: 17,1:U] (0U { 4, 1}) [L: 17,3:U] (1D {12, 3}) (1U { 3, 3}) 
[L: 18,0:U] (0D {19, 0}) (0U {17, 0}) [L: 18,1:U] (0D {19, 1}) (0U { 4, 1}) [L: 18,2:U] (0D {19, 2}) (0U { 4, 1}) [L: 18,3:U] (1U { 4, 3}) 
[L: 19,0:U] (0D {20, 0}) (0U {18, 0}) [L: 19,1:U] (0U {18, 1}) (1D {32, 0}) [L: 19,2:U] (0D {20, 2}) (0U {18, 2}) [L: 19,3:U] (1U {11, 3}) 
[L: 20,0:U] (0D {21, 0}) (0U {19, 0}) [L: 20,1:U] (0U { 4, 1}) [L: 20,2:U] (0D {21, 2}) (0U {19, 2}) [L: 20,3:U] (0D {22, 3}) (1D {21, 3}) (1U { 5, 3}) 
[L: 21,0:U] (0D {22, 0}) (0U {20, 0}) [L: 21,1:U] (0U { 4, 1}) [L: 21,2:U] (0D {22, 2}) (0U {20, 2}) [L: 21,3:U] (0U {15, 3}) (1U {20, 3}) 
[L: 22,0:U] (0D {23, 0}) (0U {21, 0}) [L: 22,1:V] (0U { 4, 1}) [L: 22,2:U] (0D {16, 1}) (0U {21, 2}) [L: 22,3:U] (0U {20, 3}) 
[L: 23,0:U] (0D {24, 0}) (0U {22, 0}) [L: 23,1:U] (0D { 4, 1}) (0U {24, 1}) [L: 23,2:U] (0D {24, 2}) (0U { 4, 1}) [L: 23,3:U] (0D {24, 3}) (0U { 4, 1}) 
[L: 24,0:U] (0D {28, 0}) (0U {23, 0}) [L: 24,1:U] (0D {23, 1}) (0U {25, 1}) [L: 24,2:U] (0D {25, 2}) (0U {23, 2}) [L: 24,3:U] (0U {23, 3}) 
[L: 25,0:U] (0D {26, 0}) (1D {29, 0}) [L: 25,1:U] (0D {24, 1}) (0U {26, 1}) [L: 25,2:U] (0D {26, 2}) (0U {24, 2}) 
[L: 26,0:U] (0D {27, 0}) (0U {25, 0}) [L: 26,1:U] (0D {25, 1}) [L: 26,2:U] (0D {27, 2}) (0U {25, 2}) 
[L: 27,0:U] (0U {26, 0}) (1D {28, 0}) [L: 27,1:U] (0U { 4, 1}) [L: 27,2:U] (0D {28, 2}) (0U {26, 2}) 
[L: 28,0:U] (0U {24, 0}) (1U {27, 0}) [L: 28,1:U] (0D { 8, 2}) (0U { 4, 1}) [L: 28,2:U] (0U {27, 2}) 
[L: 29,0:U] (0D {30, 0}) (1U {25, 0}) [L: 29,2:U] (0D {30, 2}) (1U {46, 0}) 
[L: 30,0:U] (0D {31, 0}) (0U {29, 0}) [L: 30,1:U] (0D { 4, 1}) (0U {31, 1}) [L: 30,2:U] (0D {31, 2}) (0U {29, 2}) 
[L: 31,0:U] (0D {32, 0}) (0U {30, 0}) [L: 31,1:U] (0D {30, 1}) (0U {32, 1}) [L: 31,2:U] (0D {32, 2}) (0U {30, 2}) 
[L: 32,0:U] (0D {33, 0}) (0U {31, 0}) (1U {19, 1}) [L: 32,1:U] (0D {31, 1}) [L: 32,2:U] (0D {33, 2}) (0U {31, 2}) (1D {36, 2}) 
[L: 33,0:U] (0D {34, 0}) (0U {32, 0}) [L: 33,2:U] (0D {34, 2}) (0U {32, 2}) 
[L: 34,0:U] (0D {35, 0}) (0U {33, 0}) [L: 34,1:U] (0D {35, 1}) (0U { 4, 1}) [L: 34,2:U] (0D {35, 2}) (0U {33, 2}) 
[L: 35,0:U] (0D {36, 0}) (0U {34, 0}) [L: 35,1:U] (0D {36, 1}) (0U {34, 1}) [L: 35,2:U] (0U {34, 2}) 
[L: 36,0:U] (0D {37, 0}) (0U {35, 0}) [L: 36,1:U] (0D {37, 1}) (0U {35, 1}) [L: 36,2:U] (0D {37, 2}) (1U {32, 2}) 
[L: 37,0:U] (0D {38, 0}) (0U {36, 0}) [L: 37,1:U] (0D {38, 1}) (0U {36, 1}) [L: 37,2:U] (0D {38, 2}) (0U {36, 2}) 
[L: 38,0:U] (0D {39, 0}) (0U {37, 0}) [L: 38,1:U] (0D {39, 1}) (0U {37, 1}) (1U { 4, 1}) [L: 38,2:U] (0D {39, 2}) (0U {37, 2}) 
[L: 39,0:U] (0D {40, 0}) (0U {38, 0}) [L: 39,1:U] (0D {40, 1}) (0U {38, 1}) [L: 39,2:U] (0D {40, 2}) (0U {38, 2}) 
[L: 40,0:U] (0D {41, 0}) (0U {39, 0}) [L: 40,1:U] (0D {41, 1}) (0U {39, 1}) [L: 40,2:U] (0U {39, 2}) 
[L: 41,0:U] (0D {42, 0}) (0U {40, 0}) [L: 41,1:U] (0D {42, 1}) (0U {40, 1}) [L: 41,2:U] (0U {50, 1}) 
[L: 42,0:U] (0D {43, 0}) (0U {41, 0}) [L: 42,1:U] (0U {41, 1}) [L: 42,2:U] (0D {43, 2}) (0U { 4, 1}) 
[L: 43,0:U] (0D {44, 0}) (0U {42, 0}) [L: 43,1:U] (0U { 4, 1}) [L: 43,2:U] (0D {44, 2}) (0U {42, 2}) 
[L: 44,0:U] (0D {45, 0}) (0U {43, 0}) [L: 44,1:U] (0D {48, 1}) (0U {48, 1}) [L: 44,2:U] (0D {45, 2}) (0U {43, 2}) 
[L: 45,0:U] (0D {46, 0}) (0U {44, 0}) [L: 45,2:U] (0D {46, 2}) (0U {44, 2}) 
[L: 46,0:U] (0D {47, 0}) (0U {45, 0}) (1D {29, 2}) [L: 46,1:U] (0U { 4, 1}) [L: 46,2:U] (0D {47, 2}) (0U {45, 2}) 
[L: 47,0:U] (0D {48, 0}) (0U {46, 0}) [L: 47,1:U] (0U { 4, 1}) [L: 47,2:U] (0D {48, 2}) (0U {46, 2}) 
[L: 48,0:U] (0D {49, 0}) (0U {47, 0}) [L: 48,1:U] (0D {44, 1}) (0U {44, 1}) [L: 48,2:U] (0D {49, 2}) (0U {47, 2}) 
[L: 49,0:U] (0D {50, 0}) (0U {48, 0}) [L: 49,1:U] (0D {50, 1}) (0U { 4, 1}) [L: 49,2:U] (0D {50, 2}) (0U {48, 2}) 
[L: 50,0:U] (0U {49, 0}) [L: 50,1:U] (0D {41, 2}) (0U {49, 1}) [L: 50,2:U] (0U {49, 2})
Then 5 minutes later when killing Kranach buddies same difference of 3 in X movement... Can post its .err if that would help. Thanks!
(running raspbian prerelease 4 on maemo/Nokia N900, no issues with pre3, let me know if more technical details would help)
Issue Details
Issue Number 1288
Project ADOM (Ancient Domains Of Mystery)
Category Linux
Status Fixed
Priority Unknown
Affected Version ADOM 1.2.0 pre 4
Fixed Version ADOM 1.2.0 pre 5
Milestone (none)
Users able to reproduce bug 0
Users unable to reproduce bug 0
Assigned Users (none)
Tags (none)




10-22-2012 06:28 PM
jt jt is offline
Administrator
I can confirm that this problem exists. Just walking around in the shop of the bandit level triggered the error. Verified directly on the Raspberry Pi.

But it seems hard to reproduce... did you do anything special before entering the bandit level (e.g. saving the game)?

10-22-2012 06:56 PM
Senior Member
Quote Originally Posted by jt
I can confirm that this problem exists. Just walking around in the shop of the bandit level triggered the error. Verified directly on the Raspberry Pi.

But it seems hard to reproduce... did you do anything special before entering the bandit level (e.g. saving the game)?
The first crash happened right after the game start. Managed to kill a bandit or two before heading to check store inventory. Next time I managed to again kill a bandit or two, check inventory without problems, get the blanket, druid/puppy/raider quest, then went searching for the bandit... it seemed that the problem is gone then it happened while fighting the raiders. The only similarity - in both cases next step was ending up next to a NPC (entering the door would make the store owner step up next to me and I was definitely trying to move upwards to line up the raiders while next to one (or few). Might be also happening with noone around, will try to check.

10-22-2012 07:19 PM
jt jt is offline
Administrator
Well, I just got the same error message as you (same coordinates). The shopkeeper is causing the problem.
It seems to happen quite often if you enter/leave the shop, so that the shopkeeper has to move. It doesn't seem to happen on other OS, so it might be related to either a compiler error or other side effect. I'm pretty sure we didn't change any of the movement code since Prerelease 3.

Update: I've found the reason for this error. It seems the Raspbian compiler handles a statement differently than the others. There was one place where we replaced a variable with an enum (since Prerelease 3) and this seems to be the culprit. I need to check this line on other compilers.

10-22-2012 08:47 PM
Senior Member
Quote Originally Posted by jt
Well, I just got the same error message as you (same coordinates). The shopkeeper is causing the problem.
It seems to happen quite often if you enter/leave the shop, so that the shopkeeper has to move. It doesn't seem to happen on other OS, so it might be related to either a compiler error or other side effect. I'm pretty sure we didn't change any of the movement code since Prerelease 3.

Update: I've found the reason for this error. It seems the Raspbian compiler handles a statement differently than the others. There was one place where we replaced a variable with an enum (since Prerelease 3) and this seems to be the culprit. I need to check this line on other compilers.
Great news. The only thing that came to my mind was that chars are unsigned in arm by default (http://maemo.org/community/maemo-dev...on_arm_vs_x86/), but couldn't reproduce this in pre3 (spent 5 minutes going nw-se starting from the door of the shop, in pre4 causes the bug in around 10 repetitions, in pre3 not once in around a 1000), so unlikely to be the culprit. Thanks!

10-23-2012 09:12 PM
jt jt is offline
Administrator
It seems the bug was introduced with Prerelease 4. It exists on all operating systems, but only the Raspbian version suffers from it. Will be fixed in Prerelease 5.

10-25-2012 05:33 PM
jt jt is offline
Administrator
Fixed.

+ Reply