Releases: RetroAchievements/rcheevos
Releases · RetroAchievements/rcheevos
v12.2.1
v12.2.0
- add
rc_client_create_subset_list - add
rc_client_begin_fetch_game_titles - greatly improve performance parsing long AddSource chains
- don't send pings if not processing frames; allows server to suspend session while emulator is paused
- modify validation logic to return most severe error instead of first error found
- improve validation warning when 'PauseIf {recall}' attempts to use non-PauseIf Remember
- fix rounding error when subtracting floats from integers
- fix infinite loop processing 'Remember {recall}' with no modifiers
- fix measured value jumping to 0 if all measured-generating alts are paused
- fix buffer overflow converting long user names between rc_client_external versions
- fix validation warning when adding differently sized values
- fix validation warning when ResetIf only applies to hit count inside an AndNext chain
- fix validation warning when only last node of modified memref chain differs
v12.1.0
- add
rc_client_get_user_subset_summary - add validation warning for using MeasuredIf without Measured
- add validation warning for using ResetIf without hit targets
- add rapi function for update_rich_presence
- add gap to
RC_CONSOLE_WIImemory map to make it easier to convert pointers - improve range validation logic
- fix error Remembering float value
- fix MeasuredIf evaluation in rich presence
- fix parsing of code notes with addresses above 0x7FFFFFFF
- fix double evaluation of rich presence parameters
- fix validation of SubSource chain
- fix error if
rc_client_allow_background_memory_readsis calledbefore calling rc_client_begin_load_raintegration - fix memory corruption when mixing legacy and new-format macros in rich presence
- fix invalid pointer reference when iterator gets cloned
v12.0.0
rc_client changes
- add
RC_CLIENT_EVENT_SUBSET_COMPLETEDevent - add
avatar_urltorc_client_user_t - add
badge_urltorc_client_game_t - add
badge_urlandbadge_locked_urltorc_client_achievement_t - add
rc_client_set_hash_callbacks - add
rc_client_set_allow_background_memory_reads - renamed
rc_client_begin_change_mediatorc_client_begin_identify_and_change_media - renamed
rc_client_begin_change_media_from_hashtorc_client_begin_change_media - use slim read/write locks for
rc_mutexon Windows Vista+ - use critical sections for
rc_mutexon older versions of Windows - add translation layer in rc_client_external for cross-version support
rhash changes
rc_hash_init_verbose_message_callbackandrc_hash_init_error_message_callbackhave been deprecated.- set values in
iterator.callbacksinstead.
- set values in
rc_hash_init_custom_filereaderandrc_hash_init_custom_cdreaderhave been deprecated.- set values in
iterator.callbacksinstead.
- set values in
rc_hash_generate_from_fileandrc_hash_generate_from_bufferhave been deprecated.- use
rc_hash_initialize_iteratorandrc_hash_generateinstead.
- use
- hash.c has been split into several smaller files which can be conditionally excluded from the build.
- hash_disc.c can be excluded by defining
RC_HASH_NO_DISC - hash_encrypted.c can be excluded by defining
RC_HASH_NO_ENCRYPTED - hash_rom.c can be excluded by defining
RC_HASH_NO_ROM - hash_zip.c can be excluded by defining
RC_HASH_NO_ZIP
- hash_disc.c can be excluded by defining
- add hash method for
RC_CONSOLE_WII - add hash method for Arduboy FX games (
RC_CONSOLE_ARDUBOY) - fix hash for PCE homebrew games that aren't multiples of 128KB
rapi changes
- add _hosted variations of rc_api_init functions for interacting with custom hosts
rc_api_set_hostandrc_api_set_image_hosthave been deprecated
- add
rc_api_fetch_game_sets - add
rc_api_fetch_followed_users - add
rc_api_fetch_hash_library - add
rc_api_fetch_all_user_progress - add
avatar_urlto login response, achievement_info response, and leaderboard_info responses - add
badge_urlto game_data response - rurl has been removed (deprecated in v10.0.0)
other changes
- trigger parsing/processing code has been largely modified to improve processing performance
- AddAddress/AddSource chains can now be shared across triggers to avoid recalculating them multiple times
- triggers are preprocessed to allocate conditions as array instead of linked list.
- array is sorted such that similar conditions (pause/reset/hittarget/etc) can be processed together
without having to scan the linked list multiple times - the linked list still exists for backwards compatibility and to maintain the original ordering
- array is sorted such that similar conditions (pause/reset/hittarget/etc) can be processed together
- each condition type has its own handler, eliminating many switches and branches when processing triggers
- memrefs are now allocated in arrays (eliminating the linked list pointer from each to reduce memory footprint)
- commas are now inserted into all numeric formats except
SCORE. a new format typeUNFORMATTED(@Unformatted) has
been added to display a number without commas.- To forcibly exclude commas in a backwards-compatible way, use the
@Unformattedmacro and define Unformatted as
aVALUEformatter. Legacy clients will use theVALUEformatter and new clients will use the@Unformattedmacro.
- To forcibly exclude commas in a backwards-compatible way, use the
- add
RC_CONSOLE_FAMICOM_DISK_SYSTEM(split off ofRC_CONSOLE_NINTENDO) - update
RC_CONSOLE_SNESmemory map to support SA-1 I-RAM and BW-RAM - update
RC_CONSOLE_SEGACDmemory map to support WORD RAM - update
RC_CONSOLE_N64memory map to place RDRAM at $80000000 and expansion pak RAM at $80400000 - remove
HAVE_LUAdefine and support (implementation was never finished) - report error when rich presence contains address starting with
0x0x. - add .natvis files to improve debugging in Visual Studio
v11.6.0
- backdate retried unlocks in rc_client
- add memory map and hash method for
RC_CONSOLE_ZX_SPECTRUM - add
RC_CONSOLE_GAMECUBEto supported consoles for iso file extension - add DTCM to
RC_CONSOLE_NINTENDO_DSandRC_CONSOLE_NINTENDO_DSImemory maps - don't report conflict if last conditions of OrNext chain conflict
- don't report conflict if last conditions of AddSource chain conflict
- fix hits not being reset on leaderboard value when start and submit are both true in a single frame
- fix crash when multiple items in a CSV lookup overlap
- fix crash if game is unloaded while activating achievements
v11.5.0
- add
total_entriestorc_api_fetch_leaderboard_info_response_t - add
RC_CLIENT_RAINTEGRATION_EVENT_MENU_CHANGEDevent - modify
rc_client_begin_identify_and_load_gameandrc_client_begin_change_mediato use locally
registered filereader/cdreader for hash resolution when using rc_client_raintegration - add support for ISO-8601 timestamps in JSON responses
- update
RC_CONSOLE_MS_DOShash logic to support parent archives - fix infinite loop that sometimes occurs when resetting while progress tracker is onscreen
v11.4.0
- add
RC_CONDITION_REMEMBERand RC_OPERAND_RECALL` - add
RC_OPERATOR_ADDandRC_OPERATOR_SUB - add scratch pad memory to PSX memory map
- add Super Game Module memory to Colecovision memory map
- add rapi function fetch_game_titles
- modify progress functions to return
RC_NO_GAME_LOADEDwhen "Unknown Game" is loaded - update subsystem list for arcade hash
- fix exception if server sends null as achievement.author
v11.3.0
- add
RC_OPERATOR_MOD - add cartridge RAM to Game Gear and Master System memory maps
- add extended cartridge RAM to Gameboy and Gameboy Color memory maps
- add
rc_client_is_game_loadedhelper function - add
rc_client_raintegration_set_console_idto specify console in case game resolution fails - add
rc_client_raintegration_get_achievement_stateto detect local unlocks - report validation errors on multi-condition logic
- hash whole file for PSP homebrew files (eboot.pbp)
- call DrawMenuBar in
rc_client_raintegration_rebuild_submenuif menu changes - fix file sharing issue using default filereader on Windows
- fix exception calling
rc_client_get_game_summarywith an unidentified game loaded
v11.2.0
- add alternate methods for state serialization/deserialization that accept a buffer_size parameter
- add
RC_CLIENT_SUPPORTS_HASHcompile flag- allows rc_client code to build without the rhash files (except md5.c)
- must be explicitly defined to use
rc_client_begin_identify_and_load_game
- add
rc_client_get_load_game_state - add
rc_client_raintegration_set_get_game_name_function - add
RC_MEMSIZE_DOUBLE32andRC_MEMSIZE_DOUBLE32_BE - exclude directory records from ZIP hash algorithm
- fix media host when explicitly setting host to production server
- fix potential out-of-bounds read looking for error message in non-JSON response
v11.1.0
- add
rc_client_get_user_agent_clauseto generate substring to include in client User-Agents - add
rc_client_can_pausefunction to control pause spam - add achievement type and rarity to
rc_api_fetch_game_data_response_tandrc_client_achievement_t - add
RC_CLIENT_ACHIEVEMENT_BUCKET_UNSYNCEDfor achievements that have been unlocked locally but not synced to the server - add
RC_CONSOLE_NEO_GEO_CDto supported consoles for chd file extension - add hash logic for
RC_CONSOLE_NINTENDO_3DS(note: added new filerhash/aes.cto support this) - add hash logic for
RC_CONSOLE_MS_DOS - add game_hash and hardcore fields to
rc_api_start_session_request_t andrc_api_ping_request_t - add
RC_FORMAT_FIXED1/2/3,RC_FORMAT_TENS,RC_FORMAT_HUNDREDS,RC_FORMAT_THOUSANDS, andRC_FORMAT_UNSIGNED_VALUE - add
RC_CONSOLE_STANDALONE - add
extern "C"and__cdeclattributes to public functions - add
__declspec(dllexport/dllimport)attributes to public functions via #define enablement - add
rc_versionandrc_version_stringfunctions for accessing version from external linkage - add unicode path support to default filereader (Windows builds)
- add rc_mutex support for GEKKO (libogc)
- fix async_handle being returned when
rc_client_begin_loginis aborted synchronously - fix logic error hashing CD files smaller than one sector
- fix read across region boundary in
rc_libretro_memory_read - fix
RC_CLIENT_EVENT_ACHIEVEMENT_CHALLENGE_INDICATOR_SHOWevent not being raised if achievement is reset in the same frame that it's primed - moved
rc_util.hfromsrc/toinclude/ - initial (incomplete) support for
rc_client_external_tandrc_client_raintegration_t