From 344ef39d660c8158805934875305c851dcbfacca Mon Sep 17 00:00:00 2001 From: scawful Date: Mon, 22 Dec 2025 14:28:35 -0500 Subject: [PATCH] fix(emu): load GameData for render service --- src/app/emu/render/emulator_render_service.cc | 15 +++++++++++++++ src/app/emu/render/emulator_render_service.h | 1 + 2 files changed, 16 insertions(+) diff --git a/src/app/emu/render/emulator_render_service.cc b/src/app/emu/render/emulator_render_service.cc index 14e5c7b8..f73da63e 100644 --- a/src/app/emu/render/emulator_render_service.cc +++ b/src/app/emu/render/emulator_render_service.cc @@ -24,6 +24,21 @@ absl::Status EmulatorRenderService::Initialize() { return absl::FailedPreconditionError("ROM not loaded"); } + if (!game_data_) { + owned_game_data_ = std::make_unique(rom_); + zelda3::LoadOptions options; + options.load_graphics = true; + options.load_palettes = true; + options.load_gfx_groups = true; + options.expand_rom = false; + options.populate_metadata = true; + auto data_status = zelda3::LoadGameData(*rom_, *owned_game_data_, options); + if (!data_status.ok()) { + return data_status; + } + game_data_ = owned_game_data_.get(); + } + // Create SNES instance snes_ = std::make_unique(); const std::vector& rom_data = rom_->vector(); diff --git a/src/app/emu/render/emulator_render_service.h b/src/app/emu/render/emulator_render_service.h index 64f38893..be6b3c3f 100644 --- a/src/app/emu/render/emulator_render_service.h +++ b/src/app/emu/render/emulator_render_service.h @@ -119,6 +119,7 @@ class EmulatorRenderService { Rom* rom_ = nullptr; zelda3::GameData* game_data_ = nullptr; + std::unique_ptr owned_game_data_; std::unique_ptr snes_; std::unique_ptr state_manager_;