News:

The forum has been updated to SMF (2.1.3)!
Please be patient as we work to polish up the place and update features as we can.

Main Menu

Making text editor.

Started by Lord Wolfram, 25, June, 2014, 01:34:18 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

pablitox

Quote from: leaf on 25, December, 2014, 06:13:20 AM
Google translate can be really finicky. If you ever get an accurate translation for a complete sentence, consider yourself lucky lol

It usually works pretty well for small parts, though, and I often make use of it when I encounter kanji I'm not familiar with.

ahaha, yeah, I've tried it, God you can't understand most of the phrases.


pablitox

#121
I want to announce a new patch release :D after some months there was a lot of progress in the graphics of the game, which are also quite important, this includes in-game portraits, partner's naming screen, and minigame description (the firewood minigame one).

http://www.mediafire.com/download/l1suy7m816i8sm5/sn3gba_graphic_menus_v0.6_Jrombase.ups

Thanks and kudos to Ghanmi from the gbatemp forums for the big graphic help, mz, Almagest and FAST for helping with kanji identification for a handful of graphical NPC names.TsubasaShaoranExel and Leaf, as well as the previous translators, for names.

To leaf, hope the script is treating you well, xD If you need any type of context of when a char is saying anything and how ask me right away, I'll be glad to help.

pablitox

Hey there, wanted o make a bit of a post.

I did change some graphics, thanks to ghanmi for the quick tutorial, so this leaves only compressed graphics and the script insertion. I did not receive any news from Aent of whatsoever, so I'm looking for help again. I hope that aent can share with use what they have if they decide to answer again.

pablitox

I am still taking appliances to finish this translation, romhackers needed

pablitox

This is still going!


This thread will be used to give an update on the translation of this game. The old thread had a lot of outdated information and broken links, so I decided to make a new one with the latest patch and information available.

A bit of story - Translation

As far as it goes, the translation had it's problems since the beginning: translators and hackers leaving with a half unfinished job were the most common.
Two years ago, the project was revived by oil_ who made a site the translation:

http://sntranslation.vacau.com

A lot of people did contribute to it (kind of an open translation) though some parts of it still bother me a bit (some stiff translations, untranslated lines, etc). Luckily, another user is making a TLC and proofreading, so when I receive the polished version I'll post it. Meanwhile, here's the current version of the script: https://github.com/wangds/sncsm3/blob/master/resources/scriptTXT.7z

Hacking the game

Well, that's all about the translation so far. The hacking front wasn't as lucky as the other one, but some progress has been made since oil_ left:

Graphical front: following parakarry's footsteps, ghanmi could make use of their awesome skills and translated some graphics:





Though some of them are still missing:

+Select Hero:
+Select Partner:
+"Tsushin" (Link) in-menu graphic
+"Omake" (Extras) in-menu graphic
+Similar in-menu graphics in Engrish that may need fixing
+Fishing tutorial:
+Names in Credits

and some minor problems:

+Title screen, third and fourth options: I messed up inserting one of the four frames for "2P" ("tsushin/link" option, the graphic probably needs to be redone) and didn't touch omake "bonus".
For those two I'll need to use the no$gba debugger to move the sprites anyways removing the gaps for a proper translation.
+Opening lines not fixed yet to use the proper translation ("a land called paradise"). This should be possible (called "a paradise land" once). The wording is awkward because of tiles repeating and imposing draconian limitations on the thing, but it should be possible if the tilemap is modified.
+The glow effect doesn't match the crude shitty new English logo. It needs heavy tile map reworking.

All the NPC and character's grahpics were translated. I'll try searching for the missing ones, but if someone wants to help it could be good too. Here are some files which will be useful:

Parakarry's old files: https://www.mediafire.com/folder/3ltu3ztzon6t7/patch


Script front: This one's the most difficult so far. For what I gathered asking the process involve finding some opcodes of the game (pointers that indicate what the game has to do, example load V.E's portrait, wait for user's input to advance, etc). Luckily, another user from the last thread, Earthdarkness, has decided to lend us a helping hand making tools that can overcome the character limits of each line. We'll have to wait for their input on the tools, but im sure it will be done.

About the system messages, Ritchburn's tools did provide a good help to translate things like weapons, items. So far the progress in that front is:

Weapons: 100% translated (with each weapon's description).
Items (includes equipables, imbue, recovery, ores): 100% translated.
Quest Items (99% translated; did find a problem with some of them, more on that in a while).
Magic: 100% translated. (even the guardian beast special attack).
Special Skills: 100% translated.
Bestiary: 100% translated (proofreading could be awesome).
Boss data: 90%
Other system messages:~50% Translated.

The process involved a lot of trial and error, so I left it kind of unfinished. Also there's certain problems I found with some messages:

  • One of them is a boss which [spoiler] should have the same name as the main character, same as with your partner[/spoiler] I found no way to assing it. If someone could look that one up, it could be awesome.
  • In the same way, one system message goes roughly like: (Guardian) smithing rank is now (Option1) (in runes: (Guardian)鍛冶ランクが(Option1)になりました) where (Guardian) means the type of weapon (sword, axe, spear, fist, drill, bow) and (option1) is the rank (Usually 1, 2 or 3).
If anyone could help me and take a look at them, It'd be useful too.

The patch

Here's the latest patch released:

http://www.mediafire.com/download/l1suy7m816i8sm5/sn3gba_graphic+menus_v0.6_Jrombase.ups

it includes the graphics done by ghanmi and some of my translated system messages.

Credits:

translation:
macaronron
salixa
X_Wings
xswordcraftx
cyan
haruka-123
Zynk
Akiron
Chronomoogle
TheZu
gangrelion

hacking
Ritchburn
Aent
TLZ
Earthdarkness
Ghanmi
and everyone else involved I may have forgotten, lol.

Contact

PM me or send a message to pablofernandez409@hotmail.com , I'd strongly advice NOT to use the sntranslation chatroom as the site is totally outdated.

Updates

soon.

pablitox

Hey everyone! sorry for necro bumping this post again.


I'm still working on Hajimari no Ishi, and while we made a LOT of progress translating the script, we need help inserting it back into the rom.

Hopefully Aent is not busy enough to help us back, or another person with similar hacking knowledge.


Thank you! :happy:

Daddy Poi's Oily Gorillas

#126
I should probably look into this again.

Would be fun if I could find a way to make it use Golden Sun's text compression!

Just remember, I make *no promises*, though.... Esp. since that last time I looked at it (years ago),.... it turned out I didn't make much progress...  I forget if we documented any of the code or not. So I'll need to find those addresses again. - It'll likely be a complex task...


@Script = So do we have it in a text document? One line per index? (If the game does it by index? Forget. Edit: Oh yes, you have it one per file by address... went to the link in the earlier post.) I know that lines can have funny stuff going on in them, though. But I'll need to think what's actually needed in the event /all/ the text is being compressed at the same time. (And with the possibility of modifying the code.)


For now, I will just look... then decide if I'll do anything a bit later.


---
I think I'll document the functions.... There's likely going to be a lot of code editing(?) if this goes through?
And with the compression format theory, you don't really have to go to 8-bit char... could keep it 16-bit. (Maybe, at least with a slightly modified version of the compression format.) ... Since that's what would be in the char trees... where-as, the text data would be variable bits. (In theory.) ; But I think I'm interested in making it 8-bits when it is in the char trees... should I ever have a decent enough plan....
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! :)

pablitox

Quote from: Fox on 30, November, 2017, 01:46:08 AM
I should probably look into this again.

Would be fun if I could find a way to make it use Golden Sun's text compression!

Just remember, I make *no promises*, though.... Esp. since that last time I looked at it (years ago),.... it turned out I didn't make much progress...  I forget if we documented any of the code or not. So I'll need to find those addresses again. - It'll likely be a complex task...


@Script = So do we have it in a text document? One line per index? (If the game does it by index? Forget. Edit: Oh yes, you have it one per file by address... went to the link in the earlier post.) I know that lines can have funny stuff going on in them, though. But I'll need to think what's actually needed in the event /all/ the text is being compressed at the same time. (And with the possibility of modifying the code.)


For now, I will just look... then decide if I'll do anything a bit later.


---
I think I'll document the functions.... There's likely going to be a lot of code editing(?) if this goes through?
And with the compression format theory, you don't really have to go to 8-bit char... could keep it 16-bit. (Maybe, at least with a slightly modified version of the compression format.) ... Since that's what would be in the char trees... where-as, the text data would be variable bits. (In theory.) ; But I think I'm interested in making it 8-bits when it is in the char trees... should I ever have a decent enough plan....

That would be definitely useful fox! Hopefully your try yields good results this time.

As a reminder of where we are right now: the script is currently compressed using LZ77, and it's made of PSI3 files or varying lengths. Each of this script files have a subset of different control codes, that tell the game how to show the information (portraits, type of text box, if the dialogue branches etc) A lot of them have been identified and I'm doing my best to document them, it will take a day or two though. It's not a complete list but I'm sure it'll be useful too.

Daddy Poi's Oily Gorillas

#128
Well, any work to bring the translation project 1 step closer to finishing is good work.... (Even if it's minor.)

Sounds good. Where might I find the most updated English script, anyway?  Not too familiar with PSI3 files, but I'll look at them. I think before I was studying system related text (Uncompressed)... But all that is nice to know.



Thinking about it a little more, should we not fully do 8-bits... (If 16-bits are easier.)... we can still do the GS Compression, and still do 8-bits in the char tables (Since I just realized 16-bits there would be clumsy regardless/Would have made sense for normal Huffman, though.), but have those values look up the 16-bit codes. Hm! (That'd be a max 0x200 byte table (Likely less) + whatever code to make it work.) Each 16-bit would represent a single character, though... So double characters should be avoided... to do variable length characters) -- But of course, I'd like to do a bit of research on Summon Night's code, so a lot of this could just be empty thoughts.
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! :)

pablitox

Quote from: Fox on 30, November, 2017, 06:17:13 PM
Well, any work to bring the translation project 1 step closer to finishing is good work.... (Even if it's minor.)

Sounds good. Where might I find the most updated English script, anyway?  Not too familiar with PSI3 files, but I'll look at them. I think before I was studying system related text (Uncompressed)... But all that is nice to know.

The most updated english script is here: https://github.com/salixa/SNSC3-Translation

As you can see, it's formatted differently because some progress was made in identyfying the control codes. Alas I don't have all the info available.

Arount here, page 5-6 there's some tools to rip and uncompress the english script, using a C function first and passing the scripts through DSDECMP

Daddy Poi's Oily Gorillas

#130
Okay. Thanks! Wow. A lot to take in.

And that sounds nice. I kind of wish there was a key. (Hex values that represent each control code.) I'll probably get them as I document the game code. (Depending on how much time I devote to it.) ; (Though, I guess you're working on that... if going by your posts.)

@rip/uncompress = If it is compressed in the ROM, another option is to just dig it out of the game's RAM where it is decompressed?
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! :)

pablitox

Quote from: Fox on 30, November, 2017, 08:08:23 PM
Okay. Thanks! Wow. A lot to take in.

And that sounds nice. I kind of wish there was a key. (Hex values that represent each control code.) I'll probably get them as I document the game code. (Depending on how much time I devote to it.) ; (Though, I guess you're working on that... if going by your posts.)

@rip/uncompress = If it is compressed in the ROM, another option is to just dig it out of the game's RAM where it is decompressed?

if it's useful, the uncompressed script inside the gba are stored at 0x02006000 which is in the WRAM. Some control codes were documented with their hex value, once I'm done I'll share them.

pablitox

Quote from: Fox on 30, November, 2017, 08:08:23 PM
Okay. Thanks! Wow. A lot to take in.

And that sounds nice. I kind of wish there was a key. (Hex values that represent each control code.) I'll probably get them as I document the game code. (Depending on how much time I devote to it.) ; (Though, I guess you're working on that... if going by your posts.)

@rip/uncompress = If it is compressed in the ROM, another option is to just dig it out of the game's RAM where it is decompressed?

I have collected everything I know about how the control codes work in-game, with some examples. Also, how the script is read by the game.

Here's the file: https://www.mediafire.com/file/os9sqb59xpdbbw7/List%20of%20Hajimari%20no%20Ishi%20Control%20Codes.txt

Daddy Poi's Oily Gorillas

Oh cool. That's nice.

One thing, though.  It looks a bit unorganized and rushed.

I'd prefer the commands written the 16-bit way (That is the way they are written, right?).... and for them to be in order by their number... So like....

Something like below, but I'll have to work quite a bit on it....

---

General / Control Flow?
0000
0001
0002 = conditional jump, test player's gender
0003 = simple jump
0004 = End of script
0005
0006
0007 = function call

(Not sure if there are categories for 0100+ and 0200+)


???
0300
0301
0302
0303
0304
0305
0306
0307 = Set variable
0308 = Normal Text box
0309 = for text that spans 3 lines
030A
030B = Text box with large letters
030C = for one line
030D = options
030E = End
030F
0310
0311 =  Box with Title (Where will you go?)
0312 = Box without Title (just a text box)
0313 = default option (no option chose)
0314 = option (Deikle Village)
0315 = end of menu
0316
0317 = popup message: This are special text boxes that are really small and appear in the middle of the screen
0318 = wait for key press on pop up text box??

0363 = set actual place in the game's menu

037D = set name sprite
037E = set visible or invisible (portrait) Invisible are for NPC which doesn't have any portraits


???
0478 = sets portrait.
0479 = sets eye expression and mouth expression.
047A
047B
047C
047D = adds extra sprites if the portrait is wider.
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! :)

pablitox

Quote from: Fox on 03, December, 2017, 01:49:48 PM
Oh cool. That's nice.

One thing, though.  It looks a bit unorganized and rushed.

I'd prefer the commands written the 16-bit way (That is the way they are written, right?).... and for them to be in order by their number... So like....

Something like below, but I'll have to work quite a bit on it....

---

General / Control Flow?
0000
0001
0002 = conditional jump, test player's gender
0003 = simple jump
0004 = End of script
0005
0006
0007 = function call

(Not sure if there are categories for 0100+ and 0200+)


???
0300
0301
0302
0303
0304
0305
0306
0307 = Set variable
0308 = Normal Text box
0309 = for text that spans 3 lines
030A
030B = Text box with large letters
030C = for one line
030D = options
030E = End
030F
0310
0311 =  Box with Title (Where will you go?)
0312 = Box without Title (just a text box)
0313 = default option (no option chose)
0314 = option (Deikle Village)
0315 = end of menu
0316
0317 = popup message: This are special text boxes that are really small and appear in the middle of the screen
0318 = wait for key press on pop up text box??

0363 = set actual place in the game's menu

037D = set name sprite
037E = set visible or invisible (portrait) Invisible are for NPC which doesn't have any portraits


???
0478 = sets portrait.
0479 = sets eye expression and mouth expression.
047A
047B
047C
047D = adds extra sprites if the portrait is wider.

Yeah, it's a bit rushed, sorry >_< they are written by how you'd find them on the script files.


Daddy Poi's Oily Gorillas

Oh no, you're fine. It's no problem.... This'll be very useful during research.
Was more or less saying that going forward, I will be trying to use this other way. (I might include the arguments too. though I left those out of my example.)
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! :)

pablitox

#136
Quote from: Fox on 03, December, 2017, 03:37:01 PM
Oh no, you're fine. It's no problem.... This'll be very useful during research.
Was more or less saying that going forward, I will be trying to use this other way. (I might include the arguments too. though I left those out of my example.)

I see. Glad it was useful!

One question, suppose all the functions have been identified properly, I guess we'll have to code them to make a decent dumper/inserter that, in case of the dumper writes down the XML plus the japanese text, and in the case of the inserter, reads up the xml formatted text and writes down the opcodes + translated text, am I right?

of course, we'd need to take into consideration the fact that the sizes of each script will be different, and thus we'll need to modify the script table...I think that's how it was supposed to go down.



Daddy Poi's Oily Gorillas

#137
Yeah, sounds like a good way to go... Especially if we ever want those tools to be used for more than just translating...
As for the script table? I am not sure exactly what that refers to, but I don't imagine it to be a problem? (Re-pointing is easy if you got the space. Right?)
(A bit random, but I kind of hate Python when it comes to file management. C# does a pretty good job, though.)

I've already started documenting. The document is at https://docs.google.com/document/d/19HGbHkmIUfvd7fc0_gEpcuAjtwagtr7HpLv2dwE5jPg/edit
It it is to list most of the functions in the game. (Functions being the code blocks that were intended to be called.)

This is just the start, and there's a long way to go. But it's nice seeing the first section (0000+) only has a small number of commands.

0000 = Unused (Pointer is 00000000)
0001 xxxx xxxx EXPR = Set var to EXPR (xxxx=Type (2/3) , xxxx (2nd) =Index)
0002 xxxx EXPR = Conditional jump (in script) if EXPR=0.
0003 xxxx = Simple Jump
0004 = Related to ending script?
0005 EXPR = Loads PSI3 file. (Index being EXPR) Current position is not saved.
0006 EXPR = Loads/calls PSI3 file. (Index being EXPR) Current position is saved.
0007 xxxx = Function call (For same 0x1C byte entry)
0008 = Return from sub-function. (Does nothing if in main function?)
0009 xxxx = Function call? (Another 0x1C byte entry?)
000A EXPR = Sets slot EXPR (0-7) to type 0x9.
000B EXPR = Gets the on flags for the engine block EXPR (0/1)
000C = Nothing (Just returns 0 to continue script.)
000D = Sets PSI3 file id(Not sure?) to 0000, but doesn't load it? (Unknown purpose.)
000E = Unused (Pointer is 00000000)
000F = Unused (Pointer is 00000000)

In the code, these ^ are pretty much separated into two groups, interesting enough. 0001,0004-0009 in the first group, 0002,0003,000A-000D in the other group.
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! :)

pablitox

Quote from: Fox on 06, December, 2017, 08:05:44 PM
Yeah, sounds like a good way to go... Especially if we ever want those tools to be used for more than just translating...
As for the script table? I am not sure exactly what that refers to, but I don't imagine it to be a problem? (Re-pointing is easy if you got the space. Right?)
(A bit random, but I kind of hate Python when it comes to file management. C# does a pretty good job, though.)

I've already started documenting. The document is at https://docs.google.com/document/d/19HGbHkmIUfvd7fc0_gEpcuAjtwagtr7HpLv2dwE5jPg/edit
It it is to list most of the functions in the game. (Functions being the code blocks that were intended to be called.)

This is just the start, and there's a long way to go. But it's nice seeing the first section (0000+) only has a small number of commands.

0000 = Unused (Pointer is 00000000)
0001 xxxx xxxx EXPR = Set var to EXPR (xxxx=Type (2/3) , xxxx (2nd) =Index)
0002 xxxx EXPR = Conditional jump (in script) if EXPR=0.
0003 xxxx = Simple Jump
0004 = Related to ending script?
0005 EXPR = Loads PSI3 file. (Index being EXPR) Current position is not saved.
0006 EXPR = Loads/calls PSI3 file. (Index being EXPR) Current position is saved.
0007 xxxx = Function call (For same 0x1C byte entry)
0008 = Return from sub-function. (Does nothing if in main function?)
0009 xxxx = Function call? (Another 0x1C byte entry?)
000A EXPR = Sets slot EXPR (0-7) to type 0x9.
000B EXPR = Gets the on flags for the engine block EXPR (0/1)
000C = Nothing (Just returns 0 to continue script.)
000D = Sets PSI3 file id(Not sure?) to 0000, but doesn't load it? (Unknown purpose.)
000E = Unused (Pointer is 00000000)
000F = Unused (Pointer is 00000000)

In the code, these ^ are pretty much separated into two groups, interesting enough. 0001,0004-0009 in the first group, 0002,0003,000A-000D in the other group.

Amazing!! Well the dumper's ready then (i'll send you a link to a drive folder so you can post there all your findings if you want and check what we have done so far).


Nice, I'll bookmark the file to check it out throughly. I'll edit this post if I have any questions!

Daddy Poi's Oily Gorillas

You are welcome. Still got to document the other commands, though. = Hopefully I can get at least half of those in this month. (?)

Sounds good. I also have it in my Hacking Docs folder. (Misc. Docs link in my signature.)
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! :)