Open Surge Forum

A fun 2D retro platformer inspired by Sonic games and a game creation system

You are not logged in.

Announcement

Our community has moved to Discord! https://discord.gg/w8JqM7m

#1 2010-02-26 21:42:15

bugmenot
Member
Registered: 2010-02-26
Posts: 13

Crash of version 0.1.3 on Ubuntu 9.10

Hello,
this crash occurs when I want to start the new version on Ubuntu 9.10:

GNU gdb (GDB) 7.0-ubuntu
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/share/games/opensonic/opensonic...Reading symbols from /usr/lib/debug/usr/share/games/opensonic/opensonic...done.
(no debugging symbols found)...done.
(gdb) r
Starting program: /usr/share/games/opensonic/opensonic 
[Thread debugging using libthread_db enabled]
[New Thread 0x7ffff37bf910 (LWP 25570)]
[New Thread 0x7ffff2fbe910 (LWP 25571)]
[New Thread 0x7ffff1f82910 (LWP 25572)]
[New Thread 0x7fffeb9eb910 (LWP 25573)]
[Thread 0x7fffeb9eb910 (LWP 25573) exited]
[New Thread 0x7fffeb9eb910 (LWP 25574)]
[New Thread 0x7fffe6fe3910 (LWP 25575)]
[Thread 0x7fffeb9eb910 (LWP 25574) exited]
*** glibc detected *** /usr/share/games/opensonic/opensonic: double free or corruption (out): 0x0000000000fbd3f0 ***
======= Backtrace: =========
/lib/libc.so.6[0x7ffff6a97dd6]
/lib/libc.so.6(cfree+0x6c)[0x7ffff6a9c74c]
/usr/lib/liballeg.so.4.2(destroy_bitmap+0x87)[0x7ffff7aeab07]
/usr/share/games/opensonic/opensonic(video_render+0x1a7)[0x43fac7]
/usr/share/games/opensonic/opensonic(main+0x3aa)[0x42c10a]
/lib/libc.so.6(__libc_start_main+0xfd)[0x7ffff6a40abd]
/usr/share/games/opensonic/opensonic[0x40acd9]
======= Memory map: ========
00400000-0045c000 r-xp 00000000 08:02 234591                             /usr/share/games/opensonic/opensonic
0065b000-0065c000 r--p 0005b000 08:02 234591                             /usr/share/games/opensonic/opensonic
0065c000-0065e000 rw-p 0005c000 08:02 234591                             /usr/share/games/opensonic/opensonic
0065e000-0110a000 rw-p 00000000 00:00 0                                  [heap]
7fffe0000000-7fffe0021000 rw-p 00000000 00:00 0 
7fffe0021000-7fffe4000000 ---p 00000000 00:00 0 
7fffe67e3000-7fffe67e4000 ---p 00000000 00:00 0 
7fffe67e4000-7fffe6fe4000 rwxp 00000000 00:00 0 
7fffe6fe4000-7fffeafe5000 rw-s 00000000 00:11 1164932                    /dev/shm/pulse-shm-2244601164
7fffeafe5000-7fffeafea000 r-xp 00000000 08:02 105743                     /usr/lib/alsa-lib/libasound_module_ctl_pulse.so
7fffeafea000-7fffeb1e9000 ---p 00005000 08:02 105743                     /usr/lib/alsa-lib/libasound_module_ctl_pulse.so
7fffeb1e9000-7fffeb1ea000 r--p 00004000 08:02 105743                     /usr/lib/alsa-lib/libasound_module_ctl_pulse.so
7fffeb1ea000-7fffeb1eb000 rw-p 00005000 08:02 105743                     /usr/lib/alsa-lib/libasound_module_ctl_pulse.so
7fffeb1eb000-7fffeb1ec000 ---p 00000000 00:00 0 
7fffeb1ec000-7fffeb9ec000 rwxp 00000000 00:00 0 
7fffef5ff000-7fffef615000 r-xp 00000000 08:02 13380                      /lib/libgcc_s.so.1
7fffef615000-7fffef814000 ---p 00016000 08:02 13380                      /lib/libgcc_s.so.1
7fffef814000-7fffef815000 r--p 00015000 08:02 13380                      /lib/libgcc_s.so.1
7fffef815000-7fffef816000 rw-p 00016000 08:02 13380                      /lib/libgcc_s.so.1
7fffef816000-7fffef9a9000 rw-p 00000000 00:00 0 
7fffef9aa000-7fffef9ed000 rw-p 00000000 00:00 0 
7fffef9ed000-7fffef9f2000 r-xp 00000000 08:02 105744                     /usr/lib/alsa-lib/libasound_module_pcm_pulse.so
7fffef9f2000-7fffefbf2000 ---p 00005000 08:02 105744                     /usr/lib/alsa-lib/libasound_module_pcm_pulse.so
7fffefbf2000-7fffefbf3000 r--p 00005000 08:02 105744                     /usr/lib/alsa-lib/libasound_module_pcm_pulse.so
7fffefbf3000-7fffefbf4000 rw-p 00006000 08:02 105744                     /usr/lib/alsa-lib/libasound_module_pcm_pulse.so
7fffefbf4000-7fffefc0e000 r-xp 00000000 08:02 38668                      /usr/lib/libvorbisenc.so.2.0.3
7fffefc0e000-7fffefe0d000 ---p 0001a000 08:02 38668                      /usr/lib/libvorbisenc.so.2.0.3
7fffefe0d000-7fffefe0e000 r--p 00019000 08:02 38668                      /usr/lib/libvorbisenc.so.2.0.3
7fffefe0e000-7fffeffce000 rw-p 0001a000 08:02 38668                      /usr/lib/libvorbisenc.so.2.0.3
7fffeffce000-7ffff0017000 r-xp 00000000 08:02 48548                      /usr/lib/libFLAC.so.8.2.0
7ffff0017000-7ffff0217000 ---p 00049000 08:02 48548                      /usr/lib/libFLAC.so.8.2.0
7ffff0217000-7ffff0218000 r--p 00049000 08:02 48548                      /usr/lib/libFLAC.so.8.2.0
7ffff0218000-7ffff0219000 rw-p 0004a000 08:02 48548                      /usr/lib/libFLAC.so.8.2.0
7ffff0219000-7ffff021c000 r-xp 00000000 08:02 3504                       /lib/libuuid.so.1.3.0
7ffff021c000-7ffff041c000 ---p 00003000 08:02 3504                       /lib/libuuid.so.1.3.0
7ffff041c000-7ffff041d000 r--p 00003000 08:02 3504                       /lib/libuuid.so.1.3.0
7ffff041d000-7ffff041e000 rw-p 00004000 08:02 3504                       /lib/libuuid.so.1.3.0
7ffff041e000-7ffff045b000 r-xp 00000000 08:02 322                        /lib/libdbus-1.so.3.4.0
7ffff045b000-7ffff065b000 ---p 0003d000 08:02 322                        /lib/libdbus-1.so.3.4.0
7ffff065b000-7ffff065c000 r--p 0003d000 08:02 322                        /lib/libdbus-1.so.3.4.0
7ffff065c000-7ffff065d000 rw-p 0003e000 08:02 322                        /lib/libdbus-1.so.3.4.0
7ffff065d000-7ffff06b9000 r-xp 00000000 08:02 37704                      /usr/lib/libsndfile.so.1.0.20
7ffff06b9000-7ffff08b8000 ---p 0005c000 08:02 37704                      /usr/lib/libsndfile.so.1.0.20
7ffff08b8000-7ffff08ba000 r--p 0005b000 08:02 37704                      /usr/lib/libsndfile.so.1.0.20
7ffff08ba000-7ffff08bb000 rw-p 0005d000 08:02 37704                      /usr/lib/libsndfile.so.1.0.20
7ffff08bb000-7ffff08bf000 rw-p 00000000 00:00 0 
7ffff08bf000-7ffff08c8000 r-xp 00000000 08:02 43598                      /lib/libwrap.so.0.7.6
7ffff08c8000-7ffff0ac7000 ---p 00009000 08:02 43598                      /lib/libwrap.so.0.7.6
7ffff0ac7000-7ffff0ac8000 r--p 00008000 08:02 43598                      /lib/libwrap.so.0.7.6
7ffff0ac8000-7ffff0ac9000 rw-p 00009000 08:02 43598                      /lib/libwrap.so.0.7.6
7ffff0ac9000-7ffff0aca000 rw-p 00000000 00:00 0 
7ffff0aca000-7ffff0acf000 r-xp 00000000 08:02 44322                      /usr/lib/libXtst.so.6.1.0
7ffff0acf000-7ffff0ccf000 ---p 00005000 08:02 44322                      /usr/lib/libXtst.so.6.1.0
7ffff0ccf000-7ffff0cd0000 r--p 00005000 08:02 44322                      /usr/lib/libXtst.so.6.1.0
7ffff0cd0000-7ffff0cd1000 rw-p 00006000 08:02 44322                      /usr/lib/libXtst.so.6.1.0
7ffff0cd1000-7ffff0cd9000 r-xp 00000000 08:02 35530                      /usr/lib/libSM.so.6.0.0
7ffff0cd9000-7ffff0ed8000 ---p 00008000 08:02 35530                      /usr/lib/libSM.so.6.0.0
7ffff0ed8000-7ffff0ed9000 r--p 00007000 08:02 35530                      /usr/lib/libSM.so.6.0.0
7ffff0ed9000-7ffff0eda000 rw-p 00008000 08:02 35530                      /usr/lib/libSM.so.6.0.0
7ffff0eda000-7ffff0ef1000 r-xp 00000000 08:02 35516                      /usr/lib/libICE.so.6.3.0
7ffff0ef1000-7ffff10f0000 ---p 00017000 08:02 35516                      /usr/lib/libICE.so.6.3.0
7ffff10f0000-7ffff10f1000 r--p 00016000 08:02 35516                      /usr/lib/libICE.so.6.3.0
7ffff10f1000-7ffff10f2000 rw-p 00017000 08:02 35516                      /usr/lib/libICE.so.6.3.0
7ffff10f2000-7ffff10f5000 rw-p 00000000 00:00 0 
7ffff10f5000-7ffff113f000 r-xp 00000000 08:02 29281                      /usr/lib/libpulsecommon-0.9.19.so
Program received signal SIGABRT, Aborted.
0x00007ffff6a554b5 in raise () from /lib/libc.so.6
(gdb) bt
#0  0x00007ffff6a554b5 in raise () from /lib/libc.so.6
#1  0x00007ffff6a58f50 in abort () from /lib/libc.so.6
#2  0x00007ffff6a8dc97 in ?? () from /lib/libc.so.6
#3  0x00007ffff6a97dd6 in ?? () from /lib/libc.so.6
#4  0x00007ffff6a9c74c in free () from /lib/libc.so.6
#5  0x00007ffff7aeab07 in destroy_bitmap () from /usr/lib/liballeg.so.4.2
#6  0x000000000043fac7 in video_render ()
    at /home/korn/opensonic/opensonic-0.1.3/src/video.c:420
#7  0x000000000042c10a in main (argc=1, argv=0x7fffffffe308)
    at /home/korn/opensonic/opensonic-0.1.3/src/main.c:154

Offline

#2 2010-02-26 22:10:04

bugmenot
Member
Registered: 2010-02-26
Posts: 13

Re: Crash of version 0.1.3 on Ubuntu 9.10

After I applied this patch the error has changed:

Index: opensonic-0.1.3/src/video.c
===================================================================
--- opensonic-0.1.3.orig/src/video.c    2010-02-26 23:05:02.442283836 +0100
+++ opensonic-0.1.3/src/video.c    2010-02-26 23:07:06.682805892 +0100
@@ -398,7 +398,7 @@
                 fast2x_blit(video_get_backbuffer()->data, tmp);
 
             blit(tmp, screen, 0, 0, 0, 0, VIDEO_SCREEN_W*2, VIDEO_SCREEN_H*2);
-            destroy_bitmap(tmp);
+//            destroy_bitmap(tmp);
             break;
         }
 
@@ -417,7 +417,7 @@
                 stretch_blit(video_get_backbuffer()->data, tmp, 0, 0, VIDEO_SCREEN_W, VIDEO_SCREEN_H, 0, 0, tmp->w, tmp->h);
 
             blit(tmp, screen, 0, 0, 0, 0, tmp->w, tmp->h);
-            destroy_bitmap(tmp);
+//            destroy_bitmap(tmp);
             break;
         }
 
GNU gdb (GDB) 7.0-ubuntu
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/share/games/opensonic/opensonic...Reading symbols from /usr/lib/debug/usr/share/games/opensonic/opensonic...done.
(no debugging symbols found)...done.
(gdb) r
Starting program: /usr/share/games/opensonic/opensonic 
[Thread debugging using libthread_db enabled]
[New Thread 0x7ffff37bf910 (LWP 12997)]
[New Thread 0x7ffff2fbe910 (LWP 12998)]
[New Thread 0x7ffff1f82910 (LWP 12999)]
[New Thread 0x7fffeb9eb910 (LWP 13000)]
[Thread 0x7fffeb9eb910 (LWP 13000) exited]
[New Thread 0x7fffeb9eb910 (LWP 13001)]
[New Thread 0x7fffe6fe3910 (LWP 13002)]
[Thread 0x7fffeb9eb910 (LWP 13001) exited]
opensonic: malloc.c:3074: sYSMALLOc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0)' failed.

Program received signal SIGABRT, Aborted.
0x00007ffff6a554b5 in raise () from /lib/libc.so.6
(gdb) bt
#0  0x00007ffff6a554b5 in raise () from /lib/libc.so.6
#1  0x00007ffff6a58f50 in abort () from /lib/libc.so.6
#2  0x00007ffff6a4e481 in __assert_fail () from /lib/libc.so.6
#3  0x00007ffff6a9b3a1 in ?? () from /lib/libc.so.6
#4  0x00007ffff6a9c82e in malloc () from /lib/libc.so.6
#5  0x00007ffff7aeacc8 in create_bitmap_ex () from /usr/lib/liballeg.so.4.2
#6  0x000000000043fbca in video_render ()
    at /home/korn/opensonic/opensonic-0.1.3/src/video.c:393
#7  0x000000000042c10a in main (argc=1, argv=0x7fffffffe308)
    at /home/korn/opensonic/opensonic-0.1.3/src/main.c:154

Offline

#3 2010-02-26 23:35:21

Alexandre
Administrator
From: Brazil
Registered: 2009-01-27
Posts: 3,300
Website

Re: Crash of version 0.1.3 on Ubuntu 9.10

Welcome to the forums smile

Do not apply that patch. Restore the original video.c file.

Please send us your logfile.txt file (either in the same folder of the game, or in $HOME/.opensonic). Can you explain what were you doing before the game crashed?

Offline

#4 2010-02-27 00:15:39

bugmenot
Member
Registered: 2010-02-26
Posts: 13

Re: Crash of version 0.1.3 on Ubuntu 9.10

Thanks for the welcome smile

I reverted that patch again.

This is the logfile:
http://pastebin.com/KxL9vaL4

I just start the game and it immediately crashes leaving this output in the terminal:
http://pastebin.com/8GQLkxGb

Offline

#5 2010-02-27 02:50:43

Alexandre
Administrator
From: Brazil
Registered: 2009-01-27
Posts: 3,300
Website

Re: Crash of version 0.1.3 on Ubuntu 9.10

(delete $HOME/.opensonic/preferences.dat if applicable)

Compile your game and type make install as root.

Open a terminal and run

opensonic --tiny

You can also try

opensonic --tiny --fullscreen

Please tell us if it works. If it does, try changing the screen resolution at the options menu.

Offline

#6 2010-02-27 09:15:44

bugmenot
Member
Registered: 2010-02-26
Posts: 13

Re: Crash of version 0.1.3 on Ubuntu 9.10

Starting the game with --tiny (also with --tiny --fullscreen) starts up the game fine.

The crash occurs again if I try to change the resolution in the Options menu to Normal.

I am trying to create a Debian package of the new version for the Ubuntu gaming page PlayDeb.net (http://www.playdeb.net/software/Open%20Sonic).
You are invited to join us on IRC (channel #getdeb on freenode) so we can work this out.

Offline

#7 2010-02-28 19:11:03

Alexandre
Administrator
From: Brazil
Registered: 2009-01-27
Posts: 3,300
Website

Re: Crash of version 0.1.3 on Ubuntu 9.10

oh, are you the person who created the 0.1.2 package at PlayDeb?

Apply this patch. Send me the logfile after you compile it.
(you may download the updated video.c file in the svn repository as well)

After compiling it, go to the options screen and change the screen resolution. Tell me what you see. You may run opensonic --tiny initially.

--- video.orig.c    2010-02-25 05:00:17.000000000 -0300
+++ video.c    2010-02-28 15:59:15.000000000 -0300
@@ -40,12 +40,13 @@
 static int video_resolution;
 static int video_fullscreen;
 static int video_showfps;
-static void fast2x_blit(BITMAP *src, BITMAP *dest);
-static void filter_blit(BITMAP *src, BITMAP *dest, int filter);
+static void fast2x_blit(image_t *src, image_t *dest);
+static void filter_blit(image_t *src, image_t *dest, int filter);
 static void window_switch_in();
 static void window_switch_out();
 static int window_active = TRUE;
 static void losangle(image_t *img, int x, int y, int r, int col);
+static void draw_to_screen(image_t *img);
 
 /* Fade-in & fade-out */
 #define FADEFX_NONE            0
@@ -383,48 +384,51 @@
         /* tiny window */
         case VIDEORESOLUTION_1X:
         {
-            blit(video_get_backbuffer()->data, screen, 0, 0, 0, 0, VIDEO_SCREEN_W, VIDEO_SCREEN_H);
+            draw_to_screen(video_get_backbuffer());
             break;
         }
 
         /* double size */
         case VIDEORESOLUTION_2X:
         {
-            BITMAP *tmp = create_bitmap((int)(video_get_window_size().x), (int)(video_get_window_size().y));
+            image_t *tmp = image_create((int)(video_get_window_size().x), (int)(video_get_window_size().y));
 
             if(video_is_smooth())
-                filter_blit(video_get_backbuffer()->data, tmp, FILTER_2XSAI);
+                filter_blit(video_get_backbuffer(), tmp, FILTER_2XSAI);
             else
-                fast2x_blit(video_get_backbuffer()->data, tmp);
+                fast2x_blit(video_get_backbuffer(), tmp);
 
-            blit(tmp, screen, 0, 0, 0, 0, VIDEO_SCREEN_W*2, VIDEO_SCREEN_H*2);
-            destroy_bitmap(tmp);
+            draw_to_screen(tmp);
+            image_destroy(tmp);
             break;
         }
 
         /* maximum size */
         case VIDEORESOLUTION_MAX:
         {
-            BITMAP *tmp = create_bitmap((int)(video_get_window_size().x), (int)(video_get_window_size().y));
+            image_t *tmp = image_create((int)(video_get_window_size().x), (int)(video_get_window_size().y));
 
             if(video_is_smooth() && tmp->w >= 2*VIDEO_SCREEN_W && tmp->h >= 2*VIDEO_SCREEN_H) {
-                BITMAP *half = create_bitmap(tmp->w/2, tmp->h/2);
-                stretch_blit(video_get_backbuffer()->data, half, 0, 0, VIDEO_SCREEN_W, VIDEO_SCREEN_H, 0, 0, half->w, half->h);
+                image_t *half = image_create(tmp->w/2, tmp->h/2);
+                v2d_t scale = v2d_new((double)half->w / (double)video_get_backbuffer()->w, (double)half->h / (double)video_get_backbuffer()->h);
+                image_draw_scaled(video_get_backbuffer(), half, 0, 0, scale, IF_NONE);
                 filter_blit(half, tmp, FILTER_2XSAI);
-                destroy_bitmap(half);
+                image_destroy(half);
+            }
+            else {
+                v2d_t scale = v2d_new((double)tmp->w / (double)video_get_backbuffer()->w, (double)tmp->h / (double)video_get_backbuffer()->h);
+                image_draw_scaled(video_get_backbuffer(), tmp, 0, 0, scale, IF_NONE);
             }
-            else
-                stretch_blit(video_get_backbuffer()->data, tmp, 0, 0, VIDEO_SCREEN_W, VIDEO_SCREEN_H, 0, 0, tmp->w, tmp->h);
 
-            blit(tmp, screen, 0, 0, 0, 0, tmp->w, tmp->h);
-            destroy_bitmap(tmp);
+            draw_to_screen(tmp);
+            image_destroy(tmp);
             break;
         }
 
         /* editor */
         case VIDEORESOLUTION_EDT:
         {
-            blit(video_get_backbuffer()->data, screen, 0, 0, 0, 0, VIDEO_SCREEN_W, VIDEO_SCREEN_H);
+            draw_to_screen(video_get_backbuffer());
             break;
         }
     }
@@ -611,7 +615,11 @@
     img->data = create_bitmap(width, height);
     img->w = width;
     img->h = height;
-    image_clear(img, image_rgb(0,0,0));
+
+    if(img->data != NULL)
+        image_clear(img, image_rgb(0,0,0));
+    else
+        logfile_message("ERROR - image_create(%d,%d): couldn't create bitmap", width, height);
 
     return img;
 }
@@ -623,7 +631,9 @@
  */
 void image_destroy(image_t *img)
 {
-    destroy_bitmap(img->data);
+    if(img->data != NULL)
+        destroy_bitmap(img->data);
+
     free(img);
 }
 
@@ -793,24 +803,27 @@
  * ---- dest->w = 2 * src->w
  * ---- dest->h = 2 * src->h
  */
-void filter_blit(BITMAP *src, BITMAP *dest, int filter)
+void filter_blit(image_t *src, image_t *dest, int filter)
 {
     int i, j, k=2;
 
+    if(src->data == NULL || dest->data == NULL)
+        return;
+
     switch(filter) {
         case FILTER_2XSAI:
-            Super2xSaI(src, dest, 0, 0, 0, 0, src->w, src->h);
+            Super2xSaI(src->data, dest->data, 0, 0, 0, 0, src->w, src->h);
             for(i=0; i<dest->h; i++) { /* image fix */
                 for(j=0; j<k; j++)
-                    putpixel(dest, j, i, getpixel(dest, k, i));
+                    putpixel(dest->data, j, i, getpixel(dest->data, k, i));
             }
             break;
 
         case FILTER_SUPEREAGLE:
-            SuperEagle(src, dest, 0, 0, 0, 0, src->w, src->h);
+            SuperEagle(src->data, dest->data, 0, 0, 0, 0, src->w, src->h);
             for(i=0; i<dest->h; i++) { /* image fix */
                 for(j=0; j<k; j++)
-                    putpixel(dest, dest->w-1-j, i, getpixel(dest, dest->w-1-k, i));
+                    putpixel(dest->data, dest->w-1-j, i, getpixel(dest->data, dest->w-1-k, i));
             }
             break;
     }
@@ -823,35 +836,38 @@
  * dest is a previously created memory bitmap
  * dest->w == 2 * src->w
  * dest->h == 2 * src->h */
-void fast2x_blit(BITMAP *src, BITMAP *dest)
+void fast2x_blit(image_t *src, image_t *dest)
 {
     int i, j;
 
+    if(src->data == NULL || dest->data == NULL)
+        return;
+
     switch(video_get_color_depth())
     {
         case 8:
             for(j=0; j<dest->h; j++) {
                 for(i=0; i<dest->w; i++)
-                    ((uint8*)dest->line[j])[i] = ((uint8*)src->line[j/2])[i/2];
+                    ((uint8*)dest->data->line[j])[i] = ((uint8*)src->data->line[j/2])[i/2];
             }
             break;
 
         case 16:
             for(j=0; j<dest->h; j++) {
                 for(i=0; i<dest->w; i++)
-                    ((uint16*)dest->line[j])[i] = ((uint16*)src->line[j/2])[i/2];
+                    ((uint16*)dest->data->line[j])[i] = ((uint16*)src->data->line[j/2])[i/2];
             }
             break;
 
         case 24:
             /* TODO */
-            stretch_blit(src, dest, 0, 0, src->w, src->h, 0, 0, dest->w, dest->h);
+            stretch_blit(src->data, dest->data, 0, 0, src->w, src->h, 0, 0, dest->w, dest->h);
             break;
 
         case 32:
             for(j=0; j<dest->h; j++) {
                 for(i=0; i<dest->w; i++)
-                    ((uint32*)dest->line[j])[i] = ((uint32*)src->line[j/2])[i/2];
+                    ((uint32*)dest->data->line[j])[i] = ((uint32*)src->data->line[j/2])[i/2];
             }
             break;
 
@@ -860,6 +876,19 @@
     }
 }
 
+
+/* draws img to the screen */
+void draw_to_screen(image_t *img)
+{
+    if(img->data == NULL) {
+        logfile_message("Can't use video resolution %d", video_get_resolution());
+        video_showmessage("Can't use video resolution %d", video_get_resolution());
+        video_changemode(VIDEORESOLUTION_1X, video_is_smooth(), video_is_fullscreen());
+    }
+    else
+        blit(img->data, screen, 0, 0, 0, 0, img->w, img->h);
+}
+
 /* this window is active */
 void window_switch_in()
 {

Offline

#8 2010-02-28 21:39:48

bugmenot
Member
Registered: 2010-02-26
Posts: 13

Re: Crash of version 0.1.3 on Ubuntu 9.10

Hello,
yes I am the one who packaged opensonic for PlayDeb (which is down currently unfortunately).

Your patch did not fix the crash:

GNU gdb (GDB) 7.0-ubuntu
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/share/games/opensonic/opensonic...Reading symbols from /usr/lib/debug/usr/share/games/opensonic/opensonic...done.
(no debugging symbols found)...done.
(gdb) r
Starting program: /usr/share/games/opensonic/opensonic 
[Thread debugging using libthread_db enabled]
[New Thread 0x7ffff37bf910 (LWP 27496)]
[New Thread 0x7ffff2fbe910 (LWP 27497)]
[New Thread 0x7ffff1f82910 (LWP 27498)]
[New Thread 0x7fffeb9eb910 (LWP 27499)]
[Thread 0x7fffeb9eb910 (LWP 27499) exited]
[New Thread 0x7fffeb9eb910 (LWP 27500)]
[New Thread 0x7fffe6fe3910 (LWP 27502)]
[Thread 0x7fffeb9eb910 (LWP 27500) exited]
*** glibc detected *** /usr/share/games/opensonic/opensonic: double free or corruption (out): 0x0000000001161320 ***
======= Backtrace: =========
/lib/libc.so.6[0x7ffff6a97dd6]
/lib/libc.so.6(cfree+0x6c)[0x7ffff6a9c74c]
/usr/lib/liballeg.so.4.2(destroy_bitmap+0x87)[0x7ffff7aeab07]
/usr/share/games/opensonic/opensonic(image_destroy+0x11)[0x43ed81]
/usr/share/games/opensonic/opensonic(video_render+0x205)[0x43fbe5]
/usr/share/games/opensonic/opensonic(main+0x3aa)[0x42c10a]
/lib/libc.so.6(__libc_start_main+0xfd)[0x7ffff6a40abd]
/usr/share/games/opensonic/opensonic[0x40acd9]
======= Memory map: ========
00400000-0045c000 r-xp 00000000 08:02 226413                             /usr/share/games/opensonic/opensonic
0065b000-0065c000 r--p 0005b000 08:02 226413                             /usr/share/games/opensonic/opensonic
0065c000-0065e000 rw-p 0005c000 08:02 226413                             /usr/share/games/opensonic/opensonic
0065e000-012ae000 rw-p 00000000 00:00 0                                  [heap]
7fffe0000000-7fffe0021000 rw-p 00000000 00:00 0 
7fffe0021000-7fffe4000000 ---p 00000000 00:00 0 
7fffe67e3000-7fffe67e4000 ---p 00000000 00:00 0 
7fffe67e4000-7fffe6fe4000 rwxp 00000000 00:00 0 
7fffe6fe4000-7fffeafe5000 rw-s 00000000 00:11 647522                     /dev/shm/pulse-shm-2022057392
7fffeafe5000-7fffeafea000 r-xp 00000000 08:02 105743                     /usr/lib/alsa-lib/libasound_module_ctl_pulse.so
7fffeafea000-7fffeb1e9000 ---p 00005000 08:02 105743                     /usr/lib/alsa-lib/libasound_module_ctl_pulse.so
7fffeb1e9000-7fffeb1ea000 r--p 00004000 08:02 105743                     /usr/lib/alsa-lib/libasound_module_ctl_pulse.so
7fffeb1ea000-7fffeb1eb000 rw-p 00005000 08:02 105743                     /usr/lib/alsa-lib/libasound_module_ctl_pulse.so
7fffeb1eb000-7fffeb1ec000 ---p 00000000 00:00 0 
7fffeb1ec000-7fffeb9ec000 rwxp 00000000 00:00 0 
7fffef793000-7fffef7a9000 r-xp 00000000 08:02 13380                      /lib/libgcc_s.so.1
7fffef7a9000-7fffef9a8000 ---p 00016000 08:02 13380                      /lib/libgcc_s.so.1
7fffef9a8000-7fffef9a9000 r--p 00015000 08:02 13380                      /lib/libgcc_s.so.1
7fffef9a9000-7fffef9aa000 rw-p 00016000 08:02 13380                      /lib/libgcc_s.so.1
7fffef9aa000-7fffef9ed000 rw-p 00000000 00:00 0 
7fffef9ed000-7fffef9f2000 r-xp 00000000 08:02 105744                     /usr/lib/alsa-lib/libasound_module_pcm_pulse.so
7fffef9f2000-7fffefbf2000 ---p 00005000 08:02 105744                     /usr/lib/alsa-lib/libasound_module_pcm_pulse.so
7fffefbf2000-7fffefbf3000 r--p 00005000 08:02 105744                     /usr/lib/alsa-lib/libasound_module_pcm_pulse.so
7fffefbf3000-7fffefbf4000 rw-p 00006000 08:02 105744                     /usr/lib/alsa-lib/libasound_module_pcm_pulse.so
7fffefbf4000-7fffefc0e000 r-xp 00000000 08:02 38668                      /usr/lib/libvorbisenc.so.2.0.3
7fffefc0e000-7fffefe0d000 ---p 0001a000 08:02 38668                      /usr/lib/libvorbisenc.so.2.0.3
7fffefe0d000-7fffefe0e000 r--p 00019000 08:02 38668                      /usr/lib/libvorbisenc.so.2.0.3
7fffefe0e000-7fffeffce000 rw-p 0001a000 08:02 38668                      /usr/lib/libvorbisenc.so.2.0.3
7fffeffce000-7ffff0017000 r-xp 00000000 08:02 48548                      /usr/lib/libFLAC.so.8.2.0
7ffff0017000-7ffff0217000 ---p 00049000 08:02 48548                      /usr/lib/libFLAC.so.8.2.0
7ffff0217000-7ffff0218000 r--p 00049000 08:02 48548                      /usr/lib/libFLAC.so.8.2.0
7ffff0218000-7ffff0219000 rw-p 0004a000 08:02 48548                      /usr/lib/libFLAC.so.8.2.0
7ffff0219000-7ffff021c000 r-xp 00000000 08:02 3504                       /lib/libuuid.so.1.3.0
7ffff021c000-7ffff041c000 ---p 00003000 08:02 3504                       /lib/libuuid.so.1.3.0
7ffff041c000-7ffff041d000 r--p 00003000 08:02 3504                       /lib/libuuid.so.1.3.0
7ffff041d000-7ffff041e000 rw-p 00004000 08:02 3504                       /lib/libuuid.so.1.3.0
7ffff041e000-7ffff045b000 r-xp 00000000 08:02 322                        /lib/libdbus-1.so.3.4.0
7ffff045b000-7ffff065b000 ---p 0003d000 08:02 322                        /lib/libdbus-1.so.3.4.0
7ffff065b000-7ffff065c000 r--p 0003d000 08:02 322                        /lib/libdbus-1.so.3.4.0
7ffff065c000-7ffff065d000 rw-p 0003e000 08:02 322                        /lib/libdbus-1.so.3.4.0
7ffff065d000-7ffff06b9000 r-xp 00000000 08:02 37704                      /usr/lib/libsndfile.so.1.0.20
7ffff06b9000-7ffff08b8000 ---p 0005c000 08:02 37704                      /usr/lib/libsndfile.so.1.0.20
7ffff08b8000-7ffff08ba000 r--p 0005b000 08:02 37704                      /usr/lib/libsndfile.so.1.0.20
7ffff08ba000-7ffff08bb000 rw-p 0005d000 08:02 37704                      /usr/lib/libsndfile.so.1.0.20
7ffff08bb000-7ffff08bf000 rw-p 00000000 00:00 0 
7ffff08bf000-7ffff08c8000 r-xp 00000000 08:02 43598                      /lib/libwrap.so.0.7.6
7ffff08c8000-7ffff0ac7000 ---p 00009000 08:02 43598                      /lib/libwrap.so.0.7.6
7ffff0ac7000-7ffff0ac8000 r--p 00008000 08:02 43598                      /lib/libwrap.so.0.7.6
7ffff0ac8000-7ffff0ac9000 rw-p 00009000 08:02 43598                      /lib/libwrap.so.0.7.6
7ffff0ac9000-7ffff0aca000 rw-p 00000000 00:00 0 
7ffff0aca000-7ffff0acf000 r-xp 00000000 08:02 44322                      /usr/lib/libXtst.so.6.1.0
7ffff0acf000-7ffff0ccf000 ---p 00005000 08:02 44322                      /usr/lib/libXtst.so.6.1.0
7ffff0ccf000-7ffff0cd0000 r--p 00005000 08:02 44322                      /usr/lib/libXtst.so.6.1.0
7ffff0cd0000-7ffff0cd1000 rw-p 00006000 08:02 44322                      /usr/lib/libXtst.so.6.1.0
7ffff0cd1000-7ffff0cd9000 r-xp 00000000 08:02 35530                      /usr/lib/libSM.so.6.0.0
7ffff0cd9000-7ffff0ed8000 ---p 00008000 08:02 35530                      /usr/lib/libSM.so.6.0.0
7ffff0ed8000-7ffff0ed9000 r--p 00007000 08:02 35530                      /usr/lib/libSM.so.6.0.0
7ffff0ed9000-7ffff0eda000 rw-p 00008000 08:02 35530                      /usr/lib/libSM.so.6.0.0
7ffff0eda000-7ffff0ef1000 r-xp 00000000 08:02 35516                      /usr/lib/libICE.so.6.3.0
7ffff0ef1000-7ffff10f0000 ---p 00017000 08:02 35516                      /usr/lib/libICE.so.6.3.0
7ffff10f0000-7ffff10f1000 r--p 00016000 08:02 35516                      /usr/lib/libICE.so.6.3.0
7ffff10f1000-7ffff10f2000 rw-p 00017000 08:02 35516                      /usr/lib/libICE.so.6.3.0
7ffff10f2000-7ffff10f5000 rw-p 00000000 00:00 0 
7ffff10f5000-7ffff113f000 r-xp 00000000 08:02 29281                      /usr/lib/libpulsecommon-0.9.19.so
Program received signal SIGABRT, Aborted.
0x00007ffff6a554b5 in raise () from /lib/libc.so.6
(gdb) bt
#0  0x00007ffff6a554b5 in raise () from /lib/libc.so.6
#1  0x00007ffff6a58f50 in abort () from /lib/libc.so.6
#2  0x00007ffff6a8dc97 in ?? () from /lib/libc.so.6
#3  0x00007ffff6a97dd6 in ?? () from /lib/libc.so.6
#4  0x00007ffff6a9c74c in free () from /lib/libc.so.6
#5  0x00007ffff7aeab07 in destroy_bitmap () from /usr/lib/liballeg.so.4.2
#6  0x000000000043ed81 in image_destroy (img=0xe2a6d0)
    at /home/korn/opensonic/opensonic-0.1.3/src/video.c:635
#7  0x000000000043fbe5 in video_render ()
    at /home/korn/opensonic/opensonic-0.1.3/src/video.c:424
#8  0x000000000042c10a in main (argc=1, argv=0x7fffffffe2c8)
    at /home/korn/opensonic/opensonic-0.1.3/src/main.c:154
Open Sonic version 0.1.3
logfile_init()
preferences_init()
ERROR: couldn't open preferences file for reading. file="/home/korn/.opensonic/preferences.dat"
game arguments:
argv[0]: '/usr/share/games/opensonic/opensonic'
timer_init()
video_init()
video_changemode(1,0,0)
video_changemode() ok
audio_init()
Initializing Allegro sound...
Warning: unable to install sound.
ALSA: snd_pcm_hw_params_set_format(pcm_handle, hwparams, format) : Invalid argument

Initializing DUMB...
Initializing LOGG...
audio_init() ok
input_init()
No joystick has been detected.
hash_init()
spritedata_load()...
Reading sprite 'SD_SONIC'
load_sprite() with 26 animations and 75 frames
image_load(/usr/share/games/opensonic/images/player.png)
hash_search('images/player.png', 1) returned NULL
hash_insert('images/player.png', 0x6f3820, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_SONIC'...
hash_insert('SD_SONIC', 0x6eaec0, 2)...
Reading sprite 'SD_TAILS'
load_sprite() with 26 animations and 65 frames
image_load(/usr/share/games/opensonic/images/player.png)
load_sprite() ok!
Registering sprite 'SD_TAILS'...
hash_insert('SD_TAILS', 0x6fb910, 2)...
Reading sprite 'SD_KNUCKLES'
load_sprite() with 26 animations and 65 frames
image_load(/usr/share/games/opensonic/images/player.png)
load_sprite() ok!
Registering sprite 'SD_KNUCKLES'...
hash_insert('SD_KNUCKLES', 0x831a20, 2)...
Reading sprite 'SD_ARROW'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
hash_search('images/items.png', 1) returned NULL
hash_insert('images/items.png', 0x8d9810, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_ARROW'...
hash_insert('SD_ARROW', 0x8d9740, 2)...
Reading sprite 'SD_RING'
load_sprite() with 2 animations and 12 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_RING'...
hash_insert('SD_RING', 0x8d9d00, 2)...
Reading sprite 'SD_BLUERING'
load_sprite() with 2 animations and 12 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_BLUERING'...
hash_insert('SD_BLUERING', 0xa71ee0, 2)...
Reading sprite 'SD_BIGRING'
load_sprite() with 1 animations and 10 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_BIGRING'...
hash_insert('SD_BIGRING', 0xa75df0, 2)...
Reading sprite 'SD_JOAN'
load_sprite() with 1 animations and 3 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
hash_search('images/baddies.png', 1) returned NULL
hash_insert('images/baddies.png', 0xada030, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_JOAN'...
hash_insert('SD_JOAN', 0xad9f60, 2)...
Reading sprite 'SD_FLYINGBOY'
load_sprite() with 1 animations and 2 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_FLYINGBOY'...
hash_insert('SD_FLYINGBOY', 0xadb770, 2)...
Reading sprite 'SD_FLYINGEYES'
load_sprite() with 1 animations and 4 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_FLYINGEYES'...
hash_insert('SD_FLYINGEYES', 0xadbd60, 2)...
Reading sprite 'SD_KLEPS'
load_sprite() with 1 animations and 2 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_KLEPS'...
hash_insert('SD_KLEPS', 0xaeecb0, 2)...
Reading sprite 'SD_GOLDFISH'
load_sprite() with 1 animations and 2 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_GOLDFISH'...
hash_insert('SD_GOLDFISH', 0xaf0800, 2)...
Reading sprite 'SD_SURPREYES'
load_sprite() with 1 animations and 2 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_SURPREYES'...
hash_insert('SD_SURPREYES', 0xaf3c50, 2)...
Reading sprite 'SD_ORANJECTION'
load_sprite() with 1 animations and 2 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_ORANJECTION'...
hash_insert('SD_ORANJECTION', 0xaf7dc0, 2)...
Reading sprite 'SD_ROBOXER'
load_sprite() with 1 animations and 3 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_ROBOXER'...
hash_insert('SD_ROBOXER', 0xaf9ef0, 2)...
Reading sprite 'SD_NAFDER'
load_sprite() with 1 animations and 3 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_NAFDER'...
hash_insert('SD_NAFDER', 0xafe010, 2)...
Reading sprite 'SD_CHEF'
load_sprite() with 1 animations and 4 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_CHEF'...
hash_insert('SD_CHEF', 0xb05940, 2)...
Reading sprite 'SD_SIMPLEBOSS'
load_sprite() with 3 animations and 4 frames
image_load(/usr/share/games/opensonic/images/boss.png)
hash_search('images/boss.png', 1) returned NULL
hash_insert('images/boss.png', 0xb0da20, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_SIMPLEBOSS'...
hash_insert('SD_SIMPLEBOSS', 0xb0d940, 2)...
Reading sprite 'SD_MECHASHADOW'
load_sprite() with 5 animations and 6 frames
image_load(/usr/share/games/opensonic/images/boss.png)
load_sprite() ok!
Registering sprite 'SD_MECHASHADOW'...
hash_insert('SD_MECHASHADOW', 0xb0e560, 2)...
Reading sprite 'SD_DANGPOWER'
load_sprite() with 1 animations and 2 frames
image_load(/usr/share/games/opensonic/images/boss.png)
load_sprite() ok!
Registering sprite 'SD_DANGPOWER'...
hash_insert('SD_DANGPOWER', 0xb2a0d0, 2)...
Reading sprite 'SD_MAINGUI'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/gui.png)
hash_search('images/gui.png', 1) returned NULL
hash_insert('images/gui.png', 0xb2b7b0, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_MAINGUI'...
hash_insert('SD_MAINGUI', 0xb2b6e0, 2)...
Reading sprite 'SD_LIFEGUI'
load_sprite() with 3 animations and 3 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_LIFEGUI'...
hash_insert('SD_LIFEGUI', 0xc199e0, 2)...
Reading sprite 'SD_PAUSE'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_PAUSE'...
hash_insert('SD_PAUSE', 0xc20b50, 2)...
Reading sprite 'SD_ITEMBOX'
load_sprite() with 11 animations and 12 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_ITEMBOX'...
hash_insert('SD_ITEMBOX', 0xc235c0, 2)...
Reading sprite 'SD_ICON'
load_sprite() with 11 animations and 12 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_ICON'...
hash_insert('SD_ICON', 0xb2eab0, 2)...
Reading sprite 'SD_GLASSES'
load_sprite() with 6 animations and 5 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_GLASSES'...
hash_insert('SD_GLASSES', 0xb32510, 2)...
Reading sprite 'SD_SHIELD'
load_sprite() with 1 animations and 5 frames
image_load(/usr/share/games/opensonic/images/ring_shields.png)
hash_search('images/ring_shields.png', 1) returned NULL
hash_insert('images/ring_shields.png', 0xb339c0, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_SHIELD'...
hash_insert('SD_SHIELD', 0xb338e0, 2)...
Reading sprite 'SD_INVSTAR'
load_sprite() with 1 animations and 3 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_INVSTAR'...
hash_insert('SD_INVSTAR', 0xb343a0, 2)...
Reading sprite 'SD_LEVELOP'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_LEVELOP'...
hash_insert('SD_LEVELOP', 0xb5cf80, 2)...
Reading sprite 'SD_LEVELACT'
load_sprite() with 3 animations and 3 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_LEVELACT'...
hash_insert('SD_LEVELACT', 0xb34dc0, 2)...
Reading sprite 'SD_EXPLOSION'
load_sprite() with 2 animations and 7 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_EXPLOSION'...
hash_insert('SD_EXPLOSION', 0xb625a0, 2)...
Reading sprite 'SD_PIXEL'
load_sprite() with 4 animations and 75 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_PIXEL'...
hash_insert('SD_PIXEL', 0xb634c0, 2)...
Reading sprite 'SD_ANIMAL'
load_sprite() with 24 animations and 36 frames
image_load(/usr/share/games/opensonic/images/animals.png)
hash_search('images/animals.png', 1) returned NULL
hash_insert('images/animals.png', 0xbc53d0, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_ANIMAL'...
hash_insert('SD_ANIMAL', 0xbc5140, 2)...
Reading sprite 'SD_LOOPRIGHT'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPRIGHT'...
hash_insert('SD_LOOPRIGHT', 0xbe8d20, 2)...
Reading sprite 'SD_LOOPMIDDLE'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPMIDDLE'...
hash_insert('SD_LOOPMIDDLE', 0xbec1f0, 2)...
Reading sprite 'SD_LOOPLEFT'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPLEFT'...
hash_insert('SD_LOOPLEFT', 0xbecc40, 2)...
Reading sprite 'SD_LOOPNONE'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPNONE'...
hash_insert('SD_LOOPNONE', 0xbf0110, 2)...
Reading sprite 'SD_LOOPFLOOR'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPFLOOR'...
hash_insert('SD_LOOPFLOOR', 0xbf35e0, 2)...
Reading sprite 'SD_LOOPFLOORNONE'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPFLOORNONE'...
hash_insert('SD_LOOPFLOORNONE', 0xbf48b0, 2)...
Reading sprite 'SD_LOOPFLOORTOP'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPFLOORTOP'...
hash_insert('SD_LOOPFLOORTOP', 0xbf5b80, 2)...
Reading sprite 'SD_YELLOWSPRING'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/spring_pads.png)
hash_search('images/spring_pads.png', 1) returned NULL
hash_insert('images/spring_pads.png', 0xbf6f00, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_YELLOWSPRING'...
hash_insert('SD_YELLOWSPRING', 0xbf6e30, 2)...
Reading sprite 'SD_REDSPRING'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/spring_pads.png)
load_sprite() ok!
Registering sprite 'SD_REDSPRING'...
hash_insert('SD_REDSPRING', 0xbf82f0, 2)...
Reading sprite 'SD_RREDSPRING'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/spring_pads.png)
load_sprite() ok!
Registering sprite 'SD_RREDSPRING'...
hash_insert('SD_RREDSPRING', 0xbfad70, 2)...
Reading sprite 'SD_LREDSPRING'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/spring_pads.png)
load_sprite() ok!
Registering sprite 'SD_LREDSPRING'...
hash_insert('SD_LREDSPRING', 0xbfe240, 2)...
Reading sprite 'SD_SWITCH'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_SWITCH'...
hash_insert('SD_SWITCH', 0xc00710, 2)...
Reading sprite 'SD_DOOR'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_DOOR'...
hash_insert('SD_DOOR', 0xc01a80, 2)...
Reading sprite 'SD_TELEPORTER'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_TELEPORTER'...
hash_insert('SD_TELEPORTER', 0xc036b0, 2)...
Reading sprite 'SD_CHECKPOINT'
load_sprite() with 3 animations and 7 frames
image_load(/usr/share/games/opensonic/images/checkpoint_orb.png)
hash_search('images/checkpoint_orb.png', 1) returned NULL
hash_insert('images/checkpoint_orb.png', 0xc10080, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_CHECKPOINT'...
hash_insert('SD_CHECKPOINT', 0xc0ff90, 2)...
Reading sprite 'SD_BUMPER'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_BUMPER'...
hash_insert('SD_BUMPER', 0xc10b20, 2)...
Reading sprite 'SD_GOAL'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_GOAL'...
hash_insert('SD_GOAL', 0xc11050, 2)...
Reading sprite 'SD_ENDSIGN'
load_sprite() with 5 animations and 8 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_ENDSIGN'...
hash_insert('SD_ENDSIGN', 0xd9b220, 2)...
Reading sprite 'SD_ENDLEVEL'
load_sprite() with 3 animations and 4 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_ENDLEVEL'...
hash_insert('SD_ENDLEVEL', 0xdb2390, 2)...
Reading sprite 'SD_RINGBONUS'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_RINGBONUS'...
hash_insert('SD_RINGBONUS', 0xdca6d0, 2)...
Reading sprite 'SD_SECRETBONUS'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_SECRETBONUS'...
hash_insert('SD_SECRETBONUS', 0xdcbad0, 2)...
Reading sprite 'SD_TOTAL'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_TOTAL'...
hash_insert('SD_TOTAL', 0xdcced0, 2)...
Reading sprite 'SD_DIALOGBOX'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_DIALOGBOX'...
hash_insert('SD_DIALOGBOX', 0xdcd7d0, 2)...
Reading sprite 'SD_TITLESONIC'
load_sprite() with 2 animations and 8 frames
image_load(/usr/share/games/opensonic/images/title.png)
hash_search('images/title.png', 1) returned NULL
hash_insert('images/title.png', 0xddfe50, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_TITLESONIC'...
hash_insert('SD_TITLESONIC', 0xddfd50, 2)...
Reading sprite 'SD_TITLESONICBG'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/title.png)
load_sprite() ok!
Registering sprite 'SD_TITLESONICBG'...
hash_insert('SD_TITLESONICBG', 0xe2a430, 2)...
Reading sprite 'SD_TITLEGAMENAME'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/title.png)
load_sprite() ok!
Registering sprite 'SD_TITLEGAMENAME'...
hash_insert('SD_TITLEGAMENAME', 0xe2a580, 2)...
Reading sprite 'SD_TITLEFOOT'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/title.png)
load_sprite() ok!
Registering sprite 'SD_TITLEFOOT'...
hash_insert('SD_TITLEFOOT', 0xe220e0, 2)...
Reading sprite 'SD_DANGER'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_DANGER'...
hash_insert('SD_DANGER', 0xe223e0, 2)...
Reading sprite 'SD_SPIKES'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_SPIKES'...
hash_insert('SD_SPIKES', 0xe22e30, 2)...
Reading sprite 'SD_DNADOOR'
load_sprite() with 1 animations and 3 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_DNADOOR'...
hash_insert('SD_DNADOOR', 0xe24100, 2)...
Reading sprite 'SD_FIREBALL'
load_sprite() with 3 animations and 6 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_FIREBALL'...
hash_insert('SD_FIREBALL', 0xe27ae0, 2)...
Reading sprite 'SD_CONFIRMBOX'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_CONFIRMBOX'...
hash_insert('SD_CONFIRMBOX', 0xe48910, 2)...
Reading sprite 'FT_FONT0'
load_sprite() with 1 animations and 52 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT0'...
hash_insert('FT_FONT0', 0xe48d50, 2)...
Reading sprite 'FT_FONT1'
load_sprite() with 1 animations and 52 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT1'...
hash_insert('FT_FONT1', 0xe4e860, 2)...
Reading sprite 'FT_FONT2'
load_sprite() with 1 animations and 11 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT2'...
hash_insert('FT_FONT2', 0xf79e60, 2)...
Reading sprite 'FT_FONT3'
load_sprite() with 1 animations and 30 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT3'...
hash_insert('FT_FONT3', 0xf7b990, 2)...
Reading sprite 'FT_FONT4'
load_sprite() with 1 animations and 30 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT4'...
hash_insert('FT_FONT4', 0xf85570, 2)...
Reading sprite 'FT_FONT5'
load_sprite() with 1 animations and 30 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT5'...
hash_insert('FT_FONT5', 0xf91ad0, 2)...
Reading sprite 'FT_FONT6'
load_sprite() with 1 animations and 30 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT6'...
hash_insert('FT_FONT6', 0xf9e030, 2)...
Reading sprite 'FT_FONT7'
load_sprite() with 1 animations and 30 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT7'...
hash_insert('FT_FONT7', 0xfaa590, 2)...
Reading sprite 'FT_FONT8'
load_sprite() with 1 animations and 224 frames
image_load(/usr/share/games/opensonic/images/font.png)
hash_search('images/font.png', 1) returned NULL
hash_insert('images/font.png', 0xfb75d0, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'FT_FONT8'...
hash_insert('FT_FONT8', 0xfb6e10, 2)...
Reading sprite 'FT_FONT9'
load_sprite() with 1 animations and 112 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT9'...
hash_insert('FT_FONT9', 0xfd6760, 2)...
spritedata_load() ok!
font_init()
font_init() ok
Initializing the language module
lang_loadfile("languages/english.lng")...
hash_search('LANG_LANGUAGE', 5) returned NULL
hash_insert('LANG_LANGUAGE', 0xff8440, 5)...
hash_search('LANG_AUTHOR', 5) returned NULL
hash_insert('LANG_AUTHOR', 0xff8850, 5)...
hash_search('LANG_LASTUPDATE', 5) returned NULL
hash_insert('LANG_LASTUPDATE', 0xff8c60, 5)...
hash_search('LANG_COMPATIBILITY', 5) returned NULL
hash_insert('LANG_COMPATIBILITY', 0xff9070, 5)...
hash_search('COLOR_P1', 5) returned NULL
hash_insert('COLOR_P1', 0xff9480, 5)...
hash_search('COLOR_P2', 5) returned NULL
hash_insert('COLOR_P2', 0xff9890, 5)...
hash_search('COLOR_P3', 5) returned NULL
hash_insert('COLOR_P3', 0xff9ca0, 5)...
hash_search('COLOR_INPUT', 5) returned NULL
hash_insert('COLOR_INPUT', 0xffa0b0, 5)...
hash_search('COLOR_SPECIAL', 5) returned NULL
hash_insert('COLOR_SPECIAL', 0xffa4c0, 5)...
hash_search('MENU_1PGAME', 5) returned NULL
hash_insert('MENU_1PGAME', 0xffa8d0, 5)...
hash_search('MENU_TUTORIAL', 5) returned NULL
hash_insert('MENU_TUTORIAL', 0xfface0, 5)...
hash_search('MENU_CUSTOMQUESTS', 5) returned NULL
hash_insert('MENU_CUSTOMQUESTS', 0xffb0f0, 5)...
hash_search('MENU_OPTIONS', 5) returned NULL
hash_insert('MENU_OPTIONS', 0xffb500, 5)...
hash_search('MENU_EXIT', 5) returned NULL
hash_insert('MENU_EXIT', 0xffb910, 5)...
hash_search('OPTIONS_TITLE', 5) returned NULL
hash_insert('OPTIONS_TITLE', 0xffbd20, 5)...
hash_search('OPTIONS_YES', 5) returned NULL
hash_insert('OPTIONS_YES', 0xffc130, 5)...
hash_search('OPTIONS_NO', 5) returned NULL
hash_insert('OPTIONS_NO', 0xffc540, 5)...
hash_search('OPTIONS_GRAPHICS', 5) returned NULL
hash_insert('OPTIONS_GRAPHICS', 0xffc950, 5)...
hash_search('OPTIONS_FULLSCREEN', 5) returned NULL
hash_insert('OPTIONS_FULLSCREEN', 0xffcd60, 5)...
hash_search('OPTIONS_RESOLUTION', 5) returned NULL
hash_insert('OPTIONS_RESOLUTION', 0xffd170, 5)...
hash_search('OPTIONS_RESOLUTION_OPT1', 5) returned NULL
hash_insert('OPTIONS_RESOLUTION_OPT1', 0xffd580, 5)...
hash_search('OPTIONS_RESOLUTION_OPT2', 5) returned NULL
hash_insert('OPTIONS_RESOLUTION_OPT2', 0xffd990, 5)...
hash_search('OPTIONS_RESOLUTION_OPT3', 5) returned NULL
hash_insert('OPTIONS_RESOLUTION_OPT3', 0xffdda0, 5)...
hash_search('OPTIONS_SMOOTHGFX', 5) returned NULL
hash_insert('OPTIONS_SMOOTHGFX', 0xffe1b0, 5)...
hash_search('OPTIONS_FPS', 5) returned NULL
hash_insert('OPTIONS_FPS', 0xffe5c0, 5)...
hash_search('OPTIONS_GAME', 5) returned NULL
hash_insert('OPTIONS_GAME', 0xffe9d0, 5)...
hash_search('OPTIONS_LANGUAGE', 5) returned NULL
hash_insert('OPTIONS_LANGUAGE', 0xffede0, 5)...
hash_search('OPTIONS_STAGESELECT', 5) returned NULL
hash_insert('OPTIONS_STAGESELECT', 0xfff1f0, 5)...
hash_search('OPTIONS_CREDITS', 5) returned NULL
hash_insert('OPTIONS_CREDITS', 0xfff600, 5)...
hash_search('OPTIONS_BACK', 5) returned NULL
hash_insert('OPTIONS_BACK', 0xfffa10, 5)...
hash_search('STAGESELECT_TITLE', 5) returned NULL
hash_insert('STAGESELECT_TITLE', 0xfffe20, 5)...
hash_search('STAGESELECT_MSG', 5) returned NULL
hash_insert('STAGESELECT_MSG', 0x1000230, 5)...
hash_search('STAGESELECT_PAGE', 5) returned NULL
hash_insert('STAGESELECT_PAGE', 0x1000640, 5)...
hash_search('STAGESELECT_ACT', 5) returned NULL
hash_insert('STAGESELECT_ACT', 0x1000a50, 5)...
hash_search('CREDITS_TITLE', 5) returned NULL
hash_insert('CREDITS_TITLE', 0x1000e60, 5)...
hash_search('CREDITS_KEY', 5) returned NULL
hash_insert('CREDITS_KEY', 0x1001270, 5)...
hash_search('CREDITS_PROGRAMMING', 5) returned NULL
hash_insert('CREDITS_PROGRAMMING', 0x1001680, 5)...
hash_search('CREDITS_ART', 5) returned NULL
hash_insert('CREDITS_ART', 0x1001a90, 5)...
hash_search('CREDITS_MUSICS', 5) returned NULL
hash_insert('CREDITS_MUSICS', 0x1001ea0, 5)...
hash_search('CREDITS_LEVELDESIGN', 5) returned NULL
hash_insert('CREDITS_LEVELDESIGN', 0x10022b0, 5)...
hash_search('CREDITS_COMMUNITY', 5) returned NULL
hash_insert('CREDITS_COMMUNITY', 0x10026c0, 5)...
hash_search('CREDITS_PORTING', 5) returned NULL
hash_insert('CREDITS_PORTING', 0x1002ad0, 5)...
hash_search('CREDITS_TRANSLATIONS', 5) returned NULL
hash_insert('CREDITS_TRANSLATIONS', 0x1002ee0, 5)...
hash_search('CREDITS_RETIRED', 5) returned NULL
hash_insert('CREDITS_RETIRED', 0x10032f0, 5)...
hash_search('CREDITS_THANKS', 5) returned NULL
hash_insert('CREDITS_THANKS', 0x1003700, 5)...
hash_search('CREDITS_ALEXANDRE', 5) returned NULL
hash_insert('CREDITS_ALEXANDRE', 0x1003b10, 5)...
hash_search('CREDITS_DI', 5) returned NULL
hash_insert('CREDITS_DI', 0x1003f20, 5)...
hash_search('CREDITS_NEOBLAST', 5) returned NULL
hash_insert('CREDITS_NEOBLAST', 0x1004330, 5)...
hash_search('CREDITS_LAINZ', 5) returned NULL
hash_insert('CREDITS_LAINZ', 0x1004740, 5)...
hash_search('CREDITS_ARTHURBLOT', 5) returned NULL
hash_insert('CREDITS_ARTHURBLOT', 0x1004b50, 5)...
hash_search('CREDITS_REIMUND', 5) returned NULL
hash_insert('CREDITS_REIMUND', 0x1004f60, 5)...
hash_search('CREDITS_SZYMON', 5) returned NULL
hash_insert('CREDITS_SZYMON', 0x1005370, 5)...
hash_search('CREDITS_TOMIRES', 5) returned NULL
hash_insert('CREDITS_TOMIRES', 0x1005780, 5)...
hash_search('CREDITS_BASTIAN', 5) returned NULL
hash_insert('CREDITS_BASTIAN', 0x1005b90, 5)...
hash_search('MENU_CQ_SELECT', 5) returned NULL
hash_insert('MENU_CQ_SELECT', 0x1005fa0, 5)...
hash_search('MENU_CQ_BACK', 5) returned NULL
hash_insert('MENU_CQ_BACK', 0x10063b0, 5)...
hash_search('MENU_CQ_INFO', 5) returned NULL
hash_insert('MENU_CQ_INFO', 0x10067c0, 5)...
hash_search('MENU_CQ_TUTORIAL', 5) returned NULL
hash_insert('MENU_CQ_TUTORIAL', 0x1006bd0, 5)...
hash_search('MENU_CQ_SUPERBOSSES', 5) returned NULL
hash_insert('MENU_CQ_SUPERBOSSES', 0x1006fe0, 5)...
hash_search('QUESTCLEARED_TITLE', 5) returned NULL
hash_insert('QUESTCLEARED_TITLE', 0x10073f0, 5)...
hash_search('QUESTCLEARED_TEXT', 5) returned NULL
hash_insert('QUESTCLEARED_TEXT', 0x1007800, 5)...
hash_search('ENDOFDEMO_TITLE', 5) returned NULL
hash_insert('ENDOFDEMO_TITLE', 0x1007c10, 5)...
hash_search('ENDOFDEMO_TEXT', 5) returned NULL
hash_insert('ENDOFDEMO_TEXT', 0x1008020, 5)...
hash_search('BONUSMSG_TITLE', 5) returned NULL
hash_insert('BONUSMSG_TITLE', 0x1008430, 5)...
hash_search('BONUSMSG_TEXT', 5) returned NULL
hash_insert('BONUSMSG_TEXT', 0x1008840, 5)...
hash_search('CBOX_QUIT_QUESTION', 5) returned NULL
hash_insert('CBOX_QUIT_QUESTION', 0x1008c50, 5)...
hash_search('CBOX_QUIT_OPTION1', 5) returned NULL
hash_insert('CBOX_QUIT_OPTION1', 0x1009060, 5)...
hash_search('CBOX_QUIT_OPTION2', 5) returned NULL
hash_insert('CBOX_QUIT_OPTION2', 0x1009470, 5)...
hash_search('INPUT_KEYB_DIRECTIONAL', 5) returned NULL
hash_insert('INPUT_KEYB_DIRECTIONAL', 0x1009880, 5)...
hash_search('INPUT_KEYB_LEFT', 5) returned NULL
hash_insert('INPUT_KEYB_LEFT', 0x1009c90, 5)...
hash_search('INPUT_KEYB_RIGHT', 5) returned NULL
hash_insert('INPUT_KEYB_RIGHT', 0x100a0a0, 5)...
hash_search('INPUT_KEYB_UP', 5) returned NULL
hash_insert('INPUT_KEYB_UP', 0x100a4b0, 5)...
hash_search('INPUT_KEYB_DOWN', 5) returned NULL
hash_insert('INPUT_KEYB_DOWN', 0x100a8c0, 5)...
hash_search('INPUT_KEYB_FIRE1', 5) returned NULL
hash_insert('INPUT_KEYB_FIRE1', 0x100acd0, 5)...
hash_search('INPUT_KEYB_FIRE2', 5) returned NULL
hash_insert('INPUT_KEYB_FIRE2', 0x100b0e0, 5)...
hash_search('INPUT_KEYB_FIRE3', 5) returned NULL
hash_insert('INPUT_KEYB_FIRE3', 0x100b4f0, 5)...
hash_search('INPUT_KEYB_FIRE4', 5) returned NULL
hash_insert('INPUT_KEYB_FIRE4', 0x100b900, 5)...
hash_search('INPUT_JOY_DIRECTIONAL', 5) returned NULL
hash_insert('INPUT_JOY_DIRECTIONAL', 0x100bd10, 5)...
hash_search('INPUT_JOY_LEFT', 5) returned NULL
hash_insert('INPUT_JOY_LEFT', 0x100c120, 5)...
hash_search('INPUT_JOY_RIGHT', 5) returned NULL
hash_insert('INPUT_JOY_RIGHT', 0x100c530, 5)...
hash_search('INPUT_JOY_UP', 5) returned NULL
hash_insert('INPUT_JOY_UP', 0x100c940, 5)...
hash_search('INPUT_JOY_DOWN', 5) returned NULL
hash_insert('INPUT_JOY_DOWN', 0x100cd50, 5)...
hash_search('INPUT_JOY_FIRE1', 5) returned NULL
hash_insert('INPUT_JOY_FIRE1', 0x100d160, 5)...
hash_search('INPUT_JOY_FIRE2', 5) returned NULL
hash_insert('INPUT_JOY_FIRE2', 0x100d570, 5)...
hash_search('INPUT_JOY_FIRE3', 5) returned NULL
hash_insert('INPUT_JOY_FIRE3', 0x100d980, 5)...
hash_search('INPUT_JOY_FIRE4', 5) returned NULL
hash_insert('INPUT_JOY_FIRE4', 0x100dd90, 5)...
hash_search('TUTORIAL_1_TITLE_0', 5) returned NULL
hash_insert('TUTORIAL_1_TITLE_0', 0x100e1a0, 5)...
hash_search('TUTORIAL_1_MSG_0', 5) returned NULL
hash_insert('TUTORIAL_1_MSG_0', 0x100e5b0, 5)...
hash_search('TUTORIAL_1_TITLE_1', 5) returned NULL
hash_insert('TUTORIAL_1_TITLE_1', 0x100e9c0, 5)...
hash_search('TUTORIAL_1_MSG_1', 5) returned NULL
hash_insert('TUTORIAL_1_MSG_1', 0x100edd0, 5)...
hash_search('TUTORIAL_1_TITLE_2', 5) returned NULL
hash_insert('TUTORIAL_1_TITLE_2', 0x100f1e0, 5)...
hash_search('TUTORIAL_1_MSG_2', 5) returned NULL
hash_insert('TUTORIAL_1_MSG_2', 0x100f5f0, 5)...
hash_search('TUTORIAL_1_TITLE_3', 5) returned NULL
hash_insert('TUTORIAL_1_TITLE_3', 0x100fa00, 5)...
hash_search('TUTORIAL_1_MSG_3', 5) returned NULL
hash_insert('TUTORIAL_1_MSG_3', 0x100fe10, 5)...
hash_search('TUTORIAL_1_TITLE_4', 5) returned NULL
hash_insert('TUTORIAL_1_TITLE_4', 0x1010220, 5)...
hash_search('TUTORIAL_1_MSG_4', 5) returned NULL
hash_insert('TUTORIAL_1_MSG_4', 0x1010630, 5)...
hash_search('TUTORIAL_1_TITLE_5', 5) returned NULL
hash_insert('TUTORIAL_1_TITLE_5', 0x1010a40, 5)...
hash_search('TUTORIAL_1_MSG_5', 5) returned NULL
hash_insert('TUTORIAL_1_MSG_5', 0x1010e50, 5)...
hash_search('TUTORIAL_2_TITLE_0', 5) returned NULL
hash_insert('TUTORIAL_2_TITLE_0', 0x1011260, 5)...
hash_search('TUTORIAL_2_MSG_0', 5) returned NULL
hash_insert('TUTORIAL_2_MSG_0', 0x1011670, 5)...
hash_search('TUTORIAL_2_TITLE_1', 5) returned NULL
hash_insert('TUTORIAL_2_TITLE_1', 0x1011a80, 5)...
hash_search('TUTORIAL_2_MSG_1', 5) returned NULL
hash_insert('TUTORIAL_2_MSG_1', 0x1011e90, 5)...
hash_search('TUTORIAL_2_TITLE_2', 5) returned NULL
hash_insert('TUTORIAL_2_TITLE_2', 0x10122a0, 5)...
hash_search('TUTORIAL_2_MSG_2', 5) returned NULL
hash_insert('TUTORIAL_2_MSG_2', 0x10126b0, 5)...
hash_search('TUTORIAL_2_TITLE_3', 5) returned NULL
hash_insert('TUTORIAL_2_TITLE_3', 0x1012ac0, 5)...
hash_search('TUTORIAL_2_MSG_3', 5) returned NULL
hash_insert('TUTORIAL_2_MSG_3', 0x1012ed0, 5)...
hash_search('BOZ_1_TITLE_0', 5) returned NULL
hash_insert('BOZ_1_TITLE_0', 0x10132e0, 5)...
hash_search('BOZ_1_MSG_0', 5) returned NULL
hash_insert('BOZ_1_MSG_0', 0x10136f0, 5)...
hash_search('BOZ_1_TITLE_1', 5) returned NULL
hash_insert('BOZ_1_TITLE_1', 0x1013b00, 5)...
hash_search('BOZ_1_MSG_1', 5) returned NULL
hash_insert('BOZ_1_MSG_1', 0x1013f10, 5)...
hash_search('BOZ_1_TITLE_2', 5) returned NULL
hash_insert('BOZ_1_TITLE_2', 0x1014320, 5)...
hash_search('BOZ_1_MSG_2', 5) returned NULL
hash_insert('BOZ_1_MSG_2', 0x1014730, 5)...
hash_search('BOZ_1_TITLE_3', 5) returned NULL
hash_insert('BOZ_1_TITLE_3', 0x1014b40, 5)...
hash_search('BOZ_1_MSG_3', 5) returned NULL
hash_insert('BOZ_1_MSG_3', 0x1014f50, 5)...
hash_search('BOZ_1_TITLE_4', 5) returned NULL
hash_insert('BOZ_1_TITLE_4', 0x1015360, 5)...
hash_search('BOZ_1_MSG_4', 5) returned NULL
hash_insert('BOZ_1_MSG_4', 0x1015770, 5)...
hash_search('BOZ_1_TITLE_5', 5) returned NULL
hash_insert('BOZ_1_TITLE_5', 0x1015b80, 5)...
hash_search('BOZ_1_MSG_5', 5) returned NULL
hash_insert('BOZ_1_MSG_5', 0x1015f90, 5)...
hash_search('BOZ_3_TITLE_0', 5) returned NULL
hash_insert('BOZ_3_TITLE_0', 0x10163a0, 5)...
hash_search('BOZ_3_MSG_0', 5) returned NULL
hash_insert('BOZ_3_MSG_0', 0x10167b0, 5)...
hash_search('EP_1_TITLE_0', 5) returned NULL
hash_insert('EP_1_TITLE_0', 0x1016bc0, 5)...
hash_search('EP_1_MSG_0', 5) returned NULL
hash_insert('EP_1_MSG_0', 0x1016fd0, 5)...
hash_search('EP_2_TITLE_0', 5) returned NULL
hash_insert('EP_2_TITLE_0', 0x10173e0, 5)...
hash_search('EP_2_MSG_0', 5) returned NULL
hash_insert('EP_2_MSG_0', 0x10177f0, 5)...
hash_search('MBOZ_1_TITLE_0', 5) returned NULL
hash_insert('MBOZ_1_TITLE_0', 0x1017c00, 5)...
hash_search('MBOZ_1_MSG_0', 5) returned NULL
hash_insert('MBOZ_1_MSG_0', 0x1018010, 5)...
hash_search('MEP_2_TITLE_0', 5) returned NULL
hash_insert('MEP_2_TITLE_0', 0x1018420, 5)...
hash_search('MEP_2_MSG_0', 5) returned NULL
hash_insert('MEP_2_MSG_0', 0x1018830, 5)...
hash_search('PROTOTYPE_1_TITLE_0', 5) returned NULL
hash_insert('PROTOTYPE_1_TITLE_0', 0x1018c40, 5)...
hash_search('PROTOTYPE_1_MSG_0', 5) returned NULL
hash_insert('PROTOTYPE_1_MSG_0', 0x1019050, 5)...
hash_search('TESTZONE_1_TITLE_0', 5) returned NULL
hash_insert('TESTZONE_1_TITLE_0', 0x1019460, 5)...
hash_search('TESTZONE_1_MSG_0', 5) returned NULL
hash_insert('TESTZONE_1_MSG_0', 0x1019870, 5)...
lang_loadfile("languages/english.lng") ok!
lang_init() ok!
lang_loadfile("languages/english.lng")...
lang_loadfile("languages/english.lng") ok!
scenestack_push(0x6fc6e0)
image_load(/usr/share/games/opensonic/images/intro.png)
hash_search('images/intro.png', 1) returned NULL
hash_insert('images/intro.png', 0xfd8240, 1)...
image_load() ok
scenestack_push() ok

Offline

#9 2010-02-28 23:11:44

Alexandre
Administrator
From: Brazil
Registered: 2009-01-27
Posts: 3,300
Website

Re: Crash of version 0.1.3 on Ubuntu 9.10

Odd. I can't reproduce the crash anywhere. ...and I use Xubuntu 9.10.

Type

make clean

and compile it from the beginning again.

After you compile it from the beginning, please run

opensonic --tiny

, change the screen resolution in the options menu and send us the logfile.

Offline

#10 2010-02-28 23:33:38

Alexandre
Administrator
From: Brazil
Registered: 2009-01-27
Posts: 3,300
Website

Re: Crash of version 0.1.3 on Ubuntu 9.10

Didn't work? Try using SzynaW's .deb package
http://opensnc.sourceforge.net/forum/vi … php?id=106

Tell us if it works for you.

=========

By the way, try this patch

--- video.orig.c    2010-02-28 20:30:32.000000000 -0300
+++ video.c    2010-02-28 20:35:16.000000000 -0300
@@ -400,6 +400,7 @@
 
             draw_to_screen(tmp);
             image_destroy(tmp);
+            tmp = NULL;
             break;
         }
 
@@ -414,6 +415,7 @@
                 image_draw_scaled(video_get_backbuffer(), half, 0, 0, scale, IF_NONE);
                 filter_blit(half, tmp, FILTER_2XSAI);
                 image_destroy(half);
+                half = NULL;
             }
             else {
                 v2d_t scale = v2d_new((double)tmp->w / (double)video_get_backbuffer()->w, (double)tmp->h / (double)video_get_backbuffer()->h);
@@ -422,6 +424,7 @@
 
             draw_to_screen(tmp);
             image_destroy(tmp);
+            tmp = NULL;
             break;
         }
 
@@ -631,8 +634,10 @@
  */
 void image_destroy(image_t *img)
 {
-    if(img->data != NULL)
+    if(img->data != NULL) {
         destroy_bitmap(img->data);
+        img->data = NULL;
+    }
 
     free(img);
 }

Last edited by Alexandre (2010-03-01 00:09:37)

Offline

#11 2010-03-01 10:33:07

bugmenot
Member
Registered: 2010-02-26
Posts: 13

Re: Crash of version 0.1.3 on Ubuntu 9.10

I tried the version from the PPA and it also crashes:

korn@ubuntu:~/opensonic$ opensonic --tiny
*** glibc detected *** opensonic: double free or corruption (out): 0x00000000021c62d0 ***
======= Backtrace: =========
/lib/libc.so.6[0x7f81bc13fdd6]
/lib/libc.so.6(cfree+0x6c)[0x7f81bc14474c]
/usr/lib/liballeg.so.4.2(destroy_bitmap+0x87)[0x7f81bd192b07]
opensonic(video_render+0x1a7)[0x43fac7]
opensonic(main+0x3aa)[0x42c10a]
/lib/libc.so.6(__libc_start_main+0xfd)[0x7f81bc0e8abd]
opensonic[0x40acd9]
======= Memory map: ========
00400000-0045c000 r-xp 00000000 08:02 216542                             /usr/share/games/opensonic/opensonic
0065b000-0065c000 r--p 0005b000 08:02 216542                             /usr/share/games/opensonic/opensonic
0065c000-0065e000 rw-p 0005c000 08:02 216542                             /usr/share/games/opensonic/opensonic
0065e000-006a2000 rw-p 00000000 00:00 0 
014d5000-02313000 rw-p 00000000 00:00 0                                  [heap]
7f81a4000000-7f81a4021000 rw-p 00000000 00:00 0 
7f81a4021000-7f81a8000000 ---p 00000000 00:00 0 
7f81abe8b000-7f81abe8c000 ---p 00000000 00:00 0 
7f81abe8c000-7f81ac68c000 rwxp 00000000 00:00 0 
7f81ac68c000-7f81b068d000 rw-s 00000000 00:11 61298                      /dev/shm/pulse-shm-1719649293
7f81b068d000-7f81b0692000 r-xp 00000000 08:02 105743                     /usr/lib/alsa-lib/libasound_module_ctl_pulse.so
7f81b0692000-7f81b0891000 ---p 00005000 08:02 105743                     /usr/lib/alsa-lib/libasound_module_ctl_pulse.so
7f81b0891000-7f81b0892000 r--p 00004000 08:02 105743                     /usr/lib/alsa-lib/libasound_module_ctl_pulse.so
7f81b0892000-7f81b0893000 rw-p 00005000 08:02 105743                     /usr/lib/alsa-lib/libasound_module_ctl_pulse.so
7f81b0893000-7f81b0894000 ---p 00000000 00:00 0 
7f81b0894000-7f81b1094000 rwxp 00000000 00:00 0 
7f81b4cb9000-7f81b4ccf000 r-xp 00000000 08:02 13380                      /lib/libgcc_s.so.1
7f81b4ccf000-7f81b4ece000 ---p 00016000 08:02 13380                      /lib/libgcc_s.so.1
7f81b4ece000-7f81b4ecf000 r--p 00015000 08:02 13380                      /lib/libgcc_s.so.1
7f81b4ecf000-7f81b4ed0000 rw-p 00016000 08:02 13380                      /lib/libgcc_s.so.1
7f81b4ed0000-7f81b5095000 rw-p 00000000 00:00 0 
7f81b5095000-7f81b509a000 r-xp 00000000 08:02 105744                     /usr/lib/alsa-lib/libasound_module_pcm_pulse.so
7f81b509a000-7f81b529a000 ---p 00005000 08:02 105744                     /usr/lib/alsa-lib/libasound_module_pcm_pulse.so
7f81b529a000-7f81b529b000 r--p 00005000 08:02 105744                     /usr/lib/alsa-lib/libasound_module_pcm_pulse.so
7f81b529b000-7f81b529c000 rw-p 00006000 08:02 105744                     /usr/lib/alsa-lib/libasound_module_pcm_pulse.so
7f81b529c000-7f81b52b6000 r-xp 00000000 08:02 38668                      /usr/lib/libvorbisenc.so.2.0.3
7f81b52b6000-7f81b54b5000 ---p 0001a000 08:02 38668                      /usr/lib/libvorbisenc.so.2.0.3
7f81b54b5000-7f81b54b6000 r--p 00019000 08:02 38668                      /usr/lib/libvorbisenc.so.2.0.3
7f81b54b6000-7f81b5676000 rw-p 0001a000 08:02 38668                      /usr/lib/libvorbisenc.so.2.0.3
7f81b5676000-7f81b56bf000 r-xp 00000000 08:02 48548                      /usr/lib/libFLAC.so.8.2.0
7f81b56bf000-7f81b58bf000 ---p 00049000 08:02 48548                      /usr/lib/libFLAC.so.8.2.0
7f81b58bf000-7f81b58c0000 r--p 00049000 08:02 48548                      /usr/lib/libFLAC.so.8.2.0
7f81b58c0000-7f81b58c1000 rw-p 0004a000 08:02 48548                      /usr/lib/libFLAC.so.8.2.0
7f81b58c1000-7f81b58c4000 r-xp 00000000 08:02 3504                       /lib/libuuid.so.1.3.0
7f81b58c4000-7f81b5ac4000 ---p 00003000 08:02 3504                       /lib/libuuid.so.1.3.0
7f81b5ac4000-7f81b5ac5000 r--p 00003000 08:02 3504                       /lib/libuuid.so.1.3.0
7f81b5ac5000-7f81b5ac6000 rw-p 00004000 08:02 3504                       /lib/libuuid.so.1.3.0
7f81b5ac6000-7f81b5b03000 r-xp 00000000 08:02 322                        /lib/libdbus-1.so.3.4.0
7f81b5b03000-7f81b5d03000 ---p 0003d000 08:02 322                        /lib/libdbus-1.so.3.4.0
7f81b5d03000-7f81b5d04000 r--p 0003d000 08:02 322                        /lib/libdbus-1.so.3.4.0
7f81b5d04000-7f81b5d05000 rw-p 0003e000 08:02 322                        /lib/libdbus-1.so.3.4.0
7f81b5d05000-7f81b5d61000 r-xp 00000000 08:02 37704                      /usr/lib/libsndfile.so.1.0.20
7f81b5d61000-7f81b5f60000 ---p 0005c000 08:02 37704                      /usr/lib/libsndfile.so.1.0.20
7f81b5f60000-7f81b5f62000 r--p 0005b000 08:02 37704                      /usr/lib/libsndfile.so.1.0.20
7f81b5f62000-7f81b5f63000 rw-p 0005d000 08:02 37704                      /usr/lib/libsndfile.so.1.0.20
7f81b5f63000-7f81b5f67000 rw-p 00000000 00:00 0 
7f81b5f67000-7f81b5f70000 r-xp 00000000 08:02 43598                      /lib/libwrap.so.0.7.6
7f81b5f70000-7f81b616f000 ---p 00009000 08:02 43598                      /lib/libwrap.so.0.7.6
7f81b616f000-7f81b6170000 r--p 00008000 08:02 43598                      /lib/libwrap.so.0.7.6
7f81b6170000-7f81b6171000 rw-p 00009000 08:02 43598                      /lib/libwrap.so.0.7.6
7f81b6171000-7f81b6172000 rw-p 00000000 00:00 0 
7f81b6172000-7f81b6177000 r-xp 00000000 08:02 44322                      /usr/lib/libXtst.so.6.1.0
7f81b6177000-7f81b6377000 ---p 00005000 08:02 44322                      /usr/lib/libXtst.so.6.1.0
7f81b6377000-7f81b6378000 r--p 00005000 08:02 44322                      /usr/lib/libXtst.so.6.1.0
7f81b6378000-7f81b6379000 rw-p 00006000 08:02 44322                      /usr/lib/libXtst.so.6.1.0
7f81b6379000-7f81b6381000 r-xp 00000000 08:02 35530                      /usr/lib/libSM.so.6.0.0
7f81b6381000-7f81b6580000 ---p 00008000 08:02 35530                      /usr/lib/libSM.so.6.0.0
7f81b6580000-7f81b6581000 r--p 00007000 08:02 35530                      /usr/lib/libSM.so.6.0.0
7f81b6581000-7f81b6582000 rw-p 00008000 08:02 35530                      /usr/lib/libSM.so.6.0.0
7f81b6582000-7f81b6599000 r-xp 00000000 08:02 35516                      /usr/lib/libICE.so.6.3.0
7f81b6599000-7f81b6798000 ---p 00017000 08:02 35516                      /usr/lib/libICE.so.6.3.0
7f81b6798000-7f81b6799000 r--p 00016000 08:02 35516                      /usr/lib/libICE.so.6.3.0
7f81b6799000-7f81b679a000 rw-p 00017000 08:02 35516                      /usr/lib/libICE.so.6.3.0
7f81b679a000-7f81b679d000 rw-p 00000000 00:00 0 
7f81b679d000-7f81b67e7000 r-xp 00000000 08:02 29281                      /usr/lib/libpulsecommon-0.9.19.so
Open Sonic version 0.1.3
logfile_init()
preferences_init()
ERROR: couldn't open preferences file for reading. file="/home/korn/.opensonic/preferences.dat"
game arguments:
argv[0]: 'opensonic'
argv[1]: '--tiny'
timer_init()
video_init()
video_changemode(0,0,0)
video_changemode() ok
audio_init()
Initializing Allegro sound...
Warning: unable to install sound.
ALSA: snd_pcm_hw_params_set_format(pcm_handle, hwparams, format) : Invalid argument

Initializing DUMB...
Initializing LOGG...
audio_init() ok
input_init()
No joystick has been detected.
hash_init()
spritedata_load()...
Reading sprite 'SD_SONIC'
load_sprite() with 26 animations and 75 frames
image_load(/usr/share/games/opensonic/images/player.png)
hash_search('images/player.png', 1) returned NULL
hash_insert('images/player.png', 0x1521320, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_SONIC'...
hash_insert('SD_SONIC', 0x152ddc0, 2)...
Reading sprite 'SD_TAILS'
load_sprite() with 26 animations and 65 frames
image_load(/usr/share/games/opensonic/images/player.png)
load_sprite() ok!
Registering sprite 'SD_TAILS'...
hash_insert('SD_TAILS', 0x15bb460, 2)...
Reading sprite 'SD_KNUCKLES'
load_sprite() with 26 animations and 65 frames
image_load(/usr/share/games/opensonic/images/player.png)
load_sprite() ok!
Registering sprite 'SD_KNUCKLES'...
hash_insert('SD_KNUCKLES', 0x1663b00, 2)...
Reading sprite 'SD_ARROW'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
hash_search('images/items.png', 1) returned NULL
hash_insert('images/items.png', 0x170b8f0, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_ARROW'...
hash_insert('SD_ARROW', 0x170b820, 2)...
Reading sprite 'SD_RING'
load_sprite() with 2 animations and 12 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_RING'...
hash_insert('SD_RING', 0x170bde0, 2)...
Reading sprite 'SD_BLUERING'
load_sprite() with 2 animations and 12 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_BLUERING'...
hash_insert('SD_BLUERING', 0x18a3fc0, 2)...
Reading sprite 'SD_BIGRING'
load_sprite() with 1 animations and 10 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_BIGRING'...
hash_insert('SD_BIGRING', 0x18a7ed0, 2)...
Reading sprite 'SD_JOAN'
load_sprite() with 1 animations and 3 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
hash_search('images/baddies.png', 1) returned NULL
hash_insert('images/baddies.png', 0x190c110, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_JOAN'...
hash_insert('SD_JOAN', 0x190c040, 2)...
Reading sprite 'SD_FLYINGBOY'
load_sprite() with 1 animations and 2 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_FLYINGBOY'...
hash_insert('SD_FLYINGBOY', 0x190d850, 2)...
Reading sprite 'SD_FLYINGEYES'
load_sprite() with 1 animations and 4 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_FLYINGEYES'...
hash_insert('SD_FLYINGEYES', 0x190de40, 2)...
Reading sprite 'SD_KLEPS'
load_sprite() with 1 animations and 2 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_KLEPS'...
hash_insert('SD_KLEPS', 0x1920d90, 2)...
Reading sprite 'SD_GOLDFISH'
load_sprite() with 1 animations and 2 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_GOLDFISH'...
hash_insert('SD_GOLDFISH', 0x19228e0, 2)...
Reading sprite 'SD_SURPREYES'
load_sprite() with 1 animations and 2 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_SURPREYES'...
hash_insert('SD_SURPREYES', 0x1925d30, 2)...
Reading sprite 'SD_ORANJECTION'
load_sprite() with 1 animations and 2 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_ORANJECTION'...
hash_insert('SD_ORANJECTION', 0x1929ea0, 2)...
Reading sprite 'SD_ROBOXER'
load_sprite() with 1 animations and 3 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_ROBOXER'...
hash_insert('SD_ROBOXER', 0x192bfd0, 2)...
Reading sprite 'SD_NAFDER'
load_sprite() with 1 animations and 3 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_NAFDER'...
hash_insert('SD_NAFDER', 0x19300f0, 2)...
Reading sprite 'SD_CHEF'
load_sprite() with 1 animations and 4 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_CHEF'...
hash_insert('SD_CHEF', 0x1937a20, 2)...
Reading sprite 'SD_SIMPLEBOSS'
load_sprite() with 3 animations and 4 frames
image_load(/usr/share/games/opensonic/images/boss.png)
hash_search('images/boss.png', 1) returned NULL
hash_insert('images/boss.png', 0x193fb00, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_SIMPLEBOSS'...
hash_insert('SD_SIMPLEBOSS', 0x193fa20, 2)...
Reading sprite 'SD_MECHASHADOW'
load_sprite() with 5 animations and 6 frames
image_load(/usr/share/games/opensonic/images/boss.png)
load_sprite() ok!
Registering sprite 'SD_MECHASHADOW'...
hash_insert('SD_MECHASHADOW', 0x1940640, 2)...
Reading sprite 'SD_DANGPOWER'
load_sprite() with 1 animations and 2 frames
image_load(/usr/share/games/opensonic/images/boss.png)
load_sprite() ok!
Registering sprite 'SD_DANGPOWER'...
hash_insert('SD_DANGPOWER', 0x195c1b0, 2)...
Reading sprite 'SD_MAINGUI'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/gui.png)
hash_search('images/gui.png', 1) returned NULL
hash_insert('images/gui.png', 0x195d890, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_MAINGUI'...
hash_insert('SD_MAINGUI', 0x195d7c0, 2)...
Reading sprite 'SD_LIFEGUI'
load_sprite() with 3 animations and 3 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_LIFEGUI'...
hash_insert('SD_LIFEGUI', 0x195f7d0, 2)...
Reading sprite 'SD_PAUSE'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_PAUSE'...
hash_insert('SD_PAUSE', 0x195fc30, 2)...
Reading sprite 'SD_ITEMBOX'
load_sprite() with 11 animations and 12 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_ITEMBOX'...
hash_insert('SD_ITEMBOX', 0x1967970, 2)...
Reading sprite 'SD_ICON'
load_sprite() with 11 animations and 12 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_ICON'...
hash_insert('SD_ICON', 0x1974650, 2)...
Reading sprite 'SD_GLASSES'
load_sprite() with 6 animations and 5 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_GLASSES'...
hash_insert('SD_GLASSES', 0x19780b0, 2)...
Reading sprite 'SD_SHIELD'
load_sprite() with 1 animations and 5 frames
image_load(/usr/share/games/opensonic/images/ring_shields.png)
hash_search('images/ring_shields.png', 1) returned NULL
hash_insert('images/ring_shields.png', 0x1979560, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_SHIELD'...
hash_insert('SD_SHIELD', 0x1979480, 2)...
Reading sprite 'SD_INVSTAR'
load_sprite() with 1 animations and 3 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_INVSTAR'...
hash_insert('SD_INVSTAR', 0x19d4e80, 2)...
Reading sprite 'SD_LEVELOP'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_LEVELOP'...
hash_insert('SD_LEVELOP', 0x19d5a90, 2)...
Reading sprite 'SD_LEVELACT'
load_sprite() with 3 animations and 3 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_LEVELACT'...
hash_insert('SD_LEVELACT', 0x19d6490, 2)...
Reading sprite 'SD_EXPLOSION'
load_sprite() with 2 animations and 7 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_EXPLOSION'...
hash_insert('SD_EXPLOSION', 0x19db300, 2)...
Reading sprite 'SD_PIXEL'
load_sprite() with 4 animations and 75 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_PIXEL'...
hash_insert('SD_PIXEL', 0x197dfc0, 2)...
Reading sprite 'SD_ANIMAL'
load_sprite() with 24 animations and 36 frames
image_load(/usr/share/games/opensonic/images/animals.png)
hash_search('images/animals.png', 1) returned NULL
hash_insert('images/animals.png', 0x1982680, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_ANIMAL'...
hash_insert('SD_ANIMAL', 0x19823f0, 2)...
Reading sprite 'SD_LOOPRIGHT'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPRIGHT'...
hash_insert('SD_LOOPRIGHT', 0x19943a0, 2)...
Reading sprite 'SD_LOOPMIDDLE'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPMIDDLE'...
hash_insert('SD_LOOPMIDDLE', 0x1994860, 2)...
Reading sprite 'SD_LOOPLEFT'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPLEFT'...
hash_insert('SD_LOOPLEFT', 0x1994aa0, 2)...
Reading sprite 'SD_LOOPNONE'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPNONE'...
hash_insert('SD_LOOPNONE', 0x1994bf0, 2)...
Reading sprite 'SD_LOOPFLOOR'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPFLOOR'...
hash_insert('SD_LOOPFLOOR', 0x1a2ad90, 2)...
Reading sprite 'SD_LOOPFLOORNONE'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPFLOORNONE'...
hash_insert('SD_LOOPFLOORNONE', 0x1a2c060, 2)...
Reading sprite 'SD_LOOPFLOORTOP'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPFLOORTOP'...
hash_insert('SD_LOOPFLOORTOP', 0x1a2d330, 2)...
Reading sprite 'SD_YELLOWSPRING'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/spring_pads.png)
hash_search('images/spring_pads.png', 1) returned NULL
hash_insert('images/spring_pads.png', 0x1a2e6b0, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_YELLOWSPRING'...
hash_insert('SD_YELLOWSPRING', 0x1a2e5e0, 2)...
Reading sprite 'SD_REDSPRING'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/spring_pads.png)
load_sprite() ok!
Registering sprite 'SD_REDSPRING'...
hash_insert('SD_REDSPRING', 0x1a2faa0, 2)...
Reading sprite 'SD_RREDSPRING'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/spring_pads.png)
load_sprite() ok!
Registering sprite 'SD_RREDSPRING'...
hash_insert('SD_RREDSPRING', 0x1a32520, 2)...
Reading sprite 'SD_LREDSPRING'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/spring_pads.png)
load_sprite() ok!
Registering sprite 'SD_LREDSPRING'...
hash_insert('SD_LREDSPRING', 0x1a359f0, 2)...
Reading sprite 'SD_SWITCH'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_SWITCH'...
hash_insert('SD_SWITCH', 0x1a37ec0, 2)...
Reading sprite 'SD_DOOR'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_DOOR'...
hash_insert('SD_DOOR', 0x1a39230, 2)...
Reading sprite 'SD_TELEPORTER'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_TELEPORTER'...
hash_insert('SD_TELEPORTER', 0x1a3ae60, 2)...
Reading sprite 'SD_CHECKPOINT'
load_sprite() with 3 animations and 7 frames
image_load(/usr/share/games/opensonic/images/checkpoint_orb.png)
hash_search('images/checkpoint_orb.png', 1) returned NULL
hash_insert('images/checkpoint_orb.png', 0x1a47830, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_CHECKPOINT'...
hash_insert('SD_CHECKPOINT', 0x1a47740, 2)...
Reading sprite 'SD_BUMPER'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_BUMPER'...
hash_insert('SD_BUMPER', 0x1a482d0, 2)...
Reading sprite 'SD_GOAL'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_GOAL'...
hash_insert('SD_GOAL', 0x1a48800, 2)...
Reading sprite 'SD_ENDSIGN'
load_sprite() with 5 animations and 8 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_ENDSIGN'...
hash_insert('SD_ENDSIGN', 0x1bcd300, 2)...
Reading sprite 'SD_ENDLEVEL'
load_sprite() with 3 animations and 4 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_ENDLEVEL'...
hash_insert('SD_ENDLEVEL', 0x1be4470, 2)...
Reading sprite 'SD_RINGBONUS'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_RINGBONUS'...
hash_insert('SD_RINGBONUS', 0x1bfc7b0, 2)...
Reading sprite 'SD_SECRETBONUS'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_SECRETBONUS'...
hash_insert('SD_SECRETBONUS', 0x1bfdbb0, 2)...
Reading sprite 'SD_TOTAL'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_TOTAL'...
hash_insert('SD_TOTAL', 0x1bfefb0, 2)...
Reading sprite 'SD_DIALOGBOX'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_DIALOGBOX'...
hash_insert('SD_DIALOGBOX', 0x1bff8b0, 2)...
Reading sprite 'SD_TITLESONIC'
load_sprite() with 2 animations and 8 frames
image_load(/usr/share/games/opensonic/images/title.png)
hash_search('images/title.png', 1) returned NULL
hash_insert('images/title.png', 0x1c11f30, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_TITLESONIC'...
hash_insert('SD_TITLESONIC', 0x1c11e30, 2)...
Reading sprite 'SD_TITLESONICBG'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/title.png)
load_sprite() ok!
Registering sprite 'SD_TITLESONICBG'...
hash_insert('SD_TITLESONICBG', 0x1c12db0, 2)...
Reading sprite 'SD_TITLEGAMENAME'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/title.png)
load_sprite() ok!
Registering sprite 'SD_TITLEGAMENAME'...
hash_insert('SD_TITLEGAMENAME', 0x1c12f00, 2)...
Reading sprite 'SD_TITLEFOOT'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/title.png)
load_sprite() ok!
Registering sprite 'SD_TITLEFOOT'...
hash_insert('SD_TITLEFOOT', 0x1c7e1b0, 2)...
Reading sprite 'SD_DANGER'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_DANGER'...
hash_insert('SD_DANGER', 0x1c7e4b0, 2)...
Reading sprite 'SD_SPIKES'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_SPIKES'...
hash_insert('SD_SPIKES', 0x1c7ef00, 2)...
Reading sprite 'SD_DNADOOR'
load_sprite() with 1 animations and 3 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_DNADOOR'...
hash_insert('SD_DNADOOR', 0x1c801d0, 2)...
Reading sprite 'SD_FIREBALL'
load_sprite() with 3 animations and 6 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_FIREBALL'...
hash_insert('SD_FIREBALL', 0x1d915b0, 2)...
Reading sprite 'SD_CONFIRMBOX'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_CONFIRMBOX'...
hash_insert('SD_CONFIRMBOX', 0x1d954c0, 2)...
Reading sprite 'FT_FONT0'
load_sprite() with 1 animations and 52 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT0'...
hash_insert('FT_FONT0', 0x1da0940, 2)...
Reading sprite 'FT_FONT1'
load_sprite() with 1 animations and 52 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT1'...
hash_insert('FT_FONT1', 0x1da6450, 2)...
Reading sprite 'FT_FONT2'
load_sprite() with 1 animations and 11 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT2'...
hash_insert('FT_FONT2', 0x1dabef0, 2)...
Reading sprite 'FT_FONT3'
load_sprite() with 1 animations and 30 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT3'...
hash_insert('FT_FONT3', 0x1dada20, 2)...
Reading sprite 'FT_FONT4'
load_sprite() with 1 animations and 30 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT4'...
hash_insert('FT_FONT4', 0x1db7640, 2)...
Reading sprite 'FT_FONT5'
load_sprite() with 1 animations and 30 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT5'...
hash_insert('FT_FONT5', 0x1dc3ba0, 2)...
Reading sprite 'FT_FONT6'
load_sprite() with 1 animations and 30 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT6'...
hash_insert('FT_FONT6', 0x1dd0100, 2)...
Reading sprite 'FT_FONT7'
load_sprite() with 1 animations and 30 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT7'...
hash_insert('FT_FONT7', 0x1ddc660, 2)...
Reading sprite 'FT_FONT8'
load_sprite() with 1 animations and 224 frames
image_load(/usr/share/games/opensonic/images/font.png)
hash_search('images/font.png', 1) returned NULL
hash_insert('images/font.png', 0x1de96a0, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'FT_FONT8'...
hash_insert('FT_FONT8', 0x1de8ee0, 2)...
Reading sprite 'FT_FONT9'
load_sprite() with 1 animations and 112 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT9'...
hash_insert('FT_FONT9', 0x1e08830, 2)...
spritedata_load() ok!
font_init()
font_init() ok
Initializing the language module
lang_loadfile("languages/english.lng")...
hash_search('LANG_LANGUAGE', 5) returned NULL
hash_insert('LANG_LANGUAGE', 0x1e2a510, 5)...
hash_search('LANG_AUTHOR', 5) returned NULL
hash_insert('LANG_AUTHOR', 0x1e2a920, 5)...
hash_search('LANG_LASTUPDATE', 5) returned NULL
hash_insert('LANG_LASTUPDATE', 0x1e2ad30, 5)...
hash_search('LANG_COMPATIBILITY', 5) returned NULL
hash_insert('LANG_COMPATIBILITY', 0x1e2b140, 5)...
hash_search('COLOR_P1', 5) returned NULL
hash_insert('COLOR_P1', 0x1e2b550, 5)...
hash_search('COLOR_P2', 5) returned NULL
hash_insert('COLOR_P2', 0x1e2b960, 5)...
hash_search('COLOR_P3', 5) returned NULL
hash_insert('COLOR_P3', 0x1e2bd70, 5)...
hash_search('COLOR_INPUT', 5) returned NULL
hash_insert('COLOR_INPUT', 0x1e2c180, 5)...
hash_search('COLOR_SPECIAL', 5) returned NULL
hash_insert('COLOR_SPECIAL', 0x1e2c590, 5)...
hash_search('MENU_1PGAME', 5) returned NULL
hash_insert('MENU_1PGAME', 0x1e2c9a0, 5)...
hash_search('MENU_TUTORIAL', 5) returned NULL
hash_insert('MENU_TUTORIAL', 0x1e2cdb0, 5)...
hash_search('MENU_CUSTOMQUESTS', 5) returned NULL
hash_insert('MENU_CUSTOMQUESTS', 0x1e2d1c0, 5)...
hash_search('MENU_OPTIONS', 5) returned NULL
hash_insert('MENU_OPTIONS', 0x1e2d5d0, 5)...
hash_search('MENU_EXIT', 5) returned NULL
hash_insert('MENU_EXIT', 0x1e2d9e0, 5)...
hash_search('OPTIONS_TITLE', 5) returned NULL
hash_insert('OPTIONS_TITLE', 0x1e2ddf0, 5)...
hash_search('OPTIONS_YES', 5) returned NULL
hash_insert('OPTIONS_YES', 0x1e2e200, 5)...
hash_search('OPTIONS_NO', 5) returned NULL
hash_insert('OPTIONS_NO', 0x1e2e610, 5)...
hash_search('OPTIONS_GRAPHICS', 5) returned NULL
hash_insert('OPTIONS_GRAPHICS', 0x1e2ea20, 5)...
hash_search('OPTIONS_FULLSCREEN', 5) returned NULL
hash_insert('OPTIONS_FULLSCREEN', 0x1e2ee30, 5)...
hash_search('OPTIONS_RESOLUTION', 5) returned NULL
hash_insert('OPTIONS_RESOLUTION', 0x1e2f240, 5)...
hash_search('OPTIONS_RESOLUTION_OPT1', 5) returned NULL
hash_insert('OPTIONS_RESOLUTION_OPT1', 0x1e2f650, 5)...
hash_search('OPTIONS_RESOLUTION_OPT2', 5) returned NULL
hash_insert('OPTIONS_RESOLUTION_OPT2', 0x1e2fa60, 5)...
hash_search('OPTIONS_RESOLUTION_OPT3', 5) returned NULL
hash_insert('OPTIONS_RESOLUTION_OPT3', 0x1e2fe70, 5)...
hash_search('OPTIONS_SMOOTHGFX', 5) returned NULL
hash_insert('OPTIONS_SMOOTHGFX', 0x1e30280, 5)...
hash_search('OPTIONS_FPS', 5) returned NULL
hash_insert('OPTIONS_FPS', 0x1e30690, 5)...
hash_search('OPTIONS_GAME', 5) returned NULL
hash_insert('OPTIONS_GAME', 0x1e30aa0, 5)...
hash_search('OPTIONS_LANGUAGE', 5) returned NULL
hash_insert('OPTIONS_LANGUAGE', 0x1e30eb0, 5)...
hash_search('OPTIONS_STAGESELECT', 5) returned NULL
hash_insert('OPTIONS_STAGESELECT', 0x1e312c0, 5)...
hash_search('OPTIONS_CREDITS', 5) returned NULL
hash_insert('OPTIONS_CREDITS', 0x1e316d0, 5)...
hash_search('OPTIONS_BACK', 5) returned NULL
hash_insert('OPTIONS_BACK', 0x1e31ae0, 5)...
hash_search('STAGESELECT_TITLE', 5) returned NULL
hash_insert('STAGESELECT_TITLE', 0x1e31ef0, 5)...
hash_search('STAGESELECT_MSG', 5) returned NULL
hash_insert('STAGESELECT_MSG', 0x1e32300, 5)...
hash_search('STAGESELECT_PAGE', 5) returned NULL
hash_insert('STAGESELECT_PAGE', 0x1e32710, 5)...
hash_search('STAGESELECT_ACT', 5) returned NULL
hash_insert('STAGESELECT_ACT', 0x1e32b20, 5)...
hash_search('CREDITS_TITLE', 5) returned NULL
hash_insert('CREDITS_TITLE', 0x1e32f30, 5)...
hash_search('CREDITS_KEY', 5) returned NULL
hash_insert('CREDITS_KEY', 0x1e33340, 5)...
hash_search('CREDITS_PROGRAMMING', 5) returned NULL
hash_insert('CREDITS_PROGRAMMING', 0x1e33750, 5)...
hash_search('CREDITS_ART', 5) returned NULL
hash_insert('CREDITS_ART', 0x1e33b60, 5)...
hash_search('CREDITS_MUSICS', 5) returned NULL
hash_insert('CREDITS_MUSICS', 0x1e33f70, 5)...
hash_search('CREDITS_LEVELDESIGN', 5) returned NULL
hash_insert('CREDITS_LEVELDESIGN', 0x1e34380, 5)...
hash_search('CREDITS_COMMUNITY', 5) returned NULL
hash_insert('CREDITS_COMMUNITY', 0x1e34790, 5)...
hash_search('CREDITS_PORTING', 5) returned NULL
hash_insert('CREDITS_PORTING', 0x1e34ba0, 5)...
hash_search('CREDITS_TRANSLATIONS', 5) returned NULL
hash_insert('CREDITS_TRANSLATIONS', 0x1e34fb0, 5)...
hash_search('CREDITS_RETIRED', 5) returned NULL
hash_insert('CREDITS_RETIRED', 0x1e353c0, 5)...
hash_search('CREDITS_THANKS', 5) returned NULL
hash_insert('CREDITS_THANKS', 0x1e357d0, 5)...
hash_search('CREDITS_ALEXANDRE', 5) returned NULL
hash_insert('CREDITS_ALEXANDRE', 0x1e35be0, 5)...
hash_search('CREDITS_DI', 5) returned NULL
hash_insert('CREDITS_DI', 0x1e35ff0, 5)...
hash_search('CREDITS_NEOBLAST', 5) returned NULL
hash_insert('CREDITS_NEOBLAST', 0x1e36400, 5)...
hash_search('CREDITS_LAINZ', 5) returned NULL
hash_insert('CREDITS_LAINZ', 0x1e36810, 5)...
hash_search('CREDITS_ARTHURBLOT', 5) returned NULL
hash_insert('CREDITS_ARTHURBLOT', 0x1e36c20, 5)...
hash_search('CREDITS_REIMUND', 5) returned NULL
hash_insert('CREDITS_REIMUND', 0x1e37030, 5)...
hash_search('CREDITS_SZYMON', 5) returned NULL
hash_insert('CREDITS_SZYMON', 0x1e37440, 5)...
hash_search('CREDITS_TOMIRES', 5) returned NULL
hash_insert('CREDITS_TOMIRES', 0x1e37850, 5)...
hash_search('CREDITS_BASTIAN', 5) returned NULL
hash_insert('CREDITS_BASTIAN', 0x1e37c60, 5)...
hash_search('MENU_CQ_SELECT', 5) returned NULL
hash_insert('MENU_CQ_SELECT', 0x1e38070, 5)...
hash_search('MENU_CQ_BACK', 5) returned NULL
hash_insert('MENU_CQ_BACK', 0x1e38480, 5)...
hash_search('MENU_CQ_INFO', 5) returned NULL
hash_insert('MENU_CQ_INFO', 0x1e38890, 5)...
hash_search('MENU_CQ_TUTORIAL', 5) returned NULL
hash_insert('MENU_CQ_TUTORIAL', 0x1e38ca0, 5)...
hash_search('MENU_CQ_SUPERBOSSES', 5) returned NULL
hash_insert('MENU_CQ_SUPERBOSSES', 0x1e390b0, 5)...
hash_search('QUESTCLEARED_TITLE', 5) returned NULL
hash_insert('QUESTCLEARED_TITLE', 0x1e394c0, 5)...
hash_search('QUESTCLEARED_TEXT', 5) returned NULL
hash_insert('QUESTCLEARED_TEXT', 0x1e398d0, 5)...
hash_search('ENDOFDEMO_TITLE', 5) returned NULL
hash_insert('ENDOFDEMO_TITLE', 0x1e39ce0, 5)...
hash_search('ENDOFDEMO_TEXT', 5) returned NULL
hash_insert('ENDOFDEMO_TEXT', 0x1e3a0f0, 5)...
hash_search('BONUSMSG_TITLE', 5) returned NULL
hash_insert('BONUSMSG_TITLE', 0x1e3a500, 5)...
hash_search('BONUSMSG_TEXT', 5) returned NULL
hash_insert('BONUSMSG_TEXT', 0x1e3a910, 5)...
hash_search('CBOX_QUIT_QUESTION', 5) returned NULL
hash_insert('CBOX_QUIT_QUESTION', 0x1e3ad20, 5)...
hash_search('CBOX_QUIT_OPTION1', 5) returned NULL
hash_insert('CBOX_QUIT_OPTION1', 0x1e3b130, 5)...
hash_search('CBOX_QUIT_OPTION2', 5) returned NULL
hash_insert('CBOX_QUIT_OPTION2', 0x1e3b540, 5)...
hash_search('INPUT_KEYB_DIRECTIONAL', 5) returned NULL
hash_insert('INPUT_KEYB_DIRECTIONAL', 0x1e3b950, 5)...
hash_search('INPUT_KEYB_LEFT', 5) returned NULL
hash_insert('INPUT_KEYB_LEFT', 0x1e3bd60, 5)...
hash_search('INPUT_KEYB_RIGHT', 5) returned NULL
hash_insert('INPUT_KEYB_RIGHT', 0x1e3c170, 5)...
hash_search('INPUT_KEYB_UP', 5) returned NULL
hash_insert('INPUT_KEYB_UP', 0x1e3c580, 5)...
hash_search('INPUT_KEYB_DOWN', 5) returned NULL
hash_insert('INPUT_KEYB_DOWN', 0x1e3c990, 5)...
hash_search('INPUT_KEYB_FIRE1', 5) returned NULL
hash_insert('INPUT_KEYB_FIRE1', 0x1e3cda0, 5)...
hash_search('INPUT_KEYB_FIRE2', 5) returned NULL
hash_insert('INPUT_KEYB_FIRE2', 0x1e3d1b0, 5)...
hash_search('INPUT_KEYB_FIRE3', 5) returned NULL
hash_insert('INPUT_KEYB_FIRE3', 0x1e3d5c0, 5)...
hash_search('INPUT_KEYB_FIRE4', 5) returned NULL
hash_insert('INPUT_KEYB_FIRE4', 0x1e3d9d0, 5)...
hash_search('INPUT_JOY_DIRECTIONAL', 5) returned NULL
hash_insert('INPUT_JOY_DIRECTIONAL', 0x1e3dde0, 5)...
hash_search('INPUT_JOY_LEFT', 5) returned NULL
hash_insert('INPUT_JOY_LEFT', 0x1e3e1f0, 5)...
hash_search('INPUT_JOY_RIGHT', 5) returned NULL
hash_insert('INPUT_JOY_RIGHT', 0x1e3e600, 5)...
hash_search('INPUT_JOY_UP', 5) returned NULL
hash_insert('INPUT_JOY_UP', 0x1e3ea10, 5)...
hash_search('INPUT_JOY_DOWN', 5) returned NULL
hash_insert('INPUT_JOY_DOWN', 0x1e3ee20, 5)...
hash_search('INPUT_JOY_FIRE1', 5) returned NULL
hash_insert('INPUT_JOY_FIRE1', 0x1e3f230, 5)...
hash_search('INPUT_JOY_FIRE2', 5) returned NULL
hash_insert('INPUT_JOY_FIRE2', 0x1e3f640, 5)...
hash_search('INPUT_JOY_FIRE3', 5) returned NULL
hash_insert('INPUT_JOY_FIRE3', 0x1e3fa50, 5)...
hash_search('INPUT_JOY_FIRE4', 5) returned NULL
hash_insert('INPUT_JOY_FIRE4', 0x1e3fe60, 5)...
hash_search('TUTORIAL_1_TITLE_0', 5) returned NULL
hash_insert('TUTORIAL_1_TITLE_0', 0x1e40270, 5)...
hash_search('TUTORIAL_1_MSG_0', 5) returned NULL
hash_insert('TUTORIAL_1_MSG_0', 0x1e40680, 5)...
hash_search('TUTORIAL_1_TITLE_1', 5) returned NULL
hash_insert('TUTORIAL_1_TITLE_1', 0x1e40a90, 5)...
hash_search('TUTORIAL_1_MSG_1', 5) returned NULL
hash_insert('TUTORIAL_1_MSG_1', 0x1e40ea0, 5)...
hash_search('TUTORIAL_1_TITLE_2', 5) returned NULL
hash_insert('TUTORIAL_1_TITLE_2', 0x1e412b0, 5)...
hash_search('TUTORIAL_1_MSG_2', 5) returned NULL
hash_insert('TUTORIAL_1_MSG_2', 0x1e416c0, 5)...
hash_search('TUTORIAL_1_TITLE_3', 5) returned NULL
hash_insert('TUTORIAL_1_TITLE_3', 0x1e41ad0, 5)...
hash_search('TUTORIAL_1_MSG_3', 5) returned NULL
hash_insert('TUTORIAL_1_MSG_3', 0x1e41ee0, 5)...
hash_search('TUTORIAL_1_TITLE_4', 5) returned NULL
hash_insert('TUTORIAL_1_TITLE_4', 0x1e422f0, 5)...
hash_search('TUTORIAL_1_MSG_4', 5) returned NULL
hash_insert('TUTORIAL_1_MSG_4', 0x1e42700, 5)...
hash_search('TUTORIAL_1_TITLE_5', 5) returned NULL
hash_insert('TUTORIAL_1_TITLE_5', 0x1e42b10, 5)...
hash_search('TUTORIAL_1_MSG_5', 5) returned NULL
hash_insert('TUTORIAL_1_MSG_5', 0x1e42f20, 5)...
hash_search('TUTORIAL_2_TITLE_0', 5) returned NULL
hash_insert('TUTORIAL_2_TITLE_0', 0x1e43330, 5)...
hash_search('TUTORIAL_2_MSG_0', 5) returned NULL
hash_insert('TUTORIAL_2_MSG_0', 0x1e43740, 5)...
hash_search('TUTORIAL_2_TITLE_1', 5) returned NULL
hash_insert('TUTORIAL_2_TITLE_1', 0x1e43b50, 5)...
hash_search('TUTORIAL_2_MSG_1', 5) returned NULL
hash_insert('TUTORIAL_2_MSG_1', 0x1e43f60, 5)...
hash_search('TUTORIAL_2_TITLE_2', 5) returned NULL
hash_insert('TUTORIAL_2_TITLE_2', 0x1e44370, 5)...
hash_search('TUTORIAL_2_MSG_2', 5) returned NULL
hash_insert('TUTORIAL_2_MSG_2', 0x1e44780, 5)...
hash_search('TUTORIAL_2_TITLE_3', 5) returned NULL
hash_insert('TUTORIAL_2_TITLE_3', 0x1e44b90, 5)...
hash_search('TUTORIAL_2_MSG_3', 5) returned NULL
hash_insert('TUTORIAL_2_MSG_3', 0x1e44fa0, 5)...
hash_search('BOZ_1_TITLE_0', 5) returned NULL
hash_insert('BOZ_1_TITLE_0', 0x1e453b0, 5)...
hash_search('BOZ_1_MSG_0', 5) returned NULL
hash_insert('BOZ_1_MSG_0', 0x1e457c0, 5)...
hash_search('BOZ_1_TITLE_1', 5) returned NULL
hash_insert('BOZ_1_TITLE_1', 0x1e45bd0, 5)...
hash_search('BOZ_1_MSG_1', 5) returned NULL
hash_insert('BOZ_1_MSG_1', 0x1e45fe0, 5)...
hash_search('BOZ_1_TITLE_2', 5) returned NULL
hash_insert('BOZ_1_TITLE_2', 0x1e463f0, 5)...
hash_search('BOZ_1_MSG_2', 5) returned NULL
hash_insert('BOZ_1_MSG_2', 0x1e46800, 5)...
hash_search('BOZ_1_TITLE_3', 5) returned NULL
hash_insert('BOZ_1_TITLE_3', 0x1e46c10, 5)...
hash_search('BOZ_1_MSG_3', 5) returned NULL
hash_insert('BOZ_1_MSG_3', 0x1e47020, 5)...
hash_search('BOZ_1_TITLE_4', 5) returned NULL
hash_insert('BOZ_1_TITLE_4', 0x1e47430, 5)...
hash_search('BOZ_1_MSG_4', 5) returned NULL
hash_insert('BOZ_1_MSG_4', 0x1e47840, 5)...
hash_search('BOZ_1_TITLE_5', 5) returned NULL
hash_insert('BOZ_1_TITLE_5', 0x1e47c50, 5)...
hash_search('BOZ_1_MSG_5', 5) returned NULL
hash_insert('BOZ_1_MSG_5', 0x1e48060, 5)...
hash_search('BOZ_3_TITLE_0', 5) returned NULL
hash_insert('BOZ_3_TITLE_0', 0x1e48470, 5)...
hash_search('BOZ_3_MSG_0', 5) returned NULL
hash_insert('BOZ_3_MSG_0', 0x1e48880, 5)...
hash_search('EP_1_TITLE_0', 5) returned NULL
hash_insert('EP_1_TITLE_0', 0x1e48c90, 5)...
hash_search('EP_1_MSG_0', 5) returned NULL
hash_insert('EP_1_MSG_0', 0x1e490a0, 5)...
hash_search('EP_2_TITLE_0', 5) returned NULL
hash_insert('EP_2_TITLE_0', 0x1e494b0, 5)...
hash_search('EP_2_MSG_0', 5) returned NULL
hash_insert('EP_2_MSG_0', 0x1e498c0, 5)...
hash_search('MBOZ_1_TITLE_0', 5) returned NULL
hash_insert('MBOZ_1_TITLE_0', 0x1e49cd0, 5)...
hash_search('MBOZ_1_MSG_0', 5) returned NULL
hash_insert('MBOZ_1_MSG_0', 0x1e4a0e0, 5)...
hash_search('MEP_2_TITLE_0', 5) returned NULL
hash_insert('MEP_2_TITLE_0', 0x1e4a4f0, 5)...
hash_search('MEP_2_MSG_0', 5) returned NULL
hash_insert('MEP_2_MSG_0', 0x1e4a900, 5)...
hash_search('PROTOTYPE_1_TITLE_0', 5) returned NULL
hash_insert('PROTOTYPE_1_TITLE_0', 0x1e4ad10, 5)...
hash_search('PROTOTYPE_1_MSG_0', 5) returned NULL
hash_insert('PROTOTYPE_1_MSG_0', 0x1e4b120, 5)...
hash_search('TESTZONE_1_TITLE_0', 5) returned NULL
hash_insert('TESTZONE_1_TITLE_0', 0x1e4b530, 5)...
hash_search('TESTZONE_1_MSG_0', 5) returned NULL
hash_insert('TESTZONE_1_MSG_0', 0x1e4b940, 5)...
lang_loadfile("languages/english.lng") ok!
lang_init() ok!
lang_loadfile("languages/english.lng")...
lang_loadfile("languages/english.lng") ok!
scenestack_push(0x152d8c0)
image_load(/usr/share/games/opensonic/images/intro.png)
hash_search('images/intro.png', 1) returned NULL
hash_insert('images/intro.png', 0x1e0a310, 1)...
image_load() ok
scenestack_push() ok
scenestack_pop()
scenestack_pop() ok
scenestack_push(0x152ef70)
image_load(/usr/share/games/opensonic/images/sourcecode.png)
hash_search('images/sourcecode.png', 1) returned NULL
hash_insert('images/sourcecode.png', 0x151daf0, 1)...
image_load() ok
load_quest_list()
load_quest('/usr/share/games/opensonic/quests/superbosses.qst')
Reading quest "/usr/share/games/opensonic/quests/superbosses.qst"...
image_load(/usr/share/games/opensonic/images/quest_superbosses.png)
hash_search('images/quest_superbosses.png', 1) returned NULL
hash_insert('images/quest_superbosses.png', 0x151dab0, 1)...
image_load() ok
ok!
load_quest('/usr/share/games/opensonic/quests/extra.qst')
Reading quest "/usr/share/games/opensonic/quests/extra.qst"...
image_load(/usr/share/games/opensonic/images/quest_extra.png)
hash_search('images/quest_extra.png', 1) returned NULL
hash_insert('images/quest_extra.png', 0x1e98590, 1)...
image_load() ok
ok!
load_quest('/usr/share/games/opensonic/quests/tutorial.qst')
Reading quest "/usr/share/games/opensonic/quests/tutorial.qst"...
image_load(/usr/share/games/opensonic/images/quest_tutorial.png)
hash_search('images/quest_tutorial.png', 1) returned NULL
hash_insert('images/quest_tutorial.png', 0x1fa58e0, 1)...
image_load() ok
ok!
3 quests found.
music_load('/usr/share/games/opensonic/musics/title.ogg')
hash_search('musics/title.ogg', 3) returned NULL
hash_insert('musics/title.ogg', 0x1e2a480, 3)...
music_load() ok
scenestack_push() ok
hash_search('samples/choose.wav', 4) returned NULL
sound_load('/usr/share/games/opensonic/samples/choose.wav')
hash_insert('samples/choose.wav', 0x1ea2b20, 4)...
hash_search('samples/select.wav', 4) returned NULL
sound_load('/usr/share/games/opensonic/samples/select.wav')
hash_insert('samples/select.wav', 0x21a5300, 4)...
scenestack_pop()
release_quest_list()
scenestack_pop() ok
scenestack_push(0x1526950)
image_load(/usr/share/games/opensonic/images/squarebg.png)
hash_search('images/squarebg.png', 1) returned NULL
hash_insert('images/squarebg.png', 0x21a53b0, 1)...
image_load() ok
scenestack_push() ok
music_load('/usr/share/games/opensonic/musics/options.ogg')
hash_search('musics/options.ogg', 3) returned NULL
hash_insert('musics/options.ogg', 0x1fe6d50, 3)...
music_load() ok
video_changemode(1,0,0)
video_changemode() ok

Offline

#12 2010-03-01 10:40:29

bugmenot
Member
Registered: 2010-02-26
Posts: 13

Re: Crash of version 0.1.3 on Ubuntu 9.10

I also applied your patch (make clean is executed automatically before each compilation) but it still crashes hmm

korn@ubuntu:~/opensonic$ opensonic --tiny
*** glibc detected *** ./opensonic: double free or corruption (out): 0x000000000233a9d0 ***
======= Backtrace: =========
/lib/libc.so.6[0x7f0ee8b47dd6]
/lib/libc.so.6(cfree+0x6c)[0x7f0ee8b4c74c]
/usr/lib/liballeg.so.4.2(destroy_bitmap+0x87)[0x7f0ee9b9ab07]
./opensonic(image_destroy+0x11)[0x43ed81]
./opensonic(video_render+0x205)[0x43fbf5]
./opensonic(main+0x3aa)[0x42c10a]
/lib/libc.so.6(__libc_start_main+0xfd)[0x7f0ee8af0abd]
./opensonic[0x40acd9]
======= Memory map: ========
00400000-0045c000 r-xp 00000000 08:02 226315                             /usr/share/games/opensonic/opensonic
0065b000-0065c000 r--p 0005b000 08:02 226315                             /usr/share/games/opensonic/opensonic
0065c000-0065e000 rw-p 0005c000 08:02 226315                             /usr/share/games/opensonic/opensonic
0065e000-006a2000 rw-p 00000000 00:00 0 
017ec000-02487000 rw-p 00000000 00:00 0                                  [heap]
7f0ed4000000-7f0ed4021000 rw-p 00000000 00:00 0 
7f0ed4021000-7f0ed8000000 ---p 00000000 00:00 0 
7f0ed8893000-7f0ed8894000 ---p 00000000 00:00 0 
7f0ed8894000-7f0ed9094000 rwxp 00000000 00:00 0 
7f0ed9094000-7f0edd095000 rw-s 00000000 00:11 83887                      /dev/shm/pulse-shm-2720571841
7f0edd095000-7f0edd09a000 r-xp 00000000 08:02 105743                     /usr/lib/alsa-lib/libasound_module_ctl_pulse.so
7f0edd09a000-7f0edd299000 ---p 00005000 08:02 105743                     /usr/lib/alsa-lib/libasound_module_ctl_pulse.so
7f0edd299000-7f0edd29a000 r--p 00004000 08:02 105743                     /usr/lib/alsa-lib/libasound_module_ctl_pulse.so
7f0edd29a000-7f0edd29b000 rw-p 00005000 08:02 105743                     /usr/lib/alsa-lib/libasound_module_ctl_pulse.so
7f0edd29b000-7f0edd29c000 ---p 00000000 00:00 0 
7f0edd29c000-7f0edda9c000 rwxp 00000000 00:00 0 
7f0ee152d000-7f0ee1543000 r-xp 00000000 08:02 13380                      /lib/libgcc_s.so.1
7f0ee1543000-7f0ee1742000 ---p 00016000 08:02 13380                      /lib/libgcc_s.so.1
7f0ee1742000-7f0ee1743000 r--p 00015000 08:02 13380                      /lib/libgcc_s.so.1
7f0ee1743000-7f0ee1744000 rw-p 00016000 08:02 13380                      /lib/libgcc_s.so.1
7f0ee1744000-7f0ee1a59000 rw-p 00000000 00:00 0 
7f0ee1a5a000-7f0ee1a9d000 rw-p 00000000 00:00 0 
7f0ee1a9d000-7f0ee1aa2000 r-xp 00000000 08:02 105744                     /usr/lib/alsa-lib/libasound_module_pcm_pulse.so
7f0ee1aa2000-7f0ee1ca2000 ---p 00005000 08:02 105744                     /usr/lib/alsa-lib/libasound_module_pcm_pulse.so
7f0ee1ca2000-7f0ee1ca3000 r--p 00005000 08:02 105744                     /usr/lib/alsa-lib/libasound_module_pcm_pulse.so
7f0ee1ca3000-7f0ee1ca4000 rw-p 00006000 08:02 105744                     /usr/lib/alsa-lib/libasound_module_pcm_pulse.so
7f0ee1ca4000-7f0ee1cbe000 r-xp 00000000 08:02 38668                      /usr/lib/libvorbisenc.so.2.0.3
7f0ee1cbe000-7f0ee1ebd000 ---p 0001a000 08:02 38668                      /usr/lib/libvorbisenc.so.2.0.3
7f0ee1ebd000-7f0ee1ebe000 r--p 00019000 08:02 38668                      /usr/lib/libvorbisenc.so.2.0.3
7f0ee1ebe000-7f0ee207e000 rw-p 0001a000 08:02 38668                      /usr/lib/libvorbisenc.so.2.0.3
7f0ee207e000-7f0ee20c7000 r-xp 00000000 08:02 48548                      /usr/lib/libFLAC.so.8.2.0
7f0ee20c7000-7f0ee22c7000 ---p 00049000 08:02 48548                      /usr/lib/libFLAC.so.8.2.0
7f0ee22c7000-7f0ee22c8000 r--p 00049000 08:02 48548                      /usr/lib/libFLAC.so.8.2.0
7f0ee22c8000-7f0ee22c9000 rw-p 0004a000 08:02 48548                      /usr/lib/libFLAC.so.8.2.0
7f0ee22c9000-7f0ee22cc000 r-xp 00000000 08:02 3504                       /lib/libuuid.so.1.3.0
7f0ee22cc000-7f0ee24cc000 ---p 00003000 08:02 3504                       /lib/libuuid.so.1.3.0
7f0ee24cc000-7f0ee24cd000 r--p 00003000 08:02 3504                       /lib/libuuid.so.1.3.0
7f0ee24cd000-7f0ee24ce000 rw-p 00004000 08:02 3504                       /lib/libuuid.so.1.3.0
7f0ee24ce000-7f0ee250b000 r-xp 00000000 08:02 322                        /lib/libdbus-1.so.3.4.0
7f0ee250b000-7f0ee270b000 ---p 0003d000 08:02 322                        /lib/libdbus-1.so.3.4.0
7f0ee270b000-7f0ee270c000 r--p 0003d000 08:02 322                        /lib/libdbus-1.so.3.4.0
7f0ee270c000-7f0ee270d000 rw-p 0003e000 08:02 322                        /lib/libdbus-1.so.3.4.0
7f0ee270d000-7f0ee2769000 r-xp 00000000 08:02 37704                      /usr/lib/libsndfile.so.1.0.20
7f0ee2769000-7f0ee2968000 ---p 0005c000 08:02 37704                      /usr/lib/libsndfile.so.1.0.20
7f0ee2968000-7f0ee296a000 r--p 0005b000 08:02 37704                      /usr/lib/libsndfile.so.1.0.20
7f0ee296a000-7f0ee296b000 rw-p 0005d000 08:02 37704                      /usr/lib/libsndfile.so.1.0.20
7f0ee296b000-7f0ee296f000 rw-p 00000000 00:00 0 
7f0ee296f000-7f0ee2978000 r-xp 00000000 08:02 43598                      /lib/libwrap.so.0.7.6
7f0ee2978000-7f0ee2b77000 ---p 00009000 08:02 43598                      /lib/libwrap.so.0.7.6
7f0ee2b77000-7f0ee2b78000 r--p 00008000 08:02 43598                      /lib/libwrap.so.0.7.6
7f0ee2b78000-7f0ee2b79000 rw-p 00009000 08:02 43598                      /lib/libwrap.so.0.7.6
7f0ee2b79000-7f0ee2b7a000 rw-p 00000000 00:00 0 
7f0ee2b7a000-7f0ee2b7f000 r-xp 00000000 08:02 44322                      /usr/lib/libXtst.so.6.1.0
7f0ee2b7f000-7f0ee2d7f000 ---p 00005000 08:02 44322                      /usr/lib/libXtst.so.6.1.0
7f0ee2d7f000-7f0ee2d80000 r--p 00005000 08:02 44322                      /usr/lib/libXtst.so.6.1.0
7f0ee2d80000-7f0ee2d81000 rw-p 00006000 08:02 44322                      /usr/lib/libXtst.so.6.1.0
7f0ee2d81000-7f0ee2d89000 r-xp 00000000 08:02 35530                      /usr/lib/libSM.so.6.0.0
7f0ee2d89000-7f0ee2f88000 ---p 00008000 08:02 35530                      /usr/lib/libSM.so.6.0.0
7f0ee2f88000-7f0ee2f89000 r--p 00007000 08:02 35530                      /usr/lib/libSM.so.6.0.0
7f0ee2f89000-7f0ee2f8a000 rw-p 00008000 08:02 35530                      /usr/lib/libSM.so.6.0.0
7f0ee2f8a000-7f0ee2fa1000 r-xp 00000000 08:02 35516                      /usr/lib/libICE.so.6.3.0
7f0ee2fa1000-7f0ee31a0000 ---p 00017000 08:02 35516                      /usr/lib/libICE.so.6.3.0
7f0ee31a0000-7f0ee31a1000 r--p 00016000 08:02 35516                      /usr/lib/libICE.so.6.3.0
7f0ee31a1000-7f0ee31a2000 rw-p 00017000 08:02 35516                      /usr/lib/libICE.so.6.3.0
7f0ee31a2000-7f0ee31a5000 rw-p 00000000 00:00 0 
7f0ee31a5000-7f0ee31ef000 r-xp 00000000 08:02 29281                      /usr/lib/libpulsecommon-0.9.19.so
Open Sonic version 0.1.3
logfile_init()
preferences_init()
ERROR: couldn't open preferences file for reading. file="/home/korn/.opensonic/preferences.dat"
game arguments:
argv[0]: './opensonic'
argv[1]: '--tiny'
timer_init()
video_init()
video_changemode(0,0,0)
video_changemode() ok
audio_init()
Initializing Allegro sound...
Warning: unable to install sound.
ALSA: snd_pcm_hw_params_set_format(pcm_handle, hwparams, format) : Invalid argument

Initializing DUMB...
Initializing LOGG...
audio_init() ok
input_init()
No joystick has been detected.
hash_init()
spritedata_load()...
Reading sprite 'SD_SONIC'
load_sprite() with 26 animations and 75 frames
image_load(/usr/share/games/opensonic/images/player.png)
hash_search('images/player.png', 1) returned NULL
hash_insert('images/player.png', 0x1845f00, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_SONIC'...
hash_insert('SD_SONIC', 0x1843a20, 2)...
Reading sprite 'SD_TAILS'
load_sprite() with 26 animations and 65 frames
image_load(/usr/share/games/opensonic/images/player.png)
load_sprite() ok!
Registering sprite 'SD_TAILS'...
hash_insert('SD_TAILS', 0x18d2420, 2)...
Reading sprite 'SD_KNUCKLES'
load_sprite() with 26 animations and 65 frames
image_load(/usr/share/games/opensonic/images/player.png)
load_sprite() ok!
Registering sprite 'SD_KNUCKLES'...
hash_insert('SD_KNUCKLES', 0x197aac0, 2)...
Reading sprite 'SD_ARROW'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
hash_search('images/items.png', 1) returned NULL
hash_insert('images/items.png', 0x1a228b0, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_ARROW'...
hash_insert('SD_ARROW', 0x1a227e0, 2)...
Reading sprite 'SD_RING'
load_sprite() with 2 animations and 12 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_RING'...
hash_insert('SD_RING', 0x1a22dc0, 2)...
Reading sprite 'SD_BLUERING'
load_sprite() with 2 animations and 12 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_BLUERING'...
hash_insert('SD_BLUERING', 0x1a28710, 2)...
Reading sprite 'SD_BIGRING'
load_sprite() with 1 animations and 10 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_BIGRING'...
hash_insert('SD_BIGRING', 0x1a2c620, 2)...
Reading sprite 'SD_JOAN'
load_sprite() with 1 animations and 3 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
hash_search('images/baddies.png', 1) returned NULL
hash_insert('images/baddies.png', 0x1a90860, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_JOAN'...
hash_insert('SD_JOAN', 0x1a90790, 2)...
Reading sprite 'SD_FLYINGBOY'
load_sprite() with 1 animations and 2 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_FLYINGBOY'...
hash_insert('SD_FLYINGBOY', 0x1a91fa0, 2)...
Reading sprite 'SD_FLYINGEYES'
load_sprite() with 1 animations and 4 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_FLYINGEYES'...
hash_insert('SD_FLYINGEYES', 0x1a92590, 2)...
Reading sprite 'SD_KLEPS'
load_sprite() with 1 animations and 2 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_KLEPS'...
hash_insert('SD_KLEPS', 0x1aa54c0, 2)...
Reading sprite 'SD_GOLDFISH'
load_sprite() with 1 animations and 2 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_GOLDFISH'...
hash_insert('SD_GOLDFISH', 0x1aa7010, 2)...
Reading sprite 'SD_SURPREYES'
load_sprite() with 1 animations and 2 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_SURPREYES'...
hash_insert('SD_SURPREYES', 0x1aaa460, 2)...
Reading sprite 'SD_ORANJECTION'
load_sprite() with 1 animations and 2 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_ORANJECTION'...
hash_insert('SD_ORANJECTION', 0x1aae5d0, 2)...
Reading sprite 'SD_ROBOXER'
load_sprite() with 1 animations and 3 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_ROBOXER'...
hash_insert('SD_ROBOXER', 0x1ab0700, 2)...
Reading sprite 'SD_NAFDER'
load_sprite() with 1 animations and 3 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_NAFDER'...
hash_insert('SD_NAFDER', 0x1ab4820, 2)...
Reading sprite 'SD_CHEF'
load_sprite() with 1 animations and 4 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_CHEF'...
hash_insert('SD_CHEF', 0x1abc150, 2)...
Reading sprite 'SD_SIMPLEBOSS'
load_sprite() with 3 animations and 4 frames
image_load(/usr/share/games/opensonic/images/boss.png)
hash_search('images/boss.png', 1) returned NULL
hash_insert('images/boss.png', 0x1ac4230, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_SIMPLEBOSS'...
hash_insert('SD_SIMPLEBOSS', 0x1ac4150, 2)...
Reading sprite 'SD_MECHASHADOW'
load_sprite() with 5 animations and 6 frames
image_load(/usr/share/games/opensonic/images/boss.png)
load_sprite() ok!
Registering sprite 'SD_MECHASHADOW'...
hash_insert('SD_MECHASHADOW', 0x1bd6be0, 2)...
Reading sprite 'SD_DANGPOWER'
load_sprite() with 1 animations and 2 frames
image_load(/usr/share/games/opensonic/images/boss.png)
load_sprite() ok!
Registering sprite 'SD_DANGPOWER'...
hash_insert('SD_DANGPOWER', 0x1bd7a00, 2)...
Reading sprite 'SD_MAINGUI'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/gui.png)
hash_search('images/gui.png', 1) returned NULL
hash_insert('images/gui.png', 0x1bd8810, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_MAINGUI'...
hash_insert('SD_MAINGUI', 0x1bd8740, 2)...
Reading sprite 'SD_LIFEGUI'
load_sprite() with 3 animations and 3 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_LIFEGUI'...
hash_insert('SD_LIFEGUI', 0x1b71030, 2)...
Reading sprite 'SD_PAUSE'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_PAUSE'...
hash_insert('SD_PAUSE', 0x1b71450, 2)...
Reading sprite 'SD_ITEMBOX'
load_sprite() with 11 animations and 12 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_ITEMBOX'...
hash_insert('SD_ITEMBOX', 0x1b8b580, 2)...
Reading sprite 'SD_ICON'
load_sprite() with 11 animations and 12 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_ICON'...
hash_insert('SD_ICON', 0x1b98280, 2)...
Reading sprite 'SD_GLASSES'
load_sprite() with 6 animations and 5 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_GLASSES'...
hash_insert('SD_GLASSES', 0x1caf360, 2)...
Reading sprite 'SD_SHIELD'
load_sprite() with 1 animations and 5 frames
image_load(/usr/share/games/opensonic/images/ring_shields.png)
hash_search('images/ring_shields.png', 1) returned NULL
hash_insert('images/ring_shields.png', 0x1cb0810, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_SHIELD'...
hash_insert('SD_SHIELD', 0x1cb0730, 2)...
Reading sprite 'SD_INVSTAR'
load_sprite() with 1 animations and 3 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_INVSTAR'...
hash_insert('SD_INVSTAR', 0x1cb1150, 2)...
Reading sprite 'SD_LEVELOP'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_LEVELOP'...
hash_insert('SD_LEVELOP', 0x1cbb940, 2)...
Reading sprite 'SD_LEVELACT'
load_sprite() with 3 animations and 3 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_LEVELACT'...
hash_insert('SD_LEVELACT', 0x1cd9810, 2)...
Reading sprite 'SD_EXPLOSION'
load_sprite() with 2 animations and 7 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_EXPLOSION'...
hash_insert('SD_EXPLOSION', 0x1cde680, 2)...
Reading sprite 'SD_PIXEL'
load_sprite() with 4 animations and 75 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_PIXEL'...
hash_insert('SD_PIXEL', 0x1d07df0, 2)...
Reading sprite 'SD_ANIMAL'
load_sprite() with 24 animations and 36 frames
image_load(/usr/share/games/opensonic/images/animals.png)
hash_search('images/animals.png', 1) returned NULL
hash_insert('images/animals.png', 0x1d0c4e0, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_ANIMAL'...
hash_insert('SD_ANIMAL', 0x1d0c250, 2)...
Reading sprite 'SD_LOOPRIGHT'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPRIGHT'...
hash_insert('SD_LOOPRIGHT', 0x1d1ecb0, 2)...
Reading sprite 'SD_LOOPMIDDLE'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPMIDDLE'...
hash_insert('SD_LOOPMIDDLE', 0x1d22160, 2)...
Reading sprite 'SD_LOOPLEFT'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPLEFT'...
hash_insert('SD_LOOPLEFT', 0x1d22bb0, 2)...
Reading sprite 'SD_LOOPNONE'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPNONE'...
hash_insert('SD_LOOPNONE', 0x1d26080, 2)...
Reading sprite 'SD_LOOPFLOOR'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPFLOOR'...
hash_insert('SD_LOOPFLOOR', 0x1d29550, 2)...
Reading sprite 'SD_LOOPFLOORNONE'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPFLOORNONE'...
hash_insert('SD_LOOPFLOORNONE', 0x1d2a820, 2)...
Reading sprite 'SD_LOOPFLOORTOP'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPFLOORTOP'...
hash_insert('SD_LOOPFLOORTOP', 0x1d2baf0, 2)...
Reading sprite 'SD_YELLOWSPRING'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/spring_pads.png)
hash_search('images/spring_pads.png', 1) returned NULL
hash_insert('images/spring_pads.png', 0x1d2ce70, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_YELLOWSPRING'...
hash_insert('SD_YELLOWSPRING', 0x1d2cda0, 2)...
Reading sprite 'SD_REDSPRING'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/spring_pads.png)
load_sprite() ok!
Registering sprite 'SD_REDSPRING'...
hash_insert('SD_REDSPRING', 0x1d2e240, 2)...
Reading sprite 'SD_RREDSPRING'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/spring_pads.png)
load_sprite() ok!
Registering sprite 'SD_RREDSPRING'...
hash_insert('SD_RREDSPRING', 0x1d30ce0, 2)...
Reading sprite 'SD_LREDSPRING'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/spring_pads.png)
load_sprite() ok!
Registering sprite 'SD_LREDSPRING'...
hash_insert('SD_LREDSPRING', 0x1b5ead0, 2)...
Reading sprite 'SD_SWITCH'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_SWITCH'...
hash_insert('SD_SWITCH', 0x1b60fa0, 2)...
Reading sprite 'SD_DOOR'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_DOOR'...
hash_insert('SD_DOOR', 0x1b62310, 2)...
Reading sprite 'SD_TELEPORTER'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_TELEPORTER'...
hash_insert('SD_TELEPORTER', 0x1b63f40, 2)...
Reading sprite 'SD_CHECKPOINT'
load_sprite() with 3 animations and 7 frames
image_load(/usr/share/games/opensonic/images/checkpoint_orb.png)
hash_search('images/checkpoint_orb.png', 1) returned NULL
hash_insert('images/checkpoint_orb.png', 0x1d3d660, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_CHECKPOINT'...
hash_insert('SD_CHECKPOINT', 0x1d3d570, 2)...
Reading sprite 'SD_BUMPER'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_BUMPER'...
hash_insert('SD_BUMPER', 0x1d3e930, 2)...
Reading sprite 'SD_GOAL'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_GOAL'...
hash_insert('SD_GOAL', 0x1d43290, 2)...
Reading sprite 'SD_ENDSIGN'
load_sprite() with 5 animations and 8 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_ENDSIGN'...
hash_insert('SD_ENDSIGN', 0x1b6bba0, 2)...
Reading sprite 'SD_ENDLEVEL'
load_sprite() with 3 animations and 4 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_ENDLEVEL'...
hash_insert('SD_ENDLEVEL', 0x1b2b660, 2)...
Reading sprite 'SD_RINGBONUS'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_RINGBONUS'...
hash_insert('SD_RINGBONUS', 0x1b2c560, 2)...
Reading sprite 'SD_SECRETBONUS'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_SECRETBONUS'...
hash_insert('SD_SECRETBONUS', 0x1b2c770, 2)...
Reading sprite 'SD_TOTAL'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_TOTAL'...
hash_insert('SD_TOTAL', 0x1b2c980, 2)...
Reading sprite 'SD_DIALOGBOX'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_DIALOGBOX'...
hash_insert('SD_DIALOGBOX', 0x1b2cb90, 2)...
Reading sprite 'SD_TITLESONIC'
load_sprite() with 2 animations and 8 frames
image_load(/usr/share/games/opensonic/images/title.png)
hash_search('images/title.png', 1) returned NULL
hash_insert('images/title.png', 0x1e74f20, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_TITLESONIC'...
hash_insert('SD_TITLESONIC', 0x1e74e20, 2)...
Reading sprite 'SD_TITLESONICBG'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/title.png)
load_sprite() ok!
Registering sprite 'SD_TITLESONICBG'...
hash_insert('SD_TITLESONICBG', 0x1fe0c00, 2)...
Reading sprite 'SD_TITLEGAMENAME'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/title.png)
load_sprite() ok!
Registering sprite 'SD_TITLEGAMENAME'...
hash_insert('SD_TITLEGAMENAME', 0x1fe1200, 2)...
Reading sprite 'SD_TITLEFOOT'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/title.png)
load_sprite() ok!
Registering sprite 'SD_TITLEFOOT'...
hash_insert('SD_TITLEFOOT', 0x1fe1650, 2)...
Reading sprite 'SD_DANGER'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_DANGER'...
hash_insert('SD_DANGER', 0x1fe1950, 2)...
Reading sprite 'SD_SPIKES'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_SPIKES'...
hash_insert('SD_SPIKES', 0x1fe23a0, 2)...
Reading sprite 'SD_DNADOOR'
load_sprite() with 1 animations and 3 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_DNADOOR'...
hash_insert('SD_DNADOOR', 0x1fe3670, 2)...
Reading sprite 'SD_FIREBALL'
load_sprite() with 3 animations and 6 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_FIREBALL'...
hash_insert('SD_FIREBALL', 0x1fe7060, 2)...
Reading sprite 'SD_CONFIRMBOX'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_CONFIRMBOX'...
hash_insert('SD_CONFIRMBOX', 0x1f029e0, 2)...
Reading sprite 'FT_FONT0'
load_sprite() with 1 animations and 52 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT0'...
hash_insert('FT_FONT0', 0x1f0de60, 2)...
Reading sprite 'FT_FONT1'
load_sprite() with 1 animations and 52 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT1'...
hash_insert('FT_FONT1', 0x1f13970, 2)...
Reading sprite 'FT_FONT2'
load_sprite() with 1 animations and 11 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT2'...
hash_insert('FT_FONT2', 0x1f19410, 2)...
Reading sprite 'FT_FONT3'
load_sprite() with 1 animations and 30 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT3'...
hash_insert('FT_FONT3', 0x1f1af40, 2)...
Reading sprite 'FT_FONT4'
load_sprite() with 1 animations and 30 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT4'...
hash_insert('FT_FONT4', 0x1f24b60, 2)...
Reading sprite 'FT_FONT5'
load_sprite() with 1 animations and 30 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT5'...
hash_insert('FT_FONT5', 0x1f310c0, 2)...
Reading sprite 'FT_FONT6'
load_sprite() with 1 animations and 30 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT6'...
hash_insert('FT_FONT6', 0x1f3d620, 2)...
Reading sprite 'FT_FONT7'
load_sprite() with 1 animations and 30 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT7'...
hash_insert('FT_FONT7', 0x1f49b80, 2)...
Reading sprite 'FT_FONT8'
load_sprite() with 1 animations and 224 frames
image_load(/usr/share/games/opensonic/images/font.png)
hash_search('images/font.png', 1) returned NULL
hash_insert('images/font.png', 0x1f56bc0, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'FT_FONT8'...
hash_insert('FT_FONT8', 0x1f56400, 2)...
Reading sprite 'FT_FONT9'
load_sprite() with 1 animations and 112 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT9'...
hash_insert('FT_FONT9', 0x1f75d50, 2)...
spritedata_load() ok!
font_init()
font_init() ok
Initializing the language module
lang_loadfile("languages/english.lng")...
hash_search('LANG_LANGUAGE', 5) returned NULL
hash_insert('LANG_LANGUAGE', 0x1f97a30, 5)...
hash_search('LANG_AUTHOR', 5) returned NULL
hash_insert('LANG_AUTHOR', 0x1f97e40, 5)...
hash_search('LANG_LASTUPDATE', 5) returned NULL
hash_insert('LANG_LASTUPDATE', 0x1f98250, 5)...
hash_search('LANG_COMPATIBILITY', 5) returned NULL
hash_insert('LANG_COMPATIBILITY', 0x1f98660, 5)...
hash_search('COLOR_P1', 5) returned NULL
hash_insert('COLOR_P1', 0x1f98a70, 5)...
hash_search('COLOR_P2', 5) returned NULL
hash_insert('COLOR_P2', 0x1f98e80, 5)...
hash_search('COLOR_P3', 5) returned NULL
hash_insert('COLOR_P3', 0x1f99290, 5)...
hash_search('COLOR_INPUT', 5) returned NULL
hash_insert('COLOR_INPUT', 0x1f996a0, 5)...
hash_search('COLOR_SPECIAL', 5) returned NULL
hash_insert('COLOR_SPECIAL', 0x1f99ab0, 5)...
hash_search('MENU_1PGAME', 5) returned NULL
hash_insert('MENU_1PGAME', 0x1f99ec0, 5)...
hash_search('MENU_TUTORIAL', 5) returned NULL
hash_insert('MENU_TUTORIAL', 0x1f9a2d0, 5)...
hash_search('MENU_CUSTOMQUESTS', 5) returned NULL
hash_insert('MENU_CUSTOMQUESTS', 0x1f9a6e0, 5)...
hash_search('MENU_OPTIONS', 5) returned NULL
hash_insert('MENU_OPTIONS', 0x1f9aaf0, 5)...
hash_search('MENU_EXIT', 5) returned NULL
hash_insert('MENU_EXIT', 0x1f9af00, 5)...
hash_search('OPTIONS_TITLE', 5) returned NULL
hash_insert('OPTIONS_TITLE', 0x1f9b310, 5)...
hash_search('OPTIONS_YES', 5) returned NULL
hash_insert('OPTIONS_YES', 0x1f9b720, 5)...
hash_search('OPTIONS_NO', 5) returned NULL
hash_insert('OPTIONS_NO', 0x1f9bb30, 5)...
hash_search('OPTIONS_GRAPHICS', 5) returned NULL
hash_insert('OPTIONS_GRAPHICS', 0x1f9bf40, 5)...
hash_search('OPTIONS_FULLSCREEN', 5) returned NULL
hash_insert('OPTIONS_FULLSCREEN', 0x1f9c350, 5)...
hash_search('OPTIONS_RESOLUTION', 5) returned NULL
hash_insert('OPTIONS_RESOLUTION', 0x1f9c760, 5)...
hash_search('OPTIONS_RESOLUTION_OPT1', 5) returned NULL
hash_insert('OPTIONS_RESOLUTION_OPT1', 0x1f9cb70, 5)...
hash_search('OPTIONS_RESOLUTION_OPT2', 5) returned NULL
hash_insert('OPTIONS_RESOLUTION_OPT2', 0x1f9cf80, 5)...
hash_search('OPTIONS_RESOLUTION_OPT3', 5) returned NULL
hash_insert('OPTIONS_RESOLUTION_OPT3', 0x1f9d390, 5)...
hash_search('OPTIONS_SMOOTHGFX', 5) returned NULL
hash_insert('OPTIONS_SMOOTHGFX', 0x1f9d7a0, 5)...
hash_search('OPTIONS_FPS', 5) returned NULL
hash_insert('OPTIONS_FPS', 0x1f9dbb0, 5)...
hash_search('OPTIONS_GAME', 5) returned NULL
hash_insert('OPTIONS_GAME', 0x1f9dfc0, 5)...
hash_search('OPTIONS_LANGUAGE', 5) returned NULL
hash_insert('OPTIONS_LANGUAGE', 0x1f9e3d0, 5)...
hash_search('OPTIONS_STAGESELECT', 5) returned NULL
hash_insert('OPTIONS_STAGESELECT', 0x1f9e7e0, 5)...
hash_search('OPTIONS_CREDITS', 5) returned NULL
hash_insert('OPTIONS_CREDITS', 0x1f9ebf0, 5)...
hash_search('OPTIONS_BACK', 5) returned NULL
hash_insert('OPTIONS_BACK', 0x1f9f000, 5)...
hash_search('STAGESELECT_TITLE', 5) returned NULL
hash_insert('STAGESELECT_TITLE', 0x1f9f410, 5)...
hash_search('STAGESELECT_MSG', 5) returned NULL
hash_insert('STAGESELECT_MSG', 0x1f9f820, 5)...
hash_search('STAGESELECT_PAGE', 5) returned NULL
hash_insert('STAGESELECT_PAGE', 0x1f9fc30, 5)...
hash_search('STAGESELECT_ACT', 5) returned NULL
hash_insert('STAGESELECT_ACT', 0x1fa0040, 5)...
hash_search('CREDITS_TITLE', 5) returned NULL
hash_insert('CREDITS_TITLE', 0x1fa0450, 5)...
hash_search('CREDITS_KEY', 5) returned NULL
hash_insert('CREDITS_KEY', 0x1fa0860, 5)...
hash_search('CREDITS_PROGRAMMING', 5) returned NULL
hash_insert('CREDITS_PROGRAMMING', 0x1fa0c70, 5)...
hash_search('CREDITS_ART', 5) returned NULL
hash_insert('CREDITS_ART', 0x1fa1080, 5)...
hash_search('CREDITS_MUSICS', 5) returned NULL
hash_insert('CREDITS_MUSICS', 0x1fa1490, 5)...
hash_search('CREDITS_LEVELDESIGN', 5) returned NULL
hash_insert('CREDITS_LEVELDESIGN', 0x1fa18a0, 5)...
hash_search('CREDITS_COMMUNITY', 5) returned NULL
hash_insert('CREDITS_COMMUNITY', 0x1fa1cb0, 5)...
hash_search('CREDITS_PORTING', 5) returned NULL
hash_insert('CREDITS_PORTING', 0x1fa20c0, 5)...
hash_search('CREDITS_TRANSLATIONS', 5) returned NULL
hash_insert('CREDITS_TRANSLATIONS', 0x1fa24d0, 5)...
hash_search('CREDITS_RETIRED', 5) returned NULL
hash_insert('CREDITS_RETIRED', 0x1fa28e0, 5)...
hash_search('CREDITS_THANKS', 5) returned NULL
hash_insert('CREDITS_THANKS', 0x1fa2cf0, 5)...
hash_search('CREDITS_ALEXANDRE', 5) returned NULL
hash_insert('CREDITS_ALEXANDRE', 0x1fa3100, 5)...
hash_search('CREDITS_DI', 5) returned NULL
hash_insert('CREDITS_DI', 0x1fa3510, 5)...
hash_search('CREDITS_NEOBLAST', 5) returned NULL
hash_insert('CREDITS_NEOBLAST', 0x1fa3920, 5)...
hash_search('CREDITS_LAINZ', 5) returned NULL
hash_insert('CREDITS_LAINZ', 0x1fa3d30, 5)...
hash_search('CREDITS_ARTHURBLOT', 5) returned NULL
hash_insert('CREDITS_ARTHURBLOT', 0x1fa4140, 5)...
hash_search('CREDITS_REIMUND', 5) returned NULL
hash_insert('CREDITS_REIMUND', 0x1fa4550, 5)...
hash_search('CREDITS_SZYMON', 5) returned NULL
hash_insert('CREDITS_SZYMON', 0x1fa4960, 5)...
hash_search('CREDITS_TOMIRES', 5) returned NULL
hash_insert('CREDITS_TOMIRES', 0x1fa4d70, 5)...
hash_search('CREDITS_BASTIAN', 5) returned NULL
hash_insert('CREDITS_BASTIAN', 0x1fa5180, 5)...
hash_search('MENU_CQ_SELECT', 5) returned NULL
hash_insert('MENU_CQ_SELECT', 0x1fa5590, 5)...
hash_search('MENU_CQ_BACK', 5) returned NULL
hash_insert('MENU_CQ_BACK', 0x1fa59a0, 5)...
hash_search('MENU_CQ_INFO', 5) returned NULL
hash_insert('MENU_CQ_INFO', 0x1fa5db0, 5)...
hash_search('MENU_CQ_TUTORIAL', 5) returned NULL
hash_insert('MENU_CQ_TUTORIAL', 0x1fa61c0, 5)...
hash_search('MENU_CQ_SUPERBOSSES', 5) returned NULL
hash_insert('MENU_CQ_SUPERBOSSES', 0x1fa65d0, 5)...
hash_search('QUESTCLEARED_TITLE', 5) returned NULL
hash_insert('QUESTCLEARED_TITLE', 0x1fa69e0, 5)...
hash_search('QUESTCLEARED_TEXT', 5) returned NULL
hash_insert('QUESTCLEARED_TEXT', 0x1fa6df0, 5)...
hash_search('ENDOFDEMO_TITLE', 5) returned NULL
hash_insert('ENDOFDEMO_TITLE', 0x1fa7200, 5)...
hash_search('ENDOFDEMO_TEXT', 5) returned NULL
hash_insert('ENDOFDEMO_TEXT', 0x1fa7610, 5)...
hash_search('BONUSMSG_TITLE', 5) returned NULL
hash_insert('BONUSMSG_TITLE', 0x1fa7a20, 5)...
hash_search('BONUSMSG_TEXT', 5) returned NULL
hash_insert('BONUSMSG_TEXT', 0x1fa7e30, 5)...
hash_search('CBOX_QUIT_QUESTION', 5) returned NULL
hash_insert('CBOX_QUIT_QUESTION', 0x1fa8240, 5)...
hash_search('CBOX_QUIT_OPTION1', 5) returned NULL
hash_insert('CBOX_QUIT_OPTION1', 0x1fa8650, 5)...
hash_search('CBOX_QUIT_OPTION2', 5) returned NULL
hash_insert('CBOX_QUIT_OPTION2', 0x1fa8a60, 5)...
hash_search('INPUT_KEYB_DIRECTIONAL', 5) returned NULL
hash_insert('INPUT_KEYB_DIRECTIONAL', 0x1fa8e70, 5)...
hash_search('INPUT_KEYB_LEFT', 5) returned NULL
hash_insert('INPUT_KEYB_LEFT', 0x1fa9280, 5)...
hash_search('INPUT_KEYB_RIGHT', 5) returned NULL
hash_insert('INPUT_KEYB_RIGHT', 0x1fa9690, 5)...
hash_search('INPUT_KEYB_UP', 5) returned NULL
hash_insert('INPUT_KEYB_UP', 0x1fa9aa0, 5)...
hash_search('INPUT_KEYB_DOWN', 5) returned NULL
hash_insert('INPUT_KEYB_DOWN', 0x1fa9eb0, 5)...
hash_search('INPUT_KEYB_FIRE1', 5) returned NULL
hash_insert('INPUT_KEYB_FIRE1', 0x1faa2c0, 5)...
hash_search('INPUT_KEYB_FIRE2', 5) returned NULL
hash_insert('INPUT_KEYB_FIRE2', 0x1faa6d0, 5)...
hash_search('INPUT_KEYB_FIRE3', 5) returned NULL
hash_insert('INPUT_KEYB_FIRE3', 0x1faaae0, 5)...
hash_search('INPUT_KEYB_FIRE4', 5) returned NULL
hash_insert('INPUT_KEYB_FIRE4', 0x1faaef0, 5)...
hash_search('INPUT_JOY_DIRECTIONAL', 5) returned NULL
hash_insert('INPUT_JOY_DIRECTIONAL', 0x1fab300, 5)...
hash_search('INPUT_JOY_LEFT', 5) returned NULL
hash_insert('INPUT_JOY_LEFT', 0x1fab710, 5)...
hash_search('INPUT_JOY_RIGHT', 5) returned NULL
hash_insert('INPUT_JOY_RIGHT', 0x1fabb20, 5)...
hash_search('INPUT_JOY_UP', 5) returned NULL
hash_insert('INPUT_JOY_UP', 0x1fabf30, 5)...
hash_search('INPUT_JOY_DOWN', 5) returned NULL
hash_insert('INPUT_JOY_DOWN', 0x1fac340, 5)...
hash_search('INPUT_JOY_FIRE1', 5) returned NULL
hash_insert('INPUT_JOY_FIRE1', 0x1fac750, 5)...
hash_search('INPUT_JOY_FIRE2', 5) returned NULL
hash_insert('INPUT_JOY_FIRE2', 0x1facb60, 5)...
hash_search('INPUT_JOY_FIRE3', 5) returned NULL
hash_insert('INPUT_JOY_FIRE3', 0x1facf70, 5)...
hash_search('INPUT_JOY_FIRE4', 5) returned NULL
hash_insert('INPUT_JOY_FIRE4', 0x1fad380, 5)...
hash_search('TUTORIAL_1_TITLE_0', 5) returned NULL
hash_insert('TUTORIAL_1_TITLE_0', 0x1fad790, 5)...
hash_search('TUTORIAL_1_MSG_0', 5) returned NULL
hash_insert('TUTORIAL_1_MSG_0', 0x1fadba0, 5)...
hash_search('TUTORIAL_1_TITLE_1', 5) returned NULL
hash_insert('TUTORIAL_1_TITLE_1', 0x1fadfb0, 5)...
hash_search('TUTORIAL_1_MSG_1', 5) returned NULL
hash_insert('TUTORIAL_1_MSG_1', 0x1fae3c0, 5)...
hash_search('TUTORIAL_1_TITLE_2', 5) returned NULL
hash_insert('TUTORIAL_1_TITLE_2', 0x1fae7d0, 5)...
hash_search('TUTORIAL_1_MSG_2', 5) returned NULL
hash_insert('TUTORIAL_1_MSG_2', 0x1faebe0, 5)...
hash_search('TUTORIAL_1_TITLE_3', 5) returned NULL
hash_insert('TUTORIAL_1_TITLE_3', 0x1faeff0, 5)...
hash_search('TUTORIAL_1_MSG_3', 5) returned NULL
hash_insert('TUTORIAL_1_MSG_3', 0x1faf400, 5)...
hash_search('TUTORIAL_1_TITLE_4', 5) returned NULL
hash_insert('TUTORIAL_1_TITLE_4', 0x1faf810, 5)...
hash_search('TUTORIAL_1_MSG_4', 5) returned NULL
hash_insert('TUTORIAL_1_MSG_4', 0x1fafc20, 5)...
hash_search('TUTORIAL_1_TITLE_5', 5) returned NULL
hash_insert('TUTORIAL_1_TITLE_5', 0x1fb0030, 5)...
hash_search('TUTORIAL_1_MSG_5', 5) returned NULL
hash_insert('TUTORIAL_1_MSG_5', 0x1fb0440, 5)...
hash_search('TUTORIAL_2_TITLE_0', 5) returned NULL
hash_insert('TUTORIAL_2_TITLE_0', 0x1fb0850, 5)...
hash_search('TUTORIAL_2_MSG_0', 5) returned NULL
hash_insert('TUTORIAL_2_MSG_0', 0x1fb0c60, 5)...
hash_search('TUTORIAL_2_TITLE_1', 5) returned NULL
hash_insert('TUTORIAL_2_TITLE_1', 0x1fb1070, 5)...
hash_search('TUTORIAL_2_MSG_1', 5) returned NULL
hash_insert('TUTORIAL_2_MSG_1', 0x1fb1480, 5)...
hash_search('TUTORIAL_2_TITLE_2', 5) returned NULL
hash_insert('TUTORIAL_2_TITLE_2', 0x1fb1890, 5)...
hash_search('TUTORIAL_2_MSG_2', 5) returned NULL
hash_insert('TUTORIAL_2_MSG_2', 0x1fb1ca0, 5)...
hash_search('TUTORIAL_2_TITLE_3', 5) returned NULL
hash_insert('TUTORIAL_2_TITLE_3', 0x1fb20b0, 5)...
hash_search('TUTORIAL_2_MSG_3', 5) returned NULL
hash_insert('TUTORIAL_2_MSG_3', 0x1fb24c0, 5)...
hash_search('BOZ_1_TITLE_0', 5) returned NULL
hash_insert('BOZ_1_TITLE_0', 0x1fb28d0, 5)...
hash_search('BOZ_1_MSG_0', 5) returned NULL
hash_insert('BOZ_1_MSG_0', 0x1fb2ce0, 5)...
hash_search('BOZ_1_TITLE_1', 5) returned NULL
hash_insert('BOZ_1_TITLE_1', 0x1fb30f0, 5)...
hash_search('BOZ_1_MSG_1', 5) returned NULL
hash_insert('BOZ_1_MSG_1', 0x1fb3500, 5)...
hash_search('BOZ_1_TITLE_2', 5) returned NULL
hash_insert('BOZ_1_TITLE_2', 0x1fb3910, 5)...
hash_search('BOZ_1_MSG_2', 5) returned NULL
hash_insert('BOZ_1_MSG_2', 0x1fb3d20, 5)...
hash_search('BOZ_1_TITLE_3', 5) returned NULL
hash_insert('BOZ_1_TITLE_3', 0x1fb4130, 5)...
hash_search('BOZ_1_MSG_3', 5) returned NULL
hash_insert('BOZ_1_MSG_3', 0x1fb4540, 5)...
hash_search('BOZ_1_TITLE_4', 5) returned NULL
hash_insert('BOZ_1_TITLE_4', 0x1fb4950, 5)...
hash_search('BOZ_1_MSG_4', 5) returned NULL
hash_insert('BOZ_1_MSG_4', 0x1fb4d60, 5)...
hash_search('BOZ_1_TITLE_5', 5) returned NULL
hash_insert('BOZ_1_TITLE_5', 0x1fb5170, 5)...
hash_search('BOZ_1_MSG_5', 5) returned NULL
hash_insert('BOZ_1_MSG_5', 0x1fb5580, 5)...
hash_search('BOZ_3_TITLE_0', 5) returned NULL
hash_insert('BOZ_3_TITLE_0', 0x1fb5990, 5)...
hash_search('BOZ_3_MSG_0', 5) returned NULL
hash_insert('BOZ_3_MSG_0', 0x1fb5da0, 5)...
hash_search('EP_1_TITLE_0', 5) returned NULL
hash_insert('EP_1_TITLE_0', 0x1fb61b0, 5)...
hash_search('EP_1_MSG_0', 5) returned NULL
hash_insert('EP_1_MSG_0', 0x1fb65c0, 5)...
hash_search('EP_2_TITLE_0', 5) returned NULL
hash_insert('EP_2_TITLE_0', 0x1fb69d0, 5)...
hash_search('EP_2_MSG_0', 5) returned NULL
hash_insert('EP_2_MSG_0', 0x1fb6de0, 5)...
hash_search('MBOZ_1_TITLE_0', 5) returned NULL
hash_insert('MBOZ_1_TITLE_0', 0x1fb71f0, 5)...
hash_search('MBOZ_1_MSG_0', 5) returned NULL
hash_insert('MBOZ_1_MSG_0', 0x1fb7600, 5)...
hash_search('MEP_2_TITLE_0', 5) returned NULL
hash_insert('MEP_2_TITLE_0', 0x1fb7a10, 5)...
hash_search('MEP_2_MSG_0', 5) returned NULL
hash_insert('MEP_2_MSG_0', 0x1fb7e20, 5)...
hash_search('PROTOTYPE_1_TITLE_0', 5) returned NULL
hash_insert('PROTOTYPE_1_TITLE_0', 0x1fb8230, 5)...
hash_search('PROTOTYPE_1_MSG_0', 5) returned NULL
hash_insert('PROTOTYPE_1_MSG_0', 0x1fb8640, 5)...
hash_search('TESTZONE_1_TITLE_0', 5) returned NULL
hash_insert('TESTZONE_1_TITLE_0', 0x1fb8a50, 5)...
hash_search('TESTZONE_1_MSG_0', 5) returned NULL
hash_insert('TESTZONE_1_MSG_0', 0x1fb8e60, 5)...
lang_loadfile("languages/english.lng") ok!
lang_init() ok!
lang_loadfile("languages/english.lng")...
lang_loadfile("languages/english.lng") ok!
scenestack_push(0x183db50)
image_load(/usr/share/games/opensonic/images/intro.png)
hash_search('images/intro.png', 1) returned NULL
hash_insert('images/intro.png', 0x1f77830, 1)...
image_load() ok
scenestack_push() ok
scenestack_pop()
scenestack_pop() ok
scenestack_push(0x183b7c0)
image_load(/usr/share/games/opensonic/images/sourcecode.png)
hash_search('images/sourcecode.png', 1) returned NULL
hash_insert('images/sourcecode.png', 0x1fe49e0, 1)...
image_load() ok
load_quest_list()
load_quest('/usr/share/games/opensonic/quests/superbosses.qst')
Reading quest "/usr/share/games/opensonic/quests/superbosses.qst"...
image_load(/usr/share/games/opensonic/images/quest_superbosses.png)
hash_search('images/quest_superbosses.png', 1) returned NULL
hash_insert('images/quest_superbosses.png', 0x1fd00c0, 1)...
image_load() ok
ok!
load_quest('/usr/share/games/opensonic/quests/extra.qst')
Reading quest "/usr/share/games/opensonic/quests/extra.qst"...
image_load(/usr/share/games/opensonic/images/quest_extra.png)
hash_search('images/quest_extra.png', 1) returned NULL
hash_insert('images/quest_extra.png', 0x1845430, 1)...
image_load() ok
ok!
load_quest('/usr/share/games/opensonic/quests/tutorial.qst')
Reading quest "/usr/share/games/opensonic/quests/tutorial.qst"...
image_load(/usr/share/games/opensonic/images/quest_tutorial.png)
hash_search('images/quest_tutorial.png', 1) returned NULL
hash_insert('images/quest_tutorial.png', 0x1fc9b80, 1)...
image_load() ok
ok!
3 quests found.
music_load('/usr/share/games/opensonic/musics/title.ogg')
hash_search('musics/title.ogg', 3) returned NULL
hash_insert('musics/title.ogg', 0x1fcff30, 3)...
music_load() ok
scenestack_push() ok
hash_search('samples/choose.wav', 4) returned NULL
sound_load('/usr/share/games/opensonic/samples/choose.wav')
hash_insert('samples/choose.wav', 0x23299b0, 4)...
hash_search('samples/select.wav', 4) returned NULL
sound_load('/usr/share/games/opensonic/samples/select.wav')
hash_insert('samples/select.wav', 0x2128070, 4)...
scenestack_pop()
release_quest_list()
scenestack_pop() ok
scenestack_push(0x1834fa0)
image_load(/usr/share/games/opensonic/images/squarebg.png)
hash_search('images/squarebg.png', 1) returned NULL
hash_insert('images/squarebg.png', 0x23299d0, 1)...
image_load() ok
scenestack_push() ok
music_load('/usr/share/games/opensonic/musics/options.ogg')
hash_search('musics/options.ogg', 3) returned NULL
hash_insert('musics/options.ogg', 0x216a060, 3)...
music_load() ok
video_changemode(1,0,0)
video_changemode() ok

This is the backtrace:

(gdb) bt
#0  0x00007ffff6a554b5 in raise () from /lib/libc.so.6
#1  0x00007ffff6a58f50 in abort () from /lib/libc.so.6
#2  0x00007ffff6a8dc97 in ?? () from /lib/libc.so.6
#3  0x00007ffff6a97dd6 in ?? () from /lib/libc.so.6
#4  0x00007ffff6a9c74c in free () from /lib/libc.so.6
#5  0x00007ffff7aeab07 in destroy_bitmap () from /usr/lib/liballeg.so.4.2
#6  0x000000000043ed81 in image_destroy (img=0xfe6240)
    at /home/korn/opensonic/opensonic-0.1.3/src/video.c:638
#7  0x000000000043fbf5 in video_render ()
    at /home/korn/opensonic/opensonic-0.1.3/src/video.c:426
#8  0x000000000042c10a in main (argc=2, argv=0x7fffffffe2f8)
    at /home/korn/opensonic/opensonic-0.1.3/src/main.c:154

Last edited by bugmenot (2010-03-01 10:43:04)

Offline

#13 2010-03-02 01:15:06

Alexandre
Administrator
From: Brazil
Registered: 2009-01-27
Posts: 3,300
Website

Re: Crash of version 0.1.3 on Ubuntu 9.10

Given that SzynaW's package also crashes in your system, my hypothesis is that you have a defective Allegro library installed in your system. In order to confirm or reject it, please run

opensonic --tiny --low-memory

(run SzynaW's version)
Play the game a little bit. Please send the logfile and the backtrace when/if it crashes.

Offline

#14 2010-03-02 18:12:48

bugmenot
Member
Registered: 2010-02-26
Posts: 13

Re: Crash of version 0.1.3 on Ubuntu 9.10

I played a bit but the game did not crash.

If the library is broken that means opensonic will also be broken in Ubuntu lucid (upcoming in april) because it has the same version:
http://packages.ubuntu.com/lucid/liballegro4.2-dev

Offline

#15 2010-03-05 16:57:10

Alexandre
Administrator
From: Brazil
Registered: 2009-01-27
Posts: 3,300
Website

Re: Crash of version 0.1.3 on Ubuntu 9.10

ok, then the hypothesis is rejected.

It's been a very busy week for me (university), but I'll take a look carefully on the weekend, maybe change the way things are rendered (that's where the problem lies). In the meantime, I need to know if anyone else is having the same problem. Does the game crash for someone else?

Offline

#16 2010-03-06 23:21:57

bugmenot
Member
Registered: 2010-02-26
Posts: 13

Re: Crash of version 0.1.3 on Ubuntu 9.10

Ok, I try to find people who can confirm the crash.

Offline

#17 2010-03-07 00:19:48

eew
Member
From: Argentina
Registered: 2009-10-18
Posts: 51
Website

Re: Crash of version 0.1.3 on Ubuntu 9.10

I respond for say welcome to the forum to you...
PD: Wow... it´s a lot of codes big_smile

Offline

#18 2010-03-07 11:51:28

bugmenot
Member
Registered: 2010-02-26
Posts: 13

Re: Crash of version 0.1.3 on Ubuntu 9.10

Someone else has the same problem on Ubuntu 9.10:
http://pastebin.com/Tr7h0fTR

So it is not related to my system.

Offline

#19 2010-03-07 14:41:44

Alexandre
Administrator
From: Brazil
Registered: 2009-01-27
Posts: 3,300
Website

Re: Crash of version 0.1.3 on Ubuntu 9.10

Delete any opensonics you have on your computer and download revision 90 directly from the subversion repository

svn co https://opensnc.svn.sourceforge.net/svnroot/opensnc/opensonic/trunk opensonic

If it crashes, send the logfile and the backtrace and describe in detail what steps you've taken in the game.

Offline

#20 2010-03-07 16:49:37

bugmenot
Member
Registered: 2010-02-26
Posts: 13

Re: Crash of version 0.1.3 on Ubuntu 9.10

Hm, the svn does not crash.

But there seems to be a problem with the fonts:
http://www.ubuntu-pics.de/bild/45686/sc … 0mTt32.png

When I change the resolution to max the fonts are fine:
http://www.ubuntu-pics.de/bild/45687/sc … ecBR4O.png

Offline

#21 2010-03-07 17:43:20

Alexandre
Administrator
From: Brazil
Registered: 2009-01-27
Posts: 3,300
Website

Re: Crash of version 0.1.3 on Ubuntu 9.10

Please send the logfile anyway (when the game gets strange)

Not just the fonts, but the entire graphics are too weird on your desktop. Never seen that before, but maybe it's related to the previous crash problem.

What's the color depth of your desktop?

[EDIT] Besides sending the logfile and the color depth, please tell us what's the output of the following C program:

#include <stdio.h>

int main()
{
    printf(
        "%d %d %d %d\n",
        sizeof(unsigned char),
        sizeof(unsigned short),
        sizeof(unsigned long),
        sizeof(unsigned long long)
    );

    return 0;
}

[EDIT 2] Also, run this from the command line:

opensonic --color-depth 24

What's the result?

Last edited by Alexandre (2010-03-08 00:51:02)

Offline

#22 2010-03-09 13:05:37

bugmenot
Member
Registered: 2010-02-26
Posts: 13

Re: Crash of version 0.1.3 on Ubuntu 9.10

First the logfile:

Open Sonic version 0.1.3
logfile_init()
preferences_init()
ERROR: couldn't open preferences file for reading. file="/home/korn/.opensonic/preferences.dat"
game arguments:
argv[0]: './opensonic'
timer_init()
video_init()
video_changemode(1,0,0)
creating the backbuffer...
creating the window surface...
creating the auxiliary window surface...
setting up the window...
video_changemode() ok
audio_init()
Initializing Allegro sound...
Warning: unable to install sound.
ALSA: snd_pcm_hw_params_set_format(pcm_handle, hwparams, format) : Invalid argument

Initializing DUMB...
Initializing LOGG...
audio_init() ok
input_init()
No joystick has been detected.
hash_init()
spritedata_load()...
Reading sprite 'SD_SONIC'
load_sprite() with 26 animations and 75 frames
image_load(/usr/share/games/opensonic/images/player.png)
hash_search('images/player.png', 1) returned NULL
hash_insert('images/player.png', 0x1f98890, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_SONIC'...
hash_insert('SD_SONIC', 0x1fa7550, 2)...
Reading sprite 'SD_TAILS'
load_sprite() with 26 animations and 65 frames
image_load(/usr/share/games/opensonic/images/player.png)
load_sprite() ok!
Registering sprite 'SD_TAILS'...
hash_insert('SD_TAILS', 0x2035f50, 2)...
Reading sprite 'SD_KNUCKLES'
load_sprite() with 26 animations and 65 frames
image_load(/usr/share/games/opensonic/images/player.png)
load_sprite() ok!
Registering sprite 'SD_KNUCKLES'...
hash_insert('SD_KNUCKLES', 0x20de5f0, 2)...
Reading sprite 'SD_ARROW'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
hash_search('images/items.png', 1) returned NULL
hash_insert('images/items.png', 0x21863e0, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_ARROW'...
hash_insert('SD_ARROW', 0x2186310, 2)...
Reading sprite 'SD_RING'
load_sprite() with 2 animations and 12 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_RING'...
hash_insert('SD_RING', 0x21868d0, 2)...
Reading sprite 'SD_BLUERING'
load_sprite() with 2 animations and 12 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_BLUERING'...
hash_insert('SD_BLUERING', 0x218c240, 2)...
Reading sprite 'SD_BIGRING'
load_sprite() with 1 animations and 10 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_BIGRING'...
hash_insert('SD_BIGRING', 0x2190150, 2)...
Reading sprite 'SD_JOAN'
load_sprite() with 1 animations and 3 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
hash_search('images/baddies.png', 1) returned NULL
hash_insert('images/baddies.png', 0x21f4390, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_JOAN'...
hash_insert('SD_JOAN', 0x21f42c0, 2)...
Reading sprite 'SD_FLYINGBOY'
load_sprite() with 1 animations and 2 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_FLYINGBOY'...
hash_insert('SD_FLYINGBOY', 0x21f5ab0, 2)...
Reading sprite 'SD_FLYINGEYES'
load_sprite() with 1 animations and 4 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_FLYINGEYES'...
hash_insert('SD_FLYINGEYES', 0x21f60a0, 2)...
Reading sprite 'SD_KLEPS'
load_sprite() with 1 animations and 2 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_KLEPS'...
hash_insert('SD_KLEPS', 0x22dd930, 2)...
Reading sprite 'SD_GOLDFISH'
load_sprite() with 1 animations and 2 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_GOLDFISH'...
hash_insert('SD_GOLDFISH', 0x22df480, 2)...
Reading sprite 'SD_SURPREYES'
load_sprite() with 1 animations and 2 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_SURPREYES'...
hash_insert('SD_SURPREYES', 0x22e28d0, 2)...
Reading sprite 'SD_ORANJECTION'
load_sprite() with 1 animations and 2 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_ORANJECTION'...
hash_insert('SD_ORANJECTION', 0x22e6a40, 2)...
Reading sprite 'SD_ROBOXER'
load_sprite() with 1 animations and 3 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_ROBOXER'...
hash_insert('SD_ROBOXER', 0x22e8b70, 2)...
Reading sprite 'SD_NAFDER'
load_sprite() with 1 animations and 3 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_NAFDER'...
hash_insert('SD_NAFDER', 0x22ecc90, 2)...
Reading sprite 'SD_CHEF'
load_sprite() with 1 animations and 4 frames
image_load(/usr/share/games/opensonic/images/baddies.png)
load_sprite() ok!
Registering sprite 'SD_CHEF'...
hash_insert('SD_CHEF', 0x22f45c0, 2)...
Reading sprite 'SD_SIMPLEBOSS'
load_sprite() with 3 animations and 4 frames
image_load(/usr/share/games/opensonic/images/boss.png)
hash_search('images/boss.png', 1) returned NULL
hash_insert('images/boss.png', 0x22fc6a0, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_SIMPLEBOSS'...
hash_insert('SD_SIMPLEBOSS', 0x22fc5c0, 2)...
Reading sprite 'SD_MECHASHADOW'
load_sprite() with 5 animations and 6 frames
image_load(/usr/share/games/opensonic/images/boss.png)
load_sprite() ok!
Registering sprite 'SD_MECHASHADOW'...
hash_insert('SD_MECHASHADOW', 0x22fd1e0, 2)...
Reading sprite 'SD_DANGPOWER'
load_sprite() with 1 animations and 2 frames
image_load(/usr/share/games/opensonic/images/boss.png)
load_sprite() ok!
Registering sprite 'SD_DANGPOWER'...
hash_insert('SD_DANGPOWER', 0x2318d50, 2)...
Reading sprite 'SD_MAINGUI'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/gui.png)
hash_search('images/gui.png', 1) returned NULL
hash_insert('images/gui.png', 0x231a430, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_MAINGUI'...
hash_insert('SD_MAINGUI', 0x231a360, 2)...
Reading sprite 'SD_LIFEGUI'
load_sprite() with 3 animations and 3 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_LIFEGUI'...
hash_insert('SD_LIFEGUI', 0x231a930, 2)...
Reading sprite 'SD_PAUSE'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_PAUSE'...
hash_insert('SD_PAUSE', 0x231c370, 2)...
Reading sprite 'SD_ITEMBOX'
load_sprite() with 11 animations and 12 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_ITEMBOX'...
hash_insert('SD_ITEMBOX', 0x231aea0, 2)...
Reading sprite 'SD_ICON'
load_sprite() with 11 animations and 12 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_ICON'...
hash_insert('SD_ICON', 0x2331220, 2)...
Reading sprite 'SD_GLASSES'
load_sprite() with 6 animations and 5 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_GLASSES'...
hash_insert('SD_GLASSES', 0x2334c80, 2)...
Reading sprite 'SD_SHIELD'
load_sprite() with 1 animations and 5 frames
image_load(/usr/share/games/opensonic/images/ring_shields.png)
hash_search('images/ring_shields.png', 1) returned NULL
hash_insert('images/ring_shields.png', 0x2336130, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_SHIELD'...
hash_insert('SD_SHIELD', 0x2336050, 2)...
Reading sprite 'SD_INVSTAR'
load_sprite() with 1 animations and 3 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_INVSTAR'...
hash_insert('SD_INVSTAR', 0x236c7e0, 2)...
Reading sprite 'SD_LEVELOP'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_LEVELOP'...
hash_insert('SD_LEVELOP', 0x236d3f0, 2)...
Reading sprite 'SD_LEVELACT'
load_sprite() with 3 animations and 3 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_LEVELACT'...
hash_insert('SD_LEVELACT', 0x23591c0, 2)...
Reading sprite 'SD_EXPLOSION'
load_sprite() with 2 animations and 7 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_EXPLOSION'...
hash_insert('SD_EXPLOSION', 0x235e030, 2)...
Reading sprite 'SD_PIXEL'
load_sprite() with 4 animations and 75 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_PIXEL'...
hash_insert('SD_PIXEL', 0x23c3410, 2)...
Reading sprite 'SD_ANIMAL'
load_sprite() with 24 animations and 36 frames
image_load(/usr/share/games/opensonic/images/animals.png)
hash_search('images/animals.png', 1) returned NULL
hash_insert('images/animals.png', 0x23c7b00, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_ANIMAL'...
hash_insert('SD_ANIMAL', 0x23c7870, 2)...
Reading sprite 'SD_LOOPRIGHT'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPRIGHT'...
hash_insert('SD_LOOPRIGHT', 0x23eb490, 2)...
Reading sprite 'SD_LOOPMIDDLE'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPMIDDLE'...
hash_insert('SD_LOOPMIDDLE', 0x23ee960, 2)...
Reading sprite 'SD_LOOPLEFT'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPLEFT'...
hash_insert('SD_LOOPLEFT', 0x23ef3b0, 2)...
Reading sprite 'SD_LOOPNONE'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPNONE'...
hash_insert('SD_LOOPNONE', 0x23f2880, 2)...
Reading sprite 'SD_LOOPFLOOR'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPFLOOR'...
hash_insert('SD_LOOPFLOOR', 0x23f5d50, 2)...
Reading sprite 'SD_LOOPFLOORNONE'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPFLOORNONE'...
hash_insert('SD_LOOPFLOORNONE', 0x23f7020, 2)...
Reading sprite 'SD_LOOPFLOORTOP'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_LOOPFLOORTOP'...
hash_insert('SD_LOOPFLOORTOP', 0x23f82f0, 2)...
Reading sprite 'SD_YELLOWSPRING'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/spring_pads.png)
hash_search('images/spring_pads.png', 1) returned NULL
hash_insert('images/spring_pads.png', 0x23f9670, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_YELLOWSPRING'...
hash_insert('SD_YELLOWSPRING', 0x23f95a0, 2)...
Reading sprite 'SD_REDSPRING'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/spring_pads.png)
load_sprite() ok!
Registering sprite 'SD_REDSPRING'...
hash_insert('SD_REDSPRING', 0x23fe820, 2)...
Reading sprite 'SD_RREDSPRING'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/spring_pads.png)
load_sprite() ok!
Registering sprite 'SD_RREDSPRING'...
hash_insert('SD_RREDSPRING', 0x23fdcc0, 2)...
Reading sprite 'SD_LREDSPRING'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/spring_pads.png)
load_sprite() ok!
Registering sprite 'SD_LREDSPRING'...
hash_insert('SD_LREDSPRING', 0x23fddb0, 2)...
Reading sprite 'SD_SWITCH'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_SWITCH'...
hash_insert('SD_SWITCH', 0x2425300, 2)...
Reading sprite 'SD_DOOR'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_DOOR'...
hash_insert('SD_DOOR', 0x2426670, 2)...
Reading sprite 'SD_TELEPORTER'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_TELEPORTER'...
hash_insert('SD_TELEPORTER', 0x24282a0, 2)...
Reading sprite 'SD_CHECKPOINT'
load_sprite() with 3 animations and 7 frames
image_load(/usr/share/games/opensonic/images/checkpoint_orb.png)
hash_search('images/checkpoint_orb.png', 1) returned NULL
hash_insert('images/checkpoint_orb.png', 0x2440b40, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_CHECKPOINT'...
hash_insert('SD_CHECKPOINT', 0x2440a50, 2)...
Reading sprite 'SD_BUMPER'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_BUMPER'...
hash_insert('SD_BUMPER', 0x2467270, 2)...
Reading sprite 'SD_GOAL'
load_sprite() with 2 animations and 2 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_GOAL'...
hash_insert('SD_GOAL', 0x24f17f0, 2)...
Reading sprite 'SD_ENDSIGN'
load_sprite() with 5 animations and 8 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_ENDSIGN'...
hash_insert('SD_ENDSIGN', 0x24a0190, 2)...
Reading sprite 'SD_ENDLEVEL'
load_sprite() with 3 animations and 4 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_ENDLEVEL'...
hash_insert('SD_ENDLEVEL', 0x24b47b0, 2)...
Reading sprite 'SD_RINGBONUS'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_RINGBONUS'...
hash_insert('SD_RINGBONUS', 0x24b56b0, 2)...
Reading sprite 'SD_SECRETBONUS'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_SECRETBONUS'...
hash_insert('SD_SECRETBONUS', 0x24b6ab0, 2)...
Reading sprite 'SD_TOTAL'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_TOTAL'...
hash_insert('SD_TOTAL', 0x24b6cc0, 2)...
Reading sprite 'SD_DIALOGBOX'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_DIALOGBOX'...
hash_insert('SD_DIALOGBOX', 0x245c410, 2)...
Reading sprite 'SD_TITLESONIC'
load_sprite() with 2 animations and 8 frames
image_load(/usr/share/games/opensonic/images/title.png)
hash_search('images/title.png', 1) returned NULL
hash_insert('images/title.png', 0x245c960, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'SD_TITLESONIC'...
hash_insert('SD_TITLESONIC', 0x245c860, 2)...
Reading sprite 'SD_TITLESONICBG'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/title.png)
load_sprite() ok!
Registering sprite 'SD_TITLESONICBG'...
hash_insert('SD_TITLESONICBG', 0x245e160, 2)...
Reading sprite 'SD_TITLEGAMENAME'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/title.png)
load_sprite() ok!
Registering sprite 'SD_TITLEGAMENAME'...
hash_insert('SD_TITLEGAMENAME', 0x245fdc0, 2)...
Reading sprite 'SD_TITLEFOOT'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/title.png)
load_sprite() ok!
Registering sprite 'SD_TITLEFOOT'...
hash_insert('SD_TITLEFOOT', 0x24601d0, 2)...
Reading sprite 'SD_DANGER'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_DANGER'...
hash_insert('SD_DANGER', 0x24604d0, 2)...
Reading sprite 'SD_SPIKES'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_SPIKES'...
hash_insert('SD_SPIKES', 0x2460f20, 2)...
Reading sprite 'SD_DNADOOR'
load_sprite() with 1 animations and 3 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_DNADOOR'...
hash_insert('SD_DNADOOR', 0x24621f0, 2)...
Reading sprite 'SD_FIREBALL'
load_sprite() with 3 animations and 6 frames
image_load(/usr/share/games/opensonic/images/items.png)
load_sprite() ok!
Registering sprite 'SD_FIREBALL'...
hash_insert('SD_FIREBALL', 0x2465bc0, 2)...
Reading sprite 'SD_CONFIRMBOX'
load_sprite() with 1 animations and 1 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'SD_CONFIRMBOX'...
hash_insert('SD_CONFIRMBOX', 0x267d740, 2)...
Reading sprite 'FT_FONT0'
load_sprite() with 1 animations and 52 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT0'...
hash_insert('FT_FONT0', 0x2688bc0, 2)...
Reading sprite 'FT_FONT1'
load_sprite() with 1 animations and 52 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT1'...
hash_insert('FT_FONT1', 0x268e6d0, 2)...
Reading sprite 'FT_FONT2'
load_sprite() with 1 animations and 11 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT2'...
hash_insert('FT_FONT2', 0x2694170, 2)...
Reading sprite 'FT_FONT3'
load_sprite() with 1 animations and 30 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT3'...
hash_insert('FT_FONT3', 0x2695ca0, 2)...
Reading sprite 'FT_FONT4'
load_sprite() with 1 animations and 30 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT4'...
hash_insert('FT_FONT4', 0x269f8c0, 2)...
Reading sprite 'FT_FONT5'
load_sprite() with 1 animations and 30 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT5'...
hash_insert('FT_FONT5', 0x26abe20, 2)...
Reading sprite 'FT_FONT6'
load_sprite() with 1 animations and 30 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT6'...
hash_insert('FT_FONT6', 0x26b8380, 2)...
Reading sprite 'FT_FONT7'
load_sprite() with 1 animations and 30 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT7'...
hash_insert('FT_FONT7', 0x26c48e0, 2)...
Reading sprite 'FT_FONT8'
load_sprite() with 1 animations and 224 frames
image_load(/usr/share/games/opensonic/images/font.png)
hash_search('images/font.png', 1) returned NULL
hash_insert('images/font.png', 0x26d1920, 1)...
image_load() ok
load_sprite() ok!
Registering sprite 'FT_FONT8'...
hash_insert('FT_FONT8', 0x26d1160, 2)...
Reading sprite 'FT_FONT9'
load_sprite() with 1 animations and 112 frames
image_load(/usr/share/games/opensonic/images/gui.png)
load_sprite() ok!
Registering sprite 'FT_FONT9'...
hash_insert('FT_FONT9', 0x26f0ab0, 2)...
spritedata_load() ok!
font_init()
font_init() ok
Initializing the language module
lang_loadfile("languages/english.lng")...
hash_search('LANG_LANGUAGE', 5) returned NULL
hash_insert('LANG_LANGUAGE', 0x2712790, 5)...
hash_search('LANG_AUTHOR', 5) returned NULL
hash_insert('LANG_AUTHOR', 0x2712ba0, 5)...
hash_search('LANG_LASTUPDATE', 5) returned NULL
hash_insert('LANG_LASTUPDATE', 0x2712fb0, 5)...
hash_search('LANG_COMPATIBILITY', 5) returned NULL
hash_insert('LANG_COMPATIBILITY', 0x27133c0, 5)...
hash_search('COLOR_P1', 5) returned NULL
hash_insert('COLOR_P1', 0x27137d0, 5)...
hash_search('COLOR_P2', 5) returned NULL
hash_insert('COLOR_P2', 0x2713be0, 5)...
hash_search('COLOR_P3', 5) returned NULL
hash_insert('COLOR_P3', 0x2713ff0, 5)...
hash_search('COLOR_INPUT', 5) returned NULL
hash_insert('COLOR_INPUT', 0x2714400, 5)...
hash_search('COLOR_SPECIAL', 5) returned NULL
hash_insert('COLOR_SPECIAL', 0x2714810, 5)...
hash_search('MENU_1PGAME', 5) returned NULL
hash_insert('MENU_1PGAME', 0x2714c20, 5)...
hash_search('MENU_TUTORIAL', 5) returned NULL
hash_insert('MENU_TUTORIAL', 0x2715030, 5)...
hash_search('MENU_CUSTOMQUESTS', 5) returned NULL
hash_insert('MENU_CUSTOMQUESTS', 0x2715440, 5)...
hash_search('MENU_OPTIONS', 5) returned NULL
hash_insert('MENU_OPTIONS', 0x2715850, 5)...
hash_search('MENU_EXIT', 5) returned NULL
hash_insert('MENU_EXIT', 0x2715c60, 5)...
hash_search('OPTIONS_TITLE', 5) returned NULL
hash_insert('OPTIONS_TITLE', 0x2716070, 5)...
hash_search('OPTIONS_YES', 5) returned NULL
hash_insert('OPTIONS_YES', 0x2716480, 5)...
hash_search('OPTIONS_NO', 5) returned NULL
hash_insert('OPTIONS_NO', 0x2716890, 5)...
hash_search('OPTIONS_GRAPHICS', 5) returned NULL
hash_insert('OPTIONS_GRAPHICS', 0x2716ca0, 5)...
hash_search('OPTIONS_FULLSCREEN', 5) returned NULL
hash_insert('OPTIONS_FULLSCREEN', 0x27170b0, 5)...
hash_search('OPTIONS_RESOLUTION', 5) returned NULL
hash_insert('OPTIONS_RESOLUTION', 0x27174c0, 5)...
hash_search('OPTIONS_RESOLUTION_OPT1', 5) returned NULL
hash_insert('OPTIONS_RESOLUTION_OPT1', 0x27178d0, 5)...
hash_search('OPTIONS_RESOLUTION_OPT2', 5) returned NULL
hash_insert('OPTIONS_RESOLUTION_OPT2', 0x2717ce0, 5)...
hash_search('OPTIONS_RESOLUTION_OPT3', 5) returned NULL
hash_insert('OPTIONS_RESOLUTION_OPT3', 0x27180f0, 5)...
hash_search('OPTIONS_SMOOTHGFX', 5) returned NULL
hash_insert('OPTIONS_SMOOTHGFX', 0x2718500, 5)...
hash_search('OPTIONS_FPS', 5) returned NULL
hash_insert('OPTIONS_FPS', 0x2718910, 5)...
hash_search('OPTIONS_GAME', 5) returned NULL
hash_insert('OPTIONS_GAME', 0x2718d20, 5)...
hash_search('OPTIONS_LANGUAGE', 5) returned NULL
hash_insert('OPTIONS_LANGUAGE', 0x2719130, 5)...
hash_search('OPTIONS_STAGESELECT', 5) returned NULL
hash_insert('OPTIONS_STAGESELECT', 0x2719540, 5)...
hash_search('OPTIONS_CREDITS', 5) returned NULL
hash_insert('OPTIONS_CREDITS', 0x2719950, 5)...
hash_search('OPTIONS_BACK', 5) returned NULL
hash_insert('OPTIONS_BACK', 0x2719d60, 5)...
hash_search('STAGESELECT_TITLE', 5) returned NULL
hash_insert('STAGESELECT_TITLE', 0x271a170, 5)...
hash_search('STAGESELECT_MSG', 5) returned NULL
hash_insert('STAGESELECT_MSG', 0x271a580, 5)...
hash_search('STAGESELECT_PAGE', 5) returned NULL
hash_insert('STAGESELECT_PAGE', 0x271a990, 5)...
hash_search('STAGESELECT_ACT', 5) returned NULL
hash_insert('STAGESELECT_ACT', 0x271ada0, 5)...
hash_search('CREDITS_TITLE', 5) returned NULL
hash_insert('CREDITS_TITLE', 0x271b1b0, 5)...
hash_search('CREDITS_KEY', 5) returned NULL
hash_insert('CREDITS_KEY', 0x271b5c0, 5)...
hash_search('CREDITS_PROGRAMMING', 5) returned NULL
hash_insert('CREDITS_PROGRAMMING', 0x271b9d0, 5)...
hash_search('CREDITS_ART', 5) returned NULL
hash_insert('CREDITS_ART', 0x271bde0, 5)...
hash_search('CREDITS_MUSICS', 5) returned NULL
hash_insert('CREDITS_MUSICS', 0x271c1f0, 5)...
hash_search('CREDITS_LEVELDESIGN', 5) returned NULL
hash_insert('CREDITS_LEVELDESIGN', 0x271c600, 5)...
hash_search('CREDITS_COMMUNITY', 5) returned NULL
hash_insert('CREDITS_COMMUNITY', 0x271ca10, 5)...
hash_search('CREDITS_PORTING', 5) returned NULL
hash_insert('CREDITS_PORTING', 0x271ce20, 5)...
hash_search('CREDITS_TRANSLATIONS', 5) returned NULL
hash_insert('CREDITS_TRANSLATIONS', 0x271d230, 5)...
hash_search('CREDITS_RETIRED', 5) returned NULL
hash_insert('CREDITS_RETIRED', 0x271d640, 5)...
hash_search('CREDITS_THANKS', 5) returned NULL
hash_insert('CREDITS_THANKS', 0x271da50, 5)...
hash_search('CREDITS_ALEXANDRE', 5) returned NULL
hash_insert('CREDITS_ALEXANDRE', 0x271de60, 5)...
hash_search('CREDITS_DI', 5) returned NULL
hash_insert('CREDITS_DI', 0x271e270, 5)...
hash_search('CREDITS_NEOBLAST', 5) returned NULL
hash_insert('CREDITS_NEOBLAST', 0x271e680, 5)...
hash_search('CREDITS_LAINZ', 5) returned NULL
hash_insert('CREDITS_LAINZ', 0x271ea90, 5)...
hash_search('CREDITS_ARTHURBLOT', 5) returned NULL
hash_insert('CREDITS_ARTHURBLOT', 0x271eea0, 5)...
hash_search('CREDITS_REIMUND', 5) returned NULL
hash_insert('CREDITS_REIMUND', 0x271f2b0, 5)...
hash_search('CREDITS_SZYMON', 5) returned NULL
hash_insert('CREDITS_SZYMON', 0x271f6c0, 5)...
hash_search('CREDITS_TOMIRES', 5) returned NULL
hash_insert('CREDITS_TOMIRES', 0x271fad0, 5)...
hash_search('CREDITS_BASTIAN', 5) returned NULL
hash_insert('CREDITS_BASTIAN', 0x271fee0, 5)...
hash_search('CREDITS_XENO', 5) returned NULL
hash_insert('CREDITS_XENO', 0x27202f0, 5)...
hash_search('MENU_CQ_SELECT', 5) returned NULL
hash_insert('MENU_CQ_SELECT', 0x2720700, 5)...
hash_search('MENU_CQ_BACK', 5) returned NULL
hash_insert('MENU_CQ_BACK', 0x2720b10, 5)...
hash_search('MENU_CQ_INFO', 5) returned NULL
hash_insert('MENU_CQ_INFO', 0x2720f20, 5)...
hash_search('MENU_CQ_TUTORIAL', 5) returned NULL
hash_insert('MENU_CQ_TUTORIAL', 0x2721330, 5)...
hash_search('MENU_CQ_SUPERBOSSES', 5) returned NULL
hash_insert('MENU_CQ_SUPERBOSSES', 0x2721740, 5)...
hash_search('QUESTCLEARED_TITLE', 5) returned NULL
hash_insert('QUESTCLEARED_TITLE', 0x2721b50, 5)...
hash_search('QUESTCLEARED_TEXT', 5) returned NULL
hash_insert('QUESTCLEARED_TEXT', 0x2721f60, 5)...
hash_search('ENDOFDEMO_TITLE', 5) returned NULL
hash_insert('ENDOFDEMO_TITLE', 0x2722370, 5)...
hash_search('ENDOFDEMO_TEXT', 5) returned NULL
hash_insert('ENDOFDEMO_TEXT', 0x2722780, 5)...
hash_search('BONUSMSG_TITLE', 5) returned NULL
hash_insert('BONUSMSG_TITLE', 0x2722b90, 5)...
hash_search('BONUSMSG_TEXT', 5) returned NULL
hash_insert('BONUSMSG_TEXT', 0x2722fa0, 5)...
hash_search('CBOX_QUIT_QUESTION', 5) returned NULL
hash_insert('CBOX_QUIT_QUESTION', 0x27233b0, 5)...
hash_search('CBOX_QUIT_OPTION1', 5) returned NULL
hash_insert('CBOX_QUIT_OPTION1', 0x27237c0, 5)...
hash_search('CBOX_QUIT_OPTION2', 5) returned NULL
hash_insert('CBOX_QUIT_OPTION2', 0x2723bd0, 5)...
hash_search('INPUT_KEYB_DIRECTIONAL', 5) returned NULL
hash_insert('INPUT_KEYB_DIRECTIONAL', 0x2723fe0, 5)...
hash_search('INPUT_KEYB_LEFT', 5) returned NULL
hash_insert('INPUT_KEYB_LEFT', 0x27243f0, 5)...
hash_search('INPUT_KEYB_RIGHT', 5) returned NULL
hash_insert('INPUT_KEYB_RIGHT', 0x2724800, 5)...
hash_search('INPUT_KEYB_UP', 5) returned NULL
hash_insert('INPUT_KEYB_UP', 0x2724c10, 5)...
hash_search('INPUT_KEYB_DOWN', 5) returned NULL
hash_insert('INPUT_KEYB_DOWN', 0x2725020, 5)...
hash_search('INPUT_KEYB_FIRE1', 5) returned NULL
hash_insert('INPUT_KEYB_FIRE1', 0x2725430, 5)...
hash_search('INPUT_KEYB_FIRE2', 5) returned NULL
hash_insert('INPUT_KEYB_FIRE2', 0x2725840, 5)...
hash_search('INPUT_KEYB_FIRE3', 5) returned NULL
hash_insert('INPUT_KEYB_FIRE3', 0x2725c50, 5)...
hash_search('INPUT_KEYB_FIRE4', 5) returned NULL
hash_insert('INPUT_KEYB_FIRE4', 0x2726060, 5)...
hash_search('INPUT_JOY_DIRECTIONAL', 5) returned NULL
hash_insert('INPUT_JOY_DIRECTIONAL', 0x2726470, 5)...
hash_search('INPUT_JOY_LEFT', 5) returned NULL
hash_insert('INPUT_JOY_LEFT', 0x2726880, 5)...
hash_search('INPUT_JOY_RIGHT', 5) returned NULL
hash_insert('INPUT_JOY_RIGHT', 0x2726c90, 5)...
hash_search('INPUT_JOY_UP', 5) returned NULL
hash_insert('INPUT_JOY_UP', 0x27270a0, 5)...
hash_search('INPUT_JOY_DOWN', 5) returned NULL
hash_insert('INPUT_JOY_DOWN', 0x27274b0, 5)...
hash_search('INPUT_JOY_FIRE1', 5) returned NULL
hash_insert('INPUT_JOY_FIRE1', 0x27278c0, 5)...
hash_search('INPUT_JOY_FIRE2', 5) returned NULL
hash_insert('INPUT_JOY_FIRE2', 0x2727cd0, 5)...
hash_search('INPUT_JOY_FIRE3', 5) returned NULL
hash_insert('INPUT_JOY_FIRE3', 0x27280e0, 5)...
hash_search('INPUT_JOY_FIRE4', 5) returned NULL
hash_insert('INPUT_JOY_FIRE4', 0x27284f0, 5)...
hash_search('TUTORIAL_1_TITLE_0', 5) returned NULL
hash_insert('TUTORIAL_1_TITLE_0', 0x2728900, 5)...
hash_search('TUTORIAL_1_MSG_0', 5) returned NULL
hash_insert('TUTORIAL_1_MSG_0', 0x2728d10, 5)...
hash_search('TUTORIAL_1_TITLE_1', 5) returned NULL
hash_insert('TUTORIAL_1_TITLE_1', 0x2729120, 5)...
hash_search('TUTORIAL_1_MSG_1', 5) returned NULL
hash_insert('TUTORIAL_1_MSG_1', 0x2729530, 5)...
hash_search('TUTORIAL_1_TITLE_2', 5) returned NULL
hash_insert('TUTORIAL_1_TITLE_2', 0x2729940, 5)...
hash_search('TUTORIAL_1_MSG_2', 5) returned NULL
hash_insert('TUTORIAL_1_MSG_2', 0x2729d50, 5)...
hash_search('TUTORIAL_1_TITLE_3', 5) returned NULL
hash_insert('TUTORIAL_1_TITLE_3', 0x272a160, 5)...
hash_search('TUTORIAL_1_MSG_3', 5) returned NULL
hash_insert('TUTORIAL_1_MSG_3', 0x272a570, 5)...
hash_search('TUTORIAL_1_TITLE_4', 5) returned NULL
hash_insert('TUTORIAL_1_TITLE_4', 0x272a980, 5)...
hash_search('TUTORIAL_1_MSG_4', 5) returned NULL
hash_insert('TUTORIAL_1_MSG_4', 0x272ad90, 5)...
hash_search('TUTORIAL_1_TITLE_5', 5) returned NULL
hash_insert('TUTORIAL_1_TITLE_5', 0x272b1a0, 5)...
hash_search('TUTORIAL_1_MSG_5', 5) returned NULL
hash_insert('TUTORIAL_1_MSG_5', 0x272b5b0, 5)...
hash_search('TUTORIAL_2_TITLE_0', 5) returned NULL
hash_insert('TUTORIAL_2_TITLE_0', 0x272b9c0, 5)...
hash_search('TUTORIAL_2_MSG_0', 5) returned NULL
hash_insert('TUTORIAL_2_MSG_0', 0x272bdd0, 5)...
hash_search('TUTORIAL_2_TITLE_1', 5) returned NULL
hash_insert('TUTORIAL_2_TITLE_1', 0x272c1e0, 5)...
hash_search('TUTORIAL_2_MSG_1', 5) returned NULL
hash_insert('TUTORIAL_2_MSG_1', 0x272c5f0, 5)...
hash_search('TUTORIAL_2_TITLE_2', 5) returned NULL
hash_insert('TUTORIAL_2_TITLE_2', 0x272ca00, 5)...
hash_search('TUTORIAL_2_MSG_2', 5) returned NULL
hash_insert('TUTORIAL_2_MSG_2', 0x272ce10, 5)...
hash_search('TUTORIAL_2_TITLE_3', 5) returned NULL
hash_insert('TUTORIAL_2_TITLE_3', 0x272d220, 5)...
hash_search('TUTORIAL_2_MSG_3', 5) returned NULL
hash_insert('TUTORIAL_2_MSG_3', 0x272d630, 5)...
hash_search('BOZ_1_TITLE_0', 5) returned NULL
hash_insert('BOZ_1_TITLE_0', 0x272da40, 5)...
hash_search('BOZ_1_MSG_0', 5) returned NULL
hash_insert('BOZ_1_MSG_0', 0x272de50, 5)...
hash_search('BOZ_1_TITLE_1', 5) returned NULL
hash_insert('BOZ_1_TITLE_1', 0x272e260, 5)...
hash_search('BOZ_1_MSG_1', 5) returned NULL
hash_insert('BOZ_1_MSG_1', 0x272e670, 5)...
hash_search('BOZ_1_TITLE_2', 5) returned NULL
hash_insert('BOZ_1_TITLE_2', 0x272ea80, 5)...
hash_search('BOZ_1_MSG_2', 5) returned NULL
hash_insert('BOZ_1_MSG_2', 0x272ee90, 5)...
hash_search('BOZ_1_TITLE_3', 5) returned NULL
hash_insert('BOZ_1_TITLE_3', 0x272f2a0, 5)...
hash_search('BOZ_1_MSG_3', 5) returned NULL
hash_insert('BOZ_1_MSG_3', 0x272f6b0, 5)...
hash_search('BOZ_1_TITLE_4', 5) returned NULL
hash_insert('BOZ_1_TITLE_4', 0x272fac0, 5)...
hash_search('BOZ_1_MSG_4', 5) returned NULL
hash_insert('BOZ_1_MSG_4', 0x272fed0, 5)...
hash_search('BOZ_1_TITLE_5', 5) returned NULL
hash_insert('BOZ_1_TITLE_5', 0x27302e0, 5)...
hash_search('BOZ_1_MSG_5', 5) returned NULL
hash_insert('BOZ_1_MSG_5', 0x27306f0, 5)...
hash_search('BOZ_3_TITLE_0', 5) returned NULL
hash_insert('BOZ_3_TITLE_0', 0x2730b00, 5)...
hash_search('BOZ_3_MSG_0', 5) returned NULL
hash_insert('BOZ_3_MSG_0', 0x2730f10, 5)...
hash_search('EP_1_TITLE_0', 5) returned NULL
hash_insert('EP_1_TITLE_0', 0x2731320, 5)...
hash_search('EP_1_MSG_0', 5) returned NULL
hash_insert('EP_1_MSG_0', 0x2731730, 5)...
hash_search('EP_2_TITLE_0', 5) returned NULL
hash_insert('EP_2_TITLE_0', 0x2731b40, 5)...
hash_search('EP_2_MSG_0', 5) returned NULL
hash_insert('EP_2_MSG_0', 0x2731f50, 5)...
hash_search('MBOZ_1_TITLE_0', 5) returned NULL
hash_insert('MBOZ_1_TITLE_0', 0x2732360, 5)...
hash_search('MBOZ_1_MSG_0', 5) returned NULL
hash_insert('MBOZ_1_MSG_0', 0x2732770, 5)...
hash_search('MEP_2_TITLE_0', 5) returned NULL
hash_insert('MEP_2_TITLE_0', 0x2732b80, 5)...
hash_search('MEP_2_MSG_0', 5) returned NULL
hash_insert('MEP_2_MSG_0', 0x2732f90, 5)...
hash_search('PROTOTYPE_1_TITLE_0', 5) returned NULL
hash_insert('PROTOTYPE_1_TITLE_0', 0x27333a0, 5)...
hash_search('PROTOTYPE_1_MSG_0', 5) returned NULL
hash_insert('PROTOTYPE_1_MSG_0', 0x27337b0, 5)...
hash_search('TESTZONE_1_TITLE_0', 5) returned NULL
hash_insert('TESTZONE_1_TITLE_0', 0x2733bc0, 5)...
hash_search('TESTZONE_1_MSG_0', 5) returned NULL
hash_insert('TESTZONE_1_MSG_0', 0x2733fd0, 5)...
lang_loadfile("languages/english.lng") ok!
lang_init() ok!
lang_loadfile("languages/english.lng")...
lang_loadfile("languages/english.lng") ok!
scenestack_push(0x1f97df0)
image_load(/usr/share/games/opensonic/images/intro.png)
hash_search('images/intro.png', 1) returned NULL
hash_insert('images/intro.png', 0x26f2590, 1)...
image_load() ok
scenestack_push() ok
scenestack_pop()
scenestack_pop() ok
scenestack_push(0x1fa9400)
image_load(/usr/share/games/opensonic/images/sourcecode.png)
hash_search('images/sourcecode.png', 1) returned NULL
hash_insert('images/sourcecode.png', 0x23fd960, 1)...
image_load() ok
load_quest_list()
load_quest('/usr/share/games/opensonic/quests/superbosses.qst')
Reading quest "/usr/share/games/opensonic/quests/superbosses.qst"...
image_load(/usr/share/games/opensonic/images/quest_superbosses.png)
hash_search('images/quest_superbosses.png', 1) returned NULL
hash_insert('images/quest_superbosses.png', 0x273c650, 1)...
image_load() ok
ok!
load_quest('/usr/share/games/opensonic/quests/extra.qst')
Reading quest "/usr/share/games/opensonic/quests/extra.qst"...
image_load(/usr/share/games/opensonic/images/quest_extra.png)
hash_search('images/quest_extra.png', 1) returned NULL
hash_insert('images/quest_extra.png', 0x1f98600, 1)...
image_load() ok
ok!
load_quest('/usr/share/games/opensonic/quests/tutorial.qst')
Reading quest "/usr/share/games/opensonic/quests/tutorial.qst"...
image_load(/usr/share/games/opensonic/images/quest_tutorial.png)
hash_search('images/quest_tutorial.png', 1) returned NULL
hash_insert('images/quest_tutorial.png', 0x281f640, 1)...
image_load() ok
ok!
3 quests found.
music_load('/usr/share/games/opensonic/musics/title.ogg')
hash_search('musics/title.ogg', 3) returned NULL
hash_insert('musics/title.ogg', 0x27125e0, 3)...
music_load() ok
scenestack_push() ok
hash_search('samples/choose.wav', 4) returned NULL
sound_load('/usr/share/games/opensonic/samples/choose.wav')
hash_insert('samples/choose.wav', 0x28c7b00, 4)...
hash_search('samples/select.wav', 4) returned NULL
sound_load('/usr/share/games/opensonic/samples/select.wav')
hash_insert('samples/select.wav', 0x2a8d8e0, 4)...
scenestack_pop()
release_quest_list()
scenestack_pop() ok
Releasing the language module
lang_release() ok!
input_release()
video_release()
video_release() ok
hash_release()
audio_release()
audio_release() ok
timer_release()
logfile_release()

My color depth is 24bit.
Running with --color-depth 24 fixes the odd looking graphics and fonts.

And finally the output of the C program:
1 2 8 8

Offline

#23 2010-03-09 15:03:31

Alexandre
Administrator
From: Brazil
Registered: 2009-01-27
Posts: 3,300
Website

Re: Crash of version 0.1.3 on Ubuntu 9.10

okay, update to svn revision 92. It will hopefully work for you.

Offline

#24 2010-03-09 19:13:41

bugmenot
Member
Registered: 2010-02-26
Posts: 13

Re: Crash of version 0.1.3 on Ubuntu 9.10

Indeed. This revision fixes it.

I thank you for taking the time to fix this bug.

I am going to upload the fixed version now to playdeb.net.

Offline

#25 2010-05-11 12:05:40

SurgeChris
Member
From: Surabaya, Indonesia
Registered: 2010-04-25
Posts: 401

Re: Crash of version 0.1.3 on Ubuntu 9.10

That was a huge hell of crashes! neutral


Your teacher asks you. What to answer? Say this:
"I thought the teacher is supposed to know."

Offline

Board footer

Powered by FluxBB  hosted by tuxfamily.org