Maluva and DRC

Uto
4 min readNov 5, 2019

--

Edit: please notice this content may be outdated, using DAAD Ready is a better way of doing anything with DAAD today.

This is an announcement, rather than an article. There are important changes in my tools I would like users to know about:

As you probably know, I’ve been building two tools lately, both related with DAAD adventure engine, the evolution of PAW and SWAN Tim Gilberts wrote for Spanish company Aventuras AD.

DRC is a replacement for DC, the DAAD compiler, which adds new interesting features and runs in modern OS as Windows, MacOS or Linux (DC is a MS-DOS application).

MALUVA is a set of extensions for DAAD, allowing using floppy disks, hard disks and their modern replacements to build games with DAAD, which would allow you to load bitmap graphics instead of vector graphics, increase the amount of text DAAD can hold, and save/load game to disk. MALUVA can be used with ZX Spectrum (+3DOS and ESXDOS), Amstrad CPC (floppy disk and M4 interface), Commodore 64 (Floppy disk and SD2IEC) and MSX (MSXDOS 1.0 and above).

Future of Maluva and DRC

So far both tools have been independent from each other, but with last versions of Maluva and DRC published today, they integrate better with each other. They will still be two packages, but they know each other and so you can take some advantage.

Also, Maluva new feature “xmessages” (extra message text for your adventures loaded from disc on demand), can only be used if you use DRC as compiler. Actually you can use DC, but is way too complicated.

So I’ve decided to drop support for old DC compiler, what only means I won’t document how to use Maluva with DC anymore, and will center my documentation work on DRC+Maluva bundle.

How does DRC work with Maluva?

As of today, DRC supports 5 new condacts: XPICTURE, XSAVE, XLOAD, XMESSAGE and XMES. If you use them you won’t have to handle Maluva features using EXTERN. For instance, if you wanted to display the bitmap picture for current location before you used:

EXTERN @38 0

Now you use:

XPICTURE @38

Same goes for XSAVE, XLOAD, XMESSAGE and XMES, you can use them as any other condact. Of course DRC generates the proper EXTERN call internally, so the interpreters know what to dobut you don’t have to care about it.

Also DRC now supports you specifying:

#extern "MALUVA"

Despite MALUVA not being a binary file, DRC will understand you want to include Maluva for whatever the target you have selected when compiling. So for instance if you called DRC saying you want Amstrad CPC as target, that call will be dynamically replaced with:

#extern "MLV_CPC.BIN"

That way, you don’t need a bunch of #ifdef all around your code, and you can make your ports easily.

Last but not least, all these new condacts are intelligent enough to step aside in case the target does not have a Maluva version. So for instance if you compile for Amiga and the compiler finds a XPICTURE condact, the condact will be automatically replaced by PICTURE. Same goes for XSAVE becoming automatically SAVE, XLOAD goes LOAD, XMESSAGE becomes MESSAGE and XMES becomes MES. That also saves a lot of #ifdef work, and lets you work with just one source code for all targets easily.

Please find updates and more detail about all this on the NEW Maluva documentation.

Maluva releases

So far there hasn’t been any official Maluva release, basically I was adding changes to GitHub, and binaries were at “Release” folder. Release folder will stand for now, although I have removed OS dependent files, and only Maluva extern BIN files are there. On the other hand, I will be publishing Maluva package files, with official releases. You will be able to find them here.

Releasing games using Maluva

I have found it’s sometimes complicated for authors to build the final DSK, D64, etc. disks, and that’s why I’ve created a set of

Please notice Maluva expects you to be using the latest interpreter version, which I have included in these disks. If you fail to use the latest versions Maluva may fail cause for some features it uses DAAD code, and if the specific code used is not located at the expected address, anything may happen.

There are disk templates for Spanish and English games. Some of these templates has been based in previous work by Pedro Fernández and Stefan Vogt, some are my own brew.

All the information about that is located at the Maluva documentation too.

DAAD Github Page

There is a DAAD page at Github, which is an Organization (non-personal) Github site. There are several repos there, like the DAAD repository itself, and DRC repository. I have moved DRC there from my own Github profile, as a way to join forces. I will soon move Maluva too (just checking there are not side effects from moving DRC before goind with Maluva and UNDAAD).

If you are making tools for DAAD, or you just want to help creating content, documenting or whatever other thing you can offer to DAAD scene, just drop me a note. At this moment Stefan Vogt, BlindHunter95 and myself are there. Join us!

https://github.com/daad-adventure-writer

--

--

Uto

Developing indie interactive fiction and IF engines since 1984