@@ -130,10 +130,10 @@ index 1f07bdd4eeb..b64f63f08d9 100644
130130 bool command_load_state_slot(command_t *cmd, const char *arg)
131131 {
132132diff --git a/command.h b/command.h
133- index ad3ac3e12eb..416f98062f6 100644
133+ index 6fd256541b..7e9c378af4 100644
134134--- a/command.h
135135+++ b/command.h
136- @@ -408 ,6 +408 ,12 @@ bool command_version(command_t *cmd, const char* arg);
136+ @@ -426 ,6 +426 ,12 @@ bool command_version(command_t *cmd, const char* arg);
137137 bool command_get_status(command_t *cmd, const char* arg);
138138 bool command_get_config_param(command_t *cmd, const char* arg);
139139 bool command_show_osd_msg(command_t *cmd, const char* arg);
@@ -145,33 +145,29 @@ index ad3ac3e12eb..416f98062f6 100644
145145+ bool command_save_state_slot(command_t *cmd, const char *arg);
146146 bool command_load_state_slot(command_t *cmd, const char* arg);
147147 bool command_play_replay_slot(command_t *cmd, const char* arg);
148- #ifdef HAVE_CHEEVOS
149- @@ -441,8 +447,15 @@ static const struct cmd_action_map action_map[] = {
148+ bool command_seek_replay(command_t *cmd, const char *arg);
149+ @@ -456,6 +462,13 @@ static const struct cmd_action_map action_map[] = {
150150 { "READ_CORE_MEMORY", command_read_memory, "<address> <number of bytes>" },
151151 { "WRITE_CORE_MEMORY",command_write_memory, "<address> <byte1> <byte2> ..." },
152-
153- - { "LOAD_STATE_SLOT",command_load_state_slot, "<slot number>"},
154- - { "PLAY_REPLAY_SLOT",command_play_replay_slot, "<slot number>"},
152+
155153+ { "GET_DISK_COUNT", command_get_disk_count, "No argument" },
156154+ { "GET_DISK_SLOT", command_get_disk_slot, "No argument" },
157155+ { "SET_DISK_SLOT", command_set_disk_slot, "<disc number>" },
158156+
159157+ { "GET_STATE_SLOT", command_get_state_slot, "No argument" },
160158+ { "SET_STATE_SLOT", command_set_state_slot, "<slot number>" },
161159+ { "SAVE_STATE_SLOT", command_save_state_slot, "<slot number>" },
162- + { "LOAD_STATE_SLOT", command_load_state_slot, "<slot number>" },
163- + { "PLAY_REPLAY_SLOT", command_play_replay_slot, "<slot number>" },
164- };
165-
166- static const struct cmd_map map[] = {
160+ { "LOAD_STATE_SLOT",command_load_state_slot, "<slot number>"},
161+ { "PLAY_REPLAY_SLOT",command_play_replay_slot, "<slot number>"},
162+ { "SEEK_REPLAY",command_seek_replay, "<frame number>"},
167163diff --git a/runloop.c b/runloop.c
168- index 846fbabcd3a..bd8bc2adecf 100644
164+ index a4bc004f26..669737e7ab 100644
169165--- a/runloop.c
170166+++ b/runloop.c
171- @@ -7195,6 +7195,18 @@ void runloop_task_msg_queue_push(
167+ @@ -7361,6 +7361,17 @@ void runloop_task_msg_queue_push(
168+ runloop_msg_queue_push(msg, prio, duration, flush, NULL, MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
172169 }
173-
174-
170+
175171+ uint32_t runloop_get_current_savestate()
176172+ {
177173+ settings_t *settings = config_get_ptr();
@@ -183,10 +179,9 @@ index 846fbabcd3a..bd8bc2adecf 100644
183179+ settings_t *settings = config_get_ptr();
184180+ settings->ints.state_slot = state_slot;
185181+ }
186- +
182+
187183 bool runloop_get_current_savestate_path(char *path, size_t len)
188184 {
189- settings_t *settings = config_get_ptr();
190185diff --git a/runloop.h b/runloop.h
191186index 3ba255f7ba9..b0f2d5f567b 100644
192187--- a/runloop.h
0 commit comments