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!
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.
Sony HitBit HB-F1 II – Power Supply Modifications
Whilst picking this up from a Hard-Off in DenDen Town, Osaka, I was told by the cashier that there was no power supply and that finding one would be a challenge. I wasn't too worried about this as using a 110v power supply in AU is just painful. Secondly, there seemed to be enough information on the internet to rig something together once I'd found time to do so back home.
So yeah, the power supply is a three-pin jack with AC 18v, DC 9v and Ground. This is confirmed on my unit by the voltage ratings inscribed on the base of the unit.
Finding an external supply with these two voltages would be an expensive task, so the better answer was to review the two links above to see what they did to convert. After a quick scan, it seemed that the AC voltage was used to create a -12v rail for the cartridge port and a +12v, which also was only for the cartridge port?. It seems that the MSX itself only needed the 9v DC, which it then also converted to 5v DC to run the entire system. Let's open'er'up! There are six screws under in the base that need removing. The lid will then lift off. The keyboard can then be removed, being gentle with the mylar ribbon cable.
You're then presented with the RF shielding. They've used a plastic-coated foil and it's quite soft! It's held down by screws around the bottom half, so find them all and remove them.
From here, it's the usual Sony-esque work of art. The PCB is so clean and tidy and the layout is precise. All the power paraphenalia is top-left and most of it will be redundant once we're finished with it. We're removing the power socket, so I went ahead and removed the motherboard from the case. There's 3 screws holding this down.
They went out of their way with the PCB graphic layer. They've actually drawn the connecting circuit lines on the underside of the board. There's no need to constantly flip it over if you're trying to trace a connection! There's also amazing information on pins of important ICs... and, for that note... DC sockets?
Seeing this written on the underside of the power plug threw me! Can I just supply the above voltages and get away with it? I won't need a complex supply for AC voltage if this is the case? I wired in the 12v line and, well, nothing came out! Hah. This seems to be a mis-print on the PCB? Those are NOT the voltages required.
So, I could go on about how I tested voltages in random locations and got some things going, whilst others stopped... and vice versa... but I wont, I'll just present the answer for this unit. You'll need a power supply that has +5v, +12v and -12v. Officially, you don't need the latter two if you're just using boring game cartridges. The unit only makes +12v and -12v to send to the cartridge port, and these are only used for "special" carts.. such as RS-232, etc.
Because I'm a perfectionist, I wanted to not 'downgrade' this machine... so I chose a Pico-ATX supply, as it had all the required supply voltages and an easy-to-use DC socket.
I de-soldered the ATX plug as it was just going to consume vital space inside the MSX.
On the MSX board, there's a large horizontal cable marked +/-12v. Desolder this from the left end and solder the appropriate wires to the associated supply voltages on the PicoATX.
Finally, there are two 7805 regulators that need to be removed. There's one that's bolted to the heatsink on the left and I de-soldered the wires from the mainboard. There's another nearby with a tiny heatsink on it that also needs to be removed.
With them both out, just flip the board and solder a wire into each of the OUT pins.
These need to be fed with 5v. I love how, even though the top regulator doesn't have the OUT pin described, that you can follow the traces easily from the IN of the lower regulator. The jumper wire, on the other side of the board, in the top-left of the image is drawn on this side of the board!
Once you've de-soldered the power socket, print out my personally-designed DC socket mount and use it to mount the DC socket to the board.
Finally, de-solder the power switch cable from both ends. Using one side of the power switch (it's DPST), connect one pin to ground and the other to PS_ON on the PicoATX.
Jam the lot back into the case.
When re-assembling, make sure to not screw the latches on the printer port. Try not to slice your fingers as you pinch them together and feed the board into the case.
Don't forget the two screws on the back of the case which hold the RCA socket and DC socket in place. These poor connectors get a lot of punishment. Before totally closing up this machine, I threw all the parts I removed into a zip-lock bag and stuck it under the lid. You never know, someone in the future might want to restore it to original condition?
And then it was done! Test? Of course...
Unfortunately, this unit doesn't have cursor keys! It's only got the gamepad directional arrows, and so I can't even play my favourite game.
Atari 7800 Controller Button Replacement
This Atari 7800 Gamepad came to me with one of the plastic buttons missing. They're held into the shell via two 2x2mm lugs and they must have perished after decades of abuse.
Without waiting around, I popped open the case and measured up the surviving button.
The button has a slight gradient on top, which I'm sure my 3D printer will struggle with...
And underneath there's a small tab to press on the rubber membrane inside the controller. Anyway, straight into Tinkercad I went to design a replacement.
I didn't even bother with the tab on the base... it's all just flat. The rubber membrane in the controller has a flat top anyway.
It printed OK! Could do with a sand, but I didn't have any wet-dry.
Not the prettiest... but it works perfectly! Here's the STL.
Python: Close Files If You’re Going To Open Them
I've been trying to archive some videos off Youtube lately, using yt-dlp. It's an amazing tool, but my target files have been episodes in parts. Usually four parts and Plex really hates jogging through... so what to do? Combine the files together with ffmpeg. The code was meant to be pretty simple (and 98% of it was written by ChatGPT... whoops)...
def concat_episodes(episode_name, concat_files): plfile = "file_list.txt" f = open(plfile, "w", encoding="utf-8") for filename in concat_files: f.write("file '" + filename + "'\r\n") concat_command = f"ffmpeg -stats -safe 0 -f concat -i {plfile} -c copy '{episode_name}'" print(concat_command) subprocess.run(concat_command, shell=True)
But no amount of wrangling would get ffmpeg to work. The concat filter kept throwing: Invalid data found when processing input. No amount of "-safe 0", relative paths or absolute paths worked! No permissions... no cwds or shell arguments. If I let the python script drop to the shell, then the same line pasted (since I printed it out) worked perfectly fine! What the?
OH RIGHT. I missed the memo that I should be closing a file so that it lands on disk... prior to trying to open it in another process!:
def concat_episodes(episode_name, concat_files): plfile = "file_list.txt" f = open(plfile, "w", encoding="utf-8") for filename in concat_files: f.write("file '" + filename + "'\r\n") f.close() concat_command = f"ffmpeg -stats -safe 0 -f concat -i {plfile} -c copy '{episode_name}'" print(concat_command) subprocess.run(concat_command, shell=True)
The file was still open and not flushed to disk... so ffmpeg would always open an empty file! This has been a public service announcement.
Random HDMI Capture Cards
I can't believe I'm calling these cards retro, but they are! They're all early 00s and the drivers are only for Windows XP and Vista? How random... I had no idea there were cheap PCI-E HDMI Capture cards back then. I would not have had any reason for them back then, and hardly do today, but I'd picked them up in a Hard Off somewhere across Japan for 1$ each and thought I should finally test them out.
DRECAP DC-HC1
First up is a DRECAP DC-HC1. It's tiny and came with a low-profile case bracket. I unscrewed the bracket and loosely placed it in my machine, making sure to NOT move the HDMI cable once connected.
Whilst looking for drivers... actually, prior to that, whilst trying to ID the card (there are no valid serial numbers or other identifying marks), I found other cards that also seemed to be identical. I then stumbled across this blog post which indicated that the base card was a Timeleak HD72A and that the drivers could be found here.
With the correct drivers installed, everything worked nicely!
KEIAN DM626 H3
The second card was identified via Yodobashi Camera product listing! How cool. Out of stock! Knowing the product name, I then went googling for drivers. It turns out the original site is long gone and, since their support page had ugly javascript, webarchive can't help to find drivers.
I stumbled across this blog post with great info on installation. It turns out you can use the Monster X3A drivers here for this card. The X3A only has one port, so it seems we'll only use the closest port to the motherboard? ... it actually turned out that any port on the card worked! Unfortunately, sound didn't.
Mucking around with Composite Signals
As that I couldn't get audio from the second card, I went with using the bracket of it on the first card! I wasn't ready to have a loose card hanging around inside my PC's case.
The HDMI port, by total fluke, lined up 98% and cables were securely connected. From there, I purchased this little beast for AU12$ on eBay...
And you know what? It works nicely! Here's a Sega Master System II hooked up. I've got a switch to toggle the PAL/NTSC pin, so when you see (and hear) it switch from PAL 60 to PAL you'll know why!
Nice... No more mucking around with other TVs... I can now use this to continue the long chain of Atari and Sega mods/repairs.
Christmas ’94, Tandy-Style!
This turned up on eBay and I couldn't resist! Recently I'd found stamp books and Australia Philotelic Assoc orders forms, amongst Lego Catalogue order forms (unfulfilled, I must admit!), but nothing from Tandy. I saw this for sale and new it needed to be preserved!
SALE ENDS CHRISTMAS EVE, 1994.
LocalTalk Ethernet Bridge
I've tried it before, back then resorting to a hardware solution, but this time I wanted to get Apple's software LocalTalk Bridge working. The setup was meant to be simple... I had RetroNAS running in VirtualBox on my actual NAS, ethernet-over-power to the dinner table to a Centris 660AV, which in turn was connected to a Macintosh LC via LocalTalk.
Appletalk was configured and working, but for some reason I'd chosen to use the Modem Port on both machines. I then installed LocalTalk Bridge 2.1 and, initially, nothing worked ... Chooser just locked up and didn't show anything.
Anyway, the short answer is that LocalTalk Bridge ONLY works with the printer port. Don't try and use the Modem Port! I suppose the icon says it all? Anyway, I could've avoided the effort if I'd just read a proper tutorial like this one from retro apple computing.
Apple IIe – Booting A Z80 Microsoft Softcard Clone
So this card was part of the recent bundle'o'Mac and I honestly thought it was just a lowly 80-column text module. Turns out it's a lot more than that! Sure, it's a clone, but it happens to be a Z-80 SoftCard, based on the Microsoft Softcard.
It seems that you need to slap it in slot 4 or 7 and boot relevant software... let's give it a go!
Hardware Installation
Before we get near the machine, let's reset the card to factory default! Make sure all four dipswitches are in the OFF position, as per the photo above. Just for fun, here's the meaning of the four switches, in case you need to tinker:
Switch | Function when ON |
---|---|
1-1 | Disable address translation. |
1-2 | Higher priority DMA devices cause SoftCard to relinquish bus. |
1-3 | Pass NMI line to Z80. |
1-4 | Pass IRQ line to Z80. |
Finally, don't forget to clean the edge connector with isopropyl alcohol, just to make sure there'll be no issues with conductivity once inserted.
Next, we need to get to the innards of your computer. Fortunately, all machines in the Apple II line-up make this part really easy. Make sure everything is turned off and remove the top cover from your machine. Regardless of your model, it'll be two clips at the rear of the top panel.
We're going to choose Slot 4 for this card...
It's the slot directly to the right of the 'Auxiliary Slot' and the card only fits one way. Once inserted, you can either leave the case open so we can see the LED turn on when the card is alive... or work in a clean environment and close everything up!
Software
Before booting up, I'd recommend a full review of the CP/M reference. As with everything Apple II, we'll need a boot disk to get started. For today's post, we'll be using Microsoft Softcard CP/M Disk #1 in Drive 1. Thanks to this machine having two floppy drives, we can also insert whatever-we-want-to-run in Drive 2.
The CPM disks were written using ADTPro via serial from my Windows 11 laptop. I then slapped the first one in the first drive and cold-restarted the machine.
It was a beautiful site, albeit a little underwhelming. I initially had the case off and watched the monitor whilst the unit (very quickly) booted. I then looked back into the chassis of the Apple IIe and the LED on the Z80 board was dark... was it even used? I mean, the fact that CP/M was booted, and displaying on the monitor, should've proven that it did work... but no LED made me sad. I then typed dir...
And, yey! We're in DOS... no more weird Apple OS. Second yey was that... out of the corner of my eye, I saw the LED on the Z80 card flicker! So it only illuminates when it's being used? I rebooted the machine, watching the LED this time, and saw that this was the case: the LED flickered along nicely as CP/M booted.
We're up and running, what next?
Someone on Reddit already asked the question and a great answer was provided: ZORK! Can we boot from Drive A: and play from Drive B:?
Ooops... sorry, that was loaded from A:\. Here's a sample from B:\...
Or write a novel like George on WordStar 4.0. Don't forget to also try and recall your Douglas Adams Knowledge and boot up The Hitchhikers Guide to the Galaxy (1984, Infocom).
It works!
Apple IIe – Capacitors and Games!
This unit came in a recently-acquired bunch of Apple memorabilia. I was actually meant to be purchasing a Mac LC (I'll post on that later, when I'm happy with the unit... it's being a pest), but the seller mentioned that he "had some other stuff", and I happily offered bullion which was happily accepted. I was lucky enough to also receive an A2M2010P monitor, which quickly cooked itself after I applied power.
The shot above is the end result... there was quite a bit of work to get to that point!
Capacitors
I replaced all capacitors in the PSU of the Apple IIe. I know some say "if it ain't obviously broke/damaged, then don't replace", but I wanted to be able to slap a sticker on the PSU saying "totally recapped in 2023". Which I did...
With these cleaned up, the voltages were optimal. Note that there are two RIFA capacitors that REALLY need to be replaced.
A2M2010P Monitor
This green monocrome beast needed love. I was stupid enough at the start to just power it up and, although it worked for 5 minutes, one of the RIFA capacitors let out its magic smoke pretty quickly.
All were replaced and the screen was restored to its former glory.
65C02 Enabled Keyboard Light?
Here I was thinking the light labelled 65C02 on the bottom-left of the keyboard was some kind of indicator that the CPU was in some turbo mode? It's not. It's a bloody power LED and mine was dark! It's a bit of a hassle to get to: all of the base screws, lift the shell, 4 screws from the keyboard and you're there.
The LED is encased and should actually be removable with a good tug. It's actually seated in two pipes, which are soldered into the PCB. Unfortunately, one of the legs was totally fused in, so I de-soldered the lot.
The LED unit must have had a resistor in series as, when I initially soldered a LED direct, the current was way too strong! Instead I soldered a 470ohm resistor in series and got some illumination. I'd probably recommend a 330ohm, as the 470ohm is a little dull. It'll totally depend on your LED though. I should've also checked the supply voltage, but I assume it's 5v.
Getting Data Onto It!
I love it when my own articles come up when I'm trying to get something done. It seems that I've used ADTPro before with an Apple IIc to bootstrap and write floppy images. This unit didn't have serial, so I had to go another way and load images via the cassette port. All I needed was something that could play audio from Apple ][ Disk Server via a standard 3.5mm audio cable.
The instructions were simple. Boot the machine with no disks inserted, or no disk controller at all, and type LOAD at the prompt. Hit play on the audio device and watch the magic. The caveats? Make sure you plug the cable into the correct port. The correct port is the one right next ot the joystick port, where the arrow is pointing out of the little cassette tape! I may have spent a little too much time reviewing schematics and components on the board... wondering why there was nothing happening... (I had it plugged into the wrong port...)
Secondly, don't use a shitty audio device. My phone couldn't play the audio files loud enough. Neither could a Dell Inspiron 910. Finally my GPD Win Max 2 blasted the audio out and a disk was written! Many actually. If your audio is too low then you'll either get "Err", "ErrErr", "Error", "CHKSUM ERROR" or "Base 0x9xxx yada yada" errors... All of these mean MORE VOLUME PLEASE.
Which Games?
There's plenty of sites that think they have the best list of games on earth. I went for randoms! Bubble Bobble is a hilarious port... terrible really!
Price of Persia is fantastic... the motion is so smooth and the soundtrack is great.
I must admit that I was very impressed with the floppy drives that came with the bundle. The slimline black unit needed to warm up a bit, but operated perfectly after it got itself seeking. The apple-branded hulk just worked!