diff --git a/lib/N64ModernRuntime b/lib/N64ModernRuntime index 94b30d7..03258db 160000 --- a/lib/N64ModernRuntime +++ b/lib/N64ModernRuntime @@ -1 +1 @@ -Subproject commit 94b30d7061a8469f75b33e37292d828bc99528c0 +Subproject commit 03258dbf77f05f681d0a33bc366e47b15969c848 diff --git a/src/game/recomp_data_api.cpp b/src/game/recomp_data_api.cpp index 2557abf..b07dbcf 100644 --- a/src/game/recomp_data_api.cpp +++ b/src/game/recomp_data_api.cpp @@ -569,8 +569,18 @@ void recomputil_u32_slotmap_size(uint8_t* rdram, recomp_context* ctx) { // memory slotmap. void recomputil_create_memory_slotmap(uint8_t* rdram, recomp_context* ctx) { - (void)rdram; - _return(ctx, memory_slotmaps.create()); + uint32_t element_size = _arg<0, uint32_t>(rdram, ctx); + + // Create the map. + uint32_t map_key = memory_slotmaps.create(); + + // Retrieve the map and set its element size to the provided value. + MemorySlotmap* map; + memory_slotmaps.get(map_key, &map); + map->second = element_size; + + // Return the created map's key. + _return(ctx, map_key); } void recomputil_destroy_memory_slotmap(uint8_t* rdram, recomp_context* ctx) { @@ -628,7 +638,7 @@ void recomputil_memory_slotmap_create(uint8_t* rdram, recomp_context* ctx) { // Store the allocated pointer. PTR(void)* value_ptr; map->first.get(key, &value_ptr); - MEM_W(0, *value_ptr) = addr; + *value_ptr = static_cast(addr); // Return the key. _return(ctx, key); diff --git a/src/main/main.cpp b/src/main/main.cpp index 2eeeeb3..cef8db2 100644 --- a/src/main/main.cpp +++ b/src/main/main.cpp @@ -48,7 +48,7 @@ #include "../../lib/rt64/src/contrib/stb/stb_image.h" -const std::string version_string = "1.2.0-dev1.2.1"; +const std::string version_string = "1.2.1-dev"; template void exit_error(const char* str, Ts ...args) {