Usage: CreateSkeleton --name PROJECT_NAME --output BASE_OUTPUT_DIRECTORY [--overwrite] [--ignore-labels] [--externs-to-labels] INPUT_FILE

Examples:

CreateSkeleton --name KAIN2 --output C:\KAIN2 KAIN2-SymDump_Output.json

Options:
  --name
	The name for the project. This will be used as the base name for the 
	monolithic header file generated from the SymDump data, among other 
	things.

  --output
	The base output directory to create and generate files in.
	
  --overwrite
	Force overwriting of existing files.

  --output-updated-json [FILENAME]
    Create a new, updated version of the debug symbol JSON file based
	on information processed by CreateSkeleton. This can then be 
	passed to PopulateSkeleton for more accurate reassembly of the 
	original file structure. Highly recommended.

  --overlay [ID]
    Include the specified PsyQ overlay during processing.
	May be specified multiple times, as long as none of the overlays 
	have overlapping address space in memory.

  --ignore-labels
    Do not import labels from the debug symbol data. Can be helpful when
	the labels are redundant or misinterpreted by Ghidra.

  --ignore-non-ascii-labels
    Do not import labels with no name, or a name containing non-ASCII 
	characters. This or --replace-non-ascii-labels are currently required
	for Biohazard 2.

  --replace-non-ascii-labels
    removes non-printable (in ASCII) characters from labels. If the 
	resulting string is empty or not unique compared to other labels, 
	append the offset of the label to its name. This or 
	--replace-non-ascii-labels are currently required for Biohazard 2.

  --externs-to-labels
	Converts external declarations to labels and typed data in Ghidra. 
	Can be very useful, even if --ignore-labels is used. Recommended.

  --map-sld-functions
    Uses the SLD information (if present) in the symbol data to create 
	a secondary map of functions to source code files. Highly 
	recommended unless it causes issues.

  --assume-sn-gp-base
    If the __SN_GP_BASE label exists in the debug symbols, then add an 
	assumption at the beginning of every function that the $gp register 
	should be set to the address of that label.
	This is a workaround for what seems to be a problem with Ghidra not
	tracking this value correctly during analysis.
	Using this option is highly recommended unless it causes problems.

  --use-gp-base [GLOBAL_POINTER_VALUE]
    Manually specify a global pointer value which should be assumed at 
	the beginning of every function. This works like --assume-sn-gp-base,
	but for games which do not include an __SN_GP_BASE label in their 
	debug symbols, such as Diablo. Determining the correct value requires
	manual effort. If you do not know it yet, do not specify this option.

  --create-playstation-memory
    Uses code borrowed from DrMefistO's outstanding PSX Loader for 
	Ghidra (https://github.com/lab313ru/ghidra_psx_ldr) to define all 
	of the PlayStation-specific memory regions, as well as the mirrored
	segments (0x00000000 / 0x80000000 / 0xA0000000). Recommended unless
	it causes issues.

  --add-stack-pointer-offset
    When determining the stack pointer value, add the stack pointer 
	offset (some sources indicate that this is the stack segment size 
	instead). In most games, this value seems to be zero, so this option 
	will not have an effect in that case.
	This option is included for compatibility with DrMefistO's 
	outstanding PSX Loader for Ghidra
	(https://github.com/lab313ru/ghidra_psx_ldr)

  --assign-parameter-storage
    Explicitly set parameter storage for function parameters. Not 
	recommended at this time as the data in the SYM files is 
	misleading.

  --assign-ra-storage
    When setting parameter storage, permits the use of the ra 
	(return address) register. Not recommended unless you know what 
	you're doing. Requires --assign-parameter-storage.