El español Enrique G. Gálvez ha convertido el Golden Axe a Amstrad PCW

Vídeo: https://www.youtube.com/watch?v=L3mMiwU68M8
Descarga: https://enriqueggalvez.itch.io/golden-a ... w-pcw-mini
Sus otros proyectos: https://enriqueggalvez.itch.io/

Tres enemigos simultáneos y con música in-game. [fumando]

Al parecer es un port del de Master System.
El PCW lleva un verano intenso, si visitamos la página de habisoft han estado activamente portando juegos de otros sistemas 8 bit al PCW. Pero este Golden Axe ya es salirse, no ha sido un port de Spectrum o Amstrad, directamente de la Master System. Pedazo de curro.
Tiene mucho mérito vistas las capacidades del PCW. Qué maravilla.
Joer, menuda currada y pinta fenomenal 👏🏻👏🏻👏🏻
nada mal para ser un procesador de textos no especificamente preparado para jugar, eh?
Se da la ironía de que, aunque la versión de PCW está en blanco y negro y no puede presumir de FPS, es claramente mejor que la de Commodore 64 (que solo tiene un enemigo simultáneo), tiene mejores gráficos que la de Amstrad CPC (cuya resolución en el modo de 16 colores enturbia bastante el tema) y parece por lo menos más relajante a la vista que la de ZX Spectrum (con una combinación entre colores kitch, cuadros negros rodeando los sprites y pixel art cuestionable).

Quedaría por ver qué porcentaje del desarrollo se ha hecho con IA. La pantalla inicial con las letras en japonés sin quitar levanta mis sospechas.
Si la IA permite ayudar a portar estas juegos a otros sistemas, bienvenido sea
Desconozco si es el caso, pero en efecto la IA está llegando al retro y con buen pie. Por lo pronto las FPGA se están viendo muy beneficiadas, hay una corriente de cores saliendo que se apoyan en la IA y están saliendo bastante bien y en tiempo récord. Al final todo consiste en entrenarla: coges un modelo, le metes por via intravenosa todos los manuales de programación de PCW que tengas a tu alcance, vas construyendo los prompt poco a poco... y tienes un buen ayudante.
Buenas.

Soy Enrique G. Gálvez y andaba aburrido googleando y me he encontrado citado por estos lares, así que me he registrado y aquí estoy para resolver dudas y para daros la turra.

Sobre el desarrollo de Golden Axe:

Efectivamente es un port directo de la versión de Master System.
Siempre me llamó la atención este juego en la consola de Sega, porque prefirió no usar sprites (renunciando así a la suavidad de movimientos) a favor de usar los tiles del decorado en su lugar para poder ganar en número de actores y tamaño de los mismos, obteniendo un resultado gráfico espectacular respecto a otros juegos que sí usaban sprites hardware. Este truco era usado por muchos juegos de la época de 8 bits sobre todo para sprites de gran tamaño.Los boss finales de Super C de NES es un buen ejemplo.
Así que pensé que mover caracteres (tiles) es lo que hace el PCW muy bien y sería factible.

Respecto al uso de la IA:

Empecé a portar juegos a PCW, y a aprender ensamblador Z80, en 2023 gracias a la ayuda de Habisoft, creador del emulador del Amstrad PCW y de varios ports para Amstrad PCW, dando como resultado mi primer port: Coliseum desde la versión de ZX Spectrum..
Desde entonces hasta el port de The New Zealand Story de ZX Spectrum, todos han sido programados artesanalmente. Algunos como Phantis requirieron programación de scripts específicos para la extracción de los gráficos de la versión PC y su inserción en el port de CPC que estaba haciendo, uno a uno, a mano. Muchas veces un trabajo tedioso y largo.
Pero entonces llegó la IA y muchos procesos farragosos o que necesitaban mucho tiempo se han visto enormemente abreviados: desensamble del original, corrección de errores, creación de tablas, conversión de gráficos, etc.
Así que como herramienta es fantástica para todas estas tareas.
Pero no vale con un simple "hazme un port de este juego para este ordenador", no funciona así, al menos de momento.
Si desconoces el funcionamiento del sistema de origen y sobre todo, el de destino, no obtendrás resultados decentes. Y si la IA tampoco los conoce, entonces apaga y vámonos. No obstante, si la dotas de las herramientas y documentación apropiadas, y la guías para la implementación de según qué rutinas, los resultados pueden muy satisfactorios.

Actualmente trabajo para implementar la selección de los tres personajes en el port de Golden Axe (Tyris ha sido obtenida directamente de un hack del juego de Master System que sustituye a Ax) y Gilius el enano está siendo adaptado a los mismos frames que usa el port desde la versión de Megadrive. Este trabajo está siendo realizado por Toni Gálvez porque la IA, simplemente, no sabe hacerlo (confunde sprites, posturas... etc.)
Pero luego si será muy útil para hacer la integración de forma más automatizada.

En resumen: la IA como herramienta a mi me está resultando muy útil, facilita y acelera el trabajo.
Creo que ha llegado para quedarse y mientras su uso sea para obtener buenos resultados bajo una buena dirección, bienvenida sea.

Respecto al texto japonés no traducido: ninguna carátula del juego original me convencía para la portada (la de SMS es terrible...) y opté por la de Turbografx, que convertí yo mismo, pero ni me acordé del texto en japonés cuando la convertí. Es donde menos IA hay por cierto.

Un saludo y espero que disfrutéis de los ports para Amstrad PCW como yo disfruto haciéndolos.
@enriqueggalvez ¡Gracias por pasarte! Tengo varias preguntillas.

1) ¿Cómo ves las especificaciones del PCW en comparación con el CPC?
- Mismo procesador
- Resolución y colores muy diferentes: más alta resolución, pero solo un color (creo) con el que se hacen tramas para simular otros
- Mucha más memoria RAM, creo que el doble que el CPC de disco

2) Veo que hace unos días (casi) terminaste también el Risky Woods para PCW. Y me surge la idea de que muchos de estos juegazos no tienen versión CPC (o tienen una peor). ¿Cómo ves ese tema? ¿Sería relativamente sencillo convertir tus maravillas a CPC? ¿Cuántos juegos has creado o convertido para PCW que no están o que tienen una versión peor para CPC?

[beer]
Solo puedo agradecer el esfuerzo. A mi viendo los proyectos y el resultado, me ha empujado a realizar ports de Spectrum a MSX de juegos que no salieron en en este último, y ya tengo completados y 100% funcionales (y mejorados) el The Great Scape y el Combat School (mi juego 8 bits de ordenador favorito).

Y con su post explicativo al 100%, si no sabes algo de ensamblador, de herramientas y de extracciones, la IA por si sola no lo va a aprender, a día de hoy es un A Must saber de estas cosas, por lo menos a un nivel básico.

Si alguien los quiere que los pida y los comparto.
PABEOL escribió:@enriqueggalvez ¡Gracias por pasarte! Tengo varias preguntillas.

1) ¿Cómo ves las especificaciones del PCW en comparación con el CPC?
- Mismo procesador
- Resolución y colores muy diferentes: más alta resolución, pero solo un color (creo) con el que se hacen tramas para simular otros
- Mucha más memoria RAM, creo que el doble que el CPC de disco

2) Veo que hace unos días (casi) terminaste también el Risky Woods para PCW. Y me surge la idea de que muchos de estos juegazos no tienen versión CPC (o tienen una peor). ¿Cómo ves ese tema? ¿Sería relativamente sencillo convertir tus maravillas a CPC? ¿Cuántos juegos has creado o convertido para PCW que no están o que tienen una versión peor para CPC?

[beer]


Un PCW es muy parecido a un CPC, salvo en las siguientes diferencias:

-El teclado:
Un engorro en CPC, porque pasa por el chip AY y el PPI, varias lecturas escrituras de puertos y usar varios registros.
En el PCW se mantienen en memoria en los últimos 16 bytes del bank 3. Un lujo para leer en cualquier momento.

-Modos gráficos:
Modo 0 CPC: 4 bpp, y pixeles ladrillo, 16 colores (Astro Marine Corps)
Modo 1 CPC: 2 bpp, píxeles cuadrados, 4 colores (Head Over Heels)
Modo 2 CPC: 1 bpp, píxeles estrechos verticalmente, 2 colores <--- este modo es equivalente al del PCW salvo que abarca 640 de ancho

en modo 1 (píxeles cuadrados, ni estrechos ni ladrillos) el CPC muestra 320x200 píxeles
el PCW, en su equivalente (2bpp) muestra 360x256 píxeles


PCW: 720 píxeles estrechos verticalmente, 2 colores. Igual que el modo 2 del CPC... así que en la práctica, un PCW, por disposición y configuración de vídeo, podría mostrar 4 y 16 colores de igual forma. Y de hecho lo hace con el PCW#mini de Habisoft, que reinterpreta la señal de vídeo para tratarla como si fueran otros modos gráficos.
Porque el CPC muestra la misma cantidad de información en un modo u otro, simplemente los píxeles necesitan más o menos bits, y los píxeles se muestran entonces más o menos gordos.

00110110 <-- en modo 0 serían 2 pixeles ladrillo, uno con el color 0011 y otro con el color 0110 (bueno, en realidad, no, porque van entrelazados, pero valga el ejemplo)
00110110 <-- en modo 1 serían 4 píxeles cuadrados, con los colores 00 11 01 y 10
00110110 <- en modo 2 serían 8 píxeles, estrechos, con los colores 0 0 1 1 0 1 1 y 0

La geometría de pantalla también es distinta. CPC usa líneas continuas horizontales (80 bytes pintan una linea en pantalla, da igual el modo), y el PCW usa caracteres de 8 bytes (para pintar una linea de pixeles tiene que sumar 8 bytes cada vez, más lento)

-Sonido
CPC: Chip AY nativo, pero engorroso para escribir registros en los puertos.
PCW: AY externo con una DK Sound, un par de puertos y escribir en ellos. Mucho más sencillo. Pero si no tienes DK Sound, un buzzer chusco peor que el beeper del Spectrum 48K

-Memoria
CPC: 128K nativos en el mejor caso, 64k en el peor caso.
PCW: 512K nativos en el mejor caso, 256k en el peor caso.

-Mapeo de memoria:
CPC: mapea combinaciones de bancos de memoria
PCW: mapea el banco de memoria que quieras en la pagina del z80 que quieras. Incluso el mismo dos veces. También posee el modo ANT que permite que una misma página del z80 albergue dos bancos de memoria, un para escritura y otro para lectura. (No estoy seguro si el CPC también lo hace. Puede que sí.)

Ahora, vienen las diferencias.
No conozco a fondo el hardware del CPC a nivel de Gate Array y gráficos. Pero tengo entendido que es más complejo y completo y permite trucos como incluso tener 2 modos gráficos simultáneamente, etc...

Respecto al PCW: la pantalla de video va inexorablemente ligada a 512 bytes de memoria conocida como Roller-RAM con las direcciones en memoria de las 256 líneas de vídeo que lee el GA.
Esto permite por ejemplo, hacer doble buffer hardware con un par de escrituras a puerto (casi gratis).
O hacer scroll 1 píxel vertical sin esfuerzo. O scroll hard de 4 pixeles de forma ligera (con algo más de esfuerzo).

Peeero... y aquí viene la gran diferencia... ¿de qué sirve hacer doble buffer si no tienes memoria para albergar dos bufferes de pantalla? ¿como mueves una ventana (con la Roller) sobre una pantalla más amplia si no la tienes ya en memoria?
La gran diferencia: LA MEMORIA.

Poseer más memoria te confiere facilidad para todo esto, e incluso para más, porque puedes acelerar rutinas de sprites preparando sprites compilados (una rutina específica que dibuja un sprite determinado de la forma más rápida posible sin estar atado a una rutina general de sprites, pero que ocupa mucha más memoria que el gráfico en sí).

El PCW no es más rápido ni más lento que el CPC, funcionan exactamente igual. Ambos usan la misma cantidad de información gráfica. Un gráfico en modo 0, 1 y 2 ocupa lo mismo que uno de PCW del mismo tamaño/aspecto. Incluso comparten 300hz de interrupciones. El CPC perderá algo de tiempo en teclado y sonido, pero el PCW lo hará en la geometría de pantalla salvo que traigamos los gráficos preparados.

2) El port de Risky Woods que comentas, y anuncié hace unos días, proviene de la versión PC (para el código) y de la versión Atari ST (para la música). Y ¿se podría hacer en CPC? Creo que es viable... siempre y cuando el CPC otorgue alguna técnica para hacer scroll que no suponga copiar memoria. En el PCW existe, pero exige memoria. Mucha. De hecho, Risky Woods (y Golden Axe) necesita mínimo un PCW con 512K memoria (8512, 9512...) o cualquier modelo con ampliación a 512K.
Este es el segundo juego que publicaré que no proviene de ZX Spectrum o Amstrad CPC (Golden Axe ha sido el primero). Su viabilidad en un CPC podría estudiarse, siempre por alguien que conozca más el sistema. Pero ya anticipo que el mayor lastre es la memoria. Quizá en un CPC+ aprovechando la capacidad de un cartucho y su acceso inmediato... Pero no sé, no soy un experto en CPC.

Y después de esta segunda turra, me voy a comer.
Un saludo.
@enriqueggalvez Macho, no sabes lo refrescante que ha sido leer eso en este foro. Llevábamos meses con monotema de la Neo Geo y de cuántos sprites simultáneos puede hacer la SNES. [fumando]

Yo, que solo sé programar en Visual Basic, al leer estas cosas no me entero de la mitad, pero me siento como un niño cuando ve a escondidas una peli de mayores.

Al final va a resultar que el PCW era una supermáquina de videojuegos... en blanco y negro.

Ya sugerí hace un tiempo que alguien debería crear juegos para PCW aprovechando bien sus ventajas, algo que no fuera posible en otros ordenadores de 8 bits.

(En concreto dije nuevos juegos hechos con el PCW en mente que fueran casi imposíbles de convertir a otros ordenadores de 8 bits, pero estas versiones se acercan a mi fantasía).
@enriqueggalvez

Risky Woods PCW


la madre que te parió, tio. [flipa] [plas]
16 respuestas