Hrmm, that's strange, I can't download it from my link, either, but I can get it from the main page. Go to
http://homebrew.thewaffleiron.net/ragnarok2040 and download it from that page. It might be some sort of hotlink protection.
Actually, not all of the undefined references are undefined. Some of them are defined, but aren't linked in, so they need to be commented out when they're called, instead of defined. For other undefined functions, it depends on if you need them or want them or not. The function definitions in bleh.cpp are ones that porting.html said were needed for a port, so I provided them. Also, a bool8 function should return either true or false (or an unsigned char, since that's the type). I only returned NULL on functions that returned a pointer, such as char *function() which will cause either a NULL exception error if the pointer is used or tell the function that called it that NULL was returned.
In the new patch, I added snapshot.cpp back into the build because it's needed for savestates (snapshots) so S9xSPCDump and S9xUnfreezeGame are defined again. I also added #ifdef/#undef guards to the function calls that are defined in objects that aren't linked in, so their calls won't be included into the final object at compile-time. For examples of what I did, search for the CHEAT_SUPPORT symbol or MOVIE_SUPPORT symbol inside of the source code using an ide like CodeBlocks. You could also open up the patch inside of Wordpad to see what I've done.
If you want a good C programming book, you should look for Practical C Programming by O'Reilly and for C++, you should get C++: The Complete Reference by Osborne. And for pointers,
http://www.gamedev.net/reference/articl ... le1697.asp, which I found useful. There's also plenty of sites that have information about programming in C, as well.
Snes9x is coded mostly in C, but compiled with the C++ compiler because of some features they wanted that weren't available with just gcc, but because of that it has the same quirks a C++ program would have. I think that answered everything from your last two posts, :D.
Extra note:
Can someone try compiling snes9x-1.51 with my patch using their ps2dev toolchain on Linux or Cygwin? That'll tell me if some of the errors are from a bug in MinGW not compiling libstdc++ correctly (weird bug where gcc tries to use a windows path for some reason but doesn't properly '\\' so I get c:msyslocalps2deveebinar.exe type errors).