ARCADE FOREVER

[Proyecto] AdvMenu+, Modificando el codigo fuente del Advmenu

« Older   Newer »
  Share  
Alex-Arcade
view post Posted on 2/8/2014, 17:28     +1   -1




Hum solución interesante y complicado para el problema de altas resoluciones :blink:

Algo muy extraño sucede cuando estoy usando el "layout .amp"

para cambiar la línea \layout\teste.amp
# FONDO
#########
background_image_path pc.png
para
background_image_path All_games.png

El siguiente error se aparece!
 
Top
daesdae
view post Posted on 2/8/2014, 17:55     +1   -1




A mi también me pasó con los que subiste
Solucion: Abre el amp con wordpad y guardar, y ya podrás editar el amp con el block de notas y sin errores.
 
Top
Alex-Arcade
view post Posted on 8/8/2014, 00:11     +1   -1




Hi Daesdae!

Hice algunos cambios en los diseños y estaría muy agradecido si usted proporciona el archivo "text.cc" corregido a la opción de "ayuda"

Mis modos de visualización de cambio.
Menu.cc
SPOILER (click to view)
} else if (rs.mode_get() == mode_full || rs.mode_get() == mode_full_mixed) {
// full mode
if (rs.mode_get() == mode_full_mixed)
backdrop_mac = 4;
else
backdrop_mac = 1;
name_dy = 0;

win_x = scr_x;// + bar_left_dx;
win_y = scr_y;// + bar_top_dy;

space_x = 0;
space_y = 0;

coln = 1;
rown = 1;
win_dx = 0;
win_dy = 0;

backdrop_x = win_x;
backdrop_y = win_y;
backdrop_dx = scr_dx;// - bar_left_dx - bar_right_dx;
backdrop_dy = scr_dy;// - bar_top_dy - bar_bottom_dy;
box = false;

//bar_right_x = scr_x + bar_left_dx + backdrop_dx;
//bar_bottom_y = scr_y + bar_top_dy + backdrop_dy;
//bar_top_dx = bar_bottom_dx = bar_left_dx + bar_right_dx + backdrop_dx;
//bar_left_dy = bar_right_dy = backdrop_dy;

if (!flipxy) {
switch (rs.mode_get()) {
default: /* for warnings */
case mode_tile_giant :
coln = 3;//16;
rown = 2;//12;
name_dy = 0;
space_x = 0;//retira linhas ao redor quadro
space_y = 0;
//bar_left_dx = 0;
//bar_right_dx = 0;
//bar_top_dy = 0;
//bar_bottom_dy = 0;
break;
case mode_tile_enormous :
coln = 4;//12;
rown = 3;//9;
name_dy = name_dy = 0;//name_dy = 0;
space_x = 0;
space_y = 0;
//bar_left_dx = 0;
//bar_right_dx = 0;
//bar_top_dy = 0;
//bar_bottom_dy = 0;
break;
case mode_tile_big :
coln = 4;//8;
rown = 3;//6;
name_dy = 0;
space_x = 0;
space_y = 0;
name_dy = int_font_dy_get();//Adicionado
break;
case mode_tile_normal :
coln = 5;
rown = 4;
space_x = 0;
space_y = 0;
name_dy = name_dy = 0;//name_dy = int_font_dy_get();
break;
case mode_tile_small :
coln = 5;
rown = 4;
space_x = 0;
space_y = 0;
name_dy = int_font_dy_get();
break;
}
} else {
switch (rs.mode_get()) {
default: /* for warnings */
case mode_tile_giant :
coln = 2;//12;
rown = 3;//16;
name_dy = int_font_dy_get();//name_dy = 0;
space_x = 0;
space_y = 0;
//bar_left_dx = 0;
//bar_right_dx = 0;
//bar_top_dy = 0;
//bar_bottom_dy = 0;
break;
case mode_tile_enormous :
coln = 3;//9;
rown = 4;//12;
name_dy = name_dy = 0;//name_dy = 0;
space_x = 0;
space_y = 0;
//bar_left_dx = 0;
//bar_right_dx = 0;
//bar_top_dy = 0;
//bar_bottom_dy = 0;
break;
case mode_tile_big :
coln = 3;//6;
rown = 4;//8;
name_dy = int_font_dy_get();//name_dy = 0;
space_x = 3;//0;
space_y = 0;
break;
case mode_tile_normal :
coln = 4;//4;
rown = 5;//5;
name_dy = name_dy = 0;//name_dy = int_font_dy_get();
break;
case mode_tile_small :
coln = 4;//3;
rown = 5;//4;
name_dy = int_font_dy_get();
break;
}
}


SPOILER (click to view)
 
Top
daesdae
view post Posted on 8/8/2014, 09:52     +1   -1




Hi, Alex & Company

Para ver los cambios que voy añadiendo: GIT AdvMenuPLUS - Browser Commit

Dejo versión beta 2014.08.07

Download:
- Código fuente: advmenuplus-beta-20140807-src.tar.gz
- Windows32: advmenuplus-beta-20140807-win32.zip

VERSIONES ANTERIORES
================
#entry560731951

ADVMENUPLUS VERSIÓN BETA 2014.08.07
===========================

* Arreglado bug que mostraba las imágenes/vídeos help, start, ... muy, muy estrechados. Ahora se muestran SIEMPRE ocupando toda la pantalla (también en monitor 16:9)

* Arreglado bug que mostraba mal (posición y tamaño) los objetos, para los casos "particulares" de layouts verticales a distinta proporción que la pantalla.
Ejemplo: layout vertical 4:3 en monitores 16:9

* Arreglada la proporción de las imágenes y fuente, para monitores no 4:3 (osea, para 16:9, 16:10, ...)

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

Resumiendo: que esta versión arregla todo lo que tiene que ver con las proporciones y demás.
De otra forma, se la puede poner cualquier layout independientemente de la resolución y proporción de este, del monitor, incluso de la resolución del advmenu.rc, que se verá bien.

Ejemplo extremo:
Layout vertical 800x600 (4:3) + Monitor (16:10) + resolución del advmenuplus 1600 = se ve todo perfecto, salvo el fondo que no queda mas cojones que estirarle. :lol:

toimuloco

Refactorizando ...
 
Top
daesdae
view post Posted on 16/8/2014, 18:25     +1   -1




Hi, gente!!!

¿Alguien ha probado la ultima beta?, necesito saber si va bien.
No necesito que comprobéis que arregla cosas, solo que no da problemas. ^_^

Salu2
 
Top
view post Posted on 17/8/2014, 10:33     +1   -1
Avatar

V.I.P.

Group:
Usuarios AFFA
Posts:
526
Reputation:
+10

Status:


Hola daesdae, soy como el pato Darwing, acechando desde la sombra
images

Me alegro que estes de vuelta, ahora mismo estoy sin nada de tiempo, pero ire siguiendo el post, cuenta las proximas novedades que tienes pensado hacer, publica un plan de trabajo!!!!!


Saludos.
 
Top
Alex-Arcade
view post Posted on 17/8/2014, 16:29     +1   -1




Estoy probando las últimas implementaciones y todo parece bien.
 
Top
daesdae
view post Posted on 17/8/2014, 17:17     +1   -1




QUOTE (VeS @ 17/8/2014, 11:33) 
Hola daesdae, soy como el pato Darwing, acechando desde la sombra

Hola VeS, uhnnn!, por algo me sentía observado, jejeje
QUOTE (VeS @ 17/8/2014, 11:33) 
..., cuenta las próximas novedades que tienes pensado hacer, publica un plan de trabajo!!!!!

jejeje, ya estabas tardando, (cuenta, cuenta) jejeje.
Bueno, depende de como te portes. ^_^

QUOTE (Alex-Arcade @ 17/8/2014, 17:29) 
Estoy probando las últimas implementaciones y todo parece bien.

Hola Alex, gracias por probar.
Lo último básicamente permite poner cualquier layout independientemente de TODO. ¿de TODO? sí, de TODO.
bueno, todo todo, lo que se dice todo.
TODO -> cualquier monitor (resolución, proporción), cualquier resolución del advmenuplus, cualquier resolución/proporción/orientación del layout, ...

Pruebas que me gustaría que se hiciesen:
1.- En condiciones normales: resolución del advmenu.rc y layout a la de la pantalla (creo que en tu caso 1600x1200).
2.- lo mismo que 1.- pero cambiando la resolución del advmenu.rc a una mas baja (800, 640, ...)
3.- En condiciones extraordinarias - extremo: con un layout que no cumpla nada con la pantalla.
por ejemplo:
pantalla -> 1600x1200 (4:3)
advmenu.rc -> 1600
layout de prueba -> 800x450 (16:9), vertical, imagen help a resolución rara (620x580)

A observar: que los layout no den problemas, que las imágenes de los juegos, la fuente y la ubicación de los objetos se vean bien.
Obviamente la imagen de fondo se verá estirada y perderá calidad si la resolución y proporción de esta son distintas a la de pantalla.

Alex si pruebas el 1.- me conformo
Por mi parte he probado de todo y con éxito.

Bueno, en cuanto me confirméis algo subo lo nuevo y cuento...

Salu2
 
Top
Alex-Arcade
view post Posted on 17/8/2014, 19:29     +1   -1




Hi Daesdae!

Probado en varias resoluciones mis soportes de monitor - imagen help
1600, 1366, 1360, 1280, 1152, 1024, 800
Layout normal, Layout custom horizontal, Layout custom vertical = ok

Personaliza como 1600x1024, 1280x600, 1280x720 etc.. genera un error


layouts.amp creados en 1600x1200 y hacerlo funcionar a resoluciones más bajas problema ocurre en información de juegos.


Edited by Alex-Arcade - 17/8/2014, 21:25
 
Top
daesdae
view post Posted on 17/8/2014, 21:19     +1   -1




Hi Alex

El error "Invalid argument 1600x1024" es porque no puedes poner en la opcion "device_video" la resolucion vertical.
Solo la horizontal, la vertical la escoge el programa.
Esto me ha dado problemas en winXP con monitor 16:10, me escogía una vertical como si fuese 4:3, por si a alguien le pasa, lo resolví instalando el controlador del monitor (no la de la tarjeta de vídeo, el del monitor).

Tengo apuntado, el poder escogerla nosotros, solo para casos puntuales y por curiosidad.


Miro el error en la información de juego.


Muchisimas gracias Alex
 
Top
Alex-Arcade
view post Posted on 17/8/2014, 21:58     +1   -1




Sólo una curiosidad Daesdae

Es posible crear orden en las capas y transparencias tener las imágenes? Creo que un fondo con el "Flyer" lleno es más hermoso otra mitad en el lado derecho de la izquierda
 
Top
daesdae
view post Posted on 18/8/2014, 00:28     +1   -1




Alex

Error de la fuente: He probado con tus layouts y me he dado cuenta que hay un problema con la fuente, la "calibrib.ttf", no sé porque razón no se puede poner a menor tamaño de 20 pixels
Con pantalla/advmenu.rc/layout a resolucion (1600x1200), sin cosas raras, si la pones a tamaño 19 falla, en la barra info, en el listado, ...

He probado con otros tipos de letra parecidas y con esas no hay problema, las puedo poner a tamaño 8 y todo bien, incluso son legibles.

Por lo que creo que es cosa de esa tipología en concreto.

-----------------------------------------
QUOTE
Es posible crear orden en las capas y transparencias tener las imágenes? Creo que un fondo con el "Flyer" lleno es más hermoso otra mitad en el lado derecho de la izquierda

No y no. :(
Tramsparencias en las imagenes y orden de capas -> APUNTADISIMO. Será lo primero en cuanto me ponga a desarrollar el modo_custom (layout).

Salu2
 
Top
daesdae
view post Posted on 18/8/2014, 19:54     +1   +1   -1




Buenas señores.

Este post se lo quiero dedicar a todos los toqueteadores/enredadores de código Plusero y en especial a VeS, aunque no entro de lleno al código como a el le gustaría ...

Acabo de subir al git lo ultimo, os cuento un poco en que ando...

Básicamente estoy refactorizando todo lo que tiene que ver con los layouts, por fin me he puesto a ello, está/estaba el código que daba asco, muy metido a calzador y no me permitía seguir desarrollando el tema layouts.

Estado del tema layouts:
Cuando lee el advmenu.rc genera una lista de emuladores con sus propiedades, entre ellas todas las de los layouts, unas 53 y eso que los layouts son muy básicos.
Esto hace que a poco que implemente algo las propiedades de los layouts aumenten mucho y con ello los emuladores, que cargan con ellas aunque no se les haya asignado un layout.
Y por si fuese poco, todas son del tipo string. (el porque de esto mas adelante)
:sick:
Bueno, pues directamente no vamos la funcion que pinta el modo del emulador. La encargada de ello es "menu.cc->run_menu_user(...)"
De origen esta funcion es quilometrica, en ella se determina las propiedades de los modos visuales (unos 12) y según cual sea pinta unas cosas mas allá o acá ..., vamos que ya en el advmenu original en esta funcion hay un lio tremendo (que funciona muy bien pero muy jodido de seguir para los que queremos modificar algo).
Pues bien, como en principio los layouts no iban a ser gran cosa, fuí metiendo ahí lo de pintar los layouts, un poquito de codigo por aquí, otro por allá, haciendo un uso mas que excesivo de comprobaciones "if(modo_custom) ... else ...".
:sick:
Bien, pues como dije al principo las propiedades de los layouts se guardan en los emuladores como strings, por lo tanto en algun momento habrá que: comprobar si ese dato está vacio, si es "none", ... para dado el caso coger el dato por defecto o seguir, luego transformar ese string en el tipo adecuado, por ejemplo la posicion y tamaño del listado irá en enteros y finalmente escalarlos segun la resolucion de pantalla... Vamos, preparar los datos para ser utilizados.
Pues bien, todo este jaleo, está metido en el peor sitio, en la función quilometrica (ahora aun muchísimo mas por el modo custom) "run_menu_user(...)".
Osea, cada vez que cambiamos de emulador pasa por esta función y vuelve a hacer todas las conversiones y demás en los datos.
scratch
y hasta aquí puedo leer, ahora a limpiar todo este estropicio, para dejarlo 100% reluciente y preparado para implementar lo nuevo.
suck_kr

Ahora, en el presente, pues gran parte del rollo de arriba ya está arreglado, aunque aun le queda mucho...
El lío lo he dividido en varios puntos:

Refactorizando Layouts:
- Reestructurar la obtención de datos de los layouts
- Tratamiento de datos
- Reestructurar la función de pintado
- Limpieza de código
- ...

Lo que acabo de subir al Git:

- Reestructurar la función de pintado
Aquí he dividido la funcion 'run_menu_user(...)' en dos:
- run_menu_user(...) -> para los modos no-custom, he quitado todo lo referente al modo_custom (layout) con todos sus puñeteros 'if(mode_custom)' para dejarlo practicamente como la funcion original, que funciona muy bien.
- run_menu_layout(...) -> para el modo custom (layout), una copia del anterior eliminado todo lo de los otros modos.
Simple y aunque aun hay que refactorizar bien el 'run_menu_layout(...)', joder, que gusto tener lo de pintar los layouts en su propia funcion, sin historias de andarse con cuidado por si lo nuevo estropea algo de los otros modos y ya se ve todo mas limpio.
Total:
Emulador en modo no-custom -> funcion de pintado como la original (advmenu)
Emulador en modo custom (con layout) -> funcion de pintado propia para el layout.

- Reestructurar la obtención de datos de los layouts
Aquí hay algo mas de cañita y mucho mas gonito y fermoso.
Ahora los layouts se cargan en una lista de layouts, para esto he creado la clase layout con sus propiedades...
Los emuladores se liberan de las propiedades de los layouts.
Ambas listas, emuladores y layouts, se relacionan mediante la propiedad 'custom_emulator_path' en el caso de los emudores y la propiedad 'name' de los layouts que guardan la ruta al layout.
:blink:
De paso tambien he toqueteado algunas cositas menores pero que mejoran mucho las cosas.
Esto de tener los layouts bien guardados en una lista hace que asignar un emulador a un layout u otro sea tan solo cambiar la propiedad "custom_emulator_path" para que apunte al layout que queremos (NOTA: ¿multilayout?).
Además abre el camino a cosas como que los layouts se puedan asignar a cualquier cosa, no solo a los emuladores. Sería muy facil implementar, por ejemplo, asignar layouts a los juegos, a las listas de favoritos, a los tipos, ... :woot:

Bueno, por ahora esto es lo que llevo, ya voy viendo todo mas entendible, limpito y en su sitio.
Ufff, ya empiezo a estar mas orgulloso del código, que gustazo y que fino lo voy a dejar.

Lo que queda:
- Tratamiento de datos de los layouts: empezaré mañana a estudiar la mejor forma de abordar el tema. Mas o menos lo tengo claro.
- Refactorizar bien la funcion de pintado (run_menu_layout(...)): pues eso, dejarla la funcion de pintado lo mas simple posible, llamadas a pinta el fondo, pinta el listado, pinta ... y que le llegen todos los datos ya preparados para esto.
- Limpieza/Revision general de todo lo hecho.
- Revisar la carga de fuentes, de los colores, ....
- ...

Esta semana espero tener listo los dos primeros puntos y estar por fin muy muy cerca de una versión del Plus Cojonudisima y preparada para subir de nivel en esto de jugar a enredar en el código.

Salu2 y perdonad la chapa.
 
Top
Alex-Arcade
view post Posted on 20/8/2014, 12:47     +1   -1




Cuenta conmigo para la prueba! :woot:
 
Top
daesdae
view post Posted on 24/8/2014, 14:15     +1   -1




Hola people de bien...

Informe semanal:
No he podido hacer mucho esta semana, tan solo una actualización a principio de semana que facilita muchísimo la creación de nuevas opciones para los layouts.
Esas cosas que al usuario no le importan un carajo, pero que facilita mucho la vida a los toqueteadores de código. ;)

Ayer a las tantas de la noche, medio colocado, no sé como, pero me dio por hacer un mini-mini programa en 5 minutos para mostrar una imagen a fullscreen para el VPinball y quizás para otros emuladores -> Un Loading... para que no se muestre el escritorio y demás mientras se carga una tabla. Hoy le echado un vistazo y tiene buena pinta, a ver si lo acabo hoy/mañana.
NOTA: mientras escribía esto se me ha ocurrido, que quizás el advmenu/plus se cierra nada mas lanzar la tabla (no muestra la imagen a fullscreen de la tabla hasta que esta está cargada) porque detecta que la ventana del VPinball se crea al principio, pero esta es la del editor, la de la tabla se llama "Visual Pinball Player".
Uhnnnn, quizás esto se solucione tan solo diciéndole que la ventana a detectar es la del player no la del editor. :blink:

APUNTO: mirar el loading del advmenuplus para el VPinball <-> ventana tabla "Visual Pinball Player"

Como siempre mucho investigar el como y luego una pereza tremenda para poner en practica lo investigado. <_<

Por cierto, pensando en un configurador visual para el advmenuplus:
¿hace realmente falta? ¿que opciones le añadiríais?
Yo no veo que haga mucha falta, no sé, quizás para dar de alta/baja emuladores.

Salu2
 
Top
647 replies since 8/9/2009, 21:56   30242 views
  Share