The SDK, in "Nintendo GameCube Optical Disc Drive Guidelines Version 1.41.pdf", section 5.3, says that the recommended size limit is 4 MB, to help curb loading times, and vanilla Melee is already 4.21 MB (now 4.27 with this). We don't want to go too crazy with it though, if we care about loading times. If we figure out more about this, we could most likely load even larger DOLs. I haven't double-checked it, but logically that should be correct even for this custom DOL, since its new section is built exactly as a real one would be. I'm not sure what exactly is "reserving" the space where the DOL is being placed, or how the system knows not to place anything into where the DOL will be, but I know there's a global _OSDOLSize that the Apploader sets. Please let me know if you test this, so I can update this post. I haven't retested larger DOL areas yet, so I don't know if the problem I mention above is still relavant. While it worked on Dolphin, it did not work on console. Update: The original file that I uploaded, NTSC 1.02.01, had an error in it (Data 8's RAM offset was incorrect). The section I've defined in this current file I observed as OK after booting the game and loading some matches in some 1 Player & VS. But I saw RAM being overwritten well before that (and I don't remember it being the BSS section). The apploader and the SDK both define the upper limit to usable RAM space for the DOL (DOL_ADDRESS_LIMIT) as 0x80700000. I tried adding a larger area at first, but I found that, even though it appeared to have loaded fine, the area was soon later overwritten in RAM by other things. So basically I just defined a new region in the file header to follow immediately after the last vanilla region. In any case, if you don't have any Gecko codes selected and/or don't plan to use them, then the codelist and codehandler won't be added to the DOL, and all regions will be used for normal custom code as usual. You now have space for 37% more Gecko codes, plus, the space that was taken by those before can now be used for standard injection mods.Īnd again, this is merely recommendation, and you could instead rename those regions if you'd like (all of the names are defined in the settings.py file), or even combine them to be one. " 'codehandlerRegion': 'Aux Code Regions'" to " 'codehandlerRegion': 'Gecko Code Handler Storage'".Īnd that it. " 'codelistRegion': 'Tournament Mode Region'," to " 'codelistRegion': 'Gecko Code List Storage'," and change, Here you can specify the name of the region to store the codelist/codehandler in. Scroll most of the way down to about line 116, where you should see some Gecko configuration info. You can open it in any standard text editor. To change the save locations for those items, so that they're stored in the new regions of this DOL when Gecko codes are used, open the settings.py file, found in the root directory of MCM. This is because, if you use Gecko codes, I recommend changing the save locations for those to use these new areas, since both of those items are relatively large and must be contiguous. This file has been planned for, so this space will already automatically show up in MCM's Code-Space Options menu when this DOL is loaded, as "Gecko Code Handler Storage" and "Gecko Code List Storage". Making further iterations of this such as to add more space might be possible, but I'll go into that at the end of the Documentation section below. This is not compatible with versions of MCM before 4.0. But the amount of space we currently have defined as "free" is only a few percent of the total size of the file, which wouldn't make for a big difference if we removed it. That's 84% more codespace for us to use!Ĭonceivably we could also shrink the DOL, to reduce the game boot time. The DOL above has been expanded to accommodate 0圎900 more bytes of free space for custom code, for a new total of 0x1FDB0 bytes of space. (I'm not counting the space CrazyHand uses in that number, since the end point of the region it overwrites is not set.) This is how much space you would currently have available in MCM if you enable all of the default custom code regions. That is, codespace that's safe to be overwritten for custom code. This has been fixed and tested, and works on both emulator and hardware.Ĭurrently, out of 0x438500 bytes of code in the original NTSC 1.02 DOL, we have defined a bit more than 0x114B0 bytes of it as "free space".
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |