A Year in Review
Contents
Intro
We have taken many steps forward this past year as a community and continue to make RetroAchievements a wonderful community to be a part of. Let’s take a step back and remember what we all accomplished and the teams that helpes us get here along the way over the past year.
Community Updates
- Softcore Points Update
- Massive amount of site updates, most notably RAWeb Version 2.0. The framework changes included in this update have paved the way towards some long awaited and request site updates. Full list of updates is here.
- Tons of emulator and dev tool updates allow devs to make achievement more efficiently. Full list of updates is here.
- QATeam split into dedicated
Quality Assurance
,Developer Compliance
andDevQuest
teams. - RAEvents team created to handle the current and upcoming RA events.
- Quality Quest created to help the website as a whole, whether it be rescores, grammar corrections, ticket save states or full game save states.
- What are RetroAchievements? video by iShade.
- The Anatomy Of A Good Ticket article by VoiceOfAutumn.
- Retro Olympics 2022 ongoing. More information here.
- RAPodcast started. Current episodes can be viewed at the official YouTube Channel.
- RA Minecraft server started. Server address:
mc.retroachievements.org:25588
#minecraft
Discord channel created for related discussions.
New Console Support
Console | Support Date | Sets | Achievements | Leaderboards |
---|---|---|---|---|
Dreamcast | 2/12/2022 | 71 | 5,054 | 1,479 |
Amstrad CPC | 3/27/2022 | 41 | 1,063 | 69 |
Arduboy | 5/8/2022 | 55 | 871 | 144 |
WASM-4 | 5/8/2022 | 37 | 400 | 51 |
Fairchild Channel F | 7/27/2022 | 23 | 240 | 20 |
Mega Duck | 7/27/2022 | 23 | 581 | 156 |
Playstation 2 | 10/1/2022 | 205 | 20,105 | 7,013 |
Developer Rule & Policy Updates
- Subset Rule Updates
- Naming scheme for Bonus and Multi sets. Instead of [Bonus] and [Multi], they
should be [Subset - Bonus] and [Subset - Multi].
- The list of pre-approved Subsets has expanded. Before it was just
"Professor Oak Challenge," but now includes the following:
- Bonus/Multi
- DLC/Expansions
- Glitch Showcases
- Regional Differences
- Low Level Games/No Leveling Runs
- Solo Class/Monotype Runs
- Checkpoint Challenges (such as POC)
- Perma-Death Challenges
Other challenge run ideas (such as Rare Drops) will still need to be approved.
The pre-approved list will likely continue to expand as more Subsets are made.
- Claims
Before: Bonus/Subsets would not need to be claimed if published alongside a
base set. If published later, they would require a revision vote and
count as a claim. That has been abolished to be more in line with revisions.
Now: Subsets will not count as a claim and do not require votes if the dev
is the sole author of the base set. Otherwise, they will need to post a
plan in the forum and have it approved via revision voting.
- Developer Inactivity Updates
If a developer is inactive for six months or longer, meaning within six
months they have not created any new achievements or resolved any incoming
tickets, their developer status will expire.
If this happens to you, you are very welcome to come back to the scene if
you want to create new content for our community. First, you'll want to
review and understand this document (the Developer Code of Conduct).
When you feel ready to adhere to it, message us to user RAdmin here
on site or speak to the admin or mod users on the RetroAchievements
Discord server to check how to get your developer status back.
- Set Plagiarism Rule Introduced
- Rules updated to reflect new Developer Set Claim system.
- Reservation Renewals
- Added details about the progress reports requirements.
- Adjusted of the cooldown after denied progress reports (from 3 months to 1 month) to align with the “drop and resume before 1 month” rule.
- Added the requirement to post progress reports after every renewal if a 1-month cooldown happened.
Moderation
Thanks to the Moderation team for keeping the RA Discord Server a kind, enjoyable and welcoming place for all the users. Moderating a server with nearly 6,000 users can be difficult at times with heated arguments, clash of opinions, and internet trolls. It can sometimes seem like a thankless job and may require an insane amount of self-control to diffuse heated situations. Your dedication to keeping the server as safe, positive, and enjoyable as it can be is very appreciated.
Thank you for everything you do.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Code Reviewers & Junior Developers
The Junior Developer program is responsible for aiding and assisting aspiring achievement sets developers as they try to earn the rank of a full developer. The program is always growing and improving on to meet the needs of the users interested in creating achievements. Reviews are now being completed in their own threads in the #jr-dev-forum
channel to reduce clutter in the main channel, this channel also tutorial and guides created by the Code Reviewer team, a new voice channel has been created for additional help, site permissions have been updated to allow Junior Developers more control over their sets without needed to ping Code Reviewers for simple tasks like updating box arts. This year the team had nearly 150 new Junior Developers join the program, almost 200 reviews being completed, and promoted almost 50 new Developers.
Big thanks to all the Code Reviewers who offer their free time to help review sets, teach concepts, and provide guidance to the next generation of achievement developers. If you are interested in becoming a Code Reviewer, please reach out to any of the following current Code Reviewers:
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
If you are interested in joining the Code Review Team, please reach out to any of the members above.
Quality Assurance
The Quality Assurance team handles overall set quality and maintains the sub-teams (CleanupTeam, Playtesters, SetRepair, etc). The team has been hard at working making sure the overall quality of sets is as high as it can be.
Thanks to the members of the team for all the work they do keeping the sub-teams and overall achievement set quality at a maximum.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Please reach out to QATeam for any questions, comments or concerns.
Developer Compliance
The Developer Compliance handles Developer Code of Conduct related issues and updates. Sets or developers breaking rules, reservation tracking, etc. The team has been hard at work discussion incoming concerns, making decisions, and making Code of Conduct updates that best drive the community forward.
Thanks to the members of the team for all the work they do making sure that developers and their sets maintain the rules defined in the Developer Code of Conduct.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Please reach out to DevCompliance for and questions, comments, or concerns.
Playtesters
The Playtester team consists of users who help in finding issues and validating achievement unlocks before a set goes live. Users part of the team able to earn a Playtester site badge for playtesting sets and finding bugs before they the sets gets pushed to core.
Thanks to the members of the team that test out the achievements and find bugs before they make it to the rest of the community. This really helps in limiting the never-ending stream of achievement tickets.
If you are interested in becoming a Playtester, please reach out to Haruda.
RANews
RANews hit it’s 2-year anniversary this past August. This year we added more users to the team to help out with the monthly release. Along with the regularly delivered sections, we have also been working to bring you the following new sections:
- Set of the Month
- Monthly Stats
- This Month In Retro
- It’s A Long Way To The Top
- Community News
- RAScript Tutorial Series
- Most Wanted
Thanks to all the members of the team and those in the community who submit content to fill each and every issue.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
If you are interested in joining the RANews Team, plese reach out to RANews or any of the members above.
Events Team
The new Site and Discord Events team was created to maintain the vast amount of events that are RA has ongoing and coming up. Their responsibilities include approving new events, helping to run and organize events, and hosting events that do not have a dedicated host. The team can be reached from Site by contacts RAEvents or via Discord by contacting @Events-Team
. The current members of the Events Team are:
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Events
RetroAchievements offers a wide range of unique and entertaining events throughout the year to get the community members involved in some friendly competition. The Current Events section of RANews keeps everyone up to date with the latest and greatest event news of the past year.
DevQuest
What is DevQuest? It’s simple: They’re achievement development-related QUESTS that act like an MMO. These quests do not have a time limit, and by completing each one you earn a site badge. You can start a quest today, one week later, or even three months later: they will still be there for you!
Introduced in 2021, DevQuest has become a staple in the journey of every RA developers. With new quests added regularly, Developers always have something new to strive for in their everlasting quest of development.
Thanks to the members of the team that track all the incoming requests and questions, and keep everyting reagarding DevQuest under control and organized.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
This year almost 300 DevQuest awards and 150 Veteran Developer achievements were awarded. Lets take a look at all the DevQuest and Veteran Developer progress made this year.
DevQuest Awards
![]() |
||
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||
---|---|---|
![]() |
![]() |
||
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Veteran Developer Progress
![]() |
||
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Discord Updates
Discord is a main area for communication and work in the RetroAchievements community. Here are some of the updates and role/channel additions that have occurred over the past year.
- Icon Gauntlet rule updates
@Art-Helper
will be responsible for uploading any changes to badges or icons that pass through the gauntlet- If you are an active developer and wish to help finalize icon-gauntlet results, please DM gollawiz for our contribution tracking Google Sheet. You will need to verify and finalize your results there.
- 24 hour cooldown on repeat gauntlets
- 24 hours must pass before submitting the same game to the icon-gauntlet. Note: Achievement badges and game icons are considered separate and may be run alongside each other. Future gauntlets are still subject to the 24 hour rule.
- Updates to your gauntlet
- If you have any mistakes in your current gauntlet, let
@Art-Helper
know. Your original poll will be deleted and you must re-poll for accurate results.
- If you have any mistakes in your current gauntlet, let
- Multiple Icons
- Completed Gauntlets for multiple images in the same set must be labeled according to the order they appear in the achievement list. (Do NOT use the achievement ID) A .zip for the badges must then be posted in the “Icon Gauntlet Uploads” thread found in gauntlet-discussion.
- We had several channels transition into forum channels, allowing users to create forum topics for their issues or requests. This reduces clutter in the channel and makes it easier to track issues or requests without them getting lost.
- ClaimBot and HashBot were created to auto log Developer Set Claim actions and Hash unlinks. Making it easier to track that information without needed to search the site for it.
- PlaytestBot was created to ping the Playtest team anytime a new set is ready for playtesting.
- Staff role was dissolved in favor of the several teams that now take care of the various projects and efforts.
Role Additions
Role | Purpose |
---|---|
@Compatibility-Tester |
New role for new team created during the QA Team Restructure. Helps to test ROM compatibility for existing sets. |
@Dev-Compliance |
New role for new team created during the QA Team Restructure. Handles any Developer Code of Conduct related topics. |
@DevComplicace |
Role for DevCompliance team members. |
@DevQuest |
New role for new team created during the QA Team Restructure. Handles DevQuest related topics. |
@DuckStation-Tester |
Role for members who are testing DuckStation compatibility. |
@Entry-Manager |
Role for hash entry users. |
@Events-Team |
Role for RAEvents team members. |
@Gambler |
Role for RARoulette weekly winners. |
@QA-Maintainer |
Formally named @QA-Team , renamed as part of the QA Team Restructure. Helps maintain the several Quality Assurance discord teams. |
@RAWR |
Role for users interested in the RARoulette event. |
@Set-Repair |
Role and team resseructe the QA Team Restructure. Help to fix sets that are highly exploitable or vulnerable. |
Channel Additions
Channel | Purpose |
---|---|
#ardu-wasm-rollout |
Discussion and preparation channel for developers to get ready for the Arduboy and WASM-4 rollout. |
#auction-house |
Allows devs to “bid” on highly exploitable or vulnerable old sets to become the new author. |
#challenge-league-100 |
Challenge League Top 100 event discussion channel. |
#claims |
Discussion channel for Claims Manager. |
#compatibility-tester |
Discussion channel for the @Compatibility-Tester members. |
#dev-compliance-inbox |
Messages to the DevCompliance site user gets forwarded here. |
#dev-compliance-log |
Log channel for notable DevCompliance actions. |
#dev-compliance |
Discussion channel for the @Dev-Compliance members. |
#devquest-discussion |
Discussion channel for the @DevQuest members. |
#devquest-inbox |
Messages to the DevQuest site user gets forwarded here. |
#devs-help-me |
A help me channel dedicated to the developer questions. |
#devs-help-me |
Help me channel for devs as to not clog up the main channel too much. |
#duckstation |
Discussion channel for DuckStation compatibility. |
#events-forum |
Events team forum channel. |
#events-inbox |
Events team site inbox channel. |
#events-team |
Events team discussion channel. |
#hash-links-log |
Automated log for unlinked hashes |
#jr-dev help Channel |
Voice channel for additional Junior Developer help. |
#jr-dev-forum |
Forum channel for Junior Developer reviews and guides. |
#minecraft |
RA Minecraft discussion channel. |
#pcsx2-testing |
Discussion and testing channel for developers interested in PS2 achievements creation. |
#pcxs2-news |
News channel with automatic posts for PCSX2 updates. |
#ps2-help |
Help channel for any PS2 related issues. |
#ps2-launch |
Information channel for the PS2 console launch. |
#qualityquest-inbox |
Messages to the QualityQuest site user gets forwarded here. |
#qualityquest-inbox |
Quality Quest site inbox channel. |
#qualityquest |
Discussion and submission channel for QualityQuest. |
#qualityquest |
Quality Quest discussion channel. |
#rapatches |
RAPatches forum channel for patch request and help. |
#rapodcast |
Discussion channel for the new RAPodcast. |
#raroulette |
RARoulette event discussion channel. |
#set-claim-log |
Automated log for changes to developer set requests. |
#set-repair |
Discussion channel for the @Set-Repair members. |
#site-feedback |
Channel allowing users to provide quick site feedback, though GitHub should be used for any substantial discussions. |
RAGuide
The RAGuide Wiki allows users to create and share set guides with the rest of community. If you are interested in created guide head on over to the RAGuide Wiki and create a new page to start working on one. In the meantime, check out the guides that were featured this past year.
RABot
RABot is the official RetroAchievements Discord bot. It is used to get a wide variety of RetroAchievements related data and information using custom bot commands. Check out the updates that have been made to the bot this year.
- Add missing consoles to the
hotcheevs
command by @MrOwnership cal
command fix by @MrOwnershipcontact
command update for QA Restructure by @MrOwnershipcontact
command update to add RAEvents and reword DevQuest + QualityQuest sections by @televandalist- RABot upgrade form node v12 to v16. Add eslint to CI workflow by @luchaos
RAWeb
This past year was filled with constant updates to the site, as well as the long awaited RAWeb Version 2.0. Some of the features that were added this year had been requested by the community and staff for several years. With several of the features saving users hours and hours of time that was usually spent on manually actions to track data and information on the site. Some of the more notable features include:
- RAWeb v2.0
- Mature Content Filter
- Hash Labeling and Management
- Message Outbox
- Recent Masteries Page
- Split Site Awards into Game/Event/Site Awards
- Allow viewing recent forum posts
- Developer Set Claims System
- Separation of Softcore Points from Hardcore Points
- Counters for awards on profile page
- Allow editing achievement title, description, points and badges on site
- Change Achievement Distribution graph to bar chart
- New layout for dev box on game page
- Junior developers permission updates
- and dozens of backend and frontend changes.
Huge thanks to luchaos and
Jamiras for their insane amout of consistent support on RAWeb with maintaining the repo, addressing Pull Requests, deploying new updates, and providing overall maintenance on the site. And thanks to everyone who contributed to RAWeb over the past year:
- anegoda1995
- EmoonX
- Jamiras
- Krylan
- LiquifiedSnow
- luchaos
- MrOwnership
- ScottFromDerby
- televandalist
- Tsearo
- Version 1.79.0 - Released on 2/5/2022
- add lazy loading attribute to profile and game images outputted by JS by @Krylan in #893
- Prefix URLs with (missing) https protocol by @luchaos in #896
- prevent negative offset in lbinfo query by @Jamiras in #897
- use different escaping function for Tip() by @Jamiras in #895
- don’t lookup notes for values by @Jamiras in #894
- Sanitize tooltip output to prevent xss attacks by @Jamiras in #900
- delay new forum post notifications from unverified users by @Jamiras in #902
- make account deletion wording more verbose by @Jamiras in #903
- add mature content warning by @Jamiras in #904
- Prevent shortcode parser changing case … by @Jamiras in #899
- Version 1.80.0 - Released on 2/12/2022
- Don’t show mature warning for hubs by @Jamiras in #906
- Remove Google Analytics tracking by @luchaos in #907
- Rename “Similar Games” to “Related”/”Relations” by @luchaos in #908
- exclude banned users from search results by @Jamiras in #909
- Validate Dreamcast on site by @televandalist in #905
- Version 1.81.0 - Released on 3/20/2022
- allow labelling hashes by @Jamiras in #920
- add Supported Systems filter to Most Requested Sets page by @Jamiras in #916
- add ability to view sent messages if they haven’t been deleted by the recipient by @Jamiras in #912
- separate hubs from similar games; link hubs from summary by @Jamiras in #913
- change MD5 references to RetroAchievements Hash by @Jamiras in #915
- remove Locked Topic Information by @MrOwnership in #918
- ignore all non-scaling operands for scalable flags by @Jamiras in #922
- add admin comment block to user page by @Jamiras in #914
- allow admins to link hashes to unsupported consoles by @Jamiras in #919
- add Arduboy as Console ID 71 to release.php by @televandalist in #917
- fix edits not being logged for leaderboards with an unknown author by @Jamiras in #921
- fix other tickets not showing up for demoted achievements by @Jamiras in #923
- Version 1.82.0 - Released on 3/27/2022
- validate Amstrad CPC on site by @televandalist in #931
- add Comments Section to Hash Management Page. by @MrOwnership in #927
- add ConsoleID to getUsersCompletedGamesAndMax by @ScottFromDerby in #925
- also list unverified posts when they’re not the last post in a forum by @Jamiras in #926
- allow multiple comment sections on a single page by @Jamiras in #930
- use secondary query to calculate unique players in getGameMetadata by @Jamiras in #929
- fix adding new hashes for games with apostrophes in their filenames
- fix log message for tracking/untracking user
- Version 1.83.0 - Released on 3/29/2022
- Simplify article comments by @luchaos in #933
- Adopt versioned assets filenames by @luchaos in #934
- Use git native core.hooksPath config by @luchaos in #928
- Version 1.84.0 - Released on 4/13/2022
- Add recent masteries page by @Tsearo in #571
- Split Site Awards into Game/Event/Site Awards by @Jamiras in #937
- Separate subsets from similar games by @Jamiras in #940
- Add pagination to games list; replace dev filter with has achievements filter by @Jamiras in #942
- Allow merging aliased hubs by @Jamiras in #939
- More detailed achievement modification messages by @Tsearo in #947
- Show user game history on ticket page by @Jamiras in #945
- Hide controlpanel sidebar until user is registered by @Jamiras in #943
- Reset account to unverified when user changes their email address by @Jamiras in #944
- Escape apostrophes in hash descriptions by @Jamiras in #948
- PHP 8 compatibility by @luchaos in #935
- Use PHP 8 language features (using Rector) by @luchaos in #911
- Ignore achievements with no retro ratio when determining easiest achievements by @Jamiras in #941
- Lazy load images for completion list by @Jamiras in #946
- Fix inbox output sanitization by @luchaos in #936
- Version 1.84.1 - Released on 4/15/2022
- allow award groups to be ordered by @Jamiras in #950
- remove pagination for per-console games with achievements lists by @Jamiras in #951
- start with collapsible sections collapsed by @Jamiras in #949
- Version 1.85.0 - Released on 5/1/2022
- Additional ticket filters by @Tsearo in #958
- Add tooltip to game rating by @Jamiras in #960
- Add date picker to user history page by @Jamiras in #954
- Only use hardcore unlocks for calculating retro ratio by @Tsearo in #963
- Display error on failed password resets from reset url by @Tsearo in #965
- Authorize forum posts when giving Jr-Dev or higher permissions by @Tsearo in #966
- Add NumAchievements, NumLeaderboards, Points, and Hashes to API_GetGameList by @Jamiras in #964
- Fix shortcode parsed auto-link URLs including trailing sentence-punctuation characters by @luchaos in #952
- Return failure messages when provided with an invalid file by @Jamiras in #961
- Added configuration for docker setup that allow to use Xdebug in your IDE by @anegoda1995 in #849
- Only run code quality tools on changed files by @luchaos in #953
- Ensure variable type is specified for match clauses by @Jamiras in #962
- Version 1.86.0 - Released on 5/20/2022
- Add warnings for account deletion by @Jamiras in #980
- Add Request ticket state so ticket authors will be more cognizant when the developer needs more information by @Jamiras in #978
- Use paginator for forums by @Jamiras in #981
- Allow multiple Similar Games to be removed at once by @MrOwnership in #984
- Add PS2 console message to game info and game list pages by @luchaos in #985
- Fix total players displayed and used in RR calc from using Unofficial by @Tsearo in #976
- Fix pagination calculations for achievement unlocks by @Jamiras in #973
- Fix other tickets for an achievement not showing up by @Jamiras in #975
- Return null rank in public APIs for untracked users by @Jamiras in #974
- Enable pagination of API_GetTicketData by @Jamiras in #979
- Validate Arduboy and WASM-4 on site. by @televandalist in #977
- Add TicketFilters enum by @Jamiras in #970
- Add AchievementType enum by @luchaos in #986
- Version 1.87.0 - Released on 6/2/2022
- Allow viewing recent forum posts from a user by @Jamiras in #1004
- Add first/last links to paginator by @Jamiras in #996
- Use paginator for ticket list by @Jamiras in #997
- Allow tab delimiter in admin tools by @luchaos in #1001
- Add flag to return ticket details when calling API_GetTicketData with g parameter by @Jamiras in #998
- Add DateModified in API_GetGameList query by @Jamiras in #1005
- Add ForumTopicID in API_GetGameList query by @Jamiras in #1011
- Fix broken dev page when first achievement is 0 pointer by @Tsearo in #989
- Fix sanitized title/descriptions from falsely showing differences by @Tsearo in #990
- Fix floats from breaking stored hits in mem explained view by @Tsearo in #992
- Fix relations widget sizing for long title by @MrOwnership in #999
- Eliminate RA_User cookie by @Jamiras in #994
- Document remaining public APIs by @Jamiras in #991
- Remove “How do I play?” tutorial widget from game details page by @luchaos in #1000
- Several maintenance/cleanup and refactorings by @luchaos in #967, #995, #1002, #1003, and #1008
- Version 1.87.1 - Released on 6/6/2022
- Fix various errors and warnings by @luchaos in #1012
- fix leaderboard creation permission check by @Jamiras in #1013
- Update dependencies by @luchaos in #1014
- Shortcode parser fixes by @luchaos in #1015
- Authenticated user in form request only by @luchaos in #1017
- Add directory separator agnostic assertPathEquals() to tests by @luchaos in #1021
- Version 1.88.0 - Released on 6/9/2022
- Do not open links in new tabs by default by @luchaos in #1022
- move PermissionsToString into Permissions enum by @Jamiras in #1018
- Version 1.89.0 - Released on 6/28/2022
- Set claims by @MrOwnership in #1027
- Redesigned search bar by @Krylan in #1023
- Add colors to status widget by @Jamiras in #1030
- Add audit comments for game modifications by @Jamiras in #1019
- Include separate values for hardcore in API_GetUserRecentlyPlayedGames response by @Jamiras in #1038
- Improve merging of Hacks hubs into Publisher field by @Jamiras in #1029
- Fix client error when unlocking previously earned achievements by @Jamiras in #1031
- Fix mature content user preference not saving by @Jamiras in #1035
- Version 1.89.1 - Released on 7/27/2022
- Don’t show authorization message for non-admins by @Jamiras in #1041
- Validate Fairchild Channel F and Mega Duck on site. by @snowpin in #1066
- Version 1.90.0 - Released on 8/8/2022
- Separation of Softcore Points from Hardcore Points by @Tsearo in #1033
- Replace Friends terminology with Followed Users by @Jamiras in #1042
- Counters for awards on profile page by @EmoonX in #1070
- Allow editing achievement title, description, points and badges on site by @Tsearo in #1054
- Show message on profile page when user has disabled wall comments by @Jamiras in #1059
- Add status widget to achievement reorder page by @Jamiras in #1058
- Add link to manual unlock documentation on report issue page by @Jamiras in #1060
- Fix newlines not appearing in comments widget by @Jamiras in #1039
- Fix stackable site awards sometimes appearing as game completion awards by @MrOwnership in #1049
- Version 1.91.0 - Released on 8/19/2022
- Update max game progress to 100% by @Jamiras in #1079
- New Sets/Revisions widget by @Tsearo in #1085
- Add softcore leaderboard rankings by @Jamiras in #1083
- Followers list now sorted by name and has link to follow user back by @Jamiras in #1078
- Fix Compare to Others list not showing followers who weren’t mutually following by @Jamiras in #1077
- Fix points not showing for user in Followed Users link when user rank was greater than 10 by @Tsearo in #1076
- Fix progress reset message showing raw HTML by @luchaos in #1080
- Fix Recent Progress graph for softcore by @Tsearo in #1081
- Fix hub matching for values containing ampersands by @Jamiras in #1082
- Fix game award counters overflow by @EmoonX in #1084
- Fix Latest Masters table not showing actual mastery rank by @EmoonX in #1071
- Version 1.91.1 - Released on 8/19/2022
- prevent divide by zero if game only has 0 point achievements by @Jamiras in #1099
- Fix sorting when clicking more link on New Set/Revision widget by @Tsearo in #1101
- Version 1.91.2 - Released on 9/6/2022
- Change Achievement Distribution graph to bar chart by @Jamiras in #1113
- Fix white points calculation on daily/weekly leaderboard by @Tsearo in #1102
- Fix hardcore indicator on player history page by @Jamiras in #1107
- Fix first mutual follower showing follow link by @Jamiras in #1108
- Version 2.0.0 - Released on 9/16/2022
- V2: Introduce TALL Stack by @luchaos in #1103
- Added
- Add composer install line to readme
- Add ranking to footer nav
- Changed
- Refactor requests, deprecate request helper functions, use framework request() helper
- Update dependencies, require node v18, npm v8, run audits
- Refactor CSS to Vite/Tailwind & remove unused classes & split styles.css
- Change utf8mb4_0900_ai_ci to utf8mb4_general_ci for mariadb compatibility
- Refactor “Enum” classes to be closer to PHP 8.1’s Enum
- Refactor email update request & add global verification nag message
- Move logout from top area to my pages dropdown
- Remove HARDCORE ascii art
- Clean up game pages
- Clean up aotw component
- Clean up comments layout to match forum topic comments
- Fixed
- Fix layout issues
- Fix open graph metadata
- Fix shortcode game resolution for unknown games
- Fix forum topic update redirect & add anchor
- Fix Apache not redirecting all php scripts in public/ to the index.php entrypoint
- Fix incorrect image upload request paths
- Fixed V1
- Fix daily/weekly retro points calculation by @Tsearo in #1102
- fix hardcore indicator on player history page by @Jamiras in #1107
- fix first mutual follower showing follow link by @Jamiras in #1108
- Version 2.0.1 - Released on 9/30/2022
- Lazily load tooltip cards by @luchaos in #1142
- Cache currently active on front page by @luchaos in #1143
- Use standard colors for comments widget by @Jamiras in #1145
- Show decimal tooltip for hex values when viewing trigger by @Jamiras in #1140
- Fix resetting progress from achievement page by @Jamiras in #1117
- Fix resetting progress from game page by @Jamiras in #1120
- Fix points not being returned by API_GetUserRankAndScore by @Jamiras in #1118
- Fix news image header path by @luchaos in #1119
- Fix Mastered being displayed when 99.5+% of achievements earned, but not 100% by @Jamiras in #1121
- Fix server error loading profile when user has hardcore unlocks for a game but not softcore unlocks by @Jamiras in #1126
- Capture timing information for non-laravel queries by @Jamiras in #1127
- Fix exception processing truncated trigger by @Jamiras in #1131
- Return 404 for dev stats of deleted user by @Jamiras in #1132
- Prevent 500 response when attributed developer was hard deleted by @Jamiras in #1133
- Prevent exception visiting game compare page before playing any games by @Jamiras in #1134
- Fix navigation when search string contains apostrophe by @Jamiras in #1141
- Fix ‘Malformed UTF-8’ error when rich presence truncated mid UTF-8 character by @Jamiras in #1144
- Handle missing referers in wiki edit redirects by @luchaos in #1136
- Use cachable configuration values instead of environment variables by @luchaos in #1139
- Version 2.1.0 - Released on 10/8/2022
- New layout for dev box on game page by @luchaos in #1176
- Allow user to create new ticket for achievement if previous ticket has been closed or resolved by @Jamiras in #1170
- Disable button while submitting forum post to prevent multi-submission by @Jamiras in #1163
- Allow devs to make collab claims when they have no claim slots available. by @MrOwnership in #1158
- Update Time(Milliseconds) to Time(Centiseconds) in leaderboard editor by @Jamiras in #1162
- Add Reddit footer link by @luchaos in #1189
- Revert default game icon by @luchaos in #1167
- Jump to comment from recent forum comment links by @Jamiras in #1181
- Update update/unlink hash comments to match current format by @MrOwnership in #1164
- Remove console name from games list by @luchaos in #1156
- Render default icon for deleted user avatar by @luchaos in #1155
- Fix user avatar word wrap by @luchaos in #1154
- Fix exception viewing dev stats for new developer where first unlock was softcore by @Jamiras in #1157
- Match ticket avatar icon size with other avatars by @luchaos in #1172
- Fix scrollbar on manage claims page by @luchaos in #1175
- Fix achievement link on game compare page by @luchaos in #1179
- Fix html entities in page title by @luchaos in #1185
- Prevent divide by zero if user has reset softcore but not hardcore by @Jamiras in #1182
- Prevent exception accessing history with an invalid date by @Jamiras in #1153
- Use loadCard for active players by @Jamiras in #1166
- Cache ability to create tickets by @Jamiras in #1169
- Cache recently played games by @Jamiras in #1171
- Cache top achievers per game by @Jamiras in #1174
- Bump doctrine/dbal from 2.13.9 to 3.4.5 by @dependabot in #1180
- Version 2.2.0 - Released on 11/18/2022
- Junior developers are now allowed to update game information, rich presence, and achievement order for games where they have an active new set claim by @MrOwnership in #1211
- Add explain blocks for leaderboards by @Jamiras in #1216
- Add Type filter to search page by @Jamiras in #1195
- Eliminate ticket karma by @Jamiras in #1203
- Only show recent players from the last six months on game pages by @Jamiras in #1197
- Separate PC Engine CD from PC Engine by @televandalist in #1129
- Restore Set Exists marker on All User Set Requests page by @Jamiras in #1193
- Fix display issue when embedding game and achievement with same ID in same page by @Jamiras in #1198
- Fix notes not showing up for PS2 achievement definitions by @Jamiras in #1210
- Fix completion badge not being awarded if last unlock was hardcore by @Jamiras in #1196
- Fix rank calculation for lower is better leaderboard when rank is shared by @Jamiras in #1202
- Fix player activity not showing up when invalid by @Jamiras in #1204
- Fix hardcore border not showing on game compare page by @Jamiras in #1218
- Fix RSS feeds date, strip HTML tags, add guid by @Krylan in #1223
- Prevent creating account with invalid username by @Jamiras in #1206
- Prevent exception trying to create a ticket when not logged in by @Jamiras in #1190
- Prevent exception trying to return data for non-existent game by @Jamiras in #1191
- Prevent exception calling RecentlyPlayedGames without a user by @Jamiras in #1205
- Don’t try to send email to deleted user when closing ticket by @Jamiras in #1213
- Version 2.3.0 - Released on 12/1/2022
- show points needed for next request on user’s requested sets page by @Jamiras in #1232
- limit emulator selection to supported emulators for console when creating new tickets by @Jamiras in #1231
- more theme colors by @luchaos in #1242
- attempt to identify hash in ticket notes by @Jamiras in #1244
- disallow completing claim from unofficial by @Jamiras in #1230
- fix page calculation for search results by @Jamiras in #1236
- fix searching on symbols by @Jamiras in #1237
- fix games/achievements being returned by compare to another user feature by @Jamiras in #1243
- fix empty error message when trying to fetch many user tooltips by @Jamiras in #1233
- Version 2.4.0 - Released on 12/16/2022
- Adjust contributions for hardcore/softcore split by @Jamiras in #1228
- Adjust contribution tier thresholds by @Jamiras in #1257
- Split comment search type into subtypes by @Jamiras in #1254
- Add subpage for additional comments by @Jamiras in #1253
- Clear resolution fields when reopening ticket by @Jamiras in #1258
- Allow # in code notes by @Jamiras in #1259
- Only fetch tooltip if hovering by @Jamiras in #1255
- Make hash link redirect to hash page by @Jamiras in #1251
- Fix enforcement of minimum number of achievements for badge by @Jamiras in #1250
- Fix exception accessing games list for unknown console id by @Jamiras in #1246
- Fix exception trying to view non-existent ticket by @Jamiras in #1247
- Include calling function location in silenced sql failure by @Jamiras in #1248
- Version 2.4.1 - Released on 12/22/2022
- Fix wrapping of very long text in forum post content preview by @Krylan in #1265
- Fix display of value definition containing max_of operator (‘$’) by @Jamiras in #1263
- Fix identification of other tickets for same achievement by @Jamiras in #1267
- Fix leaderboard not displaying if only entries are for untracked users by @Jamiras in #1268
- Fix compare-to-user autocomplete by @Jamiras in #1270
- Improve title/description for Portuguese-speaking forum by @EmoonX in #1275
Development Tool Updates
Without the work of Jamiras we would still be stuck in the stone age of achievement development and toolkit features. There are no amount of words that express the appreciation and gratitude that we all have for all the time and effort he puts into this community. Check out the major updates to development tools and emulators that he has provided this year.
RAIntegration
- Version 1.0 - Released on 1/29/2022
- For players:
- Measured achievements report raw values (instead of percentage) by default
- Fix percentage calculation for very large measured targets
- Fix issue where flickering challenge indicator could disappear entirely when fast forwarding
- Fix crash when attempting to display multiple challenge indicators in the same frame in RAProject64
- Fix display of unlocked achievement count when user has unlocked Unofficial achievements
- Prevent activating achievements if runtime was initialized for a console other than the game’s console
- For developers:
- Leaderboard editor
- New sizes: Float, MBF32, 16-bit BE, 24-bit BE, and 32-bit BE
- Add logical warnings (i.e. comparing 8-bit address to 16-bit number) to asset editor
- Search functionality should be slightly faster and use less memory
- Add tooltip to search results that displays the initial and last value of each search result
- Option to specify whether Measured achievements should show raw value or percentage
- Add ability to link hash from Test Compatibiltiy mode
- New/Clone buttons prompt to disable hardcore instead of being disabled when in hardcore mode
- Freeze button text on bookmarks window changes to Unfreeze when only frozen bookmarks are selected
- Increase address column width in search results and bookmarks for systems with more than 16MB of RAM
- New built-in macros for Rich Presence:
@Number
,@ASCIIChar
,@UnicodeChar
,@Seconds
,@Minutes
,@Float[1-6]
- Fix disappearing search results in Text search mode
- Fix AddAddress resolution (tooltip/jump to address) not working after adding new conditions to achievement
- Fix Exclude Selected always using last page of results instead of selected page
- For players:
- Version 1.0.1 - Released on 2/11/2022
- Fix custom bookmark descriptions disappearing over multiple sessions
- Fix “lower is better” not being remembered for local leaderboards
- Fix indirect tooltips in alt groups when achievement is not active
- Fix issue where some frozen memory addresses could not be edited from the bookmark dialog
- Fix highlights not showing when switching groups while emulator is paused
- Fix prior always returning 0 for bit1-bit7 sizes
- Version 1.0.2 - Released on 3/6/2022
- add warning for conflicting conditions within achievements
- fix performance of Continuous Filter with millions of results remaining
- fix Track as % checkbox not appearing selected when switching to an active achievement using it
- fix wrong code note updated if selecting a new address while overwrite confirmation dialog is visible
- fix achievement immediately deactivating when manually activated with Processing Active disabled
- fix results label obscuring bookmark button for small code note windows
- fix tab characters in rich presence being sent to server as ‘t’
- fix processing of float values in rich presence with more than 9 digits after decimal
- fix truncation of large measured values displayed in asset editor window
- fix invalid regions not updating when switching games
- don’t report console mismatch when loading a game associated to the Events meta-console
- Version 1.0.3 - Released on 5/5/2022
- add rich presence to asset list
- remember previously selected game for Test Compatibility feature
- relax trigger validation when pasting
- show Inspecting Memory (instead of Developing Achievements) in rich presence if no local or core assets exist
- limit ‘does not trigger’ submissions to five achievements at a time
- fix issue uploading non-PNG achievement badges
- fix measured value from hitcount not resetting when paused
- export
_RA_GetPopupMenuItems
function as alternative for_RA_CreatePopupMenu
for non-WinAPI menuing systems - support for non-standard ports when using a custom host
- Version 1.0.4 - Released on 5/12/2022
- fix client ignoring server-modified rich presence script
- fix exception pressing New button with Rich Presence filter selected
- prevent saving achievement in invalid state when using Save All
- add
_RA_InstallMemoryBankBlockReader
export
- Version 1.1.0 - Released on 11/15/2022
- Support for indirect code notes (code notes derived from a note on a pointer) If the first line of a code note contains the keyword “pointer”, then any following line that starts with a plus (no indent) immediately followed by a number (hexadecimal [0x prefix] or decimal, no whitespace) is treated as an indirect code note. After the number, any number of whitespace characters and/or a single non-alphanumeric character separate the indirect note from the offset. Following lines that don’t start with a plus are also considered part of the indirect note. Some examples are shown here.
- Support for local code notes
- Allows making temporary notes while trying to narrow down addresses
- Fixes loss of note-in-progress if selected address is changed
- Note modifications are kept locally until published to the server
- Unpublished notes will appear in red in the code notes window
- Notes are deleted by reverting (if not published) or by setting to blank and publishing
- Support for offline development (if the game was previously loaded in online mode)
- Offline mode is only activated if the server cannot be contacted during login.
- It’s not meant to be something a developer can just activate whenever they want.
- Changes will be saved to local file (XXX-User.txt)
- Publishing is disabled
- Achievements unlocked in offline mode will not be sync’ed to the server, and will not be eligible for manual unlocks.
- Add Open All and Code Notes items to RetroAchievements menu
- Add MBF32 LE memory size
- Add BitCount search type
- Add XOR (^) AddSource/SubSource modifier
- Add ASCII as selectable size in bookmarks window
- Add warning when serialized size exceeds limit
- Add Export button to search results
- Automatically change asset filter to local if local assets exist and no published assets exist
- Changed points field on achievement editor to dropdown
- Allow Invert to be selected for non-value logic
- Allow rich presence monitor to be resized
- Fix app title being updated on login/logout when not using RA_UpdateAppTitle
- Fix search results being cleared when switching between disks of a multi-disk game
- Fix crash enabling highlights without a loaded asset
- Fix comparison against initial values for aligned searches
- Fix redundancy warning between trigger and non-trigger conditions
- Fix decoding of denormalized floats (values where exponent is 2^-127)
RATools
- Version 1.8.3 - Released on 1/4/2022
- add
true
andfalse
constants for script logic (continue to usealways_true()
andalways_false()
for trigger definitions) - add
word_be
,tbyte_be
, anddword_be
big-endian memory accessor functions - add
max_of
helper function forleaderboard
value clause - add
rich_presence_macro
function - support for floating point numbers
- support for writing leaderboards to local file (direct import to 0.80 DLL)
- support for generating code for leaderboards from New Script dialog
- add
format
parameter tomeasured
function to support raw vs. percent display - allow negative offsets when processing pointers
- allow
bcd()
to be called insideprev()
- allow
trigger(a || b)
to expand to alt groups - allow loading file without a game id
- lookup entries that match the fallback value are no longer included in the generated Rich Presence script
- improved underflow adjustment calculations
- fix empty array/dictionary showing up orange
- fix loss of hit target when final condition of clause is optimized out
- fix loss of ResetIf when used in Measured value
- fix cannot apply Trigger to ResetIf error when using
never
insiderepeated
intrigger_when
- fix highlighting issue when pasting lines that start with combining characters (
&&
,+
, …) - fix stack overflow processing very long chain of conditions
- fix maximum recursion error when processing very long AddSource chain inside
prev
- fix maximum recursion error when editing the same function over and over
- fix crash updating local achievements when system culture uses comma as decimal separator
- fix stats not showing up without an ApiKey
- add
- Version 1.8.4 - Released on 2/15/2022
- support for bitwise and (
&
) - add
lower_is_better
flag toleaderboard()
function - support for collapsing
AddSource
bit chain intoBitCount
- support joining multiple
MeasuredIfs
for when parameter ofmeasured()
function when dumping New Script - allow
||
inwhen
parameter ofmeasured()
function. - use core badge when merging local/generated achievement with badge “00000”
- improved matching for trigger diffs - most notably, when alt group indices change
- show serialization warnings when using Update Local dialog
- fix premature optimization of subclause causing complex condition to evaluate to
always_false()
- fix exception when line-wrapping some complex expressions when dumping script via New Script
- support for bitwise and (
- Version 1.8.5 - Released on 4/3/2022
- many improvements to generating scripts from existing achievements
- support for generating from local achievements
- support for built-in macros
- support for compound code note sizes i.e. “[32-bit float]”
- convert
PauseIf
with hitcounts/ResetNextIf
logic todisable_when()
- convert
AddHits
chain totally()
- fix exception if macro has no parameter
- fix exception when no tickets are found
- add
array_map()
function - add
tally_of()
function - add logic to convert “A<1||A>1” into “A!=1”
- support for multiple conditions in a
ResetNextIf
usingOrNext
- make error more user-friendly when an if expression cannot be evaluated at compile time
- fix multiple conditions in a
repeated()
inmeasured(when=)
getting split into separateMeasuredIf
s
- many improvements to generating scripts from existing achievements
- Version 1.9.0 - Released on 6/14/2022
- upgrade from .NET Framework 4.6 to .NET Core 6.0
- add forward/backward navigation via mouse4/mouse5 buttons
- use APIs for Analysis dialogs (fixes failures caused by scraping website when site changes)
- added Web API Key field to settings dialog
- add User Mastery analysis dialog (warning: fetches game stats for every game user has mastered)
- add Unlock Distance analysis dialog
- add Rich Presence to the Update Local dialog
- update Rich Presence size warning to 64KB
- fix issue dumping script with
measured(tally(), when=...)
clause - fix issue dumping script with
tally(1, ...)
clause - fix issue dumping script when local leaderboards are present
- fix issue dumping leaderboard value with AddAddress and non-integer multiplier
- fix issue generating rich presence when lookup is hardcoded for value=0
- fix issue pasting multiline text into a line with an error indicator
- fix error generating leaderboard value with
measured(..., when=repeated() && never())
- fix error using multiple
never
s in a singlerepeated
clause - fix whitespace not being required after
else
keyword
- Version 1.9.1 - Released on 6/22/2022
- show error when server returns non-JSON authentication error
- improve diff logic for rich presence lookups
- fix optimization of division by self in leaderboard value
- fix line endings causing rich presence to appear modified
- fix back navigation when an asset has changed
- Version 1.10.0 - Released on 11/14/2022
- new internal representation of logic
- small performance boost due to not having to reevaluate on each usage
- allows for more optimization opportunities
NOTE: this causes errors to be generated for several previously allowed syntaxes:
- implicit
always_true()
andalways_false()
are no longer supported in logic chains. logic such as:0=1 && never(byte(0x1234) == 3)
will now collapse tofalse
as0=1
can never be true. script authors must replace the0=1
with analways_false()
to preserve the logic in the output. always_true()
andalways_false()
are no longer supported for leaderboard values. usemeasured(repeated(0, always_true()))
and0
instead.- memory addresses can no longer be compared to
true
orfalse
. Compare to1
or0
instead. - integer division is no longer implicitly converted to floats for leaderboard values:
byte(0x1234) * 3 / 2
will no longer be automatically converted tobyte(0x1234) * 1.5
. usebyte(0x1234) * 3.0 / 2
for automatic conversion. - calling
repeated
ortally
with a count of 0 is no longer supported outside of ameasured
clause of a value expression. Doing so implies an unbounded hit requirement which cannot be reached and is equivalent toalways_false()
. Using these to generate an AndNext/OrNext chain was not intended. If you absolutely want to prevent the OrNext from being converted to alt groups use the__ornext(condition)
function. If you have a valid reason for forcing an AndNext chain let me know. measured(A && B)
will now generate an error instead of just setting the Measured flag on B. The actual logic it previously generated wasA && measured(B)
ormeasured(repeated(0, A && B))
depending on whether it was being used in a trigger expression or a value expression.once(A && once(B))
will now keep a separate hit count for B and for the entire clause by reordering the conditions or injecting analways_false()
condition to hold the total count.once(unless(A))
will now generate an error. useunless(once(A))
ordisable_when(A)
instead. Similarly,unless
cannot be used insiderepeated
ortally
clauses.repeated(10, trigger_when(A))
will now generate an error. usetrigger_when(repeated(10, A))
instead.repeated(10, measured(A))
will now generate an error. usemeasured(repeated(10, A))
instead.
- implicit
- support for local code notes
- add Progression analysis dialog (open from Game Stats dialog)
- add ability to autogenerate function names in New Script dialog
- fix “measured(bitcount(X) == 8)” being converted to “measured(byte(X) == 255)”
- fix “measured(X + 100 > 200)” being converted to “measured(X > 100)”
- fix “float(X) < 0” being converted to “always_false()”
- fix never in tally clause being replaced with AndNext
- fix Copy to Clipboard not working on Rich Presence and Leaderboard title/description
- fix duplicating of file extension for local badge images
- fix dumping Rich Presence with measured value in display string
- fix viewing Rich Presence diff where lookup was removed
- new internal representation of logic
- Version 1.10.1 - Released on 12/3/2022
- fix
any_of()
logic for boolean predicates - fix dumping ResetNextIf for OR’d logic
- fix intersecting optimization of OR’d logic
- fix
__ornext
hint sometimes being optimized
- fix
- Version 1.10.2 - Released on 12/6/2022
- fix intersection of float comparisons
Emulator Updates
RALibretro
- Version 1.3.9 - Released on 1/9/2022
- Support for Dreamcast via the flycast core (x64 only)
- Support for NAOMI Arcade via the flycast core (x64 only)
- Support for lightgun interface
- Additional support for keyboard interface
- Remove frame-smoothing code as some cores don’t generate as many frames as they claim they should
- Deprecate DuckStation in favor of SwanStation
- Version 1.3.10 - Released on 3/15/2022
- enable cap32 core for Amstrad CPC
- support for reading rzip compressed save states
- fix crash using core settings dialog before loading a game
- extract zip when core supports zip but requires fullpath
- change CD-ROM submenu to Floppy Disk for systems that support floppies
- Version 1.3.11 - Released on 5/8/2022
- Enable cores for Arduboy (arduous) and WASM-4 (wasm4)
- Add [Game Focus] indicator to title bar
- Pass up to 256 characters to DLL for estimated game title
- Fix multi-touch input polling (disable; not supported)
- Support for
#SAVEDISK:
m3u extension
- Version 1.4.0 - Released on 11/18/2022
- support for identifying CHD-formatted CDs
- ability to launch game using command line arguments
- cascade Select Core menu if it contains more than 20 systems
- attempt to report error from core when savestate loading fails
- separate PCEngine from PCEngine CD
- enable FreeChaF core for Fairchild Channel F
- enable SameDuck core for MegaDuck