In part 3 of the refactoring effort, I finally get to the physical renaming and moving of source files to their new locations, separated by logical module.
Tonight, we continue the refactoring we started last stream, moving SyncProtocol entirely in Debugger, and splitting out emulator core stuff in main.cpp into a new Emulator class. (Sorry for the lo...
After a 6 month hiatus, I'm back to streaming! Tonight's episode was mainly playing catch-up, talking about what I've been up to for the past half year, and finally some actual programming :) It's ...
We continue our quest to fix the Bedlam bug correctly, and this time we actually figure out _why_ the problem occurs... we just don't know how to fix it yet.
Tonight, we refactor PSG so that we can more easily add ImGui controls to manipulate the audio channels that will (hopefully) help us track down the remaining audio glitches.
On tonight's stream, we focus on fixing the issues with digitized speech that we started on last stream. We do this by changing the way we sample audio from a push model to more of a pull model, wi...
On tonight's stream, I implement the volume envelope generator of the sound chip! Definitely more challenging than the previous chips, but in the end, I finally seem to have got it working.
Tonight we continue working on sound, fixing square wave generator timing, modeling mixer and amplitude control, and starting to implement channel sampling. Next up, we'll try to get these samples ...
Tonight we continue working on implementing sound support in Vectrexy, focusing on implementing the square wave generators. Next time, we'll try to actually hear these square waves!
Tonight, we continue working implementing sound in Vectrexy, spending a good chunk of time reading documents and schematics, and starting to write some basic code to model the AY-3-8912 PSG.
On tonight's stream, we finally get started on audio! For tonight, that consisted of mainly integrating some of the SDL audio code I wrote in my NES emulator. Exciting stuff!
Tonight, we implement "shell execute" on Linux, allowing us to open the default browser and editor when opening a URL and text file respectively. With this done, we've pretty much wrapped up our Li...
(NOTE: the audio echo only lasts 15 minutes at the start of the stream. Sorry about that!) We continue our Linux porting quest on tonight's stream, implementing Ctrl+C handling as well as adding co...
Moar linux! Tonight, we clean up some more Open File dialog code, then tackle get sdl-net to build using vcpkg. Along the way, we even open two separate pull requests!
After going over the many UX changes I've been working on since last stream, we spend the rest of the stream improving the way the "open rom" dialog selects its initial directory.
On tonight's stream, we start working on improving the user experience of Vectrexy in preparation for "pre-release". We focus on hiding the ImGui debug window by default, as well as improving how t...
A more relaxed stream, tonight we tweaked the rendering code a little, looked into CI solutions, and capped the evening with a little libpng replacement :)
Tonight, after wrapping up our changes for resolution independent rendering, we take a look at rendering performance. Note: I had to cut the stream in the middle, so don't miss part 2!
On tonight's stream, we finally hone in on the missing pixels issue and implement a fix that works, getting us that much closer to resolution independent rendering!
On tonight's stream, we return to rendering to investigate why line drawing isn't working as expected at different resolutions. Unfortunately, the stream gets cut short due to a power outage!
On tonight's stream, we finally fix Polar Rescue, which means we can now play all the commercial games (minus light-pen and 3D imager) in Vectrexy! We also implement a super useful debugger feature...
On tonight's stream, we tackle a couple more roms that don't work in Vectrexy by implementing more interrupt stuff... only to discover that these roms are probably bad rips or just invalid! Still, ...
On tonight's stream, we revisit the analog joystick reading code and modify it so that it emulates more closely what happens at the hardware level. After some rom testing, we start tackling why "3-...
A slower stream tonight in which we take a look at performance profiles and attempt to optimize certain bits of the emulator. We don't get any huge performance boosts, but make some interesting cha...
Another night of desync detection - this time across all commercial roms that run well in my emulator. Definitely a chill stream, but we do end up finding and fixing a CPU bug!
Another fun stream where we clean up the network sync code and start fixing even more CPU bugs! In the end, we finally get Spinball to not over-zoom in :)