i don't personally use VMware but to make some users life easier moding their own with PheonixTool maybe someone can post the dfferent VMware bios versions AcpiTbs.rw ??
@ urie - thank you very much for the PhBIOSEd - it works now. A few additional questions. I'm trying to patch vmware-vmx.exe as you have recommended. PhoenixTool (2.11) creates the vmware-vmx_SLIC.exe and if I open it with the tool it reports SLIC 2.1 (as expected). Now I replace the original vmware-vmx.exe with the patched one (and restart win7), run Slic_Toolkit_3.2 from WinXP VM - it reports NO SLIC/SLP. If I do the same with 6006.ROM (extracted from exe) and add bios440.filename to the patched bios file, the slic_toolkit (on that winXP vm) reports SLIC & no SLP. What is wrong with exe patching? Next, I try to insert SLP 1.0 using the PhoenixTool. The "Inesrt SLP10 module..." option is inactive(!). Anything is wrong? Ok, I try to insert the SLP string manually. I set the "Aliow user modification of modules" (set Sony/Sony SLIC bin/AcpiTabs.rw) and press "Go" - the process stops letting me to modify the module; I insert "Sony Corporation" in BIOSCOD2.ROM, offset 6889 (save/close winhex/re-open the file to check the string is there) and continue in PhoenixTool. It creates the patched (exe or rom) file. I check the patched bios in vm - there is no SLP 1.0 there. What is wrong with SLP 1.0 in PhoenixTool? Phoenix BIOS Editor. I do the steps described in the "vmware_bios_mod_tut" pdf file. The result - vm does not start with the bios modded according to the instruction. I try to open the bios modded with SLIC by PhoenixTool - the EDITOR says "An unsupported module ... at offset F781F ...". What is wrong?
You need to make sure you are patching the correct vmware-vmx.exe i,e if you are running x64 then it is one in C:\Program Files (x86)\VMware\VMware Workstation\x64 if x86 then it is in C:\Program Files (x86)\VMware\VMware Workstation also you are adding Sony Corporation to wrong address offset 6889 is for Dell Code: SONY (OEMBIOS.CAT CRC32=376E13C7) F000,FF80,70,Sony Corporation F000,DFC0,40,Sony Corporation F000,E800,80,Sony Corporation
yes, I was so stupid regarding the patching vmware-vmx which (of cause) is in x64 subfolder Thank you so much. But it is not clear about the SLP so far. What is the format of the table? In SLIC_Toolkit I see all the SLP values are in F0000 (not F000) segment and it seems the second value is the offset from F0000, right? Ok, if the second value is the offset what I do need, how to find the right module/place (bioscod0/1/2...)?
I saw this tut in Sebus post but it was not clear there what is the first step for - now I understand that. x64 vmware-vmx patched with Sony SLIC/SLP successfuly! Thank you so much for the assistance! In fact I calculated the difference between the Dell and Sony offsets and checked the place in vm using slic_toolkit - in fact for some cases you do not need to check the mem dump in vm, just move forward/backward from Dell offset. But, now I need to do that for ASUS that has "0000" offset. This is defenetely not in bioscod2 file because Dell "e076" is 6889 in the file, so there should be some other file?! So, how to put the SLP strings for the "F000,0000" values?
Yes, I understand about the value, but don't know how to find the right place to put it in the bios. Dell has - F000, E076, ... Sony has - F000, FF80, ... So, Sony offset is 1F0A greater than Dell in bioscod2 file, so it's place is in 6889+1F0A=8793. The file is the same. ASUS has - F000,0000,... so it's offset is less from Dell for E076 byte, and it means that it can't be in the bioscod2 because Dell's offset (in this file) is only 6889. So the question was - where to find the place for ASUSL_FLASH string? I assumed it's place may be found in the bioscod1 (moving back from the end of the file for E076-6889 bytes) but the value there is different from the vm's mem dump got in F0000 address.
You can stick ASUS_FLASH anywhere between starting 000FC000 and ending 000FFFF0 That is MASSIVE range (which covers the whole bioscod2 & MORE)
O! A few more questions (about SLP string in the bios, in general). 1. Am I right there is no need to start exactly from the address specified in the SLP table (I mean, in case of Sony there may be any place starting from FFF80 and assuming the full string is withing FFF80+80 range) 2. The ONLY EMPTY (00|FF???) space is available for SLP string within the specified range (I assume placing the string in the "non-empty" place will destroy some functions in the bios). In addition, are there any rule for befor/after symbols of the string (00/FF/any ASCII symbols)?
Ofcourse to both! The range is what matters, not the start! If you were to add text to a document, you would not replace existing text, would you? Same applies here
@Sebus and urie - thank you so much for helping me to do the mod manually. I decided to put all the things in one place for those who are not so experienced with bios mod, hope you don't mind! -- The vmware BIOS Installer introduced in the first post is the great tool for Workstation 7 but, unfortunately, it (v315-339) does not applicable for Workstation 9. It injects WS7 resources so Win8 fail on the WS9 patched with this tool. BIOS Mod isn't my hobby so I spent a few days before getting the same (SLIC/SLP) result on WS9 doing that manually. Now I understand that the manual mod is very easy if you need just SLIC in the VM bios. It become a bit more difficult if you need to have SLP (for XP VM's) also. But, to make the process really easy you need to prepare some tools before you start the mod. So please find below the steps those I did to mod my vmware workstation 9 bios with SLIC and SLP. ============================================================================== 0. The list of the tools/resources i) AcpiTabs.rw for your version of vmware. Install/upgrade vmware workstation, create empty VM, boot it from liveCD(/iso/usb etc), run rw Everything Protable, press ACPI (ACPI Tables) -> Save All, write AcpiTbls.rw to your USB. Be careful with USB Controller if you use winXPpe (USB 3.0 may not be supported, change to USB 2.0). ii) PhoenixTool (2.11+) - to patch exe/rom file with both SLIC/SLP iii) collection of SLIC bin files. iv) [optional] collection of SLP. v) [optional] XN Resource Editor. vi) [optional] WinHex (or any other hex editor). There may be a demo/limited functionality program on the official site so you need to find the working(/cracked?) one by yourself. --- There are two ways to put SLIC in VM - to patch the vmware-vmx.exe or to extract BIOS from it, patch the bios and put the bioa in VM using "bios440.filename = X:\PATCHED_BIOS.ROM" line in vmx file of your VM. You don't need (v) if you patch the exe. You don't need (iv) and (vi) if you do not mod SLP (for XP). So, let's start from the easiest way - patching the exe with SLIC only. Chapter I. Patching vmware-vmx.exe with SLIC (2.1 or 2.0) --------------------------------------------------------- 1. Get vmware-vmx.exe file. For x64 OS it is in the X:\Program Files (x86)\VMware\VMware Workstation\x64 (!!!) folder. 2. Extract BIN (and optionaly Certificate - xrm-ms) from SLIC collection (c) 3. Patch vmware-vmx.exe with PhoenixTool (b) 3.a Open vmware-vmx.exe (Original BIOS) 3.b Set Manufacturer (choose from the list - don't know what for) 3.c Open your SLIC bin (SLIC File) prepared in step 2 3.d Open AcpiTabs.rw (RW File) 3.e Validate with your Certificate (optional) 3.f Set Method - Module 3.g Patch - Go. 3.h Find vmware-vmx_SLIC.exe - patched exe. There may be some error messages. This is Ok. 4. Replace your original vmware-vmx.exe with the patched one (be careful with the right exe in x64!) Tha's it for SLIC in the exe file. Next, let's do the same for the extracted vmware bios. Chapter II. Patching vmware workstation bios with SLIC (let say, the file name is 6006.rom) ------------------------------------------------------------------------------------------- if you need to do it with the extracted BIOS, 1. Extract BIOS from vmware-vmx.exe 1.a Get the right vmware-vmx.exe (x64!) 1.b Generate 6006.ROM file. Run XN Resource Editor (v). Open vmware-vmx.exe, expand BINRES and 6006, Right Click -> Export Resource -> Write File -> 6006.ROM. 2. Patch the ROM file. Do the same steps as for exe (Chapter I) but with your 6006.ROM file. 3. Add patched BIOS to your VM. Add line bios440.filename = "X:\MyFolder\6006_SLIC.ROM" into your VM's vmx file. This way you have "PURE" vmware workstation (unpatched) and you may have as many different SLIC-modded VM's (Sony, Asus, HP etc) as you want on the same environment. Now we need to add the SLP. Let assume we do it for the extracted bios (for exe it is 100% the same). Chapter III. Patching the ROM file with SLIC and SLP. ----------------------------------------------------- 0. First, we need to calculate the place for SLP string in the bioscod2.rom file. Find the section for your manufacturer in the SLP table provided by (iv) link. There are usually a number of lines for the same manufacturer. Choose the line starting from F000 (I have no idea what to do with the lines starting E000, sorry). The second value, let's call it ADDRESS, is the offset from F0000 address in the VM DUMP (as I see it in SLIC_Toolkit_3.2), the third value, let's call it SIZE, is the size of the "SLP String area" (sure there shuld be the right name of that but I don't know it) and the last value, let's call it STRING, is the string to be placed in the bioscod2.rom file in the area specified by the previous values. The real OFFSET in the bioscod2.rom file to be calculated based on the ADDRESS value. I use the formula: OFFSET = ADDRESS - 77ED. The STRING should be placed in the area starting from OFFSET with the size of SIZE bytes in EMPTY place (00 or FF) FULLY! There are some exceptions. For ASUS the SLP table has "F000,0000,FFFF,ASUS_FLASH" line that means that the SLP string may be in ANY place in the bioscod2.rom file. 1. Extract the BIOS from vmware-vmx.exe (the same way as in the Chapter II) 2. Set SLIC (the same way as it is described for exe in the Chapter I) 3. Set the Advanced Parameters in PhoenixTool: Press Advanced -> (Yes ->) tick "Allow user to modify other modules" -> Done 4. Patch with SLIC. Press Go. The process will stop with the message "You can now make manual alteration ...". 5. Run WinHex, Open the DUMP\bioscod2.rom file. 5.a Find the place for SLP String. Move to OFFSET (step 0) position (in WinHex) and find the EMPTY area big enough for your STRING starting the OFFSET. Be sure the full STRING is withing the SIZE of the area. Put the STRING in this place. Save bioscod2.rom (modified) 5.b Continue patching. Press Ok. 6. There will be some Error messages (the same as in the Capter I) - it is Ok. The patched bios is 6006_SLIC.ROM, and it has both SLIC and SLP. 7. Put the patched bios to VM (see Chapter II). ----------------------------------------------- Those steps are working for me; I put Sony and ASUS SLIC and SLP into VMware Workstation 9.0 (both exe and bios). Hope this description may help other people with no bios mod experience to mod the vmware bios manually. PS. It would be great if somebody with bios mod experience to review my "guide" ane correct me if I'm wrong PSS. Sorry, I can't post the links (due to I have less than 20 posts at the moment) but I believe there will be useful to have all of them in the same place.
Dumb question, I'm still on VMware 7.0 and deciding if I want the hassle. Are these VMware 9.0 BIOS440 ROM files interchangeable between computers. Has someone already uploaded a ROM with a DELL slic for VMware 9.0, or am I missing some fundamental information about how this works ?
But you should NOT use latest BIOS in such old version like 7!!! If you do, do not complain when things do not work Update the post to 9.0.0-build-812388 BIOS But do do SLIC 2.1 in Workstation with Andy's tool takes under 2 minutes!
It does not matter, the tool is not updated, old BIOS is pointless for W9 (if one wants to use it with Win8 especially)