RSC+ v20231225.000000 released!

Learn about the latest news here.
Post Reply
User avatar
Logg
Level 30
Posts: 35
Joined: Sun Jan 22, 2023 11:17 am
Location: Atlanta GA, USA
Contact:

RSC+ v20231225.000000 released!

Post by Logg »

RSC+ v20231225.000000
Merry Christmas to all!! This release brings a lot of bug fixes, and a couple nice tweaks.

rscplus.20231225.000000.released.png
rscplus.20231225.000000.released.png (8.85 KiB) Viewed 6410 times
The most important change:
  • Fixed renderbug!!!! This elusive bug turned out to be in the original RuneScape Classic client, likely going back to the beginning. If you have ever had RSC+ open for about 8 hours, you may have seen half the screen turn black, like this:

    renderbug.png
    renderbug.png (151.71 KiB) Viewed 6410 times

    There's also a YouTube video of renderbug here, explored with the 3D mouse addition to RSC+: https://www.youtube.com/watch?v=1xL4cFa7QmA

    This has been a very longstanding bug, which I first encountered in 2018, while RuneScape Classic was still online. I was pulling long sessions, trying to capture as much of the game as possible before it shut down. Renderbug happens inconsistently, but only whenever the game has been open for a long time. Once renderbug is triggered, it does not go away, and the only solution is to close the game and open it again. In the original client, it likely would have just crashed the entire applet, but in RSC+, we catch errors and allow the game to continue, displaying "renderbug".

    It has to do with the rendering engine of RuneScape Classic. There is a "texture cache" which caches computations to lighting and rotation of textured surfaces, so that colour values can be looked up in an array instead of being computed again each time. Without the texture cache, the game's FPS goes from a solid 50, down to about 11 fps. The texture cache is not of unlimited size, but it is very large, so Andrew Gower accidentally treated it as being of unlimited size. Once the index of the texture cache goes above the length of the array, renderbug occurs. The texture cache fills up even faster in RSC+, since the game is resizable and so more textures are shown on screen at once in its expanded window.

    Due to how complex the obfuscated rendering code of RuneScape Classic is, this bug has gone unfixed for over 5 years from when it was first encountered in RSC+. We had been unable to fix it, (due to how long it takes to reproduce & how inconsistent it is), so we named it instead, and dealt with occasionally having to restart the client. I am very glad to receive this Christmas Fix from conker, big kudos to him. Thanks also to frogdoubler, who helped by lending his expertise with the RSC rendering engine, having refactored it for his RSC-C client. And also thanks to Aurora, who pulls many long-sessions herself, and was able to help test the fix, having a reliable mining route that seemed to always trigger renderbug (but only after about 8 hours...!)

    You may attempt to understand the fix more by viewing the diff here: https://github.com/RSCPlus/rscplus/pull/195. Personally, I will be printing out the fix, framing it, and hanging it on my wall.
All changes:
Added by Ryan:
  • New ::wiki command, which allows you to search for any search term on the RSC wiki, as an alternative to the Wiki Lookup button.
Added by Conker:
  • Aforementioned epic Renderbug fix (with help from Frogdoubler & Aurora).
  • You can now toggle the display of login/logout messages caused by your friends. This is bound to Alt-L by default.
  • A button to open the World Map is now present on the login screen.
  • Adjusted the display of ::cmb command to match the order of skills in the skill list (Attack Defense Strength, instead of Attack Strength Defense)
  • Fix sound effect initialization when music is not enabled.
  • The signup form is now properly limited to 12 character long usernames.
  • The "destination arrow" from setting a destination on the world map now continues to display if menus are open (other than the inventory).

Tags:
Post Reply