"The Great Escape" ¿iba así de rápido en spectrum?

Foro de los juegos de la Edad de Oro (también de los no españoles). || Talk about classic games.

Moderadores: Neville, CEZ

Responder
Avatar de Usuario
Randomize
16 bits
16 bits
Mensajes: 158
Registrado: 11 Feb 2006 13:24

"The Great Escape" ¿iba así de rápido en spectrum?

Mensaje por Randomize »

Es que no salgo de mi asombro. Yo tenía un CPC y recuerdo que se movia tan lento como lo hace en cualquier emulador de CPC. Pero me pongo un emulador de spectrum (Spectaculator) y... ¡joroba! da gusto a que velocidad se mueve. Si, por supuesto el emulador está en Speed/Normal.


S2.
Última edición por Randomize el 28 Dic 2007 20:12, editado 1 vez en total.
Avatar de Usuario
Neville
256 bits
256 bits
Mensajes: 3328
Registrado: 03 Ene 2005 12:03

Mensaje por Neville »

Por norma los juegos que tienen versiones Spectrum y Amstrad se suelen mover algo mejor en Spectrum.
These are the days
When our work has come assunder
These are the days
when we look for something other

Midnight is where the day begins
DaDMaN
128 bits
128 bits
Mensajes: 1636
Registrado: 14 Mar 2006 00:29
Ubicación: Palma de Mallorca
Contactar:

Mensaje por DaDMaN »

Esto ocurria más concretamente en las conversiones directas SPECTRUM - AMSTRAD, como es el caso.

Yo también jugué muchísimo a este juego en CPC y realmente al caminar se ve como se "redibuja" la pantalla entera.

Seguramente si se hubiesen entretenido en emplear las carácteristicas de CPC en lugar de "simular" la pantalla de Spectrum, el resultado en cuanto a velocidad hubiese sido satisfactorio.

Salu2.
GRAFISTA CEZ - TEAM

ImagenImagen

GRAFISTA CEZ - TEAM
Avatar de Usuario
Davae
16 bits
16 bits
Mensajes: 285
Registrado: 24 Sep 2005 22:57
Ubicación: Barcelona

Re: "The Great Escape" ¿iba así de rápido en spectrum?

Mensaje por Davae »

Los usuarios de C64 también estamos acostumbrados a que algunas conversiones de Spectrum eran especialmente lentas debido a que no sacaban provecho del hardware del Commodore. Especialmente recuerdo la conversión del Fairlight, que era insubriblemente lenta, sobretodo a la que aparecía un enemigo en la pantalla. :(
Avatar de Usuario
na_th_an
256 bits
256 bits
Mensajes: 11874
Registrado: 22 Abr 2005 13:25
Contactar:

Re: "The Great Escape" ¿iba así de rápido en spectrum?

Mensaje por na_th_an »

De todos modos es que el Fairlight es un juego isométrico y por mucho sprite hardware que haya poco se puede hacer al respecto. Estos juegos siempre irán mejor en máquinas con más potencia de procesador, ya que toda la escena hay que pintarla por software. Lo mismo ocurre con juegos vectoriales o que empleen técnicas como freescape.
Avatar de Usuario
Metalbrain
128 bits
128 bits
Mensajes: 1717
Registrado: 16 Oct 2005 15:56
Ubicación: Sevilla
Contactar:

Re: "The Great Escape" ¿iba así de rápido en spectrum?

Mensaje por Metalbrain »

Hay que tener en cuenta otro detalle. En Amstrad una pantalla ocupa casi 16Kb, mientras que en Spectrum ocupa 6,75Kb, así que aunque la potencia del procesador sea parecida (el Amstrad va a 4MHz, pero como toda la memoria está en contienda, no se aprovecha toda la velocidad), siempre va a tardar más tiempo en actualizar los gráficos. Eso sí, si se usa una pantalla secundaria, por hardware se puede cambiar de una a otra sin perder tiempo, mientras que Spectrum hay que hacer la copia de datos que tarda bastante (a menos que lo hagamos solo para 128k, en cuyo caso también podemos usar un cambio rápido). Y por hardware en Amstrad también se pueden hacer ciertos tipos de scroll de forma rápida. Hasta donde yo se, el Amstrad tampoco tenía sprites.

Así pues, dependiendo del tipo de juego y de si se puede usar o no la pantalla secundaria (que ocuparía otros 16K), la versión de Amstrad puede ser o irremediablemente más lenta o parecida en velocidad o incluso más rápida.

Ya si se convierte o no directamente de Spectrum intentando simular su pantalla, pues no se cuanto puede llegar a influir, pero desde luego no parece que vaya precisamente a ayudar.
SevenuP se escribe con u minúscula y P mayúscula.

I need Speed - Kein Aufruf zu Drogenkonsum.
DaDMaN
128 bits
128 bits
Mensajes: 1636
Registrado: 14 Mar 2006 00:29
Ubicación: Palma de Mallorca
Contactar:

Re: "The Great Escape" ¿iba así de rápido en spectrum?

Mensaje por DaDMaN »

Metalbrain escribió:En Amstrad una pantalla ocupa casi 16Kb
Eso no es del todo correcto... Puede ocupar, desde 0Kbytes hasta 32Kbytes (25920 bytes realmente, pero se dice que son 32Kbytes porque necesita 2 bloques de 16kbytes del primer banco de RAM) ;) Más concretamente (hablando de ports de spectrum), la memoria de video del cpc es directamente proporcional a los parámetros de ancho y alto de pantalla con los que configuremos el crtc, que en este último caso era en Mode 1 - 4 colores -256x192 (la misma resolución que en speccy).

En el Amstrad CPC, tenemos 3 modos de pantalla "predefinidos" en el BASIC (al arrancar la máquina).

Mode 0 : 160x200 píxeles 16 colores
Mode 1 : 320x200 píxeles 4 colores
Mode 2 : 640x200 píxeles 2 colores

Los 3 modos de pantalla ocupan exactamente lo mismo, 16Kbytes (bueno, realmente 16000 bytes exactos). ¿Cómo es posible? El hardware de video del CPC determina que:

En Mode 0, 1 byte en la memoria de video representa 2 pixeles (160x200 = 32000 pixeles / 2 = 16000 bytes)
En Mode 1, 1 byte en la memoria de video representa 4 pixeles (320x200 = 64000 pixeles / 4 = 16000 bytes)
En Mode 2, 1 byte en la memoria de video representa 8 píxeles (640x200 = 128000 pixeles / 8 = 16000 bytes)

El CRTC del CPC permite ser configurado para cualquier resolución comprendida entre 0x0 píxeles y "384x270 (Mode 1), 768x270 (Mode 2), 192x270 (Mode 0)", empleando la cantidad de RAM necesaria para la configuración elegida.

En el caso de los Ports de Spectrum, se configuraba el CRTC a 256x192 en Mode 1.
Calculando: 256x192 = 49152 píxeles. Como 1 byte en la memoria de video representa 4 pixeles, tenemos que 49152 / 4 = 12288 bytes.

Ese es realmente el tamaño de pantalla ocupado en los ports directos speccy / amstrad. Realmente, es el doble que la pantalla de spectrum (en tamaño), pero 4 kbytes menos que los 16Kbytes preestablecidos por el BASIC.

Una resolución de pantalla en Mode 1(pixel cuadrado - 4c colores) en Amstrad CPC que ocuparía exactamente 6912 bytes (como la pantalla del spectrum) sería de 192x144 píxeles (24x18 caracteres).
Calculemos: 192x144 = 27648 pixeles / 4 (pixeles por byte en mode 1) = 6912 bytes.

El tema de la "memoria contenida" (o en contienda, o como narices se diga), el CPC también difiere del Speccy y si no estoy equivocado, carece de ella. El CPC emplea como memoria de video la RAM (comparte) del sistema, permitiendo alojar el inicio de la memoria de video en el inicio de cualquier bloque de 16kbytes del primer banco de 64Kbytes (&0000,&4000,&8000 e &c000) a gusto del consumidor. Esto permite, entre otras cosas, tener 2 pantallas que se van alternando en distintos bloques de memoria e ir cambiando el puntero de la memoria de video de una a otra (nos ahorramos el volcar el buffer a la pantalla).

Resumiendo: El The Great Escape, PODRIA haber corrido bastante más, sin ninguna duda.

Salu2!
GRAFISTA CEZ - TEAM

ImagenImagen

GRAFISTA CEZ - TEAM
Avatar de Usuario
na_th_an
256 bits
256 bits
Mensajes: 11874
Registrado: 22 Abr 2005 13:25
Contactar:

Re: "The Great Escape" ¿iba así de rápido en spectrum?

Mensaje por na_th_an »

Sobre lo de la memoria en contienda (contended :lol:), es precísamente la capacidad de que el CTRC pueda usar cualquier banco de memoria lo que hace que toda la memoria esté, en potencia, en contienda. Sea como fuere, si el CTRC está accediendo al banco X para pintar la imagen, éste banco pasará a estar automáticamente en contienda. Cualquier acceso del Z80 a ese banco se verá parado siempre que el CTRC quiera acceder a él. ¿Qué ocurre? Que aunque usemos sólo 12K para la pantalla, los 4K restantes o bien no se usan o bien su acceso es más lento (es lo mismo que ocurre con los casi 9Kb restantes del primer banco de RAM del Spectrum. No son VRAM, pero al estar en el mismo banco que ésta, se ven igualmente afectados).

¿Qué ocurre? Que al ser un port directo, todo el rendering se hace por software. De entrada hay que mover casi el doble de los datos, y precísamente a la zona de memoria en contienda. Y si el origen de alguno de estos datos (que no lo sé), está además en esos 4Kb restantes de ese banco... Entonces apaga y vámonos.

Claro que podría haber dado mucho más de si: sólo con haber reprogramado todo el rasterizador podrían haberse ganado ciclos. Estoy seguro de que, además, se emula el modo gráfico de Spectrum hasta el más mínimo detalle. En un juego de estas características, además, los gráficos están prerrotados. Si estamos emulando el Spectrum, esas prerrotaciones no funcionan del todo bien en un CPC, y estoy seguro que incluso la conversión se hace al vuelo para ahorrar memoria.

Vamos, que estoy totalmente de acuerdo contigo: podrían haberlo hecho mucho mejor con algo de esfuerzo. Hemos visto juegos isométricos (y hasta filmation, que implican aún más cálculo tanto por detrás como para el display) en CPC que corren muchísimo más.
Avatar de Usuario
Metalbrain
128 bits
128 bits
Mensajes: 1717
Registrado: 16 Oct 2005 15:56
Ubicación: Sevilla
Contactar:

Re: "The Great Escape" ¿iba así de rápido en spectrum?

Mensaje por Metalbrain »

Coño DaD, muchísimas gracias por la información.
DaDMaN escribió:El CRTC del CPC permite ser configurado para cualquier resolución comprendida entre 0x0 píxeles y "384x270 (Mode 1), 768x270 (Mode 2), 192x270 (Mode 0)", empleando la cantidad de RAM necesaria para la configuración elegida.
¿Entonces si lo pones a una resolución ridículamente baja (por ejemplo, 320x2 en modo 1), obtienes líneas como si fueran de 100 píxeles de altura? Eso vendría de coña para hacer efectos de Zoom Out y Zoom In.
DaDMaN escribió:El tema de la "memoria contenida" (o en contienda, o como narices se diga), el CPC también difiere del Speccy y si no estoy equivocado, carece de ella. El CPC emplea como memoria de video la RAM (comparte) del sistema, permitiendo alojar el inicio de la memoria de video en el inicio de cualquier bloque de 16kbytes del primer banco de 64Kbytes (&0000,&4000,&8000 e &c000) a gusto del consumidor. Esto permite, entre otras cosas, tener 2 pantallas que se van alternando en distintos bloques de memoria e ir cambiando el puntero de la memoria de video de una a otra (nos ahorramos el volcar el buffer a la pantalla).
na_th_an escribió:Sobre lo de la memoria en contienda (contended ), es precísamente la capacidad de que el CTRC pueda usar cualquier banco de memoria lo que hace que toda la memoria esté, en potencia, en contienda. Sea como fuere, si el CTRC está accediendo al banco X para pintar la imagen, éste banco pasará a estar automáticamente en contienda. Cualquier acceso del Z80 a ese banco se verá parado siempre que el CTRC quiera acceder a él. ¿Qué ocurre? Que aunque usemos sólo 12K para la pantalla, los 4K restantes o bien no se usan o bien su acceso es más lento (es lo mismo que ocurre con los casi 9Kb restantes del primer banco de RAM del Spectrum. No son VRAM, pero al estar en el mismo banco que ésta, se ven igualmente afectados).
Según yo lo entendí de la página esta,
http://www.kjthacker.f2s.com/docs/instrtim.html

el diseño del Amstrad es tal que se accede a la memoria de video de manera sincronizada en determinados momentos fijos, independientemente de que banco de memoria esté siendo utilizado, con lo cual las temporizaciones son uniformes (y más lentas que en un Z80 normal), y la velocidad de 4MHz del Amstrad queda reducida a una velocidad efectiva aproximada de 3.3MHz. Osea, que aunque usemos 12K para la pantalla, no son los 4K restantes del banco los que van más lentos, los 64Ks van todos igual de lentos.
SevenuP se escribe con u minúscula y P mayúscula.

I need Speed - Kein Aufruf zu Drogenkonsum.
DaDMaN
128 bits
128 bits
Mensajes: 1636
Registrado: 14 Mar 2006 00:29
Ubicación: Palma de Mallorca
Contactar:

Re: "The Great Escape" ¿iba así de rápido en spectrum?

Mensaje por DaDMaN »

Efectivamente, toda la RAM del CPC funciona a la misma velocidad, independientemente de si se usa para video o no. La velocidad resultante del Z80 efectivamente es inferior a los 4Mhz por eso mismo que comentas, Metalbrain.

El tema de definir el ancho y alto de la pantalla, tiene una pequeña limitación. No se define por pixeles, sino por caracteres de 8x8. 320x2 pixeles no es valido, pero si lo es 320x8 (40x1 caracteres). La definicion de alto y ancho se envia en caracteres.

El CRTC también permite desplazar (scrollear) la pantalla en cualquier dirección con 2 simples "OUTS" desde el propio BASIC. Tiene también otros modos de funcionamiento, como el modo "interlaced" (lo pongo en ingles, asi seguro que no me equivoco, xD), que duplica la pantalla en 2 secciones, una con las lineas pares y otra con las impares.

La verdad es que la versatibilidad del CRTC es impresionante.

@Nath: Gracias por la explicación :) Era una de las cosas que dudaba al respecto :P

Salu2!
GRAFISTA CEZ - TEAM

ImagenImagen

GRAFISTA CEZ - TEAM
Avatar de Usuario
Randomize
16 bits
16 bits
Mensajes: 158
Registrado: 11 Feb 2006 13:24

Re: "The Great Escape" ¿iba así de rápido en spectrum?

Mensaje por Randomize »

Joer!, que interesante. Mi voto para un "The Great Escape v2.0"

S2.
Avatar de Usuario
Metalbrain
128 bits
128 bits
Mensajes: 1717
Registrado: 16 Oct 2005 15:56
Ubicación: Sevilla
Contactar:

Re: "The Great Escape" ¿iba así de rápido en spectrum?

Mensaje por Metalbrain »

DaDMaN escribió:El tema de definir el ancho y alto de la pantalla, tiene una pequeña limitación. No se define por pixeles, sino por caracteres de 8x8. 320x2 pixeles no es valido, pero si lo es 320x8 (40x1 caracteres). La definicion de alto y ancho se envia en caracteres.
Aún con resolución de caracteres, puede seguir siendo útil para hacer efectos. Y estoy pensando en algunas máquinas recreativas de tipo Street Fighter que cuando los luchadores se alejaban se hacía un zoom out y cuando se acercaban se hacía un zoom in, pero claro está a la misma resolución y escalando los sprites. En Amstrad se podría hacer que se vieran los mismos gráficos, pero con pixeles más grandes si están más juntos. Sería una pesadilla para programar, pero podría molar. ¿Existe algo así que ya esté hecho?
SevenuP se escribe con u minúscula y P mayúscula.

I need Speed - Kein Aufruf zu Drogenkonsum.
Avatar de Usuario
EightBiter
128 bits
128 bits
Mensajes: 2983
Registrado: 23 Dic 2004 18:27
Ubicación: El Foro, Madrid, España
Contactar:

Re: "The Great Escape" ¿iba así de rápido en spectrum?

Mensaje por EightBiter »

No le déis más vueltas: si en Spectrum se movía más rápido, era porque tenía más prisa 8-[
Avatar de Usuario
Kendroock
256 bits
256 bits
Mensajes: 7304
Registrado: 24 Dic 2004 09:08
Ubicación: Fuenlabrada (Madrid)
Contactar:

Re: "The Great Escape" ¿iba así de rápido en spectrum?

Mensaje por Kendroock »

EightBiter escribió:No le déis más vueltas: si en Spectrum se movía más rápido, era porque tenía más prisa 8-[
Sabias palabras... :mrgreen:
Un saludo.

Imagen
Umaaa Curaaaaa!!!!!
Avatar de Usuario
AugustoRuiz
128 bits
128 bits
Mensajes: 1726
Registrado: 24 May 2006 08:35
Ubicación: Madrid
Contactar:

Re: "The Great Escape" ¿iba así de rápido en spectrum?

Mensaje por AugustoRuiz »

Metalbrain escribió:
DaDMaN escribió:El tema de definir el ancho y alto de la pantalla, tiene una pequeña limitación. No se define por pixeles, sino por caracteres de 8x8. 320x2 pixeles no es valido, pero si lo es 320x8 (40x1 caracteres). La definicion de alto y ancho se envia en caracteres.
Aún con resolución de caracteres, puede seguir siendo útil para hacer efectos. Y estoy pensando en algunas máquinas recreativas de tipo Street Fighter que cuando los luchadores se alejaban se hacía un zoom out y cuando se acercaban se hacía un zoom in, pero claro está a la misma resolución y escalando los sprites. En Amstrad se podría hacer que se vieran los mismos gráficos, pero con pixeles más grandes si están más juntos. Sería una pesadilla para programar, pero podría molar. ¿Existe algo así que ya esté hecho?
A ver.. El hecho de que pintes sólo un caracter en la pantalla no afecta al tamaño del mismo en el CPC. Simplemente es que de todo el recorrido del cañón, sólo va a pintar una línea...

Eso te puede valer para preparar un scroll por hard, pero no un zoom, ya que el tamaño de los pixels es siempre el mismo en función del modo en el que trabajes (0,1 o 2). La cosa es que si defines que la pantalla sea de 160x100 en vez de 320x200, no se van a ver los pixels el doble de gordos... :S
Responder