2nd of September 2018 – Vectorblade the vide project

I should at least try to write something VIDE related on a VIDE – blog.

So today – I’d like to present my current Vectorblade project setup in Vide. Which actually uses many of Vide’s specialties.

1) File scripting

For the current version of the title screen (mentioned somewhere else) I reuse an old project which handles a tile based “game system”. The tilemap is “precompiled” with a java script that can be executed on files (right click in the tree on a file – there is a “properties” entry for each file). There are three possible “locations” where scripts for files can be executed:
– pre compile
– post compile
– or via an action button (menu)
For the level data I use pre build scripts. The script builds an assembler file from the input data, which after the “pre build” is assembled like an ordinary file.

2) Build scripting

With the use of 48kb and 2 bankswitches – giving vectorblade the maximum size of 96kB my usual VecFever setup could not be used anymore. Since the RAM disk, that is used to put the development files on the VecFever can only handle files up to 64kB.
Actually I was quite panicy when I feared I had to stop using VecFever.
But Thomas updated the VecFever ROM and now – via a special program – you can send data via a serial transfer to the VecFever. At one stage I thought I might incluce the serial transfer directly into Vide – java based. But before I did that I tried out scripting again – and got stuck there – because it works so well :-)!

See – in Vide you can also configure scripts to execute before and after a project build (right click on the tree root – project properties):

Here you see I entered a “post build” script, at the heart of which:

I execute an OS command – namely the vserial executeable and feed it with the just compiled vectrex bin.
With that I feed the VecFever right after a compile with the correct bin file – and it behaves more or less exactly like it would when using a RAM disk.

Bankswitching & Co.

Here I marked all the “usages” of the “normal” Vectorblade file – which Vide all supports.
48k ROM file, Flash support, bankswitching two banks, and the two “main” files for each bank. When executing – vide generates a temporary cartridge file, which is passed to the emulator – and thus the emulator knows what settings to use.

Double project handling

Actually – if you read the last blog entry – you might have deduced, that at the moment I actually am developing a 4*48kB cartridge. A (more or less) innovative design to do bankswitching with 4 different banks – each capable of addressing 48kB.
With that setup it is finally impossible to use the VecFever as a development tool. The current VecFever does not support the IRQ line of the cartridge port – and that line is one of the bits I use for bankswitching.
For fast development I still like to use the VecFever though – I did a “trick” in Vide to still be able to do that.

I have two different project files in my current Vectorblade development directory, namely:

– VectorbladeProjectProperty.xml
and
–┬áVectorblade4BankProjectProperty.xml

Both projects use exactly the same source files, but again the project properties differ:

here you see – the second project has 4 banks enabled – and additionally I pass a “#define” to each main file.
With that I am able to “know” inside the assembler file which project I am using. And stuff that got put into the new banks “0 and 1” can be so commented out.
My plan is to use these banks only for “supportive” stuff, like title screen, options screen, acchievements, secrets etc – all stuff I do not really need for actual game play / or testing.

With this setup I can develop both a working 96kB cartridge and at the same time an enhanced 192kB version.

 

Regards

Malban

 

PS

Started a Vectorblade page – for now only some graphics: http://vide.malban.de/vectorblade

Tagged on: ,

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.