Skip to content

Commit 514f530

Browse files
committed
everdrive: Send save data on file load
1 parent a9386bd commit 514f530

File tree

9 files changed

+29700
-29654
lines changed

9 files changed

+29700
-29654
lines changed

ASM/build/asm_symbols.txt

Lines changed: 694 additions & 693 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ASM/build/bundle.o

232 Bytes
Binary file not shown.

ASM/build/c_symbols.txt

Lines changed: 680 additions & 679 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ASM/c/everdrive.c

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -306,13 +306,14 @@ void everdrive_handshake() {
306306

307307
void everdrive_update_in_game(bool in_game) {
308308
if (in_game) {
309-
uint8_t state_packet[16] = {
310-
0x02, // State: In Game
311-
z64_file.ammo[4], // internal item count, hi
312-
z64_file.ammo[5], // internal item count, lo
313-
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //TODO send relevant parts of save data (which?)
314-
};
315-
everdrive_write(16, state_packet);
309+
uint8_t state_packet[201] = { 0x02 }; // State: In Game
310+
z64_memcopy(&state_packet[1], &z64_file, 200);
311+
everdrive_write(201, state_packet);
312+
for (uint8_t segment_idx; segment_idx < 10; segment_idx++) {
313+
uint8_t save_data_packet[502] = { 0x06, segment_idx }; // Save Data Segment
314+
z64_memcopy(&save_data_packet[2], ((uint8_t*)z64_file_addr) + 200 + segment_idx * 500, 500);
315+
everdrive_write(502, save_data_packet);
316+
}
316317
everdrive_in_game = 1;
317318
} else {
318319
uint8_t state_packet[16] = {

ASM/c/util.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,12 @@ void* resolve_overlay_addr(void* addr, uint16_t overlay_id) {
3030
}
3131
return NULL;
3232
}
33+
34+
void* memset(void* dest, int val, size_t len) {
35+
char* ptr = dest;
36+
37+
while (len--) {
38+
*ptr++ = val;
39+
}
40+
return dest;
41+
}

data/generated/patch_symbols.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)