ramapcsx2 / gbs-control

GNU General Public License v3.0
779 stars 110 forks source link

Force PAL 50hz to 60hz doesn't do anything #237

Open Joshimuz opened 3 years ago

Joshimuz commented 3 years ago

Title says it all really, am I missing something?

I'm not the only one with this problem, after a quick search through the issues I found #155 which, while quite long winded, is basically the same problem I'm having. The GBS-C just continues to output at 50hz with this setting on even post restart as confirmed by both my TV and my OSSC. Just nothing changes when I toggle this setting on. Is there some kind of detection for PAL sources that isn't working? Not sure I can be bothered to post images and logs and stuff when #155 did the same thing and just got told "lol buy a display that works with 50hz".

If the setting doesn't work that's fine, it's free open source software I can't complain, but why have the setting? :D

gingerbeardman commented 3 years ago

Which version of the GBS-C are you using?

YoImLee commented 3 years ago

Do you have the clock generator board? I have it installed and the setting is ignored for me also. Not sure if it's intentional or not but I do think it's the culprit.

TimbleThimble commented 3 years ago

Any luck with solving this? Trying to get 1080p PAL PS2 output (which apparently can only be done with the 50 - 60hz toggle on) but doesn't seem to do anything. Passing GBS to OSSC reads 50hz still.

I also have clock gen.

kimmesantana commented 2 years ago

I have the exact same issue. Without external clock generator everything works fine, as soon as I enable the external clock generator the ForcePal60Hz Option doesn't work anymore. I can't get any mode to output 60Hz.

rabidgerry commented 2 years ago

I'm no expert but as far as I am aware when you install the clockgen mod, it simply outputs what it has coming in via input. So it it's receiving a 50hz signal it can only output a 50hz signal and the same would be if receiving a 60hz it can only output what it is given.

fabbrimichele commented 2 years ago

I have the same issue.

I am trying to output a PAL 50 Hz signal to VGA 60 Hz. Force PAL 50hz to 60hz works without the Si5351 installed but it's been ignored since I installed it.

(I like the old VGA monitor because it's 4:3 format) BTW the project is great, I am just wondering if the fix is doable or not.

fabbrimichele commented 2 years ago

Perhaps it wouldn't be too complicated to have a setting to disable the external clock generator from the UI.

fabbrimichele commented 2 years ago

I modified externalClockGenDetectPresence() to always set rto->extClockGenDetected = 0 regardless of the presence of the external clock generator and Force PAL 50hz to 60hz works again. It would be great to make it configurable.

fabbrimichele commented 2 years ago

I created a simple GIT patch that disable the External Clock Generator when Force PAL 50hz to 60hz is enabled:

From 35efd62e1675023c4324ca42ef4f78f0d3a49b83 Mon Sep 17 00:00:00 2001
From: Michele Fabbri <fabbrimichele75@gmail.com>
Date: Sun, 29 May 2022 20:44:30 +0200
Subject: [PATCH] [ISSUE-237] ignore ext clock generator when force PAL to 60
 is set

---
 gbs-control.ino | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/gbs-control.ino b/gbs-control.ino
index f3ab4a1..3c27e6b 100644
--- a/gbs-control.ino
+++ b/gbs-control.ino
@@ -469,6 +469,12 @@ void externalClockGenInitialize() {
 }

 void externalClockGenDetectPresence() {
+  // When externalClockGen is present forcing to 60 Hz does not work.
+  // So if the setting is enable ignore externalClockGen.
+  if (uopt->PalForce60 == 1) {
+    return;
+  }
+  
   const uint8_t siAddress = 0x60; // default Si5351 address 
   uint8_t retVal = 0;

-- 
2.25.1
ramapcsx2 commented 2 years ago

Hey, that's all great, but maybe you can step it up and try to make it an option in the UI? Is that doable for you? :)

fabbrimichele commented 2 years ago

@ramapcsx2 sure. I will try to make an option to disable the the external clock generator regardless of the PAL force to 60Hz option. It will take a bit because I am not familiar with the UI part.

ramapcsx2 commented 2 years ago

Of course. If it's too hard to add an extra option, you can still add the clock gen disable code to an existing one. Good luck! :)

fabbrimichele commented 2 years ago

I'm gonna try adding a new property :)

fabbrimichele commented 2 years ago

Hi @ramapcsx2 I implemented the new option for disabling the external clock generator on both side: UI and back end. I have local branch with the changes, should I create a git patch or should I create a pull request?

image

ramapcsx2 commented 2 years ago

Pull request would be great, thanks :)

fabbrimichele commented 2 years ago

@ramapcsx2 could you please give me the permission to push my branch?

ramapcsx2 commented 2 years ago

Ususally this goes via pull requests. You can do everything from the Github page. Does it work for you?

gingerbeardman commented 2 years ago

@fabbrimichele you should do like this:

  1. fork the project
  2. put your changes on the fork
  3. commit to your fork
  4. create Pull Request
fabbrimichele commented 2 years ago

I'm gonna try. Thank you @gingerbeardman

fabbrimichele commented 2 years ago

Hi @ramapcsx2 and @gingerbeardman I created the pull request: https://github.com/ramapcsx2/gbs-control/pull/334