PDA

View Full Version : Development: Secret Bases


Emcitement
July 28th, 2011, 12:12 PM
This might sound newbie but is there a way to lift the decoration limit in secret bases?

I mean there's over 100 different items you can use and the bases generally have quite a lot of space.. however the maximum amount of items you can put down is 16.

It's quite obnoxious.

Optionally, I can hack the actual map and put the items in there that way.. but then I won't be able to change the layout in game whenever I want.
:[

Is there a way to raise the limit of 16 to something much higher?

Jambo51
July 30th, 2011, 12:13 AM
Unfortunately, the answer is a no. The limit of 16 is imposed by the lack of available RAM for the ROM to store sprite locations in. On this thought, the limit should actually be 15, as opposed to 16, because the player counts as a sprite too.

The only way to safely get around it is to use multiple maps (cleverly used connections or such) or to repoint the sprite storage location into a new save block area, then raise the limit.

This is impractical in many ways though, and there are better/more important things we can repoint into the new save block, like trainerflags, seen/caught flags, variables etc.

Emcitement
July 30th, 2011, 12:02 PM
I thought it might be something like that, but if that's the case then how is it possible to exchange records with other players and get their secret base items into your game?


What would be the best method for adding more items that you suggest?

Full Metal
July 30th, 2011, 12:43 PM
He doesn't suggest.
Record Mixing fills in those slots available in the memory.
in C++ terms:
class Base{
private:
sprites sprite[16];//Predefined array size. Therefor, the Base does not support dynamic memory. So when allocating memory for a base, the game only allocates enough memory to allow for information on 16 sprites.
};
std::vector<Base> Bases;
[ read what's bold and red. it's important. ]

Unfortunately, the answer is a no. The limit of 16 is imposed by the lack of available RAM for the ROM to store sprite locations in. On this thought, the limit should actually be 15, as opposed to 16, because the player counts as a sprite too.


The method you're speaking of is:
The only way to safely get around it is to use multiple maps (cleverly used connections or such) or to repoint the sprite storage location into a new save block area, then raise the limit.


He doesn't suggest this because:
This is impractical in many ways though, and there are better/more important things we can repoint into the new save block, like trainerflags, seen/caught flags, variables etc.

I'd say he answered your questions fairly well already. :\

Emcitement
July 30th, 2011, 02:11 PM
He doesn't suggest this because:He says there are better things that can be made with that memory but I'm not making a hacked game or anything. I'm just making small adjustments to the raw roms to improve the basic gameplay for my own+friends personal entertainment.

Deokishisu
July 30th, 2011, 08:23 PM
Because the sprites are player placed, there's a technical limit on how many "dynamic" sprite locations can be saved. Even if you were to expand it for your rom, there's no telling what mixing records with an unhacked game would do in terms of placing the extra decorations in your base that appears in their game.

Full Metal
July 31st, 2011, 04:38 AM
^this^ is a very good point.

Emcitement
July 31st, 2011, 11:15 AM
Because the sprites are player placed, there's a technical limit on how many "dynamic" sprite locations can be saved. Even if you were to expand it for your rom, there's no telling what mixing records with an unhacked game would do in terms of placing the extra decorations in your base that appears in their game.I agree. I don't plan on mixing records with an unhacked game. I only play the game with my friends on an emulator. We usually play it on the same screen, all the games going at once. Everyone's rom would be updated accordingly.

So if there's a way to expand the base item limit and it was like that in every single rom, then I imagine the records would be able to function properly.

If not, then is there a good way to edit the map? I've heard of issues of not being able to leave a secret base after adding things to it through a map editor.

Deokishisu
July 31st, 2011, 02:25 PM
Well, there is an option I brainstormed last night. You could keep the limit of 16 "normally added" secret base items. Then maybe manually script up a way to place more, but those would only be on your game, that data wouldn't be transferred when mixing records.

So you'd have to get a script that gives the option to place more OWs dynamically, and then save them through use of flags or variables or something.

Though I don't know if 16 is a "display at once on screen" limit or like a "can't save any more cause there's no more space in memory" limit.

OR: You could add more sprites AS secret base items, but put two decorations in one sprite. So for one OW, you could put two decorations in it. You'd just have to make sure the palettes are similar. So two blue Pokemon could be on one sprite. That way, you could give the illusion of having more base items, when really you still have the 16 limit. That also would work around the 16 display limit, if in fact I was right in assuming that was what Jambo implied.

Emcitement
August 5th, 2011, 11:43 AM
Hmm. I was wondering that too. The sprite idea is pretty good. Maybe I'll try something like that.
Since I do plan on transferring records with a couple friends I'm trying to keep it pretty simple.
But I'll look into the more complicated methods for this too like the others you mentioned.

Then again, in the end I might just suck it up and deal with 16. xD

Thanks!

And thanks to everyone else too. I appreciate it.

Edit:
I decided to just go with map editing since it'll only be with a few friends. I'll just have the bases edited on the rom we all use.
I edited my base to my likings and put in some items I know I wouldn't really want to change.
Worked out fine.

I have one little issue though.

I removed one of the rocks in the base - I'm sure the rocks are basically to represent spots for an NPC to appear in other people's games when you want to fight the person in their base.
I was using AdvanceMap by the way. I moved the trainer sprite to a completely different location and then removed the rock.

Yet, I still can't put items in that spot?

Anyone know how to fix this? It isn't the worst thing because I can always just use the mapeditor to place something there, but I'm just wondering what's up with it.

DavidJCobb
August 5th, 2011, 04:55 PM
Yet, I still can't put items in that spot?

Anyone know how to fix this? It isn't the worst thing because I can always just use the mapeditor to place something there, but I'm just wondering what's up with it.Does it use a different movement permission?

Emcitement
August 10th, 2011, 03:28 PM
Does it use a different movement permission?Nope! I couldn't find anything different about the space at all so I have no clue.

DavidJCobb
August 10th, 2011, 03:37 PM
Nope! I couldn't find anything different about the space at all so I have no clue.
I wonder if it's hardcoded into the (for lack of a better phrase) Secret Base engine, then...

P.S. the 16-sprite limit may be both functional and graphical. I don't know if this is true for RSE (it probably is), but in FR/LG there are a max of 16 background palettes (all used for the map and for dialog box borders) and 16 sprite palettes at any given time. Of those sprite palettes, one is used for the hero and another for their reflection in water; four are used for normal OWs, and four more for their reflections; two or three seem reserved for map effects (grass, beach footprints, etc.); and two are always unused.

xephos
January 22nd, 2012, 08:41 AM
I've heard of issues of not being able to leave a secret base after adding things to it through a map editor.

Can you confirm this? Now it make me kinda scared to do it.