diff --git a/rpcs3/Emu/Cell/Modules/cellGcmSys.cpp b/rpcs3/Emu/Cell/Modules/cellGcmSys.cpp index f4c0c8108b..398b246431 100644 --- a/rpcs3/Emu/Cell/Modules/cellGcmSys.cpp +++ b/rpcs3/Emu/Cell/Modules/cellGcmSys.cpp @@ -93,13 +93,12 @@ void InitOffsetTable() { const auto cfg = g_fxo->get(); - cfg->offsetTable.ioAddress.set(vm::alloc(3072 * sizeof(u16), vm::main)); - cfg->offsetTable.eaAddress.set(vm::alloc(512 * sizeof(u16), vm::main)); + const u32 addr = vm::alloc((3072 + 512) * sizeof(u16), vm::main); - std::memset(cfg->offsetTable.ioAddress.get_ptr(), 0xFF, 3072 * sizeof(u16)); - std::memset(cfg->offsetTable.eaAddress.get_ptr(), 0xFF, 512 * sizeof(u16)); + cfg->offsetTable.ioAddress.set(addr); + cfg->offsetTable.eaAddress.set(addr + (3072 * sizeof(u16))); - cfg->reserved_size = 0; + std::memset(vm::base(addr), 0xFF, (3072 + 512) * sizeof(u16)); } //---------------------------------------------------------------------------- diff --git a/rpcs3/Emu/Cell/Modules/cellGcmSys.h b/rpcs3/Emu/Cell/Modules/cellGcmSys.h index 3786c4003c..9a46b0d985 100644 --- a/rpcs3/Emu/Cell/Modules/cellGcmSys.h +++ b/rpcs3/Emu/Cell/Modules/cellGcmSys.h @@ -30,7 +30,7 @@ struct gcm_config CellGcmContextData current_context; gcmInfo gcm_info; - CellGcmOffsetTable offsetTable; + CellGcmOffsetTable offsetTable{}; u16 IoMapTable[0xC00]{}; shared_mutex gcmio_mutex;