digraph jvm_boot { newrank=true; boot_rom [shape=box label="Dreamcast Boot ROM"] first_read [shape=box label="1ST_READ.BIN"] discarded [shape=ellipse label="(discarded/overwritten)"] ip_bin [shape=box label="gdrom_jvm_boot.bin (“ip.bin”)"] boot_rom -> first_read -> discarded boot_rom -> ip_bin subgraph cluster_jvm_bin { label=" boot class files (embedded inside jvm.bin)" jvm_bin [shape=box label="jvm.bin"] boot_class_files [shape=plaintext label=<
example/GdromClassLoader.class
sega/dreamcast/gdrom/GdromExtentReader.class
sega/dreamcast/gdrom/GdromProtocol.class
sega/dreamcast/gdrom/GdromCommandPacketFormat.class
filesystem/iso9660/VolumeParser.class
jvm/internal/Loader.class
>] } subgraph cluster_application { label=" application class files (files on the iso9660 filesystem)" main [shape=box label="Main.class"] class_files [shape=plaintext label=<
example/JavaCube.class
sega/dreamcast/holly/Core.class
sega/dreamcast/holly/VideoOutput.class
sega/dreamcast/holly/RegionArray.class
sega/dreamcast/holly/TAFIFOPolygonConverter.class
sega/dreamcast/holly/TAGlobalParameter.class
sega/dreamcast/holly/TAVertexParameter.class
sega/dreamcast/holly/TextureMemoryAllocation.class
model/CubeModel.class
>] } {rank=same; jvm_bin; boot_class_files} {rank=same; main; class_files} ip_bin -> jvm_bin jvm_bin -> boot_class_files GdromClassLoader [shape=box label="GdromClassLoader.class"] jvm_bin -> GdromClassLoader -> main main -> class_files }