BUGS (gcsim) :
- 100Mbps don't work. When using this speed, the GC network interface is continuously flooded (even when only two packets are sent in a row, the GC asks for the second one another time, using the failover mechanism implemented in gcsim). When adding only a little usleep(1) between every packets (to prevent them to flood the GC), it becomes slower than 10Mbps without the usleep(). My advice is : keep to 10Mbps unless we got a loader that uses something like TCP.

- (this problem is related to gcsim's protocol, not this server) When the network between your PC and the GC is too loaded, or your PC is making heavy computations, the network packets will arrive late to the GC. The later will, in the mean time, keep flooding the PC with queries. Thus, as there is nothing like TCP's SEQ/ACK in gcsim's protocol, the server isn't able to detect the duplicates packets and it will answer once to every request the GC previously sent, which will lead to an unsynchronisation of the two boxes.

BUGS (acl) :
- No savehack support yet...

- network problem (when compiled with optimization options, the gamecube happens to be flooded by packets sometimes. It seems to work fine when the gcc optimizations are not used)
  - the easy solution is to compile without optimisations
  - the best solution is to implement something that will count the bytes sent, and wait everytime we reach a defined limit.

- inflate crashes (sometimes... why?)

- malloc issue (sometimes, we get a query with 1'000'000'000 and more as the size... this is obviously a bug)

Features :
- supports the newly released s3-gcsim preview

- 100% GPL : you can modify it, or embeed it in another program, but you HAVE TO release the sources of every derivative work you publish.

- uses zlib to compress the images, and transparently decompress them on the fly when needed. So the files are compressed 100% of the time : they take less space on your disk AND you don't have to decompress them to use them, as it's done in RAM. However, you still can uncompress them to use with another loader.

- also supports uncompressed files

- goes up to 1MByte per second (depending on the average packets size) even with compressed files.

- the compressed file format is endianess free, you can use on a PC an image you compressed on a Mac.

- the loader should compile and run fine under every Unix environment (FreeBSD, NetBSD, OpenBSD, MacOSX, CygWin, Solaris...). Just feel free to try :)

Usage (gcsim) : 
- launch "psoload -i 192.168.1.100 s3-gcsim.dol"
- launch "simserv <filename.gcm>" OR "simserv <filename.gsc>"
- boot PSO and start an online game
- if your GC is directly connected to the server with a crossed cable or if you use a switch, select 10Mbps, Full duplex
- if you use a hub or worse, select 10Mbps, Half duplex (hubs don't support Full duplex mode)
- if you use a switch, router or more and it hangs when using 10Mbps, Full duplex, you might want to try 10Mbps, Half duplex instead.
- play

Usage (acl) :
- launch "psoload -i 192.168.1.100 s3l-10b.dol" (or any other acl-like loader)
- launch "aclserv <filename.gcm>" OR "aclserv <filename.gsc>"
- boot PSO and start an online game
- play

Compression :
- launch "gscomp <blocksize> <filename.gcm> <filename.gsc>"

- The uncompressed file is then split in chunks of `blocksize` bytes, and each chunk is compressed independently. it will take at least one block to decompress for each client request, thus blocksize shouldn't be too big (you don't want to decompress 1 or 2MB each time 10 or 20kB are needed, do you?). In the other hand, if blocksize is too small, the compression isn't very efficient. I'm currently using 32768 as the blocksize, and it seems to be just fine.

- Note : if the game you are currently compressing uses only very small packets (you can see this when the dots on the server terminal are appearing really quickly and the network speed is lower than 500 KBytes per second), you might want to reduce the block size (ie : add debug info to the code that computes the average packets size or something)... But in most cases, 32768 is just perfect !

Uncompression :
- launch gsuncomp <filename.gsc> <filename.gcm>
