New .iso images are up, 32/64 bit, should hopefully have more of a chance working with PAL TV's. Curious if the framebuffer shows up, either either with the default CGA option or possibly the PAL option if it doesn't. Also if X Windows works with the modeline it'll use, else I may need to make a different modeline for PAL TV's.
Thankyou bitbytebit.
I realised now that the original issue with the triple screen is because the modes are not set properly. I found this out when I tried to boot normally. I have to change to a lrmc -pal mode of some sort to get a clear screen on the TV. Using the PAL option from the LiveCD doesn't work once X starts but it is ok before that when it shows the command outputs as it's installing/running or if I switch to a terminal screen.
The 768 x 576 x 50i is being used in the terminal but not in X for some reason. I can set that using lrmc values and adding to xrandr after I boot normally, but I can't do this from the LiveCD as there is no terminal window available.
Going in to Wahcade and selecting a non-arcade system and choosing a game in there will change the resolution on the TV and sometimes it becomes readable but other times it breaks. I couldn't find any resolutions in the arcade section which changed the TV resolution (there are no games linked to the titles, don't know if that makes a difference).
I tried to run the ISO to boot from a USB stick and it would not work because it couldn't get past the GRUB menu, like the file references were mixed up and it couldn't find squashfs. I don't know if that's an issue with how I installed it on the USB stick or if that is a problem within the LiveCD code. It would be good to not have to burn a CD everytime to test a new version of the ISO.
Interesting, that is good that the boot up and DRM stuff works, it means I just have to setup the first X Windows startup config used to configure using the PAL definition. I didn't do that in this version, I wanted to see if the generic modeline worked but it seems it doesn't. The main reason I avoided it is there is a bit of tricky stuff involved with knowing which boot option was chosen, but seems that will be necessary and not terribly hard (just seemed a bit messy if not necessary). Thanks so much for testing this, definitely interesting and hopefully next version if I have X startup up using the PAL definitions it might just act right I hope (hopefully then my switchres configuration for PAL settings are correct to produce modelines that work right on the TV for all games, that has not been tested).
Yeah the live cd thing is a start, I'm wanting to get it working fully then look at the way to have an installation option too. The trick with that is the live CD build I do basically specifies the system to use a liveCD and won't work any other way without reversing that. So I'll have to go through and find all the differences and see how to reverse them, not sure if it'll just be a simple thing and able to copy the live CD and run a few scripts or it'll be a whole other build necessary. I'm sure it'll eventually grow into a full installation CD too, since Gentoo can do that from a live CD, I just want make sure to keep it as small of iso as possible and avoid downloading too much extra stuff and compiling it which is how Gentoo mostly works usually. Would rather have a small binary archive to decompress into the / root directory and transform the installation into a normal one from a liveCD one.
Might be later tonight I think, or tomorrow, since waiting on reports from another person to see how it goes for certain Arcade monitors and can hopefully add any fixes needed there too if there's issues. It's actually very close though it sounds like in your case, I just need to put some checking and run the xorg.conf creation with pal as the argument instead of generic and if switchres likes the modelines we are set.
Here's a something to try though, might be a way to get it working...
When booted up into X, where you can't see it, push Ctl-Alt-F2
You should then be at the second console prompt (left that open to allow this type of thing, seems it's needed

).
type `killall startup.pl` about 3-4 times till it says it can't find anything
push Ctl-Alt-F1 and push Ctl-C a few times and enter till it's a command prompt
Then type the following commands:
rm -rf /root/setup_done
rm -rf /home/arcade/.gentooarcade/
rm -rf /home/arcade/arcade.orig
After that, you need to patch it, I just added what should work to support checking the kernel command prompt for
which monitor type exactly was specified. If you put this patch on a usb stick, and mount that, suspect you'll be able
to get it onto the system and of course after this is done and your home directory is a real partition then the setup
should be saved even though the boot CD won't have these changes permanently (only ran when no home directory is
found with the previous configuration on it).
basically go into / and type `cat /mnt/usbstick/this.diff | patch -p0` or -p1 if that doesn't work (think it'd be -p0).
diff --git a/root/create_xorg-dyn.pl b/root/create_xorg-dyn.pl
index f2b9d8f..04b6739 100755
--- a/root/create_xorg-dyn.pl
+++ b/root/create_xorg-dyn.pl
@@ -10,15 +10,15 @@ print "# $monitor Monitor configuration\n\n";
my $hfreq_range = "";
my $vfreq_range = "";
-if ($monitor eq 'cga' || $monitor eq 'generic') {
- $hfreq_range = "15-16.6";
- $vfreq_range = "49.5-65";
-} elsif($monitor eq 'd9800' || $monitor eq 'd9200') {
+if($monitor eq 'd9800' || $monitor eq 'd9200') {
$hfreq_range = "15.1-38.5";
$vfreq_range = "40-80";
} elsif($monitor eq 'h9110') {
$hfreq_range = "15.625-16.670";
$vfreq_range = "49.5-65";
+} elsif($monitor ne 'multi') {
+ $hfreq_range = "15-16.6";
+ $vfreq_range = "49.5-65";
}
`Xorg -configure 2>&1 >/dev/null`;
diff --git a/root/create_xorg.pl b/root/create_xorg.pl
index 43ad522..f54838e 100755
--- a/root/create_xorg.pl
+++ b/root/create_xorg.pl
@@ -29,16 +29,16 @@ $PCIID =~ s/\./:/g;
my $hfreq_range = "";
my $vfreq_range = "";
-if ($monitor eq 'cga' || $monitor eq 'generic') {
- $hfreq_range = "15-16";
- $vfreq_range = "49.5-65";
-} elsif($monitor eq 'd9800' || $monitor eq 'd9200') {
+if($monitor eq 'd9800' || $monitor eq 'd9200') {
$hfreq_range = "15.1-38.5";
$vfreq_range = "40-80";
} elsif($monitor eq 'h9110') {
$hfreq_range = "15.625-16.670";
$vfreq_range = "49.5-65";
-}
+} elsif ($monitor ne 'multi') {
+ $hfreq_range = "15-16";
+ $vfreq_range = "49.5-65";
+}
my @newfile = `cat /root/xorg.conf-TEMPLATE`;
my $in_monitor = 0;
diff --git a/root/startup.pl b/root/startup.pl
index 15ee3d7..d04a0a6 100755
--- a/root/startup.pl
+++ b/root/startup.pl
@@ -85,12 +85,34 @@ if (! -d "/home/arcade/$CFG_DIR") {
# Check if first setup has been done
my $start_x = 0;
if (! -e "/root/setup_done" && $tty =~ /\/dev\/tty1/ && $home eq '') {
- my $montype = "multi";
- my $cmdline = `cat /proc/cmdline`;
- chomp($cmdline);
- if ($cmdline =~ /\svideo=\d+x\d+.*c/) {
- $montype = "generic";
- }
+ my $montype = "multi";
+ my $cmdline = `cat /proc/cmdline`;
+ chomp($cmdline);
+ if ($cmdline =~ /\svideo=.*\d+x\d+c/) {
+ $montype = "generic";
+ my (@ca) = split(/\s+/, $cmdline);
+ my $vline = "";
+ foreach(@ca) {
+ my $line = $_;
+ chomp($line);
+ if ($line =~ /video/) {
+ $vline = $line;
+ }
+ }
+ my ($v, $wh) = split(/=/, $vline);
+ my ($j, $k) = split(/:/, $wh);
+ if ($k ne '') {
+ $wh = $k;
+ }
+ $wh =~ s/x/_/g;
+ $wh =~ s/[a-zA-Z]//g;
+ my ($w, $h) = split(/_/, $wh);
+ if ($w == 720 && $h == 480) {
+ $montype = "ntsc";
+ } elsif ($w == 768 && $h == 576) {
+ $montype = "pal";
+ }
+ }
# No configuration yet
setup_monitor($montype);
system("rm -f .xinitrc");
Ok, so all that is done, scripts patched and those directories and files removed. Then you just type 'exit' at the
root prompt and should then startup X again with the PAL definitions in xorg.conf hopefully.
I'll get that onto the next liveCD, so either play around trying this or it should be all up in a day or so, but would be interesting for you to test it this way to see since it'll definitely save time if there's still an issue with it like this.