› Foros › Retro y descatalogado › Consolas clásicas
Señor Ventura escribió:Entendido... entonces, si quieres añadir "un conjunto de tiles" para obtener un plano por software, no sale a cuenta porque este se desplazaría de 8 pixels en 8 pixels, y no hay otra forma de hacerlo por las buenas.
Señor Ventura escribió:Obligaría a idear una rutina que encargue a la cpu la tarea de desplazar los tiles de pixel a pixel, pero intuyo que sería bastante costoso, mas que nada porque el código debería empezar por ahí cada vez que comienza un frame, y eso podría ser conflictivo en los momentos en que un programa demande rutinas con total prioridad, pudiendo causar ralentizaciones, etc... ¿no?.
Diskover escribió:Gammenon escribió:
El truco del Battletoads es mover bloques de píxeles a diferentes velocidades. El caso más extremo de esta técnica es el suelo con perspectiva de SF2 y similares.
Ya, eso es lo que he dicho.
Es el,ejemplo más primitivo de scroll paralax.
Luego, si se mezcla con diferentes background de profundidad se consiguen cosas como los gif de ejemplo de SNES
magno escribió:Ummm, puede ser, pero yo veo una laguna en eso que decís: estas consolas antiguas no mueven píxeles, mueven tiles. Eso quiere decir que cada vez que desplaces una tile, el movimiento es brusco de 8 píxeles a la vez (si la tile es 8x8).
No sé si me explico: el scroll implementado por hardware implica mover una cámara con 1 píxel de precisión por una rejilla de tiles de 8x8; cuando te has desplazado 8 píxeles, ya has llegado al límite de una tile que está en el borde de la pantalla y antes de desplazar el siguiente píxel, te da tiempo a actualizar la siguiente tile 8x8 a mostrar. Así el efecto es suave.
Pero si tú quieres mover una tile 1 píxel, no puedes hacerlo, porque o cae en la posición de la reijlla -8 o en la posición +8.
No sé si alguien sabe exactamente cómo se hace esto, porque yo no caigo ahora mismo...
Leugrim escribió:En la nes, recuerdo que pasaba en el Faxanadu, en una pantalla, por lo demás no suele pasar muchas veces, de aquella los juegos estaban bien optimizados, no como ahora que nos venden betas en desarrollo.
Diskover escribió:Se puede hacer perfectamente mediante software. En NES no, pero en SNES o Mega Drive si me creo que se pueda hacer por pixel y no por tile con algún registro de memoria que permita ese acceso.
magno escribió:¿De verdad nadie sabe o se le ocurre cómo se puede hacer el scroll por software? Muchos comentásteis que sabíais que se hacía así en algunos juegos... ¿no tenéis ningún código ensamblador o pseudo-código para saber cómo está implementado?
magno escribió:¿De verdad nadie sabe o se le ocurre cómo se puede hacer el scroll por software? Muchos comentásteis que sabíais que se hacía así en algunos juegos... ¿no tenéis ningún código ensamblador o pseudo-código para saber cómo está implementado?
theelf escribió:Que quede constancia que en la pagina 8 de este hilo, postie un ejemplo con scroll por software
kusfo79 escribió:A que te refieres? a un falso segundo plano como el del Batman Returns de Nes? O a un scroll real por software como el del Golden Axe de master?
Si es el primer caso, simplemente tienes una parte del fondo formada por tiles con una textura repetitiva. Dichos tiles los vas recargando cada frame por versiones con un pixel desplazado. En el caso del Batman Returns creo recordar que son 4 tiles diferentes que se van recargando con las diferentes versiones (8 en total, tantas como pixeles de ancho tiene el tile)
En el caso del Golden Axe de master, simplemente parece que se hace scroll al tile, o sea el scroll se mueve 8px cada vez que avanzas (y necesitas regenerar todo el tilemap de lo que se muestra en pantalla).
vdpramread(8192+320+(y*16)+(x*1))
for y = 0 to 15
vdpramwrite 8192+321+(y)+(x*1)
magno escribió:kusfo79 escribió:A que te refieres? a un falso segundo plano como el del Batman Returns de Nes? O a un scroll real por software como el del Golden Axe de master?
Si es el primer caso, simplemente tienes una parte del fondo formada por tiles con una textura repetitiva. Dichos tiles los vas recargando cada frame por versiones con un pixel desplazado. En el caso del Batman Returns creo recordar que son 4 tiles diferentes que se van recargando con las diferentes versiones (8 en total, tantas como pixeles de ancho tiene el tile)
En el caso del Golden Axe de master, simplemente parece que se hace scroll al tile, o sea el scroll se mueve 8px cada vez que avanzas (y necesitas regenerar todo el tilemap de lo que se muestra en pantalla).
Pues me refiero a las dos cosasPor lo que dices, me confirmas que el scroll por software se implementa haciendo un desplazamiento de 1 píxel en cada frame a cada tile 8x8 para conseguir el efecto de scroll suave. Ésa era la forma de implementarlo que me imaginaba como única posible, pero me parece una carga brutal para el micro tener que desplazar 8 veces por tile (es decir, un LSR o ASL por cada línea de una tile 8x8) las 32x32 tiles (1024 tiles) que forman la pantalla de una SNES.
El caso del Golden Axe de Master que comentas me parece increíble, ya que mover la pantalla 8 píxeles cada vez que avanzas tiene que dar sensación de brusquedad en el movimiento, ¿no?
kusfo79 escribió:Y si, en el caso del Golden Axe o del Altered Beast, hay scroll brusco como pocos
binario22 escribió:Otro hilo desprestigiando a la snes. Illo de verdad que esto es para hacerselo mirar eh?
Aún hay gente que cree que va a reescribir la historia .
Xaradius escribió:binario22 escribió:Otro hilo desprestigiando a la snes. Illo de verdad que esto es para hacerselo mirar eh?
Aún hay gente que cree que va a reescribir la historia .
Tenia sus defectos igual que los tenia la mega. Fue una de las mejores consolas de la historia igual que su compañera de guerras, pero no el Santo Grial flotando en los cielos.
kusfo79 escribió:No, a ver, lo de hacer desplazamientos de bits de todos los tiles no funcionaria (ademas que no queremos hacer eso, querríamos desplazar el contenido de un tile a otro, no solo 8 pixeles). El truco que me refiero es tener esos 4 tiles del Shadow of the Beast guardados en la rom en sus 8 variantes. Es mas, diria que en realidad, esos 4 tiles diferentes son diversos estado de "desplazamiento" de los pixeles, así que realmente lo que tienes son 4 huecos en la VRAM, en los que vas cargando las 8 variantes de ese tile en el que se desplazan los bits.
Y si, en el caso del Golden Axe o del Altered Beast, hay scroll brusco como pocos
AxelStone escribió:kusfo79 escribió:Y si, en el caso del Golden Axe o del Altered Beast, hay scroll brusco como pocos
¿Alguna idea de por qué se hicieron así? No lo entiendo, la Master hace scroll por hardware.
Señor Ventura escribió:kusfo79 escribió:No, a ver, lo de hacer desplazamientos de bits de todos los tiles no funcionaria (ademas que no queremos hacer eso, querríamos desplazar el contenido de un tile a otro, no solo 8 pixeles). El truco que me refiero es tener esos 4 tiles del Shadow of the Beast guardados en la rom en sus 8 variantes. Es mas, diria que en realidad, esos 4 tiles diferentes son diversos estado de "desplazamiento" de los pixeles, así que realmente lo que tienes son 4 huecos en la VRAM, en los que vas cargando las 8 variantes de ese tile en el que se desplazan los bits.
Y si, en el caso del Golden Axe o del Altered Beast, hay scroll brusco como pocos
Eso es lo que había entendido.
Pero, ¿como se desplaza al pixel entonces el rayo del parodius da!?, porque hay un desplazamiento, no sustitución de tiles.
kusfo79 escribió:Siendo un rayo, supongo que simplemente se aseguran que todos los tiles son únicos en esa parte del fondo, y dibujan por software una linea en los tiles involucrados
kusfo79 escribió:Yo solo conocía que hubieran hecho esto en el Popolous, ya que necesitaban "dibujar" el mapa en medio de los iconos, en una perspectiva isométrica. En el Mortal Kombat 2 un luchador se dibuja con sprites y el otro en el fondo, para saltarse las limitaciones de sprite por linea...entiendo que en Golden Axe y Altered Beast es también para saltarse esa limitación, pero no me parece que tengan tampoco tantos sprites...
theelf escribió:Si ves la demo en un emulador, podras notar que el scroll de los ladrillos es cada 1 tile, mientras lo demas que es por hardware es cada 1 pixel
kusfo79 escribió:No, a ver, lo de hacer desplazamientos de bits de todos los tiles no funcionaria (ademas que no queremos hacer eso, querríamos desplazar el contenido de un tile a otro, no solo 8 pixeles).
kusfo79 escribió:El truco que me refiero es tener esos 4 tiles del Shadow of the Beast guardados en la rom en sus 8 variantes. Es mas, diria que en realidad, esos 4 tiles diferentes son diversos estado de "desplazamiento" de los pixeles, así que realmente lo que tienes son 4 huecos en la VRAM, en los que vas cargando las 8 variantes de ese tile en el que se desplazan los bits.
Señor Ventura escribió:Si no es rotación, se me ocurre que debería poder salirse de dudas ripeando sprites de la rom, ¿no?... es mas fácil que intentar echar un vistazo al código (extraerlo, y revisarlo enterito).
theelf escribió:La bola son dos sprites de 32x32
Señor Ventura escribió:theelf escribió:La bola son dos sprites de 32x32
4.
2 sprites de 32x32 es un rectángulo.
magno escribió:¿No tienes ningún savestate del juego cerca de la bola? Mándamelo al correo y salimos de dudas.
Señor Ventura escribió:Editado: De todos modos, si es para mirar el número de sprites de la bola, ya confirmo yo que son 4 de 32x32, porque lo miré con el debugger hace ya semanas (como minimo).
Señor Ventura escribió:2 sprites de 32x32 es un rectángulo.
LoadTiles tiledata_spr1,16,256
bloque=addsprite(4,4)
bloque1=addsprite(4,4)
pallettes pallettedata_spr1,0,0,16
propsprite bloque,256,0
propsprite bloque1,256+hfliptile(1),0
do
waitraster 0
propsprite bloque,256,0
propsprite bloque1,256+hfliptile(1),0
movesprite bloque,224,129
movesprite bloque1,260,129
waitraster 36
propsprite bloque,256+hfliptile(1)+hfliptile(1),0
propsprite bloque1,256+vfliptile(1)+hfliptile(1),0
movesprite bloque,224,169
movesprite bloque1,260,169
waitraster 224
loop
magno escribió:No, es para mirar cómo se hace la rotación del sprite completo, si copiando las tiles de cada posición de la rotación desde ROM, o haciendo la rotación con alguna rutina software.
theelf escribió:No necesariamente
2 sprites de 32x32 son solo dos sprites de 32x32
aca tenes como 2 sprites de 32x32 pueden formar un cuadrado de 64x64. Programado en bex, y pon tus propios sprites
Señor Ventura escribió:Hecho. He guardado la partida usando el snes9x, si tiene que ser desde otro emulador, házmelo saber.
download/file.php?id=91572
magno escribió:Señor Ventura escribió:Hecho. He guardado la partida usando el snes9x, si tiene que ser desde otro emulador, házmelo saber.
download/file.php?id=91572
Me vale en formato SNES9x, preferiblemente 1.51, pero lo que has compartido tú está en ZST de ZSNES
Señor Ventura escribió:@magno
Ahora si, aquí está la partida con snes9x v1.51, perdón por el lapsus (almacenan los saves en diferentes carpetas).
binario22 escribió:Xaradius escribió:binario22 escribió:Otro hilo desprestigiando a la snes. Illo de verdad que esto es para hacerselo mirar eh?
Aún hay gente que cree que va a reescribir la historia .
Tenia sus defectos igual que los tenia la mega. Fue una de las mejores consolas de la historia igual que su compañera de guerras, pero no el Santo Grial flotando en los cielos.
Pero aquí lo que parece es que la queréis hundir en el fango y eso amigos es querer reescribir la historia.
titorino escribió:llevas razón gynion ,por mi parte dejo zanjado el tema ,solo queria expresar mi opinion de lo que se ve ultimamente por el foro.
titorino escribió:gracias señor ventura ,me habia confundido el fondo con las estrellas moviendose
este juego es brutal ,os recomiendo que le echeis unos vicios ,tiene algunas cosillas muy interesantes y aprovecha muy bien las virtudes graficas de la maquina .
titorino escribió:gracias señor ventura ,me habia confundido el fondo con las estrellas moviendose
este juego es brutal