Update mode 8
Add mode 12, 13, 17, 22
Add missing dialog display
Add Error Log when an Message Dialog Option is not coded
Add sceKernelSetCompiledSdkVersion401_402 (suggested by Xele02) and wrapped two unload moudles
Fix SW lighting 
Fix fake sceFontGetCharGlyphImage() overflowing.
Prevent duplicate waiting threads in sema/mutex.

If something did a tight loop of a short wait/timeout, it might end
up getting on the waitingThreads list multiple times.

Eventually this caused a massive performance problem.
Merge pull request #304 from unknownbrackets/sema-timeout

Prevent duplicate waiting threads in sema/mutex
Merge pull request #303 from unknownbrackets/font-fix

Fix fake sceFontGetCharGlyphImage() overflowing
Merge pull request #302 from raven02/lightsw-fix

Fix SW lighting 
Merge pull request #301 from Xele02/master

Save / MsgDialog Update
Merge pull request #299 from raven02/sdk-fix

Add sceKernelSetCompiledSdkVersion401_402 (suggested by Xele02) and wrap...
Use 2.0 alpha value to match real PSP 
Merge pull request #305 from raven02/alpha-fix

Use 2.0 alpha value to match real PSP 
Fix ambient color in SW Transform
Merge pull request #306 from raven02/ambient-fix

Fix ambient color in SW Transform
Fix a crash when SAVEDATA_FILE_LIST is invalid.

I think that's what caused this anyway.
Fix sceKernelLibcTime() when time_t is 64 bit.
Make some libc-like funcs behave more like hw.
Do more cache invalidation, fix return values.
Be more deterministic about the time.

This way, if a state is loaded, the game doesn't know.
Also, if the host is slow/sped up, it won't get out of sync.