Subscribe via RSS
11Apr/240

PC-98 – Window Accelerators

Thanks to the complexity of Kanji characters, early Japanese 'DOS' machines needed high-resolution text displays. This requirement resulted in the PC-98's 640x400 standard console mode. The video cards to run this were purposely-built and were never really meant to run Windows.

Due to these limitations, companies started coming out with "Window Accelerators" which provided a secondary video device, of which could produce much higher resolutions at higher colour depths. I happened to get my hands on an IO-DATA GA-1280A-2, capable of 1280x1024 @ 256 colours.

Being a secondary video device, these cards require a passthrough cable from the primary machine video output to their 'input' port. When the machine is displaying standard PC-98 graphics, accelerators will route this output straight to the monitor. Once the card is initialised, you'll hear the internal relays 'click' and video will be displayed from the card's internal ram buffer, which specific software is now sending the graphical data to.

Unfortuantely, my specimen came as-is with no cable... so a trip was made to Jaycar for a male and female set of ribbon-crimp IDC 15-pin plugs.

The card was mounted in the machine and the wiring was hooked up...

With no drivers, the card will just pass the standard video through. This is what happened until I installed the drivers for DOS and Windows 3.1. And then? Reboot... a beautiful "CLICK" from the relay on the card and...

Windows 3.1 at a ridiculous resolution.

Does it play Doom?

By default, a PC-9801 can't play doom with it's in-built EGC video card. The settings only give you the following options:

And yeah, GA-1280* is there and it works perfectly.. not even needing other drivers! Well. It runs terribly on the PC-9801VX, even with the 486 Upgrade. The shots above were taken with the card installed in my newly-acquired FC-9801K with 486-Overdrive processor and Doom runs nicely!

Filed under: Retro No Comments
7Apr/240

PlayStation 2 – Linux And VGA

Back in University, our fourth year project was a Billiards game on the PlayStation 2. I still don't know how we wrangled making games as an educational experience, but it was fun nonetheless. We used PS2 Dev Kits that came with a linux distro, mouse and keyboard. There was also a VGA adapter which only worked with sync-on-green monitors and I specifically remember having to make a lot of desk space for the 21" Sony Trinitron. Since I'd been mucking around with the 'fake' HDD adapters for the old PS2s recently, it came to me that I should try install Linux and get VGA-out going... turns out it's not as easy as one might think!

Third-Party HDD Adapters Won't Work

If you've got a SATA adapter by PPH, or something similar, and the ethernet port is covered, or totally missing, then you're out of luck. The Linux distributions I've tried require the Original Sony HDD Adapters (or one of the original clones that HAD ethernet) and will just freeze up and stuggle if you try anything else.

Fortunately, I'd secured one for AU5$ from a Hard-Off somewhere in the bowels of Japan. Currently they're going for AU50$ on eBay AU, or ~AU20$ on Yahoo Auctions Japan.

Free MCBoot As A Bootloader

You'll need Free MCBoot installed on a memory card, unless your PS2 is already physically modded. Some versions of the PS2 work with a simple "DVD" method to install Free MCBoot and you can follow these instructions if your that happens to be the case.

I disregarded the warnings and tried to use the ISO that lined up with my 5000x version, as per the version info:

It threw the expected error...

The alternative method is to make the HDD bootable to, in turn, make the Memory Card bootable. It's all a little chicken-and-egg, but it worked in the end. I downloaded the FHDB installer 1.966 and used the HDD Raw Copy Tool to flash the IMG from the archive over the HDD I indended to use in the PS2.

This disk was connected to my PC via a USB adapter to do so. Note that I was using a blank HDD here... don't use a drive with precious data! Slap the freshly formatted HDD in your PS2 and boot it up. At the same time, copy the guts of this zip file to a folder on a USB key, as we want to run the installer to get the software installed onto a Memory Card. On the PS2, scroll down to uLE/wLE and navigate to MASS and then the folder you used above. Select the installer and hit the circle button.

After it's done, shut the unit down and unplug the HDD. Reboot with just the memory card in to make sure that it works. From here plug the HDD back into your PC and format it with WinHIIP so that it wont try to boot from the HDD again!

Linux Live DVD

You'll find a miriad of Linux Live DVDs here. We'll go with Version 3. You'll then find a huge list of ISOs to choose from. We'll take the PAL Large No Modchip. Download and burn it to a DVD. Whilst that's happening, grab Kernel Loader 3.0 and copy it to a USB drive. We'll need to copy this to the Memory Card...

Disregard the jump to the kloader folder. In fact, disregard that that folder even exists. Just use the R1 shoulder button and paste the kloader file in the root of MC0. Once it's done... insert the DVD and run the loader!

I was joking... don't insert it yet. As you can see above, they've added a DVD video folder with a static image to tell you that the DVD ain't bootable... thanks for the warning! So, boot into Free MC Boot, scroll down to the Loader, open it and, whilst it's opening, put the DVD back in. You can then select the kernel loader from the memory card and go for gold.

We're up, and we can ping! The experience is as slow as molasses from the DVD and sound doesn't work... but let's get installed first.

Installing to the HDD

There's a great tutorial here that I followed to get this done. Download INITRD.GZ, VMLINUX.GZ, ps2fdisk and fstab and send them to a USB Key. Boot into the Linux Live DVD and open xterm.

As above, insert the USB key into the PS2 and mount SDA1 in Linux. Copy ps2fdisk from the SDA1 to a usable folder and partition the disk. Note that you cannot use the already-included ps2fdisk from the Live DVD.. it just wrecks your HDD setup. Meanwhile, since we're using a memory card to bootstrap the HDD, we can wipe the entire HDD and use the lot for our Linux partitions. Just make sure to not try and fill the entire disk with the second partition as you'll get out-of-space errors. Next, mount it and copy everything over. Finally, copy FSTAB from the USB key to the hdd's /etc/ folder. Once all that's done... reboot. It's now time to configure kloader!

Finally, reboot and copy INITRD and VMLINUX to your Memory card.

As above, reset the configuration and then set the Ramdisk, kernel and root partition. Save the configuration the Memory card and boot. Excuse the shitty video quality as my internal HDMI capture card stopped working and I had to switch to a crappy USB HDMI capture device. Also notice how much quicker that boot was when compared to the DVD boot above. And yeah, still no sound. Let's fix that...

Getting Sound Going...

Seems the 'drivers' are IRX files and we can borrow them from game discs. Unfortuantely, the newest versions don't work, so use these files: LIBSD.IRX and SDRDRV.IRX. Copy them to your USB Thumb drive and insert it.

Follow the above steps to copy them to a folder called kloader on MC0.

Next open up kloader and configure the modules. Choose the configuration rows with upper-case file-names, just because. Sound! Network! We're up! But the video quality is awful...

VGA Output

So, officially, the PS2 outputs R+Sync-On-G+B. This means that your monitor needs to understand that the green channel is a combination of video synchronisation and green data. If it doesn't then you won't get a picture. Fortunately, and since this whole topic is already 20 years old, there's numerous people online who have already solved the problem for us: use an LM1881N sync-splitter.

                      LM1881(M or N)
                         ========       
 VGA PIN 13   -----------|1    8|-----  +5v PS2 PIN 10
                         |      |
 VGA PIN  2  --\   0.1uF |      |
 PS2 PIN 12  --+----||---|2    7|    
                         |      |          ____ 680 kOhm Resistor 
                         |      |    /----|____|----\
 VGA PIN 14  ------------|3    6|----|              |-----\
                         |      |    \------||------/     |
 PS2 PIN  8 --+----------|4    5|          0.1uF          |
 VGA PIN  6 --|          ========                         |
 VGA PIN  7 --|                                           |
 VGA PIN  8 --+-------------------------------------------/ (GROUND)

PS2 PIN 11 ------------- VGA PIN 1 (RED)
PS2 PIN  9 ------------- VGA PIN 3 (BLUE)

PS2 PIN  4  -- AUDIO RIGHT                                      PS2 PIN  7  -- SVIDEO CHROMA
PS2 PIN  3  -- AUDIO RIGHT GROUND                               PS2 PIN  5  -- SVIDEO LUMA
PS2 PIN  2  -- AUDIO  LEFT                                      PS2 PIN  8  -- SVIDEO GROUND
PS2 PIN  1  -- AUDIO  LEFT GROUND                       (Share PIN 8 with GROUND in above circuit)

PS2 PIN  6  -- COMPOSITE VIDEO OUTPUT

So, it's all pretty self-explanatory above. The PS2 AV port provides +5v, so I've used that... regardless of everyone saying to use an external source? I've also used a 680kohm resistor as the original 585k was nowhere to be found. Finally, tie all the video grounds together, leaving the audio grounds separate. Also note that PS2 Pin 1 is left-most as you're looking at the PS2.

I built up a crappy prototype and tested it out... haphazardly...

And it worked beautifully! So I mounted it a little more safely in a crappy ziffy box from Jaycar...

And gave it a spin on a real monitor...

And yes, your success may vary. You'll need to configure two variables in the boot loader and if you only configure X and not the console, you'll get the distortion as above.

Oh yeah, to configure VGA output, just press R2 when you're at the kernel boot loader and it'll cycle through the video modes. Then you just need to edit your kernel parameters to include the following: crtmode=vesa0,60 xmode=VESA,1024x768x24. Note that you may have to manually create an xmode config file in /etc/ with the contents VESA,1024x768x24 if X doesn't listen to the command line argument.

Success! I've started productionising the adapter, so tell me if anyone wants one!

Still waiting for a few parts.

What's next?

Of course, after doing all this, I find there's a newer version of Gentoo for the PS2? Learn how to build a bootable USB here. Unfortunately, the newer version doesn't support sound?.

I wonder if I can build OTTD, like I did on the PowerCenter 180.

Filed under: Retro No Comments