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?
![brindis [beer]](/images/smilies/nuevos2/brindando.gif)
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.