Re: MQN
Posted: Tue Dec 23, 2014 11:42 pm
There is a simple way for everybody to create their own specific version for their device with HEX editor. It is possible even now if only one condition is met. Your device string has to be equal or shorter in character length to the hard coded string in a version you are trying to modify for your needs.
Below is how to do it on example of 9.00 AVX2 TF which I will modify so it is going to be usable on my Meitner MA-1.
Description to the pictures under the pictures ;)
In picture above we can see original unmodified 9.00 AVX2 TF. Solid blue highlights TF device string. The red rectangle in hexadecimal section starting with "01 19 0A" octets marks the beginning of code which we cannot touch as it is no longer part of device string. The green rectangle highlighting 00 octet is still part of space reserved for device string but it is in fact not used by the TF string. It is just an empty space which we can use if there is a need for it. This last 00 octet is last usable space for us to work with. The same space as highlighted by green rectangle is marked by green arrow on right hand side. It is represented with a dot on the right hand side.
In picture above I have already pasted in Meitner MA-1 string over TF string (in free Hex editor which I am using, called HxD the function is called "paste write" from context RMB menu - link for the App on the bottom of the post). Pasted in Meitner MA-1 string is visible in red font. The green rectangle highlights the rest of space assigned to device string in the code which is currently filled by what is still left from TF device string.
In picture above I have erased what was left from TF device string by typing 00 in all octets in hexadecimal part (important to do it in hexadecimal part so where the green rectangle is on the picture 3) so only Meitner MA-1 string is left without any leftovers of TF string.
Done. Save file and we have just created 9.00 AVX2 seb version.
Now the only problem is that TF version has the longest string of custom versions and most of new requests strings are longer then that so we would need a version with longer dummy string to be able to replace it with potentially any string out there (not to mention that TF version comes only in AVX2 flavour and normal versions are so far based only on mine and jlring strings which are very short and not usable for replacing with other requested devices which strings are simply longer).
Which brings me to something I have spoken about with Gordon on PM that it would be possible for Gordon to go back to producing only AVX2 and Normal instruction sets for each version he produces and then everybody could HEX edit their string into their Normal or AVX2 version depending on their needs. The only requirement for this to be possible and flexible enough to cover all types of strings would be to compile them with long enough dummy device string to cover for hopefully all device strings out there.
For example my sting for Meitner is about 90 characters. So if both normal and AVX2 versions of each new "universal" iteration would be compiled by Gordon with dummy sting of:
which is about twice the length of TF that would leave plenty of space for pasting in any string and zeroing what is not needed to the end of string space allowing for everybody to have their dev version.
Anyway something to think about.
LINK to free Hex editor I was using -> http://mh-nexus.de/en/downloads.php?product=HxD
How to get your device string if MQNDevinfo.exe does not work for you:
Below is how to do it on example of 9.00 AVX2 TF which I will modify so it is going to be usable on my Meitner MA-1.
Description to the pictures under the pictures ;)
In picture above we can see original unmodified 9.00 AVX2 TF. Solid blue highlights TF device string. The red rectangle in hexadecimal section starting with "01 19 0A" octets marks the beginning of code which we cannot touch as it is no longer part of device string. The green rectangle highlighting 00 octet is still part of space reserved for device string but it is in fact not used by the TF string. It is just an empty space which we can use if there is a need for it. This last 00 octet is last usable space for us to work with. The same space as highlighted by green rectangle is marked by green arrow on right hand side. It is represented with a dot on the right hand side.
In picture above I have already pasted in Meitner MA-1 string over TF string (in free Hex editor which I am using, called HxD the function is called "paste write" from context RMB menu - link for the App on the bottom of the post). Pasted in Meitner MA-1 string is visible in red font. The green rectangle highlights the rest of space assigned to device string in the code which is currently filled by what is still left from TF device string.
In picture above I have erased what was left from TF device string by typing 00 in all octets in hexadecimal part (important to do it in hexadecimal part so where the green rectangle is on the picture 3) so only Meitner MA-1 string is left without any leftovers of TF string.
Done. Save file and we have just created 9.00 AVX2 seb version.
Now the only problem is that TF version has the longest string of custom versions and most of new requests strings are longer then that so we would need a version with longer dummy string to be able to replace it with potentially any string out there (not to mention that TF version comes only in AVX2 flavour and normal versions are so far based only on mine and jlring strings which are very short and not usable for replacing with other requested devices which strings are simply longer).
Which brings me to something I have spoken about with Gordon on PM that it would be possible for Gordon to go back to producing only AVX2 and Normal instruction sets for each version he produces and then everybody could HEX edit their string into their Normal or AVX2 version depending on their needs. The only requirement for this to be possible and flexible enough to cover all types of strings would be to compile them with long enough dummy device string to cover for hopefully all device strings out there.
For example my sting for Meitner is about 90 characters. So if both normal and AVX2 versions of each new "universal" iteration would be compiled by Gordon with dummy sting of:
Code: Select all
\\?\tusbaudio_enum#vid_20b1&pid_0002&ks#0000#{6994ad04-93ef-11d0-a3cc-00a0c9223196}\pcm_out_02_009999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
Anyway something to think about.
LINK to free Hex editor I was using -> http://mh-nexus.de/en/downloads.php?product=HxD
How to get your device string if MQNDevinfo.exe does not work for you:
John Dot wrote:Sebna has found the method to find the right string. Finally!
Download Aplayer http://albumplayer.ru/english.html
go to the EXTRAS->KS and run "ks_x64_config.exe", set the right device and press OK. "APlayer.ini" will show in the folder and there it is THE MYSTICAL STRING :)
so mine is:
\\?\pci#ven_13f6&dev_8788&subsys_835d1043&rev_00#4&30d54f48&0&00f0#{6994ad04-93ef-11d0-a3cc-00a0c9223196}\aa_wave