Reviving VSCREEN

Page 1/2
| 2

By Oniric-Factor

Master (176)

Oniric-Factor's picture

11-06-2017, 16:13

Regards,

A few years ago, when i was looking for information about video game development for MSX, i found VSCREEN.

The engine seemed pretty powerful, but there was a lack of documentation about how to use it when you are making a game. There is information on how to use the level editor, the Sprites editor ... but the documentation has been incomplete since 2004. Just in the most interesting part!

I stopped studying the engine and continued to make games on my own, but a few days ago I saw it again and I am determined to try to revive the project.

Its a pity that there is no games finished with this tool, since in my opinion it has a lot of potential.

I am currently trying to locate anyone who has used VSCREEN or who has participated in its development, with the aim of create the missing documentation and create any game with it.

Today, we have been experimenting with it, and we have decided to write concrete doubts:

1- How do you define a custom font in VSCREEN?
2- Is it possible to hide the texts that show the state of charge?
3- How do you modify or add a start menu?
4- In the editor we have seen that you can define sprites of more than 16x16 How are these expanded sprites used later? I understand that they should have different collision masks
5- How are different behaviors added to enemies? There are two types of enemy, modifiable by parameters, but if I want to add new routines, I need to know how to do it
6- How are special tiles defined and used? I see in the editor that some appear, but it is not specified in the documentation.

Sorry for my bad English

Login or register to post comments

By ARTRAG

Enlighted (6976)

ARTRAG's picture

11-06-2017, 17:16

Look for Magoo, he is the main coder of the vscreen engine

By Pac

Scribe (7103)

Pac's picture

11-06-2017, 19:11

Vscreen has much potential and it's a pity that an engine like this were not fully exploited by the MSX community. In my opinion today it could be updated with Trilotracker, ayFX or other modern software and/or features.

By Oniric-Factor

Master (176)

Oniric-Factor's picture

11-06-2017, 21:29

ARTRAG wrote:

Look for Magoo, he is the main coder of the vscreen engine

I have sent a PM to him some days ago. For now i have no response. Perhaps the email in his profile is outdated, or it is in his spam folder, or he has no free time. The next thing i have decided to do is to open this topic.

By Maggoo

Paragon (1218)

Maggoo's picture

12-06-2017, 18:57

Hi there, thanks for your interest in VSCREEN. Let me try to clarify some of these points:

1- How do you define a custom font in VSCREEN?

Fonts in the menu are in screen 4 graphic format, stored in the vsmenu.fnt file is bsave format (only for the 32 characters saved or so). In the game they are Screen 5 and stored along with Score bar graphics in demobar.scr (which you should be able to bload in screen 5).

2- Is it possible to hide the texts that show the state of charge?

Yes, I think if you look in vscreen.gen there is a routine that does ld hl,start_text ; call inittext.
You can either remove it or change the text at start_text to display something else.

3- How do you modify or add a start menu?
All the code is in vsmenu.gen.

4- In the editor we have seen that you can define sprites of more than 16x16 How are these expanded sprites used later? I understand that they should have different collision masks
Actually in the version 1 of vscreen, all sprites are 16x16 and use the same collision mask.

5- How are different behaviors added to enemies? There are two types of enemy, modifiable by parameters, but if I want to add new routines, I need to know how to do it

Each enemy is managed by a table of 15 bytes. The second byte (ix+1) defines his behavior (follow a back-forth path, stop and turns at end of platform, fall at end of platform). There is a 4th type coded (follow a vector path) but not tested. The code for those are stored in enmtype2.gen, enmtype3.gen.

6- How are special tiles defined and used? I see in the editor that some appear, but it is not specified in the documentation.

At the beginning of vscreen.gen you see a table "tiletlb" with the address of the action to perform for each tile with a number above 208. "noact" means no action (it basically points to a routine that does nothing) so you could use that to assign your own "special tile".

With that said, I would no recommend using Vscreen 1.0 for building something anymore. The code is now very dated (and probably won't compile with modern cross assemblers), poorly documented and the Windows editor that comes with it doesn't work well with modern OS like windows 10. It also relies on the Moonblaster audio player and SEE which are probably no longer de facto standard these days.

I have been slowly but surely working on a newer version of the engine. It now compiles with SJASM into a Megarom file, supports AY for sound effects (looking at replacing Moonblaster as well) and I'm trying to dissociate the display/scroll routines from the main engine so it could easily support MSX1/MSX2/V9990 configurations with minor tweaking.

To be honest I don't think it will ever end up being a complete game development toolset (like AGD on the Spectrum, which BTW would be a great tool on the MSX), but I hope we can create a game or two out of it and I'll make the source code available for whoever wants to use all or part of it for their creations.

By AxelStone

Prophet (3199)

AxelStone's picture

12-06-2017, 19:42

Thanks for your effort Magoo. Even althought you think you can't finish a complete engine, any help to new developers will be greatly apreciated. I really feel that MSX needs game engines like VScreen, since other systems has very complete frameworks (I've read a bit about CPCTelera and is a really powerfull framework for CPC).

So good luck with the job and let's hope to see soon first game using VScreen engine ;-)

By Wit

Supporter (12)

Wit's picture

13-06-2017, 00:02

Hi all, @Maggoo so happy on reading your extensive reply to @Oniric-Factor Smile

I found VScreen months ago but at that time I had no idea about MSX assembler, today I just know a bit more and the first thing I did when Oniric-Factor told me again about VScreen it was to start "translating" all the Gen files in to ASM to assemble with SjAsm. Some of the questions he did to you were easy to find but, thank you for confirming.

You are saying you are working in a new engine! That is so great, but really, it would be great if we can do some stuff with VScreen meanwhile, all the time you spent deserve it hehe. Could I ask you, were you using Hisoft GEN Assembler to generate the Gen files ? what version ? I have no idea about the writing rules so it will be very handy if you are still keeping the user manual in pdf so I can try to finishing on translating all Gen files in to text to assemble with SjAsm. Do you have any text/pdf for helping us ?

And, regarding the new version, what expectations are you having ? Would you be releasing different versions in GitHub or similar, or a zip file with all the necessary files ¿? Are you using another Level Editor tool ? And lastly, anything we can do to help Smile

Cheers!

By Oniric-Factor

Master (176)

Oniric-Factor's picture

13-06-2017, 17:58

Thanks for your answer Magoo ! Now, I have much more clearer how VScreen is used.

My intention is to expand the documentation that I am writing about your engine and publish it both in English and Spanish so your work can be used as it deserves.

In a few days I hope to publish here a Google Doc so that other users can read and complete it if they deem it convenient

I understand what you say about that some aspects of vscreen are a bit outdated, but I sincerely believe that there is great potential in this version of your engine, and it can be used to produce interesting and funny games.

As soon as I finish the project I'm working on at the moment, and when I finish writing the documentation, I want to create a game with this version of the engine, so it can be used as a reference to other developers.

About what you say about making a new version, it looks like great news! We will be following its evolution. If we can help you with anything, let us know. We will pleased to help you.

By Manuel

Ascended (19676)

Manuel's picture

14-06-2017, 16:48

I'm really interested to see what you'll make with VSCREEN and I'm also really interested in the version 2 of VSCREEN which Maggoo was talking about Smile

By Maggoo

Paragon (1218)

Maggoo's picture

16-06-2017, 18:57

Wit wrote:

You are saying you are working in a new engine! That is so great, but really, it would be great if we can do some stuff with VScreen meanwhile, all the time you spent deserve it hehe. Could I ask you, were you using Hisoft GEN Assembler to generate the Gen files ? what version ? I have no idea about the writing rules so it will be very handy if you are still keeping the user manual in pdf so I can try to finishing on translating all Gen files in to text to assemble with SjAsm. Do you have any text/pdf for helping us ?

And, regarding the new version, what expectations are you having ? Would you be releasing different versions in GitHub or similar, or a zip file with all the necessary files ¿? Are you using another Level Editor tool ? And lastly, anything we can do to help Smile
Cheers!

The version of Gen Assembler is version 2.04. There is a copy in the Vscreen 1.0 disk image (probably should not be there but oh well Smile )

I'll probably release the new version the same way I did for the old one. To be honest I'm not too familiar with GitHub (I have not done any non MSX development in over 15 years so I'm a bit rusty when it comes to today's tools). What PDF/Txt are you looking for? The main documentation I had written was in HTML format on my old site. I'll try to improve the inline documentation and better structure the code for the new version.

V2 will most likely have: a re-written menu system (not entirely hard coded but rather based on a configuration file), support for AY / Trilo Tracker (is it the standard these days?). I probably will not update the level editor, too much work. Right now I'm relying on Tiled with a converter written by Mumbly. Of course that leaves out the editing enemies placement but perhaps this could be handled also with a converter and a second "layer" in Tiled.
There will be screen / scrolling drivers in separate asm files for Screen 2/4 and possibly other modes.
Possibly I'd like to include some code for handling cut scenes/attraction modes. A lot of the code is done but need to be put together.

The memory layout will also be optimized to work as a Megarom. The Level will probably need to be limited to 16K (limit was 24K in V1) due to memory layout but I don't think it's a major issue, 16K is still plenty for one "room".

By Pac

Scribe (7103)

Pac's picture

17-06-2017, 05:45

Maggoo wrote:

V2 will most likely have: a re-written menu system (not entirely hard coded but rather based on a configuration file), support for AY / Trilo Tracker (is it the standard these days?).

I would say that ayFX is the main tool for FX nowadays but I speak for myself. About music I don't know if you are considering the addition of a PSG replayer apart from the MSX-MUSIC one (there are always PSG lovers Smile ). If so PT3 format (Vortex Tracker) is common. You can download both replayers (ayFX and PT3) ready to use in ROM developments from the Z80-ST Software site. Anyway I'm not a musician so not sure if Vortex tracker can be replaced by Trilotracker itself (as a PSG tracker) as a result of adding more features than VT composing with PSG only.

Trilotracker is gainning more followers anyway I think we shouldn't forget Moonblaster. Trilotracker has an SCC and FM version. Although the FM is not finished yet, will do soon. Would be possible/feasible choose the music replayer?

Now that you are updating Vscreen is the best moment for giving some feedback. If we could help to improve this fantastic tool with our opinions and requests (if possible), it would be great.

Page 1/2
| 2