Playstation 2 soft modding (for playing backups) from a GNU/Linux user's perspective
Posted 06-09-2021 at 12:57 AM by TheOuterLinux
Cross-posted from: https://theouterlinux.gitlab.io/Public/Articles/PS2.TXT
RSS for website version: https://theouterlinux.gitlab.io/Publ...ticleFeed.atom
RSS for website version: https://theouterlinux.gitlab.io/Publ...ticleFeed.atom
Code:
______ _ _ ______ (_____ \| | _ _ (_) (_____ \ _____) ) | _____ _ _ ___ _| |_ _____ _| |_ _ ___ ____ ____) ) | ____/| |(____ | | | |/___|_ _|____ (_ _) |/ _ \| _ \ / ____/ | | | |/ ___ | |_| |___ | | |_/ ___ | | |_| | |_| | | | | | (_____ |_| \_)_____|\__ (___/ \__)_____| \__)_|\___/|_| |_| |_______) (____/ ______ __ ___ _________ / __/ /_ ____ ___ ____ ____/ /___/ (_)___ ____ _ / ___/ __ \/ /_/ __/ / __ `__ \/ __ \/ __ / __ / / __ \/ __ `/ (__ ) /_/ / __/ /_ / / / / / / /_/ / /_/ / /_/ / / / / / /_/ / /____/\____/_/ \__/ /_/ /_/ /_/\____/\__,_/\__,_/_/_/ /_/\__, / /____/ __ for playing backups ___ _ _ _ _ ___ _ / _|_ _ ___ _ __ __ _ / __| \| | | | |/ / | (_)_ _ _ ___ __ | _| '_/ _ \ ' \ / _` | | (_ | .` | |_| / /| |__| | ' \ || \ \ / |_| |_| \___/_|_|_| \__,_| \___|_|\_|\___/_/ |____|_|_||_\_,_/_\_\ _ _ _ _ _ ___ ___ _ _( )___ _ __ ___ _ _ ____ __ ___ __| |_(_)_ _____ | || (_-</ -_) '_|/(_-< | '_ \/ -_) '_(_-< '_ \/ -_) _| _| \ V / -_) \_,_/__/\___|_| /__/ | .__/\___|_| /__/ .__/\___\__|\__|_|\_/\___| |_| |_| by TheOuterLinux https://theouterlinux.gitlab.io Last updated: 2021/06/09 Discussion URL: https://www.reddit.com/r/TheOuterLinux/comments/nvoe92/playstation_2_soft_modding_from_a_gnulinux_users/.compact ------------------------------------------------------------------------ [Introduction] So you still have a Playstation 2 (PS2) laying around? Good! For those of you that threw yours away, SHAME ON YOU! Anyway, there are plenty of tutorials circulating around the Internet that explain how to get the most out of your Playsation 2. Some of them require a Dr. Frankenstein level of modding and some only require special discs or memory cards, but almost all of them assume that you are a Windows user. But have no fear as I think I may have figured out the easiest way as a GNU/Linux user, and perhaps other Unix-like systems, to do most of the same things. ------------------------------------------------------------------------ [Supplies] To make this as easy as possible, you will have to spend some money, but not too much when considering what you are getting. The required stuff should only cost you about $13 USD plus the cost of how ever large of a portable USB hard drive you plan on buying and then of course, the shipping and handling. Personally, I would experiment with a USB hard drive that I already own, to which a 4GB would be good enough for adding a few PS1 games after everything is setup. Required -------- 1. A Playstation 2; most models except the 9000 should work just fine, fat or slim. 2. Free McBoot PS2 memory card version 1.966 or newer, size 64MB 3. Portable, FAT32 formatted, USB hard drive; USB versions 1.x, 2.x, or 3.0 should all work but the PS2 uses USB version 1.1 and so you will not get any speed boosts regardless. 4. A copy of ps2psxe_r202-727.7z from somewhere... MD5SUM: 8be434b07d9143cd2c647640fde7cf45 5. Popstarter + POPS_IOX.PAK from somewhere... + psx2vcd BASH script Popstarter: https://bitbucket.org/ShaolinAssassin/popstarter-documentation-stuff/downloads/POPStarter_r13_Beta_20190605.zip POPSIOX.PAK MD5SUM: a625d0b3036823cdbf04a3c0e1648901 psx2vcd BASH script: https://github.com/gotbletu/shownotes/blob/master/psx2vcd Optional -------- 1. PS2 HDMI converter adapter 2. Blank DVD-R discs and CD/DVD burner + esrtool for PS2 games (https://github.com/ali-raheem/esrtool) Very optional ------------- 1. 256MB PS2 memory card 2. Wireless PS2 controller Some prices to consider ----------------------- If having to buy everything, including the optional stuff, this is about how much you would spend on places like Amazon and were last check on 2021/06/07, to which of course you can assume the cost of a PS2 will most likely go up over time, especially when everyone decides that the PS2 will be the next cool, "retro" thing to own. None of these prices include shipping and handling. PS2 = $200-$230 Free McBoot memory card = $13 PS2 HDMI converter adapter = $9-$30 100 blank DVD-R discs = $25 USB external CD/DVD burner = $20-$35 256MB PS2 memory card = $9-$15 Wireless PS2 controller = $15 Total with PS2 = $291-$363 Total without PS2 = $91-$133 So technically, on a very good day, you could have a PS2 that will play almost every PS2/PS1 game with some NES/SNES/SEGA emulators while looking a lot better than it would have if using the standard A/V cables on an HD TV and a few extra goodies to go along with it for only $91 and could be as low as $71 if you already have a way to burn DVD-R discs. ------------------------------------------------------------------------ [What they are for] Free McBoot PS2 memory card --------------------------- There exists, by some wizardry, a product in the form of a PS2 memory card called "Free McBoot," also known as "FMCB." When turning on your Playstation 2 with this special memory card inserted, extra menu options appear. These options, assuming that you have bought the latest version, give you things like an ELF launcher, which is basically the Playstation 2's applications format, ways to launch PS1/PS2 games from a hard drive if things are setup correctly, an AVI player, a resolution changer, codebreaker, and emulators for older, popular Nintendo and SEGA cartridge-like systems. Free McBoot is also necessary if planning to ESR patch PS2 ISOs to then burn on a DVD-R disc. And also, you can always update the included software (*.elf) yourself if you wanted to. Portable USB hard drive ----------------------- This is needed because we need a place to keep and launch our backups and to install some extra software and files. ps2psxe_r202-727.7z ------------------- Honestly, if you can find a newer version than this file, then by all means. The ps2psxe program is one of two methods mentioned in this tutorial for playing PS1 backups. Just do an Internet search for this file and make sure to run an md5 checksum just in case. MD5: 8be434b07d9143cd2c647640fde7cf45 Popstart + POPS_IOX.PAK ----------------------- Technically, this is the most popular way of playing PS1 games from a hard drive on a PS2. However, have had more luck with ps2psxe. But, some games will only run well on one and some games will only run well on the other, so you might as well have both as it is better to have and not need than to need and not have. Popstarter: https://bitbucket.org/ShaolinAssassin/popstarter-documentation-stuff/downloads/POPStarter_r13_Beta_20190605.zip POPSIOX.PAK MD5SUM: a625d0b3036823cdbf04a3c0e1648901 psx2vcd BASH script: https://github.com/gotbletu/shownotes/blob/master/psx2vcd PS2 HDMI converter adapter -------------------------- Unless you are using an older television, you will most likely want an HDMI converter adapter. The regular A/V cables that came with the Playstation 2 will still work but everything will look really bad on a 1080p monitor, even if we are still technically using lower resolution modes when all is said and done. Think of it as 480i and 60Hz if the game is NTSC but better scaling. However, if using actual PS1 discs, you will need to run Free McBoot's GSM program and then cycle to the PS1 mode's correct dimensions for the game. If you try to run a disc-based PS1 game without doing this first, it will load the PS1 logo screen but nothing else. In other words, you cannot run a PS1 game at 720p or higher and trying to start certain programs at higher resolutions results in screen garbage. But don't worry, if you do screw things up using GSM, just restart the PS2. Blank DVD-R discs + disc burner + esrtool for PS2 games ------------------------------------------------------- This is for when creating backups of PS2 games and then needing to burn the ISOs to a blank DVD and then have it working. The esrtool essentially tricks the PS2 into looking at it as a DVD video but then plays the game. However, you will still need the Free McBoot memory card for this to work. Also, this does not come precompiled but building from source is very easy. All you do is change the directory in a terminal to the esrtool folder and then run the 'make' command. esrtool: https://github.com/ali-raheem/esrtool 256MB PS2 memory card --------------------- You only need this if using the ESR patching method for PS2 games and possibly to backup PS1 games if planning to go crazy on a disc-based, game-buying-spree since PS2 memory cards can hold PS1 saves, if manually copied over, giving you the option to free-up your one and only PS1 memory card for more disc-based games. The card that I got a hold of has a switch on it in which treats the memory card as if it were two, each side having 128MB, giving a total of 256MB. In my case, I use the left side to store backups of PS1 game saves for actual disc-based games and the right side for PS2 disc-based games. However, as far as the PS1 goes, I am only going to mention methods in which the games save to virtual memory cards on the fore- mentioned USB hard drive so you do not need to worry about buying any extra PS1 memory cards. Wireless PS2 controller ----------------------- I placed this under "Very Optional," but it honestly depends on how much you are used to using wireless controllers and how and where your PS2 is setup. In other words, having a wireless controller keeps you from mindlessly walking away from the PS2 with the controller in hand and then jerking the console onto the floor. Be nice to your stuff. I would also like to note that you may be able to save some money on places like Amazon from dealers combining both a single wireless PS2 controller and the 256MB PS2 memory card. ------------------------------------------------------------------------ [Getting it all ready...] 1. Make sure that your USB hard drive is formatted to FAT32. If you do not know what that means but it still works on everything you plug it into anyway, it probably already is. However, if not, just know that formatting a hard drive wipes it as well. I would also like to note that I labeled my USB hard drive as "PS2" like in many of the tutorials that I have seen but I am not sure if that is necessary. It may seem stupid to mention this but for whatever reason, some GNU/Linux users like to do weird things like format their USB hard drives to things like EXT4 and may have forgotten. 2. If you bought a PS2 HDMI adapter, replace the standard A/V cable. You will also need to have one of your USB ports available as a power source if you got the same kind of adapter as I did. However, just in case, do not throw away the standard A/V cables; PS1 games that are NTSC, for example, do not like resolutions above 480i at 60Hz and may not run at all. If you are using a PS1 disc and having problems with the resolution switcher program (GSM), you may need to switch-out the cables. 3. Insert the Free McBoot memory card into the second memory card slot. It will work in both slots; however, this is so you can take the "set it and forget it" approach since most people do not make use of both memory card slots unless it is a 2-player situation or keep a PS1 memory card in the first slot and a PS2 memory card in the other. 4. Keep the remaining USB port available for your USB hard drive. If you are worried about your SOCOM headset, the ESR patching method uses DVDs instead of a USB hard drive. ------------------------------------------------------------------------ ____ ____ _ | _ \/ ___|/ | | |_) \___ \| | Using ps2psxe and Popstarter | __/ ___) | | on a real Playstation 2 to play |_| |____/|_| PS1 backups [ps2psxe Setup] 1. Download a copy of ps2psxe_r202-727.7z or later version and extract the contents directly onto the USB hard drive you intend to use for this. MD5SUM: 8be434b07d9143cd2c647640fde7cf45. If you do not know how to do an md5 checksum, just run the following in a terminal: md5sum /path/to/file ...a mixture of numbers and letters will print out and should match what I have listed here, unless somehow you got ahold of a newer copy. 2. Place your *.bin/*.cue backup files anywhere on the USB hard drive, but I recommend creating a directory called "games" or something like that to keep things organized. 2. Unmount the USB hard drive from your computer and then insert the USB hard drive into the PS2 while off and also make sure that the Free McBoot memory card is also inserted. 1. Turn on the Playstation 2 (PS2). 2. With Free McBoot inserted as you turn on the PS2, you should see more options than usual. Select the "uLaunchElf" option. 3. You should now see what looks like a very basic file manager. Navigate to "mass:/" using the D-pad (directional buttons) and use the circle button to select this directory. If you accidently go into the wrong one, use the X button to go back. 4. Next, using the circle button, select the ps2psxe-gui-pack.elf file. 5. You should now see a graphical menu for ps2psxe; but because we are running this for the first time, some setup is required. Use Configuration --> System --> PS2PSXe path option to let it know where the ps2psxe.elf file is (mass0:/ps2psxe.elf) and Configuration --> System --> Select BIOS to know where the BIOS bin file is (mass0:/bios/scph7502.bin). ps2psxe uses X for select and triangle for going back. You may also want to use Configuration --> Input to enable the "Digitize pad" option. Make sure to "Save default config" before exiting (restarting the PS2 is the only way to exit). I would also like to note that either running ps2psxe-gui-pack.elf or using it to start a game for the first time will also have it create more directories and things on the USB hard drive. 6. Now, all you have to do is start ps2psxe using the ps2psxe-gui-pack.elf file like before but let it know where your *.bin file using the "Open cdrom image" option and then use the "Start emulation" option to play the game. IF THE PS2PSXE METHOD DOES NOT WORK, THEN SEE THE POPSTARTER METHOD; OTHERWISE, YOU CAN SKIP IT. HOWEVER, IT MIGHT NOT BE A BAD IDEA TO HAVE BOTH METHODS SETUP AND READY TO GO JUST IN CASE. ------------------------------------------------------------------------ [Popstarter Setup] 1. Download a copy of Popstarter and a copy of POPS_IOX.PAK; however, I cannot tell you were to get the POPS_IOX.PAK file. It is one of those things in which you are on your own and do so at your own risk. Popstarter: https://bitbucket.org/ShaolinAssassin/popstarter-documentation-stuff/downloads/POPStarter_r13_Beta_20190605.zip POPS_IOX.PAK MD5SUM: a625d0b3036823cdbf04a3c0e1648901 2. Using the same (or different) USB hard drive from the ps2psxe setup, while mounted on a computer, create a folder in the very top directory called "POPS" and then place the POPSTARTER.ELF and POPS_IOX.PAK files in the POPS folder. 3. Using your own backups of PS1 games, as *.bin and *.cue files, you will then need to place them in the POPS directory and then run the psx2vcd BASH script found at https://github.com/gotbletu/shownotes/blob/master/psx2vcd. Make sure to meet the requirements, to which the script itself has notes for at the top. But just in case, here is the psx2vcd script: ======================================================================== #!/usr/bin/env bash # AUTHOR: gotbletu <gotbletu@gmail.com> # SOCIAL: https://www.youtube.com/user/gotbletu|https://github.com/gotbletu|https://twitter.com/gotbletu # DESC: convert (non-splitted) bin/cue to psx vcd (playstation video cd) [only for modded playstation 2 console] # DEPEND: coreutils gawk sed psmisc # popstationr (https://github.com/pseiler/popstationr) # cue2pops (https://github.com/makefu/cue2pops-linux) # DEMO: https://youtu.be/jqffZaPFFrE # REFF: Open PS2 Loader aka OPL v1641+ (http://www.ps2-home.com/forum/viewtopic.php?f=13&t=3) # Popstarter (https://assemblergames.com/threads/ps2-pops-stuff-popstarter.45347/) # Popstarter #2 (https://www.psx-place.com/resources/popstarter.683/) # GameID/Character Limit http://www.ps2-home.com/forum/viewtopic.php?t=5311 if [[ $# -lt 1 || $1 = "-h" || $1 = "--help" ]]; then printf "%s\n" "info: convert (non-splitted) bin/cue to psx vcd (playstation video cd) [only for modded playstation 2 console]" printf "\n" printf "%s\n" "usage: ${0##*/} [cuefile]" printf "\n" printf "%s\n" " $ ${0##*/} file.cue" printf "%s\n" " $ ${0##*/} file1.cue file2.cue file3.cue" printf "%s\n" " $ ${0##*/} *.cue" printf "\n" printf "%s\n" "Where To Put PSX VCD Games On USB?:" printf "%s\n" " mass:/POPS/POPSTARTER.ELF" printf "%s\n" " mass:/POPS/POPS_IOX.PAK" # md5sum a625d0b3036823cdbf04a3c0e1648901 printf "%s\n" " mass:/POPS/SLUS_008.21.Street Fighter Alpha 3 (USA).VCD" printf "\n" printf "%s\n" "Load Game: PS2 FMCB > Open PS2 Loader (v1641+) > Game List > PSX" exit 1 fi # kill popstationr after getting gameid from log file then use cue2pops to convert to VCD (output --> SLUS_003.97.WCW Nitro (USA).VCD] myArray=( "$@" ) for arg in "${myArray[@]}"; do PSX_LOG=/tmp/psx2vcd.log (sleep 2 && killall popstationr) & # (sleep 2 && killall popstationr && rm EBOOT.PBP) & popstationr "${arg%.*}" AUTO 9 "${arg%.*}".[Bb][Ii][Nn] > "$PSX_LOG" GAMEID="$(head -n1 "$PSX_LOG" | awk -F '[][]' '{print $2}' | sed 's/./&_/4' | sed 's/./&./8')" # e.g SLUS_003.97 # title max 32 char limit, not counting file extension or gameid TITLE="$( echo "${arg%.*}" | head -c 32 | awk '{$1=$1};1' )" # trim title to 32 char only cue2pops "$arg" "$GAMEID.$TITLE".VCD done rm EBOOT.PBP ======================================================================== Some tutorials say to just use the cue2pops tool for creating VCD files but on its own, I have not been able to get it to work and is why I suggest using the psx2vcd script instead. 4. After gathering all of your *.bin and *.cue files, open a terminal and change the directory to where those files are and run: psx2vcd *.cue Running the script by itself will print instructions, but trying to individually convert files instead of batch conversion does not seem to work. And by the way, most GNU/Linux systems have file managers that allow you to right-click within a directory. You may be able to just use "Open Terminal Here" instead of having to manually navigate with the 'cd' command and terminals like 'xfce4-terminal' have drag- and-drop capability for files instead of having to type full paths. But anyway... 5. The 'psx2vcd' script should then have created VCD versions of the games and the bin/cue files are no longer necessary; however, do not delete them yet because ps2psxe uses bin/cue and the Popstarter method may have issues. You should always at least play the game just long enough to either get to another level or save. 6. Use Free McBoot's "OPNPS2LD" (Open PS2 Loader) option. 7. Use Menu (Start button) and then Settings with something similar to the following: Disable Debug Colors On PS2 Logo Off Cache Game List (HDD) Off IGR Path <not set> Enable Write Operations On Remember Last Played Game Off Select Button Cross USB Prefix Path <not set> ETH Prefix Path <not set> Automatic HDD Spin Down 20 USB Device Start Mode Auto HDD Device Start Mode Off ETH Device Start Mode Off Applications Menu Display Mode Off PS1 Games display mode Auto Default Menu PS1 Games 8. Exit out of the Settings by making sure that you use the "Ok" option and then use "Save Changes" option, followed by "Exit." 9. Rerun Free McBoot's "OPNPS2LD" (Open PS2 Loader) option again and as long as your VCDs are in the POPS folder like mentioned before, the PS1 games should at least appear on the list. But unfortunately, or at least at the time of this writing, there is no program for GNU/Linux to add artwork, descriptions, and so forth. Windows users, for the time being, have the slight advantage of using the "Open PlayStation 2 Loader (OPL) Manager" program for doing this. There probably is a way to do this manually but at the moment, I do not know how. ------------------------------------------------------------------------ [Saving PS1 games] Because we are either using the ps2psxe or Popstarter methods, PS1 games are saved on virtual memory cards and not real ones. This is why I did not list a PS1 memory card as an option. And because I know that many of you are probably using 'Crash Bandicoot' for testing, just know that you cannot save until much later and there is no way of doing so from the main menu. Many people have gotten used to "autosave" and having it available from the pause menu and a lot of PS1 games were not designed this way. ######################################################################## ____ ____ ____ | _ \/ ___|___ \ Using the esrtool to patch | |_) \___ \ __) | PS2 ISO backups to then burn | __/ ___) / __/ on a DVD-R for playing on a |_| |____/_____| real Playstation 2. [ESR patching for PS2 games] 1. Download a copy of https://github.com/ali-raheem/esrtool and you will have to compile from source; however, it is as easy as opening a terminal, changing the directory to the esrtool folder and then running 'make' and that is it. 2. Using a backup of your PS2 game as an ISO, all you then need to do is run: '/path/to/compiled/esrtool/binary' '/path/to/PS2_Game.iso' 3. The esrtool will then make the ISO look like a DVD video. And if you do happen to get curious and try to take a look inside of the patched ISO, it will look like there is hardly anything there; that is normal and I really cannot explain how it hides all of the other files. 4. Burn the ISO to a DVD-R; most burner programs refer to this as "burning an image." And if you can, use the slowest burning speed possible. This is always a good idea when burning large ISOs or discs to be used on older devices, to which both are the case. 5. Make sure the Free McBoot memory card is inserted and then turn on the PS2 and place the burned DVD-R disc in the PS2 like you would any other game and just wait for it to play. ------------------------------------------------------------------------ [Saving PS2 games] In this tutorial, I only mention using the ESR patching method so as to burn working DVD-R discs for backed-up PS2 games. Because of this, you not only get a more accurate experience, but the games also save to a PS2 memory card like normal.
Total Comments 0