-------------------------------------- VCC - Virtual CD Changer for Windows -------------------------------------- Version 4.1 for MPXPlay 1.67 Copyright (c) 2024 Brent Harris Freeware --------------- Version History --------------- Ver 0.95 (09-04-01) ------------------- * Fixed an issue which caused vcd.exe and vcdtsr.exe to hang when a Gamepad Pro isn't connected * Keyboard mappings were changed so the frontend can be operated using a PS/2 numeric keypad Ver 0.96 (09-23-01) ------------------- * Auto-Exit from MPXPlay, when trigger buttons are pressed on the GamePad Pro stopped working when the keyboard mappings were changed. This issue has been fixed * First public release Ver 1.0 (12-08-01) ------------------- * Fixed a timing bug in the input routine * After switching CDs, it will start at the beginning of the new selection Ver 1.01 (05-05-02) ------------------- * Fixed the "Runtime error 200" bug Ver 1.1 (03-03-02) ------------------- * Major rewrite of directory navigation routines. The result: on-the-fly directory ordering! * Renamed vcd.exe and vcdtsr.exe to vcc.exe and vcctsr.exe, respectively. People often use vcd as an abbreviation for "Video CD", something that this software has nothing to do with. Ver 1.11 (05-05-02) ------------------- * Fixed the "Runtime error 200" bug Ver 1.2 (06-22-02) ------------------- * VCCTSR --> MPXPlay 1.46 compatability! Auto-Exit from MPXPlay when done with Album * VCC --> Implemented bounds checking on the volume control Fixed a minor display glitch on the volume control Ver 1.3 (12-01-02) ------------------- * VCCTSR --> Interim release as features to be included in V2.0 get added Replaced volume meter with spectrum analyser. * VCC --> No changes since V1.2 Ver 2.0 (02-15-03) ------------------- * VCCTSR --> Removed volume display and put a bitrate display in its place Moved the volume control to the config screen Added a config mode for adjustment of the less commonly used MPXPlay settings: e.g. volume, speed, surround, etc. Added lyrics and nfo support Added OBD-II support for Elm32x-based scantools Added keyboard support Added command line help * VCC --> Removed volume control functionality Added support for multiple drives letters (up to 9)...must use same directory structure on all drives Can be used to launch realscan.exe for reading OBD-II troublecodes Added command line help Fixed an intermittant, but annoying, timing bug. Ver 2.1 (11-02-03) ------------------- * VCCTSR --> Added compression percentage display for Monkey's Audio Files Displays a calculated bitrate for WAV files instead of assuming a 44100K bitrate Minor speed optimizations Should consume slightly less stack space Fixed the "Elm32x not found" error which was being displayed on the LCD display whenever an OBD-II device isn't connected (even when the /noobdii command switch was being used). Removed this message entirely since it's nothing more than a leftover piece of debugging code. * VCC --> Overhauled the 'music file detection' routine. In previous versions if a directory didn't contain at least one MP3 or WAV file, a 'No audio tracks' error was displayed. APE, WAV, MP3, MP2, AC3, OGG, MPC, CDW, and AAC files are currently supported. Ver 2.11 (01-03-04) ------------------- * VCCTSR --> No changes since V2.1 * VCC --> Newer versions of MPXPlay like to load ID3 info even when a text file is fed to it. Added "-in 4" to the MPXPlay command string to tell it to give higher priority to the list file. Ver 2.12 (03-09-04) ------------------- * VCCTSR --> No changes since V2.1 * VCC --> Found and fixed a bug in the directory browsing routine which caused the program not to recognise a directory when its archive attribute is set. The behavior of -in switch in the latest MPXPlay alpha has changed. VCC will now check to see if fileinfo.txt exists in the current music directory. If so it'll pass "-in -il fileinfo.txt" to MPXPlay Ver 2.2 (11-20-05) ------------------- * VCCTSR --> VCCTSR crashed under MPXPlay v1.52 Switched over to a heavily modified version of Nir Sofer's unit to handle all of the low-level TSR functions Fixed a range-error bug in the routine that arranges text for the lyrics/description display VCCTSR can now protect itself from being installed twice Gray "/" key wasn't being read properly in the TSR External programs can perform a "Installation Check" on VCCTSR by calling function Int 10 with AX = DAADh, BX = C678h The return value, when installed, is: CX = A006h, ES = program segment prefix * VCC --> Add FLA, MP4, M4A, and DTS to the list of recognized filetypes. Removed recognition for the CDW filetype. Ver 2.3 (11-06-07) ------------------- * VCCTSR --> Found and fixed a bug in the serial port initialization routine Since VCC v3.0 won't be ready for a while, a couple of things have been back-filled back into the 2.x branch... Track number display was no longer working when used with MPXPlay 1.54+. Changed the way that the track number is read from the screen, so that it'll work in newer versions of MPXPlay. Rewrote the Spectrum analyzer display routine. The new one should look a lot better. * VCC --> No changes since V2.2 Ver 3.0 (09-25-18) ------------------- * VCCTSR --> First public release since 2007. There was a long span of time when I had VCC and VCCTSR mostly-working, but alpha quality, at best. The biggest hurdle was getting my USB game controller to work reliably. In the summer of 2018, I found a workable solution: the Hobbytronics USB host board. The major changes, since v2.3, include: Removed OBD-II functionality, since I wasn't using it anymore and needed the COM port to use with the USB host board Replaced Gamepad Pro controller support with support for 10-button USB game controllers connected to a Hobbytronics USB Host board on COM2 Made the serial character display support generic enough to support character displays from various manufacturers Character display is no longer hard-coded to 20x4 Added a configuration program Added support for a limited amount of customization of the way the information is shown on the character display Compatiblity with VMware Workstation Player 12 Support for MPXPlay 1.62 * VCC --> VCC no longer talks directly to the serial ports. Instead it sends and receives data, using the TSR Fixed various timing bugs Ver 4.0 (05-19-24) ------------------- After the Hobbytronics USB host board was discontinued, I decided to stop putting off the inevitable and began porting the program over to Windows. Then, four years later, I actually ended up needing it. This version is a combination of what I started back in late 2019 / early 2020, plus some significant bug-fixing as well as finishing the LCD serial display functionality. I also added a shutdown utility, since the need arose. Due to the change in platform, most of the program had to be rewritten from scratch. I was able to port over the display logic, but not much else. The configuration program is functionally similar to the one in v3.0, but was redone as a GUI applicaton. Funtionality changes: * Platform change from DOS to Win32 * General: The functionality of VCC and VCCTSR is combined into a single Windows program, running in the foreground. * Track naming: Reads the list file directly instead of having MPXPlay load it first, then reading it back from the screen. Like before, fileinfo.txt isn't a requirement. MPXPlay will still read the track naming from tagged files, and VCC can still read that info from the screen, as a fallback. * Features dropped for version 4.0: * Support for the "mpxcmdln" environment variable * Lyrics mode, Nfo mode, and config mode (I rarely used any of these) * Multiple drive support. (this was important during the DOS / FAT32 days, but not so much anymore) * Automatic switching back to track 1 after the end of the album * Limitations * VCC only supports resolutions of 800x600 and above. Some systems will drop down to 640x480 when no monitor is connected. In this case an HDMI dummy plug is recommended so that the system will act like a monitor is still connected. Ver 4.1 (12-22-24) ------------------- * Fix for screen-reading issue when run at 640x480 resolution * Fix for an input bug encountered when no gamepad is attached * Fix: directories and subdirectories weren't being sorted alphabetically * Improved serial functionality under Windows PE. Serial port "fix-up" is no longer needed. Note: this breaks .ini file compatiblity with the previous version. Running the config program and selecting the serial ports will be necessary. * The shutdown utility now calls wpeutil when run under Windows PE, intead of sending keystrokes to the start menu, for a more reliable and faster shutdown process * Improved time display on longer tracks * Added automatic switching back to track 1 after the end of the album * Added playback history. By default, albums are started at the beginning of of track 1. A new shift+play function will jump to the track and track position, out of history, for a particular album. New prev-hist and next-hist functions jump betweem last albums / tracks played, as well. * Added % seeking, using the up and down arrows (useful on longer tracks) ---------- Disclaimer ---------- The author is not responible for any problems that arise from using this software. End-Users agree to use this software at their own risk. -------------------------------- Files included with this release -------------------------------- VCC.EXE The frontend that handles directory navigation, and controls MPXPlay VCC.INI Sample configuration file LCD.BMP VCC.EXE needs this in order to run VCCLCD.INI Includes the LCD commands that VCC needs in order to control the LCD VCCCONFIG.EXE Configuration program for configuring the serial display and the gamepad VCCSHUT.EXE Utility that closes VCC and shuts down Windows when the CTS line on the serial port isn't active VCCSHUT.INI Sample configuration file VCC_AutoStart.Script Auto-start, tweaks, and fixes for when VCC is run under Win10 XPE README.TXT Documentation --------------------------- Supported Hardware/Software --------------------------- * Windows 10 and Win10XPE (it may work on other Windows versions, too) * MPXPlay v1.67, the "small" Windows version * A Serial LCD character display connected to a physical COM port or a USB -> Serial adapter. Vcclcd.ini includes the settings for two differnt models of Matrix Orbital LCDs. Character displays from other manufacturers will probably work, after editing vcclcd.ini and adjusting the settings. * A 10-button USB Gamepad. I'm using a Gravis Gamepad Pro USB. * VCCShut, the optional shutdown utility, uses a seperate COM port ------------ Installation ------------ * Make a directory for MPXPlay (example: c:\player). * Unzip MPXPlay, then copy mpxplay.exe and mpxplay.ini to this directory * Edit and configure MPXPlay.ini, if needed * Unzip all of the files in VCC41.ZIP to the same directory * Make a directory for your music files (example: c:\music) * Go into your music directory and create subdirectories A,B,C,...,Z then create subdirectories, underneath them, for each of your CDs * Run the configuation program --------------------- Configuration Program --------------------- VCC version 4.0 and later have a GUI configuration program, called vccconfig.exe. The functionality is similar to the menu-based config program in v3.0, but with a different user interface. It includes two sections: Gamepad Configuration - Used to assign gamepad buttons to their corresponding funtions LCD Configuration - Used for selecting the make/model of serial LCD, the serial port and how the items are displayed on the LCD. Shutdown Utility Configuration - Used for selecting the COM port that the shutdown utility uses ------------ Adding Music ------------ VCC does not use playlists. Disc navigation is directory based. Disc information is stored in text files. Track information can either be stored in text files, or you can skip the text file and let MPXPlay get the track names from tags. Usage is best explained by example: Suppose you've just ripped a CD converted the music to FLAC format. Assume that the band is called "AC/DC" and the album title is "High Voltage". Keeping with the assumptions in Example 1 you'd... * Go into C:\MUSIC\A * Make a directory, lets say,"ACDC2" * Go into C:\MUSIC\A\ACDC2 and copy the music files into this directory, (01.FLA 02.FLA 03.FLA, etc) * Create a file called "DISCINFO.TXT" containing two lines: (no quotes) On line1 put "AC/DC" On line2 put "High Voltage" * Create a file called "FILEINFO.TXT" containing the track info: (no quotes) On line1 put "01.FLA AC/DC:It's a Long Way to the Top" On line2 put "02.FLA AC/DC:Rock 'N' Roll Singer" On line3 put "03.FLA AC/DC:The Jack" etc The "FILEINFO.TXT" file, as describe above, is stricly optional. I like to use text files because they're easier to edit. If the file isn't there, track naming will still work if your music files are tagged. --------- Operation --------- The software is operated from the GamePad, or a numeric keypad. Disc switching, track switching, rewind, fast forward, etc. can be done. The band name, CD title, track title, track number, spectrum analyser, track time and the bitrate are displayed. Function Gamepad Numeric Keypad Rewind <1> Fast Forward <3> Select / Shift