UOP Archive File Format Schematic

Discussion in 'General Programming' started by Vorspire, Oct 11, 2017.

  1. Vorspire

    Vorspire Knight

    Joined:
    Jan 25, 2005
    Messages:
    12,880
    Likes Received:
    684
    The new UOP archive format for Ultima Online game files as of late have not been well documented.

    After a bit of investigation and a lot of cross-referencing with the help of the Orion team, I've managed to draft what I consider a simplified schematic of the file format/structure.

    Keep in mind that this structure does not cover individual data structures, just the actual UOP storage format.

    I hope this will help break down some walls that may otherwise be hindering the development of new and improved tools. I am currently developing a simple UOP SDK library with read and write capability that can hopefully replace or patch missing functionality in the Ultima SDK, RunUO and ServUO cores.

    Code:
    	/*	 
    	 *	Unknown1[4]
    	 *	VersionMajor[1]
    	 *	VersionMinor[1]
    	 *	VersionBuild[1]
    	 *	VersionPatch[1]
    	 *	Unknown2[4]
    	 *	BlockStart[8]
    	 *	BlockCount[4]
    	 *	FileCount[4]
    	 * 
    	 *	FOR BlockCount[12]
    	 *	{
    	 *		BlockFileCount[4]
    	 *		BlockStartNext[8]
    	 *		
    	 *		FOR BlockFileCount[32]
    	 *		{
    	 *			HeaderStart[8]
    	 *			HeaderLength[4]
    	 *			DeflatedLength[4]
    	 *			InflatedLength[4]
    	 *			HashCode[8]
    	 *			AdlerValue[4]
    	 *			ZLibQuality[2]
    	 *		}
    	 *	}
    	 *	
    	 *	FOR FileCount[*]
    	 *	{
    	 *		Header[HeaderLength]
    	 *		Data[DataLength]
    	 *	}
    	 */
    
    If anyone has anything to add to this, please feel free, I may have missed something!

    Check out the Orion client project, you don't want to miss out!
     
    #1 Vorspire, Oct 11, 2017
    Last edited: Oct 11, 2017

Share This Page