Feature request for WIT (a tool of the WWT package)

Discussion in 'Wii - Hacking' started by Wiimm, Apr 17, 2010.

  1. Wiimm
    OP

    Wiimm Developer

    Member
    2,120
    334
    Aug 11, 2009
    Gambia, The
    Germany
    What is WIT?

    wit (Wiimm ISO Tool) is part of the package WWT.

    Features:
    • wit (and the whole WWT package) is available for Linux, Windows and Mac. Current sources are always in a SVN repository.
    • It can handle ISO images in the 4 file formats PLAIN ISO, WDF, CISO and WBFS. Splitted files are used transparently.
    • It can convert from each of the 4 formats into all other formats.
    • Scrubbig and splitting on the fly.
    • Renaming ID and title in the ISO header.
    • Comparing ISO in raw and scrubbed mode.
    • Renaming ISO files using WiiTDB titles.
    • Dump the data structure inside ISO images.
    What are my plans?

    My plans are in this order:[*] wit should extract all or only selected files from ISO images to a destination directory. It should support output formats that other tools (like SNEEK) need.[*] wit should built ISO images from a file structure.[*] wit should merge an ISO image with extracted (and modified files) to a new ISO image.[*] wit should compare ISO images on file level and, if wanted, generate a (binary) patch file.[*] wit should patch ISO images with the previous generated patch file.Already realized
    • wit can list all files of WII ISO files.
    • wit can extract the files all or only selected files from ISO images to a destination directory. It support the sneek file layout.
    • wit accept rules to filter files for all commands above.
    • wit can compose an trucha signed ISO image from a file structure.
    • wit can compare ISO images on file level.
    • wit can decrypt and encrypt ISO images on the fly while copying.
    • wit can verify ISO images (find bad dumps). It do it by calculating all check sums and comparing them with the stored hash values (H0..H4).
    Brain storming and feature request!


    And now I asked you for ideas? Inspire me!

    I need also references about file system layouts (e.g. for sneek). I know that there are some archives (collection of much small files). I need technical info about this too.
     


  2. giantpune

    giantpune GBAtemp Addict

    Member
    2,860
    122
    Apr 10, 2009
    United States
    does the ID changing affect the ticket? currently the only way to change the ID in the ticket, and thus the folder the game will use for a gamesave, is with wiiscrubber & the partition.bin editor. if youre just looking for features to add, it would be nice to be able to change the save spot for a game with 1 little command rather than to have to extract the partition.bin, change the stuff, and put it back in the ISO.

    for the sneek layout, here's the basic layout...
    each partition of a ISO is put in its own folder. in that folder is the ticket, TMD, cert, and 2 more folders.
    one of those 2 more folders is called sys and it has the main.dol, apploader, fst, boot.bin, and bi2. the other folder is called files and it contains everything described in the fst. look at the spoiler in post 136 http://gbatemp.net/index.php?showtopic=217092&st=135
     
  3. Blue-K

    Blue-K No right of appeal.

    Member
    2,572
    1
    Jun 21, 2008
    Swaziland
    Helvetica
    Well, I can't think of anything more I would like...sounds awesome [​IMG].
     
  4. cwstjdenobs

    cwstjdenobs Sodomy non sapiens

    Member
    1,757
    1
    Mar 10, 2009
    Ankh-Morpork
    Been able to just update the fst etc for sneek+di extracted files without building an ISO would be cool.
     
  5. Wiimm
    OP

    Wiimm Developer

    Member
    2,120
    334
    Aug 11, 2009
    Gambia, The
    Germany
    Where can i find you disc dumper?
    It would nice to have it to compare the wit output against yours.
     
  6. nicksasa

    nicksasa GBAtemp Maniac

    Member
    1,410
    0
    Oct 25, 2008
    Belgium
    extracting into right file structure is easy, my app already does that, 1 look @ the page on sneek wiki
     
  7. xander150

    xander150 GBAtemp Regular

    Member
    112
    0
    Oct 12, 2009
    Gambia, The
    Yes, it is easy, many apps do it, you are not the first/only one [​IMG] And Wiimm knows how to extract files, the question was just which folders are needed to get it compatible with sneek.
     
  8. Wiimm
    OP

    Wiimm Developer

    Member
    2,120
    334
    Aug 11, 2009
    Gambia, The
    Germany
    I'm searching an other extract application to confirm my work.
     
  9. nicksasa

    nicksasa GBAtemp Maniac

    Member
    1,410
    0
    Oct 25, 2008
    Belgium
    use YSO ? then you can compare the files. idk any other apps that do it (because i don't use it i guess)
     
  10. Wiimm
    OP

    Wiimm Developer

    Member
    2,120
    334
    Aug 11, 2009
    Gambia, The
    Germany
    @nicksasa
    Is it so difficult to send me a executable of your tool?
    Comparing the identical results of 2 or more tools is the easiest verification for that tools.
     
  11. xander150

    xander150 GBAtemp Regular

    Member
    112
    0
    Oct 12, 2009
    Gambia, The
  12. nicksasa

    nicksasa GBAtemp Maniac

    Member
    1,410
    0
    Oct 25, 2008
    Belgium
    Nobody asked for the source so ...
     
  13. Wiimm
    OP

    Wiimm Developer

    Member
    2,120
    334
    Aug 11, 2009
    Gambia, The
    Germany
    ... it's time for me to ask, because in the moment i don't know how to extract all the files in sys/.

    @xander150:
    Thanx for the link.
     
  14. xander150

    xander150 GBAtemp Regular

    Member
    112
    0
    Oct 12, 2009
    Gambia, The
    so I ask for it or a Mac Universal or Intel binary to test it
     
  15. nicksasa

    nicksasa GBAtemp Maniac

    Member
    1,410
    0
    Oct 25, 2008
    Belgium
    0.11 BETA Source GPLv2
     
  16. Wiimm
    OP

    Wiimm Developer

    Member
    2,120
    334
    Aug 11, 2009
    Gambia, The
    Germany
    Thank you, that helped me. sneek compatible output is now complete.
     
  17. giantpune

    giantpune GBAtemp Addict

    Member
    2,860
    122
    Apr 10, 2009
    United States
    boot.bin is a constant 0x440 bytes at the start of the partition.

    bi2.bin is 0x2000 bytes right after the boot.bin

    the apploader.img follows directly behind that. read the apploader header to get the size. ( http://code.google.com/p/usbloader-gui/sou...der/apploader.c line 366 )

    you get the fst.bin size and offset and the main.dol offset from reading the last 0x20 bytes of boot.bin. shift the offsets max)
    ÂÂÂÂÂÂÂÂÂÂÂÂmax = offset + size;
    ÂÂÂÂ}

    ÂÂÂÂ// iterate through the 11 data segments
    ÂÂÂÂfor (i = 0; i < 11; ++i) {
    ÂÂÂÂÂÂÂÂoffset = be32 (&header[0x1c + i * 4]);
    ÂÂÂÂÂÂÂÂsize = be32 (&header[0xac + i * 4]);
    ÂÂÂÂÂÂÂÂif (offset + size > max)
    ÂÂÂÂÂÂÂÂÂÂÂÂmax = offset + size;
    ÂÂÂÂ}

    ÂÂÂÂreturn (max);
    }[/spoiler]
     
  18. Wiimm
    OP

    Wiimm Developer

    Member
    2,120
    334
    Aug 11, 2009
    Gambia, The
    Germany
    I was asked for compiled files per PN.
    The compiled files and the sources are always available. See http://wiimm.de/wwt/ for details.

    @giantpune
    thanx for info.
     
  19. Wiimm
    OP

    Wiimm Developer

    Member
    2,120
    334
    Aug 11, 2009
    Gambia, The
    Germany
    wit EXTRACT is now ready. I have compared the output with "yso" and "wii-scrubber" and all seems ok.
    wii-scrupper only creates the additionally file "banner.tpl". What's that?

    @giantpune
    The code example helped my to save time. Thanx again.

    @nicksasa
    Do you know that "yso" have a problem when extracting "ALL PARTITIONS"?
    All partitions are extracted to the same directory and some files of prior partitions are overwritten.
     
  20. giantpune

    giantpune GBAtemp Addict

    Member
    2,860
    122
    Apr 10, 2009
    United States
    my guess about banner.tpl is that it is only for gamecube games. there is a certain chunk of the opening.bnr for GC games that you can read and slop a header on and it will be a tpl.