Main Restorations Software Audio/Jukebox/MP3 Everything Else Buy/Sell/Trade
Project Announcements Monitor/Video GroovyMAME Merit/JVL Touchscreen Meet Up Retail Vendors
Driving & Racing Woodworking Software Support Forums Consoles Project Arcade Reviews
Automated Projects Artwork Frontend Support Forums Pinball Forum Discussion Old Boards
Raspberry Pi & Dev Board controls.dat Linux Miscellaneous Arcade Wiki Discussion Old Archives
Lightguns Arcade1Up --- Bug Reports --- Site News

Unread posts | New Replies | Recent posts | Rules | Chatroom | Wiki | File Repository | RSS | Submit news

  

Author Topic: WinVICE (Commodore 64) flip disk list with MA  (Read 6577 times)

0 Members and 1 Guest are viewing this topic.

nickynooch

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 516
  • Last login:July 25, 2019, 02:54:37 pm
WinVICE (Commodore 64) flip disk list with MA
« on: August 14, 2010, 01:55:54 am »
From Nexusmtz on the old forum

-----------------------------------------

The question came up in another topic, so here's a bit of a kludge for running flippies in WinVICE via MA. It automatically generates a flip list based off of the game name you've selected in MA.

First off, WinVICE v1.22 is supposed to work with zipped disks, but it doesn't seem to work properly. That's probably why MA unzips the disks to a cache directory, then passes the unzipped version to WinVICE.

That works fine for single disk games, but it makes things pretty confusing if you're trying to use a flip list to switch between images. Therefore, before anything else, you need to unzip the multi-disk games. (When the files aren't zipped, MA tells WinVICE to use the disk right where it is)

Next, copy the following code to a new batch file called WinVICE_Fliplist.cmd in your WinVICE directory.
Code: [Select]
@echo off
:: Creates on-the-fly flip list for WinVICE
:: 20080712 Nexusmtz
:: 20080715 Added debugging info
setlocal
echo args=%*
pushd "%~f0\.."
(
  echo # Vice fliplist file
  echo.
  echo UNIT 8
) >fliplist.vfl
for /f "delims= " %%I in ('echo "%~n1"') do set gamebase=%~dp1%%~I
for /f "delims=:" %%I in ('dir /b /s /on "%gamebase%*"^|findstr /i /n /l /c:"%~1"') do set skip=%%I
for /f "skip=%skip% delims=" %%I in ('dir /b /s /on "%gamebase%*"') do (echo %%I)>>fliplist.vfl
for /f "delims=" %%I in ('dir /b /s "%~1"') do (echo %%I)>>fliplist.vfl
echo gamebase=%gamebase%
type fliplist.vfl
popd
goto :EOF
After you've created the batch file, set MA's C64 Pre-Launch command to the path of the batch file, e.g. C:\Games\WinVICE\WinVICE_Fliplist.cmd, with a Command Line of %file, and select Long instead of Short.

Finally, add -flipname fliplist.vfl to the end of the command line on the Launch tab of MA's C64 config.

Once all that's set up, you'll be able to switch disks in sequence within WinVICE using ALT-B and ALT-N.

Some notes:
  • All this does is take the first word of your game name and look for files starting with that word. Any names that match and alphabetically come later than your disk are pushed into the flip list. The disk you're launching is then added at the end of the list.


For example, if you select "Zork - The Undiscovered Underground (Side A)", your flip list might look like:
Zork - The Undiscovered Underground (Side B).d64
Zork I.d64
Zork II.d64
Zork III.d64
Zork - The Undiscovered Underground (Side A).d64

  • WinVICE seems to use the list in reverse order of what I expected. The first time you press ALT-B (previous disk), you get the first disk on the list. The second time, you get the next one on the list. If you press ALT-N (next disk) you get the previous one. :?
  • The batch file gets confused by the ampersand symbol. I suspect that a multi-disk game with an ampersand in the name is kind of rare, but if you have one, you'll have to rename it.
  • If you happen to already have a Pre-Launch command for the C64 config, you can add that command to the end of the WinVICE_Fliplist.cmd file prefixed with START, e.g. START C:\GAMES\JOYTOKEY.EXE
Hope that's of use to someone beside me.
--Nexusmtz