Puppy Arcade 11 README Homepage: http://scottjarvis.com/page105.htm Contents - Introduction - Requirements - Download - Installation (Optional) - First boot - Setup Internet - Setup 3d acceleration - Setup the Emulators - Using Rom-Loader - Setup Joypads - Enable joypad-only navigation - Advanced settings - General Puppy Linux help - Awesome Tips - More Docs Introduction Puppy Arcade is a FREE retro gaming operating system, with many emulators included for different systems & consoles, plus the multi-system rom browser 'Rom-Loader', and many other exclusive tools. Included is 'Rom-Loader', a lightweight, all-in-one multi-system ROM browser, manager and loader. It uses a custom ROM database with rom info like genre, date, publisher etc for over 18,000 games. Rom-Loader can easily be setup as a customisable, multi-system arcade cabinet with joypad only navigation, and it can automatically list your ROM details, detailed descriptions and box art images. Under the hood, Puppy Arcade 11 is only around 175mb and based on Akita Linux, a derivative of Puppy Linux - which is an awesome, powerful, lightweight and * very * fast little operating system. Puppy Arcade was originally created so I could finally have a usable multi-emulator frontend that actually worked with good emulation performance on my crappy old PC, using a *genuinely* lightweight solution.. You dont even need to install Puppy Arcade, just burn the ISO file to a CD and boot. However, you can also install Puppy Arcade to nearly anything - SD cards, USB sticks, hard drives, customised DVDs, etc! Better than that, you can even 'remaster' Puppy Arcade- add or remove anything you like, using the 'Woofy' program to create a customised, bootable CD or DVD image - to boot or install to HD or USB. Puppy Arcade will boot on old hardware - old laptops, desktop PCs and so on - Pentium III is about as old as you can go, and very recent hardware may not work with Puppy Arcade - use GameEx or something. Puppy Arcade is released under the GPL license - this means it is FREE; free to download, free to use and best of all, totally free to modify and re-release as something of your own... You're welcome! Every year tonnes of electronics are dumped as waste in the 3rd world - this 'waste' contains valuable materials like oil, silver, silicon and all kinds of other stuff - yet only in such tiny fragments it wont ever be recovered. Dont throw away your old PC, turn it into a Puppy Arcade cabinet to play thousands of great retro games, save money, the environment, and to help kick planned obsolescence in the nuts. If you REALLY like Puppy Arcade, please share your themes, fixes, etc at the forum, or please make a donation to the project - see http://scottjarvis.com/page105.htm - I'm not a 'computer professional' or anything, Puppy Arcade was just a solution to a problem, but I like to share, so donations very welcome! Also consider making a donation to Puppy Linux creator Barry K (http://bkhome.org), or to the developer of your favourite emulator(s) .. These things dont come from thin air and take a lot of time and effort to put together, to document, and to share! I hope you enjoy falling behind in your work or studies while playing with Puppy Arcade as much as I have while making it! ... Any problems with it, see the homepage or forum page. Requirements You dont need to install Puppy Arcade to test it out in full. Just burn the ISO file to a CD and boot it up. Puppy Arcade doesnt even need a hard drive installed in the PC if you run it from CD - once booted, you can simply remove the Puppy Arcade CD and replace it with a CD or DVD full ROMs. Minimum system requirements: A PC or laptop with: - 800Mhz CPU, - 512MB RAM, - CD, HD, USB or SD disk, - an internet connection - some ROMs to play (If your PC or laptop doesnt meet the minumum requirements, try anyway, it may work fine...) Recommended system requirements: A PC or laptop with: - 1Ghz CPU or faster, - more than 1GB RAM, - a decent 3D graphics card (ATI or Nvidia) - correct ATI or Nvidia gfx drivers installed - a hard drive, SD card or USB disk, - at least 2GB disk space, - a fast internet connection - some ROMs to play - a USB joypad or two Download You can download the bootable ISO file (only about 175mb) from http://scottjarvis.com/page105.htm Installation (Optional) You do not *need* to install Puppy Arcade to use it. You can simply burn the ISO to a CD and boot it up. But you *can* install it to your hard drive, USB, SD card and more, if you like... Here is how you install Puppy Arcade: Burn the ISO file to a CD and boot. Use the 'Frugal Installer' program, in Menu->System->Utility and follow the steps on screen to install Puppy Arcade on your USB or hard drive. Doing this will install Puppy Arcade to your HD or USB using GRUB4DOS to get it to boot. You can choose which drive, partition, folder etc that Puppy Arcade is installed into. Manual Installation (save wasting CDs): Copy the files on the ISO into a top-level directory like C:\pa11 (for Windows), or where you need, if already using Linux etc. Then, you need to get Puppy Arcade to boot using a 'bootloader' like ISOLINUX or GRUB. To install a new bootloader, read up elsewhere, or boot Puppy Arcade from CD and run Menu->System->Utility->Frugal Installer, as the Frugal Installer program will install and setup the GRUB4DOS bootloader for you.. Existing SYSLINUX users can add *something like* the following to their syslinux.cfg file: label pa11 kernel vmlinuz append initrd=initrd.gz For existing GRUB users, you can copy the contents of the ISO into C:\pa11 (or something), and add a GRUB boot entry. Here is an example GRUB boot entry, that would usually go in the menu.lst file: title Puppy Arcade 11 (sda1/pa11) uuid [..your device uuid here..] kernel /pa11/vmlinuz psubdir=pa11 initrd /pa11/initrd.gz Unetbootin and similar programs can also be used to install Puppy Arcade without having to burn and waste a CD. For other bootloaders, you will have to just work it out yourselves, but it will be similar to other Linux installs. First Boot A couple of helper menus will popup at first boot to help you setup your system as quickly as possible. You can set language, resolution, ad blocking & privacy, desktop themes & settings, etc, using these simple tools. Use these tools to setup your desktop, keyboard, themes, and so on as you like them, then look around... There are two 'Start' menus. Click on the desktop and right-click on the desktop to see them. They are also located at the bottom on the left, called 'Menu' and 'Programs'. The 'Programs' menu has the essentials, the main 'Menu' has everything. There are no desktop icons, unless you choose to enable them - just click on the desktop instead. To access your hard drives, USBs, CDs, etc, click on the desktop (or open the Programs menu), choose 'View Drives'. NOTE: *Puppy Arcade runs directly in RAM*, so after choosing your settings, they need to be saved at shutdown!! So.. you will need to create a *save file* - then Puppy Arcade can remember your settings between reboots. This is easy. The first time you shutdown or reboot, you will be asked to create a save file: so create one (preferably bigger than 1gb, or really big, like 8gb or more). After you reboot, your save file will be used by default, so your settings from the previous session will be kept. If you do NOT want to keep your settings, cos maybe you messed things up or whatever, then DONT create a save file when you reboot, so anything you did will be lost and a 'pristine' or 'fresh' Puppy Arcade will load after reboot. Once you have created a save file, every time you reboot or shutdown, you will be *asked* to save your settings to the save file, or not - so if you mess up your settings or whatever, dont worry - you dont have to keep the changes! NOTE: Save files tend to 'fill up' and run out of space over time if you are not careful, so make it as big as possible. See 'Awesome Tips' below on how to save space in your savefile - generally, keep big stuff on your USB or hard drive, and access those from 'Programs->View Drives', or the desktop drive icons (if you enabled them).. After your first reboot, and getting your save file setup, you can start adding graphics card drivers and so on. Setup Internet All network setup tools can be found at Menu->Setup->Wizard->Network Wizard, or in the Puppy Arcade Setup program. Plug in any USB wifi devices (etc) before you boot Puppy Arcade. There are a number of different network setup tools available, depending on what you need. Ethernet (wired) internet users should use the default 'Puppy Network Wizard' if not auto-connected at boot. Wireless (wifi) users should probably use Pwireless2 to connect to wifi networks. If having problems with Pwireless2, try the 'Reset DHCP' and 'Wpa*' buttons. A network shares (SAMBA) manager can be found in Menu->Network->Remote->Samba Manager Setup 3d acceleration (OpenGL DRI) This is *very* important. Performance and stability are vastly improved after installing the correct graphics drivers! Some emulators require OpenGL to be enabled, such as Mupen64plus, Mupen 0.4, FS-UAE and some others. Many emulators have OpenGL related options, which should ONLY be enabled after installing the correct gfx drivers! For better performance, you should install the drivers best suited for your ATI (AMD) or Nvidia graphics card, where possible. ATI and Nvidia drivers are available in the package manager (a software installer), in Menu->Setup->System. You will need to choose the correct driver package for your graphics card in the package manager. Also make sure you choose the drivers for your kernel version! If you don't know which package to install, google it, or post on the forum. If the ATI/Nvidia drivers dont work, or you have something *other* than ATI (AMD) or Nvidia, you could install the 'zzx_upgrade_73_to_75_nokms-201101-1' PET that is in the package manager - this will enable 3d gfx using MESA, but the performance is not great and it breaks compiling lots of stuff (related to xcb.. should be fixable)!. NOTE: If Puppy Arcade has not identified a specific graphics driver to use at first boot, you will be using the 'vesa' driver, and this is VERY buggy and crap - try to avoid fullscreen emulation until you install better drivers (if possible!). If you absolutely have to use the vesa driver, for whatever reason, and the desktop crashes when trying to run ROMs, just restart the desktop with the 'xwin' command, and change the graphics options or emulator before you play again! After installing the drivers, everything should be setup for you, and you just follow the on screen instructions. However if not, dont worry, you may simply need to 'restart X' (it means restart the desktop). You may also need to run the command 'xorgwizard' and choose the new driver, before you start the desktop again with the 'xwin' command. Setup the Emulators Basics This is of course very important, but there is not too much to do (I hope). By default, most emulators are setup to work out of the box, with most settings and all keyboard controls listed in Rom-Loader (more about this later). Nearly all emulators in Puppy Arcade are integrated into Rom-Loader, and can be setup from within Rom-Loader; after choosing a system, you get a rom browsing GUI with a settings tab, where you choose emulator settings. You can set your preferred settings, and save them. You can also save different, custom settings for each ROM. You can access the emulators directly at Menu->Fun, but Rom-Loader keeps its own settings generally. Emulator help files are generally found in /usr/share/docs/ ... Look there for extra help for specific emulators. BIOS Files Many emulators require BIOS files to work - these can be installed using the BIOS tab in Rom-Loader settings. WARNING! You are not allowed to download BIOS or firmware files for systems that you have never purchased! Where possible (Amiga, Amstrad, PSX, ZX Spectrum, ...), use the supplied, built-in or open source BIOS files! You can also buy BIOS files from Amiga Forever, Intellivision Lives!, and from other retailers - so do that! You may already have many BIOS file supported by Puppy Arcade: Heres a list of most of the supported BIOS files: NOTE: the bios files you have installed must match the filenames listed below, and they are case-sensitive! /usr/lib/games/amiga: CD32 Extended.rom, CD32 KS ROM v3.1 rev 40.60.ROM, Kickstart 1.2.rom, Kickstart 1.3.rom, Kickstart 2.0.rom, Kickstart 3.0.rom, Kickstart 3.1.rom, Kickstart 4.0.rom /usr/lib/games/atari: 5200Opsys.bin, 5200.rom, 7800.rom, a5200.rom, atari5200.rom, ataribas.rom, atariosa.rom, atariosb.rom, atarisosb.rom, atarixl.rom, BIOS.rom, lynxboot.img, REV01.ROM, REV02.ROM, REV03.ROM, REV04.ROM, REV10.ROM, REVAPAL.ROM, REVBNTSC.ROM, tos.img /usr/lib/games/intellivision: exec.bin, grom.bin /usr/lib/games/mame: 3do.zip, acpsx.zip, aes-bios.zip, aleck64.zip, alg_bios.zip, ar_bios.zip, atarisy1.zip, atluspsx.zip, atpsx.zip, awbios.zip, bctvidbs.zip, boardrom.zip, cd32.zip, cdimono1.zip, cpzn1.zip, cpzn2.zip, crysbios.zip, cvs.zip, decocass.zip, f355bios.zip, firmware.zip, galgbios.zip, gp_110.zip, gq863.zip, hikaru.zip, hng64.zip, hod2bios.zip, konamigv.zip, konamigx.zip, kviper.zip, mac2bios.zip, macsbios.zip, maxaflex.zip, megaplay.zip, megatech.zip, namco50.zip, namco51.zip, namco52.zip, namco53.zip, namco54.zip, namco62.zip, naomi2.zip, naomigd.zip, naomi.zip, neocdbios.zip, neogeo_old.zip, neogeo.zip, nss.zip, pgm.zip, playch10.zip, psarc95.zip, sfcbox.zip, skns.zip, stvbios.zip, sys246.zip, sys256.zip, sys573.zip, taitofx1.zip, taitogn.zip, taitotz.zip, tps.zip, triforce.zip, uni-bios12.zip, vspsx.zip /usr/lib/games/msx: DISK.ROM, FMPAC16.ROM, FMPAC.ROM, KANJI.ROM, MSX2EXT.ROM, MSX2PEXT.ROM, MSX2P.ROM, MSX2.ROM, MSXDOS2.ROM, MSX.ROM, PAINTER.ROM, RS232.ROM /usr/lib/games/neocd: neocd.bin /usr/lib/games/neogeo: neogeo.zip /usr/lib/games/pce: CD-ROM System V3.01.pce, syscard1.pce, syscard2.pce /usr/lib/games/pcfx: pcfx.rom /usr/lib/games/psx: scph5000.bin, scph5501.bin, scph5502.bin /usr/lib/games/sega32x: 32X - Genesis BIOS.bin, 32X - Master BIOS.bin, 32X - Slave BIOS.bin /usr/lib/games/segacd: eu_mcd1_9210.bin, jp_mcd1_9112.bin, us_scd1_9210.bin Netplay Online netplay is supported for the following systems (emulators in brackets): Amiga (FS-UAE), Doom (prboom), DOS (DosBox), GameGear, Genesis, NES, Master System, PCE, PC-CD, PCFX, PSX (all via Mednafen), SEGA 32X/CD/Genesis/GameGear/Master System (KEGA Fusion), also (PCSX, Snes9x-gtk, Hugo, FCEU) .. To enable netplay in MAME, you could use MAMEHub (http://www.mamehub.info/), although I didnt test it. To setup netplay, boot Puppy Arcade on multiple PCs on your network. You will need to read the docs for the emulator that you want to setup - some require separate servers (included) to be started, others just need settings updated. NOTE: Be sure that everyone is using the same BIOS, emulators, emulator settings *AND* rom files on all machines! One users machine will usually need to be setup as the server to host the game, the others will be clients that connect to it. Emulators all handle netplay differently, if at all - it is recommend to read the emulator help files! You will probably need to setup port forwarding, to open some specific ports for everyone to connect through. And you will need to know the IPs of each system I guess - use the 'ipinfo' command in a terminal to find it. Using Rom-Loader Starting Rom-Loader Click on the desktop and choose 'Rom-Loader'. Or go to 'Menu->Fun->Rom-Loader '... Or 'Programs->Rom-Loader'. You can also auto load Rom-Loader at startup. Go to Menu->System->Schedule->Startups, then click 'Add' button, and choose Rom-Loader from the list. Now, Rom-Loader will auto-load every time your desktop starts up. About The 'Rom-Loader' program is multi-emulator frontend (menu) for browsing and loading your retro games (ROMs). Rom-Loader supports many emulated systems (SNES, PSX, N64, etc) , and you can even choose your preferred emulators and settings for each system - then just choose your system, browse your roms and play! Rom-Loader consists of a collection of scripts, called papsx, pan64, pagngeo, panes, pazsnes, pemednafen, etc, etc, which are located in /usr/local/rom-loader.. Each script is a GUI or frontend for a different emulator. There is also the 'paloader' script, which is the Rom-Loader main menu. Rom-Loader also includes a simple media player (pamedia). Rom-Loader Temp Files By default, each rom loader GUI scans the current folder for roms when launched, or changing directories. This happens until a ROM has been loaded - after that Rom-Loader uses a "temp rom list" of the directories contents, created by simply playing one of the ROMs in that directory. This "temp rom list" has a few important effects on using Rom-Loader: - Rom-Loader is much slower to load up a dir with lots of ROMs until the tmp list of that dir is created (by loading a rom). - If the tmp rom list has been created changes made to the files in that folder may not show up in Rom-Loader. - You can refresh any "temp rom list" by browsing out of and back in to the ROM folder that you are using.. - Box art can be downloaded en masse, but only when entering and scanning folders - before the tmp rom list is created. Navigating Rom-Loader Navigating Rom-Loader is easy. Use it like a file manager. Choose a system (N64, for example) and browse to a folder full of ROMs, double click (or hit ENTER) on a ROM, and a popup menu will appear, with a few options to choose: - Play Now (CC*): play the rom (with custom config).... if nothing happens, use 'debug' (see below) - Add/Remove from Faves: toggle favourite rom or not ... roms are sortable by faves column - Save/Delete Custom Config: save current settings as custom config for the rom... or delete if exists - Edit ROM Details: edit the details listed alongside the rom in the rom tree - Play at Startup: add the game to startup... it'll get played with current settings at startup - Debug Last Command: read the output from the last attempt to play a rom... good for checking errors - Cancel return to rom list In most Rom-Loader frontends, there are 'Settings' and 'Help' tabs available. The Settings tab lets you change emulator settings before you play or save custom settings for a ROM, and the Help tab shows controls for the emulators, and also some advice on how to use them (or their frontend), if that is required. Rom Folders Rom-Loader *really, really* likes you to have your ROMs separated by system - dont put SNES roms in the same folder as your MAME roms, and so on... Also, the first time Rom-Loader loads up a folder with loads of roms, it will load up *very* slow. However, once you have played a ROM in that folder (using 'Play Now'), the rom list is saved for that loader GUI (panes, papsx, whatever), so the startup of Rom-loader will be much faster next time you run it. So this means that if you change anything in your ROM folders (add, rename or delete files, etc) then you may need to refresh your ROM list in Rom-Loader - do this simply by browsing out of and back in to the ROM folder in question. Box Art in Rom-Loader Box art can be downloaded all at once when entering a ROM dir, or for individual ROMs as they are selected, or both. You can browse into a ROM dir to scan it and download box art for all ROMs in that folder - do this 2 or 3 times if need be. If you have many hundreds of ROMs and Rom-Loader crashes when trying to download all box art images, you can disable this in the Settings page, and only enable box art downloading when highlighting ROMs.. Or you can disable box art totally. Problems with Rom-Loader If your box art does not display but you know it is there, or your ROMs are not loading but you know the settings are fine, then you probably need to browse out of the current folder, then back in, and re-load the ROM you want to play. Rom-Loader saves tmp files to run faster, and these sometimes fail to update or whatever.. So, as above, if Rom-Loader seems to stop working for no good reason, browse out of your ROM dir, go back in, save settings, re-load the ROM. If this doesnt solve the problem, you might need to load up the Settings page, and click the Save button (or Alt-S). You may get some problems when switching between backends (emulators) for a system - again, browse out of the current folder and back in, it should solve the problem. Manually deleting '/root/.paloader/tmp/[system]_ls' might help. Rom-Loader Settings Page Here you can set which emulators and themes to use for each system, setup joypad controls, install BIOS files, and choose some default settings for rom browsing, to be used by all systems, where possible. Backends: The first tab lets you choose the preferred 'backends' for each system. These are the emulators you wish to use for each system. Your mileage may vary between emulators, so feel free to play around with these settings, although generally, the better emulators are higher in the lists .. The emulators listed last should only be used if others fail. If you wish (it wont make too much difference), you can re-order the backends by editing /root/.paloader/rclist.txt . Joypad Controls: The Joypad Navigation tab is very useful, here you can even enable joypad support for emulators that dont support joypads by themselves - simply setup a joypad profile within Rom-Loader for that emulator and go play a ROM. See more about setting up joypads below, including enabling joypad-only navigation for Rom-Loader. Themes You can choose different themes for each system, and can also set default options to override settings for each system. You can also choose your preferred layout for browsing ROMs (enable/disable rom boxart, descriptions, more).. Default Settings and Config Files: Here you can set default settings such as show or hide boxart, layout options, show/hide rom data and so on. You can also access the config files of any emulators you are using in Rom-Loader through the Settings page. Rom Info Database Rom-Loader has a built in database of rom information, based on the No-Intro lists, which are strict and accurate. However, Rom-Loader only matches your rom *filenames* to roms listed in its database, not CRC or anything clever. ROM descriptions, and ROM data such as genre etc is all matched by filename - rename your ROMs if nothing is found. The searchable name of a ROM file is shown before you run it, at the top of the little popup menu, above 'Play Now'. The ROM databases also include the game IDs (from thegamesdb.net) and link to separate game descriptions, where possible. NOTE: The gamesdb.net IDs are used to auto-download box art images for your ROMs where possible. Default Keyboard Controls for Playing the ROMs: All emulators (where possible) have custom keyboard controls setup for both player 1 and player 2. The default controls are listed in the Help tab of each rom browser, and in the Joypad Controls tab of the Rom-Loader Settings. The p1 and p2 controls should be the same for all emulators of a particular system - all SNES emulators have the same default controls, all Master System emulators have the same controls, etc. *Generally*, the default keyboard controls are something like this (except C64, MSX, ZX Spec., other keyboard systems): Player 1 Player 2 D-pad W,A,S,D D-pad Cursor keys Analog T,F,G,H Analog Home,Del,End,PgDown Buttons V,B,N,F,G,H Buttons Numpad keys 1-6 Shoulder buttons C,M,F,H Shoulder buttons Numpad keys 4,6,7,9 Start Enter Start Numpad Enter Select R Shift Select Numpad + Note: Controls may vary system to system, and sometimes between emulators too, so it is best to read the emulators Help tab or Joypad Controls tab in the Rom-Loader Settings page to be sure. For joypads, see below. Setup Joypads First, load up Menu->System->Devices->JsCalibrator to calibrate your joypad or joystick. You can also find JsCalibrator in the Joypad Control tab of the Rom-Loader Settings page. Then you are ready to setup joypad support for your emulators (some emulators enable joypads by default).. You have 3 options: Setup joypads using Rom-Loader, or using all the emulators themselves, or a mix of both. 1. Setup joypad controls with Rom-Loader+Rejoystick To setup joypad controls using Rom-Loader, go to the Joypad Controls tab in Rom-Loaders Settings page and you will see a list of Rejoystick profiles, one for each emulator. Choose a profile, click 'Edit', and map the emulator controls to your preferred joypad buttons (all shown on screen) using Rejoystick, when it appears. The controls for both players 1 and 2 are listed next to the joypads buttons. You should setup players 1 and 2 separately; do not press buttons on joypad2 when editing controls for joypad1 and vice versa. Using Rom-Loader+Rejoystick to setup joypad controls even allows you to use your joypads with emulators that dont otherwise support joypads, such as Dega and FCEU (these are backup emulators by default anyway). However, using Rom-Loader+Rejoystick to set emulator controls has some limitations: a. No analog support - to get analog support, setup controls in the emulators themselves (MAME, N64, PSX, .. ) b. Conflicts - emulators like cpcemu enable joypads by default, so only map *quit* controls in Rejoystick for those. c. Loading the wrong joypad profile, or leaving one enabled when it should not be, will cause unexpected controls! 2. Setup joypad controls using emulators (recommended where possible) Most emulators can be loaded through Menu->Fun->[emulator]. Each emulator has it own way of setting up joypad support (if at all) - use the emulator menus, read the emulator docs (or use Rom-Loader). NOTE! For complete joypad-only rom browsing and playing, you must setup the 'romloader' Rejoystick profile, AND map the Quit key(s) of each emulator profile to joypad button(s) - so you can exit back to the rom lists using your joypad, which can be done in the 'Joypad Controls' of the Rom-Loader Settings page. Enable joypad-only navigation (for Rom-Loader) Go to the 'Joypad Controls' tab in the Settings page of Rom-Loader, to use 'Rejoystick' to enable total joypad support. Rejoystick can map keyboard keys to joypad buttons - enabling you to control nearly any program or emulator with a joypad. Players 1 and 2 are supported by Rom-Loader, which are the first and second joypads found - usually js0 and js1. How does Rom-Loader use Rejoystick: Each emulator has a Rejoystick joypad profile which is automatically loaded when that emulator is run through Rom-Loader. Also, Rom-Loader has its own profile, so you can enable joypad navigation of Rom-Loader itself. Essentially, you need joypads setup in the emulators you want to use (however you like, see 'Setup Joypads' above), plus you must setup the Rom-Loader joypad profile, and ALSO have the 'Quit' command for each emulator you are using mapped to your desired joypad button(s) - do this using its Rejoystick joypad profile.. The process to enable joypads is the same for players 1 and 2, other players will need extra setup (edit cfg files, etc) .. How it works: - Choose Player 1 and select the 'romloader' profile from the list and click the 'Edit' button. - Two windows will appear: Rejoystick (left) and a list of the Keyboard Controls for an emulator/Rom-Loader (right) - To the left is 'Rejoystick', a program showing all the buttons and axes found for your joypad - To the right is the Keyboard keys and shortcuts that you need to map to your joypad How to map the listed controls to your joypad: - Press a button on your joypad to see where it is listed and numbered in the Rejoystick menu - Click on the button you want to use and you'll be asked to choose a keyboard key for that button, so do it. - To use key combinations such as Alt+Q (Quit), map 'Alt' and 'Q' to separate buttons and press them both at once! - When you have mapped all the listed keys to separate joypad buttons, click 'OK' Rom-Loader will then save the profile for player 1. Then do the same for player 2. Rom-Loader will automatically load all required Rejoystick profiles, you do not need to load them manually. To enable quit or exit (from emulators) back to Rom-Loader via joypad: - Edit the joypad profiles of the emulators/backends you wish to use through Rom-Loader. - Important: You must map *AT LEAST* the 'Quit' key(s) of the chosen emulators to your joypad. Example: - Open Rom-Loader Settings and edit the 'snes9x' profile, and map the 'F12' key to button09 on your joypad. - When you press button09 during play, Snes9x-GTK (the actual emulator) will quit (and return to Rom-Loader) NOTE: - If you map *only* the 'Quit' commands, you should also setup your joypads using the emulators themselves. - To do this, you can open the actual emulators (or their config files) and use their menus to edit your controls. Loading the emulators themselves, to edit their settings: - All emulators that have menus (a GUI) can be found in the Menu, at Menu-Fun->[emulator]. Advanced Settings (for Rom-Loader) Custom Settings for each ROM: You can save the current settings as a custom configuration for any ROM. Just choose the settings you want, choose the ROM to play, and choose 'Save Custom Config' from the popup menu. Then any time you choose 'Play Now (CC)' for that ROM, it will be played using the settings saved in the custom config. You will then have the option to delete the custom config in the popup menu, if it exists. The popup menu shows 'Play Now (CC)' to indicate a custom config for the current emulator will be used. Custom backends (emulators) for each ROM: You can even use different emulators (backends) for each ROM, combined with custom settings, as described above - any custom settings saved for an emulator (backend) other than the current one will be used when loading your ROMs. This means you can choose not only the best settings per ROM, but also the best emulators per ROM as well. In other words, if you save custom settings for a game using your favourite emulator, that emulator and those settings will be used for that partcular game, even after you change settings AND backend/emulator for that system. Example 1: If you save some custom ZSNES settings for the 'Starfox' SNES game, then 'Starfox' will be loaded using ZSNES and those custom settings, even after the SNES backend has been changed to something else, such as Snes9x-gtk. Example 2: PCSX, the default PlayStation backend, is generally great but it cant play '007 Racing' properly. So, switch the PlayStation backend to Mednafen (in the Rom-Loader Settings page), then go to the PlayStation rom browser, optionally choose some Mednafen settings, then browse to '007 Racing' and choose 'Save Custom Config'. Then, you can change your PlayStation backend back to PCSX, and '007 Racing' will still be loaded using Mednafen and its saved settings. NOTE: a quicker way to do the above, is to avoid the Rom-Loader Settings page, and to use a terminal window. Just type the name of the romloader GUI you want to load. For example: if you are using Snes9x-gtk as the default backend, just type 'pazsnes' in the terminal to load up the ZSNES romloader, save a custom config for the game you want, and exit. The popup menu shows 'Play Now (CC pamedpsx)' (or 'CC pazsnes' etc), to show a custom backend will be used. Look in /usr/local/rom-loader/ to see all the script names for the Rom-Loader guis .. To remove a custom config for another backend, just choose 'Delete Custom Config', the next one will be used if available. You can also go to /root/.paloader/gamecfgs/ and delete (or edit) the files manually, but be careful. If multiple custom config files exist for a ROM, the order they are used matches the backend dropdown lists in Settings. If loading a custom backend for a particular ROM, make sure you have set the controls you need for that other backend too! Command Line Interface (open a terminal, type the commands, hit ENTER): All the Rom-Loader GUIs (pasnes, papce, pagenesis, etc) have a limited command line interface, so you can auto load a ROM, or specify if you want to GUI to load up in fullscreen or not. Example below (change zsnes to whatever, look in /usr/local/rom-loader/ for the full list of rom-loader GUIs): Usage: pazsnes [OPTION] [FILE] [FILE] can be any valid ROM file. Needs the full path. Options -romfile Load up the given rom on program startup (give full path) -f Start the rom loader GUI in fullscreen -h Show this help message So, you can auto load a ROM in two ways: papce /path/to/my/romfile pasega32x -romfile /path/to/my/romfile You can add a script in /root/Startup, which contains something like the above commands, and it will auto load your ROM as soon as your desktop starts up. Simply copy one of the other scripts in that folder, rename, and replace its contents AFTER the first line, which is required (#!/bin/sh).. You can also choose 'Play at Startup' in Rom-Loader, and the same thing happens. Fixing non-matched ROMs Puppy Arcade tries to match the *filenames* of your ROM with the ROMs listed in a 'pupromdb' database file. If one of your ROMs is matched, its details are listed beside it, when browsing your roms in Rom-Loader. If a ROM name is not matched, try renaming it to something more official - add spaces, make a correct game title, etc. Or check the ROM database file in /usr/share/paloader/romlists/pupromdb/[system].txt to find the ROM, then rename the filename to match the rom name in the database (not the other way around!). You can edit ROM details, or add any unknown ROMs to the 'pupromdb' database, when loading the ROM in Rom-Loader. This is how file matching works in Puppy Arcade (it is pretty dumb): Filename Rom Search F-ZERO - 2 (V1.1) [!].smc F-ZERO 2 Lion King, The (Europe).bin Lion King [SegaNet] Putter Golf (Japan).md Putter Golf The filename on the left, is converted to the search term on the right, and then that search term is used to find a matching ROM in the database of the current system (SNES or whatever), a box art image, or a description. About Box Art If a ROM is in the database and has an ID, its box art will be downloaded from theGamesDB.net. To disable online box art downloading for any individual ROM, you can simply change the ID of the ROM to 'NOID' when you load it up. Once box art is downloaded, it is only matched using your ROMs filename, so you might need to rename your files to get a match. You can also add your own box art images into /usr/share/paloader/romlists/boxart/ (no more than 200px high!!).. If you find good custom or fan made box art images for popular ROM hacks, such as 'Star Fox 2 (SNES)', or 'Super Mario 64 Multiplayer (N64)', then please resize to 200px height and share the png/jpg on the Puppy Arcade forum page. About the ROM Database Puppy Arcade keeps its ROM database(s) in /usr/share/paloader/romlists/ .. The most important files are in /usr/share/paloader/romlists/pupromdb/ .. These files are used by Rom-Loader, the others are 3rd party sources. You can manually edit the details for each ROM by editing the files in the dirs listed above (but do it through Rom-Loader menus if possible!). If (when) you find mistakes in the databases (in /usr/share/paloader/romlists/pupromdb/), then please share your bug reports or fixes to the Puppy Arcade forum page, so we can improve and complete the database for everyone. Maybe after you fix/update lots of rom info, you can upload the file /usr/share/paloader/pupromdb/[system].txt to the forum. About Rom-Loader Themes Rom-Loader comes with multiple themes, and you can set a different theme for each emulated system. You can also easily create your own themes and use those instead, if you wish. The easiest way to do this is to open existing theme files in a text editor, change stuff, then save as a new file, in the same folder as the original theme. All theme files should be stored in /root/.paloader/themes/ .. They are gtkrc files (google it, if need be). You can open them in a text editor and make any changes you like. The themes can then be set in the Settings page. Please share your themes at the Puppy Arcade forum page - or at least share a nice screenshot. To ensure that Rom-Loader can auto-adjust a themes font sizes based on screen resolution, you must NOT move or remove the following tags from existing themes: #mainfont, #titlefont, #subtitlefont, #maintreefont If you create your own themes, you can add the #tags listed above to your theme files, after font_name="blah". For example, line 5 in your new theme might read: font_name="Ubuntu 12" #mainfont If you add the line above to a Rom-Loader theme, then Rom-Loader will auto-update the size of the main font for different desktop resolutions - as the resolution gets higher, the font sizes increase to keep it readable. You can also use that theme for the entire desktop and all programs ... Look in /usr/share/themes/ for examples. There is already the Maschine-Orange theme folder in /usr/share/themes, which should be quite helpful. Known Issues in Rom-Loader SEGA 8bit rom browsing: If not using Mednafen or Fusion as the 'backend' for GameGear and MasterSystem, then the rom folders for these systems will be the same - this means they will share the same rom folder. So, if you load a rom in your master system folder, then exit and choose 'GameGear' in the main menu, then the gamegear rom browser will load up in the master system folder. To prevent this, make sure to use Mednafen or Fusion for either GameGear or Master System emulation (set in the Settings page). Joypad navigation while browsing roms: Joypad only navigation has a few bugs .. Analog joypads may produce too much output when browsing roms, causing unwanted popups and beeps.. To get rid of them, make sure to assign the ESCAPE key to one of your joypad buttons in the Rom-Loader profile (set in the Settings page, under Joypad Controls).. Themes - freezing/crashing the rom-loader menus: If your text and or boxart is too 'big' (takes up too much screen space), then Rom-Loader will freeze and will not respond. You might get around this my maximising or unmaximising the window, but to *fix* it, you should reduce the size of your fonts or images in your Rom-Loader theme. ROM boxart or descriptions not showing: You probably need to browse out of the current rom dir, and then back in, to refresh the tmp rom list file. Main Menu not working: In a disaster, the main menu (that lists all the systems) might not load anything up at all. The fix is almost always to go to the Settings page and click the Save button, or delete the file /root/.paloader/backend_to_gui.txt. Help out! Rom-Loader is far from perfect, and you are welcome to help improve it. Look in /usr/local/rom-loader/ to see the code. Please post your themes, fixes, custom boxart, rom db updates (and so on) to the Puppy Arcade forum thread. General Puppy Linux help Home Folder: Your 'home' folder is '/root' .. The top level is '/' The '/root' directory is similar to your 'My Documents' folder in Windows. Accessing your hard drives: Linux is not like Windows - you must 'mount' your drives before you can use them and 'unmount' them before you unplug them (USBs). To view your drives, click on the desktop or Programs menu and choose 'View Drives' .. This will load up 'Pmount', which lets you easily mount or unmount any of your drives. Unmount your USB drives before unplugging them! NOTE: If you booted from USB stick or SD card, that device cannot be umounted or removed until shutdown. A Vital Hotkey: Ctrl-Alt-Backspace: Linux uses various things to create a graphical desktop, and this graphical desktop sits on top of a 'terminal' or command line operating system. So, *if* anything freezes, you can exit out of the graphical desktop at any time by pressing Ctrl-Alt-Backspace ... The command 'xwin' will then get you back into a desktop (help is printed on screen anyway, so dont worry., its easy..) Installing Extra Software: Puppy Arcade is a whole operating system. Lots of extra stuff can be installed trough the package manager, which is in the menu at Menu->Setup->System. You can also compile stuff from source using the package manager. To compile stuff from source, you need the 'devx' installed, as this contains all the compiling tools.To install the devx for Puppy Arcade, load up Menu->Setup->System->SFS Installer, and choose the latest devx listed there. Read stuff in /root/my-documents/akita/compiling/ for more help on compiling stuff in Puppy Arcade. NOTE: If you compile any extra frontends or emulators for Puppy Arcade, then please upload them somewhere and share them on the forum! Especially if you compile a working Dolphin, PCSX2, MAMEhub, MESS, Mupen64plus 2.0, etc. Drivers: To compile any drivers, do as above (install the devx) and you will also need the kernel sources SFS installed as well. Get the kernel sources from the same place as the devx (SFS Installer).. Get the right one for your kernel version! Note: Some SFS files may need to be converted to v3 or v4 before they can be used. If things seem to freeze, these SFS files might be getting converted for you before they are loaded up into RAM. Installing Drivers: Installing driver packages: Use the package manager, or search the Puppy Linux Forum (http://murga-linux.com/puppy) Compiling from Source Code: This can be a pain, or it can be really easy. You need the 'devx' and 'kernel sources' SFS files loaded up (go to Menu->Setup->SFS Installer).. You need the source code drivers downloaded.. Unzip them, go into the source directory, and then run these commands: ./configure make new2dir make install If all goes well, you should have your drivers compiled and installed and some .PET packages created - you can keep these .PETs for later. If anything goes wrong, you wont need to compile the drivers again, instead, just click on the .PETs and install. Awesome Tips Read everything above first. Please. Ok, here are some great tips, now that you have Puppy Arcade setup, or at least know how you are gonna do it. 1. Save Space in your save file!! You can move files/folders that take up a lot of space out of your save file, and onto your hard drive or USB, then you can make shortcuts (symlinks) to them. This can be done by simply opening the ROX file manager, going to the folder you want to move, and then dragging the folder onto your hard drive and choose 'Move'. Then drag the folder back to where it was, and choose 'Link (absolute)'.. This will create a symlink (or shortcut) to the folder. The shortcut in your save file will take up nearly no space. Folders that will certainly fill up over time (and could be symlinked to your hard drive) include: /usr/share/paloader/romlists/ <--- contains ROM databases and box art!! /root/.mozilla/ /root/pkg/ You should also make sure to clear your web browser history and cache etc, to save space. 1a. Clean up your Save File Manually: You can boot *without* your save file by choosing the '(no savefile)' option in the GRUB menu, when you boot Puppy Arcade.. This will add the 'pfix=ram' option to Puppy, and will boot a 'fresh' Puppy Arcade, with no save file. After you boot without a save file, open a file manager, browse to your save file, click on it, and it will be opened. You can then browse around it and delete stuff you dont want, like any other folder. Be very careful when doing this! Click on the save file again when you are finished cleaning it out to close (unmount) it. Then reboot, and your new, cleaner, emptier save file will be used as normal. 1b. Test stuff out before doing it in your main save file: You can create as many save files as you like. You can click on any saves files not in use and edit them. You can also boot with the 'no save file' option and test stuff, like installing or compiling drivers. If it fails, or you mess things up, then you can simply reboot and try again. When you get it right, you can save the changes in various ways, like copying the files into your save file, or from one save file to another, and so on. 2. You should keep your ROMs on your drives, not inside your save file! You should keep your ROMs outside your savefile, on your drives (which you have to mount). Example: in Windows, your ROMs are in C:\ROMs\ ... in Puppy Arcade (Linux generally) that is /mnt/sda1/ROMs/ To access your hard drives, go to Programs->View Drives .. Or click on the desktop and choose 'View Drives'.. You can symlink your roms folder into your savefile.. For example, drag the ROM folder to the top level (called /) and choose 'Link (absolute)', then your ROMs will be available at simply /ROMs/ as long as the drive is mounted. It doesn't really matter where you keep your ROMs, as long as they dont fill up your save file - this will cause erors! 3. Rebuild your own custom Puppy Arcade, with all your files and settings! Once you have your system setup how you like it, you can 'remaster' it to create your own custom copy of Puppy Arcade. You can do this with the Woofy or Remasterpup tools in Menu->Setup->Utility. Woofy edits the ISO file and creates a new one based on the changes you tell Woofy to make, while Remasterpup rebuilds a new ISO file from your current setup. 4. Rom-Loader is just a collection of shell scripts. Go to /usr/local/rom-loader/ to see the scripts, which you can edit as you like. 5. Use Puppy Arcade over a local network (even with joypads): Install the SSH server in the Akita repo, in the package manager, which has X11 forwarding enabled by default. Then, you can login to and control Puppy Arcade using your keyboard and mouse from any other 'client' PCs on your network, as long as the client has SSH installed - the client doesn't have to be Puppy Arcade, it can be anything. However, if the client PC is also running Puppy Arcade, or has RejoystickCC installed and working, it should be possible to use RejoystickCC on the client to setup a joypad which can control Puppy Arcade over the network. In other words, you could have Puppy Arcade running on a PC and have a joypad hooked up to any other SSH enabled device, letting you to control Puppy Arcade over wifi, maybe using a laptop and joypad - a big, fat wireless gamepad! Read more about SSH and X11 Forwarding in /root/my-documents/ 6. There are more emulators at http://ppm.scottjarvis.com, in the Emulation section. Some may replace emulators that are already installed with older or outdated versions! So be careful what you choose to install, you wont need most of it. MESS is one of the main packages you might want to install from the link above. If in doubt, try the Akita repo first (in the package manager, or at http://akita.scottjarvis.com) It is not recommended to install any emulators that are already installed, the packages wont work as well. 7. Using Windows games and emulators with Puppy Arcade: Install the WINE program from the Akita repo, using the package manager. Then follow an online guide to see how to get the chosen game/emulator working in WINE. Once you know how to do this, you can save the command into a script, or create a menu entry (see /usr/share/applications/) and use that script/entry to load up the emulator with a given ROM, etc. Emulators that work well with WINE include Dolphin, NullDC and others. An example script (/usr/local/bin/myscript) might look something like this, (the $@ means 'all options passed to the script'): #!/bin/sh wine /path/to/emulator.exe "$@" Once this is done, see below on how to fully integrate the emulator into Rom-Loader. If successful, please share your scripts, working commands, or a little tutorial for your chosen emulator on the Puppy Arcade forum page, so others can do the same. 8. You could add even more systems to Rom-Loader, by editing the following files: /root/.paloader/rclist.txt <--- lists the systems, their backends, the related cfg files and frontends /root/.paloader/main_menu_list.txt <--- list of `icon|system name` .. main menu (icons in /usr/share/pixmaps) /root/.paloader/paloader.cfg <--- stores data on current backend and theme for each system /usr/local/rom-loader/paloader_new <--- the main menu gui, searches above files, has own list of systems /usr/local/rom-loader/paloader_settings <--- stores and records settings for all systems, backends, themes, etc You will also need to copy /usr/local/rom-loader/pasnes to a new file, and edit the file to match your new system. Or, for a simpler version, open up /usr/local/rom-loader/pascummvm or pavice.. In the new file, you will need to replace all 'pasnes' (etc) with the new filename, and update the write_config() and execute() functions. The write_config function will save the settings to the file $CONFIG, and execute() should contain the actual command that runs the emulator. $DIR is the current dir, $CHOOSER is the current ROM, and $C is the emulator options as created by the Rom-Loader GUI. You will also need to copy and edit /usr/local/rom-loader/combobox_arrays/pasnes, to build the options lists... Finally, add the file you created into /usr/bin (with a symlink), with a command like this one: ln -s /usr/local/rom-loader/pamyfile /usr/bin/pamyfile You should be very careful, or make backups.. Some shell/bash scripting knowledge is required. Any problems with adding a new system, post your progress at the Puppy Arcade forum. 9. Changing the icons: If you dont like the icons used in Puppy Arcade, replace the png icons in the following folders with whatever you like: /usr/share/pixmaps/paloader/ /usr/share/pixmaps/ The icons called 'cartridge_[system].png' are the icons that appear beside the roms in the rom lists.. If you create a nicer icon theme (its definitely possible!), please share it on the Puppy Arcade forum page. More Docs More documents can be found at /root/my-documents/ /usr/share/doc/ Menu->Personal->Plan->PPLOG ... I think that covers it... GPL License, https://www.gnu.org/copyleft/gpl.html Cheers, sc0ttman