[Help] Problem showing menus for ASUS ROG GL504GW

I recently got an ASUS GL504GW, and I’m trying to enable the other menus. So far, I’ve followed Lost_N_BIOS’ posts, but I think I’ve missed something.

I’ve done the following:
Disabled BIOS Lock
Dumped and verified I could flash with FPT for v12.
Showed menus with AMIBCP.
Found magic string, and modified it to show the menus.
Reflashed modified bios.

The OEM bios file is available at https://www.asus.com/Laptops/ROG-Strix-S…pDesk_Download/ .
I’ve uploaded my (mostly unmodified; I’ve only set BIOS Lock to 0x0) FPT dump https://cache.snorfi.us/l/h72b0p/biosreg.rom~WIN-RAID~cowpod-GL504GW.zip (it’s to big to attach), but I’d prefer it if someone could point out what I’ve done wrong or missed.

@cowpod - There is newer BIOS BTW

Magic String is NOT used in this BIOS version/Type (this is Aptio V), generally that is only used in Aptio IV. So, undue any change you thought was magic string edit

First thing you need to do, without use of AMIBCP, is change these “Suppress If’s” to False in Setup Module PE32 (Below is just one example, for Advanced and Chipset only, there are others suppressed, look at the IFR output)
0x282DA Suppress If {0A 82}
0x282DC True {46 02} << Change to False (47 02)
0x282DE Ref: Advanced, VarStoreInfo (VarOffset/VarName): 0xFFFF, VarStore: 0x0, QuestionId: 0x2, FormId: 0x2712 {0F 0F 1E 00 02 00 02 00 00 00 FF FF 00 12 27}

0x282EF Suppress If {0A 82}
0x282F1 True {46 02} << Change to False (47 02)
0x282F3 Ref: Chipset, VarStoreInfo (VarOffset/VarName): 0xFFFF, VarStore: 0x0, QuestionId: 0x3, FormId: 0x2713 {0F 0F 1F 00 02 00 03 00 00 00 FF FF 00 13 27}


Then, this BIOS needs “AMITSE” edit, “Like” (but not exactly) I show here in the “advanced spoiler” method * @cowpod - Sorry, forgot link! >> OverPowered TONGFANG CyberPower Machrevo MACHENIKE - Unlocked BIOS Guide W/ Files
The AMITSE menu stuff for this BIOS however is hidden in a fake AMITSE >> A2DF5376-C2ED-49C0-90FF-8B173B0FD066 >> Extract this PE32 Body, replace same way once done editing
Anyway, this and setup needs edited first and ONLY, then tested, BEFORE making ANY AMIBCP User/Super Access Level changes to main menu items at root levels.
Then, if Advanced or Chipset still does not show up after that, then you test AMIBCP User/Super at ROOT level on top of this and then it will show up


4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15

Setup PE32 >>
Setup, FormId: 0x2710 {01 86 10 27 07 00}
Suppress If {0A 82}
True {46 02}
Ref: Main, VarStoreInfo (VarOffset/VarName): 0xFFFF, VarStore: 0x0, QuestionId: 0x1, FormId: 0x2711 {0F 0F 09 00 02 00 01 00 00 00 FF FF 00 11 27}

Suppress If {0A 82}
True {46 02}
Ref: Advanced, VarStoreInfo (VarOffset/VarName): 0xFFFF, VarStore: 0x0, QuestionId: 0x2, FormId: 0x2712 {0F 0F 1E 00 02 00 02 00 00 00 FF FF 00 12 27}

Suppress If {0A 82}
True {46 02}
Ref: Chipset, VarStoreInfo (VarOffset/VarName): 0xFFFF, VarStore: 0x0, QuestionId: 0x3, FormId: 0x2713 {0F 0F 1F 00 02 00 03 00 00 00 FF FF 00 13 27}

Suppress If {0A 82}
True {46 02}
Ref: Security, VarStoreInfo (VarOffset/VarName): 0xFFFF, VarStore: 0x0, QuestionId: 0x4, FormId: 0x2714 {0F 0F 3A 00 02 00 04 00 00 00 FF FF 00 14 27}

Suppress If {0A 82}
True {46 02}
Ref: Boot, VarStoreInfo (VarOffset/VarName): 0xFFFF, VarStore: 0x0, QuestionId: 0x5, FormId: 0x2715 {0F 0F 20 00 02 00 05 00 00 00 FF FF 00 15 27}

Suppress If {0A 82}
True {46 02}
Ref: Save & Exit, VarStoreInfo (VarOffset/VarName): 0xFFFF, VarStore: 0x0, QuestionId: 0xB, FormId: 0x271B {0F 0F 4D 00 02 00 0B 00 00 00 FF FF 00 1B 27}

Hidden Above, Default Visible Below
Ref: (MAIN), VarStoreInfo (VarOffset/VarName): 0xFFFF, VarStore: 0x0, QuestionId: 0x6, FormId: 0x2716 {0F 0F 16 27 02 00 06 00 00 00 FF FF 00 16 27}
Ref: Advanced, VarStoreInfo (VarOffset/VarName): 0xFFFF, VarStore: 0x0, QuestionId: 0x7, FormId: 0x2717 {0F 0F 1E 00 02 00 07 00 00 00 FF FF 00 17 27}
Ref: Boot, VarStoreInfo (VarOffset/VarName): 0xFFFF, VarStore: 0x0, QuestionId: 0x8, FormId: 0x2718 {0F 0F 20 00 02 00 08 00 00 00 FF FF 00 18 27}
Ref: Security, VarStoreInfo (VarOffset/VarName): 0xFFFF, VarStore: 0x0, QuestionId: 0x9, FormId: 0x2719 {0F 0F 3A 00 02 00 09 00 00 00 FF FF 00 19 27}
Ref: Save & Exit, VarStoreInfo (VarOffset/VarName): 0xFFFF, VarStore: 0x0, QuestionId: 0xA, FormId: 0x271A {0F 0F 4D 00 02 00 0A 00 00 00 FF FF 00 1A 27}

______________________________ AMITSE >> Alternate GUID >> A2DF5376-C2ED-49C0-90FF-8B173B0FD066____________________

@1162F8 - Blocked, short ID
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 11 27 00 00 07 10 00 00
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 12 27 00 00 08 10 00 00
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 13 27 00 00 09 10 00 00
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 15 27 00 00 0A 10 00 00
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 14 27 00 00 0B 10 00 00
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 1B 27 00 00 0C 10 00 00

@129C40 - ALL Possible (Limited space here, keep in mind, cannot be expanded)
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 11 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 1B 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 16 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 17 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 18 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 19 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 1A 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

@129D80 - Blocked
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 11 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 1B 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 1C 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

________________ >> Edits >>______________________________________

Add/remove however you want for the above, do not remove or increase spaces taken. Zero fill any string/space you do not fill up in these areas, don’t add more lines/entries, counts are limited to areas you see here
Example below is to "Swap Advanced + ADD Chipset"

Suppress If {0A 82}
True {46 02} << Change to False >> 47 02
Ref: Advanced, VarStoreInfo (VarOffset/VarName): 0xFFFF, VarStore: 0x0, QuestionId: 0x2, FormId: 0x2712 {0F 0F 1E 00 02 00 02 00 00 00 FF FF 00 12 27}

Suppress If {0A 82}
True {46 02} << Change to False >> 47 02
Ref: Chipset, VarStoreInfo (VarOffset/VarName): 0xFFFF, VarStore: 0x0, QuestionId: 0x3, FormId: 0x2713 {0F 0F 1F 00 02 00 03 00 00 00 FF FF 00 13 27}

@1162F8
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 11 27 00 00 07 10 00 00
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 14 27 00 00 0B 10 00 00
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 15 27 00 00 0A 10 00 00
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 17 27 00 00 08 10 00 00 << Added 17 in place of 12 (swapping blocked advanced for OG Advanced now blocked)
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 1B 27 00 00 0C 10 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 << Line added here, due to chipset removed (4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 13 27 00 00 09 10 00 00)

@129C40 - ALL Possible (Limited space here, keep in mind, cannot be expanded)
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 11 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 17 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00 << Swapped IN 12, in place of 17 (Hidden Advanced in place of OG advanced)
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 17 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00 << Added 13 27 (Chipset), removing single zero filled space for this area

4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 1B 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 16 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 18 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 19 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00
4A 10 59 7B 0D C0 58 41 87 FF F0 4D 63 96 A9 15 1A 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Then you test that as-is, if new Advanced and Chipset do not show up, then at ROOT level in AMIBCP you set them to User or Super (one will make it show up if not already, if rest done properly)

Hi, thank you for your reply!

I found the SuppressIfs in Setup PE32, and have modified them (there are a LOT. I’ve only modified the first “important” 5). However I can’t find anything in AMITSE PE32 or A2DF5376-C2ED-49C0-90FF-8B173B0FD066 PE32.
As ifrextractor has more output, I’ve run both ifrextractor.exe and ifrextract.exe for all sections. (I’m not sure which I should use, so why not both?)

For “Section_PE32_image_A2DF5376-C2ED-49C0-90FF-8B173B0FD066.sct”, I get ifrextractor “No string packages were found in the input file”, and ifrextract “Protocol: UNKNOWN error: Unknown protocol”.
For Section_PE32_image_AMITSE_AMITSE.sct, ifrextractor runs but only has file contents “HII string package: Offset: 0x28F58, Length: 0x415B, Language: en-US”, and ifrextract runs as well but is effectively blank.

Thanks, and I’ve attached the section files below.

AMITSE.zip (67.7 KB)

A2DF5376-C2ED-49C0-90FF-8B173B0FD066.zip (610 KB)

@cowpod - Do not edit unnecessary Suppress If’s, only the one you want, otherwise you can end up with a mess or broken BIOS etc

I showed you above the exact edits (stock content then edit example) to make in A2DF5376-C2ED-49C0-90FF-8B173B0FD066 PE32 (This is “AMITSE” for this BIOS, lets call it Alternate_AMITSE, ignore the module called AMITSE )
IFR extractor is ONLY used on setup module, it’s not used on GUID mentioned above (or AMITSE in other BIOS). This is hex editing file only, with information from setup, used to give you the info and examples above in spoiler.

If you want me to do the edits for you I can, just let me know what you want to do menu-wise. You can flash in setup edit only, but it’s not going to make any of the hidden menus appear, this is controlled in the GUID I gave you above (Alternate_AMITSE)

Thank you for the offer and clarifying, I’ve got it working!

I’ve noticed that sometimes when exiting an entry, I am kicked to a blank screen. Then pressing UP arrow, it shows me a vertical list of all the menu entries, even the ones that are suppressed! It’s kind of like a secondary backup method of reaching hidden menus.

Thank you so much!

@cowpod - Good to hear! About the blank screen, sounds like you maybe did some edit wrong.
Yes, sometimes BIOS Bug like you mention can do that about the hidden menu list, or it could be due to incorrect edit you made (making a BIOS Bug, so then show that)
If you want me to do the edit so you can test if it’s same outcome let me know

I guess that would make sense… Please do edit so I can crc it!

What I’ve done is in Setup_PE32 set second and third SuppressIf=False, which I assume is what the bug could be; I might have changed the wrong items.
For ASMIT_ALT, as per your example I swapped Bad Advanced for OG Advanced (and hid the bad one), and replaced the blank slot with Chipset. I left chipset in the Blocked area too; should I have removed it?

@cowpod - Sorry, I forgot that above, thanks for mentioning, yes, chipset needs removed (zero fill line, move rest up) from that first area block list. I’m adding that edit to above spoiler now, so it’s all there and proper

Suppress If changes only need to be done on what you are wanting to reveal. So what do you want done, my exact example above (swap Advanced menus + Add chipset)?

Yes, please just swap advanced and show chipset.

I’ll redo the changes on my end so I can compare!

BIOS v306 dump: https://cache.snorfi.us/l/28rbfw1/biosreg.zip

OK, give me a bit, I was getting 305 ready for you, but we’ll do 306 instead I wondered why you didn’t update to 306 already

* Edit - @cowpod - Please test in the following order, STOP once you see new Advanced and chipset and let me know which files shows this (then rest, not needed to be tested or those kinds of edits not required etc)
1. SetAMITO << This setup and Alt_AMITSE edit only
2. SetAMITSDU << This Setup and Alt_AMITSE + AMITSE/SetupData edit (“AMIBCP” Access Level User, manually done, not using AMIBCP)
3. SetAMITSDS << This Setup and Alt_AMITSE + AMITSE/SetupData edit (“AMIBCP” Access Level Super, manually done, not using AMIBCP)

If #1 shows, then AMIBCP/Manual access level edit is not required, if it does not show at #1, then Access Level edit to User or Super is required
All mod files included, so you can compare stock/mod etc (Watch file types, I extract setup and rest differently as-is/body etc)
http://s000.tinyupload.com/index.php?fil…303339945430972

Modified Setup_PE32 extract as-is, crc32 matches your file.
Modified AMITSE A2DF5376-C2ED-49C0-90FF-8B173B0FD066 extracted body, crc32 matches your file (if I reorder the hex patches, and modify the end bytes of Short Entries).

I didn’t need to do any AMIBCP! All I needed was Setup_PE32, and AMITSE A2DF5, and everything (I wanted to show) shows.

If a menu isn’t shown in the list, would I then find it in IFR (eg “Overclocking Performance Menu” 0x2798/0x9827) and swap that into AMITSE with something else, then in Setup if it has a “SuppressIf” patch it?
And one more question… can I not hide the old menus, ie. can I have two advanced menus at the same time?

Thank you!

@cowpod - You’re welcome!! Great to hear your edits were match, AND that all you needed was the setup/Alt_AMITSE edits for menus to show up properly too!!
Now, anything (Setting or submenu) still missing inside currently visible menus simply needs AMIBCP like edit (AMIBCP or manual) to it’s access level at it’s root location (root of Advanced), and possible unsuppress edit if suppressed in setup
For example, the Overclock Performance Menu you wanted, nothing needs done in setup, only AMITSE/SetupData edit to change Access Level (or AMIBCP). Test User first, then Super if User does not work

Ahh! Never mind, I see “Overclock Performance” menu is outside of Advanced in this BIOS, BIOS is such a pain sometimes, this is a MSI move not Asus!
So yes, you would have to do what you mentioned in Alt_AMITSE only, using 98 27 - You can replace any menu you do not use, or do not change things in, all settings there will be left at their defaults (Such as boot or security etc, or if you do not need chipset you could put this in place of that instead)
This is not ideal though, but it will work. What do you need inside there, that’s not already inside other menus in new Advanced or Chipset? I think all CPU related stuff is inside CPU Config or Power & Performance.
Ohh, I guess “Memory” stuff is there that isn’t inside new Advanced or chipset.

Yes, you can hide old menu, put them in the block list (both, if room), they should be hidden now, but I/we didn’t add old advanced to second block list, so may require simple User Access Level / Show Yes/Not byte change
So, if they still show up, Edit AMITSE/SetupData and change Access Level byte to one that = show/No (ie instead of 09, change to 08, or 01 to 00, if doing manually), or change the Show to NO in AMIBCP at the root level for that menu
If you need an example edit of this let me know, I will do it as a single separate edit on AMITSE/SetupData and show you (using Old Advanced as example)
Actually, here - compare with stock AMITSE/SetupData body and you will see the two bytes changed - http://s000.tinyupload.com/index.php?fil…348076910763269
You can use this file, it’s only change is to hide default Advanced

@cowpod - See edits above

I’ve successfully enabled “Overclock Performance Menu”! As you said: all I needed to do was add it to AllPossible.
I removed entries that were in AllPossible and Blocked at the same time, to make some free space - there was a surprising amount of them - I still have a free slot for something…
It helped me to think of the sections as “Enabled slots” (All Possible), and “Disabled slots” (Blocked)…
Again, thank you for your help! I wouldn’t have gotten anywhere otherwise.

@cowpod - Yes, sometimes there is duplicates in there, or ones not used, so you can make free space like you mentioned and did, creating more room too.
Good work figuring that out You’re welcome!!!

This is probably a long a shot i don’t know how to edit unlock or anything like that but would love to have the performance menu added. Same lap GL504GW. I’ve always built my own pc’s for this reason I just currently had to have this cause my son going through a lot of surgeries for club foot so i moved to this instead for the long trips and stays. If not oh well if anyone wants to ty.
----------------------------

Also i have downgraded bios to 305 because i wanted to undervolt with throttlestop to lower temps.

@strikercod8669 - What are you saying about BIOS version, throttlestop does not work with 306 or 307?
If you make performance menu visible, you should undo any changes by XTU or throttlestop and use the BIOS only to make same changes.
Please do below and tell me what error you get at #2, then toss #1 file, we will make a new one after I help you to bypass error at #2

If you have already modified the BIOS in ANY way, you will need to re-flash it back to factory defaults using factory method (NOT FPT)!!!
Additionally, please remove all BIOS passwords, disable secure boot, and disable TPM or Encryption if you have enabled. Do this before moving on to below


If you do not have Intel ME drivers installed, install them now from your system driver download page, then start over here after reboot.
Check your BIOS’ main page and see if ME FW version is shown. If not then > DOWNLOAD HWINFO64 HERE <

Once HWINFO is open, look at the large window on the left side, expand motherboard, and find the ME area.
Inside that section is the ME Firmware version. Take note of the version. (ie. write it down or get a screenshot)

Once you have that, go to the thread linked below, and in the section “C.2” find and download the matching ME System Tools Package for your system.
(ie if ME FW version = 10.x get V10 package, if 9.0-9.1 get V9.1 package, if 9.5 or above get V9.5 package etc)
> DOWNLOAD " ME System Tools " packages HERE <

Once downloaded, inside you will find Flash Programming Tool folder, and then inside that a Windows or Win/Win32 folder (NOT x64).
Highlight that Win/Win32 folder, then hold shift and press right click. Choose “open command window here” (Not power shell! >> * See Registry file below *).

If you get an error, reply to this post with a screenshot of it, OR write down the EXACT command entered and the EXACT error given.

((If “open command window here” does not appear, look for the “Simple Registry Edit” below…))

Step #1

Now you should be at the command prompt.
You are going to BACKUP the factory un-modified firmware, so type the following command:
Command: " FPTw.exe -bios -d biosreg.bin "

>> Attach the saved "biosreg.bin ", placed into a compressed ZIP/RAR file, to your next post!!! <<

Step #2

Right after you do that, try to write back the BIOS Region dump and see if you get any error(s).
Command: " FPTw.exe -bios -f biosreg.bin "
^^ This step is important! Don’t forget! ^^

If you get an error, reply to this post with a screenshot of it, OR write down the EXACT command entered and the EXACT error given.

Here is a SIMPLE REGISTRY EDIT that adds “Open command window here as Administrator” to the right click menu, instead of Power Shell
Double-click downloaded file to install. Reboot after install may be required
> CLICK HERE TO DOWNLOAD CMD PROMPT REGISTRY ENTRY <

If the windows method above does NOT work for you…
Then you may have to copy all contents from the Flash Programming Tool \ DOS folder to the root of a Bootable USB disk and do the dump from DOS
( DOS command: " FPT.exe -bios -d biosreg.bin " )

Here’s the file and error received.
-------------
here

------------

It says the file is to big to upload

error.jpg

@strikercod8669 - Please use edit button instead of making multiple posts in a row, thanks
Please put file in a max compressed zip, if you still cannot upload here, then upload to any free file host, here is the ones I use most often
http://tinyupload.com/
https://uploadfiles.io/

[deleted]

I didn’t notice that Lost_N_BIOS had already replied.
BIOS 307 removes the ability to undervolt via XTU. You can actually re-enable XTU undervolt without a BIOS mod. If you want the BIOS menu, please follow the previous posts made by Lost_N_BIOS.

Extract the BIOS’ Setup_PE32 (Search for “Overclock Lock” or similar; “BIOS Lock”, etc) using UEFITool (not v0.x)
IFRExtract the Setup_PE32, find “Overclock lock” or similar, noting the VarStorageOffset
In Shell_GRUB.efi, (rename it to shell.efi, put it on USB, boot it from BIOS section):
Find current value of “setup_var [offset from before]”; should be 0x1 or 0x01.
If 1, set it to 0: “setup_var [offset from before] 0x0”
Now verify that it is now 0x0 or 0x00 by typing "setup_var [offset from before]"

Warning: Make sure the VarStorageOffset is correct for the Overclock Lock, and is not something else.