VDP copy problem (Development Foros MSX)MSX Resource Center PassionMSX MSX2 contest           
                       
English Nederlands Español Português Russian                  
 Noticias
   Página principal
  Almacén de noticias
  Temas de noticias

 Recursos
   Foros MSX
  Artículos
  Analisis
  Informe de ferias/RUs
  Álbum de fotos
  Ferias y encuentros
  Encuestas
  Enlaces
  Buscar

 Software
   Descargas
  Tienda Online

 MRC
   Quiénes somos
  Únete a nuestro equipo
  Donar
  Políticas
  Contacta con nosotros
  Enlázanos
  Estadísticas

 Buscar
 
  

  

 Login
 

Login

Contraseña




¿Aún no tienes una cuenta? ¡Conviértete en miembro del MSX Resource Center! ¡Únete a nosotros!.


 Estadísticas
 

Hay 47 invitados y 1 miembro en línea

Eres un usuario anónimo.
 

Foros MSX


Foros MSX

Development - VDP copy problem

Autor

VDP copy problem

DemonSeed
msx professional
Mensajes: 948
Publicado: Agosto 25 2007, 04:28   
I’m talking screen 5. Do you recognize this problem and/or can you even laugh about it (which might mean that you got a solution for it)?

I copy a page-wide (0-255) and vertically 64 pixels section of one memory-page to the same x-position (zero) on the same page, 16 pixels lower, The result is a 6*16 downwards copy of merely the first line.

When I copy the entire thing to 48 instead of 16 pixels lower, no such thing occurs!

Could this be a BASIC problem, an emulation problem or a genuine VDP 'flaw'?
SLotman
msx professional
Mensajes: 543
Publicado: Agosto 25 2007, 09:35   
It's not a flaw. As I understood, you're trying to copy a part of the screen, only 16 pixels lower, overwriting what's below. (if you're not, please post a sample program, so we can see what's going on!)

The VDP starts it's copy line by line, hence overwriting what's below. It's the correct behaviour. If VDP used a buffer to "move" and not "copy" the data, then it would do everything correctly.

The only way to get it working, is doing an upside-down copy, line by line (or as much line as you can) I guess.


[D-Tail]

msx guru
Mensajes: 3017
Publicado: Agosto 25 2007, 09:44   
DemonSeed: you can also exchange pairs of coordinates to get the thing working. I'm guessing you define the top-left and bottom right co-ordinates? Well, try specifying bottom-left, then top-right to get it working. It's the same problem when you try to copy something from right to left (i.e. ye good olde opposite scroller).
PingPong
msx professional
Mensajes: 988
Publicado: Agosto 25 2007, 11:12   
The VDP have a direction flag that could be used to do a right to left or down to top copy in one of the command register.
However i do not l know if in basic there is a way to manipulate this flag.
NYYRIKKI
msx master
Mensajes: 1510
Publicado: Agosto 25 2007, 14:52   
This is completely logical and sometimes even usefull. If I understand you right you have this kind of line in your BASIC program:

COPY (0,0)-(255,64) to (0,16)

This causes first 16 lines to be copyed 4 times. As this is not anyway what you want to do, you should use this command instead:

COPY (0,64)-(255,0) to (0,80)


ro
msx guru
Mensajes: 2329
Publicado: Agosto 25 2007, 15:15   
Pingpong's right. Just check your VPD manual and see what all them operational bits are about in the copy string.
It's obvious if ye think about it, which you prolly did already (I hope for you, else we'll have a laugh and call it a day)

Just copy from bottom to top with this one (y=y-1)
DemonSeed
msx professional
Mensajes: 948
Publicado: Agosto 25 2007, 15:17   
Thanks, guys!

I now see that this behaviour of the VDP is pretty logical indeed.

And I never would have thought that the solution would be that simple!
 
 







(c) 1994 - 2008 Fundación MSX Resource Center. MSX es una marca registrada de MSX Licensing Corporation