ARCADE FOREVER

[Proyecto] advmenuPLUS, Modificando el codigo fuente del AdvanceMenu (II)

« Older   Newer »
  Share  
pakoman2
view post Posted on 3/4/2015, 18:35     +1   -1




QUOTE (daesdae @ 3/4/2015, 18:12) 
pakoman2
Lo de que aparezca el nombre del sistema en texto, te refieres al "modo custom" (proximente "modo layout") ¿no?.
Si es así, paso, le deje así feote para que la gente al probarlo se dijese ¿y esto, que cojones es? jejeje
En cuanto le de caña a los layouts, ese modo no aparecerá si al emulador no tiene asignado un layout. ;)

El lst cojonudo, lo unico, que en vez de 'game' será 'emu' o 'emulator'

Me refiero a cualquier modo normal, no uso custom, tal vez se pueda y soy yo que no se hacerlo. Pero lo suyo ahora que existe el "menu system" sería que nos diga en qué sistema estamos. Que lo diga en el "topbar" o el "bottombar", lo mismo que dice el nº de clones, la resolucion, el año, el fabricante...

Gracias, el lst ahora me funciona bien como está, ya lo adaptaré a futuras versiones.

Y lo del menu system de lujo, justo ayer se lo comenté a un amigo y que lo estabas programando, ¡gracias!

Edited by pakoman2 - 3/4/2015, 19:54
 
Top
view post Posted on 3/4/2015, 20:05     +1   -1
Avatar

V.I.P.

Group:
Usuarios AFFA
Posts:
526
Reputation:
+10

Status:


Un pequeño log.

-Al pasar de emu con F6/7 mame al no tener la ruta de roms bien desaparece.

-Seguimos teniendo los problemas de los mensajes cuando cambias de lista/emu si no tienes snaps, el mensaje sale por debajo.

-Al cambiar de modo de vista, si no tenemos snaps, solo deja ir al modo Text y Custom.

-Los undefined se iban a cambiar por All/Todos dijimos, y hablamos tambien de quitar las listas y dejar solo Favoritos, pero esa parte no recuerdo en que quedo.

-Al cambiar de lista/emu/filtro quedamos en que se guardaria el ultimo juego de cada categoria, para pasar a ese y no ir al primer juego.

-Como han comentado, cuando pasamos de emu/lista deberiamos de mostrar un mensaje diciendo donde estamos "de eso me encargo yo si quieres". Esto ya lo tengo mañana te paso diff.

-Genera sin problemas el dir/ficheros de favoritos "al final me va a gustar tener las cosas por separado....."

El formato de los fav por mi esta bien, simple y claro.

Mi diff mmm... me tengo que poner al dia y buscarlos, creo que solucione algunas cosas mas de las que tienes como el mensaje de security_exit que se quedaba por en medio.

Me podeis poner al dia con los Lst y los Xml de hyper....

Saludos.

Edited by VeS - 3/4/2015, 23:24
 
Top
daesdae
view post Posted on 4/4/2015, 06:18     +1   -1




Holaaaaaaaaa

* Lo del sistema/emulador que aparezca en la barra de informacion superior, está de original.
Si no se muestra es porque toda la info no cabe en la barra y no muestra ciertos datos.
Si probais con un tamaño de letra pequeño (ui_fontsize 42), aparecera tras el nombre del juego con el formato: Emulador/rom
OK, el problema es que la barra superior suele estar sobrecargada (pretende mostrar mucha informacion) mientras que la inferior apenas cuatro cosas.
¿Pasamos cierta info de la superior a la inferior?

* VeS, gracias por recordar temas.
Temas en los que estoy en contra de lo que sugieres:
QUOTE
-Al pasar de emu con F6/7 mame al no tener la ruta de roms bien desaparece.

te refieres a que los emuladores sin roms o con la ruta a estos mal, son ignorados y no se muestran??? si es así, a mi me parece buena politica de comportamiento.
Si configuras mal la ruta o no tiene roms, para que carajo quieres que se muestre el emulador??? pregunto!!! :lol:

QUOTE
-Al cambiar de modo de vista, si no tenemos snaps, solo deja ir al modo Text y Custom.

Lo mismo que lo anterior, exceptuando el "modo custom" que si no tiene un layout asignado no deberia aparecer,
si a un emulador no se le ha configurado con una ruta de imagenes, para que quieres mostrar modos que estan basado en mostrar imagenes?
ejemplo: si no pones una ruta a iconos el "modo iconos" ese modo no aparece. Segun tu politica deberia aparecer.

Temas en los que estoy totalmente de acuerdo:
QUOTE
-Seguimos teniendo los problemas de los mensajes cuando cambias de lista/emu si no tienes snaps, el mensaje sale por debajo.

esto juraria que ya lo arregle, pero estos dias he visto que no.
RE-APUNTADO

QUOTE
-Al cambiar de lista/emu/filtro quedamos en que se guardaria el ultimo juego de cada categoria, para pasar a ese y no ir al primer juego.

Yes, y eso de que salta al primero, en el mejor de los casos, porque en muchos casos saltaba al ultimo (por ejempo, cuando el juego seleccionado, por poner era el 100 y al filtrar quedaba una lista con menos juegos de 100) Pero eso ya está solucionado en la ultima version, me refiero a que se seleccione siempre el primero (una medida momentanea hasta que encuentre ganas y tiempo para implementarlo).
RE-APUNTADO

Temas varios:
QUOTE
-Los undefined se iban a cambiar por All/Todos dijimos, y hablamos tambien de quitar las listas y dejar solo Favoritos, pero esa parte no recuerdo en que quedo.

¿los undefined? eso es de type (catalogar por tipo de juego), los undefined son los juegos que no se ha definido su tipo. ¿que pasa con esos?
¿quitar listas? ¿que listas? las unicas listas que hay son las de favoritos, lo otro es catalogar por tipo o grupo (ahora inexistentes). mi no entender!!!
Pues peor es lo mio, que no recuerdo nada de nada de esto. :huh:

QUOTE
-Genera sin problemas el dir/ficheros de favoritos "al final me va a gustar tener las cosas por separado....."
El formato de los fav por mi esta bien, simple y claro.

Las listas de favoritos, yo tenia claro que no podian ir donde ivan, ese campo estaba reservado para los "grupos" (que ya no existen) y como ya las listas de favoritos no tiene nada que ver con los grupos (ni por codigo, ni en la practica) voy a ponerlo otra vez.
APUNTO: volver a poner los grupos.
Luego cada cual que tome sus medidas, osea que si alguien quiere usar ListasFavoritos+Emuladores+Filtros+CatalogarPorGrupo+CatalogarPorTypo , allá él con su pelicula y la movida que puede llegar a formar.
Yo no soy de usar Catalogar por Grupos o Tipos de juego -> Nunca me ha gustado
Pero no soy partidario de cambiar cosas que lleva el original.
Vamos, que porque yo no use los grupos no tengo porque quitarlos.
he ahí mi argumentacion!!!

Por cierto, el formato de los fav, llegé a pensar/probar todos los que se me ocurrieron y sin duda este es el que mas me gustó, aunque por la forma en que llegan los datos, fue el formato mas duro de programar.

QUOTE
-Como han comentado, cuando pasamos de emu/lista deberiamos de mostrar un mensaje diciendo donde estamos "de eso me encargo yo si quieres". Esto ya lo tengo mañana te paso diff.

Lo del emulador ya he comentado al principio, y las listas de favoritos tambien está.
Mira, coñe, pues para no sobrecargar la barra superior, podriamos pasar lo del emulador y la lista fav a la barra inferior. ¿No?, venga VeS que te veo animado...

QUOTE
Me podeis poner al dia con los Lst y los Xml de hyper....

los lst o xml de hyper son como los xml del mame, archivos que relacionan el rom de un emulador con informacion.
Por ejemplo, el campo Description que muestra el nombre del juego (no del rom) o el fabricante ...
En advmenu los emuladores generic o los que no usan por ellos mismos un xml, el advmenu usa su propio formato -> los emulador.lst
CODE
game (name "nombre_rom" description "nombre_juego" year "año_juego" manufacturer "fabricante_juego" cloneof "nombre_rom_padre")

OK
La cosa es que al igual que el advmenu lee el xml, se podria hacer que los emuladores genericos y otros, tambien lean los xml en vez de lst.
Bueno, en realidad la cosa seria que intensase leer el xml y si no le encuentra prueba con el lst.
Esto para aprovechar, que por lo visto, hyperlechesenvinagre tiene esos xml ya preparados.

La cuestion es la siguiente:
1 - Los que sabeis de esto, por favor, enlace de descarga de los xml del hyper...
2 - ¿todos los xml del hyper tienen el mismo formato? si es así, creo que no será muy complicado de implementar.
3 - si todos los xml del hyper tienen el mismo formato, ¿este formato es el mismo que el xml de mame? si es así, aun muchisimo mas facil de implementar.

VeS, he visto en el diff viejuno que has añadido soporte para otros emuladores, la implementacion de esto de leer los xml sería ahí, y ... ¿te encargas tu? si tienes tiempo y tal.

----------------------------------------------------------------------------------

Uffff, que chapas soy ... y aun no he hablado nada de lo que venia a hablar.

Cafe y luego os cuento.

Salu2
 
Top
pakoman2
view post Posted on 4/4/2015, 10:00     +1   -1




A mi me parece bien pasar el nombre del emulador/sistema a la barra de abajo. Yo uso 640x480 y arriba no se ve.

Por cierto, bar_info_N "X Y dX dY" es solo para modo custom, ¿verdad?.

Una cosa, ¿por qué no funciona en windows xp64? he probado en la recreativa y en virtualbox y en los 2 sale el megaman cargando pero luego no pasa nada.

Saludos.
 
Top
view post Posted on 4/4/2015, 10:26     +1   -1
Avatar

V.I.P.

Group:
Usuarios AFFA
Posts:
526
Reputation:
+10

Status:


Hola

Primero el diff para que muestre en una ventana en que emulador/favorito/typo nos encontramos.

SPOILER (click to view)
[QUOTE]
CODE
diff -Nru Original/advance/menu/submenu.cc Modificado/advance/menu/submenu.cc
--- Original/advance/menu/submenu.cc        2015-04-03 06:35:22.000000000 +0200
+++ Modificado/advance/menu/submenu.cc        2015-04-04 10:44:48.438775750 +0200
@@ -30,6 +30,9 @@
#include <iomanip>
#include <algorithm>

+#include <string>
+//#include <sstream>
+
using namespace std;

#define MSG_CHOICE_DX 30*int_font_dx_get()
@@ -48,6 +51,29 @@
        return s + "^" + name;
}

+void where_are_you(string where_msg)
+{
+
+        int ctd = 0;
+
+                while (ctd <= 50) {                
+                        unsigned dx, dy;
+                        int x = int_dx_get() / 2;
+                        int y = int_dy_get() / 2;
+                        int border = int_font_dx_get()/2;
+                
+                        // force an update to draw the first time the backdrop images
+                        int_update(false);
+
+                        dx = int_font_dx_get(where_msg);
+                        dy = int_font_dy_get();
+
+                        int_box(x-2*border-dx/2, (y -100) -border, dx+4*border, dy+border*2, 1, COLOR_CHOICE_NORMAL.foreground);
+                        int_clear(x-2*border-dx/2+1, (y - 100)-border+1, dx+4*border-2, dy+border*2-2, COLOR_CHOICE_NORMAL.background);
+                        int_put(x-dx/2, (y - 100), dx, where_msg, COLOR_CHOICE_TITLE);
+                        ctd = ctd + 1;
+                }
+        }
// ------------------------------------------------------------------------
// Sort menu

@@ -344,6 +370,7 @@
                pred_in = false;
                if ((*j) == rs.include_favorites_get())
                        pred_in = true;
+
        }
       
        if (next_select == "" && rs.favorites.begin() != rs.favorites.end())
@@ -355,6 +382,8 @@
                f = next_select;
       
        rs.include_favorites_set(f);
+        where_are_you(next_select);
+                
}

// ------------------------------------------------------------------------
@@ -449,6 +478,7 @@
                c.insert(c.end(), next_select);

        rs.include_emu_set(c);
+        where_are_you (next_select);
}

void run_emu_pre(config_state& rs)
@@ -474,6 +504,7 @@
                        c.insert(c.end(), pre_select);

        rs.include_emu_set(c);
+        where_are_you (pre_select);
}

// ------------------------------------------------------------------------
@@ -509,6 +540,7 @@
void run_type_next(config_state& rs)
{
        category* next_select = 0;
+        string where_msg = "";
        bool all_select = true;

        bool pred_in = false;
@@ -535,12 +567,18 @@
        } else {
                if ((all_select || next_select == 0) && rs.type.begin() != rs.type.end())
                        next_select = *rs.type.begin();
+                        where_msg = next_select->name_get();
                if (next_select != 0) {
                        // insert the next
                        c.insert(next_select->name_get());
                }
        }
        rs.include_type_set(c);
+        
+        if (where_msg == "")
+                where_msg = "All Games";
+                
+        where_are_you (where_msg);
}



QUOTE
-Al pasar de emu con F6/7 mame al no tener la ruta de roms bien desaparece.

te refieres a que los emuladores sin roms o con la ruta a estos mal, son ignorados y no se muestran??? si es así, a mi me parece buena politica de comportamiento.
Si configuras mal la ruta o no tiene roms, para que carajo quieres que se muestre el emulador??? pregunto!!! :lol:

Aqui me he colado, no muestra el emulador cuando no lo encuentra, no si tienes mal la ruta de roms o esta vacia.
Para mi si es bueno que muestre el emu aunque no tenga roms.


QUOTE
-Al cambiar de modo de vista, si no tenemos snaps, solo deja ir al modo Text y Custom.

Lo mismo que lo anterior, exceptuando el "modo custom" que si no tiene un layout asignado no deberia aparecer,
si a un emulador no se le ha configurado con una ruta de imagenes, para que quieres mostrar modos que estan basado en mostrar imagenes?
ejemplo: si no pones una ruta a iconos el "modo iconos" ese modo no aparece. Segun tu politica deberia aparecer.

Esto para mi es muy muy importante, porque el modo Text es feo de cojones y el Custom si no tenemos layout tambien, entiendo lo que dices de que no muestre los listado que sean solo iconos o imagenes, pero los que llevan texto largo si.

QUOTE
-Los undefined se iban a cambiar por All/Todos dijimos, y hablamos tambien de quitar las listas y dejar solo Favoritos, pero esa parte no recuerdo en que quedo.

¿los undefined? eso es de type (catalogar por tipo de juego), los undefined son los juegos que no se ha definido su tipo. ¿que pasa con esos?
¿quitar listas? ¿que listas? las unicas listas que hay son las de favoritos, lo otro es catalogar por tipo o grupo (ahora inexistentes). mi no entender!!!
Pues peor es lo mio, que no recuerdo nada de nada de esto. :huh:

Nada me cole, hace mucho que no toco todos estos conceptos,esta todo bien, los undefined muestra los que no tienes catalogados en los types para poder catalogarlos mas facilmente, pero lo que si se podria hacer es cambiar las lista de favoritos Good/Bad... (antes grupos) por Favorite1...

QUOTE
Lo del emulador ya he comentado al principio, y las listas de favoritos tambien está.
Mira, coñe, pues para no sobrecargar la barra superior, podriamos pasar lo del emulador y la lista fav a la barra inferior. ¿No?, venga VeS que te veo animado...

Mmmmm yo habia pensado y hecho el mostrar una ventana.....

QUOTE
VeS, he visto en el diff viejuno que has añadido soporte para otros emuladores, la implementacion de esto de leer los xml sería ahí, y ... ¿te encargas tu? si tienes tiempo y tal.

Creo recordar que estaba sin terminar lo de añadir emu
Lo del xml si mi cabeza sabe sacar eso y tengo algo de tiempo cuenta con ello.


1 Edit.
Creo que he encontrado un errore, cuando se activa la lista de filtros/favoritos en los types, ya no se vuelve a desactivar
2 Edit.
Vale he visto que en la barra superior se muestra en que lista de favoritos estamos... que melon........ pero bueno te muestra una ventanita bonita que te dice por ande paras jejeje.
Asi que solo faltaria añadir el Emu y Type en la barra inferior.


Saludos.

Edited by VeS - 4/4/2015, 11:46
 
Top
daesdae
view post Posted on 4/4/2015, 10:49     +1   -1




QUOTE (pakoman2 @ 4/4/2015, 11:00) 
A mi me parece bien pasar el nombre del emulador/sistema a la barra de abajo. Yo uso 640x480 y arriba no se ve.

Por cierto, bar_info_N "X Y dX dY" es solo para modo custom, ¿verdad?.

Una cosa, ¿por qué no funciona en windows xp64? he probado en la recreativa y en virtualbox y en los 2 sale el megaman cargando pero luego no pasa nada.

Saludos.

¿no te sale ningun mensaje de error?
¿XP64? ni sabia que existia la version 64bit, no sé, quizas boton derecho sobre el ejecutable ->propiedades -> y no me acuerdo muy bien pero algo asi con compatible con XP32 :blink:
Tambien podria ser porque en la ultima version no he puesto todas las dll que normalmente necesitaba, en principio ya no eran necesarias y por lo que he probado en win7 64bits funciona bien.
Uhnnnnnn, a ver si he metido la pata, por que tambien esta ultima la he compilado con otro compilador.
OK, compilo de nuevo la version windows y lo subo con sus dlls.

VeS, deja que mire lo de la version windows y te leo, OK

Y de paso os dejo este truñaco sobre las listas de favoritos que he escrito por aquí, para que tengais lectura y tal. jejeje

Listas de Favoritos
---------------------


La intencion de tener listas de favoritos es tener acceso facil a los juegos que habitualmente jugamos o mas no gustan.
De otra forma:
Las listas de favoritos solo tienen sentido si la intencion es la de jugar a algun juego que ya conocemos muy bien y jugamos a el habitualmente.

Ejemplo:
Tengo el advmenuplus con 15 emuladores y todas sus roms.
Y de todos esos cientos/miles de juegos en realidad jugar, lo que se dice jugar, solo juego a 20 (8 del Emu1, 5 del Emu6 y 7 del Emu12).
Cuando abro el advmenPlus con la intencion de jugar a uno de esos juegos, para no tener que estar pasando por todos los emuladores y luego buscar en el listado de cientos de roms, me creo una lista de favoritos llamada "Daesdae" con esos 20 juegos.
Que luego viene mi sobrina y solo juega a 8 juegos, pues creo otra lista fav llamada "Sara" con esos 8 juegos.
Punto, no hay mas, para cualquier otra intencion no estan hechas las listas de favoritos.
Claro que cada uno es libre de hacer lo que le quiera. Como crear una lista fav "Deportes" donde mete todos los juegos de deportes -> Pues alla cada cual, pero esa no es la intencion. En concreto para eso esta el catalogar por tipo de juego (type).

Dicho todo esto:
Politica/Normas de comportamiento de las listas de favoritos:

1.- Las listas vacias, sin ningun juego de ningun emulador -> NO SE MUESTRAN.

2.- Estando en una lista de favoritos. Los emuladores que no tienen ningun juego en la lista de favoritos -> NO SE MUESTRAN.

3.- LAS LISTAS DE FAVORITOS NO SE PUEDEN NI FILTRAR NI CATALOGAR.
En este punto he sido flexible y en la ultima version en el Menu->Favorites List... he añadido una opcion para permitir o no el filtrado y catalogado de las listas de favoritos.

Pues, ya esta, si alguien quiere decir algo al respecto es el momento.


Salu2
 
Top
pakoman2
view post Posted on 4/4/2015, 11:07     +1   -1




No sale ningun mensaje, solo el megaman y luego nada.
No te compliques compilando, tampoco funciona el advmenu original. En todo caso incluye los dll, si no te importa.

Saludos.
 
Top
view post Posted on 4/4/2015, 11:10     +1   -1
Avatar

V.I.P.

Group:
Usuarios AFFA
Posts:
526
Reputation:
+10

Status:


Ya sabes que hablamos muchas veces sobre el tema de favoritos y como bien dices, favoritos es solo para añadir aquellos juegos que quieres tener para ti o para tu sobrina, tio, abuelo .....

Error en el nuevo diff, cuando tenemos por ejemplo 3 favoritos

All Games
f1->toki,rygar
f2->pang,1942
f3->vacio

Al pulsar F2 te muestra donde esta, pero como va pasando por las listas aunque no las muestre tambien te muestra la ventana con la lista F3 pero pasa directo y mostrando el nombre de la siquiente lista que es All Game, me puedes explicar un poco la funcion de run_favorites_next?

No logro ver como saltar ese mensaje




Saludos.
 
Top
daesdae
view post Posted on 4/4/2015, 12:00     +1   -1




pacoman2 si no te va el original, dudo que te funcionen estos.
Pero como ya he compilado tres versiones, si puedes las pruebas y me dices si ha funcionado alguna, que lo dudo.
20150403-winprueba
contiene las dlls, y tres versiones del plus para win32.
Prueba primero a ejecutar las tres sin poner las dlls
luego copia las dlls y prueba con los 4 (la "oficial" y las 3 que te paso)

Por cierto, si lo que pones de bar_... es solo para los layouts.

VeS
No he mirado el diff, pero si la funcion que dices y creo que estas tratando de conseguir el nombre de la lista que se esta mostrando.
Para eso tienes la funcion rs.favorites_get() que devuelve el nombre de la lista actual.
la otra es para averigua y carga la siguiente lista.

Si lo que quieres es que te explique el codigo interno del run_favorites_next(), te lo cuento

Salu2
 
Top
pakoman2
view post Posted on 4/4/2015, 17:38     +1   -1




Pues sin dll da error de que falta dll, con las dll todos hacen lo mismo: dan error "no emulator found. Add an 'emulator' option in your configuration file, etc".
Por supuesto en el rc hay emulator.

Pero esto es copiando la carpeta tal cual del ordenador en que sí funciona... Al menos ahora da este error, antes ni eso. He probado los modos de compatibilidad y nada.

No se si habrá que instalar algun runtime o algo, porque es muy raro.

Saludos.
 
Top
daesdae
view post Posted on 4/4/2015, 19:26     +1   -1




pakoman2
entonces, ¿has probado lo que te pase? Es muy importante que me cuentes:
1.- Sin dlls (bueno solo con la sdl.dll que esa es imprescindible) ¿algun de los plus funciona o muestra mensaje de error?
2.- Lo mismo pero con todas las dlls
Please, si alguno funciona o muestra mensaje dime cual de los plus

Ojo: para que arranque ademas de tener almenos un emulador bien configurado con almenos una rom.

------------------------------------

APUNTO:
- listas favoritos: cuando se ejecuta por primera vez el plus teniendo listas de favoritos configuradas o al dar de alta una nueva lista.
Al ejecutar aparecen mensajes de archivo favlist/tralala.fav no encontrado.
Estos mesajes son totalmente inofensivos, jeje, no pasa nada ... y el plus se ejecuta bien.
En linux y Dos esos mensajes se muestran por consola, por lo que no molestan, pero en windows aparece en una ventanita a la que tienes que darle OK.
Solucion: al ir a leer los .fav si no los encuentra o los crea vacios o que no muestre los mensajes de error (ya que en realidad no son un error)

Bueno, recopilo lo que faltaría para acabar las listas de favoritos y pasar al "menu systems"

Listas de favoritos, cosas por corregir:
1.- mensajes de error (lista fav no encontrada) al ejecutar por primera vez el plus
2.- recordar el ultimo juego seleccionado de las listas y emus ...
3.- comprobar que se cumplen las Normas de comportamiento 1, 2
4.- cambiar nombre de la lista "All Games" por "General List" "Generic List" "General" "Generic" (siempre dudando de los putos nombres que le pongo a las cosas)
5.- cambiar los nombres de las listas generadas por defecto, tal vez, que por defecto no cree ninguna lista.

Pues esto es por ahora lo que he encontrado, si encontrais algun problema o sugerencia sobre lista de favoritos, decirmelo y almenos lo apuntaré ;)

VeS, comprueba bien esto, a mi me funcion bien
QUOTE
Creo que he encontrado un errore, cuando se activa la lista de filtros/favoritos en los types, ya no se vuelve a desactivar

El punto 4 y 5 decidme algo, los que ya me conocen saben que tengo un gravisimo problema con lo de escoger nombres de las opciones y demás, y siempre termino escogiendo lo mas cutre.
Ya se que es una chorrada, que lo importante es que funcione y ... pero me jode mucho ahora mismo ver lo de "All Games" por que no es verdad que sean todos los juegos (si filtras ya no estan todos) (wellcome a mis paranohias)
Bueno, que hago??? en vez de "All Games" -> "Generic List" "General List" "Generic" "General" o que no aparezca ningun nombre :wacko:
y el punto 5, por defecto que no secree ninguna lista de favoritos o cambiar los nombres por "List #1" "List #2" ... (que nombres??? ¿eh? ¿eh?)

Mientras voy a arreglar el punto 1 y revisar el 2

Ahhh, VeS, no te comas el tarro con lo de la ventanita (salvo por curiosidad) creo que la mejor opcion es que aparezca la lista actual y el emulador en la barra inferior
Y en cuanto a los Type , en su tiempo traté de ponerlo pero me topé con un problemilla. ¿que nombre apareceria en el campo Type si tenemos catalogados por 10 tipos y estoy mostrando todos los tipos menos dos de ellos? ¿tipo1/tipo2/tipo5/tipo..../.....? ¿y si tines como 30 tipos como pasa al meter el "catver"?

Salu2
 
Top
view post Posted on 4/4/2015, 19:52     +1   -1
Avatar

V.I.P.

Group:
Usuarios AFFA
Posts:
526
Reputation:
+10

Status:


Los nombres como tu lo veas, me parece bien All Games o cualquiera de los nuevos....

Crear lista fav por defecto para mi es imprescindible, cuanto menos se tenga que tocar el rc mejor.

Me parece bien que la info este en la barra de abajo para info genera, pero me gusta que se muestre una venta que te muestre donde estas sin tener que buscar la info, lo añadire a la version de GA si no lo ves bien para incluirlo.

Nene he estado mirando pero como he dicho antes, estoy ofuscao y no veo como coño saltar el msg de la listas que esten vacias, lo puedes probar mirar y hablarme de la funcion?¿?

Te paso mi rc para que veas el problema que comento de los filtros fav/type.

SPOILER (click to view)
CODE
config save_at_exit
device_alsa_device default
device_alsa_mixer channel
device_color_bgr15 yes
device_color_bgr16 yes
device_color_bgr24 yes
device_color_bgr32 yes
device_color_bgr8 yes
device_color_palette8 yes
device_color_yuy2 yes
device_joystick none
device_keyboard auto
device_mouse none
device_raw_firstkeyhack no
#device_raw_mousedev[0] auto
#device_raw_mousedev[1] auto
#device_raw_mousedev[2] auto
#device_raw_mousedev[3] auto
#device_raw_mousetype[0] pnp
#device_raw_mousetype[1] pnp
#device_raw_mousetype[2] pnp
#device_raw_mousetype[3] pnp
device_sdl_samples 512
device_sound auto
device_video auto
device_video_cursor auto
device_video_doublescan yes
device_video_fastchange no
device_video_interlace yes
device_video_output window
device_video_overlaysize auto
device_video_singlescan yes
difficulty none
display_brightness 1
display_gamma 1
display_orientation
display_restoreatexit yes
display_restoreatgame no
display_size 648
event_alpha no
emulator "mame" sdlmame "groovyume" ""
emulator_roms "mame" "/home/roms/roms"
emulator_flyers "mame" "/home/roms/MAME/fly"
emulator_cabinets "mame" "/home/roms/MAME/cab"
emulator_marquees "mame" "/home/roms/MAME/mrq"
emulator_icons "mame" "/home/roms/MAME/ico"
emulator_titles "mame" "/home/roms/MAME/ttl"
emulator_altss "mame" "/home/roms/MAME/snaps"
#
emulator_file_custom "mame" /home/roms/Layouts/digi/digi.amp
emulator_file_custom "Atari2600" /home/roms/Layouts/vertical/vertical.amp
#
emulator "Atari2600" generic "switchres" "a2600 --xrandr --emulator stella --rom %­p --args -fullscreen 1"
emulator_altss "Atari2600" "/home/roms/Atari2600_snaps"
emulator_roms "Atari2600" "/home/roms/Atari2600_roms"
#
emulator "MasterSystem" generic "switchres" "sms --xrandr --emulator mednafen --rom %­p"
emulator_altss "MasterSystem" "/home/roms/Master_snaps"
emulator_roms "MasterSystem" "/home/roms/Master_roms"
#
emulator "NES" generic "switchres" "nes --emulator nestopia --rom %­p"
emulator_altss "NES" "/home/roms/NES_snaps"
emulator_roms "NES" "/home/roms/NES_roms"
#
emulator "SegaGenesis" generic "switchres" "genesis --xrandr --emulator mednafen --rom %­p"
emulator_altss "SegaGenesis" "/home/roms/SegaGenesis_snaps"
emulator_roms "SegaGenesis" "/home/roms/SegaGenesis_roms"
#
emulator "SNES" generic "switchres" "snes --emulator mednafen --args %­p"
emulator_altss "SNES" "/home/roms/SNES_snaps"
emulator_roms "SNES" "/home/roms/SNES_roms"
#



event_assign up up or 8_pad or 1joy_up
event_assign down down or 2_pad or 1joy_down
event_assign left left or 4_pad or 1joy_left
event_assign right right or 6_pad or 1joy_right
event_assign enter enter or enter_pad or 1
event_assign esc esc or 2
event_assign space space
event_assign home home
event_assign end end
event_assign pgup pgup
event_assign pgdn pgdn
event_assign del del or lalt
event_assign ins insert or lcontrol
event_assign shutdown lcontrol esc or p or 2 5
event_assign mode tab or z
event_assign help f1
event_assign favorites_next f2 or q
event_assign type f3
event_assign exclude f4
event_assign sort f5
event_assign setfavorites f9 or s
event_assign settype f10
event_assign runclone f12 or a
event_assign command f8
event_assign menu backquote or backslash or lshift
event_assign emulator_pre f6 or 5
event_assign emulator_next f7 or 6
event_assign rotate 0_pad
event_assign lock scrlock
event_assign preview space
event_assign mute period_pad
event_mode fast
event_repeat 500 50
icon_space 43
idle_screensaver 60 10
idle_screensaver_preview snap
idle_start 0 0
include
input_hotkey yes
#lock no
#menu_base 1733
#menu_rel 5
menu_base 0
menu_rel 0
merge differential
misc_exit all
#shutdown
#misc_quiet yes
misc_quiet no
mode list
mode_skip
mouse_delta 100
preview snap
#preview_default none
preview_default /home/arcade/.advance/advmenuplus.png
preview_default_cabinet none
preview_default_flyer none
preview_default_icon none
preview_default_marquee none
preview_default_snap none
preview_default_title none
preview_expand 1.15
rem_selected yes
sort parent
sound_background_begin none
sound_background_end none
sound_background_loop sloop.mp3
sound_background_loop_dir "mp3"
sound_background_start none
sound_background_stop none
sound_buffer 0.1
sound_foreground_begin default
sound_foreground_end default
sound_foreground_key none
sound_foreground_start sstart.mp3
sound_foreground_stop default
sound_latency 0.1
sound_samplerate 44100
sound_volume -3
ui_background none
ui_bottombar yes
ui_clip single
ui_color help ffffff 000000
ui_color help_tag 00ff00 000000
ui_color submenu_bar 00ff00 000000
ui_color submenu_item ffffff 000000
ui_color submenu_item_select 808080 ffffff
ui_color submenu_hidden 808080 000000
ui_color submenu_hidden_select 000000 808080
ui_color menu_item ffffff 000000
ui_color menu_hidden 808080 000000
ui_color menu_tag 00ff00 000000
ui_color menu_item_select 000000 00ff00
ui_color menu_hidden_select 808080 00ff00
ui_color menu_tag_select ffffff 00ff00
ui_color bar ffffff 000000
ui_color bar_tag 00ff00 000000
ui_color bar_hidden 808080 000000
ui_color grid 00ff00 000000
ui_color backdrop 000000 808080
ui_color icon ffffff 000000
ui_color cursor ffffff 000000
ui_command_error Error running the command
ui_command_menu Command...
ui_console no
ui_exit none
ui_font auto
ui_fontsize 35
#ui_fontsize auto
ui_game snap
ui_gamemsg "Loading"
ui_help none
ui_menukey yes
ui_skipbottom 0
ui_skipleft 0
ui_skipright 0
ui_skiptop 0
#ui_startup none
ui_startup yes
mame/mode list
ui_topbar yes
ui_translucency 0.6
mame/menu_base 0
mame/menu_rel 0
n64/menu_base 0
n64/menu_rel 0
nes/menu_base 0
nes/menu_rel 0
snes/menu_base 0
snes/menu_rel 0
mastersystem/menu_base 0
mastersystem/menu_rel 0
atari2600/menu_base 0
atari2600/menu_rel 0
mame/preview snap
segagenesis/menu_base 0
segagenesis/menu_rel 0
ume-n64/menu_base 0
ume-n64/menu_rel 0
ume-nes/menu_base 0
ume-nes/menu_rel 0
ume-snes/menu_base 0
ume-snes/menu_rel 0
ume-segagenesis/menu_base 0
ume-segagenesis/menu_rel 0
ume-mastersystem/menu_base 0
ume-mastersystem/menu_rel 0
ume-atari2600/menu_base 0
ume-atari2600/menu_rel 0
pcengine-supergrafx/menu_base 0
pcengine-supergrafx/menu_rel 0
psx/menu_base 0
psx/menu_rel 0
saturn/menu_base 0
saturn/menu_rel 0
ume-segamegacd/menu_base 0
ume-segamegacd/menu_rel 0
ume-sega32x/menu_base 0
ume-sega32x/menu_rel 0
ume-pcengine-supergrafx/menu_base 0
ume-pcengine-supergrafx/menu_rel 0
ume-3do/menu_base 0
ume-3do/menu_rel 0
ume-jaguar/menu_base 0
ume-jaguar/menu_rel 0
ume-neogeocdz/menu_base 0
ume-neogeocdz/menu_rel 0
ume-amigacd/menu_base 0
ume-amigacd/menu_rel 0
ume-psx/menu_base 0
ume-psx/menu_rel 0
ume-saturn/menu_base 0
ume-saturn/menu_rel 0
favorites_filtertype no
ume-amiga500/menu_base 0
ume-amiga500/menu_rel 0
ume-msx/menu_base 0
ume-msx/menu_rel 0
ume-amstrad/menu_base 0
ume-amstrad/menu_rel 0
ume-spectrum/menu_base 0
ume-spectrum/menu_rel 0
ume-commodore/menu_base 0
ume-commodore/menu_rel 0
ume-atari520/menu_base 0
ume-atari520/menu_rel 0
favorites_include "All Games"
type_include "<undefined>"
type_include "Application"
type_include "Arcade"
type_include "Bet 'em Up"
type_include "Breakout"
type_include "Computer"
type_include "Console"
type_include "Fight"
type_include "Filler"
type_include "Flipper"
type_include "Gun"
type_include "Puzzle"
type_include "RPG"
type_include "Racing"
type_include "Shot 'em Up"
type_include "Sport"
mame/type_include "<undefined>"
mame/type_include "Application"
mame/type_include "Arcade"
mame/type_include "Bet 'em Up"
mame/type_include "Breakout"
mame/type_include "Computer"
mame/type_include "Console"
mame/type_include "Fight"
mame/type_include "Filler"
mame/type_include "Flipper"
mame/type_include "Gun"
mame/type_include "Puzzle"
mame/type_include "RPG"
mame/type_include "Racing"
mame/type_include "Shot 'em Up"
mame/type_include "Sport"
emulator_include "mame"
favorites "Favorites"
favorites "Favorites2"
favorites "Favorites3"
type "<undefined>"
type "Application"
type "Arcade"
type "Bet 'em Up"
type "Breakout"
type "Computer"
type "Console"
type "Fight"
type "Filler"
type "Flipper"
type "Gun"
type "Puzzle"
type "Racing"
type "RPG"
type "Shot 'em Up"
type "Sport"
emulator_attrib "mame" missing exclude
emulator_attrib "mame" clone exclude
emulator_attrib "mame" bad exclude
emulator_attrib "mame" vector include
emulator_attrib "mame" vertical include
emulator_attrib "mame" neogeo include
emulator_attrib "mame" deco exclude
emulator_attrib "mame" playchoice exclude
emulator_attrib "mame" mechanical exclude
emulator_attrib "mame" mahjong exclude
emulator_attrib "mame" beatmania exclude
emulator_attrib "mame" pokercasino exclude
emulator_attrib "mame" quiztrivial exclude
emulator_attrib "mame" golfdarfish exclude
emulator_attrib "Atari2600" missing exclude
emulator_attrib "MasterSystem" missing exclude
emulator_attrib "NES" missing exclude
emulator_attrib "SegaGenesis" missing exclude
emulator_attrib "SNES" missing exclude
game "mame/opwolf" "" "" 0 1 ""
 
Top
daesdae
view post Posted on 4/4/2015, 21:54     +1   -1




VeS, para que necesito tu rc??? prefiero, aunque sea un coñazo, que me cuentes exactamente y paso por paso lo del error del filtrado/typeado de las listas favorites...
ejemplo:
3 listas, la segunda vacia, las otras con juegos del emulador en el que estoy
filtrado/typeado desactivado
Estando en la lista tal voy al menu le doy a activar el filtrado/tipeado
Veo que funciona
voy al menu desactivo el f/t -> Error??? funciona???

Cuentame...

-------------------------------------
En cuanto al where_estoy????

- No puedes hacer la llamada a wher_estoy() en la funcion run_favorites_next(config_state& rs) puesto que te pasara lo que te pasa, porque esa funcion lo unico que hace es obtener el nombre de la siguiente lista y decirle que esa sea la lista a mostrar (rs.include_favorites_set(f)).
Ahí solo hace eso obtener un string, y no comprueba nada (ni deberia).

Entonces ¿cual es la movida?
1.- pusamos F2 para cambiar a la siguiente lista
2.- obtine el nombre de la siguiente lista (entra en run_favorites_next(...))
3.- con el nombre de la lista sube hasta menu.cc: int run_menu(config_state& rs, bool flipxy, bool silent) { ... }
donde se encuentra el algoritmo que determina los juegos de esa lista:
CODE
// select and sort
       for(game_set::const_iterator i=rs.gar.begin();i!=rs.gar.end();++i) {
               // emulator
               if (!i->emulator_get()) //ignora los juegos sin emuladores
                       continue;
               if (!i->emulator_get()->state_get())
                       continue;

               has_emu = true;

               // game lists
               bool state_favorites = false;
               if (is_list_AllGames) {
                       state_favorites = true;
               } else if (i->gfavorites_get().size()) {
                       for(favorites_container::const_iterator j=i->gfavorites_get().begin();j!=(i)->gfavorites_get().end();++j) {
                               if (include_favorites == *j)
                                       state_favorites = true;
                       }
               }

               if (!state_favorites)
                       continue;

               has_favorites = true;

               // type
               if (enable_filtertype && !i->type_derived_get()->state_get())
                       continue;

               has_type = true;

               // filter
               if (enable_filtertype && !i->emulator_get()->filter(*i))
                       continue;

               has_filter = true;

               psc->insert(&*i);
...
}


Basicamente el algoritmo:
Recorre toda la coleccion de juegos (el for(.... )
Dentro del "for" comprueba que cada juego pertenece al emulador, a la lista, al typeado y al filtrado
los que cumplen con todo se insertan en la lista de juegos a mostrar (psc->insert(&*i);)
y así con todos juegos.
OK, y con esa lista de juegos a mostrar (psc) un poco mas adelante llega a la comprobacion de si "psc" tiene juegos o no
CODE
// si la lista de favoritos esta vacia, carga la siguiente.
if (!has_favorites && !is_list_AllGames && has_emu) {
       done = true;
       key = EVENT_FAVORITES_NEXT;
}

Esta comprobacion es mia, y hace que se cumplan las normas de comportamiento:
Si la lista de favoritos no tiene juegos y no estamos en "All Games" y hay emulador (existe el emulador) -> No muestra la lista y provoca el evento EVENT_FAVORITES_NEXT
para otra ver ir la (funcion run_favorites_next(...)) ... y así hasta que da con una lista que tenga juegos.

Bueno, ahora que veo esa comprobacion, un poco raro lo del if(!....) tengo que revisarlo bien, con la nueva politica ya que creo que ha cambiado. Sea como fuere la cosa va así.
Por lo tanto la llamada a Where_estoy_cojones(...) deberia hacerse tras el if en un else.
Algo así:
CODE
// si la lista de favoritos esta vacia, carga la siguiente.
if (!has_favorites && !is_list_AllGames && has_emu) {
       done = true;
       key = EVENT_FAVORITES_NEXT;
} else {
       Where_estoy(rs); //muestra donde estoy
}


y el Where_estoy(rs) algo así como:
CODE
void where_are_you(config_state& rs)
{
       string where_msg = "List: " + rs.include_favorites_get();
       
       int ctd = 0;

               while (ctd <= 50) {                
                       unsigned dx, dy;
                       int x = int_dx_get() / 2;
                       int y = int_dy_get() / 2;
                       int border = int_font_dx_get()/2;
               
                       // force an update to draw the first time the backdrop images
                       int_update(false);

                       dx = int_font_dx_get(where_msg);
                       dy = int_font_dy_get();

                       int_box(x-2*border-dx/2, (y -100) -border, dx+4*border, dy+border*2, 1, COLOR_CHOICE_NORMAL.foreground);
                       int_clear(x-2*border-dx/2+1, (y - 100)-border+1, dx+4*border-2, dy+border*2-2, COLOR_CHOICE_NORMAL.background);
                       int_put(x-dx/2, (y - 100), dx, where_msg, COLOR_CHOICE_TITLE);
                       ctd = ctd + 1;
               }
       }


y en principio deberia funcionar, no lo he probado asique no se si he cometido algun error.

Pregunta: el ctd<=50 de la funcion where_tralala ¿que es? o mejor dicho ¿que proboca? que el mensaje dure un determinado tiempo???

Espero haberte ayudado y no creo que lo meta en el advmenuplus, aunque cuando lo tengas lo pruebo, que las cosas hasta que no se ven en la practica no se sabe si molan o no.

Salu2, voy a revisar las normas de comportamiento.
 
Top
view post Posted on 4/4/2015, 22:54     +1   -1
Avatar

V.I.P.

Group:
Usuarios AFFA
Posts:
526
Reputation:
+10

Status:


Nas esta tarde he visto esa comprobacion pero no he podido probarlo, si llego pronto lo pruebo.

El ctd es el contador, en metodologia me enseñaron a ponerlo como c/cc/ct, pero para ser algo mas claro lo puse asi.

Te has quedado muerto con los nombres de mis funciones eee jaja, tiene ese nombre para poderla buscar rapidamente ya que hace mucho tiempo que no toco el codigo.

La funcion where la vuelves a declarar en el menu.cc o la usas del submenu.cc/h? El rs que era ya no me acuerdo.

No digas no si no la has peobado.

El rc es para que probaras lo del filtro de fav/type.
 
Top
daesdae
view post Posted on 5/4/2015, 00:10     +1   -1




Jodeeer, ahora no se me va de la cabeza el if >>>> Es una chapuzada.

APUNTO: REFACTORIZACION DE LAS LISTAS DE FAVORITOS
Funciona bien y la solucion parece sencillita ¿no?, pues no, porque no tendria que estar haciendo el for(todos los juegos) hasta que encuentra una lista con juegos.
Cuando la cosa es tan simple como añadir un booleano a las listas que indique si tiene juegos. El booleano cambiaria cuando se inicia el advmenuplus y lee los archivos fav, a la lista que vea que almenos tiene un juego cambia el booleano y punto.
Luego esto si que se podria consultar en el run_favorites_next() para ahí mismo comprobar si la lista esta vacia y pasar a la siguiente sin tener que salir de esa funcion hasta que pilla la buena.
Con esto se ahorraria estar pasando por el for(todos los juegos).

Bueno, hasta que refactorice la cosa va a ir con el truquillo del if y provocar el evento lista siguiente.

-----------------------------------------------------------

Los nombres??? pero si esta cojonudo, claro y dice lo que hace.
el otro dia, leyendo el famoso diff, lo del "security_exit" que le pusiste, me descojonaba de mi mismo, pensando que yo estaria dudando entre "window_exit" o "exit_window", jejeje, madre mia, mas cutre no puedo ser. Y vas tú y pones "SECURITY_EXIT", el puto amo VeS, eres el puto amo de los nombres. jjeje

-----------------------------------------------------------

la funcion where como muestra una "subventana" creo que iria en el submenu.cc (los truquis memoristicos y tal)
el rs es la super-mega clase atraves de la cual podemos acceder a todos los datos ;)

-----------------------------------------------------------

Salu2 y espero mañana darle caña al codigo y no a dar tanto la chapa por aquí...
 
Top
917 replies since 15/3/2015, 10:50   28234 views
  Share