GBS 8200/8220 CFW Project

The place for all discussion on gaming hardware
Iraito
Posts: 122
Joined: Sat Aug 24, 2019 8:59 am

Re: GBS 8200/8220 CFW Project

Post by Iraito »

It is indeed a straight wire, only RGB have caps and resistors, the thing is that i have composite below pin7 and sync on pin 7, composite end on pin20 in the scart.
Iraito
Posts: 122
Joined: Sat Aug 24, 2019 8:59 am

Re: GBS 8200/8220 CFW Project

Post by Iraito »

It worked, i just put the composite line (with cap etc.) on sync and eliminated the sync line entirely, now it's stable, thank you a lot! now i only need to 3d print an enclosure for the console end of the cable because i literally had to mangle it. I can only say that the MD is the quirkiest console i ever had to put my hands on, by reading on the internet every person has a different way to deal with all the damn revisions SEGA put out and some issues are almost unsolvable 100% (damn jailbars)
rama
Posts: 1373
Joined: Wed Mar 08, 2017 3:15 pm

Re: GBS 8200/8220 CFW Project

Post by rama »

NoAffinity:
Try starting with that multi-gang pot (supergun RGB adjust?) and the color test image.
Try to increase gain until the brightest 2 bars of each color blend into each other, then dial them down again until they are clearly distinct.
Does that improve the top end?
User avatar
NoAffinity
Posts: 1018
Joined: Mon May 07, 2018 5:27 pm
Location: Escondido, CA, USA

Re: GBS 8200/8220 CFW Project

Post by NoAffinity »

Thats exactly what i did. Went up on the multigang until the 2 brightest bars blurred, then backed it down until they are clearly defined. :( ill spend some more time on it this weekend, test with other decices, see if i can isolate it to the capture card handling.

Sent from my SM-G955U using Tapatalk
User avatar
NoAffinity
Posts: 1018
Joined: Mon May 07, 2018 5:27 pm
Location: Escondido, CA, USA

Re: GBS 8200/8220 CFW Project

Post by NoAffinity »

Well it seems my problem is with the AV-Driver setup.
Spoiler
JAMMA/AV-Driver to GBS to Retrotek Transcoder to Avermedia C127
Image

JAMMA/AV-Driver to Shinybow SCART-to-YPbPr Converter to Magewell Pro
Image

Genesis to GBS to Retrotek Transcoder to Magewell Pro
Image
Now then, there are jumpers on the AV-Driver that can be soldered to affect gain. I know this is really getting outside of the purview of this thread, but hoping I can nonetheless get some guidance. Each of the gain channels is a single color. 3 of 4 are used (RGB...). If I were to manipulate the jumpers to try to improve the color balance, what would my best approach be?
Spoiler
Image
The full explanation of the jumpers can be found here: http://etim.net.au/av-driver/jumpers/
rama
Posts: 1373
Joined: Wed Mar 08, 2017 3:15 pm

Re: GBS 8200/8220 CFW Project

Post by rama »

Yep, Genesis looks much more sane. So we know where to look now :)

The AV driver jumper settings are probably supposed to be measured using an oscilloscope.
If you have one around, we want RGB to be 0.7Vpp on the GBS input.

But if you don't, you can use the auto gain feature on the GBS to dial in the correct jumper settings.
Auto gain monitors the ADC codes for the 3 channels and decreases the GBS software gain until it doesn't see any more 0xff (full on) codes.
So you'll want to enable auto gain, enable information mode (for ADC gain readouts), and display a pure white picture (ideally).
If static pure white isn't available, regular gameplay will also work, but you'll have to wait longer for auto gain to stop updating values.
If auto gain adjusts to around 0x7f for the 3 channels, that's when you have the correct AV driver jumpers set.
Don't worry about it settling on 0x79 or so, that's good enough.
But you want to avoid anything above 0x81 or so, since that's overdriving and clipping.
Once auto gain settled, and it's not good yet, power everything off and change the AV driver jumpers, then try again.

You can reset auto gain by resetting gbscontrol.
User avatar
NoAffinity
Posts: 1018
Joined: Mon May 07, 2018 5:27 pm
Location: Escondido, CA, USA

Re: GBS 8200/8220 CFW Project

Post by NoAffinity »

Can i just run auto gain and save a profile once it settles? I have auto gain enabled by default, and it is enbaled for both of those screenshots above.

Sent from my SM-G955U using Tapatalk
benryves
Posts: 31
Joined: Sun Jan 27, 2019 12:32 am

Re: GBS 8200/8220 CFW Project

Post by benryves »

rama wrote:benryves:
Okay, that's fair enough. Thanks for allowing links :)

The captures are fine imho, even with the quirks.
Youtube is severely lacking in gbscontrol demo captures :p

Edit: I think the GBI software is really doing something weird there, and it's not the cable. Very interesting!
I wasn't able to replicate the flickering in more recent captures but I did find that any direct captures were pretty much guaranteed to be corrupt through my HDMI capture box when sticking to the default output refresh rate. I set up a custom profile in gbs-control that stretched the output from GBI to fill the screen at the correct 3:2 aspect ratio and captured a few more games at 60Hz and uploaded a publicly-listed video with them: https://www.youtube.com/watch?v=SxuUAGT-pEg

I did point out in the description that the horizontal tearing is a necessary evil of my capture hardware and isn't normally a problem when plugged directly into a TV.
rama
Posts: 1373
Joined: Wed Mar 08, 2017 3:15 pm

Re: GBS 8200/8220 CFW Project

Post by rama »

NoAffinity:
You should correct it at the source, if you can.
It gets more important the more auto gain settles at values far from 0x7f.
Ultimately, it's up to you though :p

benryves:
Cheers, that's a great demo.
I like the mini review part, too :)
Iraito
Posts: 122
Joined: Sat Aug 24, 2019 8:59 am

Re: GBS 8200/8220 CFW Project

Post by Iraito »

benryves: That looks pretty damn good, what profile\options are you using for the GBI ? and what about this custom profile for the GBS ?
benryves
Posts: 31
Joined: Sun Jan 27, 2019 12:32 am

Re: GBS 8200/8220 CFW Project

Post by benryves »

Iraito wrote:benryves: That looks pretty damn good, what profile\options are you using for the GBI ?
I used gbihf.dol with the resolution set to 240p60 (and otherwise default settings). I'm not sure if it normally defaults to that video mode but after the unusual/flickery video behaviour with gbisr.dol I thought it prudent to force it to 240p60 just in case.
and what about this custom profile for the GBS ?
Sorry, I should have said "Preset" rather than "Profile". GBI doesn't fill the screen by default so I compensated by adjusting the scaling width and height in gbs-control manually. I wanted to get 720p out as my HDMI capture box can only capture at 60fps in 720p mode, at 1080p it halves the frame rate. I started by loading the default 1280x720 profile in GBS and then used the "Vertical +" button under "Scaling" along with "Picture Up" and "Picture Down" to fill the screen as much as possible. I then measured the height of the image on my TV, multiplied it by 3/2 (to get the correct width for the GBA's 3:2 aspect ratio) and then adjusted the width of the image with "Horizontal +" to get it to the right width. Once I'd got it looking right I saved the preset with the "Save Custom Preset" button.

To then capture I needed to use the "Snap to 60/50Hz for HDMI" button under the "Development" options as my capture box produces corrupt video files if the frame rate isn't very close to 60Hz or 50Hz, hence the horizontal tearing in the picture.
User avatar
AtariBits
Posts: 24
Joined: Sat Aug 31, 2019 11:52 pm
Location: North America, California
Contact:

Re: GBS 8200/8220 CFW Project

Post by AtariBits »

I'll jump in here with a real quick question...

When I run 240p 60Hz presets into an LCD monitor I see a faint horizontal line of distortion that moves down the screen starting at the top and slowly moving downward, and then repeating from the top after disappearing from the bottom. In the old days with CRT monitors I would have called it a "hum bar".

Interestingly when running 288p 50Hz presets I don't see this problem.

Other than this small 60Hz issue, the image looks great and is perfectly stable.

Anyone else ever see this on an LCD monitor? If so, was there a solution?

Thanks :)
Michael from AtariBits
rama
Posts: 1373
Joined: Wed Mar 08, 2017 3:15 pm

Re: GBS 8200/8220 CFW Project

Post by rama »

Is the bar only on the left side, or is it even across the width of the screen?
If it's the former, you need to hack some values. This line is also sometimes green or black.

If the latter, that's just the tear line from using single buffering, and there's not much you can do.
With gbscontrol, you could try active frametime lock, which is really something like AMD Freesync, I just realized :p
User avatar
AndehX
Posts: 790
Joined: Sun Oct 18, 2015 11:37 pm

Re: GBS 8200/8220 CFW Project

Post by AndehX »

I've noticed this slow moving line going down the screen on certain presets too, it basically looks like a single wave line moving down the entire screen, then repeats from the top
User avatar
AtariBits
Posts: 24
Joined: Sat Aug 31, 2019 11:52 pm
Location: North America, California
Contact:

Re: GBS 8200/8220 CFW Project

Post by AtariBits »

rama wrote:Is the bar only on the left side, or is it even across the width of the screen?
If it's the former, you need to hack some values. This line is also sometimes green or black.

If the latter, that's just the tear line from using single buffering, and there's not much you can do.
With gbscontrol, you could try active frametime lock, which is really something like AMD Freesync, I just realized :p
It's very much like AndehX described it (below). A single invisible horizontal line across the entire width of the screen, without color, that nudges stuff ever so slightly over to the right as it progresses down the screen.
AndehX wrote:I've noticed this slow moving line going down the screen on certain presets too, it basically looks like a single wave line moving down the entire screen, then repeats from the top
Michael from AtariBits
rama
Posts: 1373
Joined: Wed Mar 08, 2017 3:15 pm

Re: GBS 8200/8220 CFW Project

Post by rama »

Tear line then.
It's where start and end of the buffer meet, causing the 2 points to represent a different point in time.
It shows when there's a lot of difference between the 2 point, such as when scrolling in a game.

Getting rid of it requires double buffering and extra lag, or using passthrough mode.

You might make it more acceptable by tuning VDS htotal, which the lower bits are on S3_01.
User avatar
Syntax
Posts: 1774
Joined: Wed Aug 09, 2017 12:10 am
Location: Australia

Re: GBS 8200/8220 CFW Project

Post by Syntax »

I used to get this on older firmware but now it's gone on my Sony crt.
User avatar
AtariBits
Posts: 24
Joined: Sat Aug 31, 2019 11:52 pm
Location: North America, California
Contact:

Re: GBS 8200/8220 CFW Project

Post by AtariBits »

rama wrote:Tear line then.
It's where start and end of the buffer meet, causing the 2 points to represent a different point in time.
It shows when there's a lot of difference between the 2 point, such as when scrolling in a game.

Getting rid of it requires double buffering and extra lag, or using passthrough mode.

You might make it more acceptable by tuning VDS htotal, which the lower bits are on S3_01.
When I looked up the register in the register definition docs, it shows it as VDS HSYNC RST (7:0) on page 144.

The original value of that register in my presets was 244. So I started changing it by 1, and when I got to 242 the tear line movement slowed to a crawl, which actually makes it a lot harder to see. This will probably be acceptable, but I started thinking (yes this is always dangerous) if it could also be told to stay in one place such as the top or bottom of the screen, it would pretty much disappear. I don't suppose there is a way to do that via the presets?

BTW, what is "passthrough mode"?
Michael from AtariBits
rama
Posts: 1373
Joined: Wed Mar 08, 2017 3:15 pm

Re: GBS 8200/8220 CFW Project

Post by rama »

You're describing active frametime lock that's an option on gbscontrol.
It takes a lot of effort to do this in software, and the result isn't very compatible.
Depending on the display used, you either fully fix the problem, or the image may jump or disappear entirely.
Check out this file for an idea on how it can be done: https://github.com/ramapcsx2/gbs-contro ... ramesync.h

And yeah, this is essentially AMD Freesync.
All we can do is make sure that the output frame rate is always a bit higher than the input, and at predetermined times we add a scanline (2 for better compatibility) so that the output catches up with the input.

Frame time measurement pulses are put on the debug pin (test bus readout, capable of carrying some of the chips internal test results).
Software has to put the decoded input VSync onto the bus, then switch to the VDS / output VSync.
To attempt this, your microcontroller has to be able to measure these pulses very accurately.
Some additional logic then decides on fine tuning to get close to the target, and then monitors for hard corrections using extra scanlines.
Fine correction is done via htotal, correction via vtotal.

When the display accepts this, the tear line will always be hidden.
I suspect a Freesync capable display will tolerate this much better than a generic one.

(VDS HSYNC RST is a mouth full. We called it htotal back then, and I still do :p)

Passthrough mode is an option on gbscontrol that bypasses all the image data processing.
It leaves just the 3 ADC channels + Sync decoding, and directly passes the stream on to the DAC channels for output.
In this mode, not even 4:2:2 compression is done. The output will be a very good duplicate of the input.
Sync will be the same timings, but some error / extra pulses will be removed / cleaned up.
It has the capability to apply a color conversion matrix, so it can do YUV to RGB or RGB to YUV (with the Component out mod).
User avatar
AtariBits
Posts: 24
Joined: Sat Aug 31, 2019 11:52 pm
Location: North America, California
Contact:

Re: GBS 8200/8220 CFW Project

Post by AtariBits »

rama thanks for all the great info and very thorough explanations. Although I think I'll stick with the slow crawl I got now, because to do otherwise sounds like a lot of work, and could make things finicky in other ways.
Last edited by AtariBits on Sat Nov 02, 2019 12:29 pm, edited 1 time in total.
Michael from AtariBits
benryves
Posts: 31
Joined: Sun Jan 27, 2019 12:32 am

Re: GBS 8200/8220 CFW Project

Post by benryves »

Enabling the "Active FrameTime Lock" (under "Preferences") removes the horizontal tear line for me, does it work for you, AtariBits?

I've been trying to figure out how this works as it has one side-effect on my set-up: it seems that when it performs correction the entire picture moves up or down a bit every few seconds, which is quite distracting (e.g. it moves up _/‾ for a bit or moves down ‾\_). The whole picture moves, it doesn't change scale.

I thought that one possible workaround would be to compensate by also changing the vertical position somehow, and when I looked at the code it seems that this is what the frameTimeLockMethod == 1 mode does. On my setup this changes the behaviour to a brief glitch, e.g. it moves up _/\_ briefly or down ‾\/‾ briefly every few seconds instead of moving and staying put until it "glitches" in the other direction.

I tried changing the code so that it would amend and set the new vtotal first, wait a frame, then amend and set vsst+vssp. I also tried the opposite, amend and setting vsst+vssp first, wait a frame, then set the new vtotal. Neither of these approaches seemed to make any difference, but to be honest I'm not really sure I'm following the existing code correctly and I'm not sure my frame-waiting code worked.

One thing that does help a little is changing FrameSyncAttrs::syncCorrection to 1 as a single scanline jump is much less jarring than a two scanline jump. Otherwise I'd love to hear any suggestions! :)
User avatar
NoAffinity
Posts: 1018
Joined: Mon May 07, 2018 5:27 pm
Location: Escondido, CA, USA

Re: GBS 8200/8220 CFW Project

Post by NoAffinity »

I think I finally got good color balance. Had to do the 1.1 gain multiplier on the red channel of AV-Driver. A few tweaks to the settings of the capture card as well. Thoughts?

Spoiler
Image

Image
Image
Image
User avatar
AndehX
Posts: 790
Joined: Sun Oct 18, 2015 11:37 pm

Re: GBS 8200/8220 CFW Project

Post by AndehX »

Yeah, much better. The balance is definitely there now. Maybe just add a bit of saturation, and it'll look perfect.
User avatar
AtariBits
Posts: 24
Joined: Sat Aug 31, 2019 11:52 pm
Location: North America, California
Contact:

Re: GBS 8200/8220 CFW Project

Post by AtariBits »

benryves wrote:Enabling the "Active FrameTime Lock" (under "Preferences") removes the horizontal tear line for me, does it work for you, AtariBits?
My project is custom based on a Microchip PIC12F1572 chip, with firmware developed in Great Cow Basic, so I would need to reinvent what you are talking about in my Basic source code. This would require considerable work, which I'm not feeling up to doing at the moment. Perhaps later it'll be something to look at.

GBSCTRL for PIC Project Discussion
Michael from AtariBits
rama
Posts: 1373
Joined: Wed Mar 08, 2017 3:15 pm

Re: GBS 8200/8220 CFW Project

Post by rama »

NoAffinity:
I agree, this is improved and it might be fully correct now.
As AndehX said, maybe the top end isn't fully there yet, but auto gain should do that.
But if you already use auto gain, then I think some gain is lost at later stages.

You also said you changed just the red gain?
Normally, all 3 channels should have the same gain (and attenuation).
So if they're uneven now, maybe there's a hardware problem with the board or the AV driver?

But all in all, I think it's good now.
It's always possible to just crank up the final display saturation a bit :)

benryves:
That's exactly what I see on my regular'ish test TV.
You understood what the code does, and your modifications probably worked.
It's just that the display updates the vertical position when vtotal changes, just as my test TV does.

I also managed to get the correction line count down to 1, but this is slightly less stable on my PC TFT (that actually doesn't bob when doing corrections).
I'll commit that code soon anyway, since I think it's better overall.

AtariBits:
Yeah, I would recommend you simply change the S3_01 value to something that looks good, and leave it at that.
You have the benefit of knowing your source frame rate, so you can just do that and be fine :)
Edit:
And congrats on reaching so many satisfied users so quickly! :)
User avatar
AtariBits
Posts: 24
Joined: Sat Aug 31, 2019 11:52 pm
Location: North America, California
Contact:

Re: GBS 8200/8220 CFW Project

Post by AtariBits »

rama wrote: AtariBits:
Yeah, I would recommend you simply change the S3_01 value to something that looks good, and leave it at that.
You have the benefit of knowing your source frame rate, so you can just do that and be fine :)
Edit:
And congrats on reaching so many satisfied users so quickly! :)
Yep that's what I intend to do :wink:

Thanks for the congrats, its been a fun and rewarding journey :D

If anyone's curious, here's a look at the RGB2VGA-XLD GBS Carrier Board that I just tested today. This version allows for electronic switching of the RGB to allow for either sending it out as normal RGB to a DIN-13 jack, or using it for VGA output through the GBS, and of course it integrates the GBSCTRL PIC chip that reprograms the presets.
Michael from AtariBits
benryves
Posts: 31
Joined: Sun Jan 27, 2019 12:32 am

Re: GBS 8200/8220 CFW Project

Post by benryves »

AtariBits wrote:My project is custom based on a Microchip PIC12F1572 chip, with firmware developed in Great Cow Basic, [...]
Ah, sorry I missed that aspect! Looks like a very nice and neat project. :)
rama wrote:That's exactly what I see on my regular'ish test TV.
You understood what the code does, and your modifications probably worked.
It's just that the display updates the vertical position when vtotal changes, just as my test TV does.
Good to know, thank you! It seems to me like there could be some way to adjust the vertical image position as well as the vtotal to avoid the jump, whether that's a case of finding the right order to change things or whether it's a case of changing things simultaneously but at the "right" point during the frame (depending on TV) - I guess I should do some more experiments, or maybe wait to see how your recent 1-line correction changes work first.
User avatar
AtariBits
Posts: 24
Joined: Sat Aug 31, 2019 11:52 pm
Location: North America, California
Contact:

Re: GBS 8200/8220 CFW Project

Post by AtariBits »

benryves wrote:
AtariBits wrote:My project is custom based on a Microchip PIC12F1572 chip, with firmware developed in Great Cow Basic, [...]
Ah, sorry I missed that aspect!
No problem, I realize my project is a bit unusual and somewhat out there in left field from where this topic has morphed into. But I am so thankful to people like yourself and rama to help me get unstuck as I pursue this side development of GBS control.
benryves wrote: Looks like a very nice and neat project. :)
Thanks, it certainly has been interesting :D
Michael from AtariBits
User avatar
NoAffinity
Posts: 1018
Joined: Mon May 07, 2018 5:27 pm
Location: Escondido, CA, USA

Re: GBS 8200/8220 CFW Project

Post by NoAffinity »

Hey AtariBits, kudos to you for taking this project in a different direction and expanding the purpose to a different subset of the enthusiast community! :)

Rama:
Is there a way for gbs control to tell us what the input signal is? I poked around a bit and didnt find anything in the build i currently have flashed (a couple weeks old), and dont remember ever seeing it as a feature that was implemented. Possible to do? Anybody else interested in seeing this?

Sent from my SM-G955U using Tapatalk
Jasper
Posts: 6
Joined: Fri Jun 28, 2019 9:49 pm

Re: GBS 8200/8220 CFW Project

Post by Jasper »

Finally gathered the courage to solder (I'm trash at it) everything properly instead of using janky jumper wires on top of my PLCC adapter.
Spoiler
Image
By the way, what the two boards are attached to is an enclosure I designed out of two acrylic sheets, it looks like that fully assembled:
Spoiler
Image
Image
That was my very first time using Inkscape (or any program of that sort), but I think I did pretty well.

If you are interested in using/modifying it, here it is: https://mega.nz/#!dpQRiQIY!u1YAM98_baf6 ... M6806hvX4k

I ordered them through the Formulor website, just had to slide my design in the Inkscape template they provide, the colors used in my design already match what they expect.
Depending on what laser-cutting service you use you might need to change the colors, but at least the shapes and measurements are there already.
Last edited by Jasper on Wed Nov 06, 2019 10:40 pm, edited 1 time in total.
Post Reply