PDA

Ver la versión completa : MSX en GP2X?



ivanjpm
07/02/2006, 04:31
hola, como la cosa va avanzando en la emulación para la consola, me preguntaba si hay alguien q esté trabajando en un emu de MSX.
La verdad, por muy friki q parezca, sería la unica opcion para pillarmela.
Thanks.

Makoe
07/02/2006, 05:24
http://www.gp32spain.com/foros/showthread.php?t=27188&highlight=estado+emuladores

miq01
07/02/2006, 06:25
A ver si me voy a tener que poner en plan Fistropecador y empezar a exigir a los programadores que se dejen de Wonderswans y demás y se pongan con algo "que realmente valga la pena" como es un emulador de MSX... :)

Creo que el emu de MSX es casi lo último que le pido a la GP2X para que sea la consola perfecta (stick aparte, claro).

A600
07/02/2006, 06:34
@miq01: ¿no conseguiste hacer funcionar el fmsx-SDL?

Por cierto, el OpenMSX también usa las SDL.

chadi
07/02/2006, 06:41
Eso, eso. A ver si sacan un emulador de MSX, jejeje. Hay que tener en cuenta que la GP2X solo cuenta con tres meses de vida, así que todo llegará. SaludosSs. ;)

Tirabol
07/02/2006, 08:42
Yo tambien me pido un emu de MSX :rolleyes:
Seguro que con los cracks que corren por estos lares no tardara..... :rever: :rever: :rever: :rever:

miq01
07/02/2006, 08:45
@miq01: ¿no conseguiste hacer funcionar el fmsx-SDL?

Por cierto, el OpenMSX también usa las SDL.
Ostras, pensé que ya lo había comentado... No, no lo conseguí. Tal cual lo dejaste tú no iba, y intenté algo pero no hubo manera, aunque ya no recuerdo qué fue. A ver si pasado el día 20 lo recupero y te cuento.

dokken
07/02/2006, 16:45
Yo tambien me apunto a uno de MSX :D pero sin exigir, todo lo que venga se agradece de antemano [wei4]

Anarchy
07/02/2006, 16:57
Yo también es uno de los emuladores que más espero...

Si alguien se anima a ponerse con uno, que me avise y podríamos hablar de un posible patrocinio (que aparezca el logo de gp32spain y h-g al arrancar el emu) a cambio de donaciones u otras aportaciones a acordar :) :brindis:

Coelophysis
07/02/2006, 18:17
La verdad es que si para mí sigue viva la GP32 es por los emuladores de MSX y Spectrum de Rlyeh. Sencillamente perfectos, salvo por la carencia de un teclado virtual en el último fMSX32.

Al principio pensaba que cuando saliera un emulador de MSX para la GP2X la blanquita quedaría definitivamente aparcada, ya que habría sido superada del todo.

Sin embargo, los juegos de MSX jugados con el stick de la GP32 siguen siendo una delícia; así que MUY bueno tendrá que ser el emulador de MSX para que me convierta definitivamente a la nueva religión...

No quiero que suene a exigencia; es solo un pequeño apunte para comentar que la emulación de estas máquinas de 8 bits ya es perfecta en la GP32; y, aunque el emu de Spectrum de hermes PS2R me ha dejado muy buen sabor de boca, sigo pensando que en la emulación portátil de esos dos sistemas la GP32 sigue siendo la reina...

chadi
07/02/2006, 18:32
Estoy de acuerdo con lo que dice Coelophysis. En que la GP32 emula mejor los ordenadores de 8-btis que la GP2x, por lo menos ahora. También hay que recodar (siempre lo digo) la GP2X solo cuenta con tan solo 3 meses de vida. :)

KaosOverride
07/02/2006, 19:10
Yo he conseguido hacer funcionar el Arnold (La otra alternativa a Caprice en cuanto a emuladores de CPC bajo SDL...) y la verdad es que me ha desmoralizado un poquitin... Tras arrancarlo con u snapshot del barbarian y ver un poco la pelea CPUvsCPU un rato... es LENTISIMO... Como se esta mencionando en otro hilo sobre el rendimiento de las SDL bajo GP2x, aqui hay algo raro... Si casi parece que la GP32 se come los emuladores 8bits mejor que la GP2x..

Tambien he probado a injertar el core Z80 del Caprice 4.2.0 en el source 4.1.0, cambila guay pero al ejecutar el emu, la pantalla se pone blanca, hace uns espectaculares efectos plasma de variacion de brillo por toda la pantalla y se queda ahi... :canon2: Habre tenido un preciso kernel panic?

Tendre que reempezarlo pero injertando por partes...

Si seguro que el fMSX o el openMSX echaria a andar en GP2x, pero me da un poco miedo a ver a que velocidad... Al menos mientras sigamos usando SDL 100% software sin aprobechar nada del hard (Audio, volcados de doublebuffering, etc..)...

Alguien se anima a hacer una 2Dmark para las dos GP's?? [wei5]

miq01
07/02/2006, 19:29
Si seguro que el fMSX o el openMSX echaria a andar en GP2x, pero me da un poco miedo a ver a que velocidad... Al menos mientras sigamos usando SDL 100% software sin aprobechar nada del hard (Audio, volcados de doublebuffering, etc..)...
Si quieres probar con el fMSX-SDL, A600 dejó en este hilo (http://www.gp32spain.com/foros/showthread.php?t=25902&page=2&highlight=fmsx-SDL) el código fuente que pudo compilar para GP2X (aunque no tiene la consola) y no tiraba. Revisando el hilo, he recordado que no iba porque no encontraba el fichero MSX2.ROM a pesar de que estaba ahí y de que en principio el directorio era correcto. Yo lo dejé porque en ese momento no tenía mucho tiempo de mirármelo pero tiene pinta de ser una tontería. Sino, quizás lo intente de nuevo a partir del 20.

A600
07/02/2006, 19:48
Yo he conseguido hacer funcionar el Arnold (La otra alternativa a Caprice en cuanto a emuladores de CPC bajo SDL...) y la verdad es que me ha desmoralizado un poquitin... Tras arrancarlo con u snapshot del barbarian y ver un poco la pelea CPUvsCPU un rato... es LENTISIMO...

Es que el Arnold es un emu lentíiiiisimo.

ivanjpm
07/02/2006, 21:20
Yo también es uno de los emuladores que más espero...

Si alguien se anima a ponerse con uno, que me avise y podríamos hablar de un posible patrocinio (que aparezca el logo de gp32spain y h-g al arrancar el emu) a cambio de donaciones u otras aportaciones a acordar :) :brindis:

tu si q sabes, anarchy.
pense q era el unico friki [wei5] [wei5]

FUGITIVO
08/02/2006, 06:53
A mi tambien me interesa el emu de MSX. Soy un poco obsoleto, pero no soy el unico.

salaudos

KaosOverride
08/02/2006, 08:20
Si quieres probar con el fMSX-SDL, A600 dejó en este hilo (http://www.gp32spain.com/foros/showthread.php?t=25902&page=2&highlight=fmsx-SDL) el código fuente que pudo compilar para GP2X (aunque no tiene la consola) y no tiraba.
conio, pero... SI TIRA DEL CARAJO!!!!!!!
xD

A la primera.. solo he cambiado los nombres de las ROMS porque estan en mayusculas en el source, linux es case sensitive y creo k la FAT se convierte siempre a MINUSCULAS los accesos a disco (aunque se vean mayus y minus al hacer ls)

Vamos, que estoy viendo un precioso pantallazo azul k pone
____________________________
MSX BASIC version 2.1
Copyright 1986 Microsoft

Disk BASIC version 1.0
Ok
____________________________

Ale, a ver si alguien s eanima a darle vida [wei4]

Joer, el arranque parecia muy fuido... Le puedo ripear el core de z80 y meterselo al caprice?? [wei] igual gano chicha


EDIT:FICHEROS RETIRADOS HASTA ACLARAR LA DISPONIBILIDAD PARA PORTS, CON EL AUTOR

miq01
08/02/2006, 08:28
¡¡¡¡¡color auto goto list run!!!!! :D ¡Qué buena noticia! Gracias tío. :brindis:


A la primera.. solo he cambiado los nombres de las ROMS porque estan en mayusculas en el source, linux es case sensitive y creo k la FAT se convierte siempre a MINUSCULAS los accesos a disco (aunque se vean mayus y minus al hacer ls)
Pues vaya tontería... Cómo no se me ocurrió... :rolleyes:

A600
08/02/2006, 08:42
:brindis:

Para cargar roms sólo hay que pasarle el nombre de la rom como parámetro al gpe.

miq01
08/02/2006, 08:56
:brindis:

Para cargar roms sólo hay que pasarle el nombre de la rom como parámetro al gpe.
¡La hostia! Acabo de probar el Nemesis, el F1-Spirit y el Knightmare y los tres se ven perfectamente, se oyen perfectamente, y la velocidad es la del original. Bueno, en la demo del juego la imagen y el sonido dan algún salto, como si se saltara un frame, pero igualmente... ¡¡¡tremendo!!! Si nadie se pone, igual mañana me da por mirarme los controles...

Wild[Kyo]
08/02/2006, 08:57
Madre mia... estais hechos unos ***** MAQUINAS! :musico: :musico: :musico: :musico: :musico:

Os adoro! :rever: :rever: :rever: :rever: :rever:

KaosOverride
08/02/2006, 09:01
¡La hostia! Acabo de probar el Nemesis, el F1-Spirit y el Knightmare y los tres se ven perfectamente, se oyen perfectamente, y la velocidad es la del original.

Esta compilado con las jandermore-paeryn-SDL-hardware :D Asi que ayudita de la buena tiene ;)

Joer, pues de ser asi ya me estoy empollando la forma de meterle el core z80 al caprice a ver si gana (y a ver si acepta el trasplante)

miq01
08/02/2006, 11:16
Hoy tenía que irme a dormir pronto, y ya veis... Y es que no he podido evitarlo y me he mirado lo de los controles. Está medio solucionado. Falta asignar las diagonales, que ahora sólo va en las cuatro direcciones. Los botones son B (el principal) y X (el secundario). Con START se sale. No he mapeado las teclas de función.

Mañana cuelgo el código fuente, que miraré de dejarlo algo limpio. Por ahora, adjunto el GPE. Edito: Borrado el archivo adjuntado, puesto que el autor pide ser avisado antes de publicarlo. Gracias a LTK666 por el aviso.

ivanjpm
08/02/2006, 15:09
Hoy tenía que irme a dormir pronto, y ya veis... Y es que no he podido evitarlo y me he mirado lo de los controles. Está medio solucionado. Falta asignar las diagonales, que ahora sólo va en las cuatro direcciones. Los botones son B (el principal) y X (el secundario). Con START se sale. No he mapeado las teclas de función.

Mañana cuelgo el código fuente, que miraré de dejarlo algo limpio. Por ahora, adjunto el GPE.

la hostia, q fuerte tios! asias y adelante! :)

KaosOverride
08/02/2006, 15:26
K peligro.. la tentacion, eh, miq01?? ;)

Yo tengo en un .h y .c el codigo para implementar el modelo de davec2, puedo limpiarlo un poco por si lo quieres injertar (Tan solo un par de includes y meter una llamada y 4 if's en el principal...)

Ahh, y tb tiene un GP2x_exit(); xD

A este paso salen las PortLibs :quepalmo: :quepalmo: :quepalmo:

inu64
08/02/2006, 15:27
la hostia, q fuerte tios! asias y adelante! :)


de la nada sacais un emu , ***** si que sois unos makinas , infinitas gracias, es lo que estaba esperando desde que me pille la gp2x , sere un friki pero el msx sera foreverer saludos.

aitorpc
08/02/2006, 15:27
Habeis conseguido ver la maravillosa pantalla azul del SO del MSX y ademas cargado juegos???????? sois los mejores!!

TORWAK
08/02/2006, 16:59
:brindis:

Para cargar roms sólo hay que pasarle el nombre de la rom como parámetro al gpe.


¿Me puedes explicar mejor esto por favor ya que le metido el maze of galious al mismo directorio donde tengo el emulador con las roms?,ahora ¿que es lo que tengo que hacer?.
Muchas gracias. [wei5]

KaosOverride
08/02/2006, 17:05
Ein??

Wild[Kyo], acabo de ver lo de la subida de los sources del fMSX, y pones "Autor:KaosOverride" :rolleyes: Pero si fue A600 quien se cocino los sources aplicando los parches SDL, yo solo le eche el peregil al final :D

Por cierto, nadie ha probau la nueva preview del xRick? voy a tener k hacerle un :arriba:


¿Me puedes explicar mejor esto por favor ya que le metido el maze of galious al mismo directorio donde tengo el emulador con las roms?,ahora ¿que es lo que tengo que hacer?.
Muchas gracias. [wei5]

has de currarte un script de shell unix/linux para pasarselo como parametro. Mas y mejor explicado en la seccion de Tutoriales (Scripting basico practico)

Wild[Kyo]
08/02/2006, 17:17
Ein??

Wild[Kyo], acabo de ver lo de la subida de los sources del fMSX, y pones "Autor:KaosOverride" :rolleyes: Pero si fue A600 quien se cocino los sources aplicando los parches SDL, yo solo le eche el peregil al final :D

Subida la nueva versión y corregido lo que comentas... :D

KaosOverride
08/02/2006, 17:34
Jo cuanta gente aparece ahora.. :D A este paso vamos a hacer el GP2x 8bit Team :lol:

Puck2099
08/02/2006, 17:50
Hoy tenía que irme a dormir pronto, y ya veis... Y es que no he podido evitarlo y me he mirado lo de los controles. Está medio solucionado. Falta asignar las diagonales, que ahora sólo va en las cuatro direcciones. Los botones son B (el principal) y X (el secundario). Con START se sale. No he mapeado las teclas de función.

Mañana cuelgo el código fuente, que miraré de dejarlo algo limpio. Por ahora, adjunto el GPE.

Hola,

¿Tienes algún problema con las diagonales? No sé como es el control en el MSX original, pero si es un control de 4 direcciones, sin diagonales "propiamente dichas", la mejor solución que he encontrado es usar las minilib de Rlyeh que tratan el joystick de la GP2X como si fuera un control de 4 direcciones en vez de 8.

Si queréis puedo meterlas yo :)

Saludos

KaosOverride
08/02/2006, 17:53
Despues de comer pulo un poco mi source del joystick virtual y os lo subo :)

inu64
08/02/2006, 17:55
Despues de comer pulo un poco mi source del joystick virtual y os lo subo :)



te queremos..... :brindis:

KaosOverride
08/02/2006, 17:57
No espereis maravillas, es "padawan source" :quepalmo: :quepalmo: :quepalmo: :quepalmo: :quepalmo:

Pero en el xRick y en el Caprice se ha portado bien, no? :)

schan
08/02/2006, 17:58
:brindis: :brindis:
que bueno, yo también lo esperaba con ansia.

aunque tengo una duda, no consigo cargar una imagen dsk, a través del sterm con "fmsx -diska loquesea.dsk" carga la pantalla azul del basic. Mi intención era configurar el mocca pero me pasa igual. ¿Sabeis si hago algo mal?

Por lo demas perfecto, voy a sacar del armario mi msx y "romear" todas las cintas [wei4] [wei4]

A600
08/02/2006, 19:04
Os pego las opciones del emu:



-verbose <level> - Select debugging messages [1]
0 - Silent 1 - Startup messages
2 - V9938 ops 4 - Disk/Tape
8 - Memory 16 - Illegal Z80 ops
-hperiod <period> - Minimal number of CPU cycles per HBlank [228]
-vperiod <period> - Minimal number of CPU cycles per VBlank [59736]
-uperiod <period> - Number of VBlanks per screen update [2]
-pal/-ntsc - Set PAL/NTSC HBlank/VBlank periods [NTSC]
-help - Print this help page
-home <dirname> - Set directory with system ROM files [off]
-printer <filename> - Redirect printer output to file [stdout]
-serial <filename> - Redirect serial I/O to a file [stdin/stdout]
-diska <filename> - Set disk image used for drive A: [DRIVEA.DSK]
(multiple -diska options accepted)
-diskb <filename> - Set disk image used for drive B: [DRIVEB.DSK]
(multiple -diskb options accepted)
-tape <filename> - Set tape image file [off]
-font <filename> - Set fixed font for text modes [DEFAULT.FNT]
-logsnd <filename> - Set soundtrack log file [LOG.MID]
-state <filename> - Set emulation state save file [automatic]
-auto/-noauto - Use autofire on SPACE [off]
-ram <pages> - Number of 16kB RAM pages [4/8/8]
-vram <pages> - Number of 16kB VRAM pages [2/8/8]
-rom <type> - Select MegaROM mapper types [0,0]
(two -rom options accepted)
0 - Generic 8kB 1 - Generic 16kB (MSXDOS2)
2 - Konami5 8kB 3 - Konami4 8kB
4 - ASCII 8kB 5 - ASCII 16kB
6 - GameMaster2
>6 - try guessing mapper type
-msx1/-msx2/-msx2+ - Select MSX model [-msx2]
-joy <type> - Select joystick types [0,0]
(two -joy options accepted)
0 - No joystick
1 - Normal joystick
2 - Mouse in joystick mode
3 - Mouse in real mode


Así que si queréis, podéis cargar discos con autoarranque (autoexec.bas) que si no recuerdo mal son la mayoría, con las opciones -diska y diskb.

miq01
08/02/2006, 20:35
Bueno, después de pelearme un rato con el código he añadido otra tecla: L actúa como F1, que es la tecla habitual de pausa, al menos en los juegos de Konami. Pero eso es todo.

Os explico lo que he cambiado, ya que necesitaría mucho más tiempo para estudiar el código y ver cómo funciona el tema, y ahora mismo no lo tengo, así que Puck, KaosOverride, o a quien le apetezca, os lo dejo a vosotros. :) Por cierto, Puck, el control es de cuatro direcciones, efectivamente.

El único fichero que he cambiado es SDLgfx.c, que es donde está la detección de eventos de teclado por SDL. He añadido (indico el número de línea):
- 18: los defines de los botones de la GP2X
- 105: una variable global SDL_Joystick*
- 190: el flag SDL_INIT_JOYSTICK en la llamada SDL_Init
- 206: la función que abre el dispositivo "joystick" (sdlJoystick = SDL_JoystickOpen(0))
- 249: la que lo cierra (SDL_JoystickClose(sdlJoystick))
- 411 para abajo: la detección de pulsaciones de la consola, convirtiéndolos a algo que entiende el emulador.

La función que he modificado es void Keyboard(void) del fichero que os indicaba antes. En esa función me he cargado la detección de teclado que había anteriormente por comodidad, aunque ahí estaba la detección de teclas para activar o desactivar el autodisparo, cargar y grabar estados, unidades de disco y demás. Lo he hecho por comodidad y por no mezclar eventos de teclado real con los de la consola, que no son de teclado sino de joystick (event.jbutton.button). Pero bueno, en el código fuente que adjuntó ayer KaosOverride está el fichero original, que seguro que hará falta recuperarlo.

Lo poco que he descubierto es que la tecla pulsada sirve como índice de una matrix, que a su vez contiene índices a otra matriz que es la que al final usa el emulador para detectar qué teclas se han pulsado, pero ya digo que no he tenido tiempo de mirarlo a fondo.

Si miráis el código de Keyboard() que he cambiado, veréis que a la variable key le asigno SDLK_UP, SDLK_DOWN, etc. en función del evento que me llega. Esto es bastante chapucero, pero lo hice porque key en la versión original usa estos valores (SDLK_UP, etc.) como índices de una matriz.

Total, que adjunto el fichero SDLgfx.c y quien tenga tiempo y ganas, que le eche un vistazo. Sino, quizás en unos días pueda mirármelo con más tranquilidad. Edito: Borrado el archivo adjuntado, puesto que el autor pide ser avisado antes de publicarlo. Gracias a LTK666 por el aviso.

Por cierto, tal como está ahora mismo, lo de que falten diagonales es una pootada, pero al menos el F1-Spirit se deja jugar bastante bien... :)

KaosOverride
08/02/2006, 20:45
Yo he pulido un pokito mi ficherin para joystick con diagonales... Espero que no os resulte muy lioso...

Hay defines de eventos de joystick de GP2x, hay una funcion para salir del programa al menu, funcion de inicializar el joystick (porsiacaso, lo recomiendo, aunque el asignemos ceros en la declaracion), modelos davec2 y 3 y un ejemplito entre los comentarios del .c, por el final :rolleyes:

extern int pcjoy_matrix [6][6]; /*DEBERIA SER [3][3] pero por problemo en el xRick lo dejo asi hasta nuevas pruebas */
void pcjoy_reset (void);
void gp2x_exit (void);
void pcjoy_update ( SDL_Event gevent, int pcjoy_move );
int pcjoy_pressed_davec2 (int pcjoy_dir);
int pcjoy_pressed_davec3 (int pcjoy_dir);

Uncanny
08/02/2006, 21:17
Vaya, ya habeis sacado un port del fMSX y entre 3 nada menos :D

Hasta dentro de un rato no puedo probar el vuestro, pero ¿podeis decirme como va de velocidad y sonido? lo digo para dejar el que estaba yo portando si resulta que este es ya completmente funcional :brindis:

miq01
08/02/2006, 21:48
Uncanny, que conste que el port es de A600. :) KaosOverride arregló lo de los nombres de las ROMS "de sistema" y yo he hecho una chapucilla para añadirle controles básicos.

Respecto a lo que preguntas de velocidad va casi perfecto. Sólo he probado tres juegos, y juraría que únicamente en el F1-Spirit hay pequeños parones (pero muy pequeños) que hacen que el sonido se entrecorte algo. Pero ya digo, casi perfecto.

¿Nos puedes contar cómo va el tuyo? Que yo no le voy a hacer ascos a otro emu de MSX, ¿eh? :)

kounch
09/02/2006, 02:40
Para cargar archivos se puede usar el Selector.

Descomprimir los archivos del zip que adjunto en la carpeta del fmsx y elegir el archivo a cargar. Toma como ruta por defecto la raiz de la tarjeta SD, si se desea cambiarla, editar el archivo fmsx_config.

Saludos
kounch

KaosOverride
09/02/2006, 03:03
Sólo he probado tres juegos, y juraría que únicamente en el F1-Spirit hay pequeños parones (pero muy pequeños) que hacen que el sonido se entrecorte algo. Pero ya digo, casi perfecto

Euhhh.. y probando esa rom en el PC? a ver si el petardeo ese es una "incompatibilidad leve" del emu... :brindis:

acordero
09/02/2006, 03:11
Yo he probado unas 20 roms y todas van OK. Son juegos que conozco bastante bien y no veo ningun problema de rendimiento.

Es un gran trabajo por vuestra parte!!!!

Ahora solo falta tener diagonales en el emulador, control de volumen y poco mas y seria casi perfecto (normalmente perfecto lo dejo para el original [wei4] )

miq01
09/02/2006, 03:39
Euhhh.. y probando esa rom en el PC? a ver si el petardeo ese es una "incompatibilidad leve" del emu... :brindis:
Uf... Dudo mucho que F1-Spirit tenga alguna incompatibilidad con fMSX en PC. Creo que el cartucho llevaba un chip de sonido especial, pero diría que muchos juegos de Konami lo acabaron incorporando. De todas maneras, luego lo pruebo y lo confirmo.

Edit: Confirmado... más o menos. Lo he podido probar con el emu BlueMSX y va perfecto. Es que no tengo el fMSX para Windows a mano.

schan
09/02/2006, 04:04
Sigo sin poder cargar los dsk pero bueno, con los rom perfecto, ya que lo he estado probando mejor y, apartede las diagonales (el king's valley x ejemplo de hace imposible) un 10!
Dejo adjunto un scheme para el mocca, con sus grafiquillos y todo, por si alguien lo usa y le sirve.
Un saludo

Uncanny
09/02/2006, 04:23
Uncanny, que conste que el port es de A600. :) KaosOverride arregló lo de los nombres de las ROMS "de sistema" y yo he hecho una chapucilla para añadirle controles básicos.

Respecto a lo que preguntas de velocidad va casi perfecto. Sólo he probado tres juegos, y juraría que únicamente en el F1-Spirit hay pequeños parones (pero muy pequeños) que hacen que el sonido se entrecorte algo. Pero ya digo, casi perfecto.

¿Nos puedes contar cómo va el tuyo? Que yo no le voy a hacer ascos a otro emu de MSX, ¿eh? :)Gracias por la info. Respecto al port, pues estoy peleandome con openMSX, que es bastante más complejo y quizás a priori menos optimo que fMSX (este está escrito solo en C y openMSX además de usar C++ es tan "complejo" como BlueMSX) pero tiene compatibilidad hasta con Turbo-R (fMSX hasta MSX2+ lo cual en realidad es más que suficiente).

La verdad es que me está dando más trabajo del que pensaba (y eso que lo hago a ratos), ahora solo me queda que linke con las librerías del toolchain, porque al final se empeza en linkar las de mi sistema (y ni forzandolo con las variables de entorno coge la ruta correcta...).

KaosOverride
09/02/2006, 04:49
Joo, tonto estoy... en el "codigo ejemplo" de la libreria para joystick, al final, en la encuesta al joystick virtual, pone "cpc_joy..." y no "pc_joy.." y CPC_JOY en lugar de PC_JOY.... xD

xyz0
09/02/2006, 05:12
Da gusto leeros... Muchas gracias por vuestro trabajo. :)

KaosOverride
09/02/2006, 07:11
Bueno, he probado a injertar mi codigo de joystick al fMSX y "parece" que va... a ver que os parece :)

Yo no se si podre hacer mucho mas por este emu, porque me gustaria dedicarme mas al Caprice y al xRick (A este ultimo ya le queda poca cosa por hacer...)

Venga, que lo disfruteis!! :brindis:

(Source+ejecutable)

EDIT:
IMPORTANTE:

WOOOOPSSSS

Tras un aviso de LTK666 (Gracias...) me he encontrado esto en la web del autor del fMSX (http://fms.komkon.org/fMSX)

"fMSX Ports
There are versions of fMSX for Amiga, Macintosh, IBM PC (both MSDOS and Windows), Unix, and other systems. If you would like to port fMSX to another system or make changes to the fMSX's code, please, contact me by email or some other means. Note that fMSX source code is freely distributable but it is not in public domain. You cannot use it for commercial purposes unless you contact me to arrange the conditions of such usage. Feel free to look at existing drivers as well as other code."

"As I made the source code available for others to see from the very beginning, many MSX emulators derived from the fMSX code have appeared in the past years and still continue to pop up every now and then. My copyright policy is simple: you can use my code for non-profit purposes as long as you give me a proper credit with my name, URL, etc. Using the whole code as it is and calling it a different name is not permitted though, as any other form of plagiarism. If you wish to use fMSX source code for commercial purposes, you will have to license it from me. Latest fMSX news, information, and source code are always available from"

Vamos, que no quiere que se toque su codigo sin antes avisarle....

Sintiendolo mucho, y hasta que se aclare el asunto, voy a borrar los ficheros que tengo subidos a este hilo tanto con binarios como source :(

Espero que lo entendais... (No e splan de que se raye y detenga el desarrollo del emu, lo cierre y lo vuelva comercial y de codigo cerrado)

DARKGATE
09/02/2006, 15:15
:( excuse me boys, i don't understand nothing, i have download fmsx
I see a directory with the emu fmsx.gpe, kmos.rom, disk.rom, msx2.rom, ecc....
But for put the games?
When start the emu, i don't see a menu for start the games.
Explain me please, thank you.

KaosOverride
09/02/2006, 15:56
This was just a "It works!!" port, only experimental... was made in just some minutes over the fMSX-SDL sources to resolve some issues with Vfaft files under linux... Later other version with basic controller input was done, and then I made one supporting the diagonals (Which I retired because of the "conditions of use" of the code... First we must contact the autor of the emulator to ask for permission for moddifing the code... It's not "public domain", just "visible for public")

All this was made in a few hours, so don't expect virtual keyboards, OSD menues, nor file selectors...

You can pass throught command line options (as you can see above in A600 posts) ROM cartridge or disc images (With appropiate autoexec.bas for autorun discs) using scripts or using Kounch's Selector (the configurable-flexible file selector that is avaiable some posts above)

I'm sorry about retiring the "working diagonals" version, but... First we must ensure we have the permission from the original autor of the emulator...


___(For spanish boyzzz)___: Alguien se va a hacer cargo de este emu? Yo en este momento no... Antes tengo otro par de proyectos para acabar :( Si alguien lo va a continuar, puede partir de los fuentes SDL sin soporte de pad de la GP2x, del parche de miq01 para controles basicos o sino le paso los fuentes con mi apaño de las diagonales, pero como veis tendreis que pedir permisor al autor para ver bajo que condiciones os deja sacar el emulador... :(

TORWAK
09/02/2006, 16:22
Y digo yo si este emulador esta generando tantos problemas en cuanto a permisos,¿ no se podria portar la misma version que saco Ryleh para la Gp32 ? :confused: y que funciona practicamente perfecta en su ultima version a excepcion del teclado que no lo implemento.


:heavy:

Puck2099
09/02/2006, 16:38
Y digo yo si este emulador esta generando tantos problemas en cuanto a permisos,¿ no se podria portar la misma version que saco Ryleh para la Gp32 ? :confused: y que funciona practicamente perfecta en su ultima version a excepcion del teclado que no lo implemento.


:heavy:

Pues supongo que estará basado en el mismo fMSX del Faizullin, así que el problema de derechos seguiría siendo el mismo...

KaosOverride
09/02/2006, 16:39
Tb es posible que un "diff" de mi codigo y el del emu, sea suficiente como "no se distribuyen los fuentes"... y una breve explicacion de como partir d elso fuentes originales, aplicar el diff y compilarse cada uno el suyo :)

miq01
09/02/2006, 20:16
Bueno, he probado a injertar mi codigo de joystick al fMSX y "parece" que va... a ver que os parece :)
¡Bien!


Sintiendolo mucho, y hasta que se aclare el asunto, voy a borrar los ficheros que tengo subidos a este hilo tanto con binarios como source :(

Espero que lo entendais... (No e splan de que se raye y detenga el desarrollo del emu, lo cierre y lo vuelva comercial y de codigo cerrado)
¡Cierto! Cuando LTK666 me avisó le pedí que lo hiciera público y a mí no se me ocurrió borrar los archivos que yo mismo había adjuntado aquí... :rolleyes: Bueno, hecho.

Por cierto, sintiéndolo mucho también y por la misma razón, los que podéis actualizar la zona de descargas, ¿podéis quitarlo? Gracias.

Wild[Kyo]
09/02/2006, 20:35
Hola compañeros,

bueno ya he borrado la descarga del fMSX y la del Código fuente.
Esperemos que os concedan el permiso necesario para liberar al menos los binarios.

Un saludo compañeros y gracias! :D

KaosOverride
09/02/2006, 21:19
La cuestion es... Alguien va a hacerse cargo del port? :) Yo por ahora poco mas puedo hacer... Son mis primeras aventuras y desventuras en programacion grafica/juegos/SDL y aun no he empezado a trastear en el Caprice para incorporarle menu, teclado virtual, etc... Asi que menos con el fMSX... HAsta que no "aprenda" no lo podre continuar ;) Practicamente lo he dejado en el mismo callejon que el Caprice (Solo que este va mucho mas lijero, realtime, etc...), callejon del que espero sacar pronto al de CPC :)

Yo no tengo ningun problema en pasarle los fuente a aquel que se haga cargo del proyecto, por si le valen mis "apaños" para alg, una vez haya realizado las gestiones con el autor del emu [wei5]

ivanpd
09/02/2006, 21:35
pero leyendo lo q ha pegado kaosoverride, el autor dice q no quiere q se use si codigo para uso comerciales, o si no le dan credito.

Por tanto no habria q haber problema no?

miq01
09/02/2006, 22:06
La cuestion es... Alguien va a hacerse cargo del port? :) Yo por ahora poco mas puedo hacer... Son mis primeras aventuras y desventuras en programacion grafica/juegos/SDL y aun no he empezado a trastear en el Caprice para incorporarle menu, teclado virtual, etc... Asi que menos con el fMSX... HAsta que no "aprenda" no lo podre continuar ;) Practicamente lo he dejado en el mismo callejon que el Caprice (Solo que este va mucho mas lijero, realtime, etc...), callejon del que espero sacar pronto al de CPC :)
Yo ahora mismo estoy liado con otras cosas, así que de momento no. Quizás en un tiempo me lo mire, pero seguro que alguien se habrá puesto antes con este emulador, o con OpenMSX, por dar un ejemplo absolutamente al azar... :)


pero leyendo lo q ha pegado kaosoverride, el autor dice q no quiere q se use si codigo para uso comerciales, o si no le dan credito.

Por tanto no habria q haber problema no?
La clave es ésta, por mucho que luego añada algo más: If you would like to port fMSX to another system or make changes to the fMSX's code, please, contact me by email or some other means. Con lo cual, para curarse en salud, y sobre todo porque Marat Fayzullin (bonito nombre :)) lo pide, mejor ponerse en contacto con él antes de hacer algo público (y no como hicimos nosotros... ;))

Uncanny
09/02/2006, 23:57
Yo ahora mismo estoy liado con otras cosas, así que de momento no. Quizás en un tiempo me lo mire, pero seguro que alguien se habrá puesto antes con este emulador, o con OpenMSX, por dar un ejemplo absolutamente al azar... :)Si no consiguo nada con el openMSX y el autor de fMSX da permiso para distribuir el código fuente o un parche diff a aplicar sobre el código fuente original (a esto último no creo que ponga pegas, ya que no es código fuente util por si solo), pues yo mismo si quereis puedo continuarlo, total me estaba haciendo un GUI para cuando consiguiera hacer andar al openMSX pero aun se resiste... :p

Respecto a eso, ayer seguí hasta las tantas con el openMSX, en la fase de compilación he conseguido que se compilen todos archivos (que no son pocos...) pero en la fase de linkado, a la hora de enlazar ciertas librerías (que tengo compiladas obviamente), como son SDL_image (concretamente usando las funciones propias de libpng y libjpeg) y libTCL (que también tengo compilada). He repasado todos los archivos, cambiado los valores de las variables de script y de entorno, métido los flags necesarios (o eso se supone, pues cuando los he probado a compilar ejemplos más simples de cargar pngs con SDL_image no he tenido problemas de linkado...). No se que se me escapa o si podeis arrojar algo de luz pero si quereis pongo aquí los errores por si a alguien se le ocurre que puede ser... :confused:

P.D: Puck y a quien le interese, no pude hacerlo anoche y esta mañana he estado algo liado, así que en un rato voy a subir mi toolchain completo al FTP, son casi 70 MB así que tardará un rato, cuando esté completamente subido avisaré :)

Puck2099
10/02/2006, 00:01
No se que se me escapa o si podeis arrojar algo de luz pero si quereis pongo aquí los errores por si a alguien se le ocurre que puede ser... :confused:

Sí, pégalos a ver si vemos qué falla :)


P.D: Puck y a quien le interese, no pude hacerlo anoche y esta mañana he estado algo liado, así que en un rato voy a subir mi toolchain completo al FTP, son casi 70 MB así que tardará un rato, cuando esté completamente subido avisaré :)

Ah, perfecto, por mi no tengas prisa, que me piro ahora mismo a entrenar y no vuelvo hasta la noche :brindis:

Saludos

miq01
10/02/2006, 00:55
Pues sí, Uncanny. Pega algunos errores de linkado aquí. ¿Has puesto el mensaje de error tal cual en Google? A mí eso me ha salvado de más de una...

Por cierto, hace años supe de un chico de Madrid que a "linkar" o "enlazar" le llamaba "linketizar". Lo juro... :D

KaosOverride
10/02/2006, 01:12
A mi alguna vez me ha cascado el linkado por poner en mal orden las librerias (por ejemplo -lmikmod -lSDL -lSDL_mixer, etc..) Hay que hacer a veces algunos malabares...

Puck2099
10/02/2006, 04:22
Uhm, acabo de ver un gp2xdev.tar.bz2 de 70 MB en el FTP público que ayer no estaba... :D

Uncanny, ¿es tu toolchain? :)

Uncanny
10/02/2006, 05:16
Uhm, acabo de ver un gp2xdev.tar.bz2 de 70 MB en el FTP público que ayer no estaba... :D

Uncanny, ¿es tu toolchain? :)Sip, no lo he puesto porque lo dejé subiendo y me fui a frikear a la tienda de un colega a por mi dosis de manga (género hentai incluido xDD) y cuando he llegado me he puesto a cenar. Para los que quieran bajarselo está en /Programacion/GP2X/linux, donde también hay otros toolchains para Linux subidos previamente por Puck y D_Skywalk, el mio tiene el el nombre de gp2xdev.tar.bz2. Está basado en GCC 4.0.2 y GLIB 2.3.5.

Para crearlo use el script en Perl de ooPo, solo que quite y añadi algunos parametros a la compilación de las herramientas y también de las librerías, que además añadi alguna más, por ejemplo entre las modificadas está SDL_mixer está parcheado (parche sacado de la web de theoddbot) para usar la lib de decodificación Tremor (rama "low-memory") en lugar de libvorbis, ya que esta, al contrario que libvorbis, está especificamente programada en punto fijo/enteros (ideal para arquitectura ARM) para poder reproducir OGG en sistemas de pocos recursos (o sistemas embebidos). Las librerías que trae el toolchain son:

- zlib
- ncurses
- libxml2
- libTCL
- SDL de paeryn (aceleradas por hardware)
- libVorbis
- libOGG
- libTremor
- libMIkMod
- SMPEG (da problemas con SDL_mixer por mis libs de SDL_mixer no usa SMPEG)
- SDL_mixer
- jpeg
- libpng
- SDL_image
- FreeType
- SDL_ttf
- SDL_gfx
- TinySDGL (port de TinyGL para usarse especialmente con SDL).
- libID3TAG
- libMAD (para decodificar MP3 y programada en punto fijo)
- libModPlug (al igual que MikMod, para reproducir música de trackers pero con más soporte de formatos que MikMod).
- Speex (un codec libre de voz, ideado sobre todo para usarse en VoIP).
- FLAC (un codec libre de tipo lowless, es decir, compresión de sonido sin perdida de calidad).
- SDL_sound (puede complementar a SDL_mixer para reproducir sonidos en un juego, ya que puede usar bastantes codecs de audio como Speex, FLAC, WAV, MP3, OGG, MIDI, VOC o modulos de trackers)

Creo que no se me olvida ninguna, y bueno, decir que el SDL test de Guyfawkes compila, así como otros programas y demos que he visto para probar y se ejecutan sin problemas en la GP2X, pero libs como SDL_sound aun no las he probado, así que no puedo asegurar nada.

Nota: La ruta por defecto, tal como se compilo es /usr/local/gp2xdev si quereis usarla en otro sitio no olvideis de editar los archivos .la del subdirectorio lib con la ruta donde lo vayais a usar para que no haya problema con los tipicos "missing libraries" que da las libtool al usarlas.

Puck2099
10/02/2006, 05:19
Uncanny, no quiero llenar este hilo con cosas que no tienen nada que ver, así que si no te importa, seguimos en el de los MODs, porque sigo con problemas... :(

Uncanny
10/02/2006, 05:43
Ahora lo de openMSX:

En mi sistema, la ruta absoluta del toolchain, con librerias y cabeceras incluidas es por supuesto exportada en la variable PATH, vamos, que no es por encontrar las herramientas, de hecho el proceso de compilación lo hace sin problemas como dije.

Respecto a las librerías y su orden (por cierto, más que en LDFLAGS o alguna variable similar en openMSX deben estar explicita, uno mismo debe añadirlos, en de los guiones de compilación):

-L"/usr/local/gp2xdev/lib -Wl,-rpath-link,/usr/local/gp2xdev/lib" -L"/usr/local/gp2xdev/lib" -lSDL -lSDL_image -ljpeg -lpng12 -lz -ltcl8.4 -lxml2 -lgcc -lm -lc -lpthread -ldl

Alguna sobrará seguramente, pero de las que están se cuales son necesarias, como SDL SDL_image libxml2 o TCL de hecho en la fase previa a la compilación el configure (que no es el típico de libtool sino que hace uso de varios scripts) detecta y te muestra que librerías y versiones de estás (así como sus cabeceras) ha encontrado, y si no tiene las justamente necesarias (por ejemplo Jack y OpenGL son opcionales) te dice que las instales hasta que no lo haga y las detecte no te crea el makefile para poder que puedas empezar a compilar.

Aquí os dejo la salida de errores:


Linking openmsx.gpe...
/usr/local/gp2xdev/lib/gcc/gp2x/4.0.2/../../../../gp2x/lib/libc.a(strtoul.o): In function `strtoul':
strtoul.c:(.text+0x0): multiple definition of `strtoul'
/usr/local/gp2xdev/lib/libtcl8.4.a(strtoul.o):strtoul.c:(.text+0x0): first defined here
/usr/local/gp2xdev/lib/gcc/gp2x/4.0.2/../../../../gp2x/bin/ld: Warning: size of symbol `strtoul' changed from 708 in /usr/local/gp2xdev/lib/libtcl8.4.a(strtoul.o) to 100 in /usr/local/gp2xdev/lib/gcc/gp2x/4.0.2/../../../../gp2x/lib/libc.a(strtoul.o)
/usr/local/gp2xdev/lib/libtcl8.4.a(tclUnixFCmd.o): In function `GetGroupAttribute':
tclUnixFCmd.c:(.text+0x960): warning: Using 'getgrgid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/local/gp2xdev/lib/libtcl8.4.a(tclUnixFCmd.o): In function `SetGroupAttribute':
tclUnixFCmd.c:(.text+0xbb8): warning: Using 'getgrnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/local/gp2xdev/lib/libtcl8.4.a(tclUnixFCmd.o): In function `GetGroupAttribute':
tclUnixFCmd.c:(.text+0x998): warning: Using 'endgrent' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
derived/gp2x-linux-gp2x-gp2x/obj/file/FileOperations.o: In function `openmsx::FileOperations::getUserHomeDir(std::basi c_string<char, std::char_traits<char>, std::allocator<char> > const&)':
FileOperations.cc:(.text+0x33c): warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
derived/gp2x-linux-gp2x-gp2x/obj/events/CliServer.o: In function `openmsx::getUserName()':
CliServer.cc:(.text+0x5c): warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/local/gp2xdev/lib/libtcl8.4.a(tclUnixFCmd.o): In function `GetOwnerAttribute':
tclUnixFCmd.c:(.text+0xa74): warning: Using 'endpwent' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/local/gp2xdev/lib/libtcl8.4.a(tclUnixChan.o): In function `TcpGetOptionProc':
tclUnixChan.c:(.text+0x74c): warning: Using 'gethostbyaddr' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/local/gp2xdev/lib/libtcl8.4.a(tclUnixChan.o): In function `CreateSocketAddress':
tclUnixChan.c:(.text+0xb2c): warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/local/gp2xdev/lib/libtcl8.4.a(tclIOSock.o): In function `TclSockGetPort':
tclIOSock.c:(.text+0x50): warning: Using 'getservbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
derived/gp2x-linux-gp2x-gp2x/obj/config/XMLLoader.o: In function `openmsx::XMLLoader::loadXML(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned int> > >*)':
XMLLoader.cc:(.text+0xbc0): undefined reference to `xmlParseFile'
derived/gp2x-linux-gp2x-gp2x/obj/events/CliConnection.o: In function `openmsx::StdioConnection::run()':
CliConnection.cc:(.text+0x6e4): undefined reference to `xmlParseChunk'
derived/gp2x-linux-gp2x-gp2x/obj/events/CliConnection.o: In function `openmsx::SocketConnection::run()':
CliConnection.cc:(.text+0x860): undefined reference to `xmlParseChunk'
derived/gp2x-linux-gp2x-gp2x/obj/events/CliConnection.o: In function `openmsx::CliConnection::CliConnection(openmsx::Sc heduler&, openmsx::CommandController&)':
CliConnection.cc:(.text+0x2398): undefined reference to `xmlCreatePushParserCtxt'
derived/gp2x-linux-gp2x-gp2x/obj/events/CliConnection.o: In function `openmsx::CliConnection::CliConnection(openmsx::Sc heduler&, openmsx::CommandController&)':
CliConnection.cc:(.text+0x27a4): undefined reference to `xmlCreatePushParserCtxt'
/usr/local/gp2xdev/lib/libSDL_image.a(IMG_jpg.o): In function `IMG_LoadJPG_RW':
/usr/local/gp2x/libs-gp2x/SDL_image/IMG_jpg.c:206: undefined reference to `jpeg_std_error'
/usr/local/gp2x/libs-gp2x/SDL_image/IMG_jpg.c:217: undefined reference to `jpeg_CreateDecompress'
/usr/local/gp2x/libs-gp2x/SDL_image/IMG_jpg.c:219: undefined reference to `jpeg_read_header'
/usr/local/gp2x/libs-gp2x/SDL_image/IMG_jpg.c:230: undefined reference to `jpeg_calc_output_dimensions'
/usr/local/gp2x/libs-gp2x/SDL_image/IMG_jpg.c:247: undefined reference to `jpeg_start_decompress'
/usr/local/gp2x/libs-gp2x/SDL_image/IMG_jpg.c:253: undefined reference to `jpeg_finish_decompress'
/usr/local/gp2x/libs-gp2x/SDL_image/IMG_jpg.c:257: undefined reference to `jpeg_destroy_decompress'
/usr/local/gp2x/libs-gp2x/SDL_image/IMG_jpg.c:251: undefined reference to `jpeg_read_scanlines'
/usr/local/gp2x/libs-gp2x/SDL_image/IMG_jpg.c:211: undefined reference to `jpeg_destroy_decompress'
/usr/local/gp2x/libs-gp2x/SDL_image/IMG_jpg.c:159: undefined reference to `jpeg_resync_to_restart'
/usr/local/gp2xdev/lib/libSDL_image.a(IMG_png.o): In function `IMG_LoadPNG_RW':
/usr/local/gp2x/libs-gp2x/SDL_image/IMG_png.c:123: undefined reference to `png_create_read_struct'
/usr/local/gp2x/libs-gp2x/SDL_image/IMG_png.c:281: undefined reference to `png_destroy_read_struct'
/usr/local/gp2x/libs-gp2x/SDL_image/IMG_png.c:147: undefined reference to `png_set_read_fn'
/usr/local/gp2x/libs-gp2x/SDL_image/IMG_png.c:150: undefined reference to `png_read_info'
/usr/local/gp2x/libs-gp2x/SDL_image/IMG_png.c:151: undefined reference to `png_get_IHDR'
/usr/local/gp2x/libs-gp2x/SDL_image/IMG_png.c:155: undefined reference to `png_set_strip_16'
/usr/local/gp2x/libs-gp2x/SDL_image/IMG_png.c:169: undefined reference to `png_get_valid'
/usr/local/gp2x/libs-gp2x/SDL_image/IMG_png.c:198: undefined reference to `png_read_update_info'
/usr/local/gp2x/libs-gp2x/SDL_image/IMG_png.c:200: undefined reference to `png_get_IHDR'
/usr/local/gp2x/libs-gp2x/SDL_image/IMG_png.c:250: undefined reference to `png_read_image'
/usr/local/gp2x/libs-gp2x/SDL_image/IMG_png.c:172: undefined reference to `png_get_tRNS'
/usr/local/gp2x/libs-gp2x/SDL_image/IMG_png.c:189: undefined reference to `png_set_expand'
/usr/local/gp2x/libs-gp2x/SDL_image/IMG_png.c:164: undefined reference to `png_set_expand'
/usr/local/gp2x/libs-gp2x/SDL_image/IMG_png.c:196: undefined reference to `png_set_gray_to_rgb'
/usr/local/gp2xdev/lib/libtcl8.4.a(tclLoadDl.o): In function `TclpDlopen':
tclLoadDl.c:(.text+0x2c): undefined reference to `dlopen'
tclLoadDl.c:(.text+0x78): undefined reference to `dlopen'
tclLoadDl.c:(.text+0x9c): undefined reference to `dlerror'
/usr/local/gp2xdev/lib/libtcl8.4.a(tclLoadDl.o): In function `TclpFindSymbol':
tclLoadDl.c:(.text+0x114): undefined reference to `dlsym'
tclLoadDl.c:(.text+0x170): undefined reference to `dlsym'
/usr/local/gp2xdev/lib/libtcl8.4.a(tclLoadDl.o): In function `TclpUnloadFile':
tclLoadDl.c:(.text+0x18c): undefined reference to `dlclose'
collect2: ld returned 1 exit status
make: *** [derived/gp2x-linux-gp2x-gp2x/bin/openmsx.gpe] Error 1
Por cierto, mi paranoia me llevo a cambiar la SDL_image (por probar) que había yo mismo compilado (y sabía por las pruebas que funcinaban con los PNG) por las de theoddbot y también por las de paeyn (las precompiladas) pero he obtenido los mismos errores, si se os ocurre algo o quereis lo que hasta ahora he modificado de openMSX solo decidlo y os lo adjunto (después de todo está bajo licencia GPL) por si quereis intentarlo vosotros mismos :D

KaosOverride
10/02/2006, 06:18
"creo" que los errores de jpg y los de png se arreglarian poniendo los -ljpeg y -lpng12 antes de -SDL_image... "creo".... :confused:

y los >undefined reference to `dlsym'< gogleando pone que corresponden a una tal -ldl

a ver si hay suerte!! :)

Puck2099
10/02/2006, 06:40
"creo" que los errores de jpg y los de png se arreglarian poniendo los -ljpeg y -lpng12 antes de -SDL_image... "creo".... :confused:

y los >undefined reference to `dlsym'< gogleando pone que corresponden a una tal -ldl

a ver si hay suerte!! :)

Yo tengo esa -ldl en el Fenix y, aunque me enlaza, me da el siguiente warning:


/home/puck/gp2x/publicables/fenixb2_src/fxi/src/i_func.c:4859: warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking

¿Eso puede ser una fuente de problemas?

Saludos

Uncanny
10/02/2006, 06:43
"creo" que los errores de jpg y los de png se arreglarian poniendo los -ljpeg y -lpng12 antes de -SDL_image... "creo".... :confused:

y los >undefined reference to `dlsym'< gogleando pone que corresponden a una tal -ldl

a ver si hay suerte!! :)Gracias por el consejo, aunque los mismos resultados :llorosa:

Estoy probando distintos ordenes, pero es un lio saber si es que falta alguna (la ldl está en los flags alf final), si es del orden de las librerías o a saber (y ya me gustaría saber a mi las reglas de preferencia para tener claro el orden siempre... que hay que andar con "plantillas" de las que sabes que te funciona xDD).

Cuando tenía el toolchain construido, durantes las pruebas compilé SDL_mixer con soporte SMPEG y aunque intentara un ejemplo que reprodujera un MOD o un OGG, salian errores tipo "del_archivo_fuente_de_librería_tal.c undefined reference to la_funcion_que_sea" que provenían de algun .o la librería estática de SDL_mixer.a y hasta que no lo compilé sin soporte de SMPEG no podía compilar con SDL_mixer, no se si fue fallo mio o es que SMPEG no va en SDL_mixer en ARM (me parece que es esto último, pues al contrario que libMAD no está escrito en punto fijo y la gente con Zaurus creo que tampoco usan SMPEG con SDL_mixer).

En fin, seguiré intentandolo y si no hay forma le mandaré un correo o entraré en los foros de los devs de openMSX (he hablado en los foros con alguno antes, parecen buena gente y responden enseguida).

P.D: KaosOverride, por curiosidad ¿has contactado por correo con el autor de fMSX?

Uncanny
10/02/2006, 06:48
Yo tengo esa -ldl en el Fenix y, aunque me enlaza, me da el siguiente warning:


/home/puck/gp2x/publicables/fenixb2_src/fxi/src/i_func.c:4859: warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking

¿Eso puede ser una fuente de problemas?

SaludosA mi de da esos warning con ciertas funciones de la glibc, pero compila, de hecho me lo da con la función getpwnam en la demo-mod, pero compila y funciona, eso si, también me tiene mosqueado, y no se si es con mi toolchain o también sale con los otros, ¿te ocurre lo mismo al compilar tu port de Fenix con tus otros toolchain?

Puck2099
10/02/2006, 06:51
A mi de da esos warning con ciertas funciones de la glibc, pero compila, de hecho me lo da con la función getpwnam en la demo-mod, pero compila y funciona, eso si, también me tiene mosqueado, y no se si es con mi toolchain o también sale con los otros, ¿te ocurre lo mismo al compilar tu port de Fenix con tus otros toolchain?

Pues creo que sí, que me pasa con el otro toolchain también...

¿Sabes para qué se usa esa función? Porque quizá venga por ahí uno de mis problemas con el port del Fenix, que peta al abrir algunos archivos...

Uncanny
10/02/2006, 07:24
Pues creo que sí, que me pasa con el otro toolchain también...

¿Sabes para qué se usa esa función? Porque quizá venga por ahí uno de mis problemas con el port del Fenix, que peta al abrir algunos archivos...Si te refieres a dlopen pues es una función de la API POSIX que usa la cabecera dlfcn.h.(de ahí será el nombre de la librería y que se tenga que usar -ldl) que se usa para obtener acceso y cargar objetos ejecutables como puede ser una librería precompilada, aunque haciendo un man dlopen tienes más info, pero parece que se encarga de cargar librerías dinámicas.

Una curiosidad, si haces sdl-config --static-libs verás que -ldl aparece pero en sdl-config --libs, no se, tengo que informarme más de estas funciones y que tiene que ver con como compilemos la glibc si es que es de eso...

Puck2099
10/02/2006, 07:35
Si te refieres a dlopen pues es una función de la API POSIX que usa la cabecera dlfcn.h.(de ahí será el nombre de la librería y que se tenga que usar -ldl) que se usa para obtener acceso y cargar objetos ejecutables como puede ser una librería precompilada, aunque haciendo un man dlopen tienes más info, pero parece que se encarga de cargar librerías dinámicas.

Una curiosidad, si haces sdl-config --static-libs verás que -ldl aparece pero en sdl-config --libs, no se, tengo que informarme más de estas funciones y que tiene que ver con como compilemos la glibc si es que es de eso...

*****, pues no, acabo de descubrir ahora mismo que mis problemas con el port del Fenix no son porque cargue mal los archivos, sino por la distinción entre mayúsculas y minúsculas...

Después de solucionar los problemas de dos foreros relativos al uso de mayúsculas, se me ocurre mirar el Yetti, que era uno de los juegos que petaban, y veo que tiene un archivo en mayúsculas... En PC funcionaba, lo pongo en minúsculas y SEGMENTATION FAULT, igualito que en la GP2X (que al parecer trata todos los ficheros en minúsculas, al menos con la SD en FAT32).

Total, que llevo semanas comiéndome la cabeza, probando de todo, haciendo debugging como un tonto para nada :(

Claro, que esto me pasa porque apenas tengo códigos fuente en Fenix para depurar, y hacerlo a partir de los .dcb binarios aplicando "ingeniería inversa" y mucha imaginación de poco me ha servido :(

Saludos

Uncanny
10/02/2006, 08:06
*****, pues no, acabo de descubrir ahora mismo que mis problemas con el port del Fenix no son porque cargue mal los archivos, sino por la distinción entre mayúsculas y minúsculas...

Después de solucionar los problemas de dos foreros relativos al uso de mayúsculas, se me ocurre mirar el Yetti, que era uno de los juegos que petaban, y veo que tiene un archivo en mayúsculas... En PC funcionaba, lo pongo en minúsculas y SEGMENTATION FAULT, igualito que en la GP2X (que al parecer trata todos los ficheros en minúsculas, al menos con la SD en FAT32).

Total, que llevo semanas comiéndome la cabeza, probando de todo, haciendo debugging como un tonto para nada :(

Claro, que esto me pasa porque apenas tengo códigos fuente en Fenix para depurar, y hacerlo a partir de los .dcb binarios aplicando "ingeniería inversa" y mucha imaginación de poco me ha servido :(

SaludosCreia que habia muchos juegos en Fenix (con código fuente me refiero) por ahí en los foros de DIV y Fenix, aunque tampoco estoy seguro. Cuando en su dia aprendi a usar DIV juraría que no era case sensitive (el lenguaje en si), pero lo que si se, al menos con Fenix puesto que DIV hace años que no lo uso, es que si que importa el sistema de archivos sobre el que está la aplicación.

Por ejemplo, en Linux en tu partición ext3 o reiser puedes crear dos directorios llamado PRUEBA y prueba, pero si montas una partición FAT del HD verás que no se puede, aunque estés en Linux pues parece una limitación también del sistema de archivos... y cuando se trata de abrir archivos pues la cosa es parecida, en Linux y sus sistemas de archivos si que importa las mayusculas o minusculas del nombre del archivo y su ruta pero a la hora de tratar con archivos en FAT (en NTFS nunca escribo) es prerible usar solo minusculas en las rutas y ficheros al programar algo que trate con funciones de ficheros si programas en Linux o Windows y quieres portarla de un sitio a otro, así te quitas problemas, y parece que en la GP2X pasa igual y justamente le paso lo mismo a Miq01 creo con las ROMs de sistema de fMSX y la solución era ponerlas en minusculas, según descubrió KaosOverride.

KaosOverride
10/02/2006, 15:49
y parece que en la GP2X pasa igual y justamente le paso lo mismo a Miq01 creo con las ROMs de sistema de fMSX y la solución era ponerlas en minusculas, según descubrió KaosOverride.
Mas bien en lugar de poner los ficheros en minusculas, hice que el emulador los llamara en minuscula

Por cierto, en el selector pasa distinto si poneis filtros por extension... tengo que definir uno para .ROM y otro para .rom... Ahi si que me los diferencia!!!!

No se.. habria que destripar el codigo del interprete de Vfat...
Si el nombre de fichero es 8.3 msdos y 100% en mayusculas, lo convierte a minusculas antes de buscarlo en la sd? Digo, los ficheros "clasicos" sin la extension vfat (Que es una cadena de texto aparte, para mantener la 8.3 y poder usar FAT16 de windows moderno, en versiones anteriores...)

Uncanny
12/02/2006, 10:22
Por fin, después pelearme con los multiples guiones (para construir openMSX no hay un simple configure ni un único Makefile que se encargue de todo, sino que hay varios guiones .mk), por no decir las pruebas de diferentes flags, sobre todo para que enlazará correctamente con las librerías necesarias, e incluso de tener que recompilar las libs de TCL (modificando "warramente" ciertos archivos para que compilara y funcionara al enlazar...) he conseguido compilar y enlazar openMSX, es decir, ya he podido portar openMSX a la GP2X y comprobar que funciona [wei4]

Lo he probado con el Vampire Killer (Castlevania) y creo que va bastante bien, porque aun no he modificado el código (bueno, si, pero solo para la carga de ROMs de sistemas MSX), vamos que no hay controles definidos aun para la GP2X, ni mucho menos un GUI (aun) pero se puede ver como va el juego pues si no se pulsa ningun boton, por ejemplo en Vampire Killer, empieza el modo demo del juego y se ve que va mejor de lo que esperaba. Eso si, el ejecutable, compilado y enlazado estáticamente ocupa unos 7 MB (después de pasarle el strip).

Mañana intentaré ponerme a adaptar los controles básicos de la GP2X (tendré que currarme un teclado virtual, porque openMSX usa una consola virtual) y hacer algunas pruebas más, antes de ponerme a optimizar y crear el GUI :D

miq01
12/02/2006, 10:42
Uncanny: :rever:

inu64
12/02/2006, 18:01
increible , genial uncanny , :brindis:

KaosOverride
12/02/2006, 18:14
Que guay!! Entonces no sera necesario liarla con la licencia del fMSX :D

Lo de las roms del openMSX es tambien por lo de las mayus? [wei5]

Wild[Kyo]
12/02/2006, 18:42
Impresionante Uncanny!!! :rever: :rever: :rever:

Kaos, os habeis puesto en contacto con el autor del fMSX? Aunque sea liberar los binarios sin las fuentes seguro que deja... creo... :rolleyes:

Uncanny
12/02/2006, 21:02
Que guay!! Entonces no sera necesario liarla con la licencia del fMSX :D

Lo de las roms del openMSX es tambien por lo de las mayus? [wei5]En principio si, lo cambie "por si acaso", openMSX es más algo complejo que fMSX, es más parecido al emulador blueMSX, usa dos directorios para las ROMS de sistemas MSX, una divididas por modelo de MSX, las cuales se pueden personalizar (via archivos XML) y otra que se pueden poner "a pelo", por defecto usa C-BIOS, una System ROM/BIOS libre (por lo que se puede distribuir con openMSX), y está en un directorio en mayusculas, así que por si acaso lo cambié en el código a minusculas, pero probaré también que pasa dejandolo en mayúsculas, aunque me imagino que no funcionará... :rolleyes:
']Impresionante Uncanny!!! :rever: :rever: :rever:

Kaos, os habeis puesto en contacto con el autor del fMSX? Aunque sea liberar los binarios sin las fuentes seguro que deja... creo... :rolleyes:Gracias a todos :D

Respecto a fMSX creo que incluso para distribuir binarios hay que contactar primero con el autor, simplemente para que vea una muestra cortesía en comunicarle que quieres portar su emulador. Respecto a lo del código fuente, tal y como sugirió KaosOverride en este mismo hilo, se podría distribuir en forma de parche a aplicar al código fuente original, tal y como se hace con la distribución de fMSX-SDL, así no creo que el autor de fMSX ponga objeciones, pero claro, antes hay que comunicarselo.

Siendo sinceros, a priori preferiría ocuparme de mejorar y mantener una versión de fMSX para GP2X que de openMSX, porque el código de fMSX está en C puro y duro (openMSX está en C++, usa XML para cargar/guardar datos y TCL como lenguaje de script interno), es sencillo (el código fuente de openMSX no está compuesto de pocos archivos que digamos), su compilación no es tan "enrreversada" (un simple Makefile con lo necesario y listo) y es eficiente (no digo que openMSX no lo sea, pero aun tengo que comprobar si lo es tanto como fMSX). Por contra openMSX al "buscar la perfección" también emula sistemas MSX Turbo-R, mientras que fMSX llegua máximo a emular a MSX2+, aunque en la práctica esto me parece más que suficiente :)

Wild[Kyo]
12/02/2006, 21:22
Respecto a fMSX creo que incluso para distribuir binarios hay que contactar primero con el autor, simplemente para que vea una muestra cortesía en comunicarle que quieres portar su emulador. Respecto a lo del código fuente, tal y como sugirió KaosOverride en este mismo hilo, se podría distribuir en forma de parche a aplicar al código fuente original, tal y como se hace con la distribución de fMSX-SDL, así no creo que el autor de fMSX ponga objeciones, pero claro, antes hay que comunicarselo.


Hola compañero,

pues preguntaba a Kaos si alguien se ha puesto ya en contacto con el autor del fMSX. Yo creo que si le decimos de distribuir el binario no pondrá ninguna objección... el código fuente es otro tema del que seguramente se reciba una respuesta negativa (como le pasó a rlyeh).

Felicidades por el lograr portar el openMSX campeón!

hermes PS2R
12/02/2006, 22:47
']Hola compañero,

pues preguntaba a Kaos si alguien se ha puesto ya en contacto con el autor del fMSX. Yo creo que si le decimos de distribuir el binario no pondrá ninguna objección... el código fuente es otro tema del que seguramente se reciba una respuesta negativa (como le pasó a rlyeh).

Felicidades por el lograr portar el openMSX campeón!

Buenas,

ese autor es muy conocido por sus emuladores y actualmente, los VENDE en su pagina, así que ajo y agua.

De los otros emuladores que veo fuentes, exceptuando el openMSX, todos los demas se basan en fmsx.

La mejor opcion sería utilizar el openmsx de base y construir un nuevo emulador a partir de ahi... En fin.

hermes PS2R
12/02/2006, 22:54
Por cierto, si quereis un emu de MSX1 bien sencillo, el Power MSX es GPL y para MSDOS (VESA).

No debe ser demasiado complejo de portar y de ahí ir añadiendo lo que falte para emular otros sistemas.

fuentes: http://www.zophar.net/Files/pmsx07s.zip

Uncanny
12/02/2006, 23:00
Buenas,

ese autor es muy conocido por sus emuladores y actualmente, los VENDE en su pagina, así que aio y agua.

De los otros emuladores que veo fuentes, exceptuando el openMSX, todos los demas se basan en fmsx.

La mejor opcion sería utilizar el openmsx de base y construir un nuevo emulador a partir de ahi... En fin.Si, se que vende la versión de WIndows compilada, pero hay muchos ports y emuladores basados en su código distribuidos como binarios (como el fMSX32 de rlyeh), no así el código fuente claro, pero lo del parche sería la forma más parecida a tener el código fuente, y por eso decía que el autor de fMSX no creo que ponga pegas si se hace de esa forma, pero claro, una vez más hay que preguntarle primero.

Respecto a openMSX, más usarlo de base para crear otro, es ideal para usarlo directamente (con sus respectivos retoques y optimizaciones para adaptarlo lo mejor posible a la GP2X, y esto pasa también por añadir un teclado virtual al estilo de tu gp2xpectrum Hermes :) ) con un GUI, ya que la comunicación (como el GUI oficial, Catapult) de dicho GUI con openMSX se puede hacer a traves de sockets, o con tuberias (pipes), pero consulté a uno de los desarrolladoes del openMSX en su foro (no le dije nada acerca de un port, solo le pregunté la mejor forma de comunicación para usar en un GUI) y me recomendó por sockets, así que tendré que ponerme a ello.
Por cierto, si quereis un emu de MSX1 bien sencillo, el Power MSX es GPL y para MSDOS (VESA).

No debe ser demasiado complejo de portar y de ahí ir añadiendo lo que falte para emular otros sistemas.

fuentes: http://www.zophar.net/Files/pmsx07s.zipEn mi caso, quería partir de un emulador lo más completo posible, teniendo fMSX esas "limitaciones" propias de la licencia de su autor, openMSX era el mejor candidato, sobre todo por tener licencia GPL :D

hermes PS2R
12/02/2006, 23:20
Si, se que vende la versión de WIndows compilada, pero hay muchos ports y emuladores basados en su código distribuidos como binarios (como el fMSX32 de rlyeh), no así el código fuente claro, pero lo del parche sería la forma más parecida a tener el código fuente, y por eso decía que el autor de fMSX no creo que ponga pegas si se hace de esa forma, pero claro, una vez más hay que preguntarle primero.

Respecto a openMSX, más usarlo de base para crear otro, es ideal para usarlo directamente (con sus respectivos retoques y optimizaciones para adaptarlo lo mejor posible a la GP2X, y esto pasa también por añadir un teclado virtual al estilo de tu gp2xpectrum Hermes :) ) con un GUI, ya que la comunicación (como el GUI oficial, Catapult) de dicho GUI con openMSX se puede hacer a traves de sockets, o con tuberias (pipes), pero consulté a uno de los desarrolladoes del openMSX en su foro (no le dije nada acerca de un port, solo le pregunté la mejor forma de comunicación para usar en un GUI) y me recomendó por sockets, así que tendré que ponerme a ello.En mi caso, quería partir de un emulador lo más completo posible, teniendo fMSX esas "limitaciones" propias de la licencia de su autor, openMSX era el mejor candidato, sobre todo por tener licencia GPL :D

Hombre, la version SDL está distribuida en forma de parches... pero no me parece buena idea depender del código de un menda que puede decidir la continuidad en el futuro del proyecto.

Sobre openmsx, tu mismo comentas que es un TOCHO, bastante complejo de compilar (tal vez poco claro).

Por tanto, partir de una emulacion MSX1 sencilla y añadirle despues la emulacion necesaria para MSX2, no sería mala idea.

Lo malo de ciertos proyectos, es que se hacen demasiado grandes, añadiendo partes para diferentes maquinas, optimizaciones y dependiendo de diversas librerias y se vuelven casi, casi, inmanejables :D

Uncanny
12/02/2006, 23:44
Hombre, la version SDL está distribuida en forma de parches... pero no me parece buena idea depender del código de un menda que puede decidir la continuidad en el futuro del proyecto.Pues si, le puede dar por hacer lo que le venga en gana, es justo por esta incertidumbre y esa licencia por la que no me puse con fMSX, y eso que como digo es casi más preferible.
Sobre openmsx, tu mismo comentas que es un TOCHO, bastante complejo de compilar (tal vez poco claro).

Por tanto, partir de una emulacion MSX1 sencilla y añadirle despues la emulacion necesaria para MSX2, no sería mala idea.

Lo malo de ciertos proyectos, es que se hacen demasiado grandes, añadiendo partes para diferentes maquinas, optimizaciones y dependiendo de diversas librerias y se vuelven casi, casi, inmanejables :DSip, es algo grande, solo con decir que el código fuente se compone de 700 archivos, entre fuentes y cabeceras. La construcción de una versión binaria también es algo "peculiar" como ya dije, hay que modificar ciertos guiones, crear unos nuevos si se desea portar a otra arquitectura y apuntar a mano (el configurador automático me ha fallado en buscar por si solo alguna librería y en las dependencias entre librerías para poder enlazar) a los archivos de cabecera y librerías precompiladas para GP2X.

Aun así el código es limpio (está muy modularizado, de ahí tantos archivos), tiene buena documentación y los desarrolladores te constestan rápido y bien en sus foros si tienes alguna duda, por no decir que es un proyecto muy activo, realmente es un buen emulador de MSX, uno de los mejores en mi opinión.

Lo de partir de un emulador de MSX simple e ir mejorandolo poco a poco sería interesante, pero no tengo tanta experiencia como tu en el campo de la programación de sistemas y aunque que personalmente me resultaría aleccionador, ponerme a crear un emulador habiendo uno tan completo y libre como openMSX sin ni siquiera intentar portarlo a la GP2X sería como reinventar la rueda y no aprovechar el gran trabajo de los desarrolladores de openMSX :brindis: