News:

Don't forget to visit the main site! There's lots of helpful docs, patches, and more!

Main Menu

Space in banks

Started by stevem512, January 31, 2016, 08:00:03 PM

Previous topic - Next topic

stevem512

Hi everyone,

I'm working on a Super Metroid hack (just to pass the time), but I have a question about the space in the banks. Bank $8F is used quite a bit (as far as I can tell based on my usage: room headers, PLMs, door out, scrolls (including special code to change room scrolls when you enter a door) and others I may have missed). Based on that, the amount of space I have in this bank is diminishing rapidly. What happens if all the free space is used in this (or any) bank?

I know you can add banks at the end of a ROM (for level data, as far as I'm aware), but SMILE needs to look for PLMs etc in $8F, so I suppose I can't use the extra banks. Unless you can add a pointer to SMILE which points to a different bank (much like how door pointers work)?

I realise the most obvious answer is "lol stop using so much space", but I'm hoping for a more positive answer that doesn't involve deleting/ mass-repurposing of existing rooms. Of course, this question applies generally to other banks, but $8F is the biggest concern right now. Any help is greatly appreciated!

Thanks,

Steve

Vismund Cygnus

I guess the main question would be, what are you using all the space for?
In general, you're pretty safe to move level/door data outside of $8F, just point to it correctly and update your level_data to match (Which by the sounds of it you already know how to do). Grime's Room Expansion Guide goes through the process step-by-step, and probably does a much better job of explaining it than I could. Plus I'm a bit out of practice.  :heheh:
Hopefully that guide will help you out though. Honestly, if you're repointing all of your level data to new banks, you should have plenty of space to work with where the old data used to be.

stevem512

So I'm mainly using $8F for PLM data, scrolls, and level headers (the latter taking up the most space at the moment as I add new rooms). Yeah I know how to repoint the level data to other banks like $E0, but it seems like there are only so many rooms I can make until bank $8F becomes full.

This may sound like a stupid question, but the level data that already exists in SM, is that in $8F? If so, by removing the old data, can I use what was there for PLMs etc, or is this space somehow restricted/ reserved?

Vismund Cygnus

Unfortunately no, I believe the level data is banks $C2-$CE. However, it's not reserved by anything - once you repoint the level data somewhere else you should be safe to overwrite it.
I'm not entirely sure how you could be using so much space in bank $8F though. You must be either adding a tonne of rooms, or something else that I'm not understanding. From my experience, a room header doesn't take up a great deal of space. That said I'll throw these two bits out here:
Kennon's Bank Logs, specifically $8F, should at least show you where free space is, and what you might be able to move to save some space.
JAM's Big Ol' Roomstate Editing Guide, which although you've probably already read through, should give you a pretty good idea of where you might be able to save some space, provided you can understand somewhat broken English.

Also using Grime's guide may be able to help you, if the primary reason you're using so much space is due the the fact that there aren't enough large rooms, you may be able to cheat a bit by expanding some rooms a bunch (the max size being 50 screens) and throw a bunch of smaller rooms in there. Provided you're willing to put the time into learning how to do room/door scrolls like a pro, you should have plenty of wiggle room to work with.


That said, I'm definitely not the most knowledgeable on the subject. Perhaps someone else knows whether or not you can throw room headers into places other than $8F. Hopefully this stuff will help you out a bit though.

Mettyk25jigsaw

There are 2 ways you can save tons of space in Bank $8F, you can use the latest version of JAM's PLM repoint bank Patch which will make PLM's load in a different bank and from the same author you can patch the scroll repoint bank patch too to do the same thing. However if you want to do the 2nd option as well you must use Smile JX, not the classic....Smile RF will read it but won't allow you to edit the scrolls without it saving the data in the former bank $8F and it won't update the data in repointed bank either, and that goes for every time you save just the level data...

You can download these 2 patches on the main site, under the patches tab...Just look for JAM's name on the heading...

Also come to think of it, for the Plm repoint bank patch, I believe you must download and patch a certain patch b4 patching the PLM repoint bank patch, But jam has that information in readme file...

They'll save about $2000 bytes for bank $8F.... :^_^:

DSO

I certainly recommend changing the bank PLMs are saved in. But be aware, if you're using SMILE 2.5 and repoint PLMs to a different bank, you still can't use the PLM +- function as it will write data to $8F still