Golden Sun Hacking Community

Golden Sun Resources => Misc. GS Hacking => Topic started by: Salanewt on 23, September, 2016, 11:31:26 PM

Title: Unusual Hack Ideas
Post by: Salanewt on 23, September, 2016, 11:31:26 PM
This could be anything you can think of or want to work on, from mechanics or other specific changes to full hacks. Or even anything else you want to discuss but which you feel may not be common ideas!
Title: Re: Unusual Hack Ideas
Post by: Daddy Poi's Oily Gorillas on 23, September, 2016, 11:43:39 PM
Another topic that should be pinned? :P (Funny part being there's nothing here worth reading yet.)

Hack Idea #1 : Simplify the mechanics: Instead of having Elemental powers, just have Fundamental powers. Since the elements weren't reborn yet. - And then one by one, as the lighthouses are lit, have these elements "unlocked"... (Perhaps with different functionality since these wouldn't be the main game feature?)
That idea needs some refining to make sense, though.
Title: Re: Unusual Hack Ideas
Post by: Salanewt on 23, September, 2016, 11:52:26 PM
For what?


Oh yeah, something I've thought about doing is to see if a contextual utility could work (basically like context-sensitive buttons in Conker's Bad Fur Day, but a little different). The downside is you would probably either need to base an entire hack around it or have the possible uses for it be fairly similar, or else it may not mesh well with other puzzles.
Title: Re: Unusual Hack Ideas
Post by: Luna_blade on 24, September, 2016, 02:48:11 AM
Fundamental powers souns like a great idea!


I've got an unusual idea: make a tactical RPG out of Golden Sun (like FFTactics or Ogre).
Title: Re: Unusual Hack Ideas
Post by: Daddy Poi's Oily Gorillas on 24, September, 2016, 12:25:23 PM
QuoteFundamental powers souns like a great idea!
Yeah. And the final boss should be at Mt. Aleph instead of Mars Lighthouse.

QuoteI've got an unusual idea: make a tactical RPG out of Golden Sun
Sounds like my idea from the cbox. XD

Title: Re: Unusual Hack Ideas
Post by: leaf on 24, September, 2016, 08:21:02 PM
Nothing wrong with making a tactical RPG based on GS... however, there is something *very* wrong with trying to do that *in the golden sun engine*.
Title: Re: Unusual Hack Ideas
Post by: Daddy Poi's Oily Gorillas on 24, September, 2016, 10:33:56 PM
Very wrong? Not really... "Not smart." would make a bit more sense. - After all, one could still strip away half of the engine or so, and grab pieces of code from whatever tactical game you want.... (etc.)

Even so, programming is an art... Having a mindset that, for example, there is only one "right" way to do something is a bit wrongfully thought.. so I say the question is which way is the smart(est) way instead. (For what we would find most desirable.)

Whatever you do, you can be sure it most certainly isn't going to be perfect... (And I don't think art works that way?)
Can one even find the perfect balance between these:
Taking the long way vs. taking shortcuts.
Paying attention to trivial detail vs. cutting corners.
Being Mr. Slow Poke vs. being too fast.
Etc.
Title: Re: Unusual Hack Ideas
Post by: leaf on 25, September, 2016, 02:36:40 AM
Do you do this intentionally or are you just naturally a moron? It would be easier and take less time to code your own engine from scratch than it would be to attempt to hack a tactical combat engine into golden sun.

I never said there was only one right way to do things, but there is *absolutely* a wrong way to do them. For example, if you try to solve something recursively that would be faster to process, easier to read, about the same amount of code, and consume less memory to solve iteratively, you're doing it wrong. There might be a hundred different ways you could write that same function, all of which solve the same problem while optimizing for different things, but if something is outclassed in every possible way, then it's wrong.
Title: Re: Unusual Hack Ideas
Post by: Daddy Poi's Oily Gorillas on 25, September, 2016, 09:36:20 AM
QuoteDo you do this intentionally or are you just naturally a moron?
Aw. I'm offended. Sorry. It's okay, I guess....

QuoteIt would be easier and take less time to code your own engine from scratch than it would be to attempt to hack a tactical combat engine into golden sun.
That is 100% true with current tools/knowledge/etc. that the majority of people would more than likely have. (But I wouldn't call either way "wrong"... (at least when not being specific... i.e.: Wrong way to be fast?)... - To some (probably very few) people, difficulty /could/ be a reason for doing it that way, but meh.... As for time? Usually it is better to be faster, so most should be having that as a goal, however... what if time wasn't really a big factor b/c they wanted to do it that way bad enough? i.e. As a learning potential.)

QuoteI never said there was only one right way to do things
I didn't say you did, it was an example.

QuoteFor example, if you try to solve something recursively that would be faster to process, easier to read, about the same amount of code, and consume less memory to solve iteratively, you're doing it wrong.  There might be a hundred different ways you could write that same function, all of which solve the same problem while optimizing for different things, but if something is outclassed in every possible way, then it's wrong.
I would say it depends on your goals/interest/etc... Since one learns by doing, anyway.... You did remind me of my attempt at writing the GS text decompression (in my editor) two different ways, though...
If your goal is to get the main project done in a reasonable amount of time, then one should be using their time wisely and not waste a lot of time micro-optimizing.
Under the theory that one has a lot of free time and enjoys wasting it on nearly-pointless micro-optimizations.... then how would micro-optimizations be a bad thing? (The alternative could be procrastination.)
(Kinda straying from the topic, but following the idea that our time should be spent productively, I could then argue to some that excessive decorating/washing dishes/manually killing ants/etc. is pointless when there is a much better alternative. And how about writing out sentences vs. typing them?  Neither way is wrong. It gets the job done. However, I'd say typing is both faster (if you know the keyboard)/easier to read/easier to manage/etc. If you get down to the specifics, though... wasting someone's paper could be wrong, and unnecessary power usage as well,... like under circumstances where it could bring others at an unnecessary disadvantage. But I suppose if we went that way, I could say hacking the game at all could be a wrong due to messing with another person's intellectual property in a way that it most obviously wasn't designed for without consent. (Maybe.) But that can be a gray area, I think.))
I figure we do what we're use to/what works for us.

Quotebut if something is outclassed in every possible way, then it's wrong.
I think this means if something under preforms in every scenario? - I wouldn't say "wrong" if it works without errors... But I would say it is poor quality.

.... .... However, thinking about it a bit more ... ... @dictionary.com's recommended practice - Wouldn't "hacking the game" at all, be the "wrong way" to making a game, anyway? (Within the minds of those who use high-level languages. - But then there's also the Hacking Community.... so it may really just depend on context... e.g. (Rhetorical) So what is the wrong way to hold a golf club, if you are actually supposed to hold it backwards as one of the rules of the competition? (Now I'm just being silly.)

But mostly, I feel like this conversation is a bit pointless at this point... And especially seeing how it is off-topic and seems to have started up a long discussion, not sure why I even brought it up anymore.........
'


Hack Idea #2 : How about Big Brother Golden Sun? XD Might be better on the DSi or later, though... whatever features a camera and can connect to other devices/internet, haha.
Title: Re: Unusual Hack Ideas
Post by: charon the ferryman on 28, September, 2016, 09:11:25 AM
Fox, all Leaf is trying to tell you is that there's no point to restructure an engine that doesn't support what you want to do when you can just build it yourself. It's stupid to try to rebuild it because there's no point and it wastes a metric fuckton of time. Hell, you could probably make a homebrew GBA game that is more efficient to build out what you want than just hacking Golden Sun. When hacking GS it's best to stay in the confines of the engine and try to use it creatively instead of building out a ton of new features.

Hell that's pretty much the main reason why I'm building out Colors on my own lol
Title: Re: Unusual Hack Ideas
Post by: Daddy Poi's Oily Gorillas on 28, September, 2016, 09:42:43 AM
I thought I agreed with that when I mentioned "100% true"?

Yeah, homebrew would be better... (And one can just copy-paste code from the original game if needed.)

But my point was that it depends on your goals/interests... if you're interested in the challenges of unnecessary things.... (And of course you'd use tools (i.e. like your own.) for modding, when they are appropriate.) - Doing Hard-core Ironman on Runescape would be an unnecessary thing... but people do it... (Dying=The End) - so how could that be any worse.... Haha...

But anyway...Understanding Golden Sun's memory layout is a relatively easy one, I think.... (Except it sucks that there was a handful of different compressions. - Mainly for graphical and text data... but also included map data files.) So....


And either way... If I even did choose to work on the project in the near future, I'm imagining doing it as a cheap (possibly purposefully unfinished) hack that's just for lulz.  But I ain't decided to do that yet. (And will just put it off until I even form reliable plans for it. For the kind of "cheapness" it would be, haha.)
Title: Re: Unusual Hack Ideas
Post by: Rolina on 29, September, 2016, 11:46:50 PM
Quote from: leaf on 24, September, 2016, 08:21:02 PM
Nothing wrong with making a tactical RPG based on GS... however, there is something *very* wrong with trying to do that *in the golden sun engine*.
This.  So much this.

I suppose you could use FFTA as a base, but then comes the problem of figuring out how to implement it.  I mean, I know what I'd do, but whether or not it'd let me do it is another story entirely.  Diminishing area damage alone would be tricky to pull off.
Title: Re: Unusual Hack Ideas
Post by: Daddy Poi's Oily Gorillas on 30, September, 2016, 12:13:28 AM
FFTA could certainly be an option... The problem is that I'd have 0% knowledge of its format, so I cannot judge those specifics in comparison to GS. Maybe one could still find a way to copy/paste the main things over to avoid all the other stuff I wouldn't know much about, but.. hmm...

Perhaps some of my Advance Wars studies could help...

@ Diminishing area damage alone would be tricky to pull off. : I dunno, I was thinking that would be fairly easy.  I was thinking the graphics would be a tricky part, if not the trickiest.
But as for Area Diminishing area damage, it's just a matter of either:
-Scan all NPCs and detect how far they are away from targeted tile. - I wouldn't be concerned about performance here at all. You'd likely would never have 0x100+ NPCs on a single map, and things like decompression/graphics are probably more costly anyway.
-Or if NPCs are stored on tiles, Just check the tiles themselves. (I could see this way being useful for a path-finder - And even when this is done, it's still possible NPC's X/Y could still be in their own data.)
The distance would be set in a variable, and that would affect percent damage applied.
Either way, you end up with do/for/while loops in the code.
Title: Re: Unusual Hack Ideas
Post by: Salanewt on 30, September, 2016, 01:13:16 AM
The great thing about FFTA is that all attacks are more or less tile-based, and any valid targets on those tiles can potentially be hit. So, something like the Blizzard spell can hit five tiles in a + shape without needing to actually have a target in the middle tile; diminishing damage could check for the central tile and do full damage there, but then do less for the others or something. I haven't looked into the coding for that game before though. Would graphics even be an issue?



As for an unusual hack idea, I am currently trying to decide if it would be feasible to add a "take control" ability so you control enemies. Like, for example, take control of a Refresh Ball when fighting Star Magician so you can heal your own party with it.
Title: Re: Unusual Hack Ideas
Post by: Daddy Poi's Oily Gorillas on 30, September, 2016, 01:22:30 AM
QuoteWould graphics even be an issue?
Depends on what you're doing? It's bad enough we have a very limited palette if we used Indexed pixel data. (Like what is usually the case for GBA games.)

But I was thinking more about the difficulty in creating good-looking new sprites. (The ones missing from the game(s)...)  How easy is it to make Field-compatible Battle Ability Animations while noting the available palette space, etc.?
Difficulty as in time-consuming as well.

If anybody could create a sample of such graphics we might would need, then that could certainly encourage work on the project.... (Whether GBA or PC, etc.) (Not saying that it would be done, but any amount of encouragement is good encouragement!)

@format: I was referring solely to the memory data, and not the gameplay... just to make sure that's clear.
Title: Re: Unusual Hack Ideas
Post by: Rolina on 30, September, 2016, 10:41:26 AM
Advance wars wouldn't work for a FFT/TO style tactical game, but it would work for something like FE/Suikoden, where you have different troop types.  It'd be a completely different system with GS theming, rather than a character-focused tactical game.  I think AW and FE are poor fits for that, especially given we'd in all likelyhood want an isometric view.
Title: Re: Unusual Hack Ideas
Post by: Daddy Poi's Oily Gorillas on 30, September, 2016, 05:56:00 PM
Depending on what Isometric means.... (as far as leniency goes.)
-If we mean rotating the maps to be isometric, that could be a lot of work... and seeing as you'd also will need to fill in the sides of things... I'm kinda doubting anyone is motivated enough to really be serious about such a project like that.... (But I do admit it would be cool. - And I'd love to see something like that even if just for the beauty of the graphics./Comparisons.)

-Doing Isometric movement with the same GS maps (or custom/using same tiles), though, could maybe be worth looking into... But I was think square movement if you're using square maps could make more sense. (But you never know. :P)

Never exactly said it would be Advance Wars, though, I only met that they also feature things like movement/path-finder/etc.
Title: Re: Unusual Hack Ideas
Post by: Rolina on 01, October, 2016, 12:05:38 AM
...Isometric means isometric. It's the camera angle of every TRPG not named Advance Wars or Fire Emblem.  We'd not be using GS maps for obvious reasons, since... you know... tactical RPG.
Title: Re: Unusual Hack Ideas
Post by: Daddy Poi's Oily Gorillas on 01, October, 2016, 12:34:49 AM
Well, unless we have any graphics designers for that project. (Assuming it is [custom] GS-styled graphics...) Then I guess I'm out?(?)
I mean sure I could do the basic coding with movement/AI/Damage calculations and stuff.... But I'm not sure I'm interested in wasting too much time with figuring out complicated and time-consuming graphics at the moment....(Maybe if I ever become a skilled graphics artist? While I'm sure it's quite possible I could look into that, I'd say it's nothing more than a dream, at the moment.)
Title: Re: Unusual Hack Ideas
Post by: OpenGoldenSun on 01, October, 2016, 10:57:33 AM
Oh man this is hilarious. You guys are in for a funny surprise in my next video.
Title: Re: Unusual Hack Ideas
Post by: dive_darkness on 01, October, 2016, 11:08:48 AM
Quote from: OpenGoldenSun on 01, October, 2016, 10:57:33 AM
Oh man this is hilarious. You guys are in for a funny surprise in my next video.

Can't wait. That's a low blow to tease us like that :'(

FFTA with a rotating camera system would be a nice view. Also, you could technically use the dungeons' map as a tactical environnement. Something like moving around "freely" on a square based board until you meet a monster, which launch the battle mode. Your movements are then limited until you beat all monsters or escape from their sight long enough.
Title: Re: Unusual Hack Ideas
Post by: OpenGoldenSun on 02, October, 2016, 11:22:14 AM
(http://i.imgur.com/9Bbl39L.gif)
Title: Re: Unusual Hack Ideas
Post by: Daddy Poi's Oily Gorillas on 02, October, 2016, 11:33:12 AM
Congrats! :medal: - Similar to what I was thinking.
The Character box does look a tiny bit big/cluttered, and I question if we would really need some of those things there? All of which could go in a status menu.
-Portrait (It's cool for cosmetic appeal maybe, but I find it somewhat hard to decide...)
-Experience
-Adept type (Could just be the element symbol.  :VenusStar: :MercuryStar: :MarsStar: :JupiterStar:)

I can see that being used in the normal RPG game. (Maybe even funner than Colossus/Trial Roads with some of the ideas I could come up with???)  Puzzles, puzzles, puzzles. :D With a tactical reference.

Even with just the elements (and psynergy) alone, plenty can be done, so... Hmm.. heheheh.
Title: Re: Unusual Hack Ideas
Post by: dive_darkness on 02, October, 2016, 05:59:03 PM
OpenGoldensun: you know... YOU'RE DA BOSS !!! Did you create a full tactical engine section in your engine ? And did you use another tactical rpg as a baseline to design it ?

Fox: it's pretty common in tactical RPGs to have the character's portrait in their status screen. That allows you to recognize them more easily.
Exp: always show in tactical RPGs. It allows you to see which character needs the most exp (as in those kind of games, exp isn't shared among the team).
The adept type could be just an elemental star, yup, which would save some space to put something else (like exp to next level)
Title: Re: Unusual Hack Ideas
Post by: Daddy Poi's Oily Gorillas on 02, October, 2016, 09:08:57 PM
As one idea, to reference the RPG games themselves, I did think about what if it was just Name, HP, and PP.... (Name overlapping top border. <= You might can still do that either way. Since it is almost like a Group Box control...  Has the advantage of allowing for longer names, and not really getting in the way of anything.)

@1: I know.. But as for displaying here, they're not always 32x32+ sized images on a bulky panel, are they...?
@2: Which wasn't really sure how useful it was, though? (Not saying to remove it exactly, but to consider if it is actually needed there.) Level is a good indicator on which ones need training... Exp to next level could be useful, though. - FFTA did pretty well with making EXP go from 0-100 (If I remember correctly.), right? However, on second thought... given how much space I see there in the image above... it looks like there is only enough room to do the same, so... maybe I'm just messing around.
@3: :)


(http://199.101.98.242/media/images/157288-Final_Fantasy_Tactics_-_The_War_of_the_Lions_(Europe)-3.jpg)
This looks clean, right?
Title: Re: Unusual Hack Ideas
Post by: dive_darkness on 03, October, 2016, 01:15:45 AM
FFT and FFTA does a real good job as far as all controls go, yeah.

I think the only reason why you have that feeling that it's "clogged up" is because all those infos are in one of those blue dialogue box. If you remove the box, it already feels much better and lighter. Also, the text in golden sun is, compared to the text in FFTA, bigger, and takes more place.
Title: Re: Unusual Hack Ideas
Post by: Daddy Poi's Oily Gorillas on 03, October, 2016, 01:29:46 AM
@1: Yep!

@2: India? Not sure I follow that part. (Probably the English? - all those [games in] India, maybe?) - And yeah... Although, it just felt like it could be shrunk a little, for some weird reason. (I did say [tiny] bit big, anyway.)
Title: Re: Unusual Hack Ideas
Post by: Salanewt on 03, October, 2016, 11:06:44 AM
Probably autocorrect for "info" lol.

Nice work with that tactics thing!
Title: Re: Unusual Hack Ideas
Post by: dive_darkness on 03, October, 2016, 12:48:52 PM
Yeah, sorry for the autocorrect.
Title: Re: Unusual Hack Ideas
Post by: Rolina on 05, October, 2016, 11:00:37 PM
Quote from: OpenGoldenSun on 02, October, 2016, 11:22:14 AM
(http://i.imgur.com/9Bbl39L.gif)
Saw this on reddit.  Of course you're the one who did it. XD

How's OGS coming along, by the way?
Title: Re: Unusual Hack Ideas
Post by: Atrius on 06, October, 2016, 02:52:48 AM
Nice, that's your custom engine right?  I feel like I'd have to slap someone if they went trough the trouble of hacking a Golden Sun or TLA ROM to add that functionality.

Eh, who am I kidding...  It IS more impressive if you managed to hack it into an official ROM, but you've got the skills to and might as well make your own engine at that point.
Title: Re: Unusual Hack Ideas
Post by: MaxiPower on 06, October, 2016, 06:11:27 PM
Awsome, reminds me of shining force, camelots previous game, loved the first one well the remake on gba,
Title: Re: Unusual Hack Ideas
Post by: Daddy Poi's Oily Gorillas on 06, October, 2016, 07:05:14 PM
Yep. It's beautiful. Four different people have done/are doing big things with GS (Whether documentation-wise, patch-wise, or other project),... Atrius (Did the first editor/still provides random help),  Me (Main author of documentation), Salanewt (A number of patches/some docing), and OpenGS (His "to be open-sourced" project.)... but we still need more people.

@Hacking in/out stuff. = I'm currently experimenting with my plan to not only do my documentation... but to use devkitadvance stuff to sort of "rebuild" the game as well. (Still for GBA, though... but curious if it could potentially replace my documentation altogether.) - Call it a fun little experiment, and I probably labeled things incorrectly, etc.

Very early stage, though, and I'm planning to have a system the could take data out of the ROM to convert it into a format that works. (That way, you can still keep edited Items/ Abilities, etc. you've made in the editor.)

[spoiler]#define RGB16(r,g,b)  ((r)+(g<<5)+(b<<10))
register int *r4 asm ("r4"); //One register for manual-use only. Usually used for addresses.
int main()
{
   char x,y; 
   unsigned short* Screen = (unsigned short*)0x6000000;
   *(unsigned long*)0x4000000 = 0x403; // mode3, bg2 on

   // clear screen, and draw a blue back ground
   for(x = 0; x<240;x++)   //loop through all x
   {
      for(y = 0; y<160; y++)  //loop through all y
      {
         Screen[x+y*240] = RGB16(0,0,31); 
      }
   }

   // draw a white HI on the background
   for(x = 20; x<=60; x+=15)
      for(y = 30; y<50; y++) 
         Screen[x+y*240] = RGB16(31,31,31); 
   for (x = 20; x < 35; x++)
      Screen[x+40*240] = RGB16(31,31,31); 

   while(1){}   //loop forever
}

//PARTY MECHANICS!
//NOTE:  Many of these function/variable names may be WIP, so suggestions recommended.
//Public functions should be left alone since they're supposed to be 8 bytes/entry after compiled.
//These functions do mov pc, r4 instead of bx r4... but both do the same things.
int pub() {
   r4=(int*)main; goto *r4;
}
void init() { //080AD338
   initParty();
   pub_bootMap(0);
}
int getAvailableSummonsAddr(int team) {
   if (team == 0) {
      return 0x0200024C;
   } else {
      return pub_getCharAddr(0x83);
   }
}
//WIP stuff:
initParty() {
   
}
//Call out functions... (Should be okay to modify.)
int pub_getCharAddr(int charSlot) { //type is only for debug mode.
   r4=(int*)0x08016CA5; goto *r4;
}
int pub_bootMap(int type) { //type is only for debug mode.
   r4=(int*)0x080C8009; goto *r4;
}
[/spoiler] Quick little sample... The "r4" part is done to treat it as a global variable that can only be manually altered... From my experience with this game, it seems like that's the closes thing I can find to match GS in that area. (It keeps r4 from getting pushed/popped in all functions, at least.)
Second is the thing that display Hello on the screen, that is unrelated to the project. Third, the ending shows how I am going to do public functions, etc. (Main will be corrected to the right function later.) (It seems the public functions at the end, in this case, get grouped with the first section of public functions.... Out-going functions aren't listed in the real game, but I'm doing it here for a couple reasons. (It probably won't stay in the end, though.) - But mostly, I'm thinking one Mechanics section could be worked on/tested individually by reinserting into original ROM, if one felt like it.)

And also planning to make a bunch of defines for absolute and relative addresses, but thought I could wait a short bit before doing that.
Title: Re: Unusual Hack Ideas
Post by: Rolina on 07, October, 2016, 07:47:42 AM
No mention of the Mk2 system I've been developing?  That's unfortunate.
Title: Re: Unusual Hack Ideas
Post by: Daddy Poi's Oily Gorillas on 07, October, 2016, 08:59:38 AM
Probably because I'm not that familiar with that project yet... And/or whether it is considered "big".. etc.
Would "Mk" stand for the first and last character of Mark?
But yeah, any progress on GS at all is definitely worth a mention!
(*Sees Users Online list* And to Plexa for their Speed-running stuff, etc.)
Title: Re: Unusual Hack Ideas
Post by: Rolina on 09, October, 2016, 10:00:09 PM
Aye, the Golden Sun Mark2 Battle System, AKA that thing in my signature.  That's the alpha 0.4 iteration of the character creation tools, and so far 0.5 has come along really well.  Those who hang out with me over in Sunrise help me test it from time to time, along with Caledor.

Basically, the Mk2 system aims to fix things I thought needed improvement in GS' battle system.  I've... had to make some rather interesting changes too, such as changing how the djinn system works (needed a reason to keep the limit at 9 while also allowing the player to have options in regards to djinn).