*Added file caching
*Updated EXIDMA and EXIImm to prevent register corruption
*Updated DCInvalidateRange to handle smaller than 32 bytes reads (Triforce)
*Removed __OSReadROM patch
*Removed unused patches
*Optimised some code
*IPL reads are now done to MEM2 first and then copied to dst to prevent data corruption

Note: Certain games try to load the IPL font and crash or don't display any font at all when the sd:/ipl.bin or usb:/ipl.bin is missing!
(i.e. FZero-GX)

File caching:
Put a file called cache.txt into the same dir as the game.iso and put any filenames you want to cache in there.
There is currently a file limit of 220 entries.
Try to use font_ansi.bin if no ipl.bin file is found.
-added a new controller patching method which seems to be required for some games to be controllable, its still not fully tested so I cant promise every game is controllable now
-used wrong devkit for r27, sorry