News:

As a consequence of the forum being updated and repaired, the chatbox has been lost.
However, you can still come say hi on our Discord server!

Main Menu

GS: Dark Dawn (U) Data List (WIP)

Started by Daddy Poi's Oily Gorillas, 01, April, 2012, 05:10:30 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Daddy Poi's Oily Gorillas

I'm in the middle of hacking Golden Sun: Dark Dawn to learn a bit about its data, so I guess I can post what I know in a very brief manner.

The addresses are in RAM. (Since this data is compressed in the ROM.) The format of its compression is one that Bowser's Inside Story also uses. (Though, BIS has at least 2 compression formats... I only know one that Dark Dawn uses right now.)


We'll start off with ROM locations, most of the data is compressed.

00004000 = Boot Data (The compression probably starts at 00008000?): There should be a very large compression block with many databases in it: (All of the following should be compressed)
00042BF0 = Item data (Estimate location)


Now for RAM locations!

02000000 = The boot data should be placed here and decompressed.  It's very large, so it should end somewhere pass 02064A4C for sure.

02001158, ~0200146C = Calculate keypad info from 04000130, and place at 020791C8. (?)

02003FBC = get pc/enemy ram address (0-7 for pc, 80+ for enemy; 8 and 9 might be Isaac and Garet during tut battle, but I do not know.)

02005D9C = Recalculate stats

02010820 = Address to keypad info

02017628 = Check keypad 0x40, 0x80, 0x1
0201778C = Address to keypad info

0201A7E4 = Address to keypad info

02023B40 = Address to keypad info (For check on 0x100, 0x200)

02026BB4 = Address to keypad info (For check on 0x40)

0202BE34 = Address to keypad info

02149DDC = Address to keypad info (This is in thumb code.)

02061898 = Everything before here should be code....

02064A4C = Item Data!
02064A68 = ? (Long Sword)
02064A6A = Price
02064A6C = Icon
02064A6E = Type (0=Item; 1=Weapon; 2=Armor; 3=Shield; 4=Head; 5=Boots; 6=Ring; 7=Other)
02064A6F = Flags
(01=Curses when equipped;
  02=Can't be removed;
  04=A rare item?;
  08=An important item;
  10=Carry up to 30.)
02064A70 = Equipped by?
02064A72 = Attack
02064A74 = Defense
02064A75 =
02064A76 = Use
02064A78 =
02064A7A = Number of unleashes.
02064A7C = Unleashes offset.



02077658 = Party Data! (This can be found compressed with other data at around 0004C8BB in the

ROM.)
02077658 = HP Growth
02077664 = PP Growth
02077670 = Attack Growth
0207767C = Defense Growth
02077688 = Agility Growth
02077694 = Luck Growth (8-bit)
0207769A = Elemental Levels (8-bit) (Ex: 54, 3, 1, 2)
0207769E = Level
020776A0 = Items (x8?)
020776B0 = Unknown (*9 of xFF, *1 of 00)
020776BA = Innate Psynergy (x8?)
020776CA = Level/Experience required? (I have a feeling this is in percentages of 20, 25, and 30.)

---

020791C8 = Keypad info

Now for the PC data that is used for in-game play.

0207B16C = This is Matthew in 16-bit ASCII.

0207B194 = Level

0207B1BA = Max HP
0207B1BC = Max PP
0207B1BE = Current HP
0207B1C0 = Current PP
0207B1C2 = Attack
0207B1C4 = Defense
0207B1C6 = Agility
0207B1C8 = Luck
0207B1CA = 0001
0207B1CC = 0000
0207B1CE = Venus Power
0207B1D0 = Venus Resist
0207B1D2 = Mercury Power
0207B1D4 = Mercury Resist
0207B1D6 = Mars Power
0207B1D8 = Mars Resist
0207B1DA = Jupiter Power
0207B1DC = Jupiter Resist
0207B1DE = Psynergy (8000 = Class Psynergy (Non-innate) ; ...)

0207B21E = Items (F800 = # ; 0400 = Red X on icon. ; 0200 = Equipped ; 01FF = Item)

0207B2C8 = Karis
0207B424 = Tyrell
0207B580 = Rief
0207B6DC = Amiti
0207B838 = Sveta
0207B994 = Eoleo
0207BAF0 = Himi


02220B80 = Text bank (Pointers.)
0223B2E8 = Last text string.

0223C310 = Text bank 2. (Starts with battle-related text, but later may include other text?)
0225F922

0225F948 = Text bank 3. (Place names.)
022602CA
Golden Sun Docs: Broken Seal - The Lost Age - Dark Dawn | Mario Sports Docs: Mario Golf & Mario Tennis | Misc. Docs
Refer to Yoshi's Lighthouse for any M&L hacking needs...

Sometimes I like to compare apples to oranges. (Figuratively) ... They are both fruits, but which one would you eat more? (If taken literally, I'd probably choose apples.)
Maybe it is over-analyzing, but it doesn't mean the information is useless.


The only GS Discord servers with significance are:
Golden Sun Hacking Community
GS Speedrunning
/r/Golden Sun
GS United Nations
Temple of Kraden

Can you believe how small the Golden Sun Community is?

2+2=5 Don't believe me? Those are rounded decimal numbers. Take that, flat earth theorists! :)

Crystal Sonata

#1
Epic xD. Maybe with this, we can begin merging Dark Dawn into the editor (Or at least a separate version since the formats are probably a lot different). I can just imagine Mercury making their hack based on dark dawn xD
Anything I post here is solely my opinion, and is not proven fact, unless I specify otherwise.

If I say anything that offends you, grow a set.

Aile~♥

#2
That could be fun. Problem is, you then have to worry about what happens when a character doesn't have the right animation set. Like, what happens if Himi tries to use a bow? Does she use one of her other animation sets? Does she just t-stance? Does the game freeze? And there are a lot of questions like that for other things than just that. What happens if enemies try to use unleashes, or PCs try to use enemy-only skills, like, for example, Chaos Upheaval?
[sprite=16, 6, 0]:P[/sprite]

Lloyd: Easy as pie.
Genis: Sweet!
Presea: ...Sweetie pie...
Zelos: Let's not start on this again...

[spoiler=epic mindscrew][/spoiler]

Crystal Sonata

Sheesh...It does sound like trouble. We would have to add extra animation sets, which I know would not be easy.
Anything I post here is solely my opinion, and is not proven fact, unless I specify otherwise.

If I say anything that offends you, grow a set.

Aile~♥

And also, can moves work with the wrong weapon type? Like, would Matthew be able to use Barrage with a light blade? What happens if you try to use Triple Burst while wielding a sword? That can't go over well, unless the character randomly decides to default to the stabbing animation.
[sprite=16, 6, 0]:P[/sprite]

Lloyd: Easy as pie.
Genis: Sweet!
Presea: ...Sweetie pie...
Zelos: Let's not start on this again...

[spoiler=epic mindscrew][/spoiler]

Salanewt

I don't know for sure, but I remember forcing Matthew to equip a set of claws by editing RAM, and he seemed to hold and use them correctly.

Also, nice list you've got there!
Oh yeah baby, £ me harder.

Fusion is just a cheap tactic to make weak Adepts stronger.

Yoshi's Lighthouse is a hacking website in progress. Why not check it out if you like Yoshi or the Mario & Luigi games?

Aile~♥

So everyone has access to all animations? Or everyone has animations for all weapons just because?
[sprite=16, 6, 0]:P[/sprite]

Lloyd: Easy as pie.
Genis: Sweet!
Presea: ...Sweetie pie...
Zelos: Let's not start on this again...

[spoiler=epic mindscrew][/spoiler]

Salanewt

#7
I don't know, I was just randomly trying it because I was checking out the Djinn for someone, so I accidentally stumbled upon it while searching for that data. However, my guess is that the PC modelss are able to recognize where the hand polygons are supposed to be, and each weapon model just positions them or something. Teawater might know though.
Oh yeah baby, £ me harder.

Fusion is just a cheap tactic to make weak Adepts stronger.

Yoshi's Lighthouse is a hacking website in progress. Why not check it out if you like Yoshi or the Mario & Luigi games?

Atrius (He/Him)

Theoretically, from what little I know of DS data formats, each character should have their own animation sets.
[sprite=220,4,0]I'm shaking my head in general disapproval of everything[/sprite]

Aile~♥

Actually, I expect that the models have "hold" bones assigned, Sala.
[sprite=16, 6, 0]:P[/sprite]

Lloyd: Easy as pie.
Genis: Sweet!
Presea: ...Sweetie pie...
Zelos: Let's not start on this again...

[spoiler=epic mindscrew][/spoiler]

Amylolz

So, like, how did you do this again? Also, have you found any unused stuff yet?

Daddy Poi's Oily Gorillas

Well, looking for action replay codes was my very first step. (To save time from finding that data with RAM Search.) All this data would be in the PC in-game database..

Then, I simply did a RAM Search of the database address. 0207b16c, where it starts with the chars for Matthew.

I opened up No$ debugger that I found on the internet once. (Well actually someone told me about it.) (I know it doesn't really work.. but some of the code that loads into RAM was there.. so..) Here, I scan the code at the addresses found via RAM Search looking for pointers and stuff. Eventually this gives me the Party Data... so I do the same RAM Search/code scan with the address of the Party Data, eventually finding the Item Data. If I remember correctly.
Golden Sun Docs: Broken Seal - The Lost Age - Dark Dawn | Mario Sports Docs: Mario Golf & Mario Tennis | Misc. Docs
Refer to Yoshi's Lighthouse for any M&L hacking needs...

Sometimes I like to compare apples to oranges. (Figuratively) ... They are both fruits, but which one would you eat more? (If taken literally, I'd probably choose apples.)
Maybe it is over-analyzing, but it doesn't mean the information is useless.


The only GS Discord servers with significance are:
Golden Sun Hacking Community
GS Speedrunning
/r/Golden Sun
GS United Nations
Temple of Kraden

Can you believe how small the Golden Sun Community is?

2+2=5 Don't believe me? Those are rounded decimal numbers. Take that, flat earth theorists! :)

Salanewt

I think the very last ability is something called Massive Swing, which is x0269, and a non-elemental spell just as an "e" for its icon.

But otherwise, you can use ram watch/search if you know a bit about what you are looking for, or you can use codes if you don't know. There are other ways, but it depends on how much you want to learn them.
Oh yeah baby, £ me harder.

Fusion is just a cheap tactic to make weak Adepts stronger.

Yoshi's Lighthouse is a hacking website in progress. Why not check it out if you like Yoshi or the Mario & Luigi games?

Kide

Quote02064A7A = Number of unleashes.
02064A7C = Unleashes offset.

Hm... this means that weapons don't have a slot (or 4 slots, in DD's case) for unleashes like the GBA games, and unleashes are set in a pre-established list or something like that, right?

If so, I wonder how the chance of each unleash activating works. Probably each unleash has the same chance of happening after all, given that their quantity are written in the data.

Rolina

Would be interesting to see how the unleash system works in DD, as it did have some potential.

Daddy Poi's Oily Gorillas

QuoteProbably each unleash has the same chance of happening after all, given that their quantity are written in the data.
It is perfectly possible that it is with the unleashes themselves. I have not did any research into this, though. But I am assuming the Unleash offset/index just looks in another database for all the unleash-related data.
Golden Sun Docs: Broken Seal - The Lost Age - Dark Dawn | Mario Sports Docs: Mario Golf & Mario Tennis | Misc. Docs
Refer to Yoshi's Lighthouse for any M&L hacking needs...

Sometimes I like to compare apples to oranges. (Figuratively) ... They are both fruits, but which one would you eat more? (If taken literally, I'd probably choose apples.)
Maybe it is over-analyzing, but it doesn't mean the information is useless.


The only GS Discord servers with significance are:
Golden Sun Hacking Community
GS Speedrunning
/r/Golden Sun
GS United Nations
Temple of Kraden

Can you believe how small the Golden Sun Community is?

2+2=5 Don't believe me? Those are rounded decimal numbers. Take that, flat earth theorists! :)

Kide

With unleashes themselves? But what would have happened in the case one weapon has unleash 'x' and another one has unleashes 'x' and 'y'? The first one wouldn't add 100%, right? Or would it be ... er... normalized?

Although, I don't know how the mechanics work for this subject. I mean, if it's one check for any unleash then another check for the specified one, or a single check for everything. So this is all pure speculation.

Daddy Poi's Oily Gorillas

#17
When I was looking on the day I made this topic. I believe none of the offsets and # of unleashes overlapped...

So for example. In the unleashes database... you could have.

Item name (Number of unleashes ; Unleash offset)

Note: I messed up.. HOLD ON!

0001 - Long Sword (0002 ; 0000)    - Critical Strike
                                     Spin Strike
0002 - (0002 ; 0002)

0003 - (0002 ; 0004)

0004 - (0002 ; 0006)

0005 - Great Sword (0003 ; 0008)   - Critical Strike
                                     Spin Strike
                                     Fearless Attack
0006 - Shamshir    (0003 ; 000B)   - Power Charge
                                     Fearless Attack
                                     Acid Bath

I mean, this is practically the same as putting this data with the items themselves. Just think of this as a method of compression. So we don't have a lot of blank spots for unleashes in the Items database.  In other words, I'm saying that you may not have to change anything about how unleashes work in the current GS2 Items Editor.

Oh yeah, and it is probably recommended to keep the limit at 4 unleashes per item. (I think there are graphical issues if you have more?)

Golden Sun Docs: Broken Seal - The Lost Age - Dark Dawn | Mario Sports Docs: Mario Golf & Mario Tennis | Misc. Docs
Refer to Yoshi's Lighthouse for any M&L hacking needs...

Sometimes I like to compare apples to oranges. (Figuratively) ... They are both fruits, but which one would you eat more? (If taken literally, I'd probably choose apples.)
Maybe it is over-analyzing, but it doesn't mean the information is useless.


The only GS Discord servers with significance are:
Golden Sun Hacking Community
GS Speedrunning
/r/Golden Sun
GS United Nations
Temple of Kraden

Can you believe how small the Golden Sun Community is?

2+2=5 Don't believe me? Those are rounded decimal numbers. Take that, flat earth theorists! :)

Rolina

Wait, so theoretically, you could have more?  You'd just have to create a new gui/menu system to account for it?

Daddy Poi's Oily Gorillas



I changed the number of unleashes to 6 in this image.  If this implies yes, then I guess so.  As you can see, 5+ go outside the box.

Edit: Oh yeah, ignore the fact that I'm using version 0.9.6, thank you.
Golden Sun Docs: Broken Seal - The Lost Age - Dark Dawn | Mario Sports Docs: Mario Golf & Mario Tennis | Misc. Docs
Refer to Yoshi's Lighthouse for any M&L hacking needs...

Sometimes I like to compare apples to oranges. (Figuratively) ... They are both fruits, but which one would you eat more? (If taken literally, I'd probably choose apples.)
Maybe it is over-analyzing, but it doesn't mean the information is useless.


The only GS Discord servers with significance are:
Golden Sun Hacking Community
GS Speedrunning
/r/Golden Sun
GS United Nations
Temple of Kraden

Can you believe how small the Golden Sun Community is?

2+2=5 Don't believe me? Those are rounded decimal numbers. Take that, flat earth theorists! :)