Karoshi MSX Community

Archivo (pre 2018) => MSXdev '14 => Mensaje iniciado por: Timmy en 14 de Noviembre de 2013, 10:08:34 pm



Título: [[**Entry**]] "Heart Stealer" (Timmy)
Publicado por: Timmy en 14 de Noviembre de 2013, 10:08:34 pm
Title: Heart Stealer
Developer: Timmy + (musician needed)
Year: 2014

Game size / RAM required: 32KB ROM / 16KB RAM
Game genre: platform

Other info: A couple of weeks ago I figured out how to make MSX games using z88dk, so I thought I wanted to "port" my old Spectrum game to see how easy it is. It was surprisingly hard to find good documentation on the net, but in the end I've borrowed some books from a friend and so I've started so programming.

Basically it is more like a complete rewrite instead of a port. The sprites are hardware sprites now, and therefore the rooms are slightly larger, and I have to use a completely new palette.

This MSX machine is completely new for me so I'm still working on the graphics, or how I can add more colour to the main sprite while still having 3 enemies on one horizontal line... Well, and many other stuff really... :)

A mock-up screenshot for now:
(http://www.image-share.com/upload/2339/94.png)

PS. Before I forget, my musician for my Spectrum games only does 1-bit music, so I need a PSG musician too.


Título: Re:[[**Entry**]] "Heart Stealer" (Timmy)
Publicado por: mars2000you en 15 de Noviembre de 2013, 04:02:03 am
All about the ZX Spectrum version :

http://www.worldofspectrum.org/infoseekid.cgi?id=0024829


Título: Re:[[**Entry**]] "Heart Stealer" (Timmy)
Publicado por: Jon_Cortazar en 15 de Noviembre de 2013, 04:46:43 am
Great to see you joining the MSXdev, Timmy! Good luck with your MSX re-make, looks cool! :D


Título: Re:[[**Entry**]] "Heart Stealer" (Timmy)
Publicado por: kabish en 15 de Noviembre de 2013, 08:00:44 am
I love this game, simply and fun one.  :)


Título: Re:[[**Entry**]] "Heart Stealer" (Timmy)
Publicado por: Tono en 15 de Noviembre de 2013, 08:19:16 am
Welcome to the MSXDev, Timmy! The screen looks quite different to the speccy one, really. And the game has a lot of fun.


Título: Re:[[**Entry**]] "Heart Stealer" (Timmy)
Publicado por: blackwinds en 16 de Noviembre de 2013, 10:05:50 am
Timmy enter on MSX World... Simply fantastic!
Tymmy is a game designer and coder very talented!
. Heart Stealer 1 & 2;
. Forest Raider Cherry;
. Future Looter*

Just great games!!!

Heart Stealer on MSX fills a gap, because the MSX version of Uwol not released.

*http://retrogamesrevival.blogspot.com.br/2013/05/future-looter.html (http://retrogamesrevival.blogspot.com.br/2013/05/future-looter.html)


Título: Re:[[**Entry**]] "Heart Stealer" (Timmy)
Publicado por: Timmy en 16 de Noviembre de 2013, 05:41:08 pm
Timmy enter on MSX World... Simply fantastic!

*http://retrogamesrevival.blogspot.com.br/2013/05/future-looter.html (http://retrogamesrevival.blogspot.com.br/2013/05/future-looter.html)
Wow! I have seen reviews for that game but I haven't found this one.

Thank you for the nice review!


Título: Re:[[**Entry**]] "Heart Stealer" (Timmy)
Publicado por: Timmy en 16 de Noviembre de 2013, 06:30:20 pm
Welcome to the MSXDev, Timmy! The screen looks quite different to the speccy one, really. And the game has a lot of fun.
You're right. I'm not completely happy with how it looks now. The screen seems to be too large. Maybe I will reduce it back to the original screen sizes.

(The screenshot also stretched the screen a bit, but that might be an emulator setting.)


Título: Re:[[**Entry**]] "Heart Stealer" (Timmy)
Publicado por: mars2000you en 17 de Noviembre de 2013, 12:40:29 am


(The screenshot also stretched the screen a bit, but that might be an emulator setting.)

You are probably using openMSX; switch to blueMSX if you use Windows and your screenshots will have the good size with the borders and without horizontal stretching :

small size : 272 x 240
big size : 544 x 480

Remark : to convert the 320 x 240 openMSX screenshots into the 544 x 480 blueMSX format  

- double the size of the screenshot to get 640 x 480
- then rezize the width from 640 to 560 while keeping the 480 pixels for the height
- finally remove the 8 first pixels on the left and the 8 last pixels on the right ...

You can then go to the small blueMSX format and the result is :

(http://msxdev.msxblue.com/wp-content/uploads/msxdev14/heartstealer2.png)


Título: Re:[[**Entry**]] "Heart Stealer" (Timmy)
Publicado por: pitpan en 17 de Noviembre de 2013, 12:23:40 pm
Timmy: feel free to ask any question regarding MSX development in the development section.

About adding more colors to the main character, that means adding another sprite plane. As you already noticed, MSX can only handle up to 4 sprites in a row, but I you can accept a little sprite flickering, you can double that amount easily and therefore use 2 colors per character.

Without using flickering, you can play with vertical coordinates an use different sprites that do not overlap vertically in the same character.

AA
AA  CC
BB  CC
BB

As you can see, that only accounts as 2 sprites in every scan line.


Título: Re:[[**Entry**]] "Heart Stealer" (Timmy)
Publicado por: Timmy en 17 de Noviembre de 2013, 10:12:50 pm
You are probably using openMSX; switch to blueMSX if you use Windows and your screenshots will have the good size with the borders and without horizontal stretching :

small size : 272 x 240
big size : 544 x 480
Thanks. I will likely install both emulators soon.


Título: Re:[[**Entry**]] "Heart Stealer" (Timmy)
Publicado por: Timmy en 17 de Noviembre de 2013, 10:30:29 pm
About adding more colors to the main character, that means adding another sprite plane. As you already noticed, MSX can only handle up to 4 sprites in a row, but I you can accept a little sprite flickering, you can double that amount easily and therefore use 2 colors per character.

Without using flickering, you can play with vertical coordinates an use different sprites that do not overlap vertically in the same character.

As you can see, that only accounts as 2 sprites in every scan line.
Thanks you for explaining this trick. I am still thinking whether to keep the original single colour sprites or to draw new ones. They were designed with single colour in mind, and the last couple of days I think I might only update the main character with a vertical split sprite like you were suggesting. But I'm not sure of it yet.

Still need to think about it a bit more (mostly because I can't draw :))


Título: Re:[[**Entry**]] "Heart Stealer" (Timmy)
Publicado por: Maggoo en 19 de Noviembre de 2013, 04:56:00 am
About adding more colors to the main character, that means adding another sprite plane. As you already noticed, MSX can only handle up to 4 sprites in a row, but I you can accept a little sprite flickering, you can double that amount easily and therefore use 2 colors per character.

Without using flickering, you can play with vertical coordinates an use different sprites that do not overlap vertically in the same character.

As you can see, that only accounts as 2 sprites in every scan line.
Thanks you for explaining this trick. I am still thinking whether to keep the original single colour sprites or to draw new ones. They were designed with single colour in mind, and the last couple of days I think I might only update the main character with a vertical split sprite like you were suggesting. But I'm not sure of it yet.

Still need to think about it a bit more (mostly because I can't draw :))

Another option to obtain more colors in sprites and limit flickering is to combine software (like on the spectrum) and hardware sprites. For example you could use software sprites for the inner part of the sprite (even using a different color for every line) and use a hardware sprite for the black outline... And u can have up to four of those on a single row without flickering. The drawback is the impact on the background graphics of the software sprites and the additional computation required when multiple sprites overlap but with good level design it's not too difficult.


Título: Re:[[**Entry**]] "Heart Stealer" (Timmy)
Publicado por: MsxKun en 19 de Noviembre de 2013, 10:27:34 am
Another option to obtain more colors in sprites and limit flickering is to combine software (like on the spectrum) and hardware sprites. For example you could use software sprites for the inner part of the sprite (even using a different color for every line) and use a hardware sprite for the black outline...

But then the movement is choppy, unnatural, not smooth and playability decays easily. I rather prefer 1 color sprites but smooth than multicolor and choppy.

Also remember, the MSX tiles can have multicolor. 2 colors per line.


Título: Re:[[**Entry**]] "Heart Stealer" (Timmy)
Publicado por: Maggoo en 19 de Noviembre de 2013, 02:15:37 pm
Another option to obtain more colors in sprites and limit flickering is to combine software (like on the spectrum) and hardware sprites. For example you could use software sprites for the inner part of the sprite (even using a different color for every line) and use a hardware sprite for the black outline...

But then the movement is choppy, unnatural, not smooth and playability decays easily. I rather prefer 1 color sprites but smooth than multicolor and choppy.

Also remember, the MSX tiles can have multicolor. 2 colors per line.

It does not have to be choppy. You can make those sprites move smoothly with pre-shifted data (which is a common thing on the Spectrum but without the colors limitation as you point out). You can use the extra color attributes to have "MSX2 like" sprites with one color per line. I just ran a little quick and dirty test to see how it would look like so pardon the very basic look of it :

http://youtu.be/uOt5n44P_Sk

BTW it moves more smoothly than on the video, somehow youtube seem to havea slower framerate.

The 3 "monsters" are using software sprites for the red and hardware sprites for the black outline. After a few seconds in the demo I switch to a different color of background every odd line to show you can add more color.

The main character is 6 hardware sprites (3 at the top, 3 at the bottom). The disadvantage is the extra processing and the fact that the background on which the sprites are moving has to be uniform or made out of stripes (which can look neat if you play it right)...  


Título: Re:[[**Entry**]] "Heart Stealer" (Timmy)
Publicado por: MsxKun en 19 de Noviembre de 2013, 04:50:19 pm
The main character is 6 hardware sprites (3 at the top, 3 at the bottom). The disadvantage is the extra processing and the fact that the background on which the sprites are moving has to be uniform or made out of stripes (which can look neat if you play it right)...  

Now try horizontal and make a game, not a demo :)


Título: Re:[[**Entry**]] "Heart Stealer" (Timmy)
Publicado por: Maggoo en 19 de Noviembre de 2013, 05:46:19 pm
The main character is 6 hardware sprites (3 at the top, 3 at the bottom). The disadvantage is the extra processing and the fact that the background on which the sprites are moving has to be uniform or made out of stripes (which can look neat if you play it right)...  

Now try horizontal and make a game, not a demo :)

Hey I never said it was very convenient but nothing really is when dealing with MSX Sprites :-)


Título: Re:[[**Entry**]] "Heart Stealer" (Timmy)
Publicado por: MsxKun en 19 de Noviembre de 2013, 07:47:55 pm
The main character is 6 hardware sprites (3 at the top, 3 at the bottom). The disadvantage is the extra processing and the fact that the background on which the sprites are moving has to be uniform or made out of stripes (which can look neat if you play it right)...  

Now try horizontal and make a game, not a demo :)

Hey I never said it was very convenient but nothing really is when dealing with MSX Sprites :-)

Each game has its own needs :) As I see the screenshoot, I think that light and clear background could do enough fine with monochrome (and dark sprites). Then you have something smooth, as this kind of games usually needs.  But yes, depending on how enemies move, you could do this and that... Same as depending on how many of them are on screen, you can add a second sprite for each.  The advantage of 2nd method is that, for the programmer, it is easier to deal with, so he can focus more on the game and less on the tricks :) I think, it's just my opinion.


Título: Re:[[**Entry**]] "Heart Stealer" (Timmy)
Publicado por: Timmy en 19 de Noviembre de 2013, 11:54:55 pm
The idea of using software sprites is very interesting. I like that demo. You might want to make a game out of it.

I use software sprites in my Spectrum games all the time (as if there were any other choices.) For the MSX I'd love to try out hardware sprites first. It's new for me. :)

Also it's my first game and I'd like to concentrate on getting it work first. You'd be surprised how hard it is to learn a completely new machine when most of the interesting documents are in Spanish.  :-X

And I agree with "focus more on the game" first, but then again, I'm just a beginning MSX programmer...


Título: Re:[[**Entry**]] "Heart Stealer" (Timmy)
Publicado por: Jon_Cortazar en 20 de Noviembre de 2013, 06:24:34 am
And I agree with "focus more on the game" first, but then again, I'm just a beginning MSX programmer...

Way to go, Timmy. Imho, your fist goal should be to get used to the platform, that's new to you: once that's done, then there will be time for perfection ;)


Título: Re:[[**Entry**]] "Heart Stealer" (Timmy)
Publicado por: pitpan en 20 de Noviembre de 2013, 11:12:49 am
About the documentation being in Spanish, I suggest you to google "The MSX Red Book", available online as a TXT file OCRed from the original by Avalon Software, focused on MSX(1) machines. If you already know about Z80, this document is perfect. I taught myself MSXing using just this one.


Título: Re:[[**Entry**]] "Heart Stealer" (Timmy)
Publicado por: SEPPASEPPA en 14 de Diciembre de 2013, 07:17:39 pm
The idea of using software sprites is very interesting. I like that demo. You might want to make a game out of it.

I use software sprites in my Spectrum games all the time (as if there were any other choices.) For the MSX I'd love to try out hardware sprites first. It's new for me. :)

Also it's my first game and I'd like to concentrate on getting it work first. You'd be surprised how hard it is to learn a completely new machine when most of the interesting documents are in Spanish.  :-X

And I agree with "focus more on the game" first, but then again, I'm just a beginning MSX programmer...
I vote for small sprite flickering ( the msx has built-in flickering sprites ;-) ). If you need to know how to do it, the trick is simple:
suppose you had to show 6 sprites on a scan line:

A B C D E F
sprites ( E, F) will be dropped, not shown. Each frame you could fill the VRAM table (the SAT) where sprites attributes are kept by rotating (shifthing) the sprite planes. So the next frame will be

B C D E  F A
now, F and A are dropped, next frame you fill with

C D E F A B
and so on, until you reach again to the ABCDEF configuration.

this is called sprite plane rotation. There are other tricks, of course but i think this is the more simpler to code.

you can also "preserve" from flickering some planes (usually the main charater) so your configuration become:

ABCDEF
ABDEFC
ABEFCD
ABFCDE
ABCDEF -> again!

this will ensure that AB planes always are shown and others will flicker

 


Título: Re:[[**Entry**]] "Heart Stealer" (Timmy)
Publicado por: Timmy en 16 de Diciembre de 2013, 02:00:13 am
I vote for small sprite flickering ( the msx has built-in flickering sprites ;-) ). If you need to know how to do it, the trick is simple:

[...]
Thank you for the suggestion. I will consider it. Your explanation is fine, and the idea is not difficult technically.

(It is likely that I will do something like this, but I can't promise it right now. Also I have sensitive eyes so I will have to try it out myself first before committing on anything. I thought of the idea some time ago now but haven't had time to test it yet.)


Título: Re:[[**Entry**]] "Heart Stealer" (Timmy)
Publicado por: mäsäxi en 16 de Diciembre de 2013, 08:49:31 pm
Nice to see Spectrum programmer making an MSX conversion, Timmy!  :) It´s interesting to read what Spectrum programmer has to deal with when "porting" his game to MSX.

Here is one more helpful hint for making your player and enemies more colourful. Try Colecovision game "Galaxian" on bluemsx emulator, you will soon see how the programmers had done enemy ships so colourful, it is a nice "trick" indeed and I think you can get new ideas by watching it for a while. :)

Please show and tell us more as your converting goes on! :)


Título: Re:[[**Entry**]] "Heart Stealer" (Timmy)
Publicado por: mars2000you en 16 de Diciembre de 2013, 08:56:57 pm
About Galaxian, you can find on my site a MSX conversion of the Coleco version :

http://www.msxblue.com/?p=5978