# Resources

Data used for testing and understanding the internals of Minecraft/FOSS-VG,
also contains code to produce such data


## java/

Programs to produce data for figuring out how to interact
with Java-specific things

- `JavaStringGenerator.java`: A simple tool that reads from stdin and outputs Java-style UTF-8 to stdout
- `netty-tests/`: Figure out how Netty operates


## NBT_data/

Data used to test the NBT library

`bare_int64_tag`: What the name says
`bare_int64_tag_and_int32_tag`: What the name says
`simple_nbt`: A simple NBT file containing all tag types
`nested_compounds_and_lists`: A combination of nested compound and list tags (parser stress test)
`servers.dat`: Pulled from my Minecraft installation
`servers.dat_nbt_decoded.txt`: The same data manually decoded (This was done to get a better understanding how NBT works, might come in handy.)
`level.dat`: Pulled from one of my world saves (gzip-compressed)
`level.dat_decompressed`: The same data decompressed


## network_capture/

Network captures used to get an understanding of the protocol

`ping.pcapng`: WireShark capture of the multipayer screen server ping
`ping_decoded.txt`: Extracted TCP payloads from the network capture annotated with what’s happening


## unicode_data/

Files with unicode data

- Bare ("normal") UTF-8
- Java format


## all_bytes

Every possible 8-bit byte in ascending order

## check_endianness.cpp

A simple tool to determine the endianness of the system and write
the endianness header for FOSS-VG

Supports: Little Endian, Big Endian, PDP Endian, Honeywell Endian

Usage: `check_endianness > header_file`

Note that, while this tool should in theory be able to detect
PDP and Honeywell-316-style endianness, the FOSS-VG project itself
does not support these.

## region_files

Exactly what the name says. At this point just a random region file I grabbed
from Minecraft, will probably contain synthetic files for test cases in the
future as well.
