Is it possible to make this screen mode?

Page 1/2
| 2

By Ada

Resident (49)

Ada's picture

22-05-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! Smile

Login or register to post comments

By jltursan

Prophet (2619)

jltursan's picture

22-05-2007, 18:47

Not totally VDP controlled I'm afraid; but you can always get the same results vpokeing the 8 color table bytes...Tongue

By nikodr

Paladin (748)

nikodr's picture

23-05-2007, 03:08

Why would someone want to limit himself to only 6144 bytes?

By Ada

Resident (49)

Ada's picture

23-05-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 Smile

By jltursan

Prophet (2619)

jltursan's picture

23-05-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)

By SLotman

Paragon (1240)

SLotman's picture

23-05-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) Tongue

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 Sad

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 Smile

By Ada

Resident (49)

Ada's picture

23-05-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! Smile

By Ada

Resident (49)

Ada's picture

23-05-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!) Tongue

By pitpan

Prophet (3152)

pitpan's picture

23-05-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.

By PingPong

Prophet (3898)

PingPong's picture

23-05-2007, 22:10

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...

By jltursan

Prophet (2619)

jltursan's picture

24-05-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.

Page 1/2
| 2