Avances, Diario de...

Started by SplinterGU, April 17, 2008, 03:00:51 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

BoMbErLiNk

Efectivamente, muere en play_song :

Quote
                                             [ 193] 00000092 00000000          PRIVATE             0

029C7B28
                                             [ 195] 00000084 00000000          PUSH                0

029C7B28 00000000
                                             [ 197] 00000047                   LETNP

                                             [ 198] 000000FF 0000605C          ------              sorr.prg:24668 -> IF (file_exists("mod/"+bucle+".ogg")) ruta2="mod/"+bucle+".ogg"; ELSE IF (file_exists("mod/music/"+bucle+".ogg")) ruta2="mod/music/"+bucle+".ogg"; END END

                                             [ 200] 00000384 00000228 STRING   PUSH                552

00000228
                                             [ 202] 00000097 00000004          GET_PRIVATE         4

00000228 0000002D
                                             [ 204] 000000C4 00000000          INT2STR             0

00000228 00000476
                                             [ 206] 00000325          STRING   ADD

00000477
                                             [ 207] 00000384 000000A7 STRING   PUSH                167

00000477 000000A7
                                             [ 209] 00000325          STRING   ADD

00000478
                                             [ 210] 0000008A 0000011E          SYSCALL             FILE_EXISTS (286)

00000000
                                             [ 212] 0000009C 000000E7          JFALSE              231

                                             [ 231] 000000FF 0000605C          ------              sorr.prg:24668 -> IF (file_exists("mod/"+bucle+".ogg")) ruta2="mod/"+bucle+".ogg"; ELSE IF (file_exists("mod/music/"+bucle+".ogg")) ruta2="mod/music/"+bucle+".ogg"; END END

                                             [ 233] 00000384 0000022A STRING   PUSH                554

0000022A
                                             [ 235] 00000097 00000004          GET_PRIVATE         4

0000022A 0000002D
                                             [ 237] 000000C4 00000000          INT2STR             0

0000022A 00000479
                                             [ 239] 00000325          STRING   ADD

0000047A
                                             [ 240] 00000384 000000A7 STRING   PUSH                167

0000047A 000000A7
                                             [ 242] 00000325          STRING   ADD

0000047B
                                             [ 243] 0000008A 0000011E          SYSCALL             FILE_EXISTS (286)

00000001
                                             [ 245] 0000009C 00000106          JFALSE              262

                                             [ 247] 000000FF 0000605C          ------              sorr.prg:24668 -> IF (file_exists("mod/"+bucle+".ogg")) ruta2="mod/"+bucle+".ogg"; ELSE IF (file_exists("mod/music/"+bucle+".ogg")) ruta2="mod/music/"+bucle+".ogg"; END END

                                             [ 249] 00000392 0000003C STRING   PRIVATE             60

029C7B64
                                             [ 251] 00000384 0000022A STRING   PUSH                554

029C7B64 0000022A
                                             [ 253] 00000097 00000004          GET_PRIVATE         4

029C7B64 0000022A 0000002D
                                             [ 255] 000000C4 00000000          INT2STR             0

029C7B64 0000022A 0000047C
                                             [ 257] 00000325          STRING   ADD

029C7B64 0000047D
                                             [ 258] 00000384 000000A7 STRING   PUSH                167

029C7B64 0000047D 000000A7
                                             [ 260] 00000325          STRING   ADD

029C7B64 0000047E
                                             [ 261] 00000347          STRING   LETNP

                                             [ 262] 0000009B 00000185          JUMP                389

                                             [ 389] 000000FF 00006063          ------              sorr.prg:24675 -> IF (cambia==0)

                                             [ 391] 00000097 0000001C          GET_PRIVATE         28

00000000
                                             [ 393] 00000084 00000000          PUSH                0

00000000 00000000
                                             [ 395] 0000002D                   EQ

00000001
                                             [ 396] 0000009C 00000342          JFALSE              834

                                             [ 398] 000000FF 00006064          ------              sorr.prg:24676 -> stop_song();

                                             [ 400] 0000008C 00000010          SYSPROC             STOP_SONG (16)

                                             [ 402] 000000FF 00006065          ------              sorr.prg:24677 -> IF (jukebox_tipo==1) una_vez=1; jukebox_pos=0; signal(type jukebox,s_kill); signal(type letra_nombre4,s_kill); END

                                             [ 404] 00000097 00000018          GET_PRIVATE         24

00000000
                                             [ 406] 00000084 00000001          PUSH                1

00000000 00000001
                                             [ 408] 0000002D                   EQ

00000000
                                             [ 409] 0000009C 000001B9          JFALSE              441

                                             [ 441] 000000FF 00006066          ------              sorr.prg:24678 -> IF (jukebox_tipo==2) una_vez=1; jukebox_pos=1; signal(type jukebox,s_kill); END

                                             [ 443] 00000097 00000018          GET_PRIVATE         24

00000000
                                             [ 445] 00000084 00000002          PUSH                2

00000000 00000002
                                             [ 447] 0000002D                   EQ

00000000
                                             [ 448] 0000009C 000001D8          JFALSE              472

                                             [ 472] 000000FF 00006068          ------              sorr.prg:24680 -> IF (trozo_cancion>0) unload_song(trozo_cancion); trozo_cancion=0; END

                                             [ 474] 00000099 00008198          GET_GLOBAL          33176

01057D80
                                             [ 476] 00000084 00000000          PUSH                0

01057D80 00000000
                                             [ 478] 0000002F                   GT

00000001
                                             [ 479] 0000009C 000001EE          JFALSE              494

                                             [ 481] 000000FF 00006068          ------              sorr.prg:24680 -> IF (trozo_cancion>0) unload_song(trozo_cancion); trozo_cancion=0; END

                                             [ 483] 00000099 00008198          GET_GLOBAL          33176

01057D80
                                             [ 485] 0000008C 0000000F          SYSPROC             UNLOAD_SONG (15)

                                             [ 487] 000000FF 00006068          ------              sorr.prg:24680 -> IF (trozo_cancion>0) unload_song(trozo_cancion); trozo_cancion=0; END

                                             [ 489] 00000094 00008198          GLOBAL              33176

00A22318
                                             [ 491] 00000084 00000000          PUSH                0

00A22318 00000000
                                             [ 493] 00000047                   LETNP

                                             [ 494] 000000FF 00006069          ------              sorr.prg:24681 -> IF (cancion_cargada>0) unload_song(cancion_cargada); cancion_cargada=0; END

                                             [ 496] 00000099 00008194          GET_GLOBAL          33172

00C44B20
                                             [ 498] 00000084 00000000          PUSH                0

00C44B20 00000000
                                             [ 500] 0000002F                   GT

00000001
                                             [ 501] 0000009C 00000204          JFALSE              516

                                             [ 503] 000000FF 00006069          ------              sorr.prg:24681 -> IF (cancion_cargada>0) unload_song(cancion_cargada); cancion_cargada=0; END

                                             [ 505] 00000099 00008194          GET_GLOBAL          33172

00C44B20
                                             [ 507] 0000008C 0000000F          SYSPROC             UNLOAD_SONG (15)

                                             [ 509] 000000FF 00006069          ------              sorr.prg:24681 -> IF (cancion_cargada>0) unload_song(cancion_cargada); cancion_cargada=0; END

                                             [ 511] 00000094 00008194          GLOBAL              33172

00A22314
                                             [ 513] 00000084 00000000          PUSH                0

00A22314 00000000
                                             [ 515] 00000047                   LETNP

                                             [ 516] 000000FF 0000606B          ------              sorr.prg:24683 -> IF (bucle==80) ruta2="mod/games/"+ruta_sormaker+"/script/"+nombre_fase+".ogg"; END

                                             [ 518] 00000097 00000004          GET_PRIVATE         4

0000002D
                                             [ 520] 00000084 00000050          PUSH                80

0000002D 00000050
                                             [ 522] 0000002D                   EQ

00000000
                                             [ 523] 0000009C 00000220          JFALSE              544

                                             [ 544] 000000FF 0000606E          ------              sorr.prg:24686 -> IF (modo_sormaker==0)

                                             [ 546] 00000099 00006DF0          GET_GLOBAL          28144

00000000
                                             [ 548] 00000084 00000000          PUSH                0

00000000 00000000
                                             [ 550] 0000002D                   EQ

00000001
                                             [ 551] 0000009C 000002C1          JFALSE              705

                                             [ 553] 000000FF 0000606F          ------              sorr.prg:24687 -> IF (bucle==43 AND inicio==0)

                                             [ 555] 00000097 00000004          GET_PRIVATE         4

0000002D
                                             [ 557] 00000084 0000002B          PUSH                43

0000002D 0000002B
                                             [ 559] 0000002D                   EQ

00000000
                                             [ 560] 0000009E 00000238          JTFALSE             568

00000000
                                             [ 568] 0000009C 00000269          JFALSE              617

                                             [ 617] 000000FF 00006073          ------              sorr.prg:24691 -> IF (bucle==11 OR bucle==26 OR bucle==32 OR bucle==49 OR bucle==65 OR bucle==66) repetir=0; musica_LOOP=2; END

                                             [ 619] 00000097 00000004          GET_PRIVATE         4

0000002D
                                             [ 621] 00000084 0000000B          PUSH                11

0000002D 0000000B
                                             [ 623] 0000002D                   EQ

00000000
                                             [ 624] 0000009E 00000277          JTFALSE             631

00000000
                                             [ 631] 00000097 00000004          GET_PRIVATE         4

00000000 0000002D
                                             [ 633] 00000084 0000001A          PUSH                26

00000000 0000002D 0000001A
                                             [ 635] 0000002D                   EQ

00000000 00000000
                                             [ 636] 0000002B                   OR

00000000
                                             [ 637] 0000009E 00000284          JTFALSE             644

00000000
                                             [ 644] 00000097 00000004          GET_PRIVATE         4

00000000 0000002D
                                             [ 646] 00000084 00000020          PUSH                32

00000000 0000002D 00000020
                                             [ 648] 0000002D                   EQ

00000000 00000000
                                             [ 649] 0000002B                   OR

00000000
                                             [ 650] 0000009E 00000291          JTFALSE             657

00000000
                                             [ 657] 00000097 00000004          GET_PRIVATE         4

00000000 0000002D
                                             [ 659] 00000084 00000031          PUSH                49

00000000 0000002D 00000031
                                             [ 661] 0000002D                   EQ

00000000 00000000
                                             [ 662] 0000002B                   OR

00000000
                                             [ 663] 0000009E 0000029E          JTFALSE             670

00000000
                                             [ 670] 00000097 00000004          GET_PRIVATE         4

00000000 0000002D
                                             [ 672] 00000084 00000041          PUSH                65

00000000 0000002D 00000041
                                             [ 674] 0000002D                   EQ

00000000 00000000
                                             [ 675] 0000002B                   OR

00000000
                                             [ 676] 0000009E 000002AB          JTFALSE             683

00000000
                                             [ 683] 00000097 00000004          GET_PRIVATE         4

00000000 0000002D
                                             [ 685] 00000084 00000042          PUSH                66

00000000 0000002D 00000042
                                             [ 687] 0000002D                   EQ

00000000 00000000
                                             [ 688] 0000002B                   OR

00000000
                                             [ 689] 0000009C 000002C1          JFALSE              705

                                             [ 705] 000000FF 00006076          ------              sorr.prg:24694 -> IF (bucle==65 OR bucle==66) repetir=0; musica_LOOP=2; END

                                             [ 707] 00000097 00000004          GET_PRIVATE         4

0000002D
                                             [ 709] 00000084 00000041          PUSH                65

0000002D 00000041
                                             [ 711] 0000002D                   EQ

00000000
                                             [ 712] 0000009E 000002CF          JTFALSE             719

00000000
                                             [ 719] 00000097 00000004          GET_PRIVATE         4

00000000 0000002D
                                             [ 721] 00000084 00000042          PUSH                66

00000000 0000002D 00000042
                                             [ 723] 0000002D                   EQ

00000000 00000000
                                             [ 724] 0000002B                   OR

00000000
                                             [ 725] 0000009C 000002E5          JFALSE              741

                                             [ 741] 000000FF 00006078          ------              sorr.prg:24696 -> IF (bucle==80) repetir=0; musica_loop=2; END

                                             [ 743] 00000097 00000004          GET_PRIVATE         4

0000002D
                                             [ 745] 00000084 00000050          PUSH                80

0000002D 00000050
                                             [ 747] 0000002D                   EQ

00000000
                                             [ 748] 0000009C 000002FC          JFALSE              764

                                             [ 764] 000000FF 0000607B          ------              sorr.prg:24699 -> IF (inicio>0)

                                             [ 766] 00000097 00000000          GET_PRIVATE         0

00000000
                                             [ 768] 00000084 00000000          PUSH                0

00000000 00000000
                                             [ 770] 0000002F                   GT

00000000
                                             [ 771] 0000009C 00000321          JFALSE              801

                                             [ 801] 000000FF 00006080          ------              sorr.prg:24704 -> IF (bucle>0)

                                             [ 803] 00000097 00000004          GET_PRIVATE         4

0000002D
                                             [ 805] 00000084 00000000          PUSH                0

0000002D 00000000
                                             [ 807] 0000002F                   GT

00000001
                                             [ 808] 0000009C 00000342          JFALSE              834

                                             [ 810] 000000FF 00006081          ------              sorr.prg:24705 -> cancion_cargada = load_song(ruta2);

                                             [ 812] 00000094 00008194          GLOBAL              33172

00A22314
                                             [ 814] 00000397 0000003C STRING   GET_PRIVATE         60

00A22314 0000047E
                                             [ 816] 0000008A 0000000D          SYSCALL             LOAD_SONG (13)

00A22314 00C44B20
                                             [ 818] 00000047                   LETNP

                                             [ 819] 000000FF 00006082          ------              sorr.prg:24706 -> play_song(cancion_cargada,0);

                                             [ 821] 00000099 00008194          GET_GLOBAL          33172

00C44B20
                                             [ 823] 00000084 00000000          PUSH                0

00C44B20 00000000
                                             [ 825] 0000008C 0000000E          SYSPROC             PLAY_SONG (14)

BoMbErLiNk

#1471
Te pongo el código fuente en el sitio concreto que apunta el debug :

QuotePROCESS melodia(inicio,bucle,fade_cancion,cambia);

PRIVATE
volumen;
repetir=-1;
STRING ruta1;
STRING ruta2;

BEGIN
priority=130;
set_song_volume(vol);
tiempo_baja_volumen=vol;

// SI QUIERE MANTENER CANCION PERO NO HAY
IF (cambia!=0)
       IF (is_playing_song()<1 AND guarda_cancion!=bucle) cambia=0; END
       guarda_cancion=bucle;
END

// REMAPEA RUTAS
musica_LOOP=1;
IF (fade_cancion==1) volumen=vol; END
IF (file_exists("mod/"+inicio+"a.ogg")) ruta1="mod/"+inicio+"a.ogg"; ELSE inicio=0; END
IF (file_exists("mod/"+bucle+".ogg")) ruta2="mod/"+bucle+".ogg"; ELSE bucle=0; END

// CARGA RECURSOS
IF (cambia==0)
       stop_song();
       IF (trozo_cancion>0) unload_song(trozo_cancion); trozo_cancion=0; END
       IF (cancion_cargada>0) unload_song(cancion_cargada); cancion_cargada=0; END


       IF (inicio>0)
               trozo_cancion = load_song(ruta1);
               cancion_cargada = load_song(ruta2); //Wii, no cargar 2
               play_song(trozo_cancion,0);
               ELSE
               IF (bucle>0)
                       cancion_cargada = load_song(ruta2);
                       play_song(cancion_cargada,0); // AQUI MUERE
                       musica_LOOP=0;
               END
       END

END

IF (inicio==0 AND bucle==0) musica_LOOP=-1; END

LOOP

       // LOOP DE CANCION CON INTRO
       IF (musica_LOOP==1 OR musica_LOOP==2)
          IF (is_playing_song()<1)
                     IF (musica_LOOP==2) musica_LOOP=0; END
            stop_song();
            IF (trozo_cancion>0) unload_song(trozo_cancion); trozo_cancion=0; END
                     play_song(cancion_cargada,0);
          END
       END

       // LOOP DE CANCION SIN INTRO
       IF (musica_LOOP==0 AND repetir==-1)
          IF (is_playing_song()<1 AND cancion_cargada>0)
                  stop_song();
                      play_song(cancion_cargada,0);
          END
       END

       FRAME;
       END
END

FreeYourMind

Mis ojos han brillado por un momento!!!  ;D ;D

SplinterGU

estamos fritos, si cae ahi, porque si cae ahi, luego de haber sonado varios songs es algun problema de la mixer...

para estar seguros, baja nuevamente los ultimos fuentes, compila y prueba nuevamente, porque he corregido una situacion de error que no se liberaba un handle, y por ende puede que a la larga de problemas.

asi descartamos que no sea eso.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

BoMbErLiNk

He actualizado, sigue petando.
Has pensado en compilar con otra sdl_mixer en lugar de la 1.2.8 ?

SplinterGU

por favor, pasame una version para poder ejecutarla en linux... a ver si es problema de la version de SDL o de windows...

pasamelo por mail, como siempre.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

BoMbErLiNk

O pasate por el msn si puedes, he conseguido aislarlo bastante del código y será más rápido.  :)

DCelso

umn,oleee, si se soluciona ese problema puede que de rebote se solucionen mis problemas de cuelgues de sonido de la psp.
Recompilaré por si la última versión de svn me quita algún problema en psp :D.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

pues no, es un tema de dlls vorbisfile, vorbis-0 y ogg.

puse las que tengo en mi entorno y funciona.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

solucionado el problema de la mixer en windows...

maldita version oficial, y sus dlls vorbis, vorbisfile y ogg...

ya salio andando, usando la mixer oficial (porque la mia le falta compilar con soporte de varios formatos de sonidos y si empiezo a probar 1 por 1, no termino mas) y mis vorbis/ogg... y sale de maravillas.

ni bien me confirmen que no hay ningun problema, subo las nuevas versiones de todas las plataformas oficialmente soportadas (menos dingux, porque aun esta verde por el tema de la mixer)
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

Quote from: SplinterGU on March 25, 2011, 04:11:33 AM
solucionado el problema de la mixer en windows...

maldita version oficial, y sus dlls vorbis, vorbisfile y ogg...

ya salio andando, usando la mixer oficial (porque la mia le falta compilar con soporte de varios formatos de sonidos y si empiezo a probar 1 por 1, no termino mas) y mis vorbis/ogg... y sale de maravillas.

ni bien me confirmen que no hay ningun problema, subo las nuevas versiones de todas las plataformas oficialmente soportadas (menos dingux, porque aun esta verde por el tema de la mixer)
No entendí, ¿tienes tu propia mixer de que?
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

no, la SDL_mixer oficial, pero las dlls que usa la SDL_mixer, compiladas propias, las oficiales crashean.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

BoMbErLiNk

En Windows me va bien esta versión Splinter, tengo que hacerle aún más rodaje, entre hoy y mañana, pero en principio el test aquel no lo cruje con la sdl_mixer que tu añades o la mia, creo que tu ya probaste el test de estres y de la mochila también.

En la Wiz me es imposible hacer una partida completa, creo que la memoria RAM disponible varia de una partida a otra o que no esta descargando bien los recursos, a la maquina le duele mucho el cambio de OGGs, se congela, se pone a 3fps de forma temporal, hace cosas raras con el sonido, si desactivo la música me dura más desde luego, supongo que todo esto es en parte porque el juego entra muy justo en Wiz (no uso la música dentro de la mochila), pero me extraña que una misma fase en una sesión la cargue 4 veces y en otra solo pueda 2, haciendo el mismo recorrido, asegurandome de que la gestión de memoria es correcta, por lo menos en Windows.

SplinterGU

supongo que sera cuestion de memoria... pone en algun lugar visible el retorno de la funcion mem_free()... a ver que pasa.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

BoMbErLiNk

Probare a jugar una partida completa sin música en Wiz, luego te cuento.

Has hecho cambios en set_fps desde agosto 2010 ?

Me comentan que hay caidas de rendimiento en esta versión concreta del lenguaje y en la que tienes subida en la web, cosa que no pasaba en la de agosto 2010, son caidas temporales y que no tienen que ver con la carga de instrucciones / procesos en pantalla, simplemente pasan de vez en cuando, durante varios segundos y se marchan, especialmente despues de cambios en set_fps a lo largo de la ejecución, como puede ser ponerlo a 24fps y luego a 60fps.