Sega Mega Drive – Composite + Region-Free
On a total tagent from recent Amiga stuff, I found this in a box whilst I was moving house. I'd totally forgotten that I'd picked it up from a flea market prior to the Christmas Trip overseas.
I grew up a Nintendo-kiddie with Super Mario Bros and Duck Hunt, so the likes of California Games (oops, that's master-system-vintage) and Sonic were a weird adventure whenever I went to friend's houses. This unit arrived slightly scratched-up, but in perfect working condition. It came with a power pack and RF switch, but I wanted Composite output... so I started googlin' for hacks. Then I looked at the back of the machine and realised it had an 8-pin DIN for A/V output. A quick search found off-the-shelf cables, as I didn't have a properly degree'd DIN plug available that'd fit the socket. Your standard 8-pin DIN has the top two outer pins at a different degree and therefore wont fit.
Instead I had to make one from a 5-pin DIN as it turns out the pinout of the A/V Output port has all the pins I'll need at 3 o'clock, 6 o'clock and 9'oclock!
I purchased a 5-pin DIN port from Jaycar and hacked a standard stereo composite RCA video cable in half. From there, I joined ground together and soldered that to pin 3 on the 5-pin DIN. I then twisted L+R together, as this unit produced MONO sound and soldered that to the left-most pin, when looking at the back of the plug. Finally, the central wire from the yellow video plug was soldered to the right-most pin.
From here, the unit worked perfectly! Of course, to test I only had one game...
To make this fit, I had to actually gently file the cartridge slot.
Turns out the japanese-release games are square, whereas the Australian (and probably elsewhere) release carts have 2 rounded corners. After making it fit, the game just worked... although it might play slightly faster on a 60hz clock!
Zorro II Cards On The Amiga 500
The next build for my Amiga 500 was a Zorro II Card Slot Adapter. This unit uses the expansion slot on the left-hand side of the Amiga (just like the external IDE adapter) and provides a vertical slot to plug your Zorro II card into. It also has a standard floppy power plug and circuitry to choose this supply if provided, otherwise use power from the Amiga itself.
The collation of parts was pretty straight-forward, and I only made one mistake! The relays I'd purchased were much too large for the PCB holes.
So I used a relay I had on hand. It didn't work once soldered and tested... it was rated for a 24-volt input! So I went ahead and re-ordered the correct part.
Next up, I used a spare molex power supply plug to make powering the card a little easier...
Final notes when building... after you've soldered nearly 200 joints, go over them all with a magnifying glass...
It's really easy to miss a soldered join when the plates on the PCB are so shiny... also when the lighting above is LED and the reflections of the melted solder look more 3D than they really are! Fully inspect each joint, otherwise you'll get grey screens, white screens and even half-booting!
The shot above shows one of two pins that I failed to correctly solder, and note that it shows it after I found it and slightly bent the pin to test that it wasn't actually making contact! The actual hardware symptom was that, whilst booting, the drives would be found, Workbench would start booting and then it'd pause at the 'wait timeout' in the StartupII boot script. I assume there's some interrupt or IO signal that's meant to come over that pin... amazing how random things are when signals aren't correct.
Finally, the board was assembled and ready to test!
MegaMicro Technologies: SCRAM 2000
SCRAM 2000 is a SCSI for A2000, A3000, A4000. And now also the Amiga 500! This board features a board-mounted 3.5" SCSI hard drive, an external DB-25 SCSI port and the ability to host a total of 8mb RAM.
The card came without a SCSI drive, so I grabbed a 40mb Seagate SCSI (from Apple!) from my box'o'crap, set the ID to 0 and mounted it to the card. Note that the spacing is very tight for the data cable, so make sure the wires are leading away from the card when you plug them in...
After a lot of toying around, the disk was mounted, formatting and even auto-booting on my KS1.3 Amiga! I used a boot disk instead for the KS1.2 Amiga. Note that the install disk can be used as both. Grab it from here and use ScrapPrep to get your drive in order. Then you just need to copy over the Workbench disks and make sure the boot priority is the highest amongst all drives connected! Check out this post for more details on bootable drives (disregard that it's about IDE drives!)
A fun note on this card... it would've actually come in kit-form to the original purchaser back in the late 80s. When that user assembled it, they put the three status LEDs in backwards. I was wondering, whilst debugging things and trying to work out why my machine wouldn't load, why the LEDs just didn't light whatsoever. I assumed it was because I was using a KS1.2 machine and there was no config, etc.... but it turns out that the LEDs were actually in wrong. I fixed this and also rigged up a LED to use on the activity LED headers... a much quicker way to test things like this!
Next trick was to upgrade the RAM on-board. The board uses ZIPs and this was my first time encountering them. Just think of an IC standing on one side, with all pins out the bottom edge. They're interleaved and you must make sure that they line up correctly before inserting them!
As is my usual rush.... I happened to put the last chip in backwards. With the card inserted, the machine wouldn't respond at all... no power light, nothing! I had only ordered 16 chips, so I was very fortunate that everything 'just-worked' when I swapped it around.
Finally, you'll note that the external SCSI port was nicely corroded on the board I recieved. A quick trip to Jaycar saw the purchase of a replacement part and, after a little destruction, the new port was soldered in place.
After this, I had a perfectly bootable SCSI A500 system with 8mb of Fast RAM!
GVP HC+8 Series II, Revision 2 Zorro II SCSI Card
This card happens to be very similar to the SCRAM above. It also hosts 8MB of RAM and a SCSI controller with an external SCSI port. The main difference here is that drive is mounted the opposite way around and SIMM RAM is used.
This first thing I did was get the RAM situation sorted out. The card came with 2 SIMMs installed and the auction quoted that this was 2MB of RAM. I threw the card in the system and the top line of WorkBench 1.3 indicated just under 3MB as the A500 has 512kb internal and the was also a 512kb expansion card in the trapdoor slot. With this, I tried to do things and kept getting the crash below...
I thought I'd bought a faulty card until I pulled the two SIMMs out and realised that they were only 256kb each! The Amiga was trying to get to the other 1.5mb of RAM and there was physically nothing installed... no wonder it crashed. I quickly populated this with 8 1MB RAM SIMMs and the machine soaked them all up, testing them out perfectly.
This one also had a corroded external SCSI port, so I went ahead and replaced it as well.
Finally, a few shots to show what SysInfo has to say about the card.
Installing an setting up the drive was just as simple as the SCRAM setup. the GVP software works beautifully and you can grab the setup disk here, but but here it is as an ADF.
Just make sure that the HDD is not grounding on the ground-plate of the power regulator!
SupraDrive 2000 WordSync
This card is still on its way from the US of A. As mentioned on the Amiga Hardware Database, this card uses two 8-bit transfer buffers instead of DMA. The card is noticably more simple with regards to chip count and board complexity. It's also half-size, not taking the full length of an A2000 case... so I might even try and shoe-horn it into a nice side-car style box.
I'll update more when it has arrived.
Capturing the output of an Amiga
You might have more luck than me, but I've had a little bit of trouble both outputting a clean composite signal from an Amiga and then capturing it using a PC. Not knowing if my first capture device was at fault, I upgraded an A520 RF modulator to support S-Video, but this still didn't work. The video capture device in question was a Japanese Area Powers Entry Model V.2, bought in a hurry during the last trip whilst testing Super Famicoms... Haha... the name is hugely appropriate!
It didn't work back in Japan when testing the Famicoms, and it didn't work now with the Amiga 500 + A520. I went googling and found all sorts of posts indicating driver installation caveats for Windows 10, but none of this worked. I then tested it with my PlayStation 2 and got a pretty crisp picture!... It was then obvious that this unit would not work with the output of the Amiga.
AverMedia H339 Mini
This cute/tiny PCI-Express card is very barebones. You can tell it's OEM and came from a machine of one of the big brands. Very hard to find drivers as well! I ended up pulling apart a Dell Driver from here. Here's the actual setup file you'll need for Windows 7,8,10 64-bit.
Anyway, with this physically installed and the device happily showing in Device Manager, I attempted to use the unit under VLC. Make sure that you choose the correct input (via the advanced button via the device properties) when you're setting up the capture...
And that you have PAL chosen instead of NTSC.... and then...
Ahh! Finally, no more switching monitors and no more photos of a computer monitor! Finally just easy PNG screenshots. Note that you might notice a slight delay/lag in the capture video on your PC with VLC. To fix this, hit show more options in the capture dialog and set the caching to 0ms.
You can also set ":live-caching=0" on VLC command line.
Formatting an IDE Drive for use in an Amiga 500
You may have previously seen the IDE Adapters that I'd built for my Amiga 500 over here (internal) and here (external). Whilst they worked very well with FAT32 drives attached, I had no end of trouble trying to work out how to partition, format and mount as a native Amiga disk. For everything below, you'll want to use this bootdisk.
The FastFileSystem
Digging through the blog, I'd remembered that I'd done a bit of this back in the day when mucking around with the Amiga 1200. I had used a CF card internally on the A1200 and installed WB3.9 succesfully on a SmartFileSystem Partition. Unfortunately, we can't use that on the A500, so we'll be basing our partitions on FFS, or FastFileSystem. This comes with Workbench 2.0+, but you'll need the file sitting in your L folder for anything lower.
Connecting a drive
Since we're talking IDE, we'll need an adapter. As per my previous mentions, you can find how to build an internal one here and an external one here. Both work great, but follow the posts there for the caveats and tricks when connecting and powering drives.
Note that this can also apply to SCSI drives. Just disregard the steps to add the driver to the disk and/or HDToolBox in the next section.
Partitioning
We'll use HDToolBox for this. It's on the bootdisk I've provided and it's already configured to use the ide.device driver installed in the devs folder. If you're rolling your own, then you'll need to copy the driver over to your floppy and edit the icon for HDToolBox to specify a SCSI_DEVICE_NAME as such...
This is an important step and you'll need a bit of patience... HDToolBox will sit for around 5 minutes interrogating LUNs with no disks, waiting for a response. If you've only connected one drive as master or slave, then the opposite LUN will pause. Below, I've only connected a master, so I saw the message "Checking ide.device address 0 unit 1..." (IDE slave) for a looooong time... but all came good!
NOTE: If it doesn't come good, then HDToolBox has looked at your drive and had a spasm trying to understand the partition table. I can only suggest you take the drive to another machine and totally wipe it. If you have no other machine, then somehow I found that if you try to format it from the shell, it'll then work in HDToolBox. You don't need to let the format continue; just whack a few of the first cylinders.
From here, you'll need to change the drive type and read the parameters from the drive. Click Change Drive Type and then choose to add a new drive definition. Hit the Read from drive button on the right and cross your fingers.
The shot below shows where HDToolBox has detected by Disk Smith 32mb CF Card. Unfortunately it then failed when trying to write the actual partition table to the disk.
Partition sizing is important, so make sure you pay careful attention to all parameters. The Amiga 500 format application will error out if you try to make a partition too large. Unless you have an upgraded system with more RAM than the standard, don't try and partition a drive that is too big! For example, my 128mb (yes, megabyte!) CF card with one partition formats fine, but if you try a 2gig or 4gig card, you'll have trouble with the auto-detected settings. Here's an idea of the parameters that I've tried...
Size | 4096mb | 2048mb | 128mb | 32mb | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
brand | SanDisk | WINTEC | Dick Smith | |||||||||||
ext.power | +5v | No | ||||||||||||
cyl | 3970 | 3970 | 12000 | 1002 | 496 | |||||||||
heads | 16 | 4 | 8 | 8 | 4 | |||||||||
blocks per track | 63 | 256 | 32 | 32 | 32 | |||||||||
blocks per cyl | 1008 | 1008 | 256 | 256 | 128 | |||||||||
Part.Size (~mb) | 1990 | 950 | 650 | 487 | 196 | 97 | 976 | 487 | 196 | 97 | 749 | 128 | ?? | |
cyl.start | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | |
cyl.end | 3968 | 1985 | 1323 | 992 | 400 | 200 | 1985 | 992 | 400 | 200 | 6000 | 1001 | 495 | |
Result | COULD NOT DETECT DRIVE SIZE | CANNOT FIND HANDLER | NOT ENOUGH MEMORY | SUCCESS | SUCCESS | DEAD CARD |
I read in one of the IDE adapter's instructions that you need to have a low cylinder count, so that's why I started with higher surfaces/heads... but instead it seems that a higher cylinder count works better? There's also talk of making sure that your partition sizes match boundaries of the chips inside your CF cards... but I'm not going to pull one open. All I can recommend is that you detect the settings via HDToolBox and then manipulate them to have a higher cylinder count so that surfaces/heads and blocks are lower.
Anyway, where was I? Creating partitions! After you've adjusted the drive parameters, you can click Partition Drive and set up the partitions. It defaults to two, halving the drive. Note the names and sizes, as you'll need them for the mountlist in the future. I changed the layout by deleting the second partition and stretching the first to the end.
Again, write down those start and end cylinder offsets! You can now hit ok-ok-ok-finish and save all settings. The Amiga will probably reboot.
Mountlist
So, remember how I told you to remember those parameters above? You wrote them all down, didn't you? If you didn't, please open up HDToolBox again and record the numbers from the Drive Type screen and the Advanced area in the Partitioning screen. Once you've noted it all down, you're ready to edit ide.ml. On the bootdisk provided, this is located in the devs folder. If you've booted this disk, then just open Shell and type ed devs/ide.ml and press enter.
Once you're in here, you just need to manipulate the fields to match your partition. Starting on the very first line, make sure the name is correct. Change DH0 to whatever you've called yours. Note, there's a bunch of example partition mappings in this file. If you want to use one of the below versions, you can press CTRL-B to delete lines from the text file. For example, you could start at the very top row, hit CTRL-B 17+ times and wipe the top example. Just for fun, here's a reproduction with comments of what you need to change.
IDH0: FileSystem = L:FastFileSystem ; If you want FAT32, then scroll down Device = ide.device Unit = 0 ; 0 = MASTER, 1 = SLAVE Flags = 0 Surfaces = 4 ; From HDToolBox (HEADS) BlocksPerTrack = 63 ; From HDToolBox (Blocks Per Track) Reserved = 2 Interleave = 0 ; For the next two values, you'll need ; to have opened the advanced area when ; creating partitions in HDToolBox LowCyl = 2 ; Start Cyl from Advanced Options HighCyl = 256 ; End Cyl from Advanced Options Buffers = 30 GlobVec = -1 BufMemType = 1 DosType = 0x444F5301 ; FFS Dos Type, leave as-is. Mount = 1 #
Apologies that the photo above doesn't match the final file that is on the bootdisk! I made the final file match the rest of the examples here as much as possible. Either way, just make sure you get the details in correctly and that there's no other duplicate partition name/definition in ide.ml.
Mounting and Formatting
Before you can do anything with the drive, you'll need to make it available to the system. The low-level tools, as per HDToolBox above, can use the drivers to find and interrogate drives, but they don't make them available to the system directly. To do this, we'll need to use the mount command, pointing it to the mountlist we've created above. Type in the following from a Shell.
mount DH0: from devs/ide.ml
Make sure that you've replaced DH0 with your partition name and leave the colon at the end. The from operator tells mount not to use the standard mountlist and instead use the file that we specify afterwards. Hit enter and you should be put back to the command prompt without any messages or warnings. The only thing that might happen is that you get a drive visible on the workbench... if this happens, then somehow the partition you've mapped is already formatted and ready-to-go. If this is a surprise, then don't try and open it... anything could happen.
From here we'll want to format the drive. The format command is used here with the DRIVE and NAME parameters. We then specify the disk format at the end.
format DRIVE dh0: NAME CFCARD0 ffs
Above, you can see the partition name is DH0:. As per usual, replace this with your partition name, leaving the colon at the end. After NAME you can type a friendly name for your partition. This is the name that'll show under the icon on your workbench. It's also the name that you can use in Shell.
Do you like the name I gave it? You'll see it's legit as it's in the screenshots below when copying files. I'd gotten pretty desperate after a miriad of partition size permutations, trying to get a format session not to fail. Finally, as per above, one worked... but not before I started typing stupid names for the formatted partition name!
Note that you can add the term quick to the end if you just want to quick format, but I recommend to do a full format the first time!
Workbench
With the drive totally prepared, it should be visible on the workbench with a single Trashcan inside of it. From here, we'll want to transfer the OS onto it, so go ahead and purchase the Floppy & Hard Disk Image Pack from Amiga Forever. In the kit you'll have two ADF images: one for Workbench 1.3 and another is the Extras 1.3 disk. You'll need to insert these one at a time and copy the entire contents of each onto your new partition.
A quick note on copying disks on the A500: Regardless if you're using real floppies or a Gotek, floppy-switcheroo is the name of the game when trying to get Workbench copied over onto the IDE HDD. Firstly, understand that the copy command is an executable that lives in the c folder of your bootdisk. You can easily copy files around when the bootdisk is inserted. Issues start to arise when you switch disks and try to call copy or any other executables that 'exist' on the bootdisk. Workbench will ask you to insert the bootdisk first to find the executable and then actually run the requested command with its parameters.
This is all fine and well, until you try the following command:
copy DF0: DH0: ALL
It looks simple enough... I've swapped the Workbench 1.3 disk in and asked it to copy. Of course, when it started to execute, it asked me for the disk which contains the actual copy executable:
Yeah, I know, it says A590Setup... a good hint as to what disk I created this IDE Boot Disk off. Anyway, the point is that that was my boot disk and that's where copy lived. Once you switch the disk in, it'll start to execute copy... and copy from DF0 to DH0. Sounds good? It wasn't! As I wanted Workbench 1.3 to copy over, not my boot disk! Because I had DF0: in the copy command, and not workbench1.3:, it's just copying from the drive after swapping the bootdisk in and hasn't checked the name!
To solve this, we have two options. If you're using my bootdisk, then I've already solved it for you with the first option: make the copy program resident. In startup-sequence, I've called the resident command with copy as an argument, making Workbench copy the copy executable to system RAM (not the RAM: disk!) and persist it there during floppy disk changes. This means that it's always available whenever you need to call it.
The second option is shown below. Copy copy to RAM: (the actual RAM disk) and call it from there via RAM:copy.
... copy ... copy ... copy ...
Note that the Workbench 1.3 floppy has a space in its name and that the copy command can't handle this without special formatting. I guessed and tried to reference it as workbench1.3: without the space and somehow this worked fine? I then tried the same method with the Extras 1.3 disk, but that failed entirely. Due to not knowing how to reference it, I used DF0: instead and hence wound up with the situation above where I copied over the wrong disk. After a quick bit of googlin' now, it seems that you simply have to double-quote things:
copy "extras 1.3:" dh0: all
I'll try that at a later date.
Bootable disk
The bootdisk mentioned throughout this article can be converted to an actual bootdisk. I suppose I should've called it a setup disk at first, but it is actually still a standalone bootdisk. Or something. Anyway, it'll now be a bootstrapdisk, mapping the relevant OS drives and folders to the HDD and then kicking WB off from there. The startup-sequence files to do this are all ready to go. Open a shell and switch to the s folder. From there, ed startup-sequence.hd.
; Startup sequence for Hard Disk users...checks for hard disk, then ; transfers control if it is present. (The script assumes DH0:) ; TO USE: copy your normal startup-sequence files (Startup-Sequence, ; and StartupII to the S: directory of your hard disk. ; Then rename your normal Startup-Sequence file ; as Startup-Sequence.f in the S: directory of the floppy, just in case. ; Now replace the Startup-Sequence file on the floppy with this file. ; Setpatch >NIL: SYS:System/FastMemFirst binddrivers ;The line below needs to be edited to match your partition name ;You also then need to make sure that ide.ml has the correct ; parameters for your partition! mount IDH0: from devs/ide.ml assign >NIL: IDH0: exists IF NOT WARN ; hard disk is present assign sys: IDH0: assign c: SYS:c assign L: SYS:l assign FONTS: SYS:fonts assign S: SYS:s assign DEVS: SYS:devs assign LIBS: SYS:libs makedir ram:tr assign t: ram:tr execute s:Startup-Sequence ENDIF execute df0:s/Startup-Sequence.f
Simply make sure that IDH0 in all three places is changed to whatever your HDD partition name is and then rename the files:
rename startup-sequence startup-sequence.f rename startup-sequence.hd startup-sequence
From here... reboot!
Amiga A520 Modulator – S-Video Out
Whilst trying to capture the Amiga via a USB Capture device, I ran into problems. I couldn't get anything other than a black screen and considered the fact that the A520 modulator was producing a bad signal. The USB Capture device worked fine on Windows 10 with the playstation, so I knew that it worked.
I'd been using an A520 on the Amiga for a while as my secondary PC monitor has Composite Video in and it was easy to switch back and forth. I also wanted colour, so I chose the A520 over the A500's standard mono video output.
The USB capture device also accepted S-Video, so I thought I'd try and 'upgrade' the A520 to S-Video, cleaning the signal in the process, in an attempt to capture the video on my desktop. Another advantage would be that I'd stop having to switch video inputs all the time, which would also help standard windows usage as half the time a window would open on the screen that was currently displaying the Amiga.
So, what to do? Google! Zenithia's blog was a first hit with this post where he uses another post's instructions to modify an A520. The other post is S-Video from the A520 at Dave's Amiga Hardware Page. Zenithia seemingly does the circuit-board conversion correctly but, at the end, he describes how Dave leaves out the information on adapting the two Y and C signals from the modified A520 to an S-Video plug. Instead, Zenithia uses a capacitor to fake the sync... let's sort all this out and build the cable correctly!
Required Components
One thing that Dave's page doesn't have is an obvious list of required components... so... here's your shopping list:
capacitors: 22uf electrolytic - 16v (x3) 100uf electrolytic - 16v 220uf electrolytic - 16v 56pf ceramic 0.1uf (100n) ceramic resistors: - 180 ohm - 220 ohm - 270 ohm - 330 ohm - 1 Kohm - 10 Kohm - 470 Kohm - 1 Mohm - 2.2 Mohm
I've included the four stock electrolytics on the board (not mentioned by Dave) as purchases also. The 100uf on my A520 pretty much fell off... there's no real chance that capacitors from 1989 are any good anymore!
Modifying an A520
First up, grab your A520 and prize it open. It's held together with plastic pins that insert into sleeves on the opposite half-shell. Grab a flat-head screwdriver and gently separate the case at each corner. The case will come apart with minimal force, so never apply too much pressure! Finally remove the two screws that hold down the RGB plug.
Once apart, turn on your soldering iron. There's 19 steps to follow from the instructions at Dave's page. Make sure that any wiring that you use to bridge pins or points are insulated! Also try and place any bridging capacitors or resistors away from the soldered pins of other components so they aren't pierced when the case it put back together!
Dave's page has three images at the end, showing the original circuit, the circuit after modifications and finally the deltas between both. You'll note that the modified circuit shows how the C and Y are now available from the two RCA sockets on the modulator.
The modifications are pretty straightforward. One tricky part was the installation of a resistor in R18. My board had the holes drilled, but no solder pads. So instead I just piggy-backed the resistor under the board, soldering to points along the traces. If you look really closely below, you'll see that the holes have no pads, directly below the hacked on resistor.
Another point is to be super-careful when cutting traces! Too often my knife would go flying to towards another trace trying to do other damage.
Finally, the hack inside the modulator is pretty tricky. Make sure you have a sharp pair of snips when you're cutting the white plastic housing away. Once done, solder a pin through the RCA plug rear lead and push it down towards the header. From there, it'll be held perfectly in place to solder the final connection.
Wiring up the cables
So, you now have both Chroma (Colour) and Luma (Intensity) available on your modulator. The previous Audio-In RCA plug is Intensity, with Video Out being Chroma. From here, you need to wire up an S-Video Cable appropriately. I grabbed an S-Video cable I had spare along with a component cable that I have absolutely no use for.
After chopping them both in half, I bared the ends of both and wired everything together. The pinout of my S-Video cable was as follows:
1 gnd black 2 gnd brown 3 intensity red 4 chroma orange
With that, I just made sure the two channels were paired and that the grounds were attached to the shields of each RCA lead. The other two wires were the signals and, officially, I could wire them either-which-way as I can swap the plugs at the Amiga end!
Does it even work?
It sure does, but the USB Capture device still doesn't pick up the signal! The Amiga must output some very weird frequencies or incorrect signal voltages. Regardless, my secondary monitor also takes S-Video, so I plugged it in...
Ahh... crisper... I mean, it's not perfect, but it's much clearer! Disregard the last shot... one of my A500s is throwing those vertical lines and they're on the todo list to fix. As for getting the picture USB-capture'd, I suppose I could start toying with the RGB port to get a better signal, but I have no idea if this USB Capture device will ever support it... instead I've gone and sourced an internal AverMedia PCI-e Card. Will update later when that arrives.