Please note this post is liable to change - Since I can fix some info on it later
I know I have to read many posts here, but I had to decide to deliver something or just read. I chose deliver something.
I have the following PS2 development environment running with my Windows XP:
- MINGW ("Minimalist GNU for Windows"), which is a port of the GNU Compiler Collection (GCC), and GNU Binutils, for use in the development of native Microsoft Windows applications
- MSYS ("Minimal SYStem"), which is a Bourne Shell command line interpreter system, offered as an alternative to Microsoft's cmd.exe, this provides a general purpose command line environment, which is particularly suited to use with MinGW. It includes a small selection of Unix tools. Learn more on http://www.mingw.org/
Both MINGW and MSYS I installed some months ago, using the Lukasz.dk MinGW Tutorial found here (http://lukasz.dk/playstation-2-progr...ingw-tutorial/).
My previous toolchain was the pre-compiled GHSI PS2SDK v4.5 (by LB), that can be obtained from here (http://gshi.org/downloads/gshi_ps2sdk.7z).
But now, my current toolchain is the following one (installed from the scratch).
I was able to detect the following SVN versions (please let me know if I should give you further details, and how I can do that):
Originally Posted by dlanor
To get them I followed these steps:
ps2sdksrc -> REV 1663
gsKit -> REV 1664
libjpg -> REV 520
ps2client -> REV 1664
ps2sdk -> REV 1663
1. Change the MSYS Shell environment initialization script "profile" file
2. Download PS2 Toolchain Script from ps2dev SVN repository
# Copyright (C) 2001, 2002 Earnie Boyd <firstname.lastname@example.org>
# This file is part of the Minimal SYStem.
# File: profile
# Description: Shell environment initialization script
# Last Revised: 2002.05.04
if [ -z "$MSYSTEM" ]; then
# My decision to add a . to the PATH and as the first item in the path list
# is to mimick the Win32 method of finding executables.
# I filter the PATH value setting in order to get ready for self hosting the
# MSYS runtime and wanting different paths searched first for files.
if [ $MSYSTEM == MINGW32 ]; then
if [ -z "$USERNAME" ]; then
# Set up USER's home directory
if [ -z "$HOME" ]; then
if [ ! -d "$HOME" ]; then
mkdir -p "$HOME"
if [ "x$HISTFILE" == "x/.bash_history" ]; then
export HOME LOGNAME MSYSTEM HISTFILE
for i in /etc/profile.d/*.sh ; do
if [ -f $i ]; then
3. Fix broken URLs into some PS2 Toolchain Script Files
svn export svn://svn.ps2dev.org/ps2/trunk/ps2toolchain
The original GNU and RedHat ftp urls into the following ps2toolchain script files) are broken.
So it is necessary to edit these script files (root\msys\1.0\local\ps2toolchain\scripts) in order to fix them:
001-binutils-2.14.sh ------> Replace "ftp://ftp.gnu.org/pub/gnu/" by "http://gnu.patan.com.ar/ftp/" *
002-gcc-3.2.2-stage1.sh ---> Replace "ftp://ftp.gnu.org/pub/gnu/" by "http://gnu.patan.com.ar/ftp/" *
003-newlib-1.10.0.sh ------> Replace "ftp://sources.redhat.com/pub/newlib/" by "http://jaist.dl.sourceforge.net/project/opensdk/OPEN-R%20toolchain/3.3.6/" **
004-gcc-3.2.2-stage2.sh ---> Replace "ftp://ftp.gnu.org/pub/gnu/" by "http://gnu.patan.com.ar/ftp/" *
*It could be any mirror from here (http://www.gnu.org/prep/ftp.html)
**I only found this file here (http://jaist.dl.sourceforge.net/proj...-1.10.0.tar.gz)
4. Make proper adjustments on Wget initialization file (if neeed)
If connection to those previous mirrors are made using http protocol instead of ftp protol, and through proxy server as well, it is necessary to create a Wget initialization file with the following statements:
(change "http://proxy.domain.com:8080", "user" and "password" to the params which match with yours needs)
http_proxy = http://proxy.domain.com:8080/
use_proxy = on
force_html = on
proxy_user = user
proxy_password = password
5. Run PS2 Toolchain Script
(Mine took one hour to be completed)
6. Create GSM Script
This script is based on dlanor's one posted here #705 (http://www.psx-scene.com/forums/show...&postcount=705)
7. Run GSM Script
if [ -e $BUP_DIR ]; then
echo SVN_BUP folder exists.
echo SVN_BUP folder is missing, so we create it
svn co svn://svn.ps2dev.org/ps2/trunk/ps2sdk --revision 1663 ps2sdksrc
svn co svn://svn.ps2dev.org/ps2/trunk/gsKit --revision 1664 gsKit
svn co svn://svn.ps2dev.org/ps2ware/trunk/myPS2/lib/libjpg --revision 520 libjpg
# Since old work libs may have been patched, and the user wants to recompile,
# we need to erase the old work libs and renew their sources from $BUP_DIR
echo erasing old lib work copies
rm -fr ps2sdk/*
rm -fr ps2sdksrc/*
rm -fr ps2sdksrc/.svn
rm -fr gsKit/*
rm -fr gsKit/.svn
rm -fr gsKit/.cdtproject
rm -fr gsKit/.project
rm -fr libjpg/*
rm -fr libjpg/.svn
echo all content of old lib work copies has been erased
echo starting to copy lib work copies from $BUP_DIR
cp -r SVN_BUP/ps2sdksrc ps2sdksrc
cp -r SVN_BUP/gsKit gsKit
cp -r SVN_BUP/libjpg libjpg
echo lib work copies are now ready
echo This is the point to apply custom patches to the work copies...
echo At present no such patches are being applied
echo it is now time to compile all the libs
cd $PS2DEV/ps2sdksrc && make clean && make && make install
cd $PS2DEV/gsKit && make clean && make all && make install
cd $PS2DEV/libjpg && make clean && make all && make install
echo all libs have now been compiled
echo script work is now complete
Run it using the following command:
(Mine took twenty minutes to be completed)
8. Close MSYS
Do it NOW:
9. Download PS2-Packer 0.4.4 win32 binary
The script is not able to build it.
The ps2-packer-0.4.4-win32.zip is available here (http://ps2dev.org/ps2/Tools/Packers/...inary.download)
Then extract it to the "ps2dev\bin\ps2-packer" dir.
10. Download GSM
GSModeSelector v0.23s3(2010.01.06) by doctorxyz and dlanor (compiled by doctorxyz)
- Internal improvements:
- BSOD issue due to caching/timing: _sw and _lw macros changed to entire expression, preceded by 'volatile' keyword (to avoid caching)
- gsKit OSD issue: Special handling of 1080i/720p vmodes, wich demands more VRAM than others
- OSD improvements:
- Idented a little bit for right (this avoid cutting of left characters on HDTV1080i vmodes)
I decided to attach here my latest home beta version here, because (at least on my reality) it isn't always possible to have quickly and easy access for web host services.
So, please note this release (v0.23s3) is intended only for the developers's use and it is based on the v0.23s2 one.
This was well understood, all kind of psx-sceners beta testers and ordinary users are welcome to download this release. ;-)
Extract it to the "/local/doctorxyz/GSModeSelector" dir (for instance)
Feel free (of course, when possible) to mix minev0.23s3 release with yours v0.23t.
(Unhappily I haven't time to do this muself. Maybe I do this in a couple of days, but I have no sure about it)
[/B]11. Change the end of MSYS profile file[/B]
[/B]13. Compile GSM![/B]
Open MSYS and type the following:
@dlanor, E P and other developers interested on help us)
make clean ; cls ; make ; ls *.ELF
I suspect - but I have no sure - that both unlink_GSM and Install GSModeSelector were using cached values or not, depending how GSM is called (exploit, dev1, ...), from what (uLE, FMCB, LBf, ...) and where it runs (fat or slim PS2 console). I noticed that on my old toolchain the compiler was using the deftypes.h from gslib due to my MSYS profile file has this lib set among other environment variables. And, into that header file, macro definitions like _lw and _sw does not use 'volatile' keyword. Different from the same header file that can be found into ps2dev system lib, which uses that keyword. On my new toolchain I haven't ps2lib nor declared into profile file neither physically. Just for prevent this issue to happen again on the future I changed the sw and lw macros by the entire expression preceded by volatile keyword. And now GSM come back to the life. We still have garbage on splash screen when starting on other vmodes than NTSC/PAL. But on OSD issue it seems solved. It is not necessary to press [DOWN] button twice anymore. (At least on my fat console when called from mass using uLE). Of course the release attached here (or a better one, mixing this v0.23s3 +v0.23t) needs extra peer review from coders and test from users (specially the pure NTSC ones like Bootlegninja and lee4).
Well, may the force be with us... Let's go ahead!