Carnivore2 MultiFunctional Cartridge Readme File Copyright (c) 2017-2019 RBSC Last updated: 31.03.2019 ------------------------------------------------ WARNING! To avoid damage to the Carnivore2 cartridge and your MSX computer hardware never insert or remove the cartridge when a computer is powered on! Always power off your computer before inserting or removing of any cartridge! IMPORTANT! The correct functionality of the Carnivore2 cartridge is not guaranteed in the R800 mode on Panasonic Turbo-R computers. There may be various anomalies in this mode, for example the games that require a system restart as well as the configuration entries won't work correctly. So for such games and configuration changes it's not recommended to enable the R800 mode in the boot block. NOTE! On certain MSX computers the boot block may not appear after the power is switched on. Pressing the reset button usually helps to start the cartridge normally. The fix for this problem is very simple. Please check the "PowerUp_Fix" folder for more information. The Setup --------- After assembling, the cartridge needs to be programmed in order to function properly. The following steps are necessary: 1. Upload the Altera's firmware 2. Initialize the directory 3. Write the Boot Block 4. Write the IDE BIOS 5. Write the FMPAC BIOS 6. Restart MSX How to upload the firmware -------------------------- Before uploading the firmware please make sure that the CF card is not inserted! 1. Solder jumper pins to the "+5v" and "GND" soldering points (or solder wires to both sides of C1 capacitor) 2. Prepare the Byte Blaster or USB Blaster programmer, open the Quartus II software 3. In the Quartus user interface select "Active Serial" mode for your programmer 4. Use "Add Device" button to add a new device and select "EPCS4" device 5. Rightclick on the added device's string and select "Change File" 6. Select the .POF file from the "Firmware" directory 7. Enable the checkboxes: "Program/Configure", "Verify" and "Blank Check" 8. Supply 5v power to the cartridge board (mind the correct polarity!) 9. Connect the Byte Blaster's or USB Blaster's cable to the AS socket of the cartridge (make sure you connect the cable correctly!) 10. Click "Start" and monitor the programming and verification process If the programming completed successfully, disconnect the Byte Blaster's or USB Blaster's cable and 5v power from the board. How to enable the cartridge and install BIOS ROMs ------------------------------------------------- Insert the cartridge into the MSX slot, preferably into the first main slot. Power up MSX and check if it functions normally. If the machine shows an anomaly, remove and inspect the cartridge. To fully set up the cartridge the following needs to be done: 1. Make sure that all 3 BIN files (BIDECMFC.BIN, BOOTCMFC.BIN, FMPCCMFC.BIN) are in the same folder with the utilities 2. Run the "c2man.com" or "c2man40.com" (for MSX1 only) utility 3. When asked, enter the slot number where the cartridge is inserted (for example "10" for first slot, "20" for second slot, etc.) 4. From the main menu select "Open cartridge's Service Menu" using the "9" key 5. With the "7" key select "Fully erase FlashROM chip" and confirm twice 6. With the "3" key select "Init/Erase all directory entries" to initialize the directory 7. With the "4" key select "Write Boot Block (bootcmfc.bin)" to write the Boot Block 8. With the "5" key select "Write IDE ROM BIOS (bidecmfc.bin)" to write Nextor IDE BIOS 9. With the "6" key select "Write FMPAC ROM BIOS (fmpcmfc.bin)" to write the English FMPAC BIOS 10. If there were no errors during the steps 5-9, then power down and start your MSX There's also another way to write the boot block and bioses into the FlashROM chip. This can be done on a diskless computer by loading necessary files via the cassette interface and copying them from specially formatter CF card onto a FlashROM. Please see the readme.txt file in the "Utils\diskless" folder of RBSC's repository. How to work with Boot Block --------------------------- The Boot Block allows to start the ROMs from the flash chip and to restart the cartridge with the desired configuration. After MSX shows its boot logo, the cartridge's boot block should start and you should see the menu. Navigating the menu is very easy. Here are the key assignments: [ESC] - boot MSX using the default configuration: all enabled [LEFT],[RIGHT] - previous/next directory page [UP],[DOWN] - select ROM/CFG entry [SPACE],[ENTER] - start an entry [G] - start an entry directly [R] - reset MSX and start an entry [A] - select an entry for autostart [D] - disable autostart option [F] - select 50Hz or 60Hz frequency [T] - toggle Turbo or R800 mode [S] - customize boot block's UI The boot block also supports the built-in joypads and external joysticks connected to any of the 2 joystick ports. The joystick's stick movements are interpreted as follows: [LEFT],[RIGHT] - previous/next directory page [UP],[DOWN] - select ROM/CFG entry [BUTTON_A] - start an entry [BUTTON_B] - reset MSX and start an entry The selected VDP frequency is preserved for ROMs that require a reset to start. The frequency setting is saved into the configuration EEPROM and is restored even after the computer was powered off and on again. The Turbo mode can be enabled only on Panasonic MSX2+ computers and R800 mode can be enabled only on Panasonic Turbo-R computers. On other computers this functionality does not work. The status of the Turbo or R800 mode is not saved into the configuration EEPROM and it is not restored at the start of the boot block after the power was switched off and back on. However the Turbo/R800 mode is still set for ROMs that require a reset to start. The current mode is displayed in the status screen: Z80 - Z80 mode (default) T2+ - Turbo mode for Panasonic MSX2+ R8x - R800 mode for Panasonic Turbo-R Please keep in mind that some ROMs may require alternative starting method, so if pressing SPACE doesn't start the ROM, try using the direct start or start after system's reset. There are several keys that can affect the cartridge's functionality at boot level. Certain keys can skip the autostart option, other keys can skip the boot block's main menu: [F3] - disable custom UI settings [F4] - disable autostart option [F5] - disable startup menu When autostart is set on any entry, after reboot there will be a note shown and there will be a 3 second delay before this entry is activated. During these 3 seconds a user can abort autostart with ESC, TAB, F4 key or a joystick button. If any of these keys or a joystick button are pressed during the 3 seconds, the autostart will be skipped and the main menu will be shown. The symbols that are displayed near the names of directory entries have certain meaning: K5 - Konami 5 SCC K4 - Konami 4 A8 - ASCII 8 A16 - ASCII 16 MR - mini ROM CF - configuration UN - unknown For any other symbol there will be just 2 dashes. The cartridge has a pushbutton to completely disable its functionality if something goes wrong. If the cartridge stops working correctly, you may need to reinitialize it like described in the "How to enable the cartridge and install ROMs" section. The MSX has to be started with the cartridge's pushbutton pressed down. When the DOS prompt appears, the button can be released. The latest Boot Block supports volume changing for the FMPAC and SCC modules. Use the 'V' key to enter the volume control screen from the main menu. The following keys can be used in this screen: [ESC] - save & exit to main menu [UP] - increase FMPAC volume [DOWN] - decrease FMPAC volume [RIGHT] - increase SCC/SCC+ volume [LEFT] - decrease SCC/SCC+ volume [HOME] - reset to default values The volume's value is stored within the small EEPROM on the cartridge board. The value is saved when ESC key is used to return to the main menu. If the small EEPROM is not present, then the volume setting is only preserved until the power-off. So setting the volume once allows to play games and listening to the music until the computer is completely switched off. The latest Boot Block also supports enabling or disabling the internal PSG and PPI's Clicker emulation as well as setting the volume for both of them. Use the 'P' key to enter the PSG control screen from the main menu. The following keys can be used in this screen: [ESC] - save & exit to main menu [ENTER] - enable/disable PSG [SPACE] - enable/disable PPI Clicker [UP] - increase PSG volume [DOWN] - decrease PSG volume [RIGHT] - increase Clicker volume [LEFT] - decrease Clicker volume [HOME] - reset to default values The volume's value is stored within the small EEPROM on the cartridge board. The value is saved when ESC key is used to return to the main menu. If the small EEPROM is not present, then the volume setting is only preserved until the power-off. So setting the volume once allows to play games and listening to the music until the computer is completely switched off. Starting from version 2.10 the boot block can be customized and the custom settings will be stored in the configuration EEPROM. To customize the boot block use the 'S' key from the main menu. The following keys can be used in customization screen: [ESC] - save & exit to main menu [TAB] - select options to modify [SPACE] - change selected value [RIGHT],[LEFT] - select RGB options [HOME] - reset to default values A user can customize various UI settings including directory sorting, fade in/out effects, keyboard/joystick speed as well as the colors (font and background) for the main menu, help screen, volume control screen and PSG setup screen. Pressing 'Home' at any time will restore all customized values to default settings. Holding 'F3' key at the boot block's startup allows to use the default settings for the UI - all custom settings will be ignored for the session. Please note that editing of the palette on MSX computers with v991x or v992x video processors will be disabled. Also if the directory sorting is enabled or disabled, the current autostart entry is cleared to prevent a mix-up. The directory sorting is a complex operation, so if there are many entries in the boot block's directory, then it may take a few seconds to completely sort all of them. The sorting only happens at the boot block's startup and when the sorting gets enabled in the UI settings screen. If the delay is too uncomfortable for you, please disable the directory sorting option. C2MAN and C2MAN40 utilities --------------------------- The C2MAN utility allows to initialize the cartridge, add ROMs into the FlashROM, create custom configuration entries, edit the cartridge's directory. The Service Menu allows to see the FlashROM block usage, erase and optimize the directory, upload the boot block as well as IDE and FMPAC BIOSes into the FlashROM; it also allows to completely erase the FlashROM chip. The C2MAN utility works only on MSX2 and later computers, it sets the 80 character mode by default. On MSX1 computers this utility shows an incompatibility note and exits. For MSX1 computers the C2MAN40 utility must be used. This utility, however, will also work on MSX2 and later computers in 80 character mode, but all messages will be truncated for the 40 character mode. Both utilities will automatically reboot a computer after uploading a ROM into the FlashROM chip if the /a and /r command line options are used. The utility supports the following command line options: c2man [filename.rom] [/h] [/v] [/a] [/r] [/su] /h - help screen /v - verbose mode (show detailed information) /a - automatically detect and write ROM image (no user interaction needed) /r - automatically restart MSX after flashing ROM image /su - enable Super User mode (allows editing all registers and overriding IDE BIOS write lock when BIOS shadowing is off) The utility is normally able to find the inserted cartridge by itself. If the utility can't find the cartridge, you will need to input the slot number manually and press Enter. The slot number is "10" for first slot, "20" for second slot, and so on. The main menu allows to: - Write new ROM image into FlashROM - Create new configuration entry - Browse/edit cartridge's directory - Restart a computer The menu options should be selected with the corresponding numeric buttons. Adding a ROM file into the FlashROM ----------------------------------- To add a new ROM file into the FlashROM chip, select the "Write new ROM image into FlashROM" option. Follow the on-screen instructions until the ROM is successfully written into the chip and the main menu re-appears. The large ROMs' mappers should be normally detected automatically by the utility, but on some ROMs autodetecting may fail. In this case the utility will ask you to choose the mapper. The ROM will not start with incorrect mapper settings, so if your setting didn't work, try to change the mapper type. The FlashROM chip contains 128 blocks by 64kb (8mb in total). The first 4 blocks are occupied by the Boot Block, directory, IDE BIOS and FMPAC BIOS. Other blocks are available for a user to add the ROMs. The ROMs that are smaller than 64kb are grouped into one block. For example two 32kb ROMs will be written into the same 64kb block, eight 8kb ROMs will be grouped into the same 64kb block and finally four 16kb ROMs will be grouped written into the same 64kb block. All this is done automatically. You can add a ROM into the chip without user interaction. The following command line should be used: C2MAN file.rom /a The utility will try to automatically detect the ROM's mapper, check whether any free space is available and then it will write the selected ROM into the FlashROM chip. If you add the "/v" option, the utility will show additional information about the chip and the ROM that is being added as well as the map of the free chip's blocks. The map of FlashROM chip blocks can be viewed from the Service Menu. Just select the "Show FlashROM chip's block usage" option. Adding a custom configuration entry ----------------------------------- To add a new configuration entry select the "Create new configuration entry" option. You will be asked to enter the name of the entry and then you will need to answer 5 questions. The utility will ask whether the slot should be expanded or not (if you want to enable more that one internal device, the slot must be expanded), and whether to enable one of the 4 built-in devices: RAM + mapper, FMPAC, IDE and MultiMapper + SCC. You can select any combination you want. The cartridge can work as pure SCC or FMPAC sound cartridge, as a 1MB RAM expander or as a disk drive. Or as a combination of those devices. The configuration entries will have the "C" symbol close to their names. Once the configuration entry is selected, the MSX will restart to take the new configuration into effect. The configuration entries don't occupy any space in the FlashROM chip, so they can be created as long as there's free space in the cartridge's directory. Editing or deleting directory entries ------------------------------------- To edit the cartridge's directory select the "Browse/edit cartridge's directory" option. This will open the screen with the list of directory entries, 10 per page. The key assignment is similar to the boot block with the exception that you can't start the entry. An entry can be edited or deleted. Follow the on-screen instructions for editing a directory entry. Please keep in mind that the very first entry called "DefConfig: RAM+IDE+FMPAC+SCC" can't be deleted. In the directory editor you can change almost all fields of an entry, select a different mapper, enable or disable the internal devices or expanded slot (some games don't like being in the expanded slot). The editor has the context based help that is displayed at the bottom of the screen. With the Super User mode you can edit any register you want, but be advised, that you may damage the directory beyond repair and you will need to initialize it to continue using the cartridge. When you finish editing, you need to save the entry. The utility will offer you to replace the older entry or to create a copy of the edited entry. The new entry will be located in the end of the list. The name of the entry will be the same if you didn't rename it while editing. The number of directory entries is limited to 254. If the utility can't find an empty directory entry, it will ask you whether the directory should be optimized. If you select "Yes", then there's a big chance that unused directory entries will be found and deleted and you will have the possibility to add new ones. Loading and saving RCP files ---------------------------- When a ROM file doesn't start properly after being detected by the "c2man" utility, there may be a need to adjust its configuration. This can be done either manually - by editing the configuration registers or by loading an RCP (Register Configuration Preset) file. We are providing a few RCP files for the ROM files that are not working correctly with default configuration. To load the RCP file manually you need to run the "c2man" utility, enter the directory editor and start editing the selected ROM entry. When editing, select the "Save/load register preset" option and then use "Load register preset file". When asked, enter the preset's file name and it will be loaded for the entry you are editing. Just save the entry with the new settings and your ROM will start working correctly. When you are making your own configuration settings for a selected ROM file, you can always save them into RCP file. You need to select the "Save/load register preset" option and then use "Save register preset file". When asked, entry the name of the RCP file and it will be saved for future use. The latest versions of "c2man", "c2man40" and "c2ramldr" utilities try to automatically find the matching RCP file when a ROM is being loaded. For example if a user writes the "TEST.ROM" file into the cartridge, the utilities will try to locate the "TEST.RCP" file and ask a user whether he/she wants to load and use the data from that RCP file. When a ROM file is loaded with the "/a" command line option, the data from the matching RCP file is automatically applied. Using the cartridge as MegaRAM ------------------------------ It is possible to use the cartridge as a MegaRAM - for loading ROM images into the cartridge's own RAM and starting them after reboot. The "c2ramldr.com" utility allows to copy ROM images up to 1mb into the cartridge's RAM and it also creates a directory entry for the copied ROM with the "RAM: " prefix before the name. This utility is similar to "c2man.com" utility - it has a menu that allows user to select copying the ROM image into RAM with or without protection. If the ROM is copied without protection, it will be able to write into its own address space. Some games that have copy-protection will corrupt their data and won't work. So it's always recommended to apply protection for the copied ROM image in RAM. The utility can be also used from the command line to automatically load the ROM image into RAM without any user interaction. The utility has a feature to restart a computer after loading a ROM image into the cartridge's RAM. This can be either done from the utility's main menu or by specifying the /r command line option together with the /a option. Please note that the ROM's image exists in the cartridge's RAM only until the next power-off unless there's a battery installed into the cartridge to always preserve RAM's data. Don't power-off your MSX if you want to keep the ROM in the cartridge's RAM. The old directory entries with "RAM: " prefix, created by the "c2ramldr.com" utility can be deleted by the "c2man.com" utility. After power-off they become useless anyway. Using FMPAC's SRAM option ------------------------- The FMPAC's 8kb SRAM is emulated by the cartridge at the Shadow RAM's address 0FE000h. This area is not affected by the 1mb of primary RAM in any way. This area is used by certain games to save the data. If the Carnivore2 cartridge doesn't have a backup RAM battery installed, then the data that was saved into that area will be lost when an MSX computer is switched off. As this data survives the reset, it's possible to save it to a file and load it back into RAM when needed. The utility that allows to save/load this data is called "c2sram.com". The files with the save data will have .SRM extension by default and these files will be found by the utility when a user selects files manually. However the file can be saved with any name and extension. In such a case when a user wants to upload the file into the emulated SRAM area, he will have to type its name manually. To save the data it's enough to reset MSX (no power-off!), run the "c2sram.com" utility and save the data to a file. Then a computer can be switched off. In case a user wants to restore the data and then run a game, the "c2sram.com" utility should be used to upload the previously saved file into SRAM area. Then a computer should be reset and a game can be then started from the boot block or from an emulated DSK image. Backing up and restoring FlashROM's contents -------------------------------------------- The "c2backup.com" utility allows to dump the contents of the entire FlashROM chip into a file. The size of the file is 8 megabytes. The utility also allows to copy the contents of the FlashROM's dump back into the chip. Because of the BIOS shadowing this operation can be performed live, however the system must be restarted as soon as possible after uploading the new contents into the FlashROM chip. The utility asks a user whether he would like to preserve the existing boot block on the cartridge and in case of a positive answer it doesn't overwrite the existing boot block with the one stored in the backup file. In this case the utility shows the '-' symbol instead of '>' when skipping the boot block writing. WARNING! Interrupting the FlashROM's contents uploading may result in a non-working Carnivore2 cartridge! In this case the cartridge must be re-initialized. The description of the procedure can be found in the "How to enable the cartridge and install BIOS ROMs" section of this readme file. Backing up and restoring configuration EEPROM's contents -------------------------------------------------------- The "c2cfgbck.com" utility allows to dump the contents of the configuration EEPROM chip into a file. The size of the file is 128 bytes. The utility also allows to copy the contents of the EEPROM's dump back into the chip. The system must be restarted after uploading the new data into the EEPROM chip for the configuration changes to be taken into use. Testing IDE controller's functionality -------------------------------------- The "c2idetst.com" utility is used to test IDE controller's read/write functionality. When run, it performs 16384 read/write iterations and shows the passed/failed status of any of the disk operations fail. To stop the test it's necessary to hold the ESC key. In the end the utility shows the total/success/failed counters. Notes for SCC+ mode ------------------- The Carnivore2 cartridge supports both SCC and SCC+ modes. Certain games started from the cartridge's IDE device may not like the SCC+ being in the expanded slot, so there will be no sound. In this case such games can be started from a different IDE device and the Carnivore2 cartridge can be configured as the SCC+ sound cartridge. To do this a new configuration entry must be created. It's necessary to start the C2MAN or C2MAN40 utility, enter the directory editing mode and do the following: 1. Edit the first configuration entry "DefConfig: RAM+IDE+FMPAC+SCC" 2. Rename it to "Config: SCC+ Cartridge" 3. Select "Save/load register preset" and then choose "Load register preset file" 4. Load the provided SCCPLUS.RCP file by typing SCCPLUS and pressing Enter key 5. Save the configuration entry and exit the utility Put the Carnivore2 cartridge that you want to use as the SCC+ device into the first MSX slot and the device to load games from into the second slot. Start your MSX and when the Carnivore2's cartridge menu appears, select the newly created "Config: SCC+ Cartridge" entry. The computer will reboot and start loading a game or an operating system from the device in the second MSX slot. If the device in the second slot is configured to load a game that uses SCC+ (for example Snatcher), it will use the Carnivore2 cartridge working as SCC+ device for the output. This functionality has been verified to be working with "Snatcher" and "Konami Game Collection" volumes 1-4 and also with the special game volume. Notes ----- When using Nextor's "_fdisk" command to partition the CF card please make sure you create and start from the configuration entry that has the expanded slot disabled and the only enabled device there is IDE. Otherwise partitioning will not work. The audio socket of the Carnivore2 cartridge may not be suitable for connecting the headphones. It's recommended to connect it to the speakers or to the amplifier. This socket will output emulated SCC and/or FMPAC music and sounds as well as PSG sounds and PPI clicks if the internal PSG/PPI clicker emulation is enabled. When booting to DOS on a Panasonic A1 computer (also on A1 MK2), please hold the DEL key while computer reboots after selection on the default configuration entry and until you see the DOS prompt. Certain games with the so-called "delayed start", for example Metal Gear 2 and King's Valley 2 will not work on the Russian models of Yamaha YIS503III computers because of the incompatibility with the built-in CP/M. It is recommended to remove CP/M from the subrom of these computers or to replace it with a custom-made subrom with better fonts, working RAM counter and built-in TESTRAM. This custom subrom can be found here: https://www.msx.org/forum/msx-talk/hardware/yamaha-msx2-upgrade IMPORTANT! ---------- The RBSC provides all the files and information for free, without any liability (see the disclaimer.txt file). The provided information, software or hardware must not be used for commercial purposes unless permitted by the RBSC. Producing a small amount of bare boards for personal projects and selling the rest of the batch is allowed without the permission of RBSC. When the sources of the tools are used to create alternative projects, please always mention the original source and the copyright! Contact information ------------------- The members of RBSC group Wierzbowsky, Ptero and DJS3000 can be contacted via the MSX.ORG or ZX-PK.RU forums. Just send a personal message and state your business. The RBSC repository can be found here: https://github.com/rbsc -= ! MSX FOREVER ! =-