LinuxQuestions.org
Share your knowledge at the LQ Wiki.
Go Back   LinuxQuestions.org > Blogs > TheOuterLinux
User Name
Password

Notices


Rate this Entry

Playstation 2 soft modding (for playing backups) from a GNU/Linux user's perspective

Posted 06-09-2021 at 12:57 AM by TheOuterLinux
Tags games, linux

Cross-posted from: https://theouterlinux.gitlab.io/Public/Articles/PS2.TXT

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.
Posted in Uncategorized
Views 329 Comments 0
« Prev     Main     Next »
Total Comments 0

Comments

 

  



All times are GMT -5. The time now is 05:12 AM.

Main Menu
Advertisement
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration