
Windows 11 PE Audiophile Creation Guide
#101
Posted 08 January 2022 - 07:03 AM
Win10XPE recognized the Combo384 usb driver.
I ran Win10XPE flatboot, then copied the file.Cat file in the Windows /sytsem32/carroot/File... folder of Windows10 (Normal) to the correct location X:/ Windows/Sytsem32/carroot /File... Then restart my Dac.
It's greatting to listen to music through Win10XPE, it's very soft and airy. Nice to know everyone.
#102
Posted 08 January 2022 - 07:19 AM
On Windows 10 (normal), I use Foo_upnp to control it very well.
How to enable Upnp on Win10XPE? Thank you for your support.
#103
Posted 08 January 2022 - 08:25 AM
Hi , Xp18, I am very glad that you have solved your problems and you can enjoy the sound of Win10XPE Audio.
#104
Posted 08 January 2022 - 01:44 PM
Glad you got your DAC driver working.
What happens when you try and use the foo_upnp plugin in Win10XPE? Is there an error message of any kind, or does your remote device simply not connect to control playback etc.? Does it show up as loaded in Foobar’s plugins section in settings?
#105
Posted 09 January 2022 - 02:39 AM
FYI - Chris updated Win10XPE to support build 22000.318 of Windows 11
https://raw.githubus...22-01-07.7z.001
https://raw.githubus...22-01-07.7z.002
https://raw.githubus...22-01-07.7z.003
Since foobar2000 is sounding so much better now while newer files of Windows 11 should be superior to older ones, just wondering if updating those *.dll files of foobar2000 were making any differences at all?
I just checked this thread below and they're still releasing 32-bit version of foobar2000 in order to maintain support for Windows XP
https://hydrogenaud....?topic=115706.0
That means we'll also need to extract those *.dll files from 32-bit version of Visual C++ 2022 Redistributable, though the problem is https://aka.ms/vs/17..._redist.x86.exe only giving an older version from October 2021 instead of the latest one from December 2021
https://docs.microso...7-2019-and-2022
Permalink for latest supported x86 version
Now we've got quite a few choices, there's someone called abbodi1406 and he's extremely knowledgeable about Windows / all things Microsoft. One of the most trusted members on My Digital Life forums for sure, and he's been creating this AIO package as follows
https://github.com/a...redist/releases
We could download the latest *.zip file and then use 7-Zip to extract VisualCppRedist_AIO_x86_x64.exe afterwards, finally we'll find these files inside that 2022\x86\System folder
concrt140.dllmsvcp140.dllmsvcp140_1.dllmsvcp140_2.dllmsvcp140_codecvt_ids.dllvccorlib140.dllvcruntime140.dll
Older files inside the folder of foobar2000 could be replaced by the latest ones accordingly, and that's supposed to be the easy way to get things done.
Though some of us might not really know who abbodi1406 is and that's fine, we'll find the direct link to download latest version of Visual C++ 2022 Redistributable here instead
https://softreview.u...load/10-1-0-196
And here's what we need for unpacking that VC_Redist.x86.exe file
https://wixtoolset.o...w/alltools.html
Converts a Windows Installer database into a set of WiX source files. This tool is very useful for getting all your authoring into a WiX source file when you have an existing Windows Installer database.
Only 3 files inside wiz311-binaries.zip are required
https://github.com/w...11-binaries.zip
dark.exe
winterop.dll
wix.dll
Then manually create another file called dark.exe.config (save it next to dark.exe) in order to suppress that prompt for installing .NET Framework 3.5
<configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" /> <supportedRuntime version="v2.0.50727" /> </startup> <runtime> <loadFromRemoteSources enabled="true"/> </runtime> </configuration>
Either follow these instructions
https://newbedev.com...ct-msi-from-exe
https://pleasantsolu...on-instructions
Or use UniExtract instead, that dark.exe.config file should be copied to the UniExtract\bin\dark folder accordingly
https://github.com/B...iExtractRC3.zip
Finally use 7-Zip to extract those *.dll files inside AttachedContainer\packages\vcRuntimeMinimum_x86\cab1.cab and we're done.
More *.dll files could be found inside that runtime sub-folder of foobar2000 and the latest ones for Windows 11 could be extracted from this ISO image, only 4 files are required
https://software-dow..._WindowsSDK.iso
Installers\9126f6ff98d955951fe9323f4444c119.cab
Installers\948a611cd2aca64b1e5113ffb7b95d5f.cabInstallers\fef2cfedd6135e0ed85290b83f3682c3.cabInstallers\Universal CRT Redistributable-x86_en-us.msi
Either use UniExtract mentioned above to extract everything inside Universal CRT Redistributable-x86_en-us.msi or we could also give lessmsi a try
https://lessmsi.activescott.com
Finally all *.dll files could be found inside that Windows Kits\10\Redist\10.0.22000.0\ucrt\DLLs\x86 folder.
#106
Posted 10 January 2022 - 04:34 AM
Thought I would return with a post tailored to Win11PE that is essentially an addendum to my last two about Win10PE, given that the optimizations are largely the same. I’ve also attempted to be a little tidier/more clear in my instructions for disabling services and implementing post-boot optimizations, but I’m not so sure I succeeded! Ha.
Win11PE absolutely sounds better than Win10PE to me - samotc was right on with his remarks about Win10PE sounding “fuzzier.” In fact, while I enjoyed the immediacy, transparency, and detail retrieval Win10PE brought to the table more than any other OS I’ve tried, I also found myself spending time attempting to “fix” this fuzziness with tweaks such as different combinations of MajiorityClean, process termination scenarios, and even some ElFidelity RAM filters I picked up on eBay. With Win11PE, I was so satisfied with the sound, that I am not, at the moment, even using MajiorityClean, and only have been utilizing RewriteData in terms of oryaaaa’s utilities -- the “stock” sound, once optimized, is that good. It is insanely clear and transparent, with big dynamics and detail. I’m also, like samotc, using Microsoft’s “BasicDisplay”/”BasicRender” driver(s) for display for their low footprint, and I swear there is a noticeable uptick in image quality with Win11PE vs. Win10PE, so obviously there are some significant “under-the-hood” optimizations in Win11 happening here that may account for the SQ boost.
Anyway, before I get into optimizations, a word about what my Audio PC contains, hardware wise:
-
I7-6700k passively cooled via Noctua NH-P1
-
H170M-PLUS motherboard TCXO-modded by Paul Pang
-
JCAT NET Femto
-
JCAT Femto USB v2
-
8GB Paul Pang-modded DDR4 RAM
-
PS/2 keyboard and mouse
-
No fans
-
Single PC configuration only -- I am not using Fidelizer, AudiophileOptimizer, or JPLAY.
-
I require display access, and cannot run my system headless, although I am using the basic Microsoft display driver for lower footprint, like samotc ("BasicDisplay"/"BasicRender").
The above hardware is pertinent because any of those components could, in theory, effect what drivers/services need to be enabled or included. For instance, because I use the JCAT NET Femto card for my ethernet/NIC solution, I must have “e1dexpress” included in my Win10XPE project and enabled in registry, as that is the native MS driver for that card. I also need “DeviceInstall” and “SystemEventsBroker” to be enabled in order for that driver to be installed and started at boot, although I can then kill both of these services after boot. I say all this because your mileage may vary, as they say, in what drivers/services you need for your particular hardware configuration, and what you can discard. You 100% need to test these service settings in flatboot before finalizing your ISO to ensure your hardware does not require something I do not list.
Speaking of flatboot, because I am using USB boot into RAMdisk and now have SATA controllers disabled in my UEFI BIOS with no drives connected, removing the USB stick I’m using to load Win11PE into RAM after boot, the below only applies to USB boot into RAMdisk. For VHD flatboot you will need to re-enable “storahci” and “vdrvroot”.
Lastly, Any registry change is easier to enact, in my experience, with the program “Registry Workshop” then it is with the default RegEdit, especially because of its advanced search function, allowing you to change multiple values at once, etc.
Alright, here we go:
-
Below is the list of services I have kept at their default DWORD “Start” setting in Win11PE in HKLM\SYSTEM\CurrentControlSet\Services in flatboot. All other services are set to Start DWORD 0x04 for “Disabled”. This list is what I have found is needed for my needed hardware to all install at boot, and for network and file playback to be successful. If you do not need network and are employing file-based playback only, such as samotc, I have attempted to indicate, with an asterisk (*) what services I believe you could additionally disable. Please note that I have NOT tested Win11PE without network, so there may be more (or less!) services you can disable in that scenario, so I am only giving an educated guess, ultimately. i8042prt is only needed for a PS/2 mouse or keyboard and can otherwise be disabled, although I am unsure if there is a USB equivalent (something "HID"-related, possibly?). Lastly, AudioEndpointBuilder and AudioSrv are only needed if you are using Windows mixer, exclusive mode in a program like TIDAL, and/or WASAPI. If you are using an ASIO solution or driver for file-based playback only, they can also be disabled:
ACPI acpiex AFD* AudioEndpointBuilder Audiosrv BasicDisplay BasicRender CNG CryptSvc DcomLaunch DeviceInstall Dhcp* Disk DXGKrnl e1rexpress* FBWF FltMgr i8042prt Kbdclass KSecDD ksthunk LanmanWorkstation* lmhosts* LSM mouclass mountmgr Msfs msisadrv NDIS* NetBT* NetSetupSvc* Npfs nsi* nsiproxy* partmgr pci pdc ProfSvc Ramdisk RpcEptMapper RpcSs swenum SystemEventsBroker* Tcpip* UEFI umbus usbaudio2 usbccgp USBHUB3 USBSTOR USBXHCI UserManager volmgr volume Wdf01000 WimFsf Wof
-
You need to then set the “Type” DWORD value for the following two services from the default “0x20” (shared process) to “0x10” (own process): SystemEventsBroker and LSM. This removes both of them from the svchost.exe entry they share with other services, and allows for them to be killed post-boot later, otherwise they can cause a BSOD when terminated. SystemEventsBroker can also be disabled in registry before boot, but only if it does not interfere with a piece of hardware’s installation - the service “DeviceInstall”, listed above, requires SystemEventsBroker to be running to start, and is the service that installs my JCAT Net FEMTO card at boot. If you do not have a similar piece of hardware that needs DeviceInstall to be running for installation, you can also disable SystemEventsBroker and DeviceInstall prior to boot.
-
You will need to change ALL available “ErrorControl” DWORD values for ALL services from their default value to 0x00. This will prevent any issues later with terminating additional services post-boot. For the same reason, you will need to change ALL FailureActions values for ALL services from their default to the following hex values, which you can copy and paste into the field in registry:
00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 14 00 00 00 00 00 00 00 C0 D4 01 00 00 00 00 00 E0 93 04 00 00 00 00 00 00 00 00 00
-
Lastly, the following list of services I found will still start themselves post-boot despite being clearly listed as disabled in registry. As a result, you will need to rename or delete them from windows\system32\drivers in flatboot to keep Win11PE from loading them. Another method would be to delete their entries from the registry altogether in HKLM\SYSTEM\CurrentControlSet\Services, although I have not tested that method:
applessd.sys bttflt.sys cdrom.sys fileinfo.sys refs.sys refsv1.sys sdbus.sys sdport.sys sdstor.sys uaspstor.sys usbehci.sys Usbhub.sys
-
Once the above steps are completed, you are ready to finalize your ISO and load Win11PE into RAMDisk via USB boot.
-
After loading into RAMdisk, remove your USB media, and open Device Manager with the following commands in command line:
set devmgr_show_nonpresent_devices=1 demvgmt.msc
- Once Device Manager is loaded, go to the View tab at the top and select “Devices by Connection” as well as “Show Hidden Devices.” The list that Device Manager populates is highly variable depending on what hardware Windows detects -- the below therefore may or may not be applicable to your hardware.
- Right click and uninstall the following:
-
All “ACPI” items (“ACPI Fan”, “ACPI Fixed Feature Button”, etc.) except “ACPI Processor Aggregator” (disabled) and “ACPI x64-based PC”.
-
“Intel ® USB 3.0 eXtensible Host Controller - 1.0 (Microsoft)” or any other motherboard USB devices. I only had this one available because all other USB ports are disabled in my UEFI BIOS, so this entry represents the USB port on my motherboard from which I loaded Win11PE into RAMdisk.
-
“PCI Standard Host CPU Bridge”
-
“Standard Power Management Controller”
-
Any “Volume” entries under “Volume Manager”.
-
You can then disable all that I have listed in the below two screenshots, assuming they are available in Device Manager or what you have listed corresponds to a similar device. Disabled devices have a downward-facing arrow on the icon next to their description:
-
Next, if you are using network, you will need to set your ethernet controller to a static IP address in order to disable a variety of services, such as DHCP and nsi. To do so, the easiest way in Win11PE is via the “netsh” command line utility. Type the following in command line:
netsh interface ipv4 show config
-
Take note of current IP address, subnet mask, and gateway listed, as well as the name listed for your ethernet interface/NIC. Generally, you will want to set your static IP to whatever IP has been leased to you via DHCP - so, in other words, the one that you are currently connected with. You can also, if you are using a wired router, oftentimes set the router's DHCP server function to always lease your PC the same static IP, so you would not have to run the above command every time.
-
Open up Notepad, and paste the following:
netsh interface ip set address "(interface name)" static (ip address) (subnet mask) (gateway) netsh interface ip add dns "(interface name)" (gateway) netsh interface ipv4 set interface "(interface name)" metric=1 netsh interface teredo set state disabled netsh interface ipv6 6to4 set state state=disabled undoonstop=disabled netsh interface ipv6 isatap set state state=disabled
-
Change “(interface name)” to the name listed for your interface, as well as (ip address) (subnet mask) and (gateway) to their respective values. Save the file as “netshcmds.bat” or similar, and run it in command line. The above will also optimize your connection a bit by setting a metric setting to what Marcin recommends for JCAT Net Femto, as well as disabling IPv6 and some other optimizations. If you have not already, you may also want to change settings in the “Advanced” tab of your NIC/ethernet controller -- Receive Side Scaling etc. -- to what sounds best to you or what you have had recommended to you -- e.g., Marcin provides a list of optimizations for the NET Femto card for such settings upon purchase.
-
Next, we will disable some services that we previously were unable to now that we are post-boot. Open up notepad and paste the following:
net stop CryptSvc /yes net stop dhcp /yes net stop nsi /yes net stop UserManager /yes net stop lmhosts /yes net stop ProfSvc /yes net stop systemeventsbroker /yes sc stop wdf01000 sc stop deviceinstall sc stop dxgkrnl sc stop kprocesshacker3 sc stop netbt sc stop acpiex
-
Save the file as something like “services.cmd” and run it in command line. Command line will then hang at the end when attempting to stop “acpiex.” Close command line, and run the file two more times, which is required to kill “acpiex” entirely.
-
Next, go into x:\windows\system32 and rename the following two files: “dllhost.exe” and “rundll32.exe” -- I tend to just rename them “dllhost.exeo” and “rundll32.exeo”. This will keep them from running again after killing them in Process Hacker/similar.
-
Lastly, if you are using Process Hacker, go into the folder containing its exe and rename or delete “kprocesshacker.sys”. Before doing this make any changes you'd like to make to CPU priorities and affinities, as well as I/O priorities/similar settings. In Process Hacker, at least, this included .sys file/service allows for you to make such changes to many processes, especially processes with normally off-limits security/permissions, such as csrss.exe, smss.exe, services.exe, etc.
-
Next, download and/or open Process Hacker or a similar program. Perform the following:
-
Suspend “winlogon.exe” -- DO NOT TERMINATE IT, suspend it only!
-
Kill/terminate any remaining running instances of “rundll32.exe” or “dllhost.exe”.
-
Kill/terminate “Fixscreen.exe”.
-
Find the svchost.exe instance for LSM, and kill/terminate it.
-
Kill/terminate the svchost.exe instance for “CryptSvc” if it has restarted itself after being killed above, which it oftentimes does before lsass.exe is terminated.
-
Kill/terminate the smallest (by MB) “fontdrvhost.exe” -- DO NOT kill/terminate the larger instance that is underneath “winlogon.exe” or you will lose text in most programs, making it nearly impossible to do anything further. You could do so in a headless install in theory, but only if you are able to successfully control playback via some method -- I would only do so, at the very least, if you already have a file playback program opened, and you should not then close it again until reboot.
-
Kill/terminate "lsass.exe" - some programs may complain after you do this. For instance, I cannot successfully connect to TIDAL with the TIDAL app unless lsass.exe is running, but Opera GX, my web browser, works fine.
-
Kill “Pecmd.exe”, then the two smaller “WinXShell.exe” instances, and finally the last “WinXShell.exe”. You will now lose shell. You MUST keep open either Process Hacker or a similar program -- command line or Notepad.exe would work too, for instance -- that is able to perform a “run” command. If you close all windows, you would be left with no choice but to reboot.
-
After performing all of the above, open Process Hacker or similar and access its Services list/tab. Sort by “Status” and check to see how many services are running. You should have only the following 41 services listed as running.
Tcpip Ramdisk condrv e1rexpress WimFsf pdc AudioEndpointBuilder Ntfs NDIS partmgr CNG nsiproxy DcomLaunch pci FBWF RpcSs RpcEptMapper USBHUB3 UEFI KSecDD swenum USBXHCI usbaudio2 AFD kbdclass mountmgr volmgr ACPI ksthunk BasicDisplay usbccgp Audiosrv Msfs i8042prt Wof Npfs BasicRender msisadrv FltMgr Ucx01000 mouclass
If you find more that can be successfully disabled/eliminated than the above, please let me know!
-
Lastly, the number of processes loaded in Process Hacker/similar should be 14 when not accounting for ProcessHacker.exe/similar itself, or any additional/optional programs such as TimerResolution.exe or MajiorityClean.exe. If, like samotc, you do not need Windows mixer/WASAPI (so, no AudioSrv or AudioEndpointBuilder) and are using ASIO, you would be left with 12 processes only.
I think that’s it. Thank you to samotc and seeteeyou for helping to get this project up and running and continuing to support its implementation. The above may seem like a lot of work, but once you get used to it it becomes fairly easy to implement, and the results are VERY good, as mentioned.
Happy listening!
- mos777 likes this
#107
Posted 10 January 2022 - 06:24 AM
To turn off or restart we must do it with the reset button or the PC off.
FYI - the author of Win10XPE posted this a long time ago
http://reboot.pro/in...e=4#entry133458
With the 2 process suspended, wpeutil.exe shutdown, shutdownPE or psshutdown.exe does not work, as for the patch.
The command-line PEShutdown seems the right solution.
Those files called reboot.cmd / shutdown.cmd (inside that nu2shell folder) in addition to PEShutdown.exe (inside another peloader folder) could still be found here
http://magnetic.beep...ebuilder313.zip
https://download.xs4...ebuilder313.zip
plugin\zz5\nu2shell
plugin\zz5\peloader
Archived links
https://web.archive....ebuilder313.zip
https://web.archive....ebuilder313.zip
Source
https://www.neowin.n...pe-builder-313/
In Win10-11XPE everything changed, and the more naked you are, the more those changes are accentuated.
Now I can say without any doubt that F2K is on Win 10-11 XPE, well above both HQP (3x and 4x versions) and JRMC 26 (the last one I have registered) and WTFPlay 0.75.
There's another audiophile in China who also experienced similar changes
https://www.google.c...E site:erji.net
根据感人程度,SAW理论上可能会更自然和贴近原声。 看来SAW确实有一套。当然,还没有在WINPE下比较过,因为PE下FOOBAR会改善不少。
#108
Posted 10 January 2022 - 07:08 AM
#109
Posted 10 January 2022 - 07:14 AM
Hi, seeteeyou,
"With the 2 process suspended, wpeutil.exe shutdown, shutdownPE or psshutdown.exe does not work, as for the patch.
The command-line PEShutdown seems the right solution.."
When we get to the point that only Foobar 2000 (or Infinity Blade) remain active, it is impossible to access the command line, outside of Foobar there is only a black screen, I don't see how to do it. Not even with the Ctrl + Alt + Del combination you can launch taskmgr.exe
Thanks for all your contributions and suggestions, they have helped me a lot to fine-tune Win11 (and 10) XPE.
#110
Posted 10 January 2022 - 07:59 AM
When we get to the point that only Foobar 2000 (or Infinity Blade) remain active, it is impossible to access the command line, outside of Foobar there is only a black screen, I don't see how to do it.
Hi samotc,
There's always this "neat trick" once we've killed everything similar to explorer.exe or WinXShell.exe etc.
https://blog.xuite.n...1/blog/65598971
Then we could simply change All supported media types to All files as shown below
Finally we should be able to right-click any *.cmd scripts or *.exe files etc. in order to launch what we need
#111
Posted 10 January 2022 - 09:16 AM
For browsers, a funny workaround is navigate to the system32 folder in the browser url bar, and then “download” cmd.exe, which will open (albeit in a duplicate “downloaded” form in the downloads folder, but it works). Can also work with “save as” options on various sites in various implementations. JS Paint comes to mind.
#112
Posted 10 January 2022 - 10:26 AM
FYI - it shouldn't hurt the SQ (too much) if we're keeping this opened for the sole purpose of file exploration
http://www.movsd.com...load/gun30f.zip
Archived link
https://web.archive....load/gun30f.zip
Source
https://www.movsd.com/thegun.htm
It cracked me up to read stuff like this, someone could "only" launch about 1,200 instances of notepad.exe at the same time while managing to reach roughly 2,600 instances with THEGUN.EXE
https://q.hatena.ne....659850#a1245641
BTW, here's an even smaller one if we're interested in making our own executables with Python
https://github.com/p...est-Text-Editor
Using the included make-script (which uses fasm for assembly and linking), the executable file size is 3072 bytes.
I modified that quite a bit
Finally it's down to only 1536 bytes
#113
Posted 10 January 2022 - 04:39 PM
I used Bootice to switch to flatboot VHD but when I restart my PC, I don't see "Boot from VHD" on screen menu.
Following the instructions of @samotc, I created the Win10XPE image on VHD from the boot.wim iso file.
Then I use Bootice to edit the bcd file of the VHD and the current system.
Am I wrong in any part? Could you have any instructions for this? Many thanks
#114
Posted 10 January 2022 - 06:30 PM
No "setup.exe" file appears in the VHD, how did the XPE do it?
#115
Posted 10 January 2022 - 08:14 PM
Does a boot menu show up at all or just boot straight into Win10? Why does the second boot menu entry on your third screenshot read “Win10XPE”?
Also, it may be easier to generate screenshots if you press the "Print Screen" key on your keyboard, then paste into something like MS Paint or a similar program, saving the file -- it is difficult otherwise to see your settings.
#116
Posted 11 January 2022 - 04:07 AM
No "setup.exe" file appears in the VHD, how did the XPE do it?
I use DISM++ to apply Image from folder contain boot.wim.
Attached Files
#117
Posted 11 January 2022 - 04:15 AM
Does a boot menu show up at all or just boot straight into Win10? Why does the second boot menu entry on your third screenshot read “Win10XPE”?
Also, it may be easier to generate screenshots if you press the "Print Screen" key on your keyboard, then paste into something like MS Paint or a similar program, saving the file -- it is difficult otherwise to see your settings.
Boot menu show up: 1: Win10 (Normal); 2: Win10XPE (Ramdisk iso file)
I think it's wrong on Apply Image boot.wim for VHD.
#118
Posted 11 January 2022 - 04:27 AM
#119
Posted 11 January 2022 - 04:55 AM
You do not seem to have “Compact” selected in DISM++ before applying image. If you do so, does that eliminate setup.exe from the VHD root folder?
Now, I checked Compact before applying image. Then "setup.exe" is still in the VHD. Is this correct?
Attached Files
#120
Posted 11 January 2022 - 06:21 AM
You do need to have "Compact" checked when applying the image, yes, but you should also not have "setup.exe" included in the ISO.
I will need to defer to samotc here, I think, but it is odd to me that DISM++ is also identifying your mounted VHD as being "Windows Setup" -- usually, when it identifies WinPE mounted to a VHD, it will identify it as such -- so, "WindowsPE (version number)" as opposed to "Windows Setup (version number)".
Taking another look at the Win10XPE settings in "Build Core", it seems to me that you probably checked the box in the below screenshot that reads "Windows Installer Files (setup.exe)" -- you do not need to have that checked (ignore the arrows in this screenshot, they were put there by a user on tenforums):
I would go back to Win10XPE and rebuild your project. In the above, for instance, I only have "Display Drivers" checked, everything else I keep unchecked, with WinXShell instead of Explorer.exe, among a few other changes. You can also look at samotc's screenshots in his guide in the OP again -- just stick to those settings only. When you are done, go to the Create ISO section, click "Creat boot.wim and ISO" and then attempt the steps again with applying the image to VHD, adding it to the boot store in Bootice, etc.
- Xp18 likes this
2 user(s) are reading this topic
2 members, 0 guests, 0 anonymous users
-
svet, enuser2k