News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

Micro Machine for Symbos / G9k

Started by Trebmint, 23:04, 11 March 25

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Trebmint

Thought I would post an update here since its been a good while. The Symbos/Quigs/G9K project is coming along nicely and Edo and I have been working on a demo of MicroMachines we're calling Mini Micro Machines which runs 50fps on a CPC and MSX. Obviously it runs exclusively on Symbos 4.0 so is completely cross platform and will run on any machine with the Symbos/V9990 combo. Hopefully a playable demo will be released in a few weeks, followed by Quigs and the G9k dev engine.


For those that don't know the G9k or V9990 is a graphics card that runs cross platform on the MSX/CPC/Enterprise etc on the Symbos OS. Quigs is a development GUI and language for Symbos and it now has a G9K engine addition making it easier than ever to create. MMM is a tech demo and the source will be fully available when Quigs is released in a short while. Thanks

XeNoMoRPH

looking forward to trying it out on my CPC :o :o
your amstrad news source in spanish language : https://auamstrad.es

dodogildo

Impressive! Is the video from MSX version? Because the sound/fx is kinda superior to CPC  ::) 

Prodatron

#3
Quote from: dodogildo on 08:40, 12 March 25Impressive! Is the video from MSX version? Because the sound/fx is kinda superior to CPC  ::)
It is captured from an MSX emulator (OpenMSX), as Trebmint currently doesn't have a real machine, and there is currently no CPC emulator with finished G9K support.
The CPC is a little bit faster than the MSX, so it runs at the same speed (50 FPS) on a real CPC.

MMM is using the Sound Daemon for playing music and sound effects, so you can choose between wavetable (OPL4) and PSG, and in this video the effects are coming from the OPL4 indeed. CPCs without an OPL4 will just play PSG music and effects.
Like the G9K (V9990) the OPL4 sound card runs cross platform on the CPC/MSX/Enterprise etc (PCW is coming as well), and this device is still available.

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

HAL6128

Wow, @Trebmint used Quigs for this game, I assume? That would mean there's a library in Quigs for the V9990 and OPL4 which talks to SymbOS available to use?
Did you try it on a real CPC? Would be interesting to see the CPU usage.
Also, I assume a lot of data transferred to the VDP and OPL because of tons of data for graphics and sound. Are there libraries in Quigs available which do this?

Trebmint

Quote from: HAL6128 on 20:33, 12 March 25Wow, @Trebmint used Quigs for this game, I assume? That would mean there's a library in Quigs for the V9990 and OPL4 which talks to SymbOS available to use?
Did you try it on a real CPC? Would be interesting to see the CPU usage.
Also, I assume a lot of data transferred to the VDP and OPL because of tons of data for graphics and sound. Are there libraries in Quigs available which do this?
Yes MMM is a tech demo for the Quigs g9k engine. Yes its a library, but it mostly specific to the Quigs language g9k subset. The plan with quigs has always been to make development as as easy as possible. To that end Quigs has a map importer which allows you to take a straight BMP for a back and foreground layer and instantly import them, generate all the patterns and meta patterns and apply an attribute layer. So a map is an actual loadable object. You can them set the scroll point of back or foreground layers and it will display that part of the map. Maps are pretty massive too. I loaded a map today with two layers of 320x5120. You have obviously normal access to sprite, but you also have map sprites which are in effect have an X/Y on the map and are shown if that part of the map is viewable. You have a sprite grouper so you can chain sprites together and treat them as one... animation and all sorts is also coming.

As for speed MMM runs within a 50th. I have worked quite hard to get the code working efficiently, but its all 100% quigs, no special case z80. Normally its taking between 60-90% of frame time. If the game is scrolling fast it has to do more edge updates and that causes a cpu hit. Basically however you tell the engine how long a game frame should be, so it can run at 50/60 or 25/30 etc.
Its also using the v9990 command which are can copy data around the vdp while the z80 is doing other stuff. This is how I achieve map animations for the corn in this video... and this is just a single line of quigs code to do.

I plan to make a video on how MMM was made after the mmm demo release as a demonstration of the Quigs IDE and engine 

Trebmint

Oh and yes quigs g9k code runs on real hardware msx/cpc/enterprise as it does in openmsx

GUNHED

http://futureos.de --> Get the revolutionary FutureOS (Update: 2024.10.27)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

HAL6128

#8
Thanks @Trebmint.
Really impressed, not only by the game also by your Quigs IDE!
I started my experiences with the V9990 a couple of months ago and adapted a MSX Demo to the CPC. It works with the Pattern mode 2, just a background and some sprites moving. No scrolling.
What I had to do (apart from adapting Z80 code - sadly no OTIR available) is to create a code for transferring all the data (images, tables, pallettes, sprites) from drive to RAM and into VRAM. And it's only possible to do that in 2k snippets (with the usage of the firmware) because of it's size (up to 100KB to transfer)
Is it different in Quigs because you can use the SymbOS environment / capabilities/ internal routines?

Trebmint

Quote from: HAL6128 on 07:23, 13 March 25Thanks @Trebmint.
Really impressed, not only by the game also by your Quigs IDE!
I started my experiences with the V9990 a couple of months ago and adapted a MSX Demo to the CPC. It works with the Pattern mode 2, just a background and some sprites moving. No scrolling.
What I had to do (apart from adapting Z80 code - sadly no OTIR available) is to create a code for transferring all the data (images, tables, pallettes, sprites) from drive to RAM and into VRAM. And it's only possible to do that in 2k snippets (with the usage of the firmware) because of it's size (up to 100KB to transfer)
Is it different in Quigs because you can use the SymbOS environment / capabilities/ internal routines?
Well indeed the amount of data you are shifting into vram is large. And with pattern modes or at least P1 which quigs uses you have to upload in minimum 1k chunks. Hopefully switching to compression soon and even though it wont be faster it will be memory efficient file wise. There really isn't away around it, but we have 512k of lovely Vram to play with so you have to put up with a little loading times I guess.

As for whether its Symbos helps, well yes. Its a superior OS, handles files / keyboard / sound etc all cross platform.  If you'd like a pre-release peek drop me a message on discord, but it wont be long before the first engine release.

Prodatron

#10
Quote from: HAL6128 on 07:23, 13 March 25And it's only possible to do that in 2k snippets (with the usage of the firmware) because of it's size (up to 100KB to transfer)
Is it different in Quigs because you can use the SymbOS environment / capabilities/ internal routines?
In contrast to Amsdos files can be random accessed in SymbOS, so you can always set the current file pointer to any position in a file and load any amount of data in one step from this position (in CP/M this is at least possible in 128byte steps, in Unidos also byte-based IIRC). If you would have a 2K buffer in CPU RAM for the VRAM transfer, you just load 2K chunks step by step from your one big 100KB file.

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

HAL6128

I assume that also the MSX Dos handle random access. E.g. if I want to load a G9B image which is compressed I need to decompress it in chunks (as far as I have understood bitbuster right) and with firmware I will need a workaround for big files and RAM is limited.
Let's dive into SymbOS and Quigs.

Prodatron

Quote from: HAL6128 on 12:09, 13 March 25I assume that also the MSX Dos handle random access.
That is correct. I think most DOS support this kind of file access.
Only Amsdos and other primitive implementations have to load one file in one piece at once (not speaking about slow char-by-char reading or the hack for fast-loading ASCII files in 2K steps). For loading big data you then have these overflowing directories full of small file snippets.
So yes, in MSX-DOS the file pointer is byte based as well like in CP/M Plus.

Quote from: HAL6128 on 12:09, 13 March 25Let's dive into SymbOS and Quigs.
Good idea :)

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

Trebmint

Just thought I'd throw up another video since we tacked the front-end and game together now, plus fixed a lots of silly issues. Coming very soon... honest

Prodatron

After fixing some things, since today it is again working perfectly on the Amstrad CPC as well, even with more performance left compared to the MSX:



As you can see I am the worst MMM driver ever haha.

It's still a 4MHz CPU, using an I/O based graphic hardware.
Rob Buckley (Trebmint), a CPC game developer legend, did such an amazing job!

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

XeNoMoRPH

My mind thinks of a future arcade alien game under symbos and I start enjoying it. This mini car game looks and sounds great.
your amstrad news source in spanish language : https://auamstrad.es

Sykobee (Briggsy)

Great work - it shows just how much CPU time the CPC spent on moving graphics around in most games, so when that's entirely offloaded you can do a lot!

St-BeidE(DE/GB)

Damn... how to tell my wife, I HAVE to buy a V9990 ???
Steven 

Egg Master

Quote from: St-BeidE(DE/GB) on 19:04, 18 March 25Damn... how to tell my wife, I HAVE to buy a V9990 ???
It is more easy and affordable to buy a Mister Pi or a Mega Drive to play this game (and many others)

Prodatron

#19
Quote from: Egg Master on 19:53, 18 March 25It is more easy and affordable to buy a Mister Pi or a Mega Drive to play this game (and many others)
Like it is more easy not to use a CPC anymore and just play games on your smartphone.
Wrong forum? ;)

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

Egg Master

#20
Quote from: Prodatron on 20:19, 18 March 25Like it is more easy not to use a CPC anymore
It is close to what does this game. Not CPC gfx, not CPC sound... And the Z80 is common to all SymbOS systems.

Quote from: Prodatron on 20:19, 18 March 25Wrong forum? ;)
Yes, this topic should be on Other Retro. ;)

Prodatron

No, it shouldn't as this is still the CPC itself, who is doing everything.
To say that all old and new hardware expansions is "other retro" is absurd.

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

Trebmint

Quote from: Egg Master on 20:26, 18 March 25
Quote from: Prodatron on 20:19, 18 March 25Like it is more easy not to use a CPC anymore
It is close to what does this game. Not CPC gfx, not CPC sound... And the Z80 is common to all SymbOS systems.

Quote from: Prodatron on 20:19, 18 March 25Wrong forum? ;)
Yes, this topic should be on Other Retro. ;)

If you're not interested in a project then its probably better to ignore it and say nothing.

Edoz(MSX)

Quote from: Egg Master on 19:53, 18 March 25
Quote from: St-BeidE(DE/GB) on 19:04, 18 March 25Damn... how to tell my wife, I HAVE to buy a V9990 ???
It is more easy and affordable to buy a Mister Pi or a Mega Drive to play this game (and many others)

Hey, Egg Master, you're missing the point. It's not about how easy it is to buy something else—it's about the challenge of creating this on a limited 8-bit system like the CPC. This demo-game is a fascinating experiment in pushing the boundaries of what can be achieved. I find it absolutely amazing that this was made on a CPC, using the vintage V9990 retro VDP, while it runs under SymbOS, This achievement by Trebmint is i think outstanding, especially because SymbOS enables it to run across multiple 8-bit platforms. Besides the fact that the G9k is still undiscovered area .. So, yes, one can go for easy but to be honest i'm very impressed!

HAL6128

Yes, it's really outstanding. Imagine creating all the graphics and soundfx (maybe even copied from somewhere you still have to adapt it.... loooots of time necessary... look at the developing time of BombJack, Sonic, etc.), programming Quigs takes also a lot of effort and by the way, improved an IDE (Quigs) with the experiences out of creating a game, huuuuge effort!!! 


Quote from: Egg Master on 19:53, 18 March 25
Quote from: St-BeidE(DE/GB) on 19:04, 18 March 25Damn... how to tell my wife, I HAVE to buy a V9990 ???
It is more easy and affordable to buy a Mister Pi or a Mega Drive to play this game (and many others)
Of course (also an old discussion), it doesn't feel like a CPC anymore (V9990 / OPL4) .... but.... enhancing the CPC is fun and programming it also.

By the way, how many expansions exist which enhance the capability of the CPC? Look at all these expansions ( Peripherals - CPCWiki ) which all do this. They change the CPC in one or more way; some are modern, some are old school. Who cares?!
Good old CPC makes it possible.

Powered by SMFPacks Menu Editor Mod