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

Suggestion for the Editor

Started by Menaus, 06, January, 2010, 12:39:27 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Misery

My, you're being pushy about that... those are pretty high level features. I can see battle effects justifying the use of a program because of the visuals involved, but it would make more sense to just make custom code for the others IMO (you should remove "Music replacement/addition" from the list, btw). Hex editing/disassembly for the whole ROM would be nice to see in the editor though, but maybe there's a reason why it's currently only available for map code.

Anyway, I hope he puts priority on map editing. I imagine it will take a lot of work to make it user-friendly, but the maps are the most fundamental part of the game after all. Along with battles, but the editor already gives us a lot of influence over those.

Rolina

Well, I'm being pushy for a reason.  These are features that have been requested from the beginning, but all we're ever told is "that requires ASM hacking" and it's left at that.  To be honest, I'm sick of the reason - it's about time he started looking into some of this.  Another thing that would surely help is to have Atrius give us more updates on the progress of the editor - it sucks being left in the dark with sparse updates of what's going on and what he's tackling now.

Atrius (He/Him)

Quote from: Role on 30, August, 2011, 08:10:10 PM
Well, I'm being pushy for a reason.  These are features that have been requested from the beginning, but all we're ever told is "that requires ASM hacking" and it's left at that.  To be honest, I'm sick of the reason - it's about time he started looking into some of this.

Well, I'm not going to lie and give you a false reason just because you want a different one.  Besides, I have been making progress toward ASM hacking for a while now, it's just slow because it's an insanely complex thing.

Scanning through ASM code to detect data pointers



Detecting function calls, and their arguments


That aside, I'm more worried about features like sprite/map editing at the moment.  Y'know, ones that won't require a skilled coder to do in the editor, and would therefore be more useful to more people.
[sprite=220,4,0]I'm shaking my head in general disapproval of everything[/sprite]

Rolina

#143
Ah, now that's what I was talking about!  We just need to be kept in the loop!  It's frustrating when we go a long time with no news, you know?  Even if you have been working on it, every time we ask all that seems to happen is that you counter with "that needs ASM editing" and it ends there.  You don't have to lie to us or anything, just... keep us informed on what's going on.

Also, is there any way to make this an open source editor?  I'm sure it'd be great if we could have multiple people developing for it... someone may find something that you missed, or could come out with a plugin that helps to refine things and make it more user friendly or something.

Edit: Also, can you explain how a feature that uses ASM editing would work?  Say, for example, if we used one of the three remaining element slots and were to assign a power/resistance formula to it... would we have a section to go in and fill all that info out, and the editor just translates it into ASM?  Or would we need to have people actually post different ASM... um... layouts, I guess, and tell you what to replace where?

Atrius (He/Him)

Game Maker isn't designed for an open source development style.  You can't patch in code changes easily like you can with many other programming languages.  The most likely outcome if I open sourced it, and other people started working on it is that we'd end up with branched off versions of the editor in development by different people.

Three remaining element slots? ...  *Ahem*  Golden Sun's engine is programmed to support 4 elements.  The game contains 4 elements, Venus, Mercury, Mars, and Jupiter.  4 - 4 = 0, not 3 Role.  So your example would work about like trying to fit an elephant inside of a solid boulder.

Anyway, ASM is compiled programming.  It's not data, it's not a scripting language, it's programming converted into a format that a computer processor can understand.  The functions to make it look like this contain more lines of code than the functions for decompressing sprites, and it's still completely useless to most people in that format.  Your "Why can't Atrius just make ASM editing happen" attitude lately is seriously pissing me off because it seems like you have no grasp of what it is exactly you're expecting from me.  You're asking me to program a decompiler, some sort of API implementation so user written code can actually work with functions in the game, a programming interface or some other ridiculously complex thing that manages to convert programming into a user friendly experience, as well as a compiler into the editor.  Any one of those things alone would be an "EFoC" so I can't even confirm that ASM editing will be a feature in the editor because I seriously do not know how the hell I would pull it off.
[sprite=220,4,0]I'm shaking my head in general disapproval of everything[/sprite]

ThanatosTheDark

I just KNOW that someone is going to chew me out for this

What is asm?
I'm no hot-shot hacker so I wouldn't know what it is.
I am nothing more than a nothingness that never was.

Atrius (He/Him)

ASM is the byte code format that the ARM processing chip in the GBA runs.  Basically it's the format of the game's code/programming after it's been converted into a language the system can understand, and run.
[sprite=220,4,0]I'm shaking my head in general disapproval of everything[/sprite]

zman9000

Wow I didn't know ASM was that complicated... well, good luck with it.
Check my youtube channel out for lots of cool gaming related videos at http://www.youtube.com/user/xXzman9000Xx

Rolina

#148
QuoteGame Maker isn't designed for an open source development style.  You can't patch in code changes easily like you can with many other programming languages.  The most likely outcome if I open sourced it, and other people started working on it is that we'd end up with branched off versions of the editor in development by different people.
Then why not have a dev team instead of just one person?  You'll work on it together, each finding different things  Surely a team of developers is better than just one.

Quote from: Atrius on 02, September, 2011, 05:03:58 PM
Three remaining element slots? ...  *Ahem*  Golden Sun's engine is programmed to support 4 elements.  The game contains 4 elements, Venus, Mercury, Mars, and Jupiter.  4 - 4 = 0, not 3 Role.  So your example would work about like trying to fit an elephant inside of a solid boulder.
Yer gonna have to explain how the "No attribute" works then.  Because I count 5, and given my understanding of how computers work, if there's 5 options, the bare minimum means 8.  If there truly is only support for four, you're gonna have to explain this (see attached pic).

With my knowledge of computers, and without the ability to see what's in the code or really understand some of it, this is what I've been able to gather:

  • There are 4 slots for 'true' elements.  This is the source of power and resistance within the code.  The range for power and resistance is from 0 to 255, and there are likely caps within it to prevent it from going below 1 or above 200.
  • In terms of computers and numbers, everything is limited by 'powers of two'.  In a list that does not contain a value which a power of two, there is usually empty, dummy data filling up the last of the slots.  As there are 5 selections for what attribute a spell has, this implies there are 8 things that can be chosen, but three are dummied out and unused.  These three could be used to give the illusion of additional elements.  This would be done by coding it in a way so that it looks at and possibly averages the true elemental values - so one could code it in a way that the new, or "derivative" element uses an average of powers and resistances to get the new value.
  • By doing this, we could add variety to the game without requiring drastic restructuring, and instead simply giving a purpose to unused values.

Given the way you appear to be trying to strike this down, it seems as though this assumption may be off... but without explaining HOW it's off, it doesn't solve any problems, rather it simply comes across as though you're not quite hearing what I'm suggesting.

Is there something in the code that prevents something like this from working?  And if so, can you actually explain what it is that's preventing it from doing so rather than just spitting out "4-4=0" and sounding like a jerk?  I can do basic math, you know.  I'm sure we all can.  There's no reason to be rude when doing something like explaining why can solve the problem without pissing people off.

QuoteAnyway, ASM is compiled programming.  It's not data, it's not a scripting language, it's programming converted into a format that a computer processor can understand.  The functions to make it look like this contain more lines of code than the functions for decompressing sprites, and it's still completely useless to most people in that format.  Your "Why can't Atrius just make ASM editing happen" attitude lately is seriously pissing me off because it seems like you have no grasp of what it is exactly you're expecting from me.  You're asking me to program a decompiler, some sort of API implementation so user written code can actually work with functions in the game, a programming interface or some other ridiculously complex thing that manages to convert programming into a user friendly experience, as well as a compiler into the editor.  Any one of those things alone would be an "EFoC" so I can't even confirm that ASM editing will be a feature in the editor because I seriously do not know how the hell I would pull it off.
First, it's not a "why can't you just do it" so much as it is a "Why don't we even have updates on this?"  Again, part of the reason for the attitude is because every time it's brought up it just gets shot down with just "That requires ASM".  That really doesn't tell us much, and often comes across as "It's too complicated, I'm gonna not work on it" at times.  We know you're working on it, but without any updates or info on how things are coming along, it gets quite frustrating.

Second:  EXACTLY.  We have no grasp on what needs to be done.  This is easily fixed, though - though simple explanation.  Tell us what all exactly is going on with this, help us to understand the problem.  You say "ASM" and we go "Okay... and?"  We aren't crazy awesome programmers - well, not most of us anyways.

I think a lot of the problem actually lies in the fact that you're only one person... there's a few people here who have been looking into this stuff now, I think it may be a good idea to start working on it together to try and find things that work.  Yes, I know it's not as simple as I make it sound, but we can't just keep relying on one person and making more and more demands.

Atrius (He/Him)

M'kay....  Obviously I need to clarify a couple points.

The "Is this possible..." and "List of things which require ASM editing" threads are BOTH in the general Golden Sun hacking section of the forums, NOT in the editor's section.  When I responded to those threads I took that into account, just because it is possible to hack Golden Sun to do something does not mean that it will be possible in the editor.  The editor is only intended to be able to edit the game within the confines of it's original engine.

Secondly, as I've stated ASM is compiled code.  As such you can typically infer that most things that require ASM hacking require modifying Golden Sun's engine in some way.


Obviously there have been exceptions with things added to the code patches section of the editor, but you should not assume that just because it is possible to do something that the editor will support it.
[sprite=220,4,0]I'm shaking my head in general disapproval of everything[/sprite]

Rolina

Then the obvious question remains:  What will the editor support?

Atrius (He/Him)

I only have an intentionally vague response for that.  "The goal is to create a program fully capable of editing all of the data in Golden Sun: The Lost Age within the confines of it's engine."

This includes all of the obvious things like items, enemies, abilities, dialogue, maps, and graphics.  Ideally, even though they're ASM, I would like to add support for editing abilility animations and cutscenes as well, but I can't guarantee it at this point.  Beyond that most things that require ASM hacking would only be considered extra "bells & whistles" if they made it into the editor at all.
[sprite=220,4,0]I'm shaking my head in general disapproval of everything[/sprite]

Rolina

Well is there anything you can definitely rule out?

Also, what about clarification as to how it determines what element abilities have?  Is it a choice from a list of 8, or is it a boolean followed by a choice between four?

Atrius (He/Him)

Definitely rule out?  Aside from what I've already made obvious won't happen like having more than 8 party members...  Not really.  I will say that derivative elements is EXTREMELY unlikely, and anything involving ASM "editing" is toward the bottom of my priority list for even experimenting with right now.  Finishing up sprite editing, being able to assign monster groups to maps, and other misc Map data like assigning music, and the names that appear when you enter them are more toward the top followed by actual map editing a little further down.  There are always little things popping up as well that make it higher on the priority list just because they're simple, and won't take a lot of time.  Charleysdrpepper's discovery of ability type values would be a good example of this.


QuoteAlso, what about clarification as to how it determines what element abilities have?  Is it a choice from a list of 8, or is it a boolean followed by a choice between four?

It's a full byte, just like everything that references party members of which there can still only ever be 8.  Often times in cases like this the limits are programmed into the algorithms that handle the data because there's no way the engine can support more than a certain number.  If you give it a higher number than it allows the game still won't know what to do with it even if the data somehow exists, the function will exit because it knows it can't do anything with it, and the game will likely crash since the function didn't do what it was supposed to.
[sprite=220,4,0]I'm shaking my head in general disapproval of everything[/sprite]

Rolina

@CDP:  Speaking of charlie, that's exactly why I'm saying you should get a team together.  By working working together, you're bound to find things the others miss.  When one person has to leave, the others can continue in their absence, and progress will continue.  Sure, I may be generalizing it a bit, but it's better than working alone - I'm sure you guys could figure out a method of working on this together without resulting in a bunch of different versions, perhaps each of you tackling a different issue, with you as the project leader.


@Elements:  So there are 8 slots, just as I've been thinking.  So basically what you're saying is that there's other things in the game that prevent a value other than those five (the four elements and non-elemental) from being used, which is why derivative elements are going to be a pain to figure out how to even get the game to address them, before even thinking of getting it to properly pull off the derived power/res formula.  Wouldn't it have been easier to simply say this, rather than insult my intelligence?  By simply explaining that fixing it so that it's possible would be more trouble than it's worth, this whole mess could have been done and over with just as it started - several years ago.

Atrius (He/Him)

Technically there are 256 slots if you want to look at it that way, just like for party members.
[sprite=220,4,0]I'm shaking my head in general disapproval of everything[/sprite]

Rolina

Wait wait...  WHAT?!

Why... but... I...  Was there some particular reason that one would want to allocate that much space yet dummy that much of it out?!  Wouldn't smaller data values be more sensible?!

Atrius (He/Him)

Typically a byte which holds any value between 0 and 255 is the smallest storage unit.  Anything smaller requires the code be written specifically to further subdivide it.
[sprite=220,4,0]I'm shaking my head in general disapproval of everything[/sprite]

Rolina

Really?  Huh... You learn something new every day.  Would this also mean that the code itself (not the editor) has the capacity to have power and resist values for more than just four elements, or is that done differently?

Salanewt

A single byte goes up to xFF, which is 255 in decimal format. With the way the code is constructed according to Atrius, it would probably be inaccurate to call everything past x05 dummy data; after all, the term "dummy" usually only applies to existing data that has been made useless. It would be like saying that ability #800 is a dummy spell, when there is no ability #800.

An easier way of putting it would be something like "while the possibility exists in theory, the game has been coded specifically to only have to account for existing functions". For the best results, one would have to alter the code enough to be able to allow for it.


Well, Atrius beat me to the response. Still, the information that I posted might help a bit. It is hard for me to say for sure though, as I am mostly applying what I know of GBA hacking in general to Golden Sun in specific.
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?