Down the Long Haul: moving platforms disappear at around 1570 pts (Git)


#1

I’ve been playing “Down the Long Haul” in the arcade, and I’ve noticed that once my score reaches about 1570, the platforms all disappear. Further, I discovered that if I am on a platform when it disappears, my score jumps to around 3000 and then there are various glitches (like bullets coming from off the right side of the screen through walls).

Terminal output is attached.

This is on Git commit 0bec146b8427c6967fa65fa4d683080fe3c8e2a1 (October 21, 2012).

Edited to clarify that it’s Git I got the source from, not SVN


frogatto-long-haul-bug.txt (20.9 KB)


#2

Hey, so, uh, we’ve kinda been using git for the past two years, instead of SVN. Here’s the link. https://github.com/frogatto/frogatto/

The game looks a lot better now, and perhaps this problem is even fixed. :smiley:


#3

No, as inferable by the date, 0bec146b8427c6967fa65fa4d683080fe3c8e2a1 is a git commit; this is likely a legitimate bug.
I couldn’t reproduce it yet because… whoa, 1570 is a lot of points!
Something else we have to fix is that the level used the old-style windows, those comprised of “holes” in the tile definition.


#4

Hm. Forgot what SVN looked like. And yeah. :frowning:


#5

Okay, so I reproduced the point-jumping part of the bug. I had about 1800 points when I was on a moving platform. The screen went black, my score shot up to 37,364, and then the game went back to the title screen.

Below is a text file of the terminal.

ADDING SUB LEVEL: 0(rect(-96, -128, 800, 640)) -96, -128 -> 0, 0
ADDING SUB LEVEL: 3(rect(2592, -128, 3488, 640)) 2592, -128 -> -1792, 0
PLAY: 0xb322110 ambient/fireplace.ogg -> 1
ADDING SUB LEVEL: 7(rect(6176, -128, 7072, 640)) 6176, -128 -> -4480, 0
PLAY: 0xa985f20 ambient/fireplace-gas.ogg -> 5
ADDING SUB LEVEL: 9(rect(7968, -128, 8864, 640)) 7968, -128 -> -5376, 0
ADDING SUB LEVEL: 8(rect(7072, -128, 7968, 640)) 7072, -128 -> -3584, 0
ADDING SUB LEVEL: 1(rect(800, -128, 1696, 640)) 800, -128 -> 3584, 0
ADDING SUB LEVEL: 10(rect(8864, -128, 9760, 640)) 8864, -128 -> -3584, 0
ADDING SUB LEVEL: 5(rect(4384, -128, 5280, 640)) 4384, -128 -> 1792, 0
ADDING SUB LEVEL: 3(rect(2592, -128, 3488, 640)) 2592, -128 -> 4480, 0
ADDING SUB LEVEL: 7(rect(6176, -128, 7072, 640)) 6176, -128 -> 1792, 0
ADDING SUB LEVEL: 5(rect(4384, -128, 5280, 640)) 4384, -128 -> 4480, 0
ADDING SUB LEVEL: 10(rect(8864, -128, 9760, 640)) 8864, -128 -> 896, 0
ADDING SUB LEVEL: 7(rect(6176, -128, 7072, 640)) 6176, -128 -> 4480, 0
ADDING SUB LEVEL: 3(rect(2592, -128, 3488, 640)) 2592, -128 -> 8960, 0
ADDING SUB LEVEL: 9(rect(7968, -128, 8864, 640)) 7968, -128 -> 4480, 0
ADDING SUB LEVEL: 2(rect(1696, -128, 2592, 640)) 1696, -128 -> 11648, 0
ADDING SUB LEVEL: 7(rect(6176, -128, 7072, 640)) 6176, -128 -> 8064, 0
ADDING SUB LEVEL: 1(rect(800, -128, 1696, 640)) 800, -128 -> 14336, 0
ADDING SUB LEVEL: 10(rect(8864, -128, 9760, 640)) 8864, -128 -> 7168, 0
ADDING SUB LEVEL: 3(rect(2592, -128, 3488, 640)) 2592, -128 -> 14336, 0
ADDING SUB LEVEL: 1(rect(800, -128, 1696, 640)) 800, -128 -> -1024, 0
ADDING SUB LEVEL: 10(rect(8864, -128, 9760, 640)) 8864, -128 -> -8192, 0
ADDING SUB LEVEL: 3(rect(2592, -128, 3488, 640)) 2592, -128 -> -1024, 0
ADDING SUB LEVEL: 1(rect(800, -128, 1696, 640)) 800, -128 -> -16384, 0
ADDING SUB LEVEL: 10(rect(8864, -128, 9760, 640)) 8864, -128 -> -23552, 0
ADDING SUB LEVEL: 3(rect(2592, -128, 3488, 640)) 2592, -128 -> -16384, 0
ADDING SUB LEVEL: 1(rect(800, -128, 1696, 640)) 800, -128 -> -31744, 0
ADDING SUB LEVEL: 10(rect(8864, -128, 9760, 640)) 8864, -128 -> -38912, 0
ADDING SUB LEVEL: 3(rect(2592, -128, 3488, 640)) 2592, -128 -> -31744, 0
ADDING SUB LEVEL: 7(rect(6176, -128, 7072, 640)) 6176, -128 -> -34432, 0
ADDING SUB LEVEL: 10(rect(8864, -128, 9760, 640)) 8864, -128 -> -54272, 0
ADDING SUB LEVEL: 3(rect(2592, -128, 3488, 640)) 2592, -128 -> -47104, 0
ADDING SUB LEVEL: 7(rect(6176, -128, 7072, 640)) 6176, -128 -> -49792, 0
ADDING SUB LEVEL: 10(rect(8864, -128, 9760, 640)) 8864, -128 -> -69632, 0
ADDING SUB LEVEL: 3(rect(2592, -128, 3488, 640)) 2592, -128 -> -62464, 0
ADDING SUB LEVEL: 7(rect(6176, -128, 7072, 640)) 6176, -128 -> -65152, 0
ADDING SUB LEVEL: 10(rect(8864, -128, 9760, 640)) 8864, -128 -> -84992, 0
ADDING SUB LEVEL: 3(rect(2592, -128, 3488, 640)) 2592, -128 -> -77824, 0
ADDING SUB LEVEL: 7(rect(6176, -128, 7072, 640)) 6176, -128 -> -80512, 0
ADDING SUB LEVEL: 10(rect(8864, -128, 9760, 640)) 8864, -128 -> -100352, 0
ADDING SUB LEVEL: 3(rect(2592, -128, 3488, 640)) 2592, -128 -> -93184, 0
ADDING SUB LEVEL: 7(rect(6176, -128, 7072, 640)) 6176, -128 -> -95872, 0
ADDING SUB LEVEL: 10(rect(8864, -128, 9760, 640)) 8864, -128 -> -115712, 0
ADDING SUB LEVEL: 3(rect(2592, -128, 3488, 640)) 2592, -128 -> -108544, 0
ADDING SUB LEVEL: 7(rect(6176, -128, 7072, 640)) 6176, -128 -> -111232, 0
ADDING SUB LEVEL: 2(rect(1696, -128, 2592, 640)) 1696, -128 -> -105856, 0
ADDING SUB LEVEL: 2(rect(1696, -128, 2592, 640)) 1696, -128 -> -121216, 0
ADDING SUB LEVEL: 3(rect(2592, -128, 3488, 640)) 2592, -128 -> -123904, 0
ADDING SUB LEVEL: 7(rect(6176, -128, 7072, 640)) 6176, -128 -> -126592, 0
ADDING SUB LEVEL: 2(rect(1696, -128, 2592, 640)) 1696, -128 -> -136576, 0
ADDING SUB LEVEL: 3(rect(2592, -128, 3488, 640)) 2592, -128 -> -139264, 0
ADDING SUB LEVEL: 7(rect(6176, -128, 7072, 640)) 6176, -128 -> -141952, 0
ADDING SUB LEVEL: 2(rect(1696, -128, 2592, 640)) 1696, -128 -> -151936, 0
ADDING SUB LEVEL: 3(rect(2592, -128, 3488, 640)) 2592, -128 -> -154624, 0
ADDING SUB LEVEL: 7(rect(6176, -128, 7072, 640)) 6176, -128 -> -157312, 0
ADDING SUB LEVEL: 4(rect(3488, -128, 4384, 640)) 3488, -128 -> -152832, 0
ADDING SUB LEVEL: 2(rect(1696, -128, 2592, 640)) 1696, -128 -> -167296, 0
ADDING SUB LEVEL: 4(rect(3488, -128, 4384, 640)) 3488, -128 -> -168192, 0
ADDING SUB LEVEL: 7(rect(6176, -128, 7072, 640)) 6176, -128 -> -172672, 0
ADDING SUB LEVEL: 1(rect(800, -128, 1696, 640)) 800, -128 -> -164608, 0
ADDING SUB LEVEL: 1(rect(800, -128, 1696, 640)) 800, -128 -> -179968, 0
ADDING SUB LEVEL: 2(rect(1696, -128, 2592, 640)) 1696, -128 -> -182656, 0
ADDING SUB LEVEL: 4(rect(3488, -128, 4384, 640)) 3488, -128 -> -183552, 0
ADDING SUB LEVEL: 9(rect(7968, -128, 8864, 640)) 7968, -128 -> -186240, 0
ADDING SUB LEVEL: 1(rect(800, -128, 1696, 640)) 800, -128 -> -195328, 0
ADDING SUB LEVEL: 4(rect(3488, -128, 4384, 640)) 3488, -128 -> -198912, 0
ADDING SUB LEVEL: 9(rect(7968, -128, 8864, 640)) 7968, -128 -> -201600, 0
ADDING SUB LEVEL: 1(rect(800, -128, 1696, 640)) 800, -128 -> -210688, 0
ADDING SUB LEVEL: 4(rect(3488, -128, 4384, 640)) 3488, -128 -> -214272, 0
ADDING SUB LEVEL: 9(rect(7968, -128, 8864, 640)) 7968, -128 -> -216960, 0
ADDING SUB LEVEL: 10(rect(8864, -128, 9760, 640)) 8864, -128 -> -216960, 0
ADDING SUB LEVEL: 5(rect(4384, -128, 5280, 640)) 4384, -128 -> -211584, 0
ADDING SUB LEVEL: 10(rect(8864, -128, 9760, 640)) 8864, -128 -> -232320, 0
ADDING SUB LEVEL: 5(rect(4384, -128, 5280, 640)) 4384, -128 -> -226944, 0
ADDING SUB LEVEL: 9(rect(7968, -128, 8864, 640)) 7968, -128 -> -232320, 0
ADDING SUB LEVEL: 7(rect(6176, -128, 7072, 640)) 6176, -128 -> -227840, 0
ADDING SUB LEVEL: 10(rect(8864, -128, 9760, 640)) 8864, -128 -> -247680, 0
ADDING SUB LEVEL: 5(rect(4384, -128, 5280, 640)) 4384, -128 -> -242304, 0
ADDING SUB LEVEL: 7(rect(6176, -128, 7072, 640)) 6176, -128 -> -243200, 0
ADDING SUB LEVEL: 4(rect(3488, -128, 4384, 640)) 3488, -128 -> -239616, 0
ADDING SUB LEVEL: 6(rect(5280, -128, 6176, 640)) 5280, -128 -> -240512, 0
ADDING SUB LEVEL: 4(rect(3488, -128, 4384, 640)) 3488, -128 -> -254976, 0
ADDING SUB LEVEL: 6(rect(5280, -128, 6176, 640)) 5280, -128 -> -255872, 0
ADDING SUB LEVEL: 7(rect(6176, -128, 7072, 640)) 6176, -128 -> -258560, 0
ADDING SUB LEVEL: 9(rect(7968, -128, 8864, 640)) 7968, -128 -> -257664, 0
ADDING SUB LEVEL: 4(rect(3488, -128, 4384, 640)) 3488, -128 -> -270336, 0
ADDING SUB LEVEL: 6(rect(5280, -128, 6176, 640)) 5280, -128 -> -271232, 0
ADDING SUB LEVEL: 9(rect(7968, -128, 8864, 640)) 7968, -128 -> -273024, 0
ADDING SUB LEVEL: 2(rect(1696, -128, 2592, 640)) 1696, -128 -> -265856, 0
ADDING SUB LEVEL: 5(rect(4384, -128, 5280, 640)) 4384, -128 -> -267648, 0
ADDING SUB LEVEL: 3(rect(2592, -128, 3488, 640)) 2592, -128 -> -264960, 0
ADDING SUB LEVEL: 2(rect(1696, -128, 2592, 640)) 1696, -128 -> -281216, 0
ADDING SUB LEVEL: 3(rect(2592, -128, 3488, 640)) 2592, -128 -> -280320, 0
ADDING SUB LEVEL: 5(rect(4384, -128, 5280, 640)) 4384, -128 -> -283008, 0
ADDING SUB LEVEL: 8(rect(7072, -128, 7968, 640)) 7072, -128 -> -283904, 0
ADDING SUB LEVEL: 4(rect(3488, -128, 4384, 640)) 3488, -128 -> -279424, 0
ADDING SUB LEVEL: 3(rect(2592, -128, 3488, 640)) 2592, -128 -> -295680, 0
ADDING SUB LEVEL: 4(rect(3488, -128, 4384, 640)) 3488, -128 -> -294784, 0
ADDING SUB LEVEL: 8(rect(7072, -128, 7968, 640)) 7072, -128 -> -299264, 0
ADDING SUB LEVEL: 10(rect(8864, -128, 9760, 640)) 8864, -128 -> -299264, 0
ADDING SUB LEVEL: 6(rect(5280, -128, 6176, 640)) 5280, -128 -> -294784, 0
ADDING SUB LEVEL: 3(rect(2592, -128, 3488, 640)) 2592, -128 -> -291200, 0
ADDING SUB LEVEL: 7(rect(6176, -128, 7072, 640)) 6176, -128 -> -293888, 0
ADDING SUB LEVEL: 3(rect(2592, -128, 3488, 640)) 2592, -128 -> -306560, 0
ADDING SUB LEVEL: 6(rect(5280, -128, 6176, 640)) 5280, -128 -> -310144, 0
ADDING SUB LEVEL: 7(rect(6176, -128, 7072, 640)) 6176, -128 -> -309248, 0
ADDING SUB LEVEL: 2(rect(1696, -128, 2592, 640)) 1696, -128 -> -303872, 0
ADDING SUB LEVEL: 9(rect(7968, -128, 8864, 640)) 7968, -128 -> -309248, 0
ADDING SUB LEVEL: 4(rect(3488, -128, 4384, 640)) 3488, -128 -> -303872, 0
ADDING SUB LEVEL: 10(rect(8864, -128, 9760, 640)) 8864, -128 -> -308352, 0
ADDING SUB LEVEL: 10(rect(8864, -128, 9760, 640)) 8864, -128 -> -323712, 0
ADDING SUB LEVEL: 4(rect(3488, -128, 4384, 640)) 3488, -128 -> -319232, 0
ADDING SUB LEVEL: 9(rect(7968, -128, 8864, 640)) 7968, -128 -> -324608, 0
ADDING SUB LEVEL: 2(rect(1696, -128, 2592, 640)) 1696, -128 -> -315648, 0
ADDING SUB LEVEL: 9(rect(7968, -128, 8864, 640)) 7968, -128 -> -321024, 0
ADDING SUB LEVEL: 7(rect(6176, -128, 7072, 640)) 6176, -128 -> -318336, 0
ADDING SUB LEVEL: 5(rect(4384, -128, 5280, 640)) 4384, -128 -> -315648, 0
ADDING SUB LEVEL: 4(rect(3488, -128, 4384, 640)) 3488, -128 -> -313856, 0
ADDING SUB LEVEL: 8(rect(7072, -128, 7968, 640)) 7072, -128 -> -316544, 0
ADDING SUB LEVEL: 4(rect(3488, -128, 4384, 640)) 3488, -128 -> -329216, 0
ADDING SUB LEVEL: 5(rect(4384, -128, 5280, 640)) 4384, -128 -> -331008, 0
ADDING SUB LEVEL: 8(rect(7072, -128, 7968, 640)) 7072, -128 -> -331904, 0
ADDING SUB LEVEL: 9(rect(7968, -128, 8864, 640)) 7968, -128 -> -331904, 0
ADDING SUB LEVEL: 1(rect(800, -128, 1696, 640)) 800, -128 -> -323840, 0
ADDING SUB LEVEL: 2(rect(1696, -128, 2592, 640)) 1696, -128 -> -323840, 0
ADDING SUB LEVEL: 4(rect(3488, -128, 4384, 640)) 3488, -128 -> -324736, 0
ADDING SUB LEVEL: 7(rect(6176, -128, 7072, 640)) 6176, -128 -> -326528, 0
ADDING SUB LEVEL: 3(rect(2592, -128, 3488, 640)) 2592, -128 -> -322048, 0
ADDING SUB LEVEL: 6(rect(5280, -128, 6176, 640)) 5280, -128 -> -323840, 0
ADDING SUB LEVEL: 9(rect(7968, -128, 8864, 640)) 7968, -128 -> -325632, 0
ADDING SUB LEVEL: 2(rect(1696, -128, 2592, 640)) 1696, -128 -> -318464, 0
ADDING SUB LEVEL: 10(rect(8864, -128, 9760, 640)) 8864, -128 -> -324736, 0
ADDING SUB LEVEL: 8(rect(7072, -128, 7968, 640)) 7072, -128 -> -322048, 0
ADDING SUB LEVEL: 4(rect(3488, -128, 4384, 640)) 3488, -128 -> -317568, 0
ADDING SUB LEVEL: 7(rect(6176, -128, 7072, 640)) 6176, -128 -> -319360, 0
ADDING SUB LEVEL: 2(rect(1696, -128, 2592, 640)) 1696, -128 -> -313984, 0
ADDING SUB LEVEL: 9(rect(7968, -128, 8864, 640)) 7968, -128 -> -319360, 0
ADDING SUB LEVEL: 8(rect(7072, -128, 7968, 640)) 7072, -128 -> -317568, 0
ADDING SUB LEVEL: 3(rect(2592, -128, 3488, 640)) 2592, -128 -> -312192, 0
ADDING SUB LEVEL: 6(rect(5280, -128, 6176, 640)) 5280, -128 -> -313984, 0
ADDING SUB LEVEL: 9(rect(7968, -128, 8864, 640)) 7968, -128 -> -315776, 0
ADDING SUB LEVEL: 8(rect(7072, -128, 7968, 640)) 7072, -128 -> -313984, 0
ADDING SUB LEVEL: 10(rect(8864, -128, 9760, 640)) 8864, -128 -> -314880, 0
ADDING SUB LEVEL: 3(rect(2592, -128, 3488, 640)) 2592, -128 -> -307712, 0
ADDING SUB LEVEL: 9(rect(7968, -128, 8864, 640)) 7968, -128 -> -312192, 0
ADDING SUB LEVEL: 7(rect(6176, -128, 7072, 640)) 6176, -128 -> -309504, 0
ADDING SUB LEVEL: 1(rect(800, -128, 1696, 640)) 800, -128 -> -303232, 0
ADDING SUB LEVEL: 4(rect(3488, -128, 4384, 640)) 3488, -128 -> -305024, 0
ADDING SUB LEVEL: 5(rect(4384, -128, 5280, 640)) 4384, -128 -> -305024, 0
ADDING SUB LEVEL: 2(rect(1696, -128, 2592, 640)) 1696, -128 -> -301440, 0
ADDING SUB LEVEL: 10(rect(8864, -128, 9760, 640)) 8864, -128 -> -307712, 0
ADDING SUB LEVEL: 3(rect(2592, -128, 3488, 640)) 2592, -128 -> -300544, 0
in level constructor...
building...430645
done building...430645
LAYER -4 BUILT 0 tiles
done building tile_map...430646
done building hex_tile_map...430646
done level constructor: 16
SET STARTING CYCLES: 0
RUNNING GARBAGE COLLECTION FOR 34 OBJECTS...
PASS 1: 30 OBJECTS SAFE
PASS 2: 32 OBJECTS SAFE
RAN GARBAGE COLLECTION IN 1ms. Releasing 2/34 OBJECTS
WRITE PREFS: /home/REDACTED/.frogatto/preferences.cfg
get_dir(): /home/REDACTED/.frogatto
No free channels available
no error
SENT 3581/3581
ERROR WITH (2, )
UPLOAD COMPLETE: ERROR RECEIVING DATA
EXITING WITH UNVERIFIED SESSION

#6

Hmm, I don’t think there’s anything wrong in that output; we’ll have to see if there’s some problem with the cosmic_shift function, that makes the coordinates wrap around at about 32k pixels. Memory stuff, I can’t explain the details.

The “Down The Rabbit Hall” level is similarly horizontal; if this bug affects Down the Long Haul, surely it’d affect the former as well… Or not? If it doesn’t, then we’re doing something different in it that should be ported over to Down the Long Haul. I’m going to test in a bit.


#7

I just reproduced all of the problems listed:

  • random bullets from unknown sources flying from the right side at > 1000 score
  • platforms disappearing at > 1000 score
  • screen went black at > 1500 score and then appeared again at the Arcade title screen with a new high score of 39047 (!)
    I’m playing Frogatto engine version 1.1 on Ubuntu.