Jul 24 2010

Arcade Machine Reloaded Diary – Page 19

zorro @ 11:19 pm

24/7/10

Back to the Amiga to achieve two emulation milestones. Of course, it’s the Amiga and two games have remained elusively out of reach: Supercars 2 and Skidmarks.

First up, Supercars 2. For years I’ve had a graphical glitch in Supercars 2 that rendered some of the levels unplayable. The longer tunnel tracks (e.g. Medium Race 4 and Easy – Race 7) became corrupt and successful negotiation of already challenging tracks became nearly impossible. This glitch was the primary reason I continued to try new versions of the WinUAE emulator as the ‘current’ version 1.5.3 was fine for emulating an Amiga 500.

Interestingly this problem had two root causes. I finally found multiple copies of the Amiga disk images for the game and noticed that although not gone, the corruption was limited to the top of the screen on only one level. I tried the same disks on the latest WinAE 2.2.0 and it was completely gone. I used MAMEWah’s unique game configuration option and created a new saved state for the new disks running a separate installation of WinUAE 2.2.0

The second problem was that when playing the game from a saved state, disk changes didn’t work. Start Supercars 2 at the menu and select Medium difficulty and “Insert Disk 2″. Not so easy on an arcade machine. Up until now, I had to have two Saved States and two menu options: Easy & Medium. I noticed that has been fixed in the latest version, so all I had to do was figure out how to easily swap disks.

I hadn’t explored the Disk Swapper feature of WinUAE (present since at least 1.4.3). Map the Disk Swapper function to something semi-arcane on the control panel (like Shift + Joy1 Left = Tab) and you can swap out the current disk with a pre-set disk image.

Now that Supercars 2 played well, it was time to knock over Super Skidmarks. Featuring an enhanced mode for the Amiga 1200, it was the one to go for. The original game came on 8 disks and despite disk-swapping success above, this game would not be much fun.

I had tried unsuccessfully to emulate a self-booting hard drive with limited success but, since Super Skidmarks was fully installable, I needed to try it again.

To emulate a hard drive setup on WinUAE

First create a directory on your Windows drive, mine is:

f:\mamewah162b13\emu\03amiga\harddisk

but you could have it inside your WinUAE dir like so:

f:\mamewah162b13\emu\03amiga\WinUAE220\harddisk

I use multiple versions of WinUAE so I keep mine independent of WinUAE.

Then create the Amiga drive in WinUAE. Select Hardware – Hard drives and Add Directory or Archive

Device name: DH0
Volume label: AMI-HD
Path: f:\mamewah162b13\emu\03amiga\WinUAE220\harddisk

or Select Directory and browse to it.

Ensure Read/Write and Bootable are selected.

Then boot into Workbench. I want to emulate the Amiga 1200 so I’ll need the right BIOS (KS ROM v3.1 (A1200) rev 40.68 (512k) [391773-01/391774-01]) and the right Workbench floppy (Workbench310.adf).

Create an s directory on your hard-drive and then copy this modified startup-sequence to it:

; 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
SYS:System/FastMemFirst
binddrivers
assign >NIL: DH0: exists
IF NOT WARN
; hard disk is present
assign sys: dh0:
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
ELSE
; no hard disk
execute s:Startup-Sequence.f
ENDIF

Though I cannot get hard-drives created by this method to self-boot, with a copy of Workbench in the floppy drive it’s an excellent way to exchange files between Windows and Amiga. You can simply drag and drop the files onto the Amiga HD directory defined above. To achieve a bootable hard disk, use a hardfile by following the instructions at EasyEmu. You can then boot up both and drag the files between them for a more seamless experience.

While investigating this method I was reminded of a tool that has been around for a while, WHDLoad. This Amiga-native application allows the user to run games and demos that were originally designed to run only from floppy disks. Though complex to set up, it is the initial steps of emulating the hard drive that is the biggest challenge, the actual installation process for WHDLoad is surprisingly simple. Using a multi-format zip tool like 7-Zip, open the WHDLoad LHA archive and extract the contents to your Amiga HD directory listed above. Open the folder and click install. There are recommended defaults set that work well in a standard emulated environment.

After it’s installed, simply find yourself some compatible games, KGWHD is a good repository, unzip them and drag and drop the folders and the .info file to your HD directory. Open the folder in your Amiga and double-click the icon. Happy gaming!  The advantage of these packs is that some games have been modified not only to run from a hard-drive but also the gameplay. For example, Stunt Car Racer has an alternative version called Stunt Car Racer TNT with new tracks, a turbo mode, a new colour scheme and a brilliant multi-player mode for up to 8 players!

I’m working on creating snapshots of these games for instant load games on the Arcade and removing the need for disks but so far, they have been either unstable or without configurable quit keys.

21/8/10

I finally completed converting all my floppy disk games to WHDLoad snapshots. The fact that WHDLoad solved many of the problems that prevented me from playing some of the more complex games meant that I expanded the number of Amiga games from 36 to 74! Running AGA games like Lionheart and CD32 versions of games like Zool is so much easier via WHDLoad and did not require the floppy disk swap method detailed above. Here are a few things I discovered during this process:

Almost all Amiga 500 games will run on an emulated A1200 (CPU 68020, 8Mb + 2Mb, More Compatible) but some games require more advanced hardware. The CD32 version of Skidmarks, for example, needs a 68040 CPU to run 8 cars simultaneously and Alien Breed 3D is a slideshow without at least a 68040.

Some games use function keys, these can be easily re-mapped to ‘1’, ‘2’, ‘5’ and ‘6’ (Start and Coin buttons on a standard arcade layout). e.g. Datastorm’s multi-player settings.

For two-player simultaneous play you’ll have to configure port 1 with a joystick. I use Keyboard Layout C which I then re-map to my cabinet’s player 2 settings. For the standard joystick in port 2 I use Keyboard Layout B (Cursor keys, Right CTRL and Alt = Fire) but I then re-map the CTRL key to be Left CTRL as per standard MAME key settings. Using Host / Input / Configuration #1 / Standard PS/2 Keyboard). WinUAE is one of the few emulators that distinguishes between the left and right CTRL keys.

Snapshots need to be made after all configuration changes are completed, otherwise you’ll have problems when the game goes to access the disk post the snapshot point. So, wait until everything is set up and configured and then take your .uss snapshot.

The only thing left to do on the Amiga is to come up with a seamless way to save and load additional states from the cabinet’s controls. WinUAE can map keys to functions such as “Load Previous State Capture”, “Quick save state”, “Quick restore state”, “Save state”, “Restore state”.

My work continues…

Leave a Reply