CPCtelera, desarrollar juegos para Amstrad de forma sencilla

Programando el Amstrad en BASIC, C, etc.
dragon131
Forum Addict
Forum Addict
Mensajes: 486
Registrado: Mar 08 Jun , 2010 12:36 pm

Re: CPCtelera, desarrollar juegos para Amstrad de forma sencilla

Mensajepor dragon131 » Jue 12 Nov , 2015 1:33 pm

¿Como se llama a un procedimiento externo en esamblador(en otro archivo me refiero) desde c en cpctelera?. Estoy partiendo de las plantillas de ejemplo del hola en asm y el hola que te genera el nuevo proyecto.

He portado el codigo en esamblador de cpcwiki para desbloquear el asic. Me funciona si lo compilo aparte(lo veo en el winape que se desbloquea). Pero no se como llamarlo desde el programa principal en C, inicialmente voy a lo facil y no pretendo pasarle nada ni que me devuelva nada(solo practico para ir entendiendo). Me ejecuta el hello de la plantiia c, pero pasa olimpicamente del codigo de esamblador y no se me desbloquea.

incluyo el _main2.h En el programa principal llamo a " _main2;"
En _main2.h pongo un "extern void _main2();"

Se me compila sin errores, pero no parece que ejecute la parte de esamblador.

Bueno, ya he necontrado la causa, por lo visto el compilador siempre busca un _nombre, asi que yo llamaba a _main2 y el buscaba __main2.
](*,)

Avatar de Usuario
robcfg
Master of The Forum
Master of The Forum
Mensajes: 1306
Registrado: Jue 03 Abr , 2008 5:32 pm
Ubicación: Estocolmo
Contactar:

Re: CPCtelera, desarrollar juegos para Amstrad de forma sencilla

Mensajepor robcfg » Jue 12 Nov , 2015 6:23 pm

Saca una captura de pantalla del escritorio con el error y posteala aquipor si vemos algo que nos de pistas.

Avatar de Usuario
javymetal
Megaforero
Megaforero
Mensajes: 331
Registrado: Mar 08 Sep , 2015 11:36 am
Contactar:

Re: CPCtelera, desarrollar juegos para Amstrad de forma sencilla

Mensajepor javymetal » Jue 12 Nov , 2015 8:44 pm

Acabo de hacer WHICH MAKE y esto aparece:

$ which make
which: no make in (/usr/local/bin:/usr/bin:/cygdrive/c/Windows/system32:/cygdrive/c/Windows:/cygdrive/c/Windows/System32/Wbem:/cygdrive/c/Windows/System32/WindowsPowerShell/v1.0)

supongo que no está instalado.

Avatar de Usuario
ronaldo
Forum Addict
Forum Addict
Mensajes: 358
Registrado: Sab 14 Sep , 2013 9:31 pm
Ubicación: Alicante
Contactar:

Re: CPCtelera, desarrollar juegos para Amstrad de forma sencilla

Mensajepor ronaldo » Jue 12 Nov , 2015 9:42 pm

@dragon131: No había entendido bien tu pregunta al principio. Te refieres a llamar desde C a una función escrita en ensamblador. El ejemplo de cómo crear un programa en ensamblador con CPCtelera no es el apropiado para esto. En este caso, es mejor que cojas el código fuente de las funciones de CPCtelera, (cpctelera/src/) que todas están en ensamblador. Ahí podrás ver cómo se crea el punto de entrada (el binding que has hecho declarando la función como extern) y también como se pueden obtener los parámetros y devolver valores.

El tema del subrayado es una convención común a todos los compiladores. Todos los símbolos globales se definen con un subrayado delante para que no colisiones con los objetos locales. Esto viene de los primeros compiladores de C y similares, cuando no estaban aún conceptos como namespaces o el mangling de las funciones.

@javymetal: Eso significa que no tienes instalado make, tal como dice la instalación de CPCtelera. Make normalmente se instala en /usr/bin. Esa carpeta está correctamente en tu PATH de ejecución, por lo que make no está instalado. Ten cuidado con las carpetas de Windows en el PATH, que podrían llevarte a ejecutar el gcc de Windows u otros (a mucha gente le pasa con el cliente de git). Esto te puede dar problemas más adelante.

La solución está clara. Tienes que instalar make. Probablemente te pase también con otros requisitos de CPCtelera. Ejecuta la instalación de Cygwin y utiliza el buscador superior para localizar los paquetes que necesitas. Asegúrate de instalar los que se llaman exactamente igual que están los requerimientos de instalación de CPCtelera. Si tienes dudas, captura alguna pantalla y nos la pones por aquí. También tienes un vídeo mio que, aunque es antiguo, te valdría para ver cómo instalar los requisitos: Programando en C para Amstrad CPC.

Avatar de Usuario
javymetal
Megaforero
Megaforero
Mensajes: 331
Registrado: Mar 08 Sep , 2015 11:36 am
Contactar:

Re: CPCtelera, desarrollar juegos para Amstrad de forma sencilla

Mensajepor javymetal » Jue 12 Nov , 2015 10:19 pm

Ya lo tengo!!! \:D/
Aunque creo que he instalado cosas de más ya que la carpeta Cygwin ocupa 6 Gb!!! :shock:

Avatar de Usuario
javymetal
Megaforero
Megaforero
Mensajes: 331
Registrado: Mar 08 Sep , 2015 11:36 am
Contactar:

Re: CPCtelera, desarrollar juegos para Amstrad de forma sencilla

Mensajepor javymetal » Jue 12 Nov , 2015 10:35 pm

@javymetal: Eso significa que no tienes instalado make, tal como dice la instalación de CPCtelera. Make normalmente se instala en /usr/bin. Esa carpeta está correctamente en tu PATH de ejecución, por lo que make no está instalado. Ten cuidado con las carpetas de Windows en el PATH, que podrían llevarte a ejecutar el gcc de Windows u otros (a mucha gente le pasa con el cliente de git). Esto te puede dar problemas más adelante.

La solución está clara. Tienes que instalar make. Probablemente te pase también con otros requisitos de CPCtelera. Ejecuta la instalación de Cygwin y utiliza el buscador superior para localizar los paquetes que necesitas. Asegúrate de instalar los que se llaman exactamente igual que están los requerimientos de instalación de CPCtelera. Si tienes dudas, captura alguna pantalla y nos la pones por aquí. También tienes un vídeo mio que, aunque es antiguo, te valdría para ver cómo instalar los requisitos: Programando en C para Amstrad CPC.
Ahora viendo tu vídeo se ve todo mucho mas claro!! Gracias!!

eolashi
Lechoncillo
Lechoncillo
Mensajes: 16
Registrado: Sab 26 Jul , 2014 3:56 pm

Problema con Cpctelera

Mensajepor eolashi » Mié 18 May , 2016 1:00 pm

Hola!,

Estoy empezando a probar la cpctelera, pero al querer convertir una imagen con cpct_img2tileset:

"cpct_img2tileset -m 0 -tw 12 -th 16 -pf { 0 2 6 8 12 15 } -im 8 prueba.png"

me lanza el siguiente mensaje de error:

"#########################
## UNRECOVERABLE ERROR ##
#########################
##> file '8' does not exist, and it is required for CPCTelera framework to work propperly.

Si dejo la opción "-im" sin valor o con valor 0, convierte la imagen sin problema. El error lo lanza cuando el valor es distinto a 0.

¿ A que puede deberse ?

Avatar de Usuario
ronaldo
Forum Addict
Forum Addict
Mensajes: 358
Registrado: Sab 14 Sep , 2013 9:31 pm
Ubicación: Alicante
Contactar:

Re: Problema con Cpctelera

Mensajepor ronaldo » Mié 18 May , 2016 7:02 pm

Hola @eolashi,

¿Qué versión de CPCtelera estás usando? En la última versión, el modificador "-im" no lleva ningún parámetro adicional. Se asume directamente que el color transparente es el 0. Por ese motivo, lo siguiente que introduces lo toma como el nombre de archivo.

De hecho, aunque img2cpc puede utilizar colores distintos al 0 como color transparente, eso requiere lógica adicional en las funciones de dibujado de sprites, cosa que las haría más lentas. Las funciones de dibujado con máscara de CPCtelera asumen que el color transparente es el 0, para evitar esta lógica adicional y ser más rápidas.

Por otra parte, en los proyectos nuevos de CPCtelera, en la carpeta cfg/ tienes un archivo llamado image_conversion.mk en el que puedes introducir órdenes de autoconversión de imágenes. Con estas órdenes, tus imágenes son convertidas automáticamente a código .c y .h cada vez que ejecutas make. Así, si cambias tus gráficos no tienes que hacer nada adicional, pues al poner make los tendrás siempre actualizados en el proyecto. Estas órdenes usan cpct_img2tileset por debajo, pero lo hacen automáticamente.

Si necesitas ayuda con estas nuevas funciones, me lo dices y te ayudo en lo que haga falta :).

Un saludo.

eolashi
Lechoncillo
Lechoncillo
Mensajes: 16
Registrado: Sab 26 Jul , 2014 3:56 pm

Re: Problema con Cpctelera

Mensajepor eolashi » Mié 18 May , 2016 7:51 pm

Gracias por la aclaración! Modificaré el color de la máscara como recomiendas y me pondré manos a la obra O:)

Avatar de Usuario
Mister_Knee
Lechoncillo
Lechoncillo
Mensajes: 10
Registrado: Mié 09 Dic , 2015 2:07 am
Contactar:

Problema con la generación de mascaras en cpctelera

Mensajepor Mister_Knee » Mié 24 Ago , 2016 4:59 am

Hola muy buenas,

A ver, estoy intentando usar mascaras en modo 1, pero me ocurre el siguiente problema, al querer usar el comando cpct_img2tileset, al indicar que quiero una mascara con el -im, coge por defecto el color asignado a la posición 0 de la paleta. La cuestión es que eso me supone perder un color de los 4 disponibles, ya que tengo que usar uno como color fondo para generar la mascara.

La cuestión es, ¿Como genero la mascara, sin perder ninguno de los 4 colores de la paleta?

Avatar de Usuario
ronaldo
Forum Addict
Forum Addict
Mensajes: 358
Registrado: Sab 14 Sep , 2013 9:31 pm
Ubicación: Alicante
Contactar:

Re: Problema con la generación de mascaras en cpctelera

Mensajepor ronaldo » Mié 07 Sep , 2016 9:40 am

Perdona que no te haya contestado antes: no había visto tu pregunta. El problema que comentas no está en cpct_img2tileset, sino en la herramienta de conversión que el script utiliza: img2cpc. img2cpc utiliza un color de la paleta para generar la máscara, por lo que no hay forma de que la genere sin comerse uno. Lo puedes ver en sus opciones:

Código: Seleccionar todo

-t, --transparentColor ARG Specifies transparent color (as index in palette).
Esto es un tema que comentamos hace algún tiempo, pero todavía no se le ha dado solución. De hecho, el issue está abierto en github desde el 10 de abril. Si quieres, pásate por ahí y sugiérele a Augusto alguna opción adicional: yo propuse usar la transparencia de la imagen para no comerse colores de paleta, pero igual se puede hacer también sugiriendo un valor RGB para poder usar un color que no es del CPC.

De todas formas, te recomiendo que las máscaras entrelazadas las uses sólo si va a ser para pocos sprites y pequeños, porque duplican el uso de memoria de los sprites. Para transparencias generales, es mejor usar tabla, aunque pierdas un color en los sprites.

Avatar de Usuario
Mister_Knee
Lechoncillo
Lechoncillo
Mensajes: 10
Registrado: Mié 09 Dic , 2015 2:07 am
Contactar:

Re: Problema con la generación de mascaras en cpctelera

Mensajepor Mister_Knee » Mié 14 Sep , 2016 12:28 am

Pufff, vaya, bueno, viendo que el problema es de la herramienta, creo que al final me decantare más por el modo 0, que quedarse solo con tres colores es muy poco...

De todas formas, ¿A que te refieres con lo de la tabla?, ¿Se pueden hacer transparencias de otra forma?, deduzco que es asignar uno de los colores de la paleta para que no pinte en ese color, pero no sabía que existía esa función...

edit: vale, no pasa nada, he encontrado esto de un tal profesor retroman que explica muy bien lo de las tablas:

https://youtu.be/zov-yI7I00s?t=41m8s

Avatar de Usuario
Atlante
Lechoncillo
Lechoncillo
Mensajes: 4
Registrado: Lun 13 Mar , 2017 11:29 pm

Problemas instalación CPCtelera

Mensajepor Atlante » Mar 14 Mar , 2017 10:24 am

Tengo problemas para instalar CPCtelera. He descargado e instalado todo lo que indica la guía de instalación (Cygwin y los packages que indica) sin problemas, pero a la hora de instalarse la CPCtelera v1.4, me da estos errores en el paso 2 (el paso 1 lo hace sin problemas con todo OK):

executing default-1 commands
make[5]: se entra en el directorio '/home/Francisco/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj/support/sdbinutils/binutils'
gcc -g -O2 -static-libstdc++ -o sysinfo.exe sysinfo.o syslex_wrap.o
syslex_wrap.o: En la función `yylex':
/home/Francisco/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj/support/sdbinutils/binutils/syslex.c:1097: referencia a `yywrap' sin definir
/home/Francisco/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj/support/sdbinutils/binutils/syslex.c:1097:(.text+0xcfe): reubicación truncada para ajustar: R_X86_64_PC32 contra el símbolo `yywrap' sin definir
collect2: error: ld devolvió el estado de salida 1
make[5]: *** [Makefile:1325: sysinfo.exe] Error 1
make[5]: se sale del directorio '/home/Francisco/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj/support/sdbinutils/binutils'
make[4]: *** [Makefile:3169: all-binutils] Error 2
make[4]: se sale del directorio '/home/Francisco/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj/support/sdbinutils'
make[3]: *** [Makefile:836: all] Error 2
make[3]: se sale del directorio '/home/Francisco/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj/support/sdbinutils'
make[2]: *** [Makefile:166: sdcc-sdbinutils] Error 2
make[2]: se sale del directorio '/home/Francisco/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj'
make[1]: *** [Makefile:63: sdcc] Error 2
make[1]: se sale del directorio '/home/Francisco/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5'
make: *** [Makefile:74: sdcc-3.5.5] Error 2
make: se sale del directorio '/home/Francisco/cpctelera-1.4/cpctelera/tools'

A ver si alguien puede decirme como solucionarlo, he probado a desinstalarlo todo, volverlo a descargar e instalar pero sigue dando el mismo error, aunque curiosamente no siempre salta en el mismo % de la instalación, unas veces al 7% otras al 15% e incluso llegó al 44%, pero nunca consigue terminar.

Avatar de Usuario
ronaldo
Forum Addict
Forum Addict
Mensajes: 358
Registrado: Sab 14 Sep , 2013 9:31 pm
Ubicación: Alicante
Contactar:

Re: CPCtelera, desarrollar juegos para Amstrad de forma sencilla

Mensajepor ronaldo » Jue 16 Mar , 2017 11:48 pm

Hola @Atlante,

El problema no es de CPCtelera, sino de las últimas versiones de Cygwin. Hay algo que han tocado que no sabemos aún qué es, que está provocando problemas como este.

Hay un fix para circunvenir el problema que puse en CPCWiki. Son unos pasos sencillos pero no es evidente llegar a ellos. Siguelos y podrás instalar CPCtelera. Después no debes tener más problemas.

Espero que en la próxima versión podamos dejar resuelto el problema para que no moleste.

Un saludo

Avatar de Usuario
javymetal
Megaforero
Megaforero
Mensajes: 331
Registrado: Mar 08 Sep , 2015 11:36 am
Contactar:

Re: Problemas instalación CPCtelera

Mensajepor javymetal » Vie 17 Mar , 2017 4:59 am

Tengo problemas para instalar CPCtelera. He descargado e instalado todo lo que indica la guía de instalación (Cygwin y los packages que indica) sin problemas, pero a la hora de instalarse la CPCtelera v1.4, me da estos errores en el paso 2 (el paso 1 lo hace sin problemas con todo OK):

executing default-1 commands
make[5]: se entra en el directorio '/home/Francisco/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj/support/sdbinutils/binutils'
gcc -g -O2 -static-libstdc++ -o sysinfo.exe sysinfo.o syslex_wrap.o
syslex_wrap.o: En la función `yylex':
/home/Francisco/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj/support/sdbinutils/binutils/syslex.c:1097: referencia a `yywrap' sin definir
/home/Francisco/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj/support/sdbinutils/binutils/syslex.c:1097:(.text+0xcfe): reubicación truncada para ajustar: R_X86_64_PC32 contra el símbolo `yywrap' sin definir
collect2: error: ld devolvió el estado de salida 1
make[5]: *** [Makefile:1325: sysinfo.exe] Error 1
make[5]: se sale del directorio '/home/Francisco/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj/support/sdbinutils/binutils'
make[4]: *** [Makefile:3169: all-binutils] Error 2
make[4]: se sale del directorio '/home/Francisco/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj/support/sdbinutils'
make[3]: *** [Makefile:836: all] Error 2
make[3]: se sale del directorio '/home/Francisco/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj/support/sdbinutils'
make[2]: *** [Makefile:166: sdcc-sdbinutils] Error 2
make[2]: se sale del directorio '/home/Francisco/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5/obj'
make[1]: *** [Makefile:63: sdcc] Error 2
make[1]: se sale del directorio '/home/Francisco/cpctelera-1.4/cpctelera/tools/sdcc-3.5.5'
make: *** [Makefile:74: sdcc-3.5.5] Error 2
make: se sale del directorio '/home/Francisco/cpctelera-1.4/cpctelera/tools'

A ver si alguien puede decirme como solucionarlo, he probado a desinstalarlo todo, volverlo a descargar e instalar pero sigue dando el mismo error, aunque curiosamente no siempre salta en el mismo % de la instalación, unas veces al 7% otras al 15% e incluso llegó al 44%, pero nunca consigue terminar.
Busca en este foro, hay una versión "portable" que no necesita instalación y va perfecta.


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro


La Comunidad Española
ESP Soft, juegos para tu CPC Foro de Amstrad CPC Todos los juegos para CPC en un CD Web dedicada al Amstrad CPC (utilidades) Información útil para el CPC (talleres) Selección de juegos de Amstrad CPC Mundo CPC Pree Play then any Key CPC Basic