Disclaimer: Before you all hate me and think there's an update for the plugins up that you can auto-update to with ChaosLauncher, there isn't. I have only just finished doing all of this, and I'm about to be away from home for a week. Therefore, I think its in our best interest that I wait until I'm home again so I can fix any unforeseen bugs that crop up with the new stuff. So you'll have to wait, but only a week.
Alright, you all probably thought I was just going to let these plugins die, and well, I can't blame you. I'd like to say I've been doing a lot thats been preventing me from updating them with new features and fixing bugs and such, but to be honest, I just haven't really felt like doing it (after school ended, I just got really, really lazy).
However, about 3 days ago, I got a very strong urge to do some more programming for SC, and so I cracked out Delphi and opened the RWA project. This blog post will detail all the things I've fixed, updated, and changed:
- Replay Data Storage
The replay data storage format has been completely overhauled. I've (hopefully) made it a lot easier for other developers to store data in replays, and also made it a lot easier for my plugin's data to co-exist with other's.
What this means to you: Not much, really. My plugin will read the old format as well as the new one, so you should see no real changes other than perhaps improved load times for the newer format. [ And for developers who'd like to see or comment on the format, see here. ]
- Sound Library
Brand new sound input/output handling. Before, I was using waveIn/waveOut to record and play sound, but I got quite fed up with it, as it was over-complicated, annoying, and not very responsive. I've now replaced that with the BASS library, which was not only easier to use, but is also a better choice by leaps and bounds.
What this means to you: Sound will be more responsive and the plugin will be less of a processor hog.
- Device Choice
I've added support for device choice when recording. You can now select which device you'd like to record from in the RWARecorder config, and it will save the setting for future launches. So if you'd like to record with something other than your default recording device for whatever reason, it can now be done.
What this means to you: Doing some weird recording setups will now be a whole lot easier.
- Text Drawing
Text drawing on the Starcraft window is a whole lot less resource intensive. In fact, I'm having trouble even registering any extra CPU usage while its going on.
What this means to you: Hopefully no more of those strange issues where it makes your screen flash like crazy. Also, improved battery life on laptops. Better performance when using W-Mode. More resources for your background apps. Really, this fix is one I am most happy with, and I was quite amazed by how big the effect of a few changes in code could be.
- Audio Syncing
Syncing is now about as perfect as it will ever get. As I said before, the BASS library is a lot more responsive than waveOut. Because of this, its a helluva lot better at syncing. I've been able to lower the threshold for auto-sync from 50 frames (about 2 seconds) to 8 frames (about .3 seconds) and still go through an entire game without auto-syncing once.
What this means to you: No more of that annoying auto-sync happening every 3 minutes. Also, because the library is a lot more responsive, syncing is immediate. There will no longer be a half-second wait for the audio to update to the newly synced position. Since that was one of my biggest annoyances with the plugin, I'm quite pleased.
Alright, those are the main things. The good news here is that I'm sufficiently happy with the basic functionality now, and I can continue on to more complex functionality, such as my next plan: speed syncing. I'll leave you with that to think about





