Many people are using the Black and White style of TMs, where a TM is infinite use, cannot be disposed of, and you only ever need one of them. This is great, of course, but why have the TM/HM pocket be a thing at all then? Why not move the TMs to variables or flags or some other form of data that gets stuck in the save and access them from an item in the bag (like, I don't know, the TM Case?) and open up those 64 item slots for something else? These two might not be feasible, but they'd be great quality of life changes for the player.
Speaking of infinite TMs, perhaps getting true B/W functionality where the TMs don't replenish PP is a good idea. Otherwise, TMs can basically be used as free Ethers. Not having this with infinite TMs is a pet peeve of mine.
I'd like a special that checks a Pokemon's learnset, TM/HM compatibility, Egg move list, and Move Tutor compatibility to see if a Pokemon is capable of learning a move. Maybe code in that if a Pokemon can learn Sketch, it acts as if they can learn any move being checked for so that Smeargle doesn't have to constantly be scripted as an exception. Some may prefer Sketch not be considered that way, so maybe document how to disable that extra bit of ASM if you decide to take this idea and run with it! QoL change for hackers that could be used for a lot of different things.
...
A flag that prevents catching Pokemon until the flag is turned off would be well received. Whether it disables throwing any balls or allows you to waste them like with the Marowak battle is up to preference, I suppose. Is this already in the Battle Engine?
Adding onto that, a flag that disables Pokedex registration for as long as it's set would be hugely appreciated as well. There are times when I'm giving the player a Pokemon behind the scenes that I don't want showing up in their Pokedex (I bypass this by giving the player Eggs and then taking them away before giving back control, but it's still annoying!), or when they're getting a Pokemon for a minigame or something and will be giving it back later. QoL for hackers.
I'd like a flag that disables whiteouts when the player loses a battle too. There are story events that would benefit from being able to continue fluidly if the player loses, as well as minigames that I'm sure hackers don't want to jump through hoops to continue with logically if the player fails. Whether or not the game heals the player's party automatically when the player loses when this flag is set, or leaves it up to the hacker is up to you if you decide to implement this. Another QoL. For some story events, it only makes sense to continue after a loss. Making that easier on us would be much appreciated.
I see that you did some work with modifying the game's Oak/Birch introduction sequence in the past. Could you perhaps give us the means to move the whole dang thing to the Overworld so that we can script it out with a levelscript instead? We would need a way to assign a temporary name to the player, and then have commands to choose a gender and name them from the overworld. This way, the whole intro could be done with an easy combination of sprites, tiles, and normal dialog scripts. Easy to edit, easy to get to, no hassle. Would be nice to have the ability to call naming and gender choice functions from the OW regardless.
I'd like a couple more skins for the ingame clock if possible. I use the boy and the girl ones in the player's rooms (depending on gender, of course) but I'd really like a generic clock skin available for other houses, and maybe unique ones for the Pokemon Center and minigame places. Definitely a low priority, but nice to have. Speaking of the clock, could we perhaps put the time on the start menu somewhere? Or somewhere else easily accessible? For example, in the Safari Zone, when you pause the game, there's a window in the top left corner in addition to a modified safari start menu. Could we enable that everywhere else and slap the time there? Perhaps time and location name? Probably just a hook and a table.
Speaking of the Safari Zone, JPAN fixed the Safari specials and gave his users the ability to add and remove steps and Safari Balls. This would be AMAZING for someone who wants to do a sprawling Safari Zone in their hack. A feature I haven't seen before that would be great for the Safari Zone is localized roaming Pokemon. Imagine having a rare Pokemon that roams only through the Safari Zone and changes every few days? The hacker could tie that to all sorts of stuff! The variable connections could allow hackers to swap areas like in HGSS' Safari Zone too. Really, the possibilities are endless. Any Safari Zone improvements would be welcome. Even stripping out the PokeBlock Throwing (seriously, who does that? Why not put them in the feeders for specific natures instead?) and making it more FR-ish would be nice.
The Safari Zone also changes the selections available on the battle menu. Control over this would be great for minigames when combined with other things. Want to port Battle Bingo in from XD? You can do it now! Have a minigame where you're fighting non-Pokemon, or you don't want the player to have access to regular menu items? This is your thing! I'm sure that this would be difficult if the hacker wanted to do more than print messages to the textbox when selecting menu items, and probably borderlines on the unfeasible.
...
The Wally catching a Pokemon tutorial is pretty bland. I'd love to have more control of what moves he chooses and what he says and does in his tutorial battle. Heck, this could allow us to have cinematic battles if the auto-pilot and backsprite switching functionality can be carried over into a Trainer battle version of this. Also, I feel like the game must save the player's items somewhere during this in order to show Wally's bag. Finding out how that works may be the key to enabling other bags, or at least cutting the player off from using items by saving their bag and then emptying it in certain areas. But seriously, cinematic battles would be great for establishing a villain's power early on.
Textboxes that pop up and dismiss themselves as you walk by a person event would be kind of cool. In XY this happens when passing by groups of people in Lumiose. It even happened in BW in Castelia when you bumped into certain people. Maybe making the textbox smaller and appear at the top of the screen would be less jarring to the player than opening up a regular textbox that they could move with around with. With timers, we could even have events where the player is caught eavesdropping if they stay nearby for too long. This could even be used to display information without interrupting the flow of play. Have a timed minigame? Use this textbox as a space to push alerts, without pausing the action. "30 seconds left!" Walked over a tile that poisoned your Pokemon? Here's an alert! Need a textbox up all the time in an area? Use this one! The possibilities for this are endless.
Speaking of textboxes (and tying into the previous idea), giving us an escape character that auto-progresses the textbox as if the player had pressed A would be great. Synching dialog to events moving around and happening without putting a halt to the whole deal to wait for the player to press A is crucial for certain events, in my opinion. It could also be used for the TV or a Radio program or something. Seems feasible for a resource like this, and useful for certain story events.
...And speaking of timers, I'm not quite sure what Emerald offers in the timer department. All I know is that resetvars dumps the clock time into variables, and I've been using that to calculate timers. I'd like a flag or a special that allows me to set a timer more easily. Perhaps the hacker puts the time that needs to elapse in LASTRESULT and then the special lifts it, calculates the time that the timer needs to go off at by adding it to the current time (which would need to be coded to protect against overflow), and then a walking script checks for the current time against the timer time at every step. If it is possible for it to check every frame, that would be better. That way, the player couldn't sit and wait to walk until the clock strikes 00:00:00 to have extra time. (I'm assuming the walking script would check if the current time is greater than the timer's stop time. If there's a better way to implement it, a walking script would probably more feasible than something the checks the time every frame.)
The ability to confuse directional inputs might be a good idea for a gym puzzle or Trick House room or something. What if pressing up made you go left? What if the inputs were randomized again after a few steps or when you step on a certain tile? Definitely low priority, but cool nonetheless.
Being able to assign items to L and R as well as select on the overworld would be nice for the player. Or even have the hacker assign them to something else. Does R bring up a multichoice box for your fishing rods while L activates a script that checks your party for a Pokemon that knows a field move to use in a context sensitive way? Being able to use these useless buttons in the overworld seems like a no brainer and super useful.
A Running Shoes toggle like in HGSS would be another great quality of life change for the player that could be assigned to hypothetically usable-in-the-overworld LR buttons. Could this be done by looking at how the player character's walking speed is determined and then manipulating that instead of forcing a B press? If so, could we change it so that when the player has toggled running on, holding B forces them to walk instead? QoL change. Maybe just pressing B in the OW (without anything else happening) toggles it instead of LR.
The ability to assign battle weather conditions to OW weather would be nice. That ash snow should totally make it hail when entering battle. Alternatively, fixing the 3 snowflakes weather effect so that it constantly and consistently spawns its snow particles would be nice. I know that weather in the OW is poorly documented, but being able to clone a weather effect's movement and change its particles without sacrificing the original weather would be really nice. The movement effect of the sandstorm weather would create a killer blizzard weather. Making it so that the OW sprites and two-layer tiles on the map are covered by fog would be a quality of life change for hackers too, if you're considering making any weather changes. In addition, the intense sunlight weather for Emerald actually switches between thunderstorm and sunlight. Separating out the intense sunlight and making it its own weather would be great. Battle-ish related? May not be relevant here.
Some people may like being able to force the game to only generate perfect IV'd Pokemon by setting a flag. As long as PID and nature variance are preserved, it'd be a nice option to have.
I personally would like to give Battle Frontier/Battle Tent opponents actual text strings instead of easy chat garbage. Anyone decapitalizing the game is going to be making the easy chat system a wreck anyway. Could their data be restructured so that the easy chat choices are pointers to text strings instead? Definitely something I could see as part of this resource.
Match Call needs to be tackled. Other than getting calls when Eggs are ready, I can't really think of anything cool to do with it. I guess being able to force calls automatically when certain conditions are met would be nice. Perhaps today is the day that has been randomly chosen for a special contest to occur, so the player gets a call forced on them 3 minutes after starting the game back up, or after walking a certain amount of steps, or opening a certain number of textboxes, or something. Calls would need to be staggered in this way to keep the player from getting multiple calls in a row if multiple conditions are met at once. Maybe certain minigames or events have cooldowns and the player could be called when they're ready again. The hacker could do a lot with this, I think. (In the base game, Roxanne calls the player after getting Brawly's number automatically. You may want to look at how this is done if you choose to implement this.)
The ability to make OWs and tiles slightly translucent would be useful for lights at night, ghosts, flashbacks, windows, etc.
JPAN made multichoice boxes whose options were customizable from the script that was calling it. Honestly, why Gamefreak didn't do it that way in the first place is beyond me, but please please please port it. My goodness, is it useful. And so freeing. This is literally the thing I want most for Emerald. Like, why did GameFreak do them the way they did? So awful.
Ash-Greninja
Gogotto ridingu imprementu