mirror of
https://github.com/gopher64/gopher64.git
synced 2026-07-11 01:25:20 +02:00
@@ -168,6 +168,7 @@ fn main() {
|
||||
.allowlist_function("ra_shutdown_client")
|
||||
.allowlist_function("ra_get_hardcore")
|
||||
.allowlist_function("ra_load_game")
|
||||
.allowlist_function("ra_unload_game")
|
||||
.allowlist_function("ra_set_dmem")
|
||||
.allowlist_function("ra_do_frame")
|
||||
.allowlist_function("ra_do_idle")
|
||||
|
||||
@@ -98,6 +98,7 @@ const char *ra_get_token() { return g_token; }
|
||||
|
||||
void ra_logout_user() {
|
||||
g_user_logged_in = false;
|
||||
g_game_loaded = false;
|
||||
g_username = NULL;
|
||||
g_token = NULL;
|
||||
rc_client_logout(g_client);
|
||||
@@ -184,6 +185,14 @@ void ra_load_game(const uint8_t *rom, size_t rom_size, void *userdata) {
|
||||
userdata);
|
||||
}
|
||||
|
||||
void ra_unload_game() {
|
||||
if (!g_game_loaded)
|
||||
return;
|
||||
|
||||
rc_client_unload_game(g_client);
|
||||
g_game_loaded = false;
|
||||
}
|
||||
|
||||
void ra_set_dmem(const uint8_t *dmem, size_t dmem_size) {
|
||||
g_dmem = dmem;
|
||||
g_dmem_size = dmem_size;
|
||||
|
||||
@@ -7,6 +7,7 @@ void ra_shutdown_client();
|
||||
void ra_welcome();
|
||||
bool ra_get_hardcore();
|
||||
void ra_load_game(const uint8_t *rom, size_t rom_size, void *userdata);
|
||||
void ra_unload_game();
|
||||
void ra_set_dmem(const uint8_t *dmem, size_t dmem_size);
|
||||
void ra_do_frame();
|
||||
void ra_do_idle();
|
||||
|
||||
+2
-1
@@ -89,8 +89,9 @@ pub fn run_game(device: &mut Device, rom_contents: &[u8], game_settings: ui::Gam
|
||||
|
||||
cpu::run(device);
|
||||
|
||||
retroachievements::unload_game();
|
||||
|
||||
ui::storage::write_saves(device);
|
||||
retroachievements::shutdown_client();
|
||||
ui::input::close(&mut device.ui);
|
||||
ui::audio::close(&mut device.ui);
|
||||
ui::video::close(&device.ui);
|
||||
|
||||
@@ -225,6 +225,7 @@ async fn main() -> std::io::Result<()> {
|
||||
load_savestate_slot: args.load_state,
|
||||
},
|
||||
);
|
||||
retroachievements::shutdown_client();
|
||||
|
||||
if device.netplay.is_some() {
|
||||
netplay::close(&mut device);
|
||||
|
||||
@@ -152,6 +152,10 @@ pub async fn load_game(rom: &[u8], rom_size: usize) {
|
||||
rx.await.unwrap();
|
||||
}
|
||||
|
||||
pub fn unload_game() {
|
||||
unsafe { ra_unload_game() };
|
||||
}
|
||||
|
||||
pub fn welcome() {
|
||||
unsafe { ra_welcome() };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user