# mkdcdisc bootable-disc manifest -- what a real payload ends up as on
# a disc, in every layout and every format.
#
# Regenerate with:  meson compile -C builddir regen-bootable-disc-manifest
# Do not edit by hand. See tests/e2e/test_bootable_disc.cpp for what each
# field means and why a change here needs explaining.
#
# The executables come from tests/payloads/, built by hand against
# KallistiOS and the Katana SDK and committed prebuilt: no CI target has an
# SH-4 toolchain. They are supplied to mkdcdisc all three ways it accepts
# one -- -e an ELF, -b a plain binary, -B an already-scrambled one.
#
#   boot file    the file a console would load, and its size
#   on-disc      the bytes as stored, scrambled where the format wants it
#   unscrambled  the same bytes restored; must be what went in
#   ip.bin       the header fields the console reads, and its checksum
#   placement    GD-ROM only: the boot binary must sort last
#
# Every value below is one mkdcdisc decides, so this file is the same on
# every platform. Where libisofs put the file is not stated, and neither
# is anything sized by the filesystem.

## kos / milcd / cdi
# The default MIL-CD, from a KallistiOS ELF, in all three containers
input        : -e kos/kos.elf
args         : -N
boot file    : /1ST_READ.BIN, 221344 bytes
on-disc      : scrambled, digest 0cafc6e2aed440b3
unscrambled  : digest bbc091f06aaa4937
ip.bin       : SEGA SEGAKATANA / SEGA ENTERPRISES, serial T-00000, version V1.000, boot 1ST_READ.BIN
ip.bin crc   : ok

## kos / milcd / mds
# The default MIL-CD, from a KallistiOS ELF, in all three containers
input        : -e kos/kos.elf
args         : -N
boot file    : /1ST_READ.BIN, 221344 bytes
on-disc      : scrambled, digest 0cafc6e2aed440b3
unscrambled  : digest bbc091f06aaa4937
ip.bin       : SEGA SEGAKATANA / SEGA ENTERPRISES, serial T-00000, version V1.000, boot 1ST_READ.BIN
ip.bin crc   : ok

## kos / milcd / nrg
# The default MIL-CD, from a KallistiOS ELF, in all three containers
input        : -e kos/kos.elf
args         : -N
boot file    : /1ST_READ.BIN, 221344 bytes
on-disc      : scrambled, digest 0cafc6e2aed440b3
unscrambled  : digest bbc091f06aaa4937
ip.bin       : SEGA SEGAKATANA / SEGA ENTERPRISES, serial T-00000, version V1.000, boot 1ST_READ.BIN
ip.bin crc   : ok

## kos / milcd-cdda / cdi
# The same with the two CD-DA tracks ahead of the data session
input        : -e kos/kos.elf
args         : -N
boot file    : /1ST_READ.BIN, 221344 bytes
on-disc      : scrambled, digest 0cafc6e2aed440b3
unscrambled  : digest bbc091f06aaa4937
ip.bin       : SEGA SEGAKATANA / SEGA ENTERPRISES, serial T-00000, version V1.000, boot 1ST_READ.BIN
ip.bin crc   : ok

## kos / milcd-autoserial / cdi
# The same again with no -s: the serial is then a hash of the binary
input        : -e kos/kos.elf
args         : -N   (no -s)
boot file    : /1ST_READ.BIN, 221344 bytes
on-disc      : scrambled, digest 0cafc6e2aed440b3
unscrambled  : digest bbc091f06aaa4937
ip.bin       : SEGA SEGAKATANA / SEGA ENTERPRISES, serial IND-157916, version V1.000, boot 1ST_READ.BIN
ip.bin crc   : ok

## kos / datadata / cdi
# Data/Data, which closes the disc with a boot head carrying no tree
input        : -e kos/kos.elf
args         : -L data-data -N
boot file    : /1ST_READ.BIN, 221344 bytes
on-disc      : scrambled, digest 0cafc6e2aed440b3
unscrambled  : digest bbc091f06aaa4937
ip.bin       : SEGA SEGAKATANA / SEGA ENTERPRISES, serial T-00000, version V1.000, boot 1ST_READ.BIN
ip.bin crc   : ok

## katana / gdrom / gdi
# A GD-ROM from an unscrambled Katana binary: the boot binary sorts last, at the far edge of the volume
input        : -b katana/katana.bin
args         : --gdi-truncate
boot file    : /1ST_READ.BIN, 166592 bytes
on-disc      : plain, digest 79efefad4f9d633c
ip.bin       : SEGA SEGAKATANA / SEGA ENTERPRISES, serial T-00000, version V1.000, boot 1ST_READ.BIN
ip.bin crc   : ok
placement    : last file of the volume

## katana / gdrom-2048 / gdi
# The same, written as 2048-byte track files instead of raw 2352
input        : -b katana/katana.bin
args         : --gdi-truncate --gdi-sector-size 2048
boot file    : /1ST_READ.BIN, 166592 bytes
on-disc      : plain, digest 79efefad4f9d633c
ip.bin       : SEGA SEGAKATANA / SEGA ENTERPRISES, serial T-00000, version V1.000, boot 1ST_READ.BIN
ip.bin crc   : ok
placement    : last file of the volume

## katana / gdda / gdi
# GD-DA: the volume is split around the audio, so the binary ends up in a track of its own, well past its own PVD
input        : -b katana/katana.bin
args         : --gdi-truncate
boot file    : /1ST_READ.BIN, 166592 bytes
on-disc      : plain, digest 79efefad4f9d633c
ip.bin       : SEGA SEGAKATANA / SEGA ENTERPRISES, serial T-00000, version V1.000, boot 1ST_READ.BIN
ip.bin crc   : ok
placement    : last file of the volume

## katana-scrambled / gdrom / gdi
# An already-scrambled Katana binary, which a GD-ROM must unscramble again before writing
input        : -B katana/katana.bin (scrambled by the test)
args         : --gdi-truncate
boot file    : /1ST_READ.BIN, 166592 bytes
on-disc      : plain, digest 79efefad4f9d633c
ip.bin       : SEGA SEGAKATANA / SEGA ENTERPRISES, serial T-00000, version V1.000, boot 1ST_READ.BIN
ip.bin crc   : ok
placement    : last file of the volume
