24p on old Panasonic plasma TVs

This was written with the TH-50PX70 in mind, but probably works on anything in the PX70 series and may work on other models.

Unfortunately the inputs on this TV are pretty poor – refresh rates over HDMI are limited to 50hz and 60hz, interlaced and progressive. HD resolutions are 720p, 1080i and 1080p with nothing in-between. It also fails to HDMI handshake with many modern devices, resulting in a useless black screen.

It seems the key to making this TV useful is the VGA input – not only does it enable white balance and gamma controls, but it accepts a 1366×768 signal (the panel’s native resolution) at any refresh rate from 50hz to 85hz. This means that feeding the TV 768p@72hz is possible, pretty much eliminating 3:2 pulldown, and significantly reducing scaling artifacts.

The following linux modeline does the job perfectly:

    Modeline "1366x768_71.93" 104.63 1366 1448 1592 1816 768 769 772 801 -HSync +Vsync

After that just tweak the TV’s VGA controls using a test image, as it has no automatic clocking function.


Fix for Gigabyte motherboard boot loop on resume from sleep

From what I’ve read, this seems to affect a large percentage of Gigabyte motherboards since S3 sleep became a ‘thing’.

The issue is as follows: on a significantly overclocked Gigabyte motherboard (high end or low end), when resuming from S3 sleep the screen never wakes up and after about 15-20 seconds, the system repeatedly turns off and on again every few seconds. The only way to break this loop is to completely remove power from the PSU for several seconds.

The issue is connected with PCIe power, as evidenced by the various reported fixes of disabling onboard NIC power saving and reverting from Intel/AMD AHCI drivers to the Microsoft default ones.

The real fix is very simple: Use Balanced power mode in windows and check that PCI Express Link State Power Management is set to ‘Moderate Power Savings’ and not ‘Off’. The fact that the default setting of moderate does not have the issue explains why it is not more widely reported.

How to remove ‘SecureBoot isn’t configured correctly’ watermark on Windows 8.1

The ‘SecureBoot isn’t configured correctly’ watermark in question is this:

This guide will remove the watermark by replacing all text with invisible spaces, using a tried and tested method that has been used in earlier Windows versions to remove similar watermarks.

Don’t follow this guide unless you have exhausted all the other options, such as group policy, clearing keys and otherwise fidding with BIOS options. I’m one of the unlucky ones that has a BIOS with UEFI support but no SecureBoot options at all, so this was my only choice.


  1. Install Resource Hacker
  2. Install TakeOwnership
  3. Install Process Hacker
  4. Open C:\Windows\Branding\Basebrd\en-GB\basebrd.dll.mui with Resource Hacker (en-US if American)
  5. Go to String Table > 1 > 2057 and replace the contents of strings 12 and 13 with a space, e.g.:
    12,     " "
  6. Click ‘Compile Script’ then File>Save As and save with the same name but to a different folder (e.g. your desktop)
  7. Right click C:\Windows\Branding\Basebrd\en-GB\basebrd.dll.mui, and select Take Ownership, then delete it and copy the one from your desktop into its place
  8. Open C:\Windows\System32\en-GB\shell32.dll.mui with Resource Hacker (en-US if American)
  9. Go to String Table > 2070 > 2057 and do the same process as above with strings 33108, 33115 and 33117
  10. Click ‘Compile Script’ then File>Save As and save with the same name but to a different folder (e.g. your desktop)
  11. Open Process Hacker and click the ‘Find Handles or DLLs’ button in the main toolbar
  12. In the search box type ‘shell32.mui.dll’ and click ‘Find’
  13. Order the results by the ‘Type’ column
  14. Select all results of type ‘File’ by shift-clicking, ignoring the ones of  type ‘Mapped File’
  15. Right click and choose ‘close’, accepting any warnings
  16. Close Process Hacker
  17. Right click C:\Windows\System32\en-GB\shell32.dll.mui, and select Take Ownership, then delete it and copy the one from your desktop into its place
  18. Reboot

Fix for Samsung 750 and 950 series monitors 120Hz “Not Optimum Mode”

Use 120.8Hz custom refresh rate. Both Windows and the monitor’s OSD will show 121Hz. Actual 121.0Hz will cause the error without fail, it must be a tiny bit below. I guess there is something weird going on with the tolerances in the monitor – I’ve noticed things like mains current spikes contribute to the problem.

This may apply more to HDMI 1440×1080 or 1280×720 than to DisplayPort 1080p.

My exact settings for 1440x1080x120Hz over HDMI are as follows:

How to get bitstreamed S/PDIF digital audio out of a laptop without spending a fortune

It’s amazing the amount of people willing to spend insane amounts of money on asynchronous USB audio – either direct to DAC or an asynchronous USB to S/PDIF adapter. Though to be fair, I can say from experience that asynchronous USB is absolutely necessary over standardised USB audio, unless you get extremely lucky with your hardware and driver stack. But there is no point in throwing money at the problem (async USB is invariably much more expensive) – there is a much cheaper solution.

At this point it is assumed that your laptop or PC has an HDMI output with audio support, and that your DAC has a S/PDIF coaxial input (if you have bought a DAC which only supports USB, you’ve made a terrible mistake).

What you need is a chinese-made HDMI switch, labelled ‘HDMI 4 Ports Switcher With Audio Outputs‘ (in big letters across the top of the device itself). This is available on ebay and countless import sites. Inside you will find a EP94A1 chip, which not only switches 4 HDMI inputs to 1 output, but provides a raw audio stream in all the usual compressed formats (actually more than I have ever seen reported by a device), as well as up to 192KHz 24-bit PCM. Unlike some similar boxes with inferior chips, it overrides the audio capabilities reported by the HDMI video device attached to the output port. It is also capable of downconverting 5.1 channel audio to 2 channel for the digital outputs, but I think you would be much better off doing this on the software end.

Sadly the optical output is of poor quality, and can barely output 24-bit at any sample rate – from subjective testing I found the highest quality available was 16-bit 88.2KHz. For this reason you want to use the coaxial output, which unless I am mistaken, is a perfect bitstream from the HDMI audio signal, and is capable of full 24-bit 192KHz PCM. The stereo 3.5mm output is powered by a CSC4344C DAC, which is common in basic S/PDIF to analogue conversions, for example the FiiO D3. Sadly it is far from audiophile quality, so you will want to steer clear of it.

The only major flaw in the device is that it is extremely susceptible to electrical interference – I am forced to keep my smartphone a minimum of 1 metre away to stop the audio cutting out entirely, replaced by the typical GSM noise.

If you are a mad bastard like me and feel the need to overclock every HDMI chip you see in order to drive high resolutions or 120Hz monitors, you will be pleased (or possibly disappointed) to know that the EP94A1 can pass through any obscure signal (I’m using 1920×1080 72+85Hz and 1440×1080 120Hz), as long as the pixel clock remains under 200MHz. Once you cross the 200MHz threshold, the audio cuts out for 5 seconds every 30-60 seconds, but the video signal remains intact. I have not tested if this holds true once you go significantly past 200Mhz due to monitor limitations.

Basically it’s an excellent little device (especially considering the cost of only £28, a tiny fraction of what async USB to S/PDIF adapters cost), perfect for bypassing the awful USB system in the FiiO E17 amp and tapping the true potential of the E17’s DAC chip, which, if I remember the specifications correctly, is connected directly to the S/PDIF inputs.

DarkELEC Release 3

Just an interim release for now as I don’t have my proper dev environment (TV, Pi-compatible internet connection, etc.). Once I figure out a way of getting networking to my Pi, I’ll throw in the promised features such as USB audio support.

No idea at all if this works (I can’t do much more than play about in the menu with no networking), but it certainly seems a lot smoother and more responsive than r2.

There’s been no significant changes on my part, but likely a very significant amount from upstream (namely the extra codecs, 512mb support, etc.).


Download: http://shit.weeaboo.com/darkelec3.zip
Sauce: https://github.com/darkimmortal/DarkELEC
More details: http://darkimmortal.com/2012/05/darkelec-raspberry-pi-optimised-openelec-fork/

Asus Xonar sound card frameskip issue

Just a little tidbit of information regarding Xonar sound cards: The ‘GX’ mode, while I dread to think how deeply it hooks into DirectX (considering it crashes several old games), must be enabled for anything which involves certain clocks to not develop awful judder on the video side of things.

Basically if you use ReClock or play osu!, or anything of that sort (high fps/fast reaction games), enable GX mode. Without GX enabled, I’ve found there to be intermittent severe frame skip, which is only visible to the eye and not to any kind of software FPS or frame loss counter.

If you have a Xonar card and a high refresh rate monitor (it’s not very clear at 60hz), compare GX on and off with http://www.prad.de/en/monitore/testsoftware/pixperan.html.

If I remember correctly, with Aero enabled or Vsync on, the issue is not apparent.