Is there a way to change the what mob parties/loadouts on a given section or map of the game?
I was wondering because I am not sure if some the mob parties/loadouts are share between some maps and I have specific changes i would like to implement to only certain sections of the game as well as add new random encounters to certain areas.
Hm. That feature is not currently in the editor, so you would likely have to grab a Hex Editor.
I once located two databasse that link how battles are connected to maps. However, I should summarize a few things:
1.) Rooms are assigned battle collections. (Not viewable or editable in editor yet.)
2.) Battle collections list which enemy groups are possible. (Not viewable or editable in editor yet.)
3.) Enemy Groups are assigned enemies. (Viewable and editable in the editor.)
(http://i46.tinypic.com/5u2454.png) (From http://forum.goldensunhacking.net/index.php?topic=135.45)
From what we know, this database assigns maps their battle collections which can be based on storybook flags and door numbers. (Storybook flags and door numbers can be omitted by using FFFF, though.)
(http://i45.tinypic.com/izrymw.png) (From http://forum.goldensunhacking.net/index.php?topic=135.msg14704#msg14704)
These are the battle collections, as I call them, you can assign 8 groups to each map. Not to mention that in this data, you would be able to edit the likelihood a battle would occur, (You could even disable battles in a map.) As well as changing which of the battle groups are more likely to be encountered than the others.
Is there a way to manipulate encounter frequency for certain groups, or is it just a flat RNG? I think it'd be cool if we could make a stronger group that appears less often...
@ Teawater: You are like a sage or something man. This helps a lot. I need to get into hex more but i have been fairly lazy. This is off topic but would editing treasure chests be the same deal as well?
QuoteIs there a way to manipulate encounter frequency for certain groups, or is it just a flat RNG? I think it'd be cool if we could make a stronger group that appears less often...
I think that is what the last 8 bytes in that red box are for. I have a feeling a better name for what I call "Battle Collections" might be "Encounters Table"? Hm.. Not sure... I never gave a name to the table that associates maps to these, so... Hm.. I'm sorry that I'm not good with naming tables and stuff...
@Treasure Chests: You are in luck, as I already have a topic that explains how Treasure Chests work. http://forum.goldensunhacking.net/index.php?topic=2002.0
If we could make one encounter in an area very rare, then we could have 'area bosses' of sorts. It should only apply to areas that don't have story or treasure bosses, though - otherwise it's just being mean.
@ Rolina: I was thinking the same thing. I have been hard at work, working on a hard type mod for TLA in the same fashion as the one i made for Golden Sun. But I was wondering about editing monster parties on a given map because then I could do some interesting things with bosses that way.
@ Teawater: Thanks for the link to the topic. I suppose I need to use the search function more on the forums so I don't make dupe threads and such.
This part of the editor's enemies section lets you edit all enemy, djinn and boss encounters in the game. You can change which enemies appear, how many of them there are, and how they are placed. I don't think there are any shared maps. I'm not sure if you're all talking about something completely different since nobody has mentioned it yet, but to me it sounds like this is exactly what you're looking for.
(http://i1185.photobucket.com/albums/z345/NightEyeDie/enemygroups.jpg)
Please take a look at this for me, will you:
(http://i46.tinypic.com/5u2454.png)
The red box represents an entry. But I want to point to you the next THREE entries. They assign the same battle collection (x38)to the following maps: x94, x95, x96
So obviously, it is very easy to tell they are shared.
From what I gather from VanishMantle's first post, is that he wanted to separate which battles are possible between maps, and that is not possible in the editor, yet. And if it helps, he also wanted to add new encounters. But you can only have a maximum of eight at one time.
Teawater's spot on with this. I am aware of group editing in the editor. I had to use it a lot without a search function (it got aggravating trying to find specific mobs in that long list), but back to my point. Since i want to make anemos sanctum home to a ton of super bosses you randomly encounter i can't make all the ones i want to make just going off what the editor gives me since then all the fights in anemos are shared and may be shared on other maps. It makes it hard to really pull off something like that.
@ Teawater: Is there a comprehensive list of the map values in hex or does the editor already displays these?
The editor should display these. Check the Map Editor's list of maps. Don't forget to convert between decimal and hexadecimal.
Ofcourse, you could also check the debug menu in the game . (Using Code 03001238:01, and Pressing B+Start.
Do note that the memory viewer tutorials weren't based off the first entry, so you should probably scroll up to find the first ones, as well. (Atleast for battle collections, since doing an equation like: battle_collection * x1C might help you locate what you want faster.)
Quote from: VanishMantle on 04, August, 2012, 03:58:33 AM
Teawater's spot on with this. I am aware of group editing in the editor. I had to use it a lot without a search function (it got aggravating trying to find specific mobs in that long list), but back to my point. Since i want to make anemos sanctum home to a ton of super bosses you randomly encounter i can't make all the ones i want to make just going off what the editor gives me since then all the fights in anemos are shared and may be shared on other maps. It makes it hard to really pull off something like that.
Ah, sorry about that then. I reread your first post several times, but I wasn't sure what you meant with it. But then I guess you got your answer already, and you can add more variety to certain areas pretty easily if you're willing to shuffle battles around a bit and have shared encounters in some other areas... unless you figure out some way to add more battle collections.
@Teawater: Sorry, I never really looked at your first post. I've read it now, and I'm glad I did - that's some pretty useful info.
Quote from: Misery on 07, August, 2012, 04:13:57 PM
Quote from: VanishMantle on 04, August, 2012, 03:58:33 AM
Teawater's spot on with this. I am aware of group editing in the editor. I had to use it a lot without a search function (it got aggravating trying to find specific mobs in that long list), but back to my point. Since i want to make anemos sanctum home to a ton of super bosses you randomly encounter i can't make all the ones i want to make just going off what the editor gives me since then all the fights in anemos are shared and may be shared on other maps. It makes it hard to really pull off something like that.
Ah, sorry about that then. I reread your first post several times, but I wasn't sure what you meant with it. But then I guess you got your answer already, and you can add more variety to certain areas pretty easily if you're willing to shuffle battles around a bit and have shared encounters in some other areas... unless you figure out some way to add more battle collections.
@Teawater: Sorry, I never really looked at your first post. I've read it now, and I'm glad I did - that's some pretty useful info.
There seem to be a number of groups that aren't being used in the games data. I think somewhere around 20-40 on a rough estimate, which be more than enough to accommodated my needs
@Teawater: As far as the hex values go how would i be able to to tell which battles are being called to which set of battles?
Yeah, I noticed there are some unused indexes for enemy groups, but I meant battle collections, the data determining which groups you encounter. Since every map has its own pointer to a battle collection I'm guessing you could just change it to point to wherever there's free space, but you'd have to enter all the data by hand in a hex editor if you want new collections. Should be easy enough since Teawater already detailed the format, but I guess bringing up the hex editor can be a hassle if you're not used to it.
As for your question, I think I can answer that too. Look at the second image posted in this topic. Out of the numbers marked red, each pair of bytes form a value that should correspond to an enemy group index (I'm assuming, still haven't tried this).
Out of curiosity, is there something in the data to determine other things about that enemy group, like the battle music and "battle swirl" effect? It'd be interesting if we could make an area boss in the truest sense of the world, with a modified battle intro and different battle music...
Battle music is talked about here: http://forum.goldensunhacking.net/index.php?topic=1418.msg28617#msg28617
I suppose that's what you want?
As for the battle swirly effect, I haven't looked that up, yet.
Er, Teawater, I asked that here because we're talking about this specific data. I'm not certain if the music is triggered by the same data here, or if that thread's talking about some other flag the game looks for. Just pointing me at that topic, when to be bluntly honest, I can't even tell if it answered my question or not, isn't very helpful.
There is a high chance that the monster groups per room and battle music are both handled by completely different functions, and the monster loadout data has nothing to do with music itself. However, that link does go to a post with the information that you are asking about. 100% confirmed too, thanks to the Kibombo Serpent battle that I'm having right now. The information in that post should allow you to define which song plays during a given battle, which may also be defined itself. Very helpful too, if I may say so myself. It even says that it is a database in the post, but meh.
So it is linked to the monster group's data?
Reviewing my post, and reading this:
Quote0aab, where a is the random battle groups number, and b is the random battle 0-7.
You could have confirmed that music can be assigned to a random battle listed in battle collections. (That is, if I remember correctly.)
Anyway, how music is set to battles is its own separate database, soo....
...So in simple terms, the answer is no, it's not part of this data.... right?
Correct. All the data in battle collections has to do with listing encounters and their rarities,,, As well as the rarity that a battle should occur. ; The stuff that links them to maps can use the flag bank and door numbers... There is pretty much nothing else here. So everything else that we would want to look for will either be in a different database, or just coded in pure assembly, etc.
And when you see data actually link a specific encounter/battle in the battle collections... (Like music).. that really proves my point on how GS divides data too much.
P.S. = But when we go into putting this in the editor... I can see this music number being placed in the Battle Collections editor... even though it is a separate database. Atrius has done a similar thing with the Ability Editor. (With including the Animation number and argument. Yes, that happens to be a separate database as well.)
Well that sucks. It'd have been nice if you could assign songs to individual groups, so that a particularly rare encounter could get special music. Oh well.
QuoteI can see these music numbers being placed in the Battle Collections editor.
Fix'd.
As far as I'm concerned, a partically rare encounter can get its own music if you wanted to.
What Teawater said. If you are able to expand the battle song database a bit, then you could define more battles for the game to assign other songs to.
I have another question for the Battle Collections/Monster Loadouts. Is there a way to remove the flee function say I wanted to make an area boss later in the game that you can't run from? Also Is it possible to ad an event to a door that happens one time where you fight a boss (similar to how crossbone isle worked in GS1)?
EDIT: Say I was interested in changing various monster collections in the game and I wanted to make it a patch people could use in their mod how would i go about doing that without actually not messing up their ROM. Similar to the 3 reworked Curse Modifier and 9999 HP/PP patch.
So you want to figure out what triggers the "This is no time to be running away!" message? That'd be good to know...
Quote from: Rolina on 22, August, 2012, 03:38:57 PM
So you want to figure out what triggers the "This is no time to be running away!" message? That'd be good to know...
Spot on Rolina. If i could get that going then i could make some rare fights later on that would be like a true boss.
We'd probably need to know it for when we want scripted fights anyways.
I think I checked that out a long time ago. And I believe it was done via map scripts... (If I remember correctly.) Atleast in one scenario where you have a boss fight from a cutscene.
Anyway, I think it sets a RAM value. And this is what activates it. (I might need to look it up again.)
QuoteAlso Is it possible to ad an event to a door that happens one time where you fight a boss (similar to how crossbone isle worked in GS1)?
Hmm.. I suppose I'll look that one up as well. Though, I must admit, I have a feeling it is also in the map code? I may need to check to make sure, however.
Well, for such fights, it'd make sense to be in map code, honestly.
Quote from: Teawater on 22, August, 2012, 04:33:37 PM
I think I checked that out a long time ago. And I believe it was done via map scripts... (If I remember correctly.) Atleast in one scenario where you have a boss fight from a cutscene.
Anyway, I think it sets a RAM value. And this is what activates it. (I might need to look it up again.)
QuoteAlso Is it possible to ad an event to a door that happens one time where you fight a boss (similar to how crossbone isle worked in GS1)?
Hmm.. I suppose I'll look that one up as well. Though, I must admit, I have a feeling it is also in the map code? I may need to check to make sure, however.
Thanks in advance. If I knew what I was looking for I would look for it myself. Either way that would be a big help.
Well, it would be strongly recommended to have an understanding of thumb assembly. I feel that some people seem to think it's harder than what it really is.
Map Code can be seen in the Map Editor of Atrius's TLA Editor. In VisualBoyAdvance, the map code files are decompressed to 0x02008000 - 0x0200FFFF.
Anyway, a good breakpoint tool I use is VBA-SDL-H. I breakpoint on anything that is related to the data that I'm looking for, and I investigate. Ofcourse, this takes thumb assembly knowledge to know what is going on.
Sorry for having not looked that information up, yet. (Oops.)
I was not sure if I should have made a new topic or just post here so I'll just post it here since it is relevant to the topic
I want to change the battle collections in the following areas, Sea of Time (Use teleport to reach the second section), The optional Dungeon in the Gabomba Statue, Anemos Sanctum, Treasure Isle, and Taopa Swamp. The reason why I am listing these locations is because I have almost no knowledge of Hex or thumb assembly. I tried looking on my own with and tried to figure out what each of the maps were based off of information provided and just generally guessing but i can't really be sure If I am looking at the right data. I am not asking for someone to do the work for me just any kind of tip on figuring out what specifically pertains to the map and such. Basically a dummies guide to Hex Editing if that makes sense. Once I know how to find a map among the code I can go from there.
I know some tutorials/guides are up on the site but they for the most part are very vague to someone who has next to no knowledge on this sort of thing.
QuoteI want to change the battle collections in the following areas,
For maps, they are done following the below tutorial. However, I will have to take another look at Boss battles, etc.
---
1.) Okay, well, if you are wanting to find the correct battle collection entry(ies), I guess the first step is to figure out the Map Number of the room you want to edit them for.
If checking for it in game, you should go to the map you are wanting to edit, and then check address 02000420 in the Memory Viewer under Tools. (It is in 16-bit); or, you could simply check the Debug Warp Menu if you don't mind converting to hex.
2.) Then look through the list starting at 080EE6D4 to try to find the matching number.
Meh, see the screenshot I have attached. (Take note that the three map numbers in green are for separate entries, since it is 8 bytes an entry.)
;
After following the screen shot, we use the number (Ex: x12, x12, or x10) in a calculation. You can use Windows Calculator in Scientific Mode using the Hex option.
NUM * 1C + 080EDACC
NUM should be replaced with the battle collections number.
Atleast I think that's the start address of Battle Collections.
Anyway, good luck with following the tutorial.
From here on, the rest of the tutorial should be in the first reply of this topic, but for convenience here's a spoiler:
[spoiler](http://i45.tinypic.com/izrymw.png) (From http://forum.goldensunhacking.net/index.php?topic=135.msg14704#msg14704)
These are the battle collections, as I call them, you can assign 8 groups to each map. Not to mention that in this data, you would be able to edit the likelihood a battle would occur, (You could even disable battles in a map.) As well as changing which of the battle groups are more likely to be encountered than the others. [/spoiler]If you're looking in the spoiler, I believe I forgot to label the last 8 bytes as individual enemy group chances. (14 14 14 0A 05 05 05 00 if viewing via 8-bit.)
Thank you so much for this! I had an idea of what i was supposed to be doing and i felt i was along the right path but I had no real way to confirm this on my own. I'll go take another stab at it and thanks again. I apologize if I came off too harshly.
Sorry about the double post but I forgot to ask how would I edit these values in the map viewer or should i do it with a hex editor.
I managed to be able to a room's battle collections via the memory viewer but how would i find this in like say a hex editor as it seems to display the values in a different format which i am guessing is one with decompressed while the other is compressed. I am not sure as this is the first time i have really delved into this sort of thing.
You do it in a Hex Editor. When looking through the hex editor, remove the x08****** prefix. ; Everything from 08000000 to 09FFFFFF should match up to 00000000 to 01FFFFFF perfectly. (However, GS2 doesn't use all the available space and stops at 08FFFFFF, if I recall correctly.)
As for the Map Viewer's Hex Editor. It displays the Map Code in its decompressed state where it would appear in Memory Viewer. To note, all compressed data is decompressed from the ROM section to RAM, whenever needed.
Quote from: Teawater on 28, March, 2013, 09:34:25 PM
You do it in a Hex Editor. When looking through the hex editor, remove the x08****** prefix. ; Everything from 08000000 to 09FFFFFF should match up to 00000000 to 01FFFFFF perfectly. (However, GS2 doesn't use all the available space and stops at 08FFFFFF, if I recall correctly.)
As for the Map Viewer's Hex Editor. It displays the Map Code in its decompressed state where it would appear in Memory Viewer. To note, all compressed data is decompressed from the ROM section to RAM, whenever needed.
Ah I think I get what you are saying I will go through and look at it later. Thanks again so much man you have no idea how much this helps me out.
Yeah, you are welcome. I feel a bit silly now for leaving that part of the tutorial out earlier. Be happy that the entire section is actually mapped on the GBA, because some systems don't do them that way. (Like the older version of Gameboy (Probably Gameboy Color), where only part of the ROM is memory mapped at a time. (If it helps any, they use 16-bit addressing instead of GBA's 32-bit addressing.) ; The DS doesn't even map the ROM file, however, on boot, I believe they do load into RAM some Header information and ARM7/ARM9 binaries which must be used to load other data from the ROM via I/O.
x2000000 is in fact 32MB, which is the largest cartridge size for the GBA.
Other sizes are x1000000 (16MB) (Like Golden Sun), x800000 (8MB), and x400000 (4MB). I'm not sure if there are any other sizes that ROMs can be, so...
Thanks again for the info Teawater. I finally Get it now. For the battle Collections IE the groups of battles that may be in say x31 how could i edit that particular group if I wanted too. I have no problem going through the game and adjusting the rooms to consolidate battle collections but I would like to be able to preserve as much of the original battle Collections if possible while being able to essentially create new ones that I could assign to a room.
Again without a doubt I could never have been able to grasp this without your help!
EDIT:
It seems every time I try to edit something via a hex editor it breaks gets an error when I try to load it in the editor. I am not sure why it is doing though. I get the follow error after making the changes in a hex editor,
ERROR in
action number 1
of Other Event: User Defined 1
for object obj_editor_sys:
Error opening binary file.
EDIT:
Nevermind I figured out why I was getting this error -____-... I forgot to close the the Hex Editor before oping the TLA editor...
If by creating new ones, you mean adding more entries to the table, then that may require repointing the entire table. Which I think shouldn't be too difficult if the hex editor you are using has a mass-copy feature. ; You just simply copy the table to another location with enough available free space, and update all the pointers that point to the old location of where the table was. This applies to any table you want to add entries to.
-To search for pointers, you search the start address of the table. (If you are using a program similar to like say windhex, it might need to be entered in reverse byte.) For example, if your table starts at x08123456, you search for "56341208". Also the addresses of all the pointers should be 32-bit aligned. (Which means the last character of the addresses of the pointers will be 0, 4, 8, or C.) When repointing, it is strongly recommended to keep the table on a 32-bit boundary, since for example, reading 16-bits on an address ending in an odd number might not be read correctly.
Thanks again Teawater. I may hold off on that and Just work around current battle groups which should be fine as there seem to be quite a few dupes or ones that have like a minor enemy change.