diff --git a/BizHawk.Emulation.Cores/Consoles/PC Engine/CDL File Format.txt b/BizHawk.Emulation.Cores/Consoles/PC Engine/CDL File Format.txt new file mode 100644 index 0000000000..f61e84bfd1 --- /dev/null +++ b/BizHawk.Emulation.Cores/Consoles/PC Engine/CDL File Format.txt @@ -0,0 +1,66 @@ +A "string" is an LEB128 encoded number which is the number of bytes +in the string, followed by that many bytes of UTF-8 character data. + +A "number" is a little endian 32 bit integer. + +File format is as follows: + +number NumberOfBlocks: number of memory areas represented in this file + +For each block: + +string BlockName: identifying name of the block. +number bytelength: length of the block in bytes. +byte data[bytelength]: one byte of information for each byte in the original block. + + + +The BlockNames are: + +ROM + HUCard ROM, or syscard bios ROm + +Cart Battery RAM + 32K of battery backed ram in the Populous cart + +Super System Card RAM + 192K of ram in the super system card + +TurboCD RAM + 64K of ram in the turboCD + +BRAM + 8K of TurboCD backup RAM. The actual RAM is smaller, but the CDL will record all + activity in that 8K region. + +Main Memory + 8K or 32K (SGX) of main memory + +MMIO + 8K of space in block ff, containing system IO ports. + +UNKNOWN + 8K long area which any unknown block maps to. + + +Each byte has 8 bits of flags on what the byte has been observed to do: + +// was fetched as an opcode +Code = 0x01, +// was read or written as data +Data = 0x02, +// was read and used as a pointer to data via indirect addressing +DataPtr = 0x04, +// was read or written as stack +Stack = 0x08, +// was read or written as data via indirect addressing +IndirectData = 0x10, +// was read and used as function pointer +// NB: there is no "IndirectCode"; all code is marked simply as code regardless of how it is reached +FcnPtr = 0x20, +// was used as a source (either initial or during the loop) of a block xfer +BlockFrom = 0x40, +// was used as a destination (either initial or during the loop) of a block xfer +BlockTo = 0x80 + +