I changed the gskit_init_global() function because the mode argument is no longer needed, since it has integrated auto mode detection for PAL or NTSC interlaced field mode, which are the modes most used by legacy gsKit apps. The easiest fix is to change the macro in the gsInit.h header to define gskit_init_global() as gkit_init_global(mode). I also listed some methods to fix SDL's auto mode support at
http://forums.ps2dev.org/viewtopic.php?t=11573. I also included an explanation of how to set custom video modes using gsKit, in case anyone wants to modify SDL's underlying implementation for more variety. That explanation could probably be copied and pasted into the FAQ thread as well, since it applies to all gsKit development, generally.
dirsors wrote:also, gsKit installs on c:\msys\1.0\local\ps2dev\gsKit instead of C:\msys\1.0\local\ps2dev\ps2sdk\ports\gsKit
gsKit installs to its own directory because it's a separate unique library for the PS2 and not a ported library. The README states that it was originally planned for gsKit to be integrated with ps2sdk, after it was done, but it's still incomplete. I believe the original author is still working on VU0/VU1 support. More info here,
http://forums.ps2dev.org/viewtopic.php?t=7856. Coding for them actually looks somewhat similar to programming shaders from what little I've seen of that in Wine's code.
cosmito wrote:These good pratices should be clear for ps2sdk starters and nothing better than a README file to assure this information.
I agree, but it's generally for users of MSYS especially. There should be a explanation of why such standards exist as well, so I'll try as best I can to explain. Perhaps it can also be copied and pasted into the FAQ thread.
In Linux, compiling can be a fickle issue, as "make" can execute shell commands from Makefiles, like "mkdir" "cp" "rm", so you never do it as a superuser or with superuser privileges unless absolutely neccessary. The various rules in a Makefile have the possibility of passively creating root-only permissions on files or directories or destroying critical system files without error because every command in the Makefile would be all separate processes using superuser credentials. The FHS details proper directory permissions, but, to skim it down for ps2dev, this generally means you never compile inside of the /usr/local/ps2dev directory which is owned by root. This requires always compiling in a user owned directory, and then using "su" or "sudo" to "make install" as the final step. For most people, they usually get used to doing most things within directories under their $HOME directory as that's where they have permission to create/move/modify files without hassle. Some PS2 projects probably don't adhere to this as the developers have probably used "chown" to change the owner of /usr/local/ps2dev to their user account which is a bad practice. This is because the root-only write permissions keeps the ps2dev environment unchanged unless installing ps2sdk releases or gsKit releases, limiting changes to the basic sdk and toolset. I believe Cygwin emulates all of this as well but it's been years since I tried it and it's not a supported platform anymore for ps2dev.
MSYS, when I used it, didn't implement support for root/group/user permissions so it's like you're always "root". Running "make" in MSYS is simpler because all permissions are the same and generally only affect files and directories in the C:\MinGW directory, although the entire Windows filesystem is accessible by using /c. With uniform permissions, though, you never get used to being "jailed" in $HOME so new users build generally everywhere which kind of makes the hierarchy messy after a while. There's also no "stop and think" chances when issuing commands so you have to be careful, but problems with permission errors will generally never happen, except on Vista, like for programs or scripts with "install" in their name. If something does break, you can always reinstall.
I hope that's kind of understandable and I think I've covered the basics.
LBGSHI wrote:And...my name is LBGSHI :)
Oops, sorry about that, LBGSHI, :D. I guess I sorted GH alphabetically.