CPCtelera: creando videojuegos para Amstrad en 1 hora

แชร์
ฝัง
  • เผยแพร่เมื่อ 11 ม.ค. 2025

ความคิดเห็น • 47

  • @RamonCPC-6128
    @RamonCPC-6128 3 ปีที่แล้ว +3

    Yo flipo el amor la pasión que le tenéis a estas máquinas y las manteneis vivas, sois la leche

  • @pemudel
    @pemudel 8 ปีที่แล้ว +4

    Eres un genio obviamente. Magistral clase. Entiendo que el 'compilador o parser o como se llame' lo has hecho tú también. Es delicioso ver lo fácil que haces todo. Muchas gracias por estas aportaciones. Y aunque no te des cuenta hay mucha gente detrás que admira tu obra pero no lo dicen por pereza o porque piensan que a lo mejor no lo verás. Tengo 47 y me crié con el CPC, actualmente trabajo de informático.

    • @ProfesorRetroman
      @ProfesorRetroman  8 ปีที่แล้ว +4

      Muchas gracias por tu comentario. Siempre me alegra saber que hay gente a la que le interesa lo que cuento, porque la única finalidad de todo esto es que pueda seros útil :). La realidad es que no soy ningún genio, sino que tengo la gran suerte de juntarme con muchas personas que lo son y que me permiten aprender mucho de ellas. Siempre que pueda, mi ilusión es transmitir eso que aprendo para que más gente pueda también aprenderlo. No importa si mucha gente no lo dice, si verdaderamente les es útil, para mi ya es genial :). Y ya de paso, si sirve para animar a quienes nos criamos con un CPC a que hagamos cosas chulas, las disfrutemos y compartamos, mucho mejor :D. Gracias :).

  • @stevenriofrio7963
    @stevenriofrio7963 3 ปีที่แล้ว +2

    Genial quisiera que en mi pais hubiera un profesores como usted, que enseña con se hacen los videojuegos desde las entrañas , no solo que eseñan por ensimita con los hacen algunas personas que enves de aprender nos dejan mas dudas , muchas gracias profesor Frank Gallego por compartir sus conocimientos en You tube..

  • @moterov4
    @moterov4 5 ปีที่แล้ว +4

    Impresionante Fran... Un aplauso. De momento estoy iniciando tu curso de ensamblador que sigo un rato los findes, y solo pinto rayitas en pantalla, pero motiva mucho saber que llegaré a los resultados que muestras en este video. ¡¡¡GRACIAS!!!

  • @akaNekete
    @akaNekete 5 ปีที่แล้ว +3

    Vaya currazo os habéis metido para crear todo el entorno, motor, etc.. Y todo bien explicado. Chapó

  • @nok_sp
    @nok_sp 6 ปีที่แล้ว +6

    Madre mía, puesto a pensar me parecería que solo en UK ("patria" de Amstrad) se podría dar este uso de recursos actuales para la retroescena Amstrad. Me ha parecido INTERESANTÍSIMO a pesar de mis conocimientos mínimos de programación (Locomotive Basic, Turbo Basic 1.0). "APLAUSO", "APLAUSO", "APLAUSO".

  • @pimpilimpauskas
    @pimpilimpauskas 6 ปีที่แล้ว +2

    una pasada. Gracias por subir esta charla

  • @Hark0
    @Hark0 8 ปีที่แล้ว +5

    Super interesante clase. Muchas gracias doctor !!! ;-)

    • @ProfesorRetroman
      @ProfesorRetroman  8 ปีที่แล้ว +2

      Hark0 Un placer para mi saber que os es útil 😊. A ver si nos vemos pronto! 😊

    • @Hark0
      @Hark0 8 ปีที่แล้ว +2

      Seguramente estaré en la Amstrad Eterno... av si Mcleod nos hace el core de CPC... ;-) Un abrazo!!!!

  • @fcojaviermartin8560
    @fcojaviermartin8560 3 ปีที่แล้ว +2

    Felicidades!!!, Genial

  • @popularfan5893
    @popularfan5893 6 ปีที่แล้ว +5

    Me ha gustado la idea de usar un motor grafico con funciones en C para programar un Amstrad, enhorabuena. ¿ Porque no colgais también la ayuda y documentación del proyecto en español ? Así también se llega a mas gente que no domina tanto el ingles. Teniendo encuenta que es una idea creada aquí en España no costaría nada.

    • @ProfesorRetroman
      @ProfesorRetroman  6 ปีที่แล้ว +5

      Muchas gracias por tu comentario. La documentación se decidió hacer en inglés, igual que todo el código y sus comentarios, para poder ser útil a la mayor cantidad de gente posible. El proyecto completo lleva más de 1000 horas de trabajo invertidas a día de hoy, de las cuales más del 60% son redactar, revisar y mantener la documentación. Para mi sería un placer ofrecerla en castellano también, pero no dispongo de tiempo para mantenerla en 2 idiomas. De momento, la documentación y el framework los mantengo en inglés, y los vídeos educativos los hago en castellano.
      Eso sí, sería un placer aceptar colaboración de personas interesadas en traducir y mantener la documentación en castellano también.

  • @AdolfoDiazTGC
    @AdolfoDiazTGC 8 ปีที่แล้ว +6

    genial !!!

  • @1258thor
    @1258thor 2 ปีที่แล้ว +2

    ¿Con CPCTELERA es posible establecer una paleta de colores alternativa a la que trae el CPC?. Me rerefiero a si en lugar de usar rojo, amarillo, cian y azul, por ejemplo establecer una paletea con negro, blanco, verde y rosa.

    • @ProfesorRetroman
      @ProfesorRetroman  2 ปีที่แล้ว +1

      Con CPCtelera puedes hacer absolutamente cualquier cosa que el CPC sea capaz de hacer. CPCtelera solo es un conjunto de herramientas para programar el CPC. Por eso, cualquier cosa que se pueda hacer, puedes hacerla con CPCtelera. En cuanto a la paleta, precisamente es algo básico que explico en distintos vídeos cuando cuento cómo pintar sprites, y en este mismo vídeo que en pones el comentario, también explico cómo cambiar la paleta. En el vídeo de C y Ensamblador de este pasado 12 de agosto también lo expliqué, y si necesitas más detalles alternativos, mira en las series de vídeos de clase, en los episodios en los que cuento cómo convertir y pintar sprites.

  • @jgonza
    @jgonza 8 ปีที่แล้ว +2

    Gracias por la difusión! Salu2!

    • @ProfesorRetroman
      @ProfesorRetroman  8 ปีที่แล้ว

      Gracias a ti por la invitación, la organización y todo el trabajo detrás de Retropolis :). Nos vemos pronto :D

  • @tonysanr2321
    @tonysanr2321 4 ปีที่แล้ว +2

    Hola Profe! Estoy haciendo pruebas con el Atari Assault. Le estoy poniendo el fondo que aparece en la carpeta de ejemplos: court. El problema que tengo es que con la función drawtilemap2x4 no me lo dibuja bien, supongo que por ser tiles de 8x8.
    En un video he comprobado que existe la función setDrawtilemap4x8 pero no se por qué no me aparece en el manual de cpctelera. Lo he comprobado en varios navegadores, era para ver el funcionamiento porque no termino de cuadrarlo.
    Muchas gracias.

    • @ProfesorRetroman
      @ProfesorRetroman  4 ปีที่แล้ว +2

      Hola Tony. Para utilizar cualquier función de CPCtelera debes leer detenidamente primero toda la ayuda, porque tienen muchas precondiciones para su uso que debes conocer. Por ejemplo, drawTileMap2x4 sólamente funciona para tiles de 2x4 bytes de tamaño (4x4 píxeles en modo 0). Si le tiles de otros tamaños no funcionará correctamente.
      Si miras a la ayuda de CPCtelera que está colgada online sólo verás las funciones de CPCtelera 1.4.2 que es la última release estable. Ahí no están funciones como setDrawTilemap4x8, puesto que son de CPCtelera 1.5 development. Si quieres ver la ayuda de CPCtelera 1.5 development branch, la tienes en tu propia instalación de CPCtelera, en la carpeta cpctelera/doc. Por supuesto, esto es suponiendo que tengas instalada CPCtelera 1.5. Si no es así, tienes un vídeo mío explicando como instalar esta versión de CPCtelera.

    • @tonysanr2321
      @tonysanr2321 4 ปีที่แล้ว +2

      @@ProfesorRetroman Genial!! Ya lo se para siguiente vez. Al final rehice el mapa a 4x4 para poder usar la función drawTileMap2x4 y nada ahí estoy peleandome con el redibujado de tiles, porque quiero adaptarlo según sea el tamaño de cada entidad.
      Muchas gracias Profe 🙂

  • @toninote
    @toninote 7 ปีที่แล้ว +3

    Muchas gracias por el video, Fran!
    Una pregunta que tengo es:
    Hay otro video tutorial de Cpctelera en el canal de Juanje, y la forma de crear el sprite (Willi) me parece que lo haces de una manera más rápida, o al menos es la sensación que tengo.
    En ella empleas la orden: cpct_img2tileset -m 0 -tw 5 -th 17 -pf { 0 15 17 24 3 11 26 } -im 0 chico_parado.png desde la misma linea de comando de cygwin.
    En este video, se entra en el archivo image_conversion.mk y se usa la orden:
    $(eval $(call IMG2SPRITES,assets/sprite.png,0,g,32,32,$(PALETTE),,src/,hwpalette))
    Hay algúna diferencia?
    Por cierto, de la primera manera me sale siguiente error: file '0' does not exist, and it is required for CPCTelera framework to work propperly.
    Creo que es referente a -im 0 (la máscara).
    Gracias, y por favor, cuando puedas, haz una segunda parte!

    • @ProfesorRetroman
      @ProfesorRetroman  7 ปีที่แล้ว +2

      Sí, hay una diferencia fundamental. La macro de image_conversion está incluida en el makefile que se lanza cada vez que compilas el proyecto con make. Eso significa que él sólo detectará cada vez que haya un cambio en la imagen original (por ejemplo, si el grafista está trabajando en ella y la modifica). Cada vez que haya un cambio, la imagen volverá a convertirse automáticamente al escribir make, ahorrándonos todo el trabajo de tener que estar reconvirtiendo imágenes a mano cada vez que cambian.
      El vídeo de Juanje es anterior. En esas versiones de CPCtelera todavía no estaba el proceso integrado en los makefiles. De todas formas, para que te hagas una idea, la macro IMG2SPRITES utiliza cpct_img2tileset por debajo. Conocer el comando te puede ayudar a sacar más provecho a la macro.
      El error que te da es porque cpct_img2tileset ha sido modificada y su interfaz tiene cambios en versiones actuales. El modificador -im ya no requiere añadir el color, porque siempre utiliza el 0. El error que te sale es porque interpreta el 0 como el nombre del fichero que tiene que convertir.

  • @PeroPeroDoki
    @PeroPeroDoki 8 ปีที่แล้ว +4

    Siempre he querido hacer videojuegos, y además para 8 bits... pero he de reconocer que a los minutos de ver el video estaba realmente perdido XD. Creo que para dedicarse a esto, ya sea por hobby o profesión hay que tener unos conocimientos mínimos, unos estudios básicos de los que carezco... además de tiempo que tampoco dispongo.
    Un saludo y gran trabajo.

    • @ProfesorRetroman
      @ProfesorRetroman  8 ปีที่แล้ว +5

      Sí, tienes toda la razón. CPCtelera no está pensada para empezar desde 0: requiere tener al menos algo de experiencia programando. Me encantaría conseguir que pueda ser de más ayuda, pero aún tardará tiempo en estar más evolucionada. De todas formas, si tienes mucho interés en el desarrollo de videojuegos y en aprender las bases de la programación, estamos preparando un curso completo de programación en ensamblador del Z80 que empezará desde el principio. Espero que pueda estar disponible antes del año que viene :). Muchas gracias por el comentario: espero que las cosas que preparemos en el futuro puedan serte de utilidad :)

    • @PeroPeroDoki
      @PeroPeroDoki 8 ปีที่แล้ว +2

      Mas bien era una crítica a mi mismo por mi bajo nivel de conocimientos en general, respecto al curso me encantaría pero no creo que pueda... Hay un dicho que dice que en la vida hay que hacer tres cosas: escribir un libro, plantar un árbol y tener un hijo... y bueno, yo cambiaría una de ellas por "programar un videojuego" (a poder ser para Amstrad).
      Un saludo, y gracias por todo tu trabajo.

  • @fcojaviermartin8560
    @fcojaviermartin8560 3 ปีที่แล้ว +2

    Si me pueden responder una preguntita, les estaria muy agradecido
    A ver, si yo ya tengo juegos programados en CPC, para pasarlos simplemente a APK, ¿solo tengo que coger el CDK del juego que he creado y por el CDK que se crea en la carpeta nueva de proyecto con CPCTELERA ?
    GRACIAS

    • @ProfesorRetroman
      @ProfesorRetroman  3 ปีที่แล้ว +3

      Hola Francisco,
      No, no funciona así. Con CDK imagino que te refieres a los ficheros CDT que son una imagen de cinta. CPCtelera utiliza Snapshots (SNA) que genera durante la compilación para producir el APK. No es una conversión de tipo de fichero: no se "pasa" un CDT a APK: no existe forma de hacer esto, ni tiene sentido. Se genera un APK con el emulador RVM embebido y tu juego incluido como Snapshot.
      Puedes ver el vídeo que hicimos en el canal de Juanje para presentar la tecnología, en el que explicamos paso a paso cómo se creaba un APK con CPCtelera. Lo más fácil es que crees un proyecto de CPCtelera, pongas en el los ficheros fuente de tu juego, compiles con CPCtelera y uses el exportador de Android tal como comentamos en el canal de Juanje. Con eso podrías crear un APK para distribuir tu juego.
      Un saludo.

    • @fcojaviermartin8560
      @fcojaviermartin8560 3 ปีที่แล้ว +1

      @@ProfesorRetroman muchas gracias
      De todas formas tengo problemas para que me salga el cpct_ al instalar cpctelera en mi ordenador que es un Mac, me sale después de instalarlo, not found cpct_ y no puedo utilizar cpctelera, he instalado Xcode, hombrew, instalado el repositorio en development y nada, me sale siempre command no found con cpct_
      Yo programaba en basic en los 80 y ahora quiero retomarlo
      Gracias y saludos

  • @MarcosAlonsoM
    @MarcosAlonsoM ปีที่แล้ว +1

    Hola, he seguido los pasos que explicas para cargar una imagen, y aunque todo compila bien y parece correcto, finalmente la imagen se muestra distorsionada (los pixeles aparecen desordenados). He probado con varios tamaños (15x27, 28x28,..) y formatos de imagen (png, jpg), y el resultado siempre el mismo. ¿De qué podría ser?

    • @ProfesorRetroman
      @ProfesorRetroman  ปีที่แล้ว +1

      Hola Marcos,
      Pueden ser muchas cosas pero, la principal, es el desconocimiento sobre qué es exactamente una imagen y cómo funciona :). Esta parte te la tienes que currar un poquito más, y puedes ayudarte de mis vídeos de clase más modernos (donde, además, verás técnicas distintas y cosas más actualizadas sobre el uso de CPCtelera).
      Cosas importantes a tener en cuenta:
      1. Si una imagen tiene ancho impar, te aparecerá distorsionada en Amstrad seguro. Las imágenes se convierten a un array de bytes con la información de los píxeles. Cada byte del array guarda información sobre 2, 4 u 8 píxeles consecutivos, dependiendo de si es para Modo 0, 1 o 2. Si el ancho no es par, en el último byte de 1 fila de píxeles terminarán estando el último pixel de esa fila, y el primero de la siguiente, descolocando la imagen.
      2. Por el mismo motivo de arriba, tu imagen debe tener un ancho adecuado a la codificación del modo de video que usas. Si pintas en modo 0, ancho múltiplo de 2. Para modo 1, múltiplo de 4. Para modo 2, de 8. Si no es así, tendrás el mismo efecto que contaba en 1.
      3. Debes asegurarte que el Amstrad está en el modo de vídeo para el que la imagen ha sido dibujada. Si tu programa no cambia el modo de vídeo, por defecto Amstrad estará en Modo 1.
      4. Debes asegurarte de que pintas la imagen con los valores de ancho y alto correctos. Para la función cpct_drawSprite, el ancho ha de ser en __bytes__ no en __pixeles__. Es mejor usar las constantes que genera el conversor de imágenes.
      5. Nunca utilices JPG para sprites. JPG es un formato con __pérdida__ de calidad. Esto es lo último que quieres en un sprite, donde quieres que los píxeles sean cada uno del color que has definido, más aún cuando sólo 27 colores son válidos.
      Dicho todo esto, además, puedes cometer muchos errores al programar. Por ese motivo, siempre digo lo mismo: es importante leerse detalladamente la documentación de cada función que se usa, y comprobar que se está haciendo lo que realmente se quiere hacer. Es importante revisar los arrays que salen al convertir una imagen para ver que los tamaños están bien y los resultados tienen sentido.
      Programar para estas máquinas no es como programar en PC moderno. Las rutinas no realizan ninguna comprobación por nosotros ni tienen medidas de seguridad. Esto es así, porque el conste que supondría haría los juegos lentísimos o que ocupasen muchísimo, lo que es inaceptable. Por tanto, somos nosotros los responsables de controlar y revisar todos los detalles. Como hay muchos detalles, cuando se comienza es fácil que se escape uno o varios de ellos. Hay que aprender a ser exhaustivo y a revisarlos uno a uno. Se pierde mucho menos tiempo siendo lento y concienzudo que queriendo ir rápido. El camino más rápido es entender, y ese es yendo despacio, paso a paso. El otro camino, intentar resolver las cosas de forma rápida, focalizarse en la solución en vez de en entender el problema, lleva a la frustración y al abandono, después de mucho tiempo invertido que, además, no renta. Camino lento, leer, paso a paso, entender y, sin darte cuenta, estarás yendo muy rápido :).
      Espero que esto te ayude a encontrar tu problema.
      Ánimo y suerte!

  • @mentalthink1
    @mentalthink1 8 ปีที่แล้ว +1

    Lo primero que la clase me ha parecido genial, hay muchas cosas que no sabía como lo desactivar el Firmware, por otro lado el código completo del juego se puede descargar en algún sitio, está en la web de Fremos?¿, supongo que entender las collisiones y el tema de la música no será demasiado complejo. Por otro lado lo que comentas por abajo del curso en ASM estará genial. Un consejo para le gente que dice que no entiende como hacer esto, es buscar info en youtube por ejemplo de C o C++, yo hace unos 6 años no sabía ni que era una variable local o global, y mis cosillas me salen por pantalla... Gracias Fran por la clase, me ha aclarado bastantes puntos.

    • @ProfesorRetroman
      @ProfesorRetroman  8 ปีที่แล้ว +1

      Me alegro mucho de que te haya sido de utilidad :). El código completo lo tienes enlazado en la descripción del vídeo como Materiales: fremos.cheesetea.com/download/materiales-charla-cpctelera-creando-un-juego-para-amstrad-en-1-hora/. El link te llevará a la descarga concreta de la web de Fremos :).
      Las colisiones en este ejemplo están muy simplificadas, porque sólo hay colisiones al caer con las plataformas. Si son más complejas, depende de lo que hagas, costará más o menos :).
      A ver si hay suerte y con lo que te haya aclarado el vídeo nos enseñas alguna producción pronto, aunque sea pequeñita (siempre es bueno empezar por algo pequeño). ¡Ánimo! :)

    • @mentalthink1
      @mentalthink1 8 ปีที่แล้ว +1

      Gracias por los links... a ver si voy sacando tiempo poco a poco y te muestro algo, en un principio me tengo que pelear como pasar Sprites de soft 3D a que se vean bien en el CPC... poco a poco, quizás hacer un Arkanoid sea buena idea, es el primer juego que hice para iPhone...

    • @ProfesorRetroman
      @ProfesorRetroman  8 ปีที่แล้ว +2

      No hay de qué :). Cualquier cosa que puedas guardar en un formato estándar de imagen (PNG, GIF, JPG, etc) es válida para la conversión automatizada que hace CPCtelera. Lo único que te hace falta es elegir bien los colores de la paleta. Particularmente, recomiendo usar PNGs, pero para gustos, colores ;).
      Un Arkanoid es buena idea. Empezar sencillo es de gran ayuda. Además, un juego tipo Arkanoid, si se hace un buen acabado, siempre gusta ;).
      Mucha suerte y ánimo :D

  • @diegorfuentes
    @diegorfuentes 4 ปีที่แล้ว +2

    Que buen vídeo, hice lo posible por seguir los pasos. Lo del vídeo lo pude hacer, trate de seguir las diapositivas, y pude hacer lo de cambio de pantalla, pero en el sonido no pude. Logre convertir el song.bin a song.c con cpct_bin2c, agregue la cabecera, agrego las lineas de cpct_akp_musicInit(G_song) y cpct_akp_musicPlay() y cuando ejecuto el juego, suena súper raro el sonido, incluso en una ejecución se comenzó a mover solo, el personaje hacia atrás, ¿Que podría ser?

    • @ProfesorRetroman
      @ProfesorRetroman  4 ปีที่แล้ว +2

      Pues puede ser varias cosas. Si la canción no está en la posición de memoria para la que fue creada, no sonará correctamente y puede producir comportamiento no definido. Esto es lo más probable. Deberías ver en memoria en el depurador si la canción, los datos binarios de la misma, están situados en la posición correcta de memoria para la que fueron diseñados.
      Esto es lo más probable que te puede estar sucediendo. Otras cosas menos probables ya habría que mirarlas.

  • @vicentcolomar2640
    @vicentcolomar2640 6 ปีที่แล้ว +2

    Este curso, ¿podría hacerse con el 6128, por ejemplo? ¿o solo sirve el 464?

    • @ProfesorRetroman
      @ProfesorRetroman  6 ปีที่แล้ว +2

      Las diferencias entre 6128 y 464 son pequeñas realmente, y están a nivel de firmware. Con CPCtelera puedes programar para ambos sin prácticamente diferencias. Y el curso que tengo publicado de ensamblador, aunque está enfocado en el 464, todo lo que se hace funciona en cualquier Amstrad sin problemas.

  • @aguelomultimedia
    @aguelomultimedia 4 ปีที่แล้ว +2

    llámame clásico pero aún quedamos los que dibujamos los sprites desde el AMSTRAD(emulador) y eso de usar png...pues como que no.

  • @nebularain3338
    @nebularain3338 4 ปีที่แล้ว

    Is CPCtelera ever going to be released for running naively on Windows? Having to emulate Linux via Cygwin is an absolute pain in the ass, and I guarantee that thousands more people would use it if they could just install and run it via an exe on their windows systems.

    • @ProfesorRetroman
      @ProfesorRetroman  4 ปีที่แล้ว +3

      Whenever you ask this are you conscious that you are asking us to invest more of our time? Would you be willing to give us YOUR time in exchange of the Windows version? If you really want CPCtelera to run natively on Windows, download it, adapt it to Windows and then get compromised to maintain it. If you are prepared to accept this work, we will be more than glad to have you on the team and to have a native Windows version. If not, please, restrain from putting qualifiers to our work such us "pain in the ass". If you are not willing to invest your time in the project, you don't have the right to ask us about how to invest ours, nor to criticize our work. There is a good reason to use Cygwin or WSL, and that is our precious time. We cannot maintain versions for every system people want to program in. We program for Linux and use a GNU stack because it is portable without effort. Thanks to that, you have "pain in the ass" versions that run on Windows. If that would not exist, you wouldn't had any Windows version at all, because this is not our job and we are not paid for doing it. We do it out of pure love to the platform, and we share our "pain in the ass" versions with everyone and as free, open source.
      You can ask whatever you want, and you may add issues to our github if you want. You are wellcome to contribute in any sense. But the bare minimum we ask for is respect for our work. If you think it is an absolute pain in the ass, why do you use it? If it is so important to you, remember that we are persons, not slaves. Invest your own time in this and then you will understand what a "pain in the ass" is to receive such a comment, even if you are asking for something useful.
      CPCtelera needs more contributors, not more comments telling us what to do, and thinking our time has no value.

  • @gustavohoracio
    @gustavohoracio ปีที่แล้ว +1

    NO FUNCIONA SU WEB..

    • @ProfesorRetroman
      @ProfesorRetroman  ปีที่แล้ว

      Hola Gustavo. Como te indicaba en el anterior comentario, he probado todos los enlaces y a mi me funcionan sin problema. Si es un enlace el que no te funciona, te agradecería que indicaras cuál es y qué problema tienes exactamente.

  • @nok_sp
    @nok_sp 6 ปีที่แล้ว +2

    Y en solo una hora, por Dios...