Yah… I have made lots of progress :3
Made my own crypto library for it, functioning algorithms:
~MD4
~MD5
~SHA1
~SHA2 (224, 256, 384, 512)
~HMAC
~CRC32
~RC4
Planned crypto additions:
~RSA
~DES & 3DES
~RIPEMD (160, 180)
~Tiger (128, 160, 192)
~Tiger2
~Blowfish
~Gost
~Whirlpool
~Snefru
~More!
More file support (than current X360):
~ZLIB
~ZIP
~XEX
~STFC (maybe)
BigInteger class (not really used, but needed internally for RSA)
Planned updates for FATX & STFS:
~Developers will be able to read/write files directly from Xbox devices as well as STFS packages rather than having to extract the data.
~STFS header data is not read right off the bat (to improve memory usage and time to read package)
So far my progress has been spending hours writing my own crypto implementations and getting them to work (srsly… making every algorithm purrfect is one hell of a goddamn task when you accidentally mistype the wrong index in a base class, FML). Other than that, its just retyping my lib into C++.
I’ve decided I’m going to set STFS and SVOD up differently, XPackage is going to be the base class, it handles the header. SVOD and STFS classes inherit XPackage so it will be much cleaner code. Header values will not be stored in a class in memory, that is a waste of space. Instead, a function (XPackage::hdrGetValue) will return a SysObj value (a custom class of mine used to return a boxed object) that contains your value defined by the ushort parameter of type (which i have macro’ed of each variable type). Likewise, XPackage::hderSetValue will set the desired value (providing the package was not opened as read only).
Also, I include things like compiling options for your [developers] needs. At the top of a header file “xglobal.h”, there are 2 things right now:
#define XSPEEDOPT
#define XINCLEXP
SpeedOpt means to optimize the speed at the cost of size, mainly just using inlining when i label functions XIN (another macro for inline), whereas if you comment it out, size of file is optimized.
InclExp means to include exports, say you want to export this to… .NET or C, keep this uncommented if you want to include functionality to include C exports for the library, otherwise if you are going to work in a C++ only environment, you can save file space by excluding them.
Oh and don’t worry you .NET whores, I will be providing C#/VB classes/lib to include in your program that utilize the Sys360 native library
Update on Sys360
2010 -
09.06
Sounds good. Do you know anything about STFC?
Please post more screenshots! I love looking at it.