Super WildCard Utility v1.2
==============================================================================
What it is and how it came to be
--------------------------------
Having wanted to make video games since I was a child, I purchased a Super
WildCard DX2 in hopes that I could learn about and understand the inner
workings of the gray and purple box it attached to.
After upgrading to Windows 2000 I discovered something I had already
expected, and that was that VGS (the program Front Fareast gave me to
transfer data between my PC and SWC) was a 16-bit DOS program and expressly
denied access to the parallel port by the Windows kernel.
I searched the Internet for a Windows application that could upload data to
the SWC. After all, if printers and scanners can be used in Win2k, why not
the SWC? But I came up empty handed.
Initially I would use a diskette to copy and upload files, but that was slow.
So I built a Win98 box, but that only reminded me why I ditched Win98 in the
first place. Eventually interest in "the box" dwindled to the point where I
waited patiently for someone to write a true Windows application.
I'm impatient.
I decided the only way I would be able to transfer data in Windows was to do
it myself. I started to study the Windows driver architecture, hoping to
build my very own SWC.VXD. I didn't get very far before discovering that
someone had created a better solution. Not a ROM transfer utility in its
entirety, but in a lesser form a leap over the one hurdle that kept anyone
from completing such a project before.
What I found was IO.DLL, a simple and effective library for gaining access to
the parallel port in Windows. I would encourage everyone to send Fred an
e-mail of thanks, because where others have offered similar solutions for a
substantial price he has done so free of charge for the benefit of mankind.
(You can visit his homepage at http://www.geekhideout.com)
After surmounting a formidable task, all that was left was to create the
interface. Not being of a lineage of hardware engineers, I accepted the
calling at hand with no foresight as to how I would actually complete it.
Mounds of documentation concerning the SWC are nonexistent. I could only
arm myself with meager tools: the ten year old source code to VGS, and a
scant description of the said hardware that was likely translated to English
from Chinese.
I'm still not completely certain as to what I've done (a good look at my code
should be testament of that.) Though a limited number of tests evidenced
that this resulting product does in fact work (to some degree).
What it will do
---------------
- Work in Windows, including Windows 2000 and XP
- Upload ROM and SRAM files (with or without a 512-byte header) and real-time
save files
- Apply an IPS file when uploading ROM data
- Download cartridge ROM
- Download SRAM and real-time save data
How to use it
-------------
Opening files is just like any other application. You can select Open from
the File menu, or you can drag and drop files from another source.
When a ROM file is opened, SWCUtil will automatically search for patches,
SRAM, and real-time save files with the same filename.
Clicking on the Play button will upload the ROM file and any other files then
begin execution. If an .RTS file is opened, real-time mode will be enabled.
If no ROM file has been opened, the Play button will run the cartridge
inserted in the SWC.
You can also select any kind of execution mode from the Play menu. The
Execute Only option begins execution of DRAM without uploading anything. Use
this if you manually uploaded ROM data from the Upload menu.
The other menu items should be self explanatory.
What it won't do, not even if you ask nicely
--------------------------------------------
Upload split-file ROMs - I just never got around to it.
Download 48Mb ROMs - Largely because I don't have any 48Mb carts to test.
I'm pretty sure every game cart in the known universe has been dumped by now
anyway.
Save settings - The LPT port won't be saved when exiting (it will always
default to LPT1)
Real-time data uploading and downloading has not been tested
History
-------
1.2 2004.03.10
+ Improved error handling and detection to keep SWCUtil from hanging if a
copier couldn't be communicated with
+ Added code to pull all output pins low after DRAM execution and to reset
the control pins after exiting the program
1.1 2003.09.15
+ When saving SRAM for the first time, the filename defaults to the name of
the currently loaded ROM file
- .SRM files are always 32k, since the ROM header can't be accurately read
- .BBD files wouldn't load
Copyright (C)2003 Alpha-II Productions (http://www.alpha-ii.com)