News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

G9k card demo running on real hardware on Symbos

Started by Trebmint, 20:14, 16 August 21

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Trebmint


Here's a  very simple demo which works cross platform for the G9k card on CPC, Enterprise & MSX. Using the new Quigs G9k suite & language running on Symbos.


https://www.youtube.com/watch?v=ItepLxzUeg4


Language release should be soon.







GUNHED

Is this cross-platform-demo available for Amsdos/nativeOS too? Where can I get it?
It would be great to have something I can start and see if my GFX9000 works (on a connected monitor).
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

Trebmint

#2
Quote from: GUNHED on 20:39, 16 August 21
Is this cross-platform-demo available for Amsdos/nativeOS too? Where can I get it?
It would be great to have something I can start and see if my GFX9000 works (on a connected monitor).
No this runs under the g9k version of symbos only, that's how its truly cross platform. The code is developed in the QUIG's IDE under the g9k framework/ language extension.


Hopefully release Quigs soon when we get a few things with sprites/text and anims done in language. Then anyone should be able to develop g9k games easily and quickly

XeNoMoRPH

your amstrad news source in spanish language : https://auamstrad.es

Edoz(MSX)

Yes, it works very well on the CPC! It is impressive how well the CPC is preforming compare to the MSX. It seems a little bit faster than the standard MSX1 or 2 with G9K

Edoz(MSX)

Quote from: GUNHED on 20:39, 16 August 21
Is this cross-platform-demo available for Amsdos/nativeOS too? Where can I get it?
It would be great to have something I can start and see if my GFX9000 works (on a connected monitor).
If i remeber correcly we already attached your G9k at least once :D So it should work with the proper monitor!

Edoz(MSX)


Trebmint

#7
Symbos is a super impressive system. Here's the Quigs code that makes this scrolling demo, if anyone cares to see it. This is Quigs language using the g9k framework... takes a second to compile and exports all the images at the same time.


This video is using the OpenMSX emulator, which once booted can dev apps super quickly. Of course if it works on the emulator, it will work now on the CPC with g9k too... totally cross platform and easy to code for.




// Quigs Symbos G9K Application
Var GameOn:Int=0
Var PattsLoaded:Int=0
Var f:Int=0
Var k:Int=0
Var k2:Int=0
Var i:Int=0
Var g:Int=0
Var h:Int=0
Var s1y:Int
Var s1x:Int
Var menu:Int=0
Var menuX:Int=64
Var menuY:Int=64
Var Lastsprite:Int=0


Var menuX1:Int=64
Var menuY1:Int=150


Var JumpIncrement:Int  = 0
Var Jumping:Int=0






// End declares




Function Initialize:Void()
   // Initialize G9K App
   BackColour.Set 0
   
   
   // Load background
   PattsLoaded=Back.Pattern.Load(App.Path+"sheet2.qpt",0,16)
   i=0
   For f=0 To 31
      For g=0 To 63
         Back.Map.Set i,g,f
         i=i+1
      Next
   Next
   //Copies Inks from 16-31 To Palette 1
   Ink.Palette.Set 1,16
   
   
   //Set  all Sprites to 0,0
   For i=1 To 128
      Sprite.Position.Set i,0,0
   Next
   Sprite.Refresh
   //Load Sprites
   PattsLoaded=Fore.Pattern.Load(App.Path+"sheet4.qpt",0,48)
   For f=0 To 35
      Sprite.Palette.Set f,3
   Next
   //Copies Inks from 48-63 To Palette 3
   Ink.Palette.Set 3,48
   
   PattsLoaded=Fore.Pattern.Load(App.Path+"sheet1.qpt",384,32)
   For f=50 To 55
      Sprite.Palette.Set f,2
   Next
   //Copies Inks from 32-47 To Palette 2
   Ink.Palette.Set 2,32
   
   //Load ForeGround
   Lastsprite = 896+640
   PattsLoaded= Fore.Pattern.Load(App.Path+"sheet3.qpt",Lastsprite,0)
   i=Lastsprite
   For f=0 To 31
      For g=0 To 63
         Fore.Map.Set i,g,f
         i=i+1
      Next
   Next
   //Copies Inks 0-15 To Palette 0
   Ink.Palette.Set 0,0
   
   GameOn=1
   
EndF








Function Main:Void()
   // Main loop
   If GameOn=1 Then
     
      BackColour.Set 0
     
      //   g=g+(n-Mouse.X)
      //   n=Mouse.X
     
     
      g=(g+1)  Mod 512            ;Layer 1 scroll moves left but wraps 512
      h=(h+1)Mod 1024            ;Layer B scroll moves left but wraps 1024 as /2 for half speed
      //   G9K.ScrollA g,40-(Mouse.Y/6)
     
     
      Fore.Scroll    g,40-(Mouse.Y/6)
      Back.Scroll h/2,40-(Mouse.Y/10)
     
     
     
      //   G9K.ScrollA g,0
      //sprite walk
     
     
      //Jump Part
      If Mouse.Key = 1 And Jumping=0 Then
         JumpIncrement = -10
         Jumping=1
      EndIf
     
      If Jumping = 1 Then
         JumpIncrement=JumpIncrement+1
         If JumpIncrement>=10 Then
            Jumping=0
            JumpIncrement=0
         EndIf
      EndIf
      menuY1=menuY1+JumpIncrement
      Sprite.Position.Set 50,menuX1,menuY1
      Sprite.Position.Set 51,menuX1+16,menuY1
      Sprite.Position.Set 52,menuX1,menuY1+16
      Sprite.Position.Set 53,menuX1+16,menuY1+16
      Sprite.Position.Set 54,menuX1,menuY1+32
      Sprite.Position.Set 55,menuX1+16,menuY1+32
     
     
      ;Basically loop 5 times until you update the Pattern to slow the animation. Cant have anims running at 50fps
      If k2=0 Then
         k=(k+2)Mod 8
         Sprite.Pattern.Set 50,k+104
         Sprite.Pattern.Set 51,k+105
         Sprite.Pattern.Set 52,k+120
         Sprite.Pattern.Set 53,k+121
         Sprite.Pattern.Set 54,k+136
         Sprite.Pattern.Set 55,k+137
      EndIf
      k2=(k2+1) Mod 5
     
     
     
      //mouse
     
     
     
      Sprite.Pattern.Set 0,2
      Sprite.Pattern.Set 2,0
      Sprite.Pattern.Set 1,1
     
     
      Sprite.Position.Set 0,Mouse.X,Mouse.Y
      Sprite.Position.Set 1,225,2
      Sprite.Position.Set 2,238,2
     
      // play stuff
     
      //      If s1y=>9 Then
      //         s1y=2
      //
      //      EndIf
      //
      //      s1y=s1y+1
      //      Sprite.Pattern.Set 35,s1y
      //
      //
      //
      //      Sprite.Position.Set 35, s1x,100
      //
      //      s1x=s1x+1
      //
      //      If s1x=>256 Then
      //         s1x=1
      //      EndIf
     
     
     
     
      If menu=1 Then
         
         Sprite.Position.Set 3,menuX,menuY
         Sprite.Position.Set 4,menuX+16,menuY
         Sprite.Position.Set 5,menuX+32,menuY
         Sprite.Position.Set 6,menuX+48,menuY
         Sprite.Position.Set 7,menuX+64,menuY
         Sprite.Position.Set 8,menuX+80,menuY
         Sprite.Position.Set 9,menuX+96,menuY
         Sprite.Position.Set 10,menuX+112,menuY
         
         Sprite.Position.Set 11,menuX,menuY+16
         Sprite.Position.Set 12,menuX+16,menuY+16
         Sprite.Position.Set 13,menuX+32,menuY+16
         Sprite.Position.Set 14,menuX+48,menuY+16
         Sprite.Position.Set 15,menuX+64,menuY+16
         Sprite.Position.Set 16,menuX+80,menuY+16
         Sprite.Position.Set 17,menuX+96,menuY+16
         Sprite.Position.Set 18,menuX+112,menuY+16
         
         Sprite.Position.Set 19,menuX,menuY+32
         Sprite.Position.Set 20,menuX+16,menuY+32
         Sprite.Position.Set 21,menuX+32,menuY+32
         Sprite.Position.Set 22,menuX+48,menuY+32
         Sprite.Position.Set 23,menuX+64,menuY+32
         Sprite.Position.Set 24,menuX+80,menuY+32
         Sprite.Position.Set 25,menuX+96,menuY+32
         Sprite.Position.Set 26,menuX+112,menuY+32
         
         Sprite.Position.Set 27,menuX,menuY+48
         Sprite.Position.Set 28,menuX+16,menuY+48
         Sprite.Position.Set 29,menuX+32,menuY+48
         Sprite.Position.Set 30,menuX+48,menuY+48
         Sprite.Position.Set 31,menuX+64,menuY+48
         Sprite.Position.Set 32,menuX+80,menuY+48
         Sprite.Position.Set 33,menuX+96,menuY+48
         Sprite.Position.Set 34,menuX+112,menuY+48
         
      EndIf
     
     
      Sprite.Refresh
     
      If Mouse.Key = 2 And menu=0 Then
         
         menu=1
         
         Sprite.Pattern.Set 3,32
         Sprite.Pattern.Set 4,33
         Sprite.Pattern.Set 5,34
         Sprite.Pattern.Set 6,35
         Sprite.Pattern.Set 7,36
         Sprite.Pattern.Set 8,37
         Sprite.Pattern.Set 9,38
         Sprite.Pattern.Set 10,39
         
         Sprite.Pattern.Set 11,48
         Sprite.Pattern.Set 12,49
         Sprite.Pattern.Set 13,50
         Sprite.Pattern.Set 14,51
         Sprite.Pattern.Set 15,52
         Sprite.Pattern.Set 16,53
         Sprite.Pattern.Set 17,54
         Sprite.Pattern.Set 18,55
         
         Sprite.Pattern.Set 19,64
         Sprite.Pattern.Set 20,65
         Sprite.Pattern.Set 21,66
         Sprite.Pattern.Set 22,67
         Sprite.Pattern.Set 23,68
         Sprite.Pattern.Set 24,69
         Sprite.Pattern.Set 25,70
         Sprite.Pattern.Set 26,71
         
         Sprite.Pattern.Set 27,80
         Sprite.Pattern.Set 28,81
         Sprite.Pattern.Set 29,82
         Sprite.Pattern.Set 30,83
         Sprite.Pattern.Set 31,84
         Sprite.Pattern.Set 32,85
         Sprite.Pattern.Set 33,86
         Sprite.Pattern.Set 34,87
         
      EndIf
     
     
      If Mouse.Key =1 And menu=1  Then
         
         menuX=Mouse.X
         menuY=Mouse.Y
         App.Exit
      EndIf
     
     
      //If Mouse.Key =1 And menu=0  Then
     
      If menuX1<Mouse.X Then
         menuX1=menuX1+1
      EndIf
      If menuX1>Mouse.X Then
         menuX1=menuX1-1
      EndIf
      //menuX1=Mouse.X
      //menuY1=Mouse.Y
     
      //EndIf
     
      BackColour.Set 2
     
     
   EndIf
   
EndF

VincentGR


Edoz(MSX)

Quote from: VincentGR on 16:43, 17 August 21
That is a real mouse movement on a CPC.
The first movie on top is real mouse on the CPC.. and it is smooth indeed..

GUNHED

#10

Quote from: Trebmint on 20:52, 16 August 21No this runs under the g9k version of symbos only, that's how its truly cross platform....

Sadly not. Because I never got that particular version of SymbOS running. So a program for the CPC 'off the shelves' would be helpful.

Quote from: Edoz(MSX) on 09:13, 17 August 21
If i remeber correcly we already attached your G9k at least once :D So it should work with the proper monitor!

That's exactly the point. I need to get a working monitor. And how can I test if a monitor works? Yes! Just be testing a program - and that's what I need.
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

Trebmint

Quote from: GUNHED on 22:43, 17 August 21

Sadly not. Because I never got that particular version of SymbOS running. So a program for the CPC 'off the shelves' would be helpful.

Quigs is the Symbos IDE so its designed to work with and on symbos only. It would break cross platform support to do so, and the majority of g9k owners are MSX.

GUNHED

Quote from: Trebmint on 22:58, 17 August 21
Quigs is the Symbos IDE so its designed to work with and on symbos only. It would break cross platform support to do so, and the majority of g9k owners are MSX.
Whatever, it just doesn't help me.
Understood, you won't be able to help with that problem.
As far as I know I'm not the only owner of that GFX card having troubles.
Therefore I asked for a program for the native CPC.
We don't need to get off-topic here. And I'm luckily discussing Quigs in its dedicated thread if you want that.  :)
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

Trebmint

Quote from: GUNHED on 23:11, 17 August 21
Whatever, it just doesn't help me.
Understood, you won't be able to help with that problem.
As far as I know I'm not the only owner of that GFX card having troubles.
Therefore I asked for a program for the native CPC.
We don't need to get off-topic here. And I'm luckily discussing Quigs in its dedicated thread if you want that.  :)


Did not the original g9k card come with a cpc demo... technically though symbos would be a demo too.

SkulleateR

Nice tech demo there .... it's a bit sad the hardware isn't available :(

Edoz(MSX)

Quote from: GUNHED on 22:43, 17 August 21
That's exactly the point. I need to get a working monitor. And how can I test if a monitor works? Yes! Just be testing a program - and that's what I need.



There are still monitors witch support the 15 khz, analog signal. Most old RGB monitors supports it. I prefer the sony broadcast monitors, as they support a lot of different signals.
(like i used in the youtube) Also the Philips CM8833 supports this signal and is not that rare. It is just that the Brazilians don't know SCART (as it is a Europe thing)

GUNHED

As you already told - my card words. Now I bought several monitors which work for other people, but not for me. And - SORRY - I'm not going to waste 1000's of bucks for non working hardware.


And yeah! There was this great Robot demo. HuWooo! We just had to start 7 files by hand to see it running! Great.
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

Trebmint

Quote from: GUNHED on 14:05, 18 August 21
As you already told - my card words. Now I bought several monitors which work for other people, but not for me. And - SORRY - I'm not going to waste 1000's of bucks for non working hardware.


And yeah! There was this great Robot demo. HuWooo! We just had to start 7 files by hand to see it running! Great.
Not sure what we can do. All i've done is be involved slowly devving the IDE, I had nothing to do with the hardware.
All I can say is that Edo and myself will be developing some demo's/games using our setup over next few months, but they rely on symbos as an OS.
Sorry

Edoz(MSX)


BSC

Quote from: Edoz(MSX) on 14:56, 17 August 21Here you see the benefit of multitasking     

This is mightily impressive! Kudos to all involved. It's a bit sad, though, to see *some* people constantly whining about gewgaw ..
** My SID player/tracker AYAY Kaeppttn! on github **  Some CPC music and experiments ** Other music ** More music on scenestream (former nectarine) ** Some shaders ** Some Soundtrakker tunes ** Some tunes in Javascript

My hardware: ** Schneider CPC 464 with colour screen, 64k extension, 3" and 5,25 drives and more ** Amstrad CPC 6128 with M4 board, GreaseWeazle.

Edoz(MSX)

Small update again:
Scrolling is much better now, and collision detection is in. Thanks to Trebmint!

https://www.youtube.com/watch?v=_4ZxTC2WBs4

Edoz(MSX)


Trebmint

#22
Here's a new little project... micromachines which is a being used by myself and Edo for development of the Quigs G9k engine. The editor now allows for importing of large map images, and crunching them down into unique tiles and creating very large maps which can then be loaded and run instantly under symbos. Obviously this is running on OpenMSX emulator with Symbos... but will run on actual CPC hardware with g9k card.
Very very early demo of a scrolling level.

https://youtu.be/DL3d8TmCPJo
Hope you like... and this literally took a few minutes to import map, and an hour to code the control loop.
Trebmint

zhulien

What mouses have you successfully gotten to work on Symbos?

Prodatron

#24
Quote from: zhulien on 13:18, 12 October 21
What mouses have you successfully gotten to work on Symbos?
Regarding the CPC platform the following is supported:

- SYMBiFACE II PS/2 mouse
- Albireo USB mouse
- SYMBiFACE 3 USB mouse
- Multiplay (Amiga mouse)
- Joystick compatible mouse (AMX, Reisware)

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

Powered by SMFPacks Menu Editor Mod