I have come up with an idea on how to make day/night Pokemon. I've figured everything out except the ASM, which should be simple. First, there is a script in game. It checks if it is day/night. To make this work, you use the DNS (Day Night Seasons) tool.
The script so far is like this:
#org @start
comparefarbytetobyte 0x(offset in DNS) 0x0
if 0x1 goto @night
comparefarbytetobyte 0x(offset in DNS) 0x6
if 0x1 goto @night
load the grass wild data for the map to something
load the grass wild data for the map to another something
callasm 0x(offset to asm + 1)
end
#org @night
load the old wild data to something
load the new wild data to another something
callasm
end
The ASM script would replace 48 bits at the old grass data for the map with itself if it's day or a different set if it's night. The wild data is in this format:
AA BB CC CC (x12 from common to rare)
A = min lvl
B = max lvl
C = species
For species with hex values like 0x123, they're put in as 23 01. All others are ## 00.
You can find the wild data for each section by doing this:
1. Go into wild data in Advance Map
2. Hit Expand
3. Go to the offset shown for grass
4. At the offset, the first value you see is the encounter. Next are three 00's. Then is the three bit pointer. Reverse it to find the offset for the grass Pokemon data. This will be used for the "old data" as stated before.
The ASM script would take the new Pokemon data and replace the old data using offsets defined in an XSE script or even ASM if that doesn't work.
Thanks a ton.