Virtual PC 2007 SLP1.0 and SLP2.0 Guide - Rev1.1
Virtual PC 2007 SLP1.0 and SLP2.0 Guide - Rev1.1
Virtual PC 2007 SLP1.0 and SLP2.0 Guide - Rev1.1
0stringtoVirtualPC2007
Toolsused:
ResourceHackerhttp://angusj.com/resourcehacker/
AMIMMToolv2.22.1Beta
HexEditor(forexampleWinHex,likeiusedinthisguide)
Whatelsedoyouneed:
MicrosoftVirtualPC2007
http://www.microsoft.com/downloads/details.aspx?FamilyId=04D26402319948A3AFA2
2DC0B40A73B6&displaylang=en
ValidXPoembiosfileset(ASUSinthisguidecase)http://www.oembios.net
'f000','c000','3fff','ASUS_FLASH'
ValidVistaSLP2.0SLICtable(InthisguideiusetheASUSslic)
1. FirstthingwehavetodoistoextracttheBIOSfilefromtheVirtualPC2007executable.
OpenVirtualPC.exewiththeResourceHacker,SelectBIOSfromthetreeviewontheleftside,
rightclickwithyourmouseandchooseSave[BIOS]resources...
Fourfilesareextractedtothedirectoryyouspecifiedtosavetheresourcesto,eg:*.rc,
Data_1.bin,Data_3.binandData_3.bin.WeonlyneedData_1.binsoyoucandeletetheothers.
RenameData_1.bin,InthisguideirenamedittoBIOS.ROM.
2. StartMMTool,opentheBIOS.ROMyoujustextractedandclickthePowerMMToolbutton.
ClicktheExtracttab,selectthe1Bmoduleandextract.
3. OkwewillstartbyaddingtheSLP2.0Slictable.
StartyourHexEditor,openthe1B.ROMfileyoujustextractedandsavedusingMMTool.
Findthefollowingtextstring:AMIBIOS0800
Ok,onceyouhavefoundityouwillseeitislocatedatoffset:137FD
ThisAMIBIOS0800stringisquiteuniqueasitisalwaysremappedto000FF400hmemoryaddress
inyourrunningbios.
KnowingthiswecanaddtheSLP2.0Slictablehere,andmakeitsoitwillalsoberemappedtoa
fixedaddressinyourbiosmemory.
StarttheCalculator,ChooseScientificview,nowtaketheoffsetwefoundtheAMIBIOS0800
stringminus200h,eg:137FD200=135FD
BydoingthiswenowknowforsuretheSlicaddresswillberemappedto000FF200hmemory
adrress(000FF400h200h=000FF200h)
NowopentheASUSSlicintheHexEditor,Selectall(Ctrl+a)>ClickEdit>CopyBlock>Hex
Valuesandwriteit(Edit>ClipboardData>Write)inthe1B.ROMatoffset135FDfoundabove.
IntheHexEditorsearchstring:RSDT(Shouldbefoundatoffset2882C)
RaisetheRSDTtablelengthbycounting+4htoit,eg:taketheHEXvaluerightaftertheRSDT
string,inthiscase28+4=2C
ReplaceAMIOEMRSDTwith_ASUS_Notebook
FromtheRcharacterofRSDTstringcount40bytesupandinsert000FF200hinreverseorder,eg:
00F20F00
RepeataboveactionfortheXSDTtable,raisetheXSDTtablelengthwith+8h(2C=8=34)
ReplaceAMIOEMRSDTwith_ASUS_Notebook
Andlastcount44bytes(40+4asits4byteslongernow)uptotheXcharacteroftheXSDT
string.
4. AddingtheSLP1.0String
NOTE:SLP1.0requirementscanbeachievedforabout90%oftheOEMpartnersbysimply
addingthedesiredSLP1.0stringtoyourcomputersDMItable.
Thereareexceptiontothis,forexamplethe'ASUS_FLASH'stringshouldbelocatedimmemory
priortotheDMItable.
Whatis'f000','c000','3fff','ASUS_FLASH'?
Todeterminewheretheslp1.0stringshouldbelocatedrunHWDirectonaVirtualPCinstalled
OS,SelectMemoryDumpinprogramleftsidetreeview.
Type:000FC000asPhysicaladdress,3FFFasLength,ClickDumpbutton.
Findastringyoucanfindbackinthe1B.ROMmodule,scrollabitdownintheHWDirectdump
andyouwillfindaIBMCOMPATIBLE...string
In1B.ROMstillopenintheHexEditorfindstring:IBM,makesureyouattheexactsamelocation
asshownabove,NowyoucaninserttheASUS_FLASHstring.
Makesure,youdontoverwriteanythingthatmightcorrupttheVirtualPCBIOS,normallyempty
space000000000000canbeusedwithoutrisk,inthisexampleiwrotethestringatoffset:
123FD(Notexactlyemptyblockhere,butthatdoesntmatterinthiscase)
5. Savechangesto1b.ROM,SwithbacktoMMToolInthereplaceTabreplace1BModulewithour
newone,savetheBIOS.ROMfile.
InResourceHacker,replaceBIOS>13500>1033Filewithournewbiosfile,andsavethenew
VirtualPC.exe
6. Done!
YoucannowuseASUSVistaOEMCertifcatetopreactivateVistaonthisVirtualPC,futhermore
youalsocanuseASUSXPoembiosfilestopreactivateXPOEMmediaonthisVirtualPC