The software Helicon Filter 5 crashes at startup when it tries to query the registry entry `SystemBiosDate` under `HKEY_LOCAL_MACHINE\Hardware\Description\System`, which doesn't exist in the wine registry.
That part of the registry is volatile, so the workaround of just adding that key is short lived.
In this commit I just added a dummy date (01/01/70) for simplicity, not sure if that's ok? There's code in wineboot.c which sets the actual BIOS date into the `BIOSReleaseDate` key. That could potentially be used, but it has a different format: 01/01/1970 (four digits for the year instead of two)
I've found no official documentation of the `SystemBiosDate` key. The only place I've found is in an example on this page: https://learn.microsoft.com/en-us/windows-hardware/drivers/debuggercmds/-reg
<details><summary>Wine log from startup crash when querying SystemBiosDate</summary> <pre> 0024:Call advapi32.RegOpenKeyExA(80000002,00810cdc "HARDWARE\DESCRIPTION\System",00000000,00020019,00e6fb68) ret=00440607 0024:Call ntdll.RtlRunOnceExecuteOnce(7b69ec60,7b65bad0,00000000,00000000) ret=7b6106d9 0024:Ret ntdll.RtlRunOnceExecuteOnce() retval=00000000 ret=7b6106d9 0024:Call ntdll.wcscpy(00e6f9ac,7b69ec94 L"") ret=7b60ce6b 0024:Ret ntdll.wcscpy() retval=00e6f9ac ret=7b60ce6b 0024:Call ntdll.RtlInitAnsiString(00e6fadc,00810cdc "HARDWARE\DESCRIPTION\System") ret=7b62f0bc 0024:Ret ntdll.RtlInitAnsiString() retval=0000001c ret=7b62f0bc 0024:Call ntdll.RtlAnsiStringToUnicodeString(7ffc2bf8,00e6fadc,00000000) ret=7b62f0e1 0024:Ret ntdll.RtlAnsiStringToUnicodeString() retval=00000000 ret=7b62f0e1 0024:Call ntdll.NtOpenKeyEx(00e6fb68,00020019,00e6f9a8,00000000) ret=7b65e875 0024:Ret ntdll.NtOpenKeyEx() retval=00000000 ret=7b65e875 0024:Call ntdll.RtlNtStatusToDosError(00000000) ret=7b62f0f1 0024:Ret ntdll.RtlNtStatusToDosError() retval=00000000 ret=7b62f0f1 0024:Ret advapi32.RegOpenKeyExA() retval=00000000 ret=00440607 0024:Call advapi32.RegQueryValueExA(000000f8,00810cc4 "SystemBiosDate",00000000,00e6fb58,00000000,00e6fb74) ret=00440c43 0024:Call ntdll.RtlInitAnsiString(00e6f9b0,00810cc4 "SystemBiosDate") ret=7b6305f6 0024:Ret ntdll.RtlInitAnsiString() retval=0000000f ret=7b6305f6 0024:Call ntdll.RtlAnsiStringToUnicodeString(00e6f9b8,00e6f9b0,00000001) ret=7b630614 0024:Ret ntdll.RtlAnsiStringToUnicodeString() retval=00000000 ret=7b630614 0024:Call ntdll.NtQueryValueKey(000000f8,00e6f9b8,00000002,00e6f9c0,00000100,00e6f9a8) ret=7b630695 0024:Ret ntdll.NtQueryValueKey() retval=c0000034 ret=7b630695 0024:Call ntdll.RtlFreeUnicodeString(00e6f9b8) ret=7b6306c0 0024:Ret ntdll.RtlFreeUnicodeString() retval=00000001 ret=7b6306c0 0024:Call ntdll.RtlNtStatusToDosError(c0000034) ret=7b6306d2 0024:Ret ntdll.RtlNtStatusToDosError() retval=00000002 ret=7b6306d2 0024:Ret advapi32.RegQueryValueExA() retval=00000002 ret=00440c43 0024:Call advapi32.RegCloseKey(000000f8) ret=00440433 0024:Call ntdll.NtClose(000000f8) ret=7b628979 0024:Ret ntdll.NtClose() retval=00000000 ret=7b628979 0024:Call ntdll.RtlNtStatusToDosError(00000000) ret=7bcebd50 0024:Ret ntdll.RtlNtStatusToDosError() retval=00000000 ret=7bcebd50 0024:Ret advapi32.RegCloseKey() retval=00000000 ret=00440433 0024:Call user32.LoadStringA(00400000,0000fff0,00e6eb54,00001000) ret=0040879f 0024:Call ntdll.LdrFindResource_U(00400000,00e6ea4c,00000003,00e6ea38) ret=7b5fbb3b 0024:Ret ntdll.LdrFindResource_U() retval=00000000 ret=7b5fbb3b 0024:Call ntdll.LdrAccessResource(00400000,00b033e0,00e6eac0,00000000) ret=7b6148f6 0024:Ret ntdll.LdrAccessResource() retval=00000000 ret=7b6148f6 0024:Ret user32.LoadStringA() retval=00000021 ret=0040879f 0024:Call KERNEL32.RaiseException(0eedfade,00000001,00000007,00e6fb88) ret=00417362 0024:trace:seh:dispatch_exception code=eedfade (unknown) flags=1 addr=7B627448 0024:trace:seh:dispatch_exception info[0]=00417362 0024:trace:seh:dispatch_exception info[1]=02B80430 0024:trace:seh:dispatch_exception info[2]=0041625C 0024:trace:seh:dispatch_exception info[3]=00E6FBB8 0024:trace:seh:dispatch_exception info[4]=00000000 0024:trace:seh:dispatch_exception info[5]=00E6FDF8 0024:trace:seh:dispatch_exception info[6]=00E6FBA4 0024:trace:seh:dispatch_exception eip=7b627448 esp=00e6fae0 ebp=00e6fb38 eflags=00000246 0024:trace:seh:dispatch_exception eax=00e6fae0 ebx=00000018 ecx=00e6faf4 edx=00e6fb88 0024:trace:seh:dispatch_exception esi=00e6fdf8 edi=00e6fb50 cs=0023 ds=002b es=002b fs=0063 gs=006b ss=002b 0024:trace:seh:call_seh_handlers calling handler at 00810CAC code=eedfade flags=1 0024:trace:seh:call_seh_handlers handler at 00810CAC returned 1 0024:trace:seh:call_seh_handlers calling handler at 00874F3A code=eedfade flags=1 0024:trace:seh:call_seh_handlers handler at 00874F3A returned 1 0024:trace:seh:call_seh_handlers calling handler at 0096B5C7 code=eedfade flags=1 0024:trace:seh:call_seh_handlers handler at 0096B5C7 returned 1 0024:trace:seh:call_seh_handlers calling handler at 004059FC code=eedfade flags=1 0024:Call KERNEL32.UnhandledExceptionFilter(00e6ef18) ret=00405a20 0024:Call ntdll.NtQueryInformationProcess(ffffffff,0000000c,00e6ee84,00000004,00000000) ret=7b602304 0024:Ret ntdll.NtQueryInformationProcess() retval=00000000 ret=7b602304 0024:Call ntdll.NtCreateEvent(00e6eeac,001f0003,00e6eeb0,00000000,00000000) ret=7b642f85 0024:Ret ntdll.NtCreateEvent() retval=00000000 ret=7b642f85 wine: Unhandled exception 0x0eedfade in thread 24 at address 7B627448 (thread 0024), starting debugger... </pre> </details>