ramapcsx2 / gbs-control Goto Github PK
View Code? Open in Web Editor NEWLicense: GNU General Public License v3.0
License: GNU General Public License v3.0
I've read the Arcade Board wiki article and also the related issue but I am still a little confused.
Is it safe to connect an arcade PCB (i.e. JAMMA) that outputs RGB @ TLL (as high as 5v p-p) to the GBS-8200? If so, what is the output voltage with the potentiometer set to the far left (as described in the wiki article) ?
My goal is to reduce the TTL voltage to CGA/VGA level (0.7v p-p) and passthrough the RGB exactly as it is. (i.e. no scaling, 15 kHz, etc) I'm going to connect a VGA (RGBHV) to Component video transcoder after the GBS-8200.
trying to compile the code with all the required libraries and the correct selected board. I get quite a few 'warning unused parameter' errors. it does finishing compiling. Will this be an issue or is this expected?
the below are just a few:
In file included from C:\Users\cvsch\Documents\Arduino\libraries\ESPAsyncWebServer\src\ESPAsyncWebServer.h:457:0,
from C:\Users\cvsch\Documents\Arduino\libraries\ESPAsyncWebServer\src\WebResponses.cpp:21:
C:\Users\cvsch\Documents\Arduino\libraries\ESPAsyncWebServer\src\AsyncWebSocket.h:86:10: warning: unused parameter 'i' [-Wunused-parameter]
void operator ++(int i) { _count++; }
^
C:\Users\cvsch\Documents\Arduino\libraries\ESPAsyncWebServer\src\AsyncWebSocket.h:87:10: warning: unused parameter 'i' [-Wunused-parameter]
void operator --(int i) { if (_count > 0) { _count--; } ; }
^
Hello
I've got a problem to compile your work with arduino IDE 1.8.5 and 1.9beta.
I Tried it with linux, and windows too.
I'm a newbie with WEMOS D1, and i got this problem .
Arduino: 1.9.0-beta (Windows 10), Board: "LOLIN(WEMOS) D1 R2 & mini, 80 MHz, Flash, 4M (1M SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 115200"
sketch\PersWiFiManager.cpp.o: In function `PersWiFiManager::attemptConnection(String const&, String const&)':
sketch/PersWiFiManager.cpp:35: undefined reference to `WPS_is_unavailable_in_this_configuration__Please_check_FAQ_or_board_generator_tool'
sketch\PersWiFiManager.cpp.o:(.text._ZNSt17_Function_handlerIFvvEZN15PersWiFiManager17setupWiFiHandlersEvEUlvE1_E9_M_invokeERKSt9_Any_data+0x3e): undefined reference to `WPS_is_unavailable_in_this_configuration__Please_check_FAQ_or_board_generator_tool'
collect2.exe: error: ld returned 1 exit status
exit status 1
Error compiling for board LOLIN(WEMOS) D1 R2 & mini.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
Thank you for your help
On a JVC DT-V, on cold boot, passthrough with MVS works but exihibits a smearing glitch on the right border, but after a while it starts getting more and more wavy, until it cannot sync anymore.
The other monitor still manages to sync, however the smearing is still present.
The DT-V monitor will only work cold for some reason. Note that it syncs reliably to MVS direct (but displays upper skew).
MD has the same behavior.
Title says everything.
Also, will 480i have support for scanlines in the future?
I really like this project but I'm always worried to update my esp8266 because there are always a lot of changes and sometime things get broken.
Perhaps the project need a Development branch were new changes can be tested and experimented and when the code is in a good shape can be deployed to Master.
It would be great to have a double buffering mode to eliminate screen tearing (at the cost of occasional duplicate/dropped frames). I've attempted to enable it by poking the appropriate registers, but all setting combinations I've tried result in garbled output. The 5725 docs aren't very helpful.
I want to enable frame time lock because I want to get rid of screen tearing. I must disable sync watcher to enable frame time lock that the screen won't show black screen but it does not convinent to disable sync watcher every time I restart system. Could this problem be fix?
I was wondering if I could use this mod on the HDMI version to achieve a setup similar to a OSSC? Has anyone tried this? How does it look? What sort of interference is there? The product I'm talking about is this
Will it be possible to implent a switch to swap between two config sets.
I use two different config slots, it would be nice to change beteeen them without using another device and the gui over wlan.
Hello, there.
This is my first time writing a GitHub issue and I'm non-native English speaker also not a good programmer, please excuse me if I did something ignorance stuff and let me know so I can fix it.
A few days ago, a friend of mine introduce this stuff to me and it seems interesting so I built the hardware and try it out.
When I hook DEBUG_PIN of HCKJ 8200 (A clone of GBS-8200) to D11 of Arduino, the screen isn't looking so great.
and Screenshots and Logs (with DEBUG_PIN and without DEBUG_PIN) :
------ [With DEBUG_PIN] ------
starting
resetDigital
using RGBS inputs
MCU: 16000000
..
try HD
try SD
New Input
NTSC timing
SD mode
resetDigital
Base htotal: 1794
Candidate htotal: 1819
Candidate htotal: 1819
Candidate htotal: 1819
Candidate htotal: 1819
Best htotal: 1819
HB_SP preset: 1640 adjusted: 44
post preset done
----
htotal: 1819
VDS_HSCALE: 638
HS ST: 1398
HS SP: 1518
HB ST (display): 1304
HB SP (display): 0
HB ST (memory): 1328
HB SP (memory): 44
----
vtotal: 1000
VDS_VSCALE: 512
VS ST: 987
VS SP: 990
VB ST (display): 950
VB SP (display): 55
VB ST (memory): 19
VB SP (memory): 20
------ [Without DEBUG_PIN] ------
starting
resetDigital
using RGBS inputs
MCU: 16000000
..
try HD
try SD
New Input
NTSC timing
SD mode
resetDigital
Base htotal: 1794
post preset done
Base htotal: 1794
Base htotal: 1794
Base htotal: 1794
sync lock failed, check debug + vsync wires!
----
htotal: 1794
VDS_HSCALE: 638
HS ST: 1398
HS SP: 1518
HB ST (display): 1304
HB SP (display): 0
HB ST (memory): 1328
HB SP (memory): 1640
----
vtotal: 1000
VDS_VSCALE: 512
VS ST: 987
VS SP: 990
VB ST (display): 950
VB SP (display): 55
VB ST (memory): 19
VB SP (memory): 20
Hello rama!
I use GBS-8220 (RGBS2VGA) with your firmware. I connect the adapter to two different Soviet computers:
Computer "Soyuz-Neon PK-11/16", which uses 300 visible lines in a video frame (50Hz, 15.6259kHz) and this does not fit well with television standards. As a consequence, the GBS-8220 with factory firmware shows an image, but it twitches. GBS-8220 with your firmware does not detect the synchronization signal at all, what is reported in the logs.
Is it possible to fix something in the firmware to capture synchronization from this computer? The framemeister does this without problems.
Computer UKNC (MS0511), the resolution of the video frame 640 * 288. There are two problems. First: horizontally, the entire frame can fit into the screen only in adapter mode 640 * 480. In other modes, no settings help, the frame goes left or right. 640 * 480 is also a good result, but in this mode the image is blurred in some places. Is there any way to fix this for all modes? The second problem is that since the firmware version 28.01.2019, the background of the image of my UKSC has become permanently green. I managed to fix it by replacing in the latest firmware version in the line 4818 in file gbs-control.ino:
4818: updateClampPosition (1);
I replace unit to zero, and then the background turned black again. Can this be taken into account in further development?
I've at this point tried several SEGA 32x systems (model MK-84000) and all of them don't sync. I can get an image for a split second right at the start. However the original firmware does find 32x sync and scales. Possibly different with the MK-84000A but don't have a model to test with currently.
I compare commit 523ca42 (Date: Mon Aug 20 16:16:42 2018) with latest versioin. I use 240p test patterns in picodrive (megadrive) emulator in PS2. When I test by test patterns -> color bleed check, the old version color is sharp but latest version is blur. I found white background and blue object has a little yellow breeding. Is it possible to look into to picture processing in the old version?
I am really happy with this custom firmware so far and the picture is really much better then the stock FW :)
I was actually kind of surprised to see the scanlines option, since i actually planed to do some kind of hardware mod with a scanline generator. Unfortunately are there no options to change size and/or position of the scanlines, so that they always look kind of "off".
Not sure how to use GIT yet, so I'm filling this file with register descriptions according to register map file, I'll upload it section by section starting from S3
The new active sync lock doesn't play nice with my display when using the feedback clock presets.
More often than not, the display looses sync on a vtotal change.
It looks like the display doesn't like it changing when in vblank.
This code fixes the issue here, for example:
writeOneByte(0xF0, 0);
readFromRegister(0x0a, 1, &stat);
while ((stat & 0x10) == 0x10) { // bit 4 = "When =1, means in display vertical blanking"
readFromRegister(0x0a, 1, &stat);
}
delay(1);
GBS::VDS_VSYNC_RST::write(vtotal);
It's not a great solution because it blocks for a while, but it works well.
The delay(1) is required to fix the last, rare dropouts.
Hello!
First of all I wanted to thank you for your work.
I use your code to connect to the GBS-8200 Soviet retro computer BK0010-01 via RGBS
Everything works well. But the monitor of the LG 1530s does not support the output frequency, it reports the output from the range.
The parameters of this monitor are: lines: 31-63 kHz; frames: 56-75 Hz
Is it possible to correct the code, what would this monitor have earned?
Thank you in advance for your answer.
code committed Jun 29, 2019 - a82f245
The screen in NTSC 720p mode distorts every 30 secs when actives scanline mode. The default setting has no issue.
Additional Note:
@ line 2982, code instruction below these lines won't reach
else {
return;
}
I notice in motion adaptive deinterlace while scrolling , the background is blur and darker, compare to bob deinterlace the background is not change in color or sharpness while scrolling. They're compared by playing dragon warrior 3 in NES emulator of PS2.
Is it normally effect of motion adaptive?
Hi there and first of all I would like to say that this project is awesome it has been a blast to use this board with great image and no issues so far, but I have 2 8200 board and I don't yet have the superpowers to code like u guys did on this, I've overlooked the code and with a small or little notion of program, could not reduce it to fit on an Arduino nano 168 nor 328. This is not an issue but a question. I tried to reduce the *.h files and lines that call for the ESP8266, but some of the errors that I get on variables I can not decipher what it is or how to work around it. I don't want to give any trouble with this as I have a normal Arduino and it is working great, but I have a second 8200 board and 2 Arduino nano's laying around and thought that I could use it. I really wish I could contribute to projects like this, but have no idea on how to learn to code on stuff like this. Really Great work u guys... keep it up
Thompson.
Hi, I have used my GBS-8220 with HD Retrovision cable in YPbPr input. The image looks great.
I added the board Wemos D1 mini with gbs-control according to the setup guide.
However, the image is "shaky" horizontally.
Any suggestions for this?
Do you think it would be possible to have Overlay or Bezel options for gbs-control?
Hello!
In the ""Build the hardware page''
Sync
''Every GBS board requires an additional 100 Ohm resistor on Sync-in to ground if you want to use the RGBS input.
Together with the factory resistor of 1000 Ohm, this brings the total resistance down to TV levels of 75 Ohm.''
Wouldn't it be better to use a 82 ohms resistor? A 100ohms in parallel with a 1k makes a value of 91 ohms, which is 21% higher than the expected value of 75 ohms. By using a 82 ohms resistor, which is a regular value easily purchasable, it would bring the value at around 76 ohms.
SCART RGB to VGA adapter
''If you want to build an adapter, here is some good inspiration: https://shmups.system11.org/viewtopic.php?f=6&t=35423''
That setup uses the same LM1881N chip as the Sync stripper section but, there is no R1!:
User viletim shows a good LM1881 circuit here:
https://shmups.system11.org/viewtopic.php?f=6&t=55948&p=1153713#p1153713 ''_
I noticed this when experimenting with changing display vblank start/stop in order to crop the rather noisy overscan areas produced by the Genesis/Mega Drive VDP. Since the "different frame sizes" feature of the TV5725 only changes the effective htotal without changing the display or memory vbst/vbsp positions, the active region of the display effectively shifts down by two scanlines (although the contents do not). Depending on what the console puts in the vblank region, the effect is visible.
I tried to compile the latest code, but i always get this error "'saveUserPrefs' was not declared in this scope"
Thanks
Good evening,
I'm trying to use a gbs8200 to create an adapter from mda/hercules to vga. This mode is not supported by the official adapter because h-frequency is 18.4 kHz and therefore out of range according to the manual. But with this firmware I kind of got it working, but the picture is scrolling vertically through the screen from top to bottom, so vsync is not working. The signal is there electrically, I checked with an oscilloscope so it's probably not caused by that.
I used an esp-01 as an adapter (the black one with 1Mbyte flash). I can access the website and change settings, but can't access the serial monitor over uart because all pins of the board are used for i2c, debug and led. (It only has 4 broken out gpio pins, but I might be able to connect some more but that would require some smd soldering)
Get Video Timings returns:
htotal: 1802
HS ST/SP : 8 108
HB ST/SP(dis): 1696 352
HB ST/SP : 1696 256
vtotal 1000
VS ST/SP : 1 5
VB ST/SP(dis): 990 28
VB ST/SP : 4 10
IF_VB_ST/SP: 18 20
The stange thing is that it doesn't matter if I have the v-sync signal connected or not.
All options are zero except:
frame time lock, auto gain, scanlines,line_filter, peaking
are all =1
Is mda/hercules even possible with this chip and does someone have a recommendation on what to try to get sync working?
Even though the original signal has 50Hz I don't need high framerates for this project even 1fps would be sufficient, its a measurement device and does update it's display very slowly.
Greetings
Benjamin
Commit caad7d1 causes white balance problems on my Genesis. Changes in the dominant color on screen seem to cause the entire screen to become tinted. This is particularly easy to notice in the title screen of Sonic 2. When the background fades in from black, the white portions of the foreground dramatically change color. I soldered capacitors into my video cable before discovering it was a software problem.
Arduino: 1.8.7 (Windows 10), Board: "WeMos D1(Retired), 80 MHz, 115200, 4M (3M SPIFFS)"
C:\Users\RX\Downloads\gbs-control\gbs-control-master\gbs-control\gbs-control.ino: In function 'void handleRoot()':
gbs-control:3109:35: error: 'HTML' was not declared in this scope
server.send_P(200, "text/html", HTML); // send_P removes the need for FPSTR(HTML)
^
Multiple libraries were found for "PersWiFiManager.h"
Used: C:\Users\RX\Documents\Arduino\libraries\PersWiFiManager
Not used: C:\Users\RX\Documents\Arduino\libraries\gbs-control-master
Not used: D:\arduino-1.8.7\libraries\gbs-control
Multiple libraries were found for "ArduinoOTA.h"
Used: C:\Users\RX\Documents\Arduino\libraries\ArduinoOTA
Not used: C:\Users\RX\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ArduinoOTA
Not used: D:\arduino-1.8.7\libraries\gbs-control
exit status 1
'HTML' was not declared in this scope
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
i found this project last week and it interested me to be able to try and clean my video up for my Geneve 9640 (outputs 15kHz)that is connected via RGB to the GBS8200 then out to VGA.
I have built the board based with a NodeMcu ESP8266 D1 Mini and followed the Wiki for hardware setup and uploading of the code.
I am using the standard Sync Stripper circuit with the LM1881
[i found this project last week and it interested me to be able to try and clean my video up for my Geneve 9640 (outputs 15kHz)that is connected via RGB to the GBS8200 then out to VGA.
I have built the board based with a NodeMcu ESP8266 D1 Mini and followed the Wiki for hardware setup and uploading of the code.
I am using the standard Sync Stripper circuit with the LM1881
[i found this project last week and it interested me to be able to try and clean my video up for my Geneve 9640 (outputs 15kHz)that is connected via RGB to the GBS8200 then out to VGA.
I have built the board based with a NodeMcu ESP8266 D1 Mini and followed the Wiki for hardware setup and uploading of the code.
I am using the standard Sync Stripper circuit with the LM1881 as followed below:
http://etim.net.au/temp/forum/scart_cables/lm1881_datasheet_circuit.png
I am powering it with a USB cable for testing purposes.
However I get a complete blank screen. I switched the SDA and SCL lines just in case but no difference. Disable the GBSControl and it all works when it uses the internal GBS8200 firmware.
My serial monitor shows:
starting
(WiFi): still connecting..
Chip ID: 1A 1
G: 3B
R: 3B R: 3C R: 3D R: 3E R: 3F
B: 3B B: 3C B: 3D B: 3E B: 3F B: 40 B: 41
Scanning inputs for sources ...
(WiFi): STA mode connected; IP: 10.0.0.54
(WiFi): Access 'http://gbscontrol:80' or 'http://gbscontrol.local' (or device IP) in your browser
Activity detected, input: RGB
VSync: present
HSync: present
RGB/HV bypass
ADC offset: R:3F G:3B B:41
RGB/HV bypass on
Any clues?
Hi, I'm still tinkering with GBS and my PS2 console. What bother's me is that I can't get clean pixel perfect with NTSC preset but can do so with PAL by adjusting PLL divier and phase. It kinda looks like there's 2'nd level moire on top of the image as if it samples not 640 pixels but perhaps 512, although I can't see that in preset itself.
tomrev over at shmups:
Hi, rama. May I ask for support 1600x900 monitor?
It's probably not going to be nice for NTSC (next even scale is x960), but maybe okay for PAL (x864).
It does not work on my Pro Micro. Only the values in pins_arduino.h are authoritative.
Just recently noticed this after coming back to my Genesis after a while. The screen is now shifted down substantially by default such that the blue border in Sonic is showing, and shifting it back upward with the OSD actually causes vblank-stop to wrap past 0, which then causes active sync locking to jiggle the screen. I tracked it down to e300282, specifically this change:
- writeOneByte(0x37, 0x62);
+ // 0x37 has to be below the current average (real) hpw
+ // this also changes with different pll dividers (presets)
+ writeOneByte(0x37, 0x58);
Going back to 0x62 fixes it for me. I'll experiment with other values.
Hi not really an issue, but just tried this today with my v4 gbs, a wemos d1 mini and Amiga 1200. And wow the image is a lot better!
However I usually run workbench in the "Pal high res interlaced" and the stock gbs does an ok job of removing the flicker, except for a little flicker near the mouse pointer and a bit blurry text. But with gbs-control the image is super clear but flickering (interlaced), is there any way to get the crispness of gbs-control and the deinterlacing of the original?
This isn't so much an issue, as an attempt to share a finding. (Hopefully it helps you, ramapcsx2.)
I have a GBS-8220 that I used for a NTSC Amiga 2000, it works flawlessly with a sharp picture. When I purchased a PAL Amiga 600 I was hoping to use it for that as well. It didn't work, the picture was garbled, initially I thought that was because something was wrong with the Amiga 600 but Composite worked perfectly.
I then read about people having issues, and found this repository. I also had a couple GBS-8200's on order. When I tried one of them with the Amiga 600 it worked! (Picture is a little dark, bust that may be an adjustment).
So, I tried hooking the new GBS-8200 up to the Amiga 2000 and it DOES NOT WORK with NTSC Inputs.
From this observation, I suspect the GBS-82xx MAY set itself to PAL or NTSC at first power on or when it receives the first signal and store that in Flash.
Recent master versions have a lot of difficulty syncing with my NTSC SNES. There's a lot of stuttering as frames are missed. Eventually it stops updating the screen entirely.
This was introduced by b962fd9
Hi there...
Just did an update and try to save the settings but when I do select the slot it gives me:
saveUserPrefs: open file failure
and if I try to save it says that I need to select a slot first.
thanks once again
Thompson
Depending of monitor, result might be flickering image or no image at all ("no sync" osd)
Going from 1280x960, 1280x720, 1280x1024 to sync passthrough works, on one monitor at least.
Want to use this on a Starblade but the game uses a mirror to display to the user. My LCD has a diagnostic mode Mirror but it is the wrong axis. Any chance there is something in this units chipset that might help?
Would be great to have the sharpness line in the original firmware.
I've flashed the gbs-control code onto an Adafruit HUZZAH ESP8266 board and connected it to my v.4 GBS-8200 board (black buttons).
I'm using it to convert an RGBs signal from an Acorn BBC Micro, output to VGA for display on a 60Hz Dell LCD monitor.
I can adjust the gbs-control configuration using the web interface over WiFi to get a good picture. However, even if I save the configuration to custom preset slot, and leave that slot selected, the system defaults to the built-in 1280x960 preset on reset. I can then select the custom preset and it loads fine.
Am I correct that the selected custom slot should load by default on reset? This is the output from the board when resetting:
starting
(WiFi): IP: 192.168.1.110 Hostname: gbscontrol.local
userprefs open ok
preset preference = 2
frame time lock = 0
preset slot = 1
frame lock method = 0
auto gain = 0
scanlines = 0
component output = 0
deinterlacer mode = 0
line filter = 1
peaking = 1
pal force 60 = 1
i2c: E6
<reset>
Activity detected, input: RGBS/HV
Format change: <stable>
60Hz
(custom)
userprefs.txt opened
loading from preset slot 1: no preset file for this source
pal forced 60hz: apply vshift
post preset done (preset id: 1)
shift down, vlines: 34
SOG Lvl: 7
Manually selecting the relevant custom preset then gives this:
userprefs.txt opened
loading from preset slot 1: /preset_pal.1
post preset done (preset id: 1) (custom)
.shift down, vlines: 34
SOG Lvl: 7
Any help would be gratefully received. Thanks.
Hi,
connected and reconnected few times, changed esp8266 and still same problem.
Using amiga via composite pal and cant get any picture, at all. Without amiga, with composite, with rgb, without, no picture.
This is the output when composite is connected:
found: 138 getVideoMode: 0 input: 1 VS active HS active RGBHV bypass RGBHV: HS active low post preset done (preset id: EC) (custom) !!!!!!!!!!<reset>
I am having a hard time getting my AVR to accept a signal from the GBS over component video. It seems to only support 480i or 576i. Is there any change of converting a 240p signal to 480i?
But in any case: what a great project! :)
I'm using this on a CRT Monitor, at 640x480 60Hz generates scan lines but I cant enable that.
This would be nice to have. I tried the sequence of register writes suggested by the programming guide, but I haven't been able to get anything to show up. If you have any tips for getting it to work I can finish up the implementation I started.
It also displays a bright white line on the left border.
The right boost can be obtained if using another preset and then going to 640x480 and activating scanlines.
Hello again, I've been wondering if it is possible for GBS boards to clock pixels at such resolution so we can get seamless switch between 512/640px sources as these seem to get switched a lot while in game. @ramapcsx2 if you can point me at what registers to tinker with in 640px presets I'd be more than happy to try that myself :^)
This is a question about a CAP. For some reason am missing a cap here on C14 on the picture. This cap if between the controller and the buttons. I have another board here but I do not have a multi tester that measures CAPs to find out the value to install a new on the missing space. Can some with the proper tester help me on discovering the value of this cap??? I looked all over the place for the scheme of the board but I could not find it.
I know this has nothing to do with this project but this is the best place I found to ask. Or indicate a proper multimeter that I could use to test this, cause the smart tweezers that I found that could test this in $149 and up.
Thanks very much for ur help.
Thanks
T
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.