Midway File Extractor

From XentaxWiki
Jump to navigation Jump to search

About Midway File Extractor

# Name:        Midway File Extractor
# Purpose:     Decompresses and extracts files from Midway/Atari N64 ROMs
#              Related Companies: GT Interactive, Williams, Infogrames
#              Also incorporated: Electronic Arts, Nintendo, Marigul, Rare
# Requires:    Python 3.3.0.0, Tkinter 8.5+
#
# Author:      Zoinkity
#
# Created:     23/06/2011
# Copyright:   (c) Zoinkity 2011
# Licence:     <unlicenced>

Screenshots

How to use this tool

1. Uinstall any newer Python versions (e.g. 3.10) if you have any.
2. Install Python 3.4 (64-bit) https://www.python.org/downloads/release/python-340/
3. Install pyPNG

pip install pyPNG

4. Double click on the "Midwaydec.pyw" file.

5. Prepare a file list and save it as TXT file. Example content below:

#----------------------------------------------
# <GAME_NAME> (PS1) - <DESCRIPTION>
#----------------------------------------------
0x0A	LZ	test01.bin
0x3678	bin	PLACEHOLDER1
0x1E7EB10F	bin	PLACEHOLDER2
0x1E7EB30

Remember that start offset of the another file is a end offset of the previous file.
At least 3 files are required in the file list - otherwise the tool crashes.
If you want to extract only one file, you can define placeholder files as "bin" type.
They will be skipped if the offsets are wrong.

6. You can use command line arguments to automate extracting:

.\Midwaydec.pyw" -l filelist.txt -r archive_name.bin -d "TEST\OUT"

Further Information and Downloads

Readme File

Midwaydec.pyw - Midway/Atari N64 Decompression Tool
	version 1.3; requires python 3.3 + tkinter 8.5

  Originally this began life as a Midway/Atari N64 game decompression tool.  Over time many additional modules have now been added.  It now acts as a general N64 decompressor, providing compression modules for a wide swath of companies and individual games.

  Unlike other automated decompressors, this requires user-made filelists.  The reason being is to extract individual files regardless the format, not simply scan for compressed information.  A proper filelist will contain enough information to extract all the pertinent data files in a game and, in some cases, format them into a more usable or human-readable encoding.

Filelists:
  As none of these files contain headers, lengths, or other identifiers, you will have to provide filelists for each specific game.  Deriving the lists is game-specific; this program requires you providing one.
  Deriving these lists differs by title.  Only a few have similiar filetable structures, and some have compressed indicies which require you to know the location of the primary archive.
  For example, Gauntlet Legends has a simple uncompressed filetable only requiring you know the location of the ROMDisk header.  A table reveals the last few entries preceeding it.  By comparison, the Rush series have a compressed index requiring reading the address from the bootcode.

Basic Filelist Format:
  Filelists consist of 1-3 entries, and these MUST be tab-delineated.  They follow the format below.
position	Type	filename (optional)
0xF80032	bin	output.txt
  The first entry is a ROM address.  If the value is in hex, you must preceed it with "0x".
  Archives types determine which decompression scheme to use and whether the file should be extracted.  If you do not provide one, it will not appear in the filelist.  Each module registers its own extensions, so a complete list can be found by using the built-in 'list types' feature in the tools menu.  A list of supported filetypes is below.  If you don't provide anything in this field or give it type 'None' it will not be used for extraction.
  Optionally, you can provide a filename.  These override autogenerated names.
  
  The size of a file is usually determined by the address of the next entry.  That means the last entry in the table will not be extracted.  Usually this will just be an address, and it acts as the endpoint for the final file.
  
  See below for a more advanced filelist format breakdown.

Supported Filetypes:
  Filetype support is provided by additional modules.  These register typecodes with extraction routines.
  The type can be one of these:
    bin      uncompressed binary file which can be extracted
    None     skipped; no decompression will occur
  Types provided by modules:
    LZ       Midway LZSS derivative
    WLM      Williams LZSS derivative
    AVL      Traditional LZSS without a header, first noticed in Avalanche titles
    AVL_0    Avalanche in binary mode (00 fills rather than spaces)
    LZSS     Traditional LZSS file
    LZSS_0   Traditional LZSS file in binary mode (00 fills rather than spaces)
    LZSS_B   Traditional LZSS file with big-endian header
    LZSS_0B  Traditional LZSS file, big-endian header, in binary mode (00 fills rather than spaces)
    HUFF     Traditional Huffman compression
    LHUF     Traditional Huffman compression in binary mode (00 fills rather than spaces)
    ARI      Traditional LZSS-Arithmetic file
    ARI_0    Traditional LZSS-Arithmetic file in binary mode (00 fills rather than spaces)
    ARI_B    Traditional LZSS-Arithmetic file with big-endian header
    ARI_0B   Traditional LZSS-Arithmetic file, big-endian header, in binary mode (00 fills rather than spaces)
    02TG     Sydney 2000 compression
    Asmic    Asmic LZSS compression
    Aidyn    Aidyn Chronicles LZB variant (compression type 2)
    BLTZ     NFL Blitz series RLE compression
    SUB      MK Mythologies compression
    CSR      RLE compression from Stunt Racer 64
    CR       Custom Robo and Custom Robo V2 compression format
    CSR      Stunt Racer 64 RLE file
    DLZ      Titus LZW file
    EA       EA's LZ derivative
    EAHD     format internally used by OVLN and BIGF, bearing the header 10FB.
    EB       Excitebike64 compressed file, autodetected format, always in a single part.
    EB-raw   Excitebike64 compressed file, no header.
    EDL      Eurocom Decompression Library; autodetects EDL0-EDL2
    EDL0     Eurocom Decompression Library (Store)
    EDL1     Eurocom Decompression Library (LZ)
    EDL2     Eurocom Decompression Library (RLE)
    FLA2     Glover LZSS compression
    GO       1kb LZSS derivative, first identified in Densha de Go!
    H2O      File wrapper for certain H2O titles
    LE       LZE compression scheme
    LZYF     LZ format used in the Treasure game Bangaioh
    MADF     Compression format in EA's Madden games; direct output not supported
    Mass     Mass Media headerless compression; requires passing decompressed size
    MMHdr    Mass Media file with long, big-endian filesize preceeding data
    MIL      Theoretical stream format of MIO, mostly for giggles
    MIO      Older Nintendo sliding window compression format
    Nagano   Interleavable LZW found in Konami Nisitenma-Ichigo titles
    Night    Nightmare Creatures compressed files
    NL_Old   Nintendo old filelist table games; ie. StarFox64
    NL_New   Nintendo later filelist table games; ie. Zelda Series
    NTarc    Nushi Tsuri archived huffman files
    ODT      O.D.T.'s compression format
    OVLN     Structured format used by EA Games
    PERS-SZP Pokémon Stadium Compressed File Wrapper
    Polaris  LZO1x implementation in Polaris SnoCross and H2O titles
    RareLZB  LZB implementation for Blast Corps sound banks
    RNC      Rob Northern Computing file format, also handling indexed and archive types
    RNX      custom multipart Rob Northern Computing files
    Sno      16bit LZ format in Snowboard Kids 2
    Sphere   Tetrisphere compressed files
    Taz      Taz Express files
    TBR      Titus bitwise RLE format, no header
    TBR8     Titus bitwise RLE format, with decompressed size and target rdram address in header
    Tigger   archive for multipart files in Tigger's Honey Hunt
    TGR      Top Gear Rally multi-part zlib files
    Twisted  Twisted Edge LZ file
    vpk      HAL Laboratories bitwise lzss with huffman encoding
    WAD      compressed format in WAD-structured files (iD Software)
    Yaz      Nintendo compressed stream format
    Yay      Nintendo compressed file format
  Many games use different variations on the gzip/zlib headers.
  These types act as wrappers to allow extraction.
    GEZip    RareZip (.rz) file in GoldenEye
    KIZip    RareZip (.rz) file in Killer Instinct Gold
    PDZip    RareZip (.rz) file in Perfect Dark
    BKZip    RareZip (.rz) file in Banjo Kazooie
    BTZip    RareZip (.rz) file in Banjo Tooie
    DKZip    RareZip (.rz) file in Donkey Kong 64
    BFDZip   RareZip (.rz) file in Conker's Bad Fur Day
    F5ZLB    Factor5 zlib file
    REzip    Resident Evil II zlib file
    MALzip   Milo's Astro Lanes zlib file
    WDC      World Driver Championship/Stunt Racer 64 Zlib implementation
    ZLB      Dinosaur Planet zlib wrapper
    Z        headerless Z format (zlib); autodetects Z0-Z2
    Z0       Z format 0
    Z1       Z format 1
    Z2       Z format 2
  These may be extracted as either archives or individual files.
  Select the appropriate flags in the 'Options' menu.
    BIGF     bigfile format used by EA Games
    BOFS     GameTek BOFS Archive
    BOLT     Mass Media BOLT files, probably specific to N64 (or at least this era)
    Burp     unloads content of Infogrames Burp archives
    GZ       GZip files, alias by extension
    GZIP     Gzip files
    MAD      EA's Madden archive file, containing MADF and BIN files
    PKMNARC  Pokémon Stadium archive
    RNCA     dedicated type for Rob Northern Computing archives
    SRT      Super Robot Taisen 64 archives
    TUT      unpacks contents of Dezeamon 3D TUT_SRAM.SYS archive.
    XG2      XG2 Archive
    ZIP      PKZip implementation in V-Rally
  Excitebike uniquely has individual files that are assembled from multiple parts.  These can be extracted whole or in part.
    EB-Brs   Excitebike64 4-part compressed archive
    EB-Big   Excitebike64 Big multipart file.
  Soundbanks may be extracted as either raw or midi files with the appropriate flag in the 'Options' menu.
    S1raw    Soundbank (S1 type) Midi files
    S1lz     Soundbank (S1 type) Midi files w/ Midway compression
    S1lzs    Soundbank (S1 type) Midi files w/ LZSS compression
    S1wlm    Soundbank (S1 type) Midi files w/ Williams compression

  Some files can be optionally formatted with the appropriate 'Options' menu flags.
  A few of these are only available if the PyPng module is installed.  See python.org for details.
    AKItext  Text banks in AKI Wrestling titles
    GO       extract unformatted Densha de Go! image data
    GScodes  GameShark/Pro Action Replay codelist, formatted as text
    IDX      extract STR.SYS using IDX.SYS in Dezeamon 3D
    PRESJPEG Pokémon Stadium JPEG wrapper
    TEX      TEX texture files in AKI Wrestling titles
    TEXarc   TEX texture archives in AKI Wrestling titles
    
  The optional filename, if set, will override the generated archive name.  Normally, archives are extracted as "address.bin", where address is the ROM address.
  If a compressed size is not given, the size of each file is determined by using the entry following it.  For that reason, the filelist would normally end with an entry marking the actual end of the last block of data.  Since you don't want to extract this block, don't set a type to it.

Recompression:
  Currently unsupported for most types.  
  Compressing certain individual files can be done from the Tools menu.  However, no capacity is provided to inject them in this program.
  The reason is that each game has its own file storage method requiring specialized code to move binaries.  The files would have to be identical or smaller in size, and quite honestly it seems outside the scope of this decompression tool.
  You could, however, compress a file manually and inject it via a hex editor.

Using This Program:
  This program requires three things:
    1) An unbyteswapped N64 ROM
    2) A filelist corresponding to this ROM
    3) A module capable of extracting the filelist
  The filelist must match the title and region.  If it doesn't, you'll get bad data and a stack of errors.
  If the tool_IDgrab module is loaded, you can also use 'Commands\Autodetect Pointers' for certain types of files.

  Unzip Midwaydec, the filelist folder, and modules into a single directory.  If that directory or the directory with your modules has a folder '_pycache_', delete that folder.  Otherwise, it will use old precompiled versions of those scripts, and that is likely to give you nothing but grief.

  Once you load a filelist, you can decompress any files in it with a type assigned to them.  The program will call the pertinent decompressor using the type name specified in the filelist.
  To decompress all extractable files, use the Decompress All button.  To grab certain files, use Decompress Files and select the ones you want from the list.
  If you want to list the files in the archive without decompressing them, use the List Files button.  The list will appear in this prompt box.  To list all entries including unextractable ones, set the appropriate flag in the 'Options' menu.

  In the 'File' menu is the option to change the output directory.
  Normally, a ROM is asked for when beginning decompression and closed afterward.  You may, instead, open a ROM via the 'File' menu.  This will remain open until you switch ROMs, close it, or quit the application.

  As mentioned before, certain archive types allow you the option of extracting the archive itself or all the data within it as seperate files.  These toggles are found in the 'Options' menu.
  You may clear the log by either right-clicking the log window and selecting the option or seltecting 'clear log' from the 'Output" menu.

Command Line Options:
  You may specify these options when invoking the script:
    -d <path>     --dir <path>
                  change working directory to <path>
    -l <file>     --list <file>
                  load filelist <file>
    -r <file>     --rom <file>
                  load ROM <file>
    -m <name>     --module <name>
                  load module <name>

 +_+

Modules:
  This script uses a plugin-like feature to load modules registering each decompression type with the code needed to decompress it.  Any module in the 'modules' folder will be read at startup.  After that, any module named in the .ini file will be loaded, followed by any module loaded on the command line.  You may also load modules via the 'tools' menu.  Note that to load the module from the command line or .ini file it must be in the system path.
  Using the 'save ini' feature in the tools menu will generate an .ini file with whatever modules are currently loaded.
  The only requirement to writing your own module is that it must have a register() method.  All the register functions for any tools or decompression types should be placed in this method.

 +_+

Midwaydec.ini:
  The .ini file has most of the functionality of the command line.  This describes the possible fields:
[Modules]
module_name_1
module_name_2

  [Modules] starts a list of module names that will be loaded at startup.  Note, the modules have to appear someplace in sys.path() or they will not be found.  You can't, currently, give explicit filenames or extensions either, though hopefully this will change in the future.
  Each module name to be loaded simply follows the last.

[Options]
OutputDir = path
Filelist = path\list.txt
ROMfile = path\ROM.n64

  OutputDir changes the default path, just like using the -d flag.  Filelist loads the given filelist by default, similiar to the -l flag.  ROMfile, like -r, sets the default ROM.  This is a convenience mostly for testing or debugging a filelist, saving entering the data at the command line.

 +_+
 
 Provided Filelists:
   Filelists can be found in the filelist folder.  These contain the most pertinent files, although others may exist in the game.  The naming convention uses the internal name in the header, followed by the 5-byte ID code.
   As of version 1.3, the following lists are included:
AIDYN_CHRONICLES-NAYE.txt	Aidyn Chronicles (North America)
Army Men Sarge-NAME.txt		Army Men: Sarge's Heroes (North America)
Army Men Sarge-NAMP.txt		Army Men: Sarge's Heroes (Europe)
ARMYMEN SARGE 2-N32E.txt	Army Men: Sarge's Heroes 2 (North America)
BATTLETANX-NBXE.txt		BattleTanx (North America)
BATTLETANXGA-NBQE.txt		BattleTanx: Global Assault (North America)
Blast Corps-NBCE1.txt		Blast Corps v1.1 (North America)
CAL Speed-NCLE.txt		California Speed (North America)
CAL Speed-NCLP.txt		California Speed (Europe)
CruisnExotica-NXOE.txt		Cruis'n Exotica (North America)
CyberTiger-NT4E.txt		CyberTiger (North America)
CyberTiger-NT4P.txt		CyberTiger (Europe)
???????GO!64-ND6J.txt		Densha de Go! 64 (Japan)
DEZAEMON3D-CDZJ.txt		Dezaemon 3D (Japan)
DezaemonDD-EDZJ.txt		Dezaemon 3D Expansion Disk (Japan)
Doom64-NDME.txt			Doom 64 (North America)
Doom64-NDMJ.txt			Doom 64 (Japan)
Doom64-NDMP.txt			Doom 64 (Europe)
Extreme G 2-NG2E.txt		Extreme G2 (North America)
GauntletLegends-NGXE.txt	Gauntlet Legends (North America)
GauntletLegends-NGXJ.txt	Gauntlet Legends (Japan)
GauntletLegends-NGXP.txt	Gauntlet Legends (Europe)
Hexen-NHXE.txt			Hexen (North America)
Hexen-NHXJ.txt			Hexen (Japan)
Hexen-NHXP.txt			Hexen (Europe)
Indiana Jones-NIJE.txt		Indiana Jones and the Infernal Machine (North America)
Lode Runner 3D-NLRE.txt		Lode Runner 3D (North America)
Lode Runner 3D-NLRJ-NLRP.txt	Lode Runner 3D (Japan, Europe)
Mace-NMEE.txt			Mace (North America)
Mace-NMEP.txt			Mace (Europe)
Mega Man 64-NM6E.txt		Mega Man 64 (North America)
Mission Impossible-NMID.txt	Mission: Impossible (Germany)
Mission Impossible-NMIE.txt	Mission: Impossible (North America)
Mission Impossible-NMII.txt	Mission: Impossible (Italy)
Mission Impossible-NMIP.txt	Mission: Impossible (Europe)
Mission Impossible-NMIS.txt	Mission: Impossible (Spain)
MK_Mythologies-NMYE.txt		Mortal Kombat Mythologies - Sub-Zero (North America)
MK_Mythologies-NMYP.txt		Mortal Kombat Mythologies - Sub-Zero (Europe)
MortalKombatTrilogy-NMKE2.txt	Mortal Kombat Trilogy (North America)
MortalKombatTrilogy-NMKP.txt	Mortal Kombat Trilogy (Europe)
NEWTETRIS-NRIE.txt		The New Tetris (North America)
NEWTETRIS-NRIP.txt		The New Tetris (Europe)
NFL Blitz-NBZE.txt		NFL Blitz (North America)
Blitz2k-NBIE.txt		NFL Blitz 2000 (North America)
NFL Blitz 2001-NFBE.txt		NFL Blitz 2001 (North America)
NFL Blitz Special Ed-NSZE.txt	NFL Blitz: Special Edition (North America)
?????64-NUTJ.txt			Nushi Tsuri 64 (Japan)
POLARISSNOCROSS-NPXE.txt	Polaris SnoCross (North America)
Quake-NQKE.txt			Quake 64 (North America)
Quake-NQKP.txt			Quake 64 (Europe)
Rampage-NRPE.txt		Rampage - World Tour (North America)
Rampage-NRPP.txt		Rampage - World Tour (Europe)
Rampage2-N2PE.txt		Rampage 2 - Universal Tour (North America)
Rampage2-N2PP.txt		Rampage 2 - Universal Tour (Europe)
READY 2 RUMBLE-NRDE.txt		Ready 2 Rumble Boxing (North America)
READY 2 RUMBLE-NRDP.txt		Ready 2 Rumble Boxing (Europe)
Ready to Rumble-N22E.txt	Ready 2 Rumble Boxing - Round 2 (North America)
Resident Evil II-NREE.txt	Resident Evil II (North America)
Resident Evil II-NREE1.txt	Resident Evil II v1.1 (North America)
BioHazard II-NB5J.txt		BioHazard II (Japan)
Resident Evil II-NREP.txt	Resident Evil II (Europe)
Robotron-64-NRXE.txt		Robotron 64 (North America)
Robotron-64-NRXP.txt		Robotron 64 (Europe)
S.F.Rush-NSFE.txt		San Francsico Rush: Extreme Racing (North America)
S.F.Rush-NSFP.txt		San Francsico Rush: Extreme Racing (Europe)
Rush2-NR2E.txt			Rush 2 (North America)
Rush2-NR2P.txt			Rush 2 (Europe)
Rush 2049-NRUE.txt		San Francsico Rush: 2049 (North America)
Rush 2049-NRUP.txt		San Francsico Rush: 2049 (Europe)
Battle for Naboo-NNAE.txt	Star Wars Episode 1: Battle for Naboo (North America)
Battle for Naboo-NNAP.txt	Star Wars Episode 1: Battle for Naboo (Europe)
Rogue Squadron-NRSE.txt		Star Wars: Rogue Squadron (North America)
rogue squadron-NRSE1.txt	Star Wars: Rogue Squadron v1.1 (North America)
rogue squadron-NRSJ.txt		Star Wars: Rogue Squadron (Japan)
Rogue Squadron-NRSP.txt		Star Wars: Rogue Squadron (Europe)
rogue squadron-NRSP1.txt	Star Wars: Rogue Squadron v1.1 (Europe)
??????????????64-NS4J		Super Robot Taisen 64 (Japan)
TWISTED EDGE-NSBE.txt		Twisted Edge Extreme Snowboarding (North America)
V-Rally-NVLE.txt		V-Rally (North America)
V-Rally-NVLJ.txt		V-Rally (Japan)
V-Rally-NVLP.txt		V-Rally (Europe)
VIGILANTE 8-NV8D.txt		Vigilante 8 (Germany)
VIGILANTE 8-NV8E.txt		Vigilante 8 (North America)
VIGILANTE 8-NV8F.txt		Vigilante 8 (France)
VIGILANTE 8-NV8P.txt		Vigilante 8 (Europe)
V8 SECOND OFFENSE-NVGE.txt	Vigilante 8: Second Offense (North America)
V8 SECOND OFFENSE-NVGP.txt	Vigilante 8: Second Offense (Europe)
?????? ????????? 64-NVPJ.txt		Virtual Pro Wrestling 64 (Japan)
?????? ????? 2-NA2J.txt		Virtual Pro Wrestling 2 (Japan)
W.G. 3DHockey-NWGE.txt		Wayne Gretzky's 3D Hockey (North America)
WGHockey-NWGJ.txt		Wayne Gretzky's 3D Hockey (Japan)
W.G. 3DHockey-NWGP.txt		Wayne Gretzky's 3D Hockey (Europe)
W.G. 3DHockey98-NW8E.txt	Wayne Gretzky's 3D Hockey '98 (North America)
W.G. 3DHockey98-NW8P.txt	Wayne Gretzky's 3D Hockey '98 (Europe)
WRESTLEMANIA 2000-NWXE.txt	WWF WrestleMania 2000 (North America)
??????? 2000-NWXJ.txt		WWF WrestleMania 2000 (Japan)
WRESTLEMANIA2000-NWXP.txt	WWF WrestleMania 2000 (Europe)

   EA Games titles share a common compression type.  As of version 1.2, these filelists are provided:
FIFA= RTWC 98-N8IE.txt		FIFA: Road to World Cup '98 (North America)
RoadToWorldCup98-N8IJ.txt	FIFA: Road to World Cup '98 (Japan)
FIFA= RTWC 98-N8IP.txt		FIFA: Road to World Cup '98 (Europe)
FIFA Soccer 64-N7IE.txt		FIFA Soccer 64 (North America)
FIFA Soccer 64-N7IP.txt		FIFA Soccer 64 (Europe)
FIFA 99-N9FE.txt		FIFA '99 (North America)
FIFA 99-N9FP.txt		FIFA '99 (Europe)
Madden 64-N8ME.txt		Madden Football 64 (North America)
Madden 64-N8MP.txt		Madden Football 64 (Europe)
MADDEN NFL 99-N9ME.txt		Madden NFL 99 (North America)
MADDEN NFL 99-N9MP.txt		Madden NFL 99 (Europe)
Madden NFL 2000-NMDE.txt	Madden NFL 2000 (North America)
Madden NFL 2001-NFLE.txt	Madden NFL 2001 (North America)
Madden NFL 2002-N2ME.txt	Madden NFL 2002 (North America)
NBA Live99-N9BE.txt		NBA Live '99 (North America)
NBA Live99-N9BP.txt		NBA Live '99 (Europe)
NBA LIVE 2000-NNLE.txt		NBA Live 2000 (North America)
NBA LIVE 2000-NNLP.txt		NBA Live 2000 (Europe)
NHL 99-N9HE.txt			NHL '99 (North America)
NHL 99-N9HP.txt			NHL '99 (Europe)
Supercross-NSXE.txt		Supercross 2000 (North America)
Supercross-NSXP.txt		Supercross 2000 (Europe)
TOP GEAR RALLY-NTRE.txt		Top Gear Rally (North America)
TOP GEAR RALLY-NTRJ.txt		Top Gear Rally (Japan)
TOP GEAR RALLY-NTRP.txt		Top Gear Rally (Europe)
TRIPLE PLAY 2000-N3PE.txt	Triple Play 2000 (North America)
WCW BACKSTAGE-NWVE.txt		WCW Backstage Assault (North America)
WCW MAYHEM-NWME.txt		WCW Mayhem (North America)
WCW MAYHEM-NWMP.txt		WCW Mayhem (Europe)
World Cup 98-N8WE.txt		World Cup 98 (North America)
World Cup 98-N8WP.txt		World Cup 98 (Europe)

   Certain titles using Nintendo's standard compression libraries may be extracted using the internal filelists.  Due to the nature of the storage system, these require you to open a default ROM before extraction.
   As of version 1.2, these filelists are provided:
ANIMAL FOREST-NAFJ-NAFE.txt		Doubutsu no Mori/Animal Forest (Japan/North America)
THE LEGEND OF ZELDA-CZLE-CZLE1-CZLJ.txt	The Legend of Zelda: Ocarina of Time (Japan/North America v1.0/v1.1)
THE LEGEND OF ZELDA-CZLE2.txt		The Legend of Zelda: Ocarina of Time (North America v1.2)
THE LEGEND OF ZELDA-NZLE15 (debug).txt	The Legend of Zelda: Ocarina of Time Debug ROM (North America)
THE LEGEND OF ZELDA-NZLP-NZLP1.txt	The Legend of Zelda: Ocarina of Time v1.0/v1.1 (Europe)
THE LEGEND OF ZELDA-NZLP15.txt		The Legend of Zelda: Ocarina of Time GameCube (Europe)
MAJORA'S MASK-NDLE (Demo).txt		The Legend of Zelda: Majora's Mask Kiosk Demo (North America)
ZELDA MAJORA'S MASK-NZSE.txt		The Legend of Zelda: Majora's Mask (North America)
ZELDA MAJORA'S MASK-NZSE (GameCube).txt	The Legend of Zelda: Majora's Mask GameCube (North America)
THE MASK OF MUJURA-NZSJ.txt		The Legend of Zelda: Majora's Mask (Japan)
ZELDA MAJORA'S MASK-NZSP.txt		The Legend of Zelda: Majora's Mask v1.0 (Europe)
ZELDA MAJORA'S MASK-NZSP1.txt		The Legend of Zelda: Majora's Mask v1.1 (Europe)
STARFOX64-NFXE.txt			Star Fox 64 v1.0 (North America)
STARFOX64-NFXE1.txt			Star Fox 64 v1.1 (North America)
STARFOX64-NFXJ.txt			Star Fox 64 
STARFOX64-NFXP.txt			Lylat Wars (Europe)
STARFOX64-NFXU.txt			Lylat Wars (Australia)

  These titles use one of Nintendo's compression formats: MIO, Yaz, or Yay.  In addition to basic decompression support, there are tools for converting between the different formats.
  As of version 1.2, these filelists are provided:
1080 SNOWBOARDING-NTEA.txt		1080 Snowboarding (Japan/North America)
1080 SNOWBOARDING-NTEP.txt		1080 Snowboarding (Europe)
BATTLEZONE-NZOE.txt			Battlezone - Rise of the Black Dogs (North America)
EVANGELION-NEVJ.txt			Neon Genesis Evangelion (Japan)
MARIOKART64-NMKE.txt			Mario Kart 64 (North America)
POKEMON STADIUM-CPSJ.txt		Pocket Monsters Stadium (Japan)
Tsumi to Batsu-NGUJ.txt			Sin and Punishment (Japan)
WAVE RACE 64-NWRE1.txt			Wave Race 64 v1.1 (North America)
WAVE RACE 64-NWRJ2.txt			Wave Race 64 v1.2 "Shindou Version" (Japan)
???? ?????????????-NMZJ.txt			Zool - Majou Tsukai Densetsu (Japan)

  Titus uses an lzw variant.  As of version 1.2, these filelists are provided:
LAMBORGHINI-NLCE.txt			Automobili Lamborghini (North America)
SUPER SPEED RACE 64-NLCJ.txt		Automobili Lamborghini (Japan)
LAMBORGHINI-NLCP.txt			Automobili Lamborghini (Europe)
Racing Simulation 2-NMGD.txt		Monaco Grand Prix (Germany)
Monaco Grand Prix-NMGE.txt		Monaco Grand Prix (North America)
Monaco GP Racing 2-NMGP.txt		Monaco Grand Prix (Europe)
ROADSTERS TROPHY-NRRE.txt		Roadsters Trophy (North America)
ROADSTERS TROPHY-NRRP.txt		Roadsters Trophy (Europe)
SUPERMAN-NSPE.txt			Superman (North America)
SUPERMAN-NSPP.txt			Superman (Europe)
SUPERMAN (NTSC Beta).txt		Superman Prototype (NTSC)
VIRTUALCHESS-NVCE.txt			Virtual Chess (North America)
VIRTUALCHESS-NVCP.txt			Virtual Chess (Europe)

  HAL Laboratories uses bitwise LZSS with huffman encoding in addition to traditional binary LZSS.  As of version 1.2, these filelists are provided:
POKEMON SNAP-NPFD.txt			Pokémon Snap (Germany)
POKEMON SNAP-NPFE.txt			Pokémon Snap (North America)
POKEMON SNAP-NPFF.txt			Pokémon Snap (France)
POKEMON SNAP-NPFI.txt			Pokémon Snap (Italy)
POKEMON SNAP-NPFJ.txt			Pokémon Snap (Japan)
POKEMON SNAP-NPFP.txt			Pokémon Snap (Europe)
POKEMON SNAP-NPFS.txt			Pokémon Snap (Spain)
POKEMON SNAP-NPFU.txt			Pokémon Snap (Australia)
POKEMON SNAP-NPHE (Snap Station).txt	Pokémon Snap Station Print Kiosk (North America)
BassFishingNo.1-NIBJ.txt		Shigesato Itoi's No. 1 Bass Fishing (Japan)
SMASH BROTHERS-NALE.txt			Super Smash Brothers (North America)
SMASH BROTHERS-NALJ.txt			Super Smash Brothers (Japan)
SMASH BROTHERS-NALP.txt			Super Smash Brothers (Europe)
SMASH BROTHERS-NALU.txt			Super Smash Brothers (Australia)

  Filelists for Eurocom titles using EDL:
40 WINKS-N4WX.txt			40 Winks (Europe-Multinational)
CRUIS'N WORLD-NCWE.txt			Cruis'n World (North America)
CRUIS'N WORLD-NCWP.txt			Cruis'n World (Europe)
TARZAN-NTAD.txt				Disney's Tarzan (Germany)
TARZAN-NTAE.txt				Disney's Tarzan (North America)
TARZAN-NTAP.txt				Disney's Tarzan (Europe)
DUKE NUKEM ZERO HOUR-NDZE.txt		Duke Nukem - ZER0 H0UR (North America)
DUKE NUKEM ZERO HOUR-NDZF.txt		Duke Nukem - ZER0 H0UR (France)
DUKE NUKEM ZERO HOUR-NDZP.txt		Duke Nukem - ZER0 H0UR (Europe)
MORTAL KOMBAT 4-NM4E.txt		Mortal Kombat 4 (North America)
MORTAL KOMBAT 4-NM4P.txt		Mortal Kombat 4 (Europe)
NBA SHOWTIME-NSOE.txt			NBA Showtime - NBA on NBC (North America)

  Filelists for RNC and ERZ titles, primarily EA and Acclaim, as of version 1.2:
A Bug's Life-NBYD.txt			A Bug's Life (Germany)
A Bug's Life-NBYE.txt			A Bug's Life (North America)
A Bug's Life-NBYF.txt			A Bug's Life (France)
A Bug's Life-NBYP.txt			A Bug's Life (Europe)
All Star Baseball 99-NBSE.txt		All-Star Baseball 99 (North America)
All Star Baseball 99-NBSP.txt		All-Star Baseball 99 (Europe)
All-Star Baseball '0-NBEE.txt		All-Star Baseball 2000 (North America)
All-Star Baseball '0-NBEP.txt		All-Star Baseball 2000 (Europe)
All-Star Baseball 20-NASE.txt		All-Star Baseball 2001 (North America)
DUKE NUKEM-NDNE.txt			Duke Nukem 64 (North America)
DUKE NUKEM-NDNP.txt			Duke Nukem 64 (Europe)
Fighting Force-NFFE.txt			Fighting Force 64 (North America)
Forsaken-NFOD.txt			Forsaken 64 (Germany)
Forsaken-NFOE.txt			Forsaken 64 (North America)
Forsaken-NFOP.txt			Forsaken 64 (Europe)
Jeremy McGrath Super-NCOE.txt		Jeremy McGrath Supercross 2000 (North America)
Jeremy McGrath Super-NCOP.txt		Jeremy McGrath Supercross 2000 (Europe)
Knockout Kings 2000-NKKE.txt		Knockout Kings 2000 (North America)
Knockout Kings 2000-NKKP.txt		Knockout Kings 2000 (Europe)
MTM64-NM3E.txt				Monster Truck Madness (North America)
MTM64-NM3P.txt				Monster Truck Madness (Europe)
quarterback_club_98-NQ8E.txt		NFL Quarterback Club 98 (North America)
quarterback_club_98-NQ8P.txt		NFL Quarterback Club 98 (Europe)
NFL QBC '99-NQ9E.txt			NFL Quarterback Club 99 (North America)
NFL QBC '99-NQ9P.txt			NFL Quarterback Club 99 (Europe)
NFL QBC 2000-NQBE.txt			NFL Quarterback Club 2000 (North America)
NFL QBC 2000-NQBP.txt			NFL Quarterback Club 2000 (Europe)
NFL Quarterback Club-NQCE.txt		NFL Quarterback Club 2001 (North America)
PGA European Tour-NEAE.txt		PGA European Tour Golf (North America)
PGA European Tour Go-NEAP.txt		PGA European Tour Golf (Europe)
South Park Chef's L-NCYE.txt		South Park: Chef's Love Shack (North America)
South Park Chef's Lu-NCYP.txt		South Park: Chef's Love Shack (Europe)
SPIDERMAN-NSLE.txt			Spiderman (North America)
RAINBOW SIX-NR6D.txt			Tom Clancy's Rainbow Six (Germany)
RAINBOW SIX-NR6E.txt			Tom Clancy's Rainbow Six (North America)
RAINBOW SIX-NR6F.txt			Tom Clancy's Rainbow Six (France)
RAINBOW SIX-NR6P.txt			Tom Clancy's Rainbow Six (Europe)
TONY HAWK PRO SKATER-NTFE.txt		Tony Hawk's Pro Skater (North America)
TONY HAWK PRO SKATER-NTFE1.txt		Tony Hawk's Pro Skater v1.1 (North America)
TONY HAWK PRO SKATER-NTFP.txt		Tony Hawk's Pro Skater (Europe)
THPS2-NTQE.txt				Tony Hawk's Pro Skater 2 (North America)
THPS2-NTQP.txt				Tony Hawk's Pro Skater 2 (Europe)
THPS3-N3TE.txt				Tony Hawk's Pro Skater 3 (North America)
TOP GEAR RALLY 2-NL2E.txt		Top Gear Rally 2 (North America)
TOP GEAR RALLY 2-NL2J.txt		Top Gear Rally 2 (Japan)
TOP GEAR RALLY 2-NL2P.txt		Top Gear Rally 2 (Europe)
Top Gear Rally 2 (Prototype).txt	Top Gear Rally 2 (Prototype)
XENAWARRIORPRINCESS-NXFE.txt		Xena Warrior Princess - The Talisman of Fate (North America)
XENAWARRIORPRINCESS-NXFP.txt		Xena Warrior Princess - The Talisman of Fate (Europe)

  Mass Media's N64 titles are supported as of version 1.3:
BASSMASTERS2000-NB4E.txt                Bassmasters 2000 (North America)
MS. PAC-MAN MM-NP9E.txt                 Ms. Pac-Man - Maze Madness (North America)
POWER RANGERS-NPUE.txt                  Power Rangers - Lightspeed Rescue (North America)
POWER RANGERS-NPUP.txt                  Power Rangers - Lightspeed Rescue (Europe)
STARCRAFT 64-NSQD.txt                   StarCraft 64 (Germany)
STARCRAFT 64-NSQE.txt                   StarCraft 64 (North America)
STARCRAFT 64-NSQP.txt                   StarCraft 64 (Europe)
STARCRAFT 64 (NTSC Beta).txt            StarCraft 64 Prototype (NTSC)

  Supported titles using Konami's Nisitenma-Ichigo filetables as of version 1.3:
CASTLEVANIA-ND3E.txt			Castlevania v1.0 (North America)
CASTLEVANIA-ND3E1.txt			Castlevania v1.1 (North America)
CASTLEVANIA-ND3E2.txt			Castlevania v1.2 (North America)
DRACULA MOKUSHIROKU-ND3J.txt		Akumajou Dracula Mokushiroku (Japan)
CASTLEVANIA-ND3P.txt			Castlevania (Europe)
CASTLEVANIA2-ND4E.txt			Castlevania 2 (North America)
DRACULA MOKUSHIROKU2-ND4J.txt		Akumajou Dracula Mokushiroku Gaiden - Legend of Cornell (Japan)
CASTLEVANIA2-ND4P.txt			Castlevania 2 (Europe)
DDR DISNEY D MUSEUM-NDFJ.txt		Dance Dance Revolution - Disney Dancing Museum (Japan)
DeadlyArts-NGAE.txt			Deadly Arts (North America)
G.A.S.P!!Fighters'NE-NGAJ.txt		G.A.S.P!! Fighters' NEXTream (Japan)
G.A.S.P!!Fighters'NE-NGAP.txt		G.A.S.P!! Fighters' NEXTream (Europe)
??????????????-NGPJ.txt			Goemon - Mononoke Sugoroku (Japan)
MYSTICAL NINJA-NG5E.txt			Mystical Ninja Starring Goemon (North America)
?????? ?????-NG5J.txt			Ganbare Goemon - Neo Momoyama Bakufu no Odori (Japan)
MYSTICAL NINJA-NG5P.txt			Mystical Ninja Starring Goemon (Europe)
GOEMONS GREAT ADV-NGME.txt		Goemon's Great Adventure (North America)
GOEMON2 DERODERO-NG6J.txt		Ganbare Goemon - Dero Dero Douchuu Obake Tenkomori (Japan)
MYSTICAL NINJA2 SG-NGMP.txt		Mystical Ninja 2 Starring Goemon (Europe)
HYBRID HEAVEN USA-NHVE.txt		Hybrid Heaven (North America)
HYBRID HEAVEN JP-NHYJ.txt		Hybrid Heaven (Japan)
HYBRID HEAVEN PAL-NHVP.txt		Hybrid Heaven (Europe)
I S S 64-NJPE.txt			International Superstar Soccer 64 (North America)
RONALDINHO SOCCER-NJPE.txt		Ronaldinho Soccer 64 (Brazil)
J WORLD SOCCER3-NJ3J.txt		Jikkyou World Soccer 3 (Japan)
I S S 64-NJPP.txt			International Superstar Soccer 64 (Europe)
I.S.S.98-NWSE.txt			International Superstar Soccer '98 (North America)
J.WORLD CUP 98-NWSJ.txt			Jikkyou World Soccer - World Cup France '98 v1.0 (Japan)
J.WORLD CUP 98-NWSJ1.txt		Jikkyou World Soccer - World Cup France '98 v1.1 (Japan)
J.WORLD CUP 98-NWSJ2.txt		Jikkyou World Soccer - World Cup France '98 v1.2 (Japan)
I.S.S.98-NWSP.txt			International Superstar Soccer '98 (Europe)
I.S.S.2000-NISE.txt			International Superstar Soccer 2000 (North America)
I.S.S.2000-NISX.txt			International Superstar Soccer 2000 (Europe, English + German)
I.S.S.2000-NISY.txt			International Superstar Soccer 2000 (Europe, French + Italian)
ITF 2000-N3HE.txt			International Track & Field 2000 (North America)
OLYMPIC 2000-N3HJ.txt			Ganbare! Nippon! Olympics 2000 (Japan)
IT&F SUMMERGAMES-N3HP.txt		International Track & Field - Summer Games (Europe)
PERFECT STRIKER-NJPJ.txt		Jikkyou J.League Perfect Striker (Japan)
PERFECT STRIKER2-NPSJ.txt		Jikkyou J.League 1999 - Perfect Striker 2 v1.0 (Japan)
PERFECT STRIKER2-NPSJ1.txt		Jikkyou J.League 1999 - Perfect Striker 2 v1.1 (Japan)
PAWAFURU PUROYAKYU4-NJ4J.txt		Jikkyou Powerful Pro Yakyuu 4 v1.0 (Japan)
PAWAFURU PUROYAKYU4-NJ4J1.txt		Jikkyou Powerful Pro Yakyuu 4 v1.1 (Japan)
PAWAFURU PUROYAKYU5-NJ5J.txt		Jikkyou Powerful Pro Yakyuu 5 v1.0 (Japan)
PAWAFURU PUROYAKYU5-NJ5J1.txt		Jikkyou Powerful Pro Yakyuu 5 v1.1 (Japan)
PAWAFURU PUROYAKYU5-NJ5J2.txt		Jikkyou Powerful Pro Yakyuu 5 v1.2 (Japan)
PAWAFURU PUROYAKYU6-NP6J.txt		Jikkyou Powerful Pro Yakyuu 6 v1.0 (Japan)
PAWAFURU PUROYAKYU6-NP6J1-NP6J2.txt	Jikkyou Powerful Pro Yakyuu 6 v1.1 and v1.2 (Japan)
PAWAPURO 2000-NPAJ.txt			Jikkyou Powerful Pro Yakyuu 2000 v1.0 (Japan)
PAWAPURO 2000-NPAJ1.txt			Jikkyou Powerful Pro Yakyuu 2000 v1.1 (Japan)
PAWAPURO 2001B-NPEJ.txt			Jikkyou Powerful Pro Yakyuu Basic Ban 2001 v1.0 (Japan)
PAWAPURO 2001B-NPEJ1.txt		Jikkyou Powerful Pro Yakyuu Basic Ban 2001 v1.1 (Japan)
?????? ????-NMMJ.txt			Mahjong Master (Japan)
Nagano Olympics-NH5E.txt		Nagano Olympics (North America)
Nagano Olympics-NH5J.txt		Nagano Olympics (Japan)
Nagano Olympics-NH5P.txt		Nagano Olympics (Europe)
NBA IN THE ZONE '98-NBAE.txt		NBA in the Zone '98 (North America)
NBA IN THE ZONE '98-NBAJ.txt		NBA in the Zone '98 (Japan)
NBA PRO 98-NBAP.txt			NBA Pro 98 (Europe)
NBA IN THE ZONE '99-NB2E.txt		NBA in the Zone '99 (North America)
NBA IN THE ZONE 2-NB2J.txt		NBA in the Zone 2 (Japan)
NBA PRO 99-NB2P.txt			NBA Pro 99 (Europe)
NBA IN THE ZONE 2000-NWZE.txt		NBA in the Zone 2000 (North America)
NBA IN THE ZONE 2000-NWZP.txt		NBA in the Zone 2000 (Europe)
BLADES OF STEEL '99-NHOE.txt		NHL Blades of Steel '99 (North America)
NHL PRO 99-NHOP.txt			NHL Pro 99 (Europe)
???!????????????-NPZJ.txt			Susume! Taisen Puzzle Dama - Toukon! Marutama Chou (Japan)

  Other standalone types supported as of version 1.3:
BANGAIOH-NBNJ.txt			Bangaioh (Japan)
BLUES BROTHERS 2000-NBPE.txt		The Blues Brothers 2000 (North America)
BLUES BROTHERS 2000-NBPP.txt		The Blues Brothers 2000 (Europe)
CUSTOMROBOV2-NCZJ.txt			Custom Robo V2 (Japan)
Frogger2-NGVE1.txt			Frogger 2 Prototype (North America)
whack 'n' roll.txt			Glover Prototype (NTSC)
Glover2-NGVE1.txt			Glover 2 v1.1 (North America)
Milos_Astro_Lanes-NBRE.txt		Milo's Astro Lanes (North America)
Milos_Astro_Lanes-NBRP.txt		Milo's Astro Lanes (Europe)
NIGHTMARE CREATURES-NNCE.txt		Nightmare Creatures (North America)
O.D.T.-NTDE.txt				Or Die Trying (North America)
O.D.T.-NTDP.txt				Or Die Trying (Europe)
Robotech Crystal Dreams.txt		Robotech: Crystal Dreams (Unlocalized)
SNOWBOARD KIDS2-NK2E.txt		Snowboard Kids 2 (North America)
Stunt Racer 64-NR3E.txt			Stunt Racer 64 (North America)
Syd2k USA.txt				Sydney 2000 Prototype (North America)
Syd2k GBR.txt				Sydney 2000 Prototype (Europe)
Taz Express-NTXE.txt			Taz Express Prototype (North America)
Taz Express-NTXP.txt			Taz Express (Europe)
TETRISPHERE-NTPE.txt			Tetrisphere (North America)
TETRISPHERE-NTPP.txt			Tetrisphere (Europe)
Tigger's Honey Hunt-NT9E.txt		Tigger's Honey Hunt (North America)
Tigger's Honey Hunt-NT9P.txt		Tigger's Honey Hunt (Europe)
Wild Waters.txt				Wild Waters Prototype
World Driver Champ-NWOE.txt		World Driver Championship (North America)
WWF No Mercy-NW4E.txt			WWF No Mercy v1.0 (North America)
WWF No Mercy-NW4E1.txt			WWF No Mercy v1.1 (North America)
WWF No Mercy-NW4P.txt			WWF No Mercy v1.0 (Europe)
WWF No Mercy-NW4P1.txt			WWF No Mercy v1.1 (Europe)
EXCITEBIKE64-NMXJ.txt			Excitebike64 (Japan)
EXCITEBIKE64-NMXE.txt			Excitebike64 (North America)
EXCITEBIKE64-NMXP.txt			Excitebike64 (Europe)
EXCITEBIKE64-NNXE (Kiosk).txt		Excitebike64 Kiosk Version (North America)

  Some games do not use compression, but filelists are provided to extract resources quicker.
Hanabi de Doon.txt			Aleck64: Hanabi de Doon (Japan)
HARVESTMOON64-NYWE.txt			Harvest Moon (North America)
?????????????-NIRJ.txt			Irritating Rod (Japan)
Kirby64-NK4E.txt			Kirby 64 - The Crystal Shards (North America)
Kirby64-NK4J.txt			Hoshi no Kirby 64 v1.0 (Japan)
Kirby64-NK4J1.txt			Hoshi no Kirby 64 v1.1 (Japan)
Kirby64-NK4J2.txt			Hoshi no Kirby 64 v1.2 (Japan)
Kirby64-NK4J3.txt			Hoshi no Kirby 64 v1.3 (Japan)
Kirby64-NK4P.txt			Kirby 64 - The Crystal Shards (Europe)
Kurukuru Fever.txt			Aleck64: Kurukuru Fever (Japan)
Mini Racers.txt				Mini Racers Prototype
PUZZLE LEAGUE N64-NPND.txt		Pokémon Puzzle League (Germany)
PUZZLE LEAGUE N64-NPNE.txt		Pokémon Puzzle League (North America)
PUZZLE LEAGUE N64-NPNF.txt		Pokémon Puzzle League (France)
PUZZLE LEAGUE N64-NPNP.txt		Pokémon Puzzle League (Europe)
Tamiya Racing 64.txt			Tamiya Racing 64 Prototype
Tower & Shaft.txt			Aleck64: Tower and Shaft (Japan)
Virtual Pool 64-NVRE.txt		Virtual Pool (North America)
Virtual Pool 64-NVRP.txt		Virtual Pool (Europe)
YAKOUTYUU2-NYKJ.txt			Yakouchuu 2 (Japan)

  In addition to decryption and extraction of GameShark and Pro Action Replay files, tool_GScodelist allows codelist extraction and conversion for the following revisions:
(C) MUSHROOM &NU09.54 Mar 27 - GameShark Pro 3.30
(C) MUSHROOM &NU14.26 Jan 4 - GameShark Pro 3.20
(C) MUSHROOM &NU16.08 Apr 18 - Pro Action Replay 3.30

Complete Filelist Format:
  This is the complete filelist format as of version 1.3.  Note it still follows the basic tab-delineated format of an ordinary entry.  Spaces are considered part of the current field.  There are three, tab-delineated fields:
position	type	filename
  Do NOT use tabs at any other time for any other purpose.
  The full breakdown of accepted commands follows this format:
position (decompressed_size), compressed_size; offset	type1, type2, typeN	{pre}filename{pos}{ext}
  There are also certain file commands that are not entries.  Those will be discussed in the special commands section.

Position Special Format:
  Positions consist of the position of the file, using standard integer notation.  Optional fields include a decompressed filesize in parenthesis, a comma followed by the compressed size, and a semicolon followed by an offset from the position to the contents passed to the decompressor.  The position must come first; all other fields may be in any order.  It is the comma, semicolon, and parenthesis that indicate what kind of value each entry is.
Usage:
position (decompressed_size), compressed_size; offset
  All scripted commands should accept a Pointer instance that will contain these values; it is up to the decompressor, however, as to how many of these will be utilized.
  Position must always be present.  If compressed size is not present, the data slice will span from this position to the next entry's position.  
data[entry[n].pos + entry[n].offset : entry[n+1].pos]
  Otherwise, when compressed size is given data will span only from position to compressed size independant of the offset value.  
data[entry[n].pos + entry[n].offset : entry[n].pos + entry[n].cmp_sz]
  The offset value is used to skip past non-standard headers or any other code that comes before the actual compressed content.  This value is added to the position and used as the base for the data slice, as shown above.
  The decompressed size typically is not used.  It is passed to the decompressor only, and this will only be used by types that require a known size for decompression.  For instance, LZ stream types may not use an end-of-file indicator and can overrun if the control byte has remaining bits.  Providing this will not clip the returned, decompressed data.

Type Special Format:
  Types may be any case; all types are converted with str.lower() before comparison.
  More than one type may be given for a single entry.  In this case, each command is used in sequence from left to right, and each will use the result of the previous command as its data source.  The final result is saved to a file.
  A comma should be present between each type in the list. 
Usage:
type1, type2, ..., typeN
  When more than one type is given, the autogenerated names will use the rules for the last type in the list.  This allows a tool to override the extension that would normally be used for decompressed data.  As an example, for a decompressor LZSS that returns a .bin file and ToPNG that returns a .png:
Example:
>>> 0x4000, 0x1000	lzss, topng
4000.png

Naming Special Format:
  If a filename is present, normally the output file will use the name.  Even if a type uses a prefix or changes the extension, this will not be reflected by the filename.
  To apply the default prefix, position, or extension for a type to your filenames, you can use the typical str.format() handlers. {pre} applies the prefix, {pos} the position, and {ext} the extension.  The dot is expected to be part of the extension string.
  The standard format used by the autogenerated names is:
{pre}{pos:X}{ext}

Filelist Special Commands:
  Require_ROM - require a ROM be open
  Some tools may require full access to a ROM, beyond just the slices needed to extract files.  You can require that a default ROM be open (via File\Open Default ROM) by adding this line anywhere in the filelist.  
  Usage:
Require_ROM

  ifndef - global type replacement
  The ifndef command allows you to replace all of one particular type name with another.  This is useful when a filelist uses a tool or some special formatting that isn't distributed with the script, or to mask away an experimental feature.  In that case you can replace all of those files with something that's guaranteed compatible, such as Bin.
  Usage:
ifndef oldtype
ifndef oldtype newtype
ifndef oldtype1 oldtype2 ... newtype
  If newtype isn't provided, oldtype will be replaced with None.  Otherwise, all listed oldtypes will be replaced with newtype.  If you provide a list of oldtypes, do not use commas.
  The replacement check is done after the filelist has been read in.  That means you can not change oldtype to one type at the beginning of a file and a different type at the end.  

  ext - local extension overrides
  Occasionally it is useful to change one of the default provided extensions with one of your choosing.  Default extensions are used when a filename is automatically generated (prefix-position-extension) or when a filename uses the {ext} setting.  The default is usually .bin, although some compression types will override this.
  Usage:
ext old new
ext old1 old2 ... new
  All listed old extensions will be replaced by new.  Extensions should include the '.' if required.  If you provide a list of old extensions, do not use commas.
  Replacements are handled on all entries following this command.  It will not affect any of the entries preceeding the command.  You can change an extension at one point of the filelist and then change it again at a different part of the same filelist.  To remove any altered extensions use the format:
ext old
  This reverts any extension to its original format by removing it from the exception list.



-Zoinkity