Msx 1 software sprites

Page 1/2
| 2

By andrea.denara

Resident (59)

andrea.denara's picture

10-09-2016, 08:09

Hi,
do you know if exist any utilities to manage a software sprite?
ZX Spectrum use it cause of no graphic processor, but I would like how hey implement it.
It seem you have to define every position, so for a 8x8 sprite you have to define 64 different sprite\tiles to cover all position.
I think it's very hard, both for definition both to manage it by code.
Other way is to define sprite and his position in real time.

Login or register to post comments

By RetroTechie

Paragon (1500)

RetroTechie's picture

10-09-2016, 15:01

andrea.denara wrote:

It seem you have to define every position, so for a 8x8 sprite you have to define 64 different sprite\tiles to cover all position.

If you move sprites 2 pixels at a time, that would significantly reduce the # of positions/patterns to define. Even more if moving sprites 4 pixels at a time.

For very big objects, moving 8 pixels at a time allows character-based sprites. Read: relatively quick updates of large screen areas. See for example the boss monsters in many Konami games.

Quote:

Other way is to define sprite and his position in real time.

Yes. If you update sprite definitions on-the-fly, then no need to store pre-defined patterns for all possible positions.

I suppose a lot depends on how many sprites you want at the screen at 1 time, how big they are, and how fast they move. FWIW: on systems like MSX that support hw sprites, I would only consider software sprites as a last resort, or in addition to hw sprites (for example if you keep hitting the max # of sprites / line).

By andrea.denara

Resident (59)

andrea.denara's picture

10-09-2016, 20:11

I need big multicolor sprites. Tiles are not enough for me, sprites have to move around the screen.
So what I need is a fast routine (probably with screen buffer) to move they around with background preserved.
Hardware sprites are only used as a perimeter, colors inside have to be soft sprites.
Do you know some games that do it?

Thamks

By MsxKun

Paladin (892)

MsxKun's picture

10-09-2016, 22:52

andrea.denara wrote:

I need big multicolor sprites. Tiles are not enough for me
Thamks

You can try MSX2 which has multicolor sprites.

If it's still not enought, then MSX is not enought for you. Evil Try a 16 bit machine or PCEngine, for example.
MSX have monochrome sprites and tiles. With that you can make great games. I don't remember Maze of Galious, Penguin Adventure or Zanac needing to combine sprites+tiles to create a single hybrid sprite. The hell they needed it to create FUN. But I remember tiles used as sprites (without perimeter) at Yie Ar Kung Fu, at least.

You can try what you want on MSX and manage to make it. It can be done, but if I understand correctly what you are trying to do, probably at the cost of having slow stuff moving around the screen. Causing boreness. Typical game you like how it looks, you try, you switch off the MSX in 2 mins.
Lot of effort for nothing. If you want to spend your time on that because it's a challenge for you, go ahead! Smile Perfect, nothing to add. If you want to make something funny that people can play, I'd suggest either give a try on MSX2 or think again if you really really need those hybrid sprites or you can manage to use only software sprites. Or tiles, as it. Bit blocky, sure, but depends what type of game it is. Sometimes, if not often, smart design gives more perfomance that miracle fast routines.

Just my advice, now do what you want/can, of course!

By andrea.denara

Resident (59)

andrea.denara's picture

11-09-2016, 07:35

It's a competition with myself, I have a Philips 8245 ported to Msx2+, so no need this for me.
I see around a lot of games with 8 pixel scroll or monochrome sprites and\or blinking sprites, so my idea is something that apparently overcome msx 1.

Some example:
C64 often use a 160x100 resolution to overcome some limits, I've think a game with 64x192 pixel on Msx, in this way you have a very fast bitmap screen with 4 pixel scroll instead 8. Don't think res is too low, for example take a shooting game like Nemesis and transform images by x4, the result is very similar to some C64 games.
ZX Spectrum has overcome colourclash with some tech.

I remember also than Msx1 can do perfect 1 pixel vertical scroll (by software), but games that do that are very rare.

Thanks

By andrea.denara

Resident (59)

andrea.denara's picture

11-09-2016, 09:20

This is what i mean when say 64x192 pixel screen:

64x192

Think about a scroll routine, this require 32 bytes for line.
Every bytes contain itself pattern and colors.
The result should be a 4 pixel scroll without other limitation and a vertical scroll by 1 pixel.

By NYYRIKKI

Enlighted (5249)

NYYRIKKI's picture

11-09-2016, 09:30

andrea.denara wrote:

I remember also than Msx1 can do perfect 1 pixel vertical scroll (by software), but games that do that are very rare.

Indeed... There are some great examples like Malaika or Lotus F3 and Artrag has also done some really impressive experiments with MSX1 graphics. Usually these kind of techniques are only seen on demos because of the nature of the effects. They tend to work only on limited environment and have relatively big payload for CPU. For the same reasons there exists no general purpose sprite editors for the ideas that you are having.

If you want to make a game, make a game and forget the colorful software sprites. If you want to prove to us or your self that such a things can be done, then make a demo... You can also try to combine the ideas, but usually that kind of approach ends up to such a big & complex project that the end result will rarely see a daylight...

By ARTRAG

Enlighted (6150)

ARTRAG's picture

11-09-2016, 09:52

NYYRIKKI wrote:

Indeed... There are some great examples like Malaika or Lotus F3 and Artrag has also done some really impressive experiments with MSX1 graphics. Usually these kind of techniques are only seen on demos because of the nature of the effects. They tend to work only on limited environment and have relatively big payload for CPU. For the same reasons there exists no general purpose sprite editors for the ideas that you are having.

There is also Uridium, where the CPU payload for scrolling is almost zero.
All tiles are prerotated and fit nicely in vram, so scrolling of two pixels means only to update the PNT (I.e. 512 bytes of vram).

The tricky part is to define a memory layout where you can fit 1024 tiles ;)

https://youtu.be/HRiYqM4yJ2o
https://youtu.be/LnbYowcCU2w

By ARTRAG

Enlighted (6150)

ARTRAG's picture

11-09-2016, 10:09

About the sprite question, using the same techniques it is possible to use prerotated tiles to move in 4 directions a large item but color spilling had to be minimized by design (look at uridium, color spilling is there) and there is no way to precompute overlapping (too few tiles).
You have to manually define a sprite frame around the tiles, no tool for that.
If this is your requirement consider going to bitmap modes on msx2.

By MsxKun

Paladin (892)

MsxKun's picture

11-09-2016, 12:59

ARTRAG wrote:

If this is your requirement consider going to bitmap modes on msx2.

Yes, let's make things still slower Wink
Well, depends on how many sprites he needs. Anyway he said it was a challenge for himself, so it opens doors to consider everything and it's good to test own skills.

Page 1/2
| 2
My MSX profile