User talk:Magicus/Magicus's Tools/Parse-u8.c
Jump to navigation
Jump to search
Is there a way to repack or join the files back to a U8 archive?
- I don't know of a tool that does it yet (I think a few people on the wiibrew channel have done their own), but for the most part it should be pretty simple as the structure is fairly basic. Atacama 03:48, 3 May 2008 (PDT)
Building without Wii.git stuff
Since it's only using the data typedefs and big-endian reader functions, compiling in all of Segher's Wii.git stuff is unnecessary (especially since that also requires OpenSSL). As a workaround, replace
#include "tools.h"
with
typedef unsigned char u8;
typedef unsigned short u16;
typedef unsigned int u32;
typedef unsigned long long u64;
u16 be16(const u8 *p)
{
return (p[0] << 8) | p[1];
}
u32 be32(const u8 *p)
{
return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3];
}
(copied from tools.h) and compile with
gcc -g -DLARGE_FILES -D_FILE_OFFSET_BITS=64 -Wall -W -O2 parse-u8.c -o parse-u8
or just
gcc parse-u8.c -o parse-u8
if you don't care about very large files.
- Why not use standard C types and functions, rather than rolling your own? inttypes.h or stdint.h can be used to get uint8_t, uint16_t and friends, and the networking functions htonl and htons can be used to convert from native endianness to big endian. Besides being a standard part of POSIX, they will also work correctly if your computer's native byte order is big endian. Not all the world is Intel, you know. Koorogi
- I just thought I'd help others build it since it's hugely easier than getting all the dependencies working off-the-shelf. Oh, and I posted it, I just forgot to sign it. Maxim 11:46, 14 May 2008 (PDT)