Page 1 of 482
#1 Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware by deSSy2724 19.10.2018 19:33

Can someone answer me some questions because I cant find clear answers to some of my questions (different statements from the same or different sources/sites/forums) and for some others things/questions, im not 100% sure:

  1. Is it posssible to install Windows XP SP3 32bit and WIndows 10 64bit on the same SSD with separate partitions or do I need two separate SSDs?
  2. Does XP 32bit support only MBR..... would it work if one partition of the same drive is partitioned as MBR (for XP) and the second partition of the same drive partitioned as GPT (for Win 10)? And is there any issues with SSD and MBR?
  3. Can we install Windows XP SP3 32bit from USB flash drive from modern motherboards and/or from Bluray drive/readers (I mean CD/DVD -/+ R burned discs on Bluray drives)?
  4. If 2.2 TB HDD is the limit for the 32 bit OS, can we split a 4/6/8 TB HDD/SDD to multiple 2TB partitions or is that still not possible/usable with 32bit OS-es?
  5. Is it right that Intel Ivy Bridge CPUs and AMD Vishera aka AMD FX Series CPUs (CPU, Chipsets, Motherboard etc.) are the latest hardware which officially support Windows XP 32bit? If true... then whats the latest unofficial supported hardware (CPU series) for Windows XP SP3 32bit and are there any disadvantages compared to "official supported" CPUs/Chipsets?
  6. Now, regarding SATA drivers and "slipstreaming" it to WIndows XP SP3 32bit installation disc:
    Do I need to look ONLY for specific chipset (independently of a specific motherboard manufacturer or motherboard model etc.) or in another words, do all the motherboards which share the same chipset actually support the same SATA drives or not and can we add/slipstream multiple SATA drivers on the same Windows XP 32bit installation disc?

Here is the thing and why so many questions..... I want to build a SINGLE gaming PC for all my older and newer games with both Win XP 32bit and Win 10 64bit (dual boot) but the problem is, if I build a PC out of parts from 2011/12 (Sandy Bridge, Ivy Bridge...) or so it would be harder (maybe even more expensive) to find parts and maybe the CPU from 2011 would not be that good for games from 2017-19 which means, I should buy parts which would be as newest and strongest/advanced as possible for new/upcomming games but at the same time to keep the legacy support for my older games (games designed for 98/2000/XP) and we all know that Win 7/8/10 and even 64bit OSes in general have some or in some cases many compatibility issues/obstacles with older games. I mean, there are many osbstacles with AHCI/IDE and SATA drivers, 32bit/64bit, MBR/GPT.... so, im not quite sure what to do.

It would be the best to build a PC based on the Skylake, Kaby Lake, Coffe Lake etc. but is it actually possible to make it happen without any issues on Windows XP SP3 32bit?
https://i.imgur.com/N507jFP.png
Would scenario 1 be possible?

EDIT1 by Fernando: Reformatted to save space
EDIT2 by Fernando: Thread title customized

#2 RE: Windows XP SP3 32bit and modern PC parts by Lost_N_BIOS 20.10.2018 06:55

avatar

@Fernando would be best to answer many of these, I'm sure you'll see him pop in when he has a chance

I can tell you #2 - MBR and SSD is fine, I use this all the time for many years.
#3 - XP from USB, I am not sure about, probably not easily unless you can find ready image/ISO, but yes it can be installed from CD/DVD burned discs, if blueray burn same way as DVD drive them I'm sure your good to go with that.
#4 - Yes, you can create multiple 2.2TB or less Primary partitions with MBR, SP2 may need to be installed before they are all visible, I am not sure on that one. Third party partition tools may be required to setup the additional partitions, also am not certain on that either (guess I should quit partially answering )

Here's some info that may help answer some of that for you too
http://www.questions4steveb.co.uk/html/S...with-Windows-XP

I think your scenario two would be easier to use and setup, but you'd have to figure out how to edit the boot menu of Win10 to allow multi-disk boot choice at startup, or use some other third party bootloader.

#3 RE: Windows XP SP3 32bit and modern PC parts by Fernando 20.10.2018 13:41

avatar

@deSSy2724:
Welcome to the Win-RAID Forum!

Zitat von deSSy2724 im Beitrag #1
1. Is it posssible to install Windows XP SP3 32bit and WIndows 10 64bit on the same SSD with separate partitions or do I need two separate SSDs?
You can install Windows XP and Windows 10 onto the same HDD/SSD, if you install them both in LEGACY mode by using the MBR partition scheme.
Zitat von deSSy2724 im Beitrag #1
2. Does XP 32bit support only MBR?
Yes!
Zitat von deSSy2724 im Beitrag #1
3. Can we install Windows XP SP3 32bit from USB flash drive from modern motherboards and/or from Bluray drive/readers (I mean CD/DVD -/+ R burned discs on Bluray drives)?
Due to the missing/not compatible USB drivers it is not a good idea to install Windows XP onto a modern PC by booting off an USB Flash Drive. Booting off an Optical Drive is the much better option.

Your question #4 has already been answered by Lost_N_BIOS, an answer to your question #5 requires XP installation experiences with all available chipset/CPU generations, which I don't have.
Zitat von deSSy2724 im Beitrag #1
6. Now, regarding SATA drivers and "slipstreaming" it to WIndows XP SP3 32bit installation disc:
Do I need to look ONLY for specific chipset (independently of a specific motherboard manufacturer or motherboard model etc.) or in another words, do all the motherboards which share the same chipset actually support the same SATA drives or not and can we add/slipstream multiple SATA drivers on the same Windows XP 32bit installation disc?
Not the chipset, but just the HardwareIDs of the on-board SATA AHCI or RAID Controller is important. When you want to slipstream a specific AHCI/RAID driver into a Windows XP Image (don't integrate more than 1 textmode driver!), you should choose an XP compatible textmode driver, which definitively supports your specific on-board SATA AHCI/RAID Controller. If the related AHCI/RAID driver supports several different SATA Controllers, you should make sure, that just the matching SATA AHCI/RAID Controller has been highlighted during the textmode driver integration procedure.
Zitat von deSSy2724 im Beitrag #1
It would be the best to build a PC based on the Skylake, Kaby Lake, Coffe Lake etc. but is it actually possible to make it happen without any issues on Windows XP SP3 32bit?
Regarding the XP installation onto a modern Intel chipset PC running in AHCI or RAID mode I recommend to read the start post of >this< thread.

Regards
Dieter (alias Fernando)

#4 Windows XP SP3 32bit and modern PC parts by Mov AX, 0xDEAD 20.10.2018 20:43

avatar

Windows XP/2003 32-Bit on Modern Intel Hardware



Windows XP/2003 support only ACPI 1.0b syntax, last generation bioses uses ACPI 2.0+
To support ACPI 2.0 syntax need replace acpi.sys and apply additional patches to avoid known BSODs :

- 0xA5 (0x03, ..., C0140001, ...) missing ACPI 2.0 syntax, 99% solved, two solutions:
1) acpi.sys (v.5048, sha1:a09c0d9f6b5cb63192e2cebada56db38d3870b29) from Vista Beta/Longhorn v.5048
Pro:
- Has most of ACPI 2.0 syntax opcodes
- All integers are 64-bit regarding ACPI 2.0 specification
Cons:
- beta, compiled for next generation of windows
- failed implementation of some internal data types, _ValidateArgTypes generate BSOD 0xA5(0x03, xxx, C0140008, yyy)

Patches:
- Add pointer to _atDataObj struct for QWord Opcode
(_OpcodeTable start at .data:00039848, _atDataObj struct at .data:000397A8,
missing pointer at .data:00039880, dont forget add additional relocs)

2) acpi.sys from Windows XP SP3 (v.5512->v.6666) with integrated acpi 2.0 syntax support
Pro:
- based on original v.5512, match binary/offsets
Cons:
- All integers are still 32-bit, any operations on 64-bit fields/variables will drop high part of QuadWord

- 0xA5 (0x11, 0x08, ..., ...) unknow error in _AMLILoadDDB, probably fail after parsing DSDT/SSDT table, solved

Patch (by diderius6):
- Ignore status of _AMLILoadDDB in _ACPIInitializeDDB
(v5512 jl short .text:00036214 => nop, nop)

- 0xA5(0x03, ..., C0140008, ...) DSDT code have operation with unexpected type of arguments, partially solved
This BSOD probably means some argument has datatype, allowed only in ACPI 2.0
v5512 & v5048 support only argument datatypes allowed in ACPI 1.0b specification

Patch:
- _ValidateArgTypes must always return "OK", even on realy wrong types
(mov edi, 0xC0140008=>mov edi, 0x00000000 at head of _ValidateArgTypes)

- 0xA5 (0x10006, ..., ..., ...), missing _DIS method for "PNP0C0F"s (PCI Interrupt Link Devices) in DSDT/SSDT table

Patch (by daniel_k):
- Skip looking for PNP0C0F in _DisableLinkNodesAsyncWorker,
(v5512 call strstr, ..., jz .text:0001BBBD => jmp .text:0001BBBD )




- 0xA5 (0x02, ..., ..., ...) error in ACPIRangeValidatePciResources, ACPI vs E820 conflict, solved
BSOD is generated by this DSDT code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 

DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x00000000, // Granularity
0x00000000, // Range Minimum
0xDFFFFFFF, // Range Maximum
0x00000000, // Translation Offset
0xE0000000, // Length
,, _Y0E, AddressRangeMemory, TypeStatic)
...
 
CreateDWordField (BUF0, \_SB.PCI0._Y0E._MIN, M1MN) // _MIN: Minimum Base Address
CreateDWordField (BUF0, \_SB.PCI0._Y0E._MAX, M1MX) // _MAX: Maximum Base Address
CreateDWordField (BUF0, \_SB.PCI0._Y0E._LEN, M1LN) // _LEN: Length
M1LN = M32L /* External reference */
M1MN = M32B /* External reference */
M1MX = ((M1MN + M1LN) - One)
 


Sometimes M1LN, M1MN, M1MX cannot be calculated properly and this code claim most of memory
(E0000000 = 3.7Gb) as motherboard resource, this brings to conflict with E820 memory ranges list

Patch:
- memory check in ACPIRangeValidatePciResources must always return "OK"
(v5512 jz short .text:0001E0BB => jmp short .text:0001E0BB)




Device IOTR(PNP0C02) claim 255 I/O adresses in range 0xFF00-0xFFFE, for unknow reason this range
conflict with Video Card I/O range. This problem is generated by Kabylake+ bioses in DSDT code, solved, two solutions:

1) Manual patching DSDT table, remove this lines inside method _CRS of IOTR device,
so _crs will return empty Local0:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
          If ((ITS0 == One))
{
ConcatenateResTemplate (Local0, BUF0, Local1)
Local0 = Local1
}
 
If ((ITS1 == One))
{
ConcatenateResTemplate (Local0, BUF1, Local1)
Local0 = Local1
}
 
If ((ITS2 == One))
{
ConcatenateResTemplate (Local0, BUF2, Local1)
Local0 = Local1
}
 
If ((ITS3 == One))
{
ConcatenateResTemplate (Local0, BUF3, Local1)
Local0 = Local1
}
 



2) Patch acpi.sys with injecting special code to override IOTR template buffer:
In _Buffer opcode handler replace:

1
2
3
 

mov eax, [ebx+14h]
mov ecx, [ebp+arg_0]
 


to

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 

call Check_IOTR_Buffer
...
Check_IOTR_Buffer:
cmp eax, 0Ah ; eax - size of buffer
jnz short Skip
mov eax, [ebx+30h]
mov eax, [eax+10h] ; eax - buffer
cmp dword ptr [eax], 00000147h ; need matching all 10 bytes
jnz short Skip
cmp dword ptr [eax+4], 0FF010000h
jnz short Skip
cmp word ptr [eax+8], 0079h
jnz short Skip
mov byte ptr [eax+7], 0 ; MAIN ACTION, set i/o range to 0 instead 255
 
Skip:
mov eax, [ebx+14h]
mov ecx, [ebp+arg_0]
ret
 


IOTR template defined as:

1
2
3
4
5
6
7
8
9
 
         Name (BUF0, ResourceTemplate ()
{
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x01, // Alignment
0xFF, // Length
_Y21)
})
 


in bytecode: 11 0D 0A 47 01 00 00 00 00 01 FF 79 00




Some part of acpi hardware is disabled, so CPU should not use nonexistent ACPI C2/C3 power savings, solved, two solutions (intelppm.sys):
1) C2/C3 States => C1 State :
- in _InitializeAcpi2IoSpaceCstates replace offsets AcpiC2Idle and AcpiC3ArbdisIdle to offset AcpiC1Idle

2) C2/C3 States => C7+ States :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
push    ebx
mov ebx, ecx
push esi
push 0
call _KeQueryPerformanceCounter
mov [ebx], eax
mov [ebx+4], edx
 
mov eax, offset DummyMon
xor ecx, ecx
xor edx, edx
monitor
mov ecx, 1
mov eax, 60h
mwait
 
push 0
call _KeQueryPerformanceCounter
mov [ebx+8], eax
mov [ebx+0Ch], edx
xor eax, eax
pop esi
pop ebx
retn
 


DummyMon - any unused 4 byes in .data segment



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
push    ecx
push 0
call _KeQueryPerformanceCounter
mov ecx, [esp+4+var_4]
mov [ecx], eax
mov [ecx+4], edx
 
mov eax, offset DummyMon
xor ecx, ecx
xor edx, edx
monitor
mov ecx, 1
mov eax, 33h
mwait
 
push 0
call _KeQueryPerformanceCounter
pop ecx
mov [ecx+8], eax
mov [ecx+0Ch], edx
xor eax, eax
retn
 





Windows XP SP2+ uses disabled acpi timer, solved

Skylake+ bioses by default disable ACPI hardware timer (register "ACPI Timer Control (ACPI_TMR_CTL)"
in southbridge, see PDF), but WinXP SP2+ still uses disabled acpi timer for getting incremental
time counter (acpi spec declare this counter as part of specification). WinXP detect existing this timer
by checking special bit USE_PLATFORM_CLOCK in FACP ACPI table, modern bioses still set USE_PLATFORM_CLOCK=1
in acpi (mistake by programmers ? or maybe inform Win7+ about existing HPET timer (not acpi timer!)

Patch (by diderius6) "HAL_acpitimer_fix":
- in HaliAcpiTimerInit force to ignore USE_PLATFORM_CLOCK and receive it always =0
(v.5512 jns short PAGE:8002934B => jmp short PAGE:8002934B)

Compatibility fix ("HAL TSC frequency divider")
Some programms do wrong calculation with high values of PerformanceCounter/PerformanceFrequency
(HAL_acpitimer_fix set values to cpu freq), to avoid this problem values need to divide to much
lesser value, Windows 7 just divide it to 1024, so timer frequency on 3600Mhz cpu is only 3.51Mhz

Patch:
- divide to 1024 values of PerformanceCounter/PerformanceFrequency, replace _HalpAcpiTimerQueryPerfCount to:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 

mov ecx, [esp+4]
or ecx, ecx
jz short Skip_Frequency_Mode
mov eax, fs:0A4h ; FrequencyLo
mov edx, fs:0A8h ; FrequencyHi
shrd eax, edx, 0Ah
shr edx, 0Ah
mov [ecx], eax
mov [ecx+4], edx
Skip_Frequency_Mode:
rdtsc
add eax, fs:0ACh ; CalibrationLo
adc edx, fs:0B0h ; CalibrationHi
shrd eax, edx, 0Ah
shr edx, 0Ah
retn 4
 





Windows XP/2003 support SATA controllers only in Legacy IDE mode, modern Intel chipsets has only AHCI mode, solved, many solutions:
1) Intel RST AHCI/RAID 11.2.0.1006 (iaStor.sys)
2) Intel RSTe AHCI/RAID 4.7.0.1098 backport by daniel_k (iaStorA.sys+iaStorF.sys)
3) StorAHCI by skulltera/OneCore (storahci.sys), compiled from Microsoft Windows 8.x DDK Samples, (require storport.sys from Windows 2003)
4) UniATA (opensource)
5) Intel RSTe AHCI/RAID 4.0.2.1019, for Windows 2003 only, enterprise controllers only(??) (iaStorA.sys+iaStorF.sys))
6) StorAHCI from Windows 8 (require backported storport.sys from Windows 8)
7) StorAhci for Windows 2003, based on Microsoft Windows 8.x DDK Samples source code, https://sourceforge.net/projects/storahci-for-windows-2003/

Add PCI\VEN_8086&CC_0106 to *.inf as universal DEV_ID for any Intel AHCI Sata Controller





- 0xA5 (0x0000000D, ..., ..., ...), duplicated _HID method

Patch:
- Skip DetectDuplicateHID processing
(v5512 .text:00013F6C => jmp .text:00013F6C)

- 0x7E (..., ..., C0000005, ...) unknow error in AcpiArbCrackPRT

Patch:
(v5512 jnz short .text:0001BD6D => jmp short .text:0001BD6D)





Intel released USB3.x drivers only for Windows 7/8/10, so there were many attempts to use drivers of
other usb chip manufacturers. Most of them do not work at Intel hardware, some works, but have problems with PAE or USB3 ports.

Following drivers confirmed to work in normal and PAE environment, solved, three solutions:
1) Microsoft Generic v6.2.9200.16384/v6.2.9200.22453 from Windows 8.0
2) AMD v1.1.0.0145 (need amdxhci_adresscalc_fix)
3) Fresco Logic v3.6.9.0 (extended to 32 ports)

AMD and Fresco drivers have some issues with recognizing devices after plug<->unplug, sometimes ports go to power saving modes and can't back

UAS (Attached SCSI Mass Storage) drivers also available, partial solved, three solutions:
1) UAS Driver from Windows 8 + storport.sys from Windows 2003, alpha
2) UAS Driver from Windows 8 + storport.sys from Windows 7, alpha
3) UAS Driver from Windows 8 + storport.sys from Windows 8, alpha
4) VIA UAS Driver
5) Etron UAS Driver

VIA and Etron UAS Drivers doesn't support Safe Remove, require fixes, solved (via_uas_fix, etron_uas_fix)
By default VIA and Etron UAS works only with genuine vendor USB3.0 Driver, but they are generic(?) and can work with any USB3 driver
vusbstor.inf: change USB_VIA\Class_08&SubClass_06&Prot_62 to USB\Class_08&SubClass_06&Prot_62
EtronXHCI.inf: change ENUSB\Class_08&SubClass_06&Prot_62 to USB\Class_08&SubClass_06&Prot_62


1) Windows 8 USB3 driver always report USB2 speed on inserted USB3 devices, MS call it "compatibility", but vendors driver report proper USB3 speed and dont have compatibility issues(?)

Fix to report proper USB3 speed, usbhub3.sys (v6.2.9200.21180):
.text:19C58: jnz 00019C63 => jmp 00019C63 (75 09 => EB 09)



This driver is known to have issues with PAE environment, need this fix:
- replace in amdxhc.sys:

1
2
3
4
 
    mov     ecx, [esi+458h] ; esi+458h = store of 64bit adress
mov eax, [esi+28h]
mov [eax], ecx ; low part
mov [eax+4], ebx ; dropped high part, ebx=zeroes.....
 


to

1
2
3
4
5
6
 

mov ecx, [esi+458h]
mov eax, [esi+28h]
mov [eax], ecx
mov ecx, [esi+45Ch] ; HIGH part of 64bit
mov [eax+4], ecx ; no more zeroes
 




Patch for VIA USB Mass Storage Device (UAS/UASP) to restore "Safe Remove":
- replace in vusbstor.sys (v6.1.7600.4002):
page:000209B4: mov [ebp+SurpriseRemovalOK], ebx -> NOPs
(89 9D 70 FF FF FF 89 9D 68 FF FF FF => 90 90 90 90 90 90 89 9D 68 FF FF FF)


Patch for Etron USB Mass Storage Device (UAS/UASP) to restore "Safe Remove":
- replace in EtronSTOR.SYS (any version):
OR dword ptr [eax+4], 0300h -> OR dword ptr [eax+4], 0000h




- Windows 2003 support more than 4Gb RAM without additional actions, limited to some value depending "Edition"

- Windows XP ServicePack1 support more than 4Gb RAM without additional actions, limited to some value (16Gb ?)

- Windows XP ServicePack2/3 don't support RAM above 4Gb, need patching, solved, many solutions:
1) PatchPae(v2) by wj32, remove limits only in kernel, need additional HAL patching
2) fix128/PatchPae(v3) by evgen_b, contains unfinished HAL_DMA patch, kernel patch is OK
3) WinXPPAE(v2) by daniel_k, contains proper HAL_DMA patch, kernel patch is OK



- Bootmgr from some Vista Betas/Longhorns allow boot Windows XP x64 from UEFI x64, alpha,
there is issues with Video card, https://www.betaarchive.com/forum/viewtopic.php?f=61&t=20327

- Boot Windows x32 on UEFI 32
UEFI32 on real hardware is rare, confirmed only on emulated environment, alpha, howto by Gelip

- Quibble bootloader (experimental, opensource), alpha, no NTFS support,
booting possible only if Windows installed on FAT partition, project page - https://github.com/maharmstone/quibble



Solved, many solutions:
- Modified OFA 1.3/1.5 driver + storport.sys from Windows 2003
- MS Windows 7 NVMe Driver by daniel_k + backported storport.sys from Windows 7
- MS Windows 7 NVMe Driver + storport.sys from Windows 7 + Emu_Extender
- Samsung NVMe driver + storport.sys



Windows 2003 already support GPT Partitions for non-booting disks, no need additional software

Windows XP doesn't support GPT Partitions, solved for non-booting disks, one solutions:
- Paragon GPT Loader enable access to 3TB+ Disks/GPT partitions (commercial product, not available for sale)

Booting from GPT disk partially solved, need convert pure GPT to HybridMBR, guide by Levvon



To enable saving crash dumps with storport-based disk drivers on Windows XP need patch kernel (scsi support will be disabled)
Disk Controller drivers written for Windows 8 mostly will not save crash dumps on disk, they use new API to get information from kernel about dump context

List of patches:
1) IopGetDumpStack:
Replace unicode string "scsiport.sys" to "storport.sys"
This string is 3rd argument of "call _IopLoadDumpDriver@12"

2) IopGetDumpStack:
Original XP kernel will disable loading storport emulator(diskdump.sys) if storport/miniport return "Device Object"
This is not problem for Windows 2003/7/.., newer OS still load diskdump.sys even if storport/miniport return anything

Replace "mov [ebp+ScsiDump], 0" with NOPs
Example for ntkrpamp.exe v5512:
PAGE:004A0E0F mov byte ptr [ebp-29h],0 -> NOP, NOP, NOP, NOP

3) IopGetDumpStack:
Storport doesnt use SCSI ports names and dont need to search name of driver, need to skip this block

Example for ntkrpamp.exe v5512:
in range PAGE:004A0F49-004A1018 replace first opcode with "jmp 4A1019"

4) Use diskports.sys from Windows 2003 or Wondows 7 (Windows 8 version not tested)

5) IoInitializeCrashDump:
XP kernel allocate for diskdump.sys buffer of 32Kb (same size in Windows 2000), diskdump.sys from Windows 2003+
expect buffer of 64Kb. To be compatible with new diskdump.sys need to increase buffer

Replace "push 8000h" with "push 10000h" as 3rd arg of ExAllocatePoolWithTag call



Currently Proof-Of-Concept, only one kernel version supported Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (480)



- Remote kernel debug over LAN or USB3 cable, https://github.com/MovAX0xDEAD/KDNET
- ACPI DSDT/SSDT Patcher at boot time for any windows, https://github.com/MovAX0xDEAD/ACPI-Patcher
- WinXP/W2003 ntoskrnl.exe Emu_Extender, https://github.com/MovAX0xDEAD/NTOSKRNL_Emu, Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (328)




Unresolved Problems/Requested Features:
- ACPI.SYS v.6666 lack 64-bit integers
- ACPI.SYS v.6666 limits possible datatypes in arguments only to ACPI 1.0b Specification
- Boot Windows XP/2003 x32 from UEFI x64
- Generating TRIM command for SSD in filesystem (NTFS/???)
- Internal GPT support for x32 Windows XP by replacing disk.sys/partmgr.sys/??? from Windows 2003
- Boot Windows x32 XP/2003 from pure GPT
- Restore full Windows XP SP1 implementation of PAE/DMA for Windows XP SP3
- Generic/Universal HDA Audio driver
- CSM Emulator for UEFI x64
- DirectX 10/11 kernel support
- NDIS 6.x for Windows XP/2003

#5 RE: Windows XP SP3 32bit and modern PC parts by deSSy2724 23.10.2018 02:43

1. So, basically...... XP 32bit can only be installed to the MBR partition and nothing can change that BUT with help of 3rd party tools like this one (link below), XP can read/access other GPT partitions and I should be able to install programs/games normally to that GPT partitions, right?
https://www.paragon-software.com/de/tech...nts/gpt-loader/

2. For slipstreaming, just adding correct hardware IDs for the SATA AHCI controller of my mainboard is enough to install XP 32bit? Wat if my MBO has multiple AHCI controllers from different manufacturers, should I avoid Intels AHCI controller and use the others instead?

3. What is actually the disadvantage if I disable ACPI (desktop PC)? Would my CPU work always with full speed and never downclock when idle (Intels Turbo Clock technology) or what?. Is ACPI disabled system-wide (BIOS) or can it be only disabled for specific OS-es?

4. @Mov AX, 0xDEAD
Are you trying to say that this user from this thread has ACPI disabled or what? How did he managed to install XP 32 bit with Coffe Lake MBO/CPU?
Windows XP 32bit SP3 now working with Z370 motherboard and Coffe Lake CPU

#6 RE: Windows XP SP3 32bit and modern PC parts by Fernando 23.10.2018 11:14

avatar

Zitat von deSSy2724 im Beitrag #5
2. For slipstreaming, just adding correct hardware IDs for the SATA AHCI controller of my mainboard is enough to install XP 32bit? Wat if my MBO has multiple AHCI controllers from different manufacturers, should I avoid Intels AHCI controller and use the others instead?
To avoid a 7b BSOD while starting the XP installation, you should just load/integrate the textmode driver, which matches the AHCI/RAID Controller of the target HDD/SSD (where you want to install the OS).
All other storage drivers can be installed later on (once XP is up and running fine).

#7 RE: Windows XP SP3 32bit and modern PC parts by Mov AX, 0xDEAD 23.10.2018 19:21

avatar

Zitat von deSSy2724 im Beitrag #5
1. So, basically...... XP 32bit can only be installed to the MBR partition and nothing can change that BUT with help of 3rd party tools like this one (link below), XP can read/access other GPT partitions and I should be able to install programs/games normally to that GPT partitions, right?
maybe gpt-loader will not works on same drive where xp installed, try replace 2 or 3 sys files from windows 2003 server
Zitat von deSSy2724 im Beitrag #5
2. For slipstreaming, just adding correct hardware IDs for the SATA AHCI controller of my mainboard is enough to install XP 32bit? Wat if my MBO has multiple AHCI controllers from different manufacturers, should I avoid Intels AHCI controller and use the others instead?
if you are sure that win xp already has drivers for you hardware , you can add new ids to TXTSETUP.SIF
if not, you need integrade AHCI driver (textmode) to install media (nlite/massdrivers/etc)
last driver for intel AHCI is 11.2.0.1006 for 32b and 64b winxp, need add new ids in INF, it works on 100 series(skylake) MB without problem
Zitat von deSSy2724 im Beitrag #5
3. What is actually the disadvantage if I disable ACPI (desktop PC)? Would my CPU work always with full speed and never downclock when idle (Intels Turbo Clock technology) or what?. Is ACPI disabled system-wide (BIOS) or can it be only disabled for specific OS-es?
i have no experience with non acpi kernel, acpi is not disabled, it just not used by OS's kernel

EDIT by Fernando: Reformatted to save space

#8 RE: Windows XP SP3 32bit and modern PC parts by YuriyCN 23.10.2018 23:08

Zitat von deSSy2724 im Beitrag #1
My previous platform was skylake cpu with H110 chpset and initial bios, winxp 64/win7 64 installed (winxp 32 can run too, but RAM limited to 2.3Gb)
Use fix128 for support >4GB RAM on 32-bits OS.
https://rutracker.org/forum/viewtopic.php?t=4694409

#9 RE: Windows XP SP3 32bit and modern PC parts by Mov AX, 0xDEAD 05.11.2018 08:45

avatar

I have finished little experimenting with acpi for running windows xp on 100-series sky/coffe-lake platform.
It is possible run acpi kernel but need patch DSDT table. In my case need to block acpi 2.0 syntax from acpi.sys driver.
I just put these instruction in a condition "IF OS >= WINDOWS VISTA THEN ...."

1
2
3
4
5
6
7
8
9
10
11
12
 

ToBuffer (Arg0, Local3)
Local0 = Zero
Local1 = Zero
While ((Local1 < Arg2))
{
Local2 = DerefOf (Local3 [(Arg1 + Local1)])
Local0 += (Local2 << (0x08 * Local1))
Local1++
}
 
Return (Local0)
 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 

If ((OSYS >= 0x07D6))
{
ToBuffer (Arg0, Local3)
Local0 = Zero
Local1 = Zero
While ((Local1 < Arg2))
{
Local2 = DerefOf (Local3 [(Arg1 + Local1)])
Local0 += (Local2 << (0x08 * Local1))
Local1++
}
 
Return (Local0)
}
Else
{
Return (Zero)
}
 
 


ToBuffer - unsupported instruction from acpi 2.0
0x07D6 - hardcoded id of Vista

This is simple example of replacement, total is 12 new instructions:

Zitat
QwordConst
ConcatenateResTemplate
Mod
CreateQWordField
ToBuffer
ToDecimalString
ToHexString
ToInteger
ToString
CopyObject
Mid
Continue



EDIT by Fernando: I have put the code into "spoilers" (to save space)

#10 RE: Windows XP SP3 32bit and modern PC parts by deSSy2724 11.11.2018 23:40

Isnt Coffe 300 series? Would it work with my Fatal1ty Z370 Professional Gaming i7? Im just wondering if ACPI could work on XP and maybe on Win 98SE.

BTW anyway..... when it comes to SATA AHCI, this MBO has actually dual SATA controllers (6x from Intel and 2x from ASMedia), so, that should not make additional obstacles.

#11 RE: Windows XP SP3 32bit and modern PC parts by zir_blazer 12.11.2018 13:05

Have you considered virtualization? You can use it as a compatibility layer between new Hardware and old OSes, and unless you are doing something very specific that requires bare metal access, VGA Passthrough is usually enough to get a fully functional Windows VM that feels like bare metal (Could be problematic in WXP, but you can source an old, supported Video Card). Been using Windows that way since December 2013 with a Linux host and QEMU-KVM-VFIO, and used as main VM Windows XP SP3, Windows XP x64 SP2, and now Windows 10.

#12 RE: Windows XP SP3 32bit and modern PC parts by deSSy2724 12.11.2018 13:20

I need XP 32 bit for legacy/old games and application, thats why I need proper drivers. And for old win 95-98-ms dos games there are PCI express to PCI adapters.... not sure if that could work and there are tools to downclock/limit/slower CPUs in win 95/98 for beter compatibility.

BUT dual booting XP 32 bit and win 10 64 bit is my main goal with proper drivers, acpi if possible for xp. And dual graphics cards.... gtx 1080/rtx2080/vega/navi GPU (not sure which one exactly would I get) for new advanced software/games and I have a spare radeon rx 260x for XP 32 bit (it has official drivers). Win 98SE and ms dos would be just an additional bonus if possible.

#13 RE: Windows XP SP3 32bit and modern PC parts by zir_blazer 12.11.2018 13:43

Zitat von deSSy2724 im Beitrag #12
I need XP 32 bit for legacy/old games and application, thats why I need proper drivers. And for old win 95-98-ms dos games there are PCI express to PCI adapters.... not sure if that could work and there are tools to downclock/limit/slower CPUs in win 95/98 for beter compatibility.

Seriously, you're better off with virtualization simply because as the emulated platform stuff is old enough (Chipset, IDE Controller, etc), you will always have "proper Drivers" of the harder to support components. The only missing thing is the GPU, which VGA Passthrough already covers well enough.
There are also some Motherboards with PCI slots like this one. Recall at least seeing a guy with an old PCI Voodoo passthroughing it to a VM and playing DOS or W9x games with Glide. Your other option is PCem, or a computer old enough to get things working mostly out of the box.

#14 RE: Windows XP SP3 32bit and modern PC parts by infuscomus 13.11.2018 06:10

@Mov AX, 0xDEAD:

Would patching like >this< help to fix an A5 BSOD?
If so, can i get some help to patch ACPI?

EDIT by Fernando: Fully quoted post replaced by directly addressing (to save space)

#15 RE: Windows XP SP3 32bit and modern PC parts by Mov AX, 0xDEAD 13.11.2018 22:01

avatar

Zitat von infuscomus im Beitrag #14
Would patching like this help to fix an A5 BSOD?
If so, can i get some help to patch ACPI?
Yes, this patching fix A5 bsod
You need ask for someone to fix your acpi table or learn how to DIY, see attachemnt "before and after"
patching is not easy, if you forget return something from method you will get another BSOD, so be accurate

Xobor Forum Software von Xobor
Datenschutz