Page 3 of 6

Re: Merging video output?

Posted: Sun Dec 10, 2017 9:09 pm
by NightBird
Please find below an idea to test...
with a NAND gate and an input to Vcc to replace a NOT gate --> Only needs 2 packages DIL14.
The 3 last gates delays (3x10ns) the clk, to try to have a better synchro. between the clks (perhaps it is better with less or more gates...).
I do not know if it works, need to try... differents setups!
idea_to_test.png
idea_to_test.png (8 KiB) Viewed 14964 times

Re: Merging video output?

Posted: Mon Dec 11, 2017 9:33 am
by Chema
You guys have all gone completely mad :shock: :twisted:

And I love it! 8)

Re: Merging video output?

Posted: Mon Dec 11, 2017 9:50 am
by ibisum
I'm sitting here wondering how we'll ever emulate this in Oricutron .. ;)

Re: Merging video output?

Posted: Mon Dec 11, 2017 7:16 pm
by Dbug
@NightBird As you probably figured out, I'm not able to answer these actual hardware questions, hopefull ISS or Mike Brown can help on that :)

@Chema I think it's a case of "Go big or go bust" :)

@ibisum That may or may not be difficult, probably depends of how Oricutron is implemented: If it's possible to instantiate more than one CPU/Ram/Etc... at the same time, it maybe possible. Alternatively, maybe it's possible to run 4 Oricutron at the same time, from a custom shell that redirects inputs and outputs and generate the final picture based on what each Oricutron outputs :)

The cool thing when you get this kind of setup, is that you can do funky things, like stereo audio output: The main motherboard playing on the center, one playing on the left, one playing on the right, or you can connect on one of the machine some peripherals that would not normally play well with the rest of the hardware, like a speech synthesizer (which you can also redirect and merge with the rest of the audio output).

Re: Merging video output?

Posted: Tue Dec 12, 2017 12:59 am
by iss
For all impatient Oric maniacs:
20171212_010731.jpg
20171212_010900.jpg
20171212_003338.jpg
... and two short clips:
https://youtu.be/2FSEukwxqn4
https://youtu.be/IO6X_84h6U0

Far far from working, but things are looking optimistic.
Unfortunately I think that something on the upper board died during dozens of power on/off :twisted:
and I have no proofs that the synchro scheme works.
@NightBird: your scheme looks OK for me. I'm only little concerned that it will be too pretentious for tuning using the propagation time of logic elements. But it's worth to try!

Re: Merging video output?

Posted: Tue Dec 12, 2017 1:21 am
by iss
Additionally I made one quick and dirty ROM for testing.
On the pictures above you see vertical lines - it's not coincidence!
Attached are the sources, 4k and 2k ROM files. You can load them in Oricutron - edit 'oricutron.cfg' and set the 4k file as atmos rom or the 2k file as microdisk rom then start Oricutron. Pressing F3 (i.e NMI button in Oricutron) will draw vertical lines on odd or even offsets. The idea was with 2 Orics to have OR-ed picture :).
crazy-bios.zip
(4.25 KiB) Downloaded 360 times
EDIT: the real NMI button is very handy to be used as 'synchronous kick-start' for both Orics - one simple wire between them :)

Re: Merging video output?

Posted: Tue Dec 12, 2017 9:04 am
by Dbug
Interesting!

At least this showed one thing: Even when not perfectly in sync, the resulting video signal is still valid, and we can generate valid video data in the normally blanked area of the screen... you did some left and right hardware overscan :D

Re: Merging video output?

Posted: Tue Dec 12, 2017 7:30 pm
by ibisum
>> stereo audio output:

^^ 1 PING: GOTO 1

Re: Merging video output?

Posted: Tue Dec 12, 2017 7:50 pm
by Dbug
This is what one hour of hacking around managed to do:
MultiCutron.png
I've to give Kudos to Xeron for having designed something which is not full of global variables all over the place :)

I had to do some ugly things to the rendering and initialization code, but it kind of mostly work.

Muhahahahahaha.

(and yes, since the four emulated machines run in the same Oricutron executable, adding the merging is mostly an academic exercise at this point, but I have issues with my version of SDL, audio on my machine cuts, and moving the window resizes it!)

Re: Merging video output?

Posted: Wed Dec 13, 2017 9:24 am
by ibisum
Whoa, that's cool - and a lot easier than I thought it would be. Nice work .. ;)

I guess its not too hard now to wire them up once the hardware design is somewhat settled?

Re: Merging video output?

Posted: Wed Dec 13, 2017 5:39 pm
by Dbug
ibisum wrote: Wed Dec 13, 2017 9:24 amI guess its not too hard now to wire them up once the hardware design is somewhat settled?
The thing is, there are many different ways to do the hardware mixing, some are simpler than other, some provide more benefits than other.
My idea is to implement a few mixing alternative in software, and see what can be done with that, the idea being to try to find what gives the more bangs for the bucks while being humanly programmable without ripping one's hairs out.

Re: Merging video output?

Posted: Wed Dec 13, 2017 10:52 pm
by iss
20171213_231329.jpg
This is today's best result. :) We are getting closer and closer....
For now I have the same results with extra ULA and without it, so which is better - I still don't know.
About the video mixer - having an emulator for experiments and development will be really great!
Else I think everything is doable. Maybe we need to design the mixers like modules, so it's easy to change them.
Next I want to focus on the storage...

Re: Merging video output?

Posted: Fri Dec 15, 2017 7:49 pm
by Dbug
So, I did some testing, playing with one idea at a time.
This time the idea was: Just use three Orics, each one is in charge of one component (so one only display red, one only display green, one only display blue) and just use these as inputs.
Obviously it's largely limited compared to what could be done, but that gives one clear result: You can now make perfect pictures using the original 8 colors wherever you want, without any constraints at all.

I only did the test using a painting program, so it's pretty basic, but that should give you an idea.
Einstein_MakingOf.png
Turrican_MakingOf.png
On both cases you have:
- The original (resized to 240x200) picture on the left
- The split channels (red, green, blue) in the center (monochrome pictures)
- The original lib-pipi conversion on the top right
- The merged channels on three ULA on the bottom right

Plenty of other possibilities to explore, but it's a start :)

Re: Merging video output?

Posted: Fri Dec 15, 2017 9:02 pm
by sam
I find that LibPIPI doesn't do a nice job on the Turrican character: Color-clashes seem too numerous for me. With my own conversion tools, running others/ostro_oric.lua under graphx2, I get this which should respect oric gfx constraints:
xxx.gif
xxx.gif (8.49 KiB) Viewed 14616 times
Now it is certain that the best is to have 3 independent colors without constraints, [ADVERT]but without it, you can always use my own conversion tools for GrafX2 [/ADERT] :)

Re: Merging video output?

Posted: Fri Dec 15, 2017 9:40 pm
by Dbug
Well, I only need to look a the picture with a 6x8 grid to tell you it's not Oric compatible :)
From what I see, you are using two colors per block of 6 pixels (which is correct) but you do not leave any room in between for the color changes.
You can't have a block with two different colors, followed by another block of two other different colors (except if they are both the exact inversion of the two previous ones).

I suggest you read this article, http://osdk.org/index.php?page=articles&ref=ART9 , specially the part about serial attributes :)

If you can come up with something that beats LibPipi - while being possible to display on the Oric, congratulation ! -

If you want to check if your picture can be displayed on the Oric, you can pass them through PictConv in -f1 mode: It will output any issue you have in your picture

Example:

Code: Select all

%OSDK%\Bin\PictConv -f1 -t1 -d0 -o5 EinsteinSamTest.png OricOutput.png
If nothing is displayed, you should be good to go, if you see things like "Line 23 max:38" it basically tells you it gave up trying all combinations.
If also displays if you have more than two colors on the same block with something like "[3 colors bloc 22]"