G/S/C "No windows available for popping." explained!
Posted by: GARYM9
Date: 2010-07-28 12:07:18
Then I noticed a value that changed while opening the start menu, Crystal: CF71. It changes from FD on overworld to 83 on the start menu. I edited the 83 to FD while on the ground/first floor of your mom's house and then exited the start menu. The message was forced to appear. Seeing if this was location reliant, I checked other areas and they had different results, mostly never giving the message after multple attempts. I then accessed the option that caused the popping message and saw it also changed Crystal's CF72 from a DF to a DE.
Thinking that the message may need two variables to work all the time, I reopened the start menu and changed CF71 to FD and CF72 to DF. I exited the menu and was rewarded with a "No windows available for popping." message.
It seems that the message is not due to text boxes or signs as they do not changed these values. It has to do with option menus such as the start menu and the PC. The popping message is an error trap used for debugging purposes to make sure window opening/closing in menus worked properly and prevent game effecting glitches from occuring. In Crystal when I only changed value CF71 in New Bark Town, the game seemed to lag heavily on the start menus.
In Gold/Silver, only one byte is changed by start menus/PC Menus so only one byte needs to be changed in order for this message to appear. Only address CEA8 must be changed to FD for the message to appear. Crystal has more security as it uses 2 bytes to check overworld/menu option status. Gold/Silver only use one.
Glitches/WTW Glitches cause this error message to occur by trying to open a start menu window then instantaniously close it and reset the values before the window was closed. Part of the error trap is that controls lock.
Values for Crystal that cause this message and what they need to be changed to:
CF71: FD
CF72: DF
G/S Values that need to be changed to cause this message:
CEA8: FD
Reason:
The values cause parts of the code to disagree with each other triggering the error trap which gives the message.
Mystery solved.(?)