I released a new build last week with some functionality added. I've rewritten and documented the save file format so it's now consistent across versions. I also added the ability to just generate the command line parameters for HackTV and not run it. And, of course, most current HackTV options are present. You'll find it here: Releases · steeviebops/hacktv-gui
I've been experimenting with a couple of features in the background over the last couple of days but then noticed last night that Windows Defender started detecting my new code as a trojan. So I'm backtracking a bit to see what might be going wrong. It has to be a false positive of some sort because this was code that was just compiled!
One of the features I was looking to implement was in response to something that happens on my machine, and also something that Captain Jack noticed when running HackTV on Windows, where the video output can get very choppy at times. On my machine, it's most apparent when using MAC because of the high sample rate. I narrowed it down to Windows being too aggressive with CPU power management. So I found a way to temporarily disable the CPU C-states while HackTV is running and then re-enable them when the application is closed. This seems to work quite well... except for the above mentioned AV warnings!
Another new release today. I changed the compilation options and this appears to have resolved the virus detection issue. I initially rolled back to version 2.7 and added the new features one-by-one, but it didn't seem to be any one in particular that triggered the detection. Eventually I think I'll need to redo this project in a more modern language but that could take some time.
I've added an option to check for updates in the Help menu. This is completely optional, it never runs automatically and it's not forced on you in any way. It just downloads part of the source from Github and checks the version number in it.
I've also added the above mentioned C-state setting in the settings menu.
Also, I've added an experimental feature in the settings menu as was requested by @BSBSquarial which allows you to have five separate executables for the BSB channels, each one with the MAC channel ID changed. So if, for example. you specify D-MAC FM output on the Galaxy IF, it will run hacktv-galaxy.exe instead and if that file is correctly compiled, the receiver will show the Galaxy channel name.
Well, I've been busy in the background for the last while.
I left my job on 25th September and started a new one on 5th October. During that downtime, I decided to get started on rewriting my GUI in Java, mainly for the cross-platform capability. I wasn't sure if I could do it but less than a month later, I have a mostly working build and feature parity with the current VB6-based version. However I don't feel ready to release it yet, it's a bit rough round the edges. I've redesigned it with a tabbed interface to make it look a bit less daunting, and also redirected the console output from hacktv into the application. It works pretty much perfectly on Ubuntu and Fedora but I'm having issues on Windows with the console redirection. For some reason, the console text only appears after hacktv exits. I also tried a simple "Hello World" written in C and it does the same thing. But, Windows-native stuff like ping.exe redirects fine. So I'm a bit lost! I had the same issue when I tried to do this with VB.NET earlier in the year too.
Anyway, here's a screenshot of my progress so far, this is running in Ubuntu. JRE or OpenJDK 11 or later is required.
All going well, I plan to release this over the weekend. I'll make a new Github repo for this rewrite. I'm still having the problem with the console pane on Windows and it has been the bane of my existence over the last couple of weeks! I'm considering just disabling it when running on Windows and revert to the current behaviour of launching hacktv in its own window. But I'll keep it there for other systems.
I've attached two screenshots to show the new version running on both Mac and Windows. I've only done visual testing on a Mac so I don't know if the console pane works, but I suspect it will. I think it looks great on Mac, not far off a native application.