Página 4 de 4

Re: Scrolles

Publicado: Mié May 07, 2014 4:20 pm
por antoniovillena
Está muy currada la demo, enhorabuena. En cuanto a los sprites borrosos, es normal, es el efecto óptico que produce el movimiento. Por eso no pasa en el personaje principal o en los enemigos cuando te mueves a la vez que ellos. No hay ninguna forma de evitar esto, se puede mejorar moviendo los sprites pixel a pixel pero tú ya lo estás haciendo por lo que no lo puede ver menos borroso.

Lo ideal sería lo que te he dicho antes, currarte lo mismo para que funcione en 48K (sincronizando con puerto flotante), aunque esto te limitará un poco el ancho de pantalla (tienes que procesar línea con el scroll incluído en poco más de 224 ciclos). Si quieres te puedo echar una mano en esto, te aviso que fácil no es. A las malas te quedará un juego sólo 128K muy chulo.

Re: Scrolles

Publicado: Mié May 07, 2014 5:35 pm
por climacus
utopian escribió:Yo no noto nada borroso (Fedora 20, FUSE y Monitor apañao). ¿No será tema de la sincronización entre el emulador y tu pantalla?

Por cierto, pinta genial la rutina, y sobre todo lo de que sea multidireccional hace que la envidia me corroa :lol: :lol:. ¿Cuántos tiles estás usando? Lo digo por si almacenas prerrotadas todas las combinaciones entre tiles, o bien las calculas al vuelo.


Pues no se. Me estare quedando un poco cegato, pero a mi me parecen borrosos. Sera lo que dices de la sincronizacion.

Lo de la envidia es una de las razones por las que he programado la rutina. Y si no, no haber hecho el genesis :)

Las almaceno prerrotadas, pero solo las que necesito. Por ejemplo tengo cuadrado con cuadrado, cuadrado con ladrillo, etc. De todas formas eso se decidira mas adelante. Para el scroll vertical lo calculo al vuelo, ya que es muy facil y rapido.

Re: Scrolles

Publicado: Mié May 07, 2014 5:40 pm
por climacus
antoniovillena escribió:Está muy currada la demo, enhorabuena. En cuanto a los sprites borrosos, es normal, es el efecto óptico que produce el movimiento. Por eso no pasa en el personaje principal o en los enemigos cuando te mueves a la vez que ellos. No hay ninguna forma de evitar esto, se puede mejorar moviendo los sprites pixel a pixel pero tú ya lo estás haciendo por lo que no lo puede ver menos borroso.

Lo ideal sería lo que te he dicho antes, currarte lo mismo para que funcione en 48K (sincronizando con puerto flotante), aunque esto te limitará un poco el ancho de pantalla (tienes que procesar línea con el scroll incluído en poco más de 224 ciclos). Si quieres te puedo echar una mano en esto, te aviso que fácil no es. A las malas te quedará un juego sólo 128K muy chulo.


Lo dicho, lo dejamos asi y Santas Pascuas.

Pues te tomo la palabra y voy a intentar hacerlo en 48k. Te ire manteniendo informado, ya que estas cosas de andar con los ciclos me lian bastante. Por cierto, gracias por la idea de los sprites prerrotados. Es mucho mas rapido.

Re: Scrolles

Publicado: Jue May 08, 2014 7:56 am
por climacus
antoniovillena escribió:
susso escribió:Interesante hilo, por si acaso dejo un link de optimizaciones que de vez en cuando echo una ojeada:
http://wikiti.brandonw.net/index.php?ti ... timization


Interesante. Pero podrían optimizar esto:

Código: Seleccionar todo

foo:
  ld hl, data
  call bar      ; Run routine once
  call bar      ; .. twice
  call bar      ; .. three times
bar:
  ld a, (hl)    ; .. fourth and final time
  inc l
  and $0F
  out (c), a
  ret


Por esto otro:

Código: Seleccionar todo

foo:
  ld hl, data
  call bar1
bar1:
  call bar2
bar2:
  ld a, (hl)
  inc l
  and $0F
  out (c), a
  ret



Rizando el rizo se puede usar este otro método para hacer el bucle. ocupa más memoria (como un byte más por repetición) pero es mucho más rápido (11 ciclos por repetición más o menos)

Código: Seleccionar todo


        LD (STACK+1),SP
   LD SP,TABLA

LOOP   LD A,R
           OUT (254),A
           RET

TABLA   DW LOOP,LOOP,LOOP,LOOP,STACK
   
STACK   LD SP,0   




EL problema es que hay que tener mucho cuidado con las operaciones que afectan a la pila ya que machacaría la tabla y había que recomponerla en momentos en que la velocidad no sea tan crítica. Además hay que asegurarse de que no salte ninguna interrupción mientras se ejecuta, claro

Re: Scrolles

Publicado: Jue May 08, 2014 8:01 am
por Hark0
Bravo por esos videos! :wink:

Re: Scrolles

Publicado: Jue May 08, 2014 2:53 pm
por utopian
climacus escribió:Lo de la envidia es una de las razones por las que he programado la rutina. Y si no, no haber hecho el genesis :)
:lol: :lol:

Las almaceno prerrotadas, pero solo las que necesito. Por ejemplo tengo cuadrado con cuadrado, cuadrado con ladrillo, etc. De todas formas eso se decidira mas adelante. Para el scroll vertical lo calculo al vuelo, ya que es muy facil y rapido.

Ajá, sí que debe ser rápido, simplemente empezando en una línea diferente del tile.

Lo otro... puede limitarte un poco a la hora del diseño, porque o tendrás pocos tiles con todas las combinaciones, o muchos pero con combinaciones limitadas. Será todo un rato para el grafista :).

Re: Scrolles

Publicado: Jue May 08, 2014 3:58 pm
por climacus
utopian escribió:
climacus escribió:Lo de la envidia es una de las razones por las que he programado la rutina. Y si no, no haber hecho el genesis :)
:lol: :lol:

Las almaceno prerrotadas, pero solo las que necesito. Por ejemplo tengo cuadrado con cuadrado, cuadrado con ladrillo, etc. De todas formas eso se decidira mas adelante. Para el scroll vertical lo calculo al vuelo, ya que es muy facil y rapido.

Ajá, sí que debe ser rápido, simplemente empezando en una línea diferente del tile.

Lo otro... puede limitarte un poco a la hora del diseño, porque o tendrás pocos tiles con todas las combinaciones, o muchos pero con combinaciones limitadas. Será todo un rato para el grafista :).


Eso es. De los 16 escanes, se imprimen x del tile de arriba y 16-x del de abajo. Muy simple. Y el horizontal con los tiles prerrotados es mas facil todavia.

Supongo que habra que usar mucho la imaginacion, pero tengo mas de 9k para graficos...