Is it possible to make this screen mode? (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 129 invitados y 1 miembro en línea

Eres un usuario anónimo.
 

Foros MSX


Foros MSX

Development - Is it possible to make this screen mode?

Autor

Is it possible to make this screen mode?

Ada
msx novice
Mensajes: 29
Publicado: Mayo 22 2007, 17:23   
Hi!

I wonder if it's possible to make a screen mode like the one we find on the Spectrum, I mean 6144 bytes for patterns and 768 bytes for the color table (like screen 1). Take into account I'm talking about being possible for MSX1 also. If possible, could this lead into trouble, as it would be a 'mixed' mode?

Thanks!
jltursan
msx professional
Mensajes: 826
Publicado: Mayo 22 2007, 18:47   
Not totally VDP controlled I'm afraid; but you can always get the same results vpokeing the 8 color table bytes...
nikodr
msx addict
Mensajes: 449
Publicado: Mayo 23 2007, 03:08   
Why would someone want to limit himself to only 6144 bytes?
Ada
msx novice
Mensajes: 29
Publicado: Mayo 23 2007, 09:41   
The reason is to vpoke just one byte and not eight. I wnat to do that in order to emulate the spectrum screen layout, so I can use software sprites in MSX, like the old conversions from that computer. I know you all hate them, but I'm doing experiments, that's all
jltursan
msx professional
Mensajes: 826
Publicado: Mayo 23 2007, 12:45   
If you define a monochrome area it's easy to emulate; the problem arises when you try to get colored sprites, I can see what you're talking about; but AFAIK there's no solution to that, you need to set the 8 color bytes.
If you think about the spectrum games with the "famous" multicolored blocky sprites (Savage, Popeye,...), now the MSX could benefit of the speed of its nametable. Maybe you can explore this way (I really like the Hudson blocky games or the big sprites of games like DoorDoor)
SLotman
msx professional
Mensajes: 518
Publicado: Mayo 23 2007, 15:07   
The biggest problem is that spectrum VRAM is linear while on MSX you have to plot it on 8x8 blocks.

Add to this that you cant write directly to VRAM like Spectrum, and you have explained why conversions from Spectrum to MSX runs much slower than the originals (in most cases, of course)

Would be nice if the conversions could be made using MSX sprites, specially in some games to reduce color clash... but it's not an easy task

Games could be even further adapted, to - when running on MSX2 - play music or samples (Robocop comes to mind) from Spectrum 128k;

But if someone even attempt to do these things, they're better coding the game from scratch, it will be faster
Ada
msx novice
Mensajes: 29
Publicado: Mayo 23 2007, 16:21   
Thanks!
I could vpoke the color table first (after drawing the screen, and as JL says, vpokeing the 8 bytes of the characters) and then move the sprites. I've seen this effect on some Spectrum games but the problem is the sprites take the color of the zone they're in. Most Spectrum games also "colour" the sprite zone (there's color clash with the background, of course) but I'm afraid MSX is too slow to vpoke the colors as I've got to LDIRVM the pattern table also. That's why I found that a color system like screen1 would be easier as I'd have to dump only 768 bytes (or whatever I use). If you have any ideas using pure sc2, I'll be more than happy.

Thanks again!
Ada
msx novice
Mensajes: 29
Publicado: Mayo 23 2007, 16:23   
Oh, by the way, I'm not making a conversion, just a new game (yes, you'll hate me cause I'm doing this that way!)
pitpan
msx master
Mensajes: 1367
Publicado: Mayo 23 2007, 18:19   
You won't get very far if you use LDIRVM. To update a big amount of the VRAM you'll need to forget the BIOS and use a bunch of OUTIs instead. Anyway, even using the fastest techniques, you won't break the 1,5 KB / frame barrier. Remember that you need to introduce a pause between OUTIs in order to prevent data corruption.

About software sprites, you can have a look at http://www.robsy.net/joemove4.rom

Use UP/DOWN to modify the number of sprites and SPACEBAR to use the border-colour trick to measure CPU usage.
PingPong
msx professional
Mensajes: 869
Publicado: Mayo 23 2007, 22:10   
Quote:

You won't get very far if you use LDIRVM. To update a big amount of the VRAM you'll need to forget the BIOS and use a bunch of OUTIs instead. Anyway, even using the fastest techniques, you won't break the 1,5 KB / frame barrier. Remember that you need to introduce a pause between OUTIs in order to prevent data corruption.

About software sprites, you can have a look at http://www.robsy.net/joemove4.rom

Use UP/DOWN to modify the number of sprites and SPACEBAR to use the border-colour trick to measure CPU usage.



Hi, pitpan, can you make a msx2 screen5 version of the demo using the vdp blitter? would be nice to compare the performance results...
jltursan
msx professional
Mensajes: 826
Publicado: Mayo 24 2007, 10:55   
I've been lately doing SC8 blitting experiments and found that a 16x16 area takes about 4200T (measured by the time waiting the VDP end flag); so it's slighty faster than using bare OUTIs. To speed up the blitting, the sprites were disabled and the screen height reduced to 192 pixels. I guess that in SC5 the blitting speed must be twice if you plot only on even X coordinates.
pitpan
msx master
Mensajes: 1367
Publicado: Mayo 24 2007, 18:02   
Are you seriously asking me to code for MSX2!!!?
 
 







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