Welcome, Guest. Please login or register.


Author Topic: SymbOS (Read 508383 times)

Offline Trebmint

  • Beginner
  • *
  • Posts: 30
  • Country: gb
Re: SymbOS
« Reply #255 on: 2014.November.11. 20:40:02 »
It seems there are some MSX users here :) As far as I know, the graphics controllers in MSX computers (TMS9918, V9938, V9958, or maybe even V9900) has own dedicated video RAM and not shared with the CPU. So you need instruct the video chip to do something with the video RAM (afaik there are some "hardware accelerated" operations as well can be instructed?). But if it's true, how can someone play video on MSX when it's always slower to modify the video RAM by video chip ops and not direct video RAM writes by the CPU itself? My question also remains for the rest of a SymbOS like software: without direct video RAM access how this can be implemented at a sane speed? Sorry if I asked something stupid, I don't know too much about MSX machines, really ...
Well I'm sure prodatron can illuminate more on MSX video, but as the person who coded the video file creator called symstudio I can say that the video files have fairly small frames... each screen is around 6k and frame per second is on a standard 4Mhz MSX2 about 7-8 and a little slower if something else is processing. Believe it or not the speed of a standard MSX playing 16 colour video is faster than that of a 4 colour CPC, which shows you the power of a VDP chip.
In general use Symbos stores the graphics such as fonts and backgrounds within the video ram, so just issuing a block command to the VDP is really really quick compared to our normal direct writing to video ram method.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: SymbOS
« Reply #256 on: 2014.November.11. 21:05:28 »
Thanks for the explanation. Nice enough, what I thought to be a disadvantage can be actually an advantage :)

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: SymbOS
« Reply #257 on: 2014.November.11. 21:18:57 »
Pushing the limits with colors ...

In an 50Hz CRT monitor (especially with old, slow fluorescent materials) when we use 25FPS, but we render 2 different frames (with related information of course) then the monitor itself will mix the two frames of every 25 FPS screen ... it will be flashy, "vibrating" screen, but the colors will be approximately (a+b)/2.

So with this technique, on CRT monitors, users with limited color systems can have more colors.

But for this, SymbOS would have to draw 2 screens, every graphic resource could be converted for this mode, probably changing the application creating tools, pipelines and such ...


But with a special use of this technique the applications could be the same as they are now, and on EP the technique probably will have a more enermous effect than on other platforms.

The special use would be using every first screen drawing SymbOS without background picture, and drawing every second screen using the background picture AND a one color mask of the SymbOS's screen what is drawn on the first screen previously.

With this technique, SymbOS would be drawn almost the same way and with the same applications as now.

The background picture would be mixed with the background color of the SymbOS frame, and the SymbOS screen elements (windows) would be mixed with the one color mask on the background picture screen.

In this way the background picture frame can have a totally different palette than the SymbOS frame.
It would be cool, but on EP the benefits would be much larger,
because on the enterprise with an LPT changing the palette in every scanline,
you can display every 256 colors in one picture if you want that.

With this way we can convert pictures to the EP like these:

http://www.ep128.hu/Ep_Demo/Leiras/Enterprise_Slideshow_2.htm
http://www.ep128.hu/Ep_Demo/Leiras/Enterprise_Slideshow_3.htm

We would have to save one color from the palette of every scanline, that would be the mask color, what is required only for reaching that the background picture will not be visible mixed into the windows of SymbOS.

In this way, similar pictures like these could be the background of the EP SymbOS, and SymbOS could be drawn with its own 4/16 colour.


And this "multi color background" technique could be combined with the vertical scrolling virtual desktop or the amiga like draggable multiscreen techique, at once ... :)


Of course, I did not verify the memory requirements of these ... :)


I hope I explained well these ... my english is barely enough for such things ...
« Last Edit: 2014.November.11. 21:29:46 by Z80System »
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14731
  • Country: hu
    • http://enterprise.iko.hu/
Re: SymbOS
« Reply #258 on: 2014.November.11. 21:44:13 »
With this way we can convert pictures to the EP like these:
And these :-)

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: SymbOS
« Reply #259 on: 2014.November.11. 21:52:02 »
Yes, but of course, the background pictures cannot be interlace pictures,
because that use the 25FPS technique in itself ...

I do not know what is better ... using interlace for the SymbOS case or not (probably not),
but one of the pictures is the background and the second is the SymbOS (and both in normal Y resolution).

But very-very similar pictures like these ...
Z80 System

Offline Trebmint

  • Beginner
  • *
  • Posts: 30
  • Country: gb
Re: SymbOS
« Reply #260 on: 2014.November.11. 21:56:49 »
I must say those are very impressive a beautiful images. And even if this were possible technically for the symbos drawing pipeline, the main issue is that as a windowed OS, not a fixed full screen palette switching would have bad effects in that say two images/forms could not share the same screen without 1 looking awful. Prodatron was able to change the palette for the command line to the nice blue as its the only info that will every appear in that area, the top half unfortantely has to share a palette

Symbos uses a clever 4 shade method, of light, lightish, darkish and dark. That means in 16 colour mode you drop MSB 2 bits of a 4bit colour value and its converted to the 2 bit shade version. It works suprisingly well as we carefully chose a CPC palette initially

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: SymbOS
« Reply #261 on: 2014.November.11. 22:12:50 »
Quote
the main issue is that as a windowed OS, not a fixed full screen palette switching would have bad effects in that say two images/forms could not share the same screen without 1 looking awful.

With the trick I tried to explain, SymbOS's screen would be drawn by its own 4 or 16 color palette on the whole of its screen.

It would be like this:


- NICK draws the background screen. The background screen is an LPT changing the palette (without Z80 involved) by scanlines. The graphic data in memory is a multi-color image shown before + a one color mask where the SymbOS windows are. The mask overwrites the picture data with the mask color, of course.

- Next frame NICK draws the SymbOS frame, which is a normal SymbOS LPT with 4 or 16 color, and the background image is not drawn, only a background color. (Or we can call it mask color in this case, too.)

This sequence (two 50 Hz frames) is repeated by the NICK, without Z80 involved. We only see the SymbOS's screen on every second video(monitor) frame.

In this way, if a SymbOS application does a 50 Hz animation, then we will see it 25 Hz because we will se only every second frame from the SymbOS buffer ...
This is not good, but SymbOS probably rarely does 50 Hz animations, but on the EP we will have multi color backgrounds ...

The mixing of the two frames is done by the CRT fluorescent material. (Or the human eyes and brain of the observer, too ... I do not know ... :))

Do you still say this is problematic somewhere ? I do not see the problem ...
« Last Edit: 2014.November.11. 22:32:33 by Z80System »
Z80 System

Offline Trebmint

  • Beginner
  • *
  • Posts: 30
  • Country: gb
Re: SymbOS
« Reply #262 on: 2014.November.11. 22:38:11 »
Oh okay I get it. I think this would be a detailed issue for prodatron to solve though. Currently the limit for symbos is 16 colour as routines exist to convert 2 to 4 colours, 4 to 2, 4 to 16, 16 to 4, 16 to 2 and 2 to 16 etc. If for instance we introduced 256, which is a mode on the MSX2 we would have so many conversion routines that just don't fit easily into the limited space. I guess here you pay a price for cross platform compatibility. Believe me Prodatron has been asked to do 256 or even 16k colours for the MSX2, so if it were easy it would have happened.

Currently symbos has 2 inernal graphics formats. A 16 colour one based on the pixel byte of the MSX VDP, and the 4 colour one based on the CPC's alternating pixel method. When loaded graphic will be converted appropriately to the machine.

If this screen were to work it would currently be at the 16 colour only level, which I assume is possible, or does it require a RGB channel type method to be performed?

TBH I'm sure this is probably just one of the things that a 4mhz just cant do without the speed being drastically effected.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: SymbOS
« Reply #263 on: 2014.November.11. 23:06:33 »
Yes, maybe the whole concept is EP specific too much ...

But how I see ...

The difference to the normal SymbOS working would be

- A different LPT which contains two frames instead of the current one frame ...
- One of the previously specified LPT frame data and its associated graphics data could come from an EP specific format. It could be a binary, not interpreted on other platforms.
This would be the multi color background image. This image have to be represented in a color mode what SymbOS knows (4 or 16 color mode). But the palette could be change raster by raster except of the mask color what have to be constant in index and in color.
- SymbOS would have to draw mask rectangles on the background frame in parallel to the original windows on its own frame. It has not to know the palette at all, it has to know the mask color index only with what it draws the mask.

The rest would be the same, I think.

The problem (I found now) is that the screen mode of the background image have to be 4 color mode, when SymbOS draws its screen in 4 colour mode, because the mask rectangle have to be drawn pixel perfect on the background frame, too.

And I do not know exactly 4 color mode is enough for those nice pictures, or not.
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14731
  • Country: hu
    • http://enterprise.iko.hu/
Re: SymbOS
« Reply #264 on: 2014.November.11. 23:18:42 »
And I do not know exactly 4 color mode is enough for those nice pictures, or not.
The most of them are in 16 colors attribute mode.
Anyway you can convert test images to 4 colors. And possible to define one or more fix palette colors, which can used as mask color.
(And possible to convert images without changing palette then I think these easy to use as SymbOS background)

Offline Trebmint

  • Beginner
  • *
  • Posts: 30
  • Country: gb
Re: SymbOS
« Reply #265 on: 2014.November.11. 23:24:26 »
I'm sure if its easy or even possible Prodatron will attempt it (He is a genius after all). First however I'm sure he just wants to get the 1st flavour working, and then probably the borderless version.

I must admit as a CPC user, I'm pretty jealous of the machine the MSX'ers have. The CPC is stuck in 4 colours, as the chunky 16 colour mode looked a bit rubbish. 160x200x16 was childish looking (and prodatron removed it) - Strangely though 256x212x16 which isnt that much greater is lovely on the MSX. I even prefer the 1:1 square pixel 256x212x16 MSX mode to the 2:1 pixel 512x212x16 mode.

Somebody needs to get designing a Symbiface 3 hardware for the MSX/CPC/EP which has Mouse,Ram,SD,HxC,Networking,Real Time Clock, and serious graphics chip... Then we'd see something truely wonderful

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: SymbOS
« Reply #266 on: 2014.November.11. 23:25:53 »
Quote
The most of them are in 16 colors attribute mode.

It is not good, because in attribute mode they cannot draw a PIXEL PERFECT mask rectangle with a specified color, can they ?

The pixel size would be good, because (after SymbOS learned attributum mode) the 4 and 16 color modes can be cover with attributum pixels correctly,

but in one byte we have to be able to have 3 colors ... and attributum mode can have only 2 ...
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14731
  • Country: hu
    • http://enterprise.iko.hu/
Re: SymbOS
« Reply #267 on: 2014.November.11. 23:29:33 »
In attribute mode the most easy use black as mask color.
At the masked area just set the attibutes to black. It is need half of memory size than the normal graphics.
Only problem, when the SymbOS objects not aligned to 8 pixel at horizontaly, the 1-7 pixel additional black shadow added.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: SymbOS
« Reply #268 on: 2014.November.11. 23:33:24 »
Quote
Only problem, when the SymbOS objects not aligned to 8 pixel at horizontaly, the 1-7 pixel additional black shadow added.

I think it is not the "only problem" it's the point itself ... :) Without a pixel perfect mask this would be unusable ... for my taste ...

The question is how the 4 color mode IVIEW pictures look ... if not good enough ... this whole concept is useless to me ...


Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: SymbOS
« Reply #269 on: 2014.November.11. 23:37:38 »
Quote
The CPC is stuck in 4 colours,

Except of the taskbar, EP is stuck at 4 colours, too ...

It is why I tried to integrate the multi color EP images to the EP look and feel of the SymbOS ...

But without a pixel perfect mask AND the vibration of the screen ... I do not think it would worth the effort ...
« Last Edit: 2014.November.11. 23:47:23 by Z80System »
Z80 System