modify gOverrideEeprom

This commit is contained in:
EmeraldLockdown 2026-03-02 22:17:58 -06:00
parent e7f06691a5
commit 1a44cf7053
4 changed files with 15 additions and 33 deletions

View file

@ -34,6 +34,7 @@
#include "game/first_person_cam.h"
#include "game/envfx_snow.h"
#include "game/mario.h"
#include "game/save_file.h"
#include "engine/math_util.h"
#include "engine/lighting_engine.h"
#include "src/audio/load.h"
@ -169,8 +170,8 @@ bool network_init(enum NetworkType inNetworkType, bool reconnecting) {
dynos_behavior_hook_all_custom_behaviors();
network_player_connected(NPT_LOCAL, 0, configPlayerModel, &configPlayerPalette, configPlayerName, get_local_discord_id());
extern u8* gOverrideEeprom;
gOverrideEeprom = NULL;
extern u8* gOverrideEeprom[NUM_SAVE_FILES];
memset(gOverrideEeprom, 0, sizeof(gOverrideEeprom));
if (gCurrLevelNum != (s16)gLevelValues.entryLevel) {
extern s16 gChangeLevelTransition;
@ -705,8 +706,8 @@ void network_shutdown(bool sendLeaving, bool exiting, bool popup, bool reconnect
dynos_model_clear_pool(MODEL_POOL_SESSION);
// reset other stuff
extern u8* gOverrideEeprom;
gOverrideEeprom = NULL;
extern u8* gOverrideEeprom[NUM_SAVE_FILES];
memset(gOverrideEeprom, 0, sizeof(gOverrideEeprom));
extern u8 gOverrideFreezeCamera;
gOverrideFreezeCamera = false;
gDjuiHudLockMouse = false;

View file

@ -4,7 +4,7 @@
#include "game/save_file.h"
#include "pc/debuglog.h"
extern u8* gOverrideEeprom;
extern u8* gOverrideEeprom[NUM_SAVE_FILES];
static u8 eeprom[NUM_SAVE_FILES][EEPROM_SIZE] = { 0 };
static int filledEepromData = 0;
static int chunks = (NUM_SAVE_FILES * EEPROM_SIZE + (PACKET_LENGTH - 8) - 1) / (PACKET_LENGTH - 8);
@ -86,6 +86,9 @@ void network_receive_download_save(struct Packet* p) {
}
if (filledEepromData == NUM_SAVE_FILES * EEPROM_SIZE) {
for (int i = 0; i < NUM_SAVE_FILES; i++) {
gOverrideEeprom[i] = eeprom[i];
}
filledEepromData = 0;
network_send_join_request();
} else if (filledEepromData > NUM_SAVE_FILES * EEPROM_SIZE) {

View file

@ -27,10 +27,7 @@
#include "pc/configfile.h"
#include "pc/lua/utils/smlua_misc_utils.h"
extern u8* gOverrideEeprom;
static u8 eeprom[EEPROM_SIZE] = { 0 };
static u8 sJoinRequestPlayerModel;
static u8 sJoinRequestPlayerModel;
static struct PlayerPalette sJoinRequestPlayerPalette;
static char sJoinRequestPlayerName[MAX_CONFIG_STRING];
static char sJoinRequestDiscordId[64];
@ -40,7 +37,6 @@ void network_send_join_request(void) {
SOFT_ASSERT(gNetworkType == NT_CLIENT);
gNetworkSentJoin = true;
gOverrideEeprom = eeprom;
struct Packet p = { 0 };
packet_init(&p, PACKET_JOIN_REQUEST, true, PLMT_NONE);
@ -99,15 +95,6 @@ void network_send_join(struct Packet* joinRequestPacket) {
// do connection event
network_player_connected(NPT_CLIENT, globalIndex, sJoinRequestPlayerModel, &sJoinRequestPlayerPalette, sJoinRequestPlayerName, sJoinRequestDiscordId);
char filePath[256];
save_file_get_dir(gCurrSaveFileNum - 1, filePath, 256, NULL);
fs_file_t* fp = fs_open(filePath);
if (fp != NULL) {
fs_read(fp, eeprom, EEPROM_SIZE);
fs_close(fp);
}
char version[MAX_VERSION_LENGTH] = { 0 };
snprintf(version, MAX_VERSION_LENGTH, "%s", get_version());
LOG_INFO("sending version: %s", version);
@ -128,7 +115,6 @@ void network_send_join(struct Packet* joinRequestPacket) {
packet_write(&p, &gServerSettings.maxPlayers, sizeof(u8));
packet_write(&p, &gServerSettings.pauseAnywhere, sizeof(u8));
packet_write(&p, &gServerSettings.pvpType, sizeof(u8));
packet_write(&p, eeprom, sizeof(u8) * EEPROM_SIZE);
network_send_to(globalIndex, &p);
LOG_INFO("sending join packet");
@ -142,8 +128,6 @@ void network_receive_join(struct Packet* p) {
LOG_INFO("received join packet");
gCurrentlyJoining = true;
gOverrideEeprom = eeprom;
char version[MAX_VERSION_LENGTH] = { 0 };
snprintf(version, MAX_VERSION_LENGTH, "%s", get_version());
LOG_INFO("client has version: %s", version);
@ -181,7 +165,6 @@ void network_receive_join(struct Packet* p) {
packet_read(p, &gServerSettings.maxPlayers, sizeof(u8));
packet_read(p, &gServerSettings.pauseAnywhere, sizeof(u8));
packet_read(p, &gServerSettings.pvpType, sizeof(u8));
packet_read(p, eeprom, sizeof(u8) * EEPROM_SIZE);
network_player_connected(NPT_SERVER, 0, 0, &DEFAULT_MARIO_PALETTE, "Player", "0");
network_player_connected(NPT_LOCAL, myGlobalIndex, configPlayerModel, &configPlayerPalette, configPlayerName, get_local_discord_id());

View file

@ -6,7 +6,7 @@
#include "fs/fs.h"
#include "game/save_file.h"
u8* gOverrideEeprom = NULL;
u8* gOverrideEeprom[NUM_SAVE_FILES] = { NULL };
extern OSMgrArgs piMgrArgs;
@ -126,11 +126,6 @@ s32 osEepromProbe(UNUSED OSMesgQueue *mq) {
}
s32 osEepromLongReadLegacy(UNUSED OSMesgQueue *mq, u8 address, u8 *buffer, int nbytes) {
if (gOverrideEeprom != NULL) {
memcpy(buffer, gOverrideEeprom + address * 8, nbytes);
return 0;
}
u8 content[512];
s32 ret = -1;
@ -148,8 +143,8 @@ s32 osEepromLongReadLegacy(UNUSED OSMesgQueue *mq, u8 address, u8 *buffer, int n
}
s32 osEepromLongRead(UNUSED OSMesgQueue *mq, u8 fileIndex, u8 address, u8 *buffer, int nbytes) {
if (gOverrideEeprom != NULL) {
memcpy(buffer, gOverrideEeprom + address * 8, nbytes);
if (gOverrideEeprom[fileIndex] != NULL) {
memcpy(buffer, gOverrideEeprom[fileIndex] + address * 8, nbytes);
return 0;
}
@ -172,8 +167,8 @@ s32 osEepromLongRead(UNUSED OSMesgQueue *mq, u8 fileIndex, u8 address, u8 *buffe
}
s32 osEepromLongWrite(UNUSED OSMesgQueue *mq, u8 fileIndex, u8 address, u8 *buffer, int nbytes) {
if (gOverrideEeprom != NULL) {
memcpy(gOverrideEeprom + address * 8, buffer, nbytes);
if (gOverrideEeprom[fileIndex] != NULL) {
memcpy(gOverrideEeprom[fileIndex] + address * 8, buffer, nbytes);
return 0;
}