#include "../include/asset_mgr.hpp" #include "Overlay/Overlays.hpp" #include #include #include #include extern "C" uint32_t __controller_tests_start; extern "C" uint32_t __gpu_tests_start; namespace Assets { enum LBA { __jabyengine_start_lba_request __jabyengine_request_lba_for(PACO, "ASSETS/MAIN/PACO.BIN"), __jabyengine_request_lba_for(GPU_TEST_OVL, "GTO.BIN"), __jabyengine_request_lba_for(CONT_TEST_OVL, "CTO.BIN"), __jabyengine_end_lba_request }; __declare_lba_header(LBA); static void load(const volatile AutoLBAEntry* lba, const CDFile* assets, size_t size) { const auto buffer_cfg = CDFileProcessor::BufferConfiguration::new_default(); CDFileProcessor file_processor; file_processor.setup(lba, CDFileProcessor::JobArray{assets, size}, buffer_cfg); while(true) { switch(file_processor.process()) { case Progress::InProgress: break; case Progress::Done: if(!file_processor.next(lba, buffer_cfg)) { return; } break; case Progress::Error: printf("Error detected! Aborting load\n"); return; } } } template static void load(const volatile AutoLBAEntry* lba, const CDFile (&files)[N]) { return load(lba, files, N); } namespace Main { static const CDFile Files[] = { CDFileBuilder::simple_tim(LBA::PACO, PacoTIM) }; void load() { ::Assets::load(lba, Files); } } namespace Overlay { static const CDFile GPUFiles[] = { CDFileBuilder::overlay(LBA::GPU_TEST_OVL, &__gpu_tests_start) }; static const CDFile ControllerFiles[] = { CDFileBuilder::overlay(LBA::CONT_TEST_OVL, &__controller_tests_start) }; void load_controller_test() { ::Assets::load(lba, ControllerFiles); } void load_gpu_test() { ::Assets::load(lba, GPUFiles); ::Assets::load(GPUTest::lba, GPUTest::Assets); } } }