Skip to content

Commit d6265a7

Browse files
committed
Prevent ARM crashes from the ASIC not being reset on state load
1 parent b30a9e0 commit d6265a7

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

core/coproc.c

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,20 @@ void coproc_reset(void) {
1313
gui_console_printf("[CEmu] Reset Coprocessor Interface...\n");
1414
arm_destroy(coproc.arm);
1515
memset(&coproc, 0, sizeof(coproc));
16-
coproc.arm = arm_create();
16+
if (asic.python) {
17+
coproc.arm = arm_create();
18+
}
1719
}
1820

1921
bool coproc_load(const char *path) {
20-
return arm_load(coproc.arm, path);
22+
if (asic.python && !coproc.arm) {
23+
coproc.arm = arm_create();
24+
}
25+
if (coproc.arm) {
26+
return arm_load(coproc.arm, path);
27+
} else {
28+
return false;
29+
}
2130
}
2231

2332
void coproc_uart_transmit(const uart_transfer_t *transfer) {

0 commit comments

Comments
 (0)