Skip to content

Commit 50a9f04

Browse files
committed
dep/rcheevos: Bump to 6755915
1 parent 330eb05 commit 50a9f04

File tree

9 files changed

+153
-67
lines changed

9 files changed

+153
-67
lines changed

dep/rcheevos/src/rc_client.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5924,7 +5924,7 @@ void rc_client_do_frame(rc_client_t* client)
59245924

59255925
richpresence = client->game->runtime.richpresence;
59265926
if (richpresence && richpresence->richpresence)
5927-
rc_update_richpresence(richpresence->richpresence, client->state.legacy_peek, client, NULL);
5927+
rc_update_richpresence_internal(richpresence->richpresence, client->state.legacy_peek, client);
59285928

59295929
rc_mutex_unlock(&client->state.mutex);
59305930

dep/rcheevos/src/rc_client_external.c

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,16 @@
88
#define RC_CONVERSION_FILL(obj, obj_type, src_type) memset((uint8_t*)obj + sizeof(src_type), 0, sizeof(obj_type) - sizeof(src_type))
99

1010
/* https://media.retroachievements.org/Badge/123456_lock.png is 58 with null terminator */
11-
#define RC_CLIENT_IMAGE_URL_BUFFER_SIZE 128
11+
#define RC_CLIENT_IMAGE_URL_BUFFER_SIZE 64
12+
/* https://media.retroachievements.org/UserPic/TwentyCharUserNameXX.png is 69 with null terminator */
13+
#define RC_CLIENT_USER_IMAGE_URL_BUFFER_SIZE 80
1214

1315
typedef struct rc_client_external_conversions_t {
1416
rc_client_user_t user;
1517
rc_client_game_t game;
1618
rc_client_subset_t subsets[4];
1719
rc_client_achievement_t achievements[16];
18-
char user_avatar_url[RC_CLIENT_IMAGE_URL_BUFFER_SIZE];
20+
char user_avatar_url[RC_CLIENT_USER_IMAGE_URL_BUFFER_SIZE];
1921
char game_badge_url[RC_CLIENT_IMAGE_URL_BUFFER_SIZE];
2022
char subset_badge_url[4][RC_CLIENT_IMAGE_URL_BUFFER_SIZE];
2123
char achievement_badge_url[16][RC_CLIENT_IMAGE_URL_BUFFER_SIZE];
@@ -24,7 +26,7 @@ typedef struct rc_client_external_conversions_t {
2426
uint32_t next_achievement_index;
2527
} rc_client_external_conversions_t;
2628

27-
static const char* rc_client_external_build_avatar_url(char buffer[], uint32_t image_type, const char* image_name)
29+
static const char* rc_client_external_build_avatar_url(char buffer[], size_t buffer_size, uint32_t image_type, const char* image_name)
2830
{
2931
rc_api_fetch_image_request_t image_request;
3032
rc_api_request_t request;
@@ -38,7 +40,7 @@ static const char* rc_client_external_build_avatar_url(char buffer[], uint32_t i
3840
if (result != RC_OK)
3941
return NULL;
4042

41-
strcpy_s(buffer, RC_CLIENT_IMAGE_URL_BUFFER_SIZE, request.url);
43+
snprintf(buffer, buffer_size, "%s", request.url);
4244
return buffer;
4345
}
4446

@@ -69,7 +71,9 @@ const rc_client_user_t* rc_client_external_convert_v1_user(const rc_client_t* cl
6971
RC_CONVERSION_FILL(converted, rc_client_user_t, v1_rc_client_user_t);
7072

7173
converted->avatar_url = rc_client_external_build_avatar_url(
72-
client->state.external_client_conversions->user_avatar_url, RC_IMAGE_TYPE_USER, v1_user->username);
74+
client->state.external_client_conversions->user_avatar_url,
75+
sizeof(client->state.external_client_conversions->user_avatar_url),
76+
RC_IMAGE_TYPE_USER, v1_user->username);
7377

7478
return converted;
7579
}
@@ -88,7 +92,9 @@ const rc_client_game_t* rc_client_external_convert_v1_game(const rc_client_t* cl
8892
RC_CONVERSION_FILL(converted, rc_client_game_t, v1_rc_client_game_t);
8993

9094
converted->badge_url = rc_client_external_build_avatar_url(
91-
client->state.external_client_conversions->game_badge_url, RC_IMAGE_TYPE_GAME, v1_game->badge_name);
95+
client->state.external_client_conversions->game_badge_url,
96+
sizeof(client->state.external_client_conversions->game_badge_url),
97+
RC_IMAGE_TYPE_GAME, v1_game->badge_name);
9298

9399
return converted;
94100
}
@@ -123,7 +129,9 @@ const rc_client_subset_t* rc_client_external_convert_v1_subset(const rc_client_t
123129
memcpy(converted, v1_subset, sizeof(v1_rc_client_subset_t));
124130
RC_CONVERSION_FILL(converted, rc_client_subset_t, v1_rc_client_subset_t);
125131

126-
converted->badge_url = rc_client_external_build_avatar_url(badge_url, RC_IMAGE_TYPE_GAME, v1_subset->badge_name);
132+
converted->badge_url = rc_client_external_build_avatar_url(badge_url,
133+
sizeof(client->state.external_client_conversions->subset_badge_url[0]),
134+
RC_IMAGE_TYPE_GAME, v1_subset->badge_name);
127135

128136
return converted;
129137
}
@@ -161,8 +169,12 @@ const rc_client_achievement_t* rc_client_external_convert_v1_achievement(const r
161169
memcpy(converted, v1_achievement, sizeof(v1_rc_client_achievement_t));
162170
RC_CONVERSION_FILL(converted, rc_client_achievement_t, v1_rc_client_achievement_t);
163171

164-
converted->badge_url = rc_client_external_build_avatar_url(badge_url, RC_IMAGE_TYPE_ACHIEVEMENT, v1_achievement->badge_name);
165-
converted->badge_locked_url = rc_client_external_build_avatar_url(badge_locked_url, RC_IMAGE_TYPE_ACHIEVEMENT_LOCKED, v1_achievement->badge_name);
172+
converted->badge_url = rc_client_external_build_avatar_url(badge_url,
173+
sizeof(client->state.external_client_conversions->achievement_badge_url[0]),
174+
RC_IMAGE_TYPE_ACHIEVEMENT, v1_achievement->badge_name);
175+
converted->badge_locked_url = rc_client_external_build_avatar_url(badge_locked_url,
176+
sizeof(client->state.external_client_conversions->achievement_badge_locked_url[0]),
177+
RC_IMAGE_TYPE_ACHIEVEMENT_LOCKED, v1_achievement->badge_name);
166178

167179
return converted;
168180
}
@@ -246,9 +258,13 @@ rc_client_achievement_list_t* rc_client_external_convert_v1_achievement_list(con
246258
*achievement = &new_list->achievements[num_achievements++];
247259
memcpy(*achievement, *src_achievement, sizeof(**src_achievement));
248260

249-
(*achievement)->badge_url = rc_client_external_build_avatar_url(badge_url, RC_IMAGE_TYPE_ACHIEVEMENT, (*achievement)->badge_name);
261+
(*achievement)->badge_url = rc_client_external_build_avatar_url(badge_url,
262+
sizeof(client->state.external_client_conversions->achievement_badge_url[0]),
263+
RC_IMAGE_TYPE_ACHIEVEMENT, (*achievement)->badge_name);
250264
badge_url += RC_CLIENT_IMAGE_URL_BUFFER_SIZE;
251-
(*achievement)->badge_locked_url = rc_client_external_build_avatar_url(badge_url, RC_IMAGE_TYPE_ACHIEVEMENT_LOCKED, (*achievement)->badge_name);
265+
(*achievement)->badge_locked_url = rc_client_external_build_avatar_url(badge_url,
266+
sizeof(client->state.external_client_conversions->achievement_badge_locked_url[0]),
267+
RC_IMAGE_TYPE_ACHIEVEMENT_LOCKED, (*achievement)->badge_name);
252268
badge_url += RC_CLIENT_IMAGE_URL_BUFFER_SIZE;
253269
}
254270
}

dep/rcheevos/src/rc_client_raintegration.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,8 @@ static int rc_client_init_raintegration(rc_client_t* client, HWND main_window_ha
222222
external_client->set_encore_mode_enabled(rc_client_get_encore_mode_enabled(client));
223223
if (external_client->set_spectator_mode_enabled)
224224
external_client->set_spectator_mode_enabled(rc_client_get_spectator_mode_enabled(client));
225+
if (external_client->set_allow_background_memory_reads)
226+
external_client->set_allow_background_memory_reads(client->state.allow_background_memory_reads);
225227

226228
/* attach the external client and call the callback */
227229
client->state.external_client = external_client;

dep/rcheevos/src/rc_version.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
RC_BEGIN_C_DECLS
99

1010
#define RCHEEVOS_VERSION_MAJOR 12
11-
#define RCHEEVOS_VERSION_MINOR 0
11+
#define RCHEEVOS_VERSION_MINOR 1
1212
#define RCHEEVOS_VERSION_PATCH 0
1313

1414
#define RCHEEVOS_MAKE_VERSION(major, minor, patch) (major * 1000000 + minor * 1000 + patch)

dep/rcheevos/src/rcheevos/condset.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -607,8 +607,8 @@ static void rc_condset_evaluate_or_next(rc_condition_t* condition, rc_eval_state
607607
eval_state->or_next = rc_condset_evaluate_condition_no_add_hits(condition, eval_state);
608608
}
609609

610-
static void rc_test_condset_internal(rc_condition_t* condition, uint32_t num_conditions,
611-
rc_eval_state_t* eval_state, int can_short_circuit) {
610+
void rc_test_condset_internal(rc_condition_t* condition, uint32_t num_conditions,
611+
rc_eval_state_t* eval_state, int can_short_circuit) {
612612
const rc_condition_t* condition_end = condition + num_conditions;
613613
for (; condition < condition_end; ++condition) {
614614
switch (condition->type) {

dep/rcheevos/src/rcheevos/consoleinfo.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -971,9 +971,10 @@ static const rc_memory_regions_t rc_memory_regions_wasm4 = { _rc_memory_regions_
971971
/* https://wiibrew.org/wiki/Memory_map */
972972
static const rc_memory_region_t _rc_memory_regions_wii[] = {
973973
{ 0x00000000U, 0x017FFFFF, 0x80000000U, RC_MEMORY_TYPE_SYSTEM_RAM, "System RAM" },
974-
{ 0x01800000U, 0x057FFFFF, 0x90000000U, RC_MEMORY_TYPE_SYSTEM_RAM, "System RAM" }
974+
{ 0x01800000U, 0x0FFFFFFF, 0x81800000U, RC_MEMORY_TYPE_UNUSED, "Unused" },
975+
{ 0x10000000U, 0x13FFFFFF, 0x90000000U, RC_MEMORY_TYPE_SYSTEM_RAM, "System RAM" }
975976
};
976-
static const rc_memory_regions_t rc_memory_regions_wii = { _rc_memory_regions_wii, 2 };
977+
static const rc_memory_regions_t rc_memory_regions_wii = { _rc_memory_regions_wii, 3 };
977978

978979
/* ===== WonderSwan ===== */
979980
/* http://daifukkat.su/docs/wsman/#ovr_memmap */

dep/rcheevos/src/rcheevos/rc_internal.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,7 @@ rc_condset_t* rc_parse_condset(const char** memaddr, rc_parse_state_t* parse);
311311
int rc_test_condset(rc_condset_t* self, rc_eval_state_t* eval_state);
312312
void rc_reset_condset(rc_condset_t* self);
313313
rc_condition_t* rc_condset_get_conditions(rc_condset_t* self);
314+
void rc_test_condset_internal(rc_condition_t* condition, uint32_t num_conditions, rc_eval_state_t* eval_state, int can_short_circuit);
314315

315316
enum {
316317
RC_PROCESSING_COMPARE_DEFAULT = 0,
@@ -379,6 +380,7 @@ int rc_lboard_state_active(int state);
379380
void rc_parse_richpresence_internal(rc_richpresence_t* self, const char* script, rc_parse_state_t* parse);
380381
rc_memrefs_t* rc_richpresence_get_memrefs(rc_richpresence_t* self);
381382
void rc_reset_richpresence_triggers(rc_richpresence_t* self);
383+
void rc_update_richpresence_internal(rc_richpresence_t* richpresence, rc_peek_t peek, void* peek_ud);
382384

383385
int rc_validate_memrefs(const rc_memrefs_t* memrefs, char result[], const size_t result_size, uint32_t max_address);
384386
int rc_validate_memrefs_for_console(const rc_memrefs_t* memrefs, char result[], const size_t result_size, uint32_t console_id);

0 commit comments

Comments
 (0)