DNS - Day, Night and Seasons
View Single Post
March 11th, 2013 (10:21 PM). Edited March 11th, 2013 by dkp.
First off, I'd like to thank you prime-dialga for this tool. And you know, everyone else involved at some level in the creation of this tool - interdpth, Dragonflye, Jambo51.
I would like to say though, that after so much searching I've found nothing in the way of guide to get seasons working. I'd really like to make a Tutorial, honestly, but I myself don't know much beyond getting the header inserted. I'll walk you all through my process so far, though, which gets the RTC and DAN installed correctly (or at least, functionally). I'm extremely far from experienced, actually, so there's quite possibly a number of errors in my method.
So first off, make sure the tools and everything are in place. Make sure windows is updated to the latest version, that you have .NET framework installed, that the program is unzipped and the program executable (.EXE) is in the same folder as the other folder. That part shouldn't really need be explained, but can save some time and headaches if you're sure this is right.
Make sure that pretty much anything else you want to with the hack is done. My understanding of patches and their like means that they have a set location where they insert or change date; inserting the DNS before patching can lead to parts of the DNS getting overwritten, and, worse case scenario, the rom being rendered nonfunctional.
Next, back up the rom you're going to use.
Open DNS, click update whether or not a update is likely. Then click File>Open , and navigate to and open the file.
Next, using a free space finder - say HackMew's FSF tool - open the same rom. Back on the DNS program, right beneath RTC it should say something like "Offset(needs 0x### Bytes)".
To be safe, on HackMew's FSF type the number represented by ### into the lower right box, which should convert the number to a decimal.
For safety reasons I round this number up to the next highest power of two. So if the rtc needs 3D0 (976) bytes, I round it to 1024. Later the DAN I believe needs like 300 bytes so I rounded that up to 512. (powers of 2: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192....)
On HackMew's tool I then type 1024 into the box next to "needed bytes"; the skip interval then should update automatically (or at least after pressing tab).
The free space byte, at least as far as I'm aware for the pokemon gen III games, is FF.
The default offset to search from, for me at least, is 800000. Based on my knowledge, which is limited, it shouldn't really matter as long as the freespace byte is correct and you have enough room, but I could be gravely false here. My lack of understanding here is why I round up earlier- fear.
Now, finally, I click "Find". It should generate a number. I then click the copy button, go back to the DNS program, and replace the default offset with the new number. Then click "insert RTC". Now you should have the RTC installed.
Next, alter the palettes for the DAN as you see fit; I like the default setup, so I go with that. But generally, the time dials correspond to the times defined in the quadrat to the bottom right. For a 24 hour clock, which the DAN uses internally, 0 is midnight, 12 is noon, 23 would be 11 at night. To get the proper range, add twelve to you PM times (0 to AM). The default times should be okay (=work for me), but for more realism you should adjust them accordingly; twilight lasts a long time under the default circumstances.
The radio dials (circles that can be selected but not others) control what set of palettes you're using, whether OW (overworld), background, sprites, attacks, etc.
Before you go much further, you need to already know if you've done something that would alter the the way RAM is read and interpreted by the game. If you haven't or don't know (in which case you more than likely haven't), the default value seems to work. Otherwise, adjust to an address the game isn't using, ideally with a free byte afterwards as well (for the seasons).
Going through the same process with the RTC, to insert the DAN, first I type the needed bytes into the FSF to convert, change the values accordingly (and probably hypercorrectness (based on false assumptions) I also round up to the nearest power of two so things are aligned properly), and get a new value. I copy this over.
Pasting the value into the box beneath Offset, I then double check that everything is right, and press "insert DAN". For me, this is about as far as I can prove to have gotten things to function.
So at this part, I have the DAN installed. Good, fine. I can open it up and play , everything's fine, the battles work, it's dark when it's dark, etc.
But now I get the part I don't understand. I do the same thing to get free space for the seasons-header, and find the next interval (thanks to HackMew's tool), and put that into the header offset box. I check that the RAM offset for the status byte is one more than the DAN, change the season months so they line up how I want them to (Kyushu (=Hoenn) is ecologically the same as where I live, minus monsoon season, and Kanto is easy to research) and insert.
So at this point I should have the seasons half-installed with a blank header, yeah?
At which point I've tried the built-in tool, which should load the (blank) header I've installed. If I used this accordingly, I'd click "create new one" > "add new set" and put all the proper tileset offsets for each season in place before writing to rom. But this requires that the tilesets for winter, summer, and autumn for the "normal" tileset are already entered and you know where they are. If you're trying to create seasons as opposed to import them, say, at then end of the file and repoint the header, I'm lost - and I don't even know of a tileset to import anyways. Actually, it would be nice if someone were to point me to a Kanto and Hoenn
Evidently AdvanceMap 1.9.5 has support for this DNS. It's a beta though so I don't expect much. So I open it up, opening the game with it. Already I see the new tools appearing. I open up the map I want to create seasons for (arranged by tileset for lack of redundancy; I'm not creating new seasons for both Petalburgh and Littleroot, for example).
That should be right, right? I go tools>season editor. It found my blank header. Pretty cool. So I click create.
Here I create something for tileset 0 (which all the maps upto tileset 12 seem to use) and click okay. I tend to press save instinctively, so there's that. then I go "create new tileset" and when I start with zero with Pallet town or Petalburg loaded, the dialog comes up with a dial hardset to tileset 1, season defaulting to normal (I change this to Autumn) and Options link block data and behavior data.
I tend to click those; but no matter what, regardless of whether I do or not, I end up with something non-functional. I end up with screwed up tilesets - usually all of the tiles for that map shift around, only load partially (like only the bottom layer of a block), or it duplicates the default tileset in a way that, say for Petalburg, gives me two sets of pokecenters and no hedges. Or better yet, utter blackness. If I do it for tileset 1 (which is the 2nd for that map) exactly the same thing happens.
So what's the big deal? Just import corrected tilesets, palettes, etc, right? Exporting maps, blocks, pictures, palettes, and everything from a clean rom works (or seems to), but importing does absolutely nothing at best and corrupts clean-looking (actually duplicated) tilesets at worst. If I use an expanded rom (expanded with FFs via a patched XSE), it actually just crashes advancemap.
So, where does the problem lie? Is it me? Is it a limitation of the DNS? Is it advancemap? A little bit of guidance would be appreciated - and it seems there's nothing as far as a guide goes for beyond this, German (which got me this far, but as it's not my native language maybe my comprehension is simply too poor) or otherwise. Everything on here when I search for seasons looks to be an unanswered question, something about an asm routine, or correcting a problem that simply isn't a problem anymore. Anything as far as a tutorial for tile editing goes only teaches about replacing an existing functioning tileset, which is nice if you intend to do everything from scratch and make a brand new everything, but not if, say, you're making seasons for a personal (I've lost track of everyone I'd have to credit to redistribute, sorry) aesthetic hack (you know, play a decapitalized DNS Emerald or Firered with GenIII's slightly derpy-looking Torchic replaced with gen V's for nostalgia without annoyances).
Joined Sep 2012
View Public Profile
Send a private message to dkp
Find all posts by dkp
Find threads started by dkp
Ignore Posts by dkp