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

YES/NO Dialogue Options

Started by FlyingZeppelin, 31, October, 2015, 11:39:00 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

FlyingZeppelin

Hey, Fella's. I'm a fan of the board, and I'm hoping you can help me out.

I have a fairly simple question, but so that we're on the same page, I'll start with why I'm here in the first place.

I loved the Golden Sun games growing up. They're fantastic games and absolutely deserve the praise they get. Remembering back to playing them for the first couple of times all those years ago, I have almost nothing but great nostalgia. Almost nothing. ALMOST NOTHING. With all games, there can be small things that irk you -- or a lot, if its an awful game.
    Being young and wanting to fill my mind up with tonnes of knowledge, playing games with a lot of dialogue wasn't an issue for me. I'd push through it gladly to keep eating up that nutritious gameplay, but growing older, I've gained an eye for criticism and found that it's harder for me to force myself through things that I find annoying to get a relatively small amount of joy afterwards. I'm a big believer that GAMEPLAY is most of what makes a game fun, and that breaking the flow of gameplay for minutes at a time with line upon line of unskippable dialogue is just plain excruciating and makes me want to put your game away and never touch it again. It's a harsh view, I know, but its justified.
    I feel like developers at the time -- and still some now -- didn't realise that video games are their own medium and have vastly different ideas and abilities for story telling than books or movies. A truly good video game is able to tell its story -- if it has one -- without breaking the flow of the game for too long. Ideally not at all... It's not necessary to tell the audience huge amounts of information that doesn't add to the game in a meaningful way. In a book, it'd be fine becuase THAT'S WHAT A BOOK IS; a medium for READING and nothing else -- not counting picture books -- but that's not what a game is; its primarily a medium for PLAYING. If you're writing dialogue for a game, re-read what you've written and refine. refine. refine. That's absolutely not to say that a game should have no plot or dialogue or cut-scenes; those things have a completely valid place in video games, and God knows it's one of the biggest ways to convey information to the player, but there is no reason for a game to have it's gameplay over-shadowed by it's story.

OK. Alright. There you go. Now you know where I stand, and can probably guess what I'm about to say next;

I have decided to refine the dialogue of the first Golden Sun game to something a lot more flowy! Maybe the second one too. maybe not. Probably not... But hey, it's gonna be great:!::heart:
I'll make a post with the finished product and the forums, you guys can check it out, play it, and hopefully you'll like it :!:

NOW. To my problem;

I've been using the Pre-Alpha release of the GSToolkit to extract the script of the first game, refining the story dialogue and then re packing it into the game. Things have been going well so far, but I've decided to get rid of a couple of the YES/NO dialogue options since most of them serve no real benefit to the game and take up precious playing time. here is where my problem lies.
As seen in this image; http://imgur.com/223MKuy , a particular marker is used at the end of the line where a YES/NO dialogue option appears in the game; {1E}. The script has every line copied as a comment -- denoted by the # symbol at the start of the line -- so you can see how it originally was, and you can see in a few places where I've removed some dialogue and just left the {00} marker. I've done this to the line where that {1E} marker is, and the lines that have the consequent dialogue for both choices, and when I play the game, the dialogue is gone, but a YES/NO option still pops up. I am able to select YES or NO, and doing so leaves me with no dialogue and no way to advance to the next scene.

Who can help me figure out why, even though I've gotten rid of the {1E} marker that calls a YES/NO option, the option still pops up, and how I can get rid of it to advance to the next scene,

I really appreciate the help, everybody. :heart:

Daddy Poi's Oily Gorillas

#1
Ever heard of the Ace Attorney/Phoenix Wright games? They have an amazing amount of text... not much game play mechanic besides choosing options/selecting stuff in images. The stories are quite interesting, though.... I must say.... I guess it can be thought of as a novel done as a game.

QuoteWho can help me figure out why, even though I've gotten rid of the {1E} marker that calls a YES/NO option, the option still pops up, and how I can get rid of it to advance to the next scene
Sounds like Map Code editing to me... You may need to know some assembly, but I think this can be done with Atrius's editor... (Map Editor > Code Hex to edit, although Code Disassembler should be used to read what's what.)
Could probably find the location of what references the string (in a moment(?) Assuming I do.)..... and then you can edit that how you want.



Let's see...

02008000 = Entrance to room cutscene....
> 020083F8.....


02008654 = Loads number "0xE52" into r5.
0200867E = r0=r5+1. (0xE53)
020086FA = r5=r5+2 (0xE54)
02008858 = Turns flag 0x21 on. (Wearing Machete flag.)
Probably should research around here.....(?)
02008936 = Likely is a function call for the "Have you got everything you need?" dialogue? Two args are giving: The first (0x8008) The 8 on the right is the NPC portrait.
02008942 = Noteworthy because I see a return address in the stack when I have the game at the yes/no dialogue. 03007E7C = I mean the value at this address when I say "in the stack" - I'm thinking this is the yes/no thing, and next comes the conditional check for which you selected? Seems only thing that happens is whether the text index gets incremented or not.

--
02008C2E = 0xE5B


---
Hm... What if you change 0200893A to call 020099DC instead of 020099CC... And get rid of the part at 0200893E-02008959? (Untested.)
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! :)

FlyingZeppelin

Thanks, Fox. Can you tell me what program to use to edit that 0200893A to call 020099DC instead of 020099CC?

Daddy Poi's Oily Gorillas

#3
To 020089CC if you still want the text string to be referenced... however, in quick testing... I think I had some problems.... I think.... (I would look into it, but I think it is unnecessary at the time.) Since it appears you 00'd out the line in the image, we can get rid of that as well.)

Program? Only Atrius's Editor is known to compress the data at this time, I believe... So it may be the best to use... (Testing just involves using VBA's disassembler/memory viewer, though... but that's just editing RAM/not the ROM.)

So using Atrius's Code Hex,with Vale map open.... (Preferably the one indoors if the outside maps use a different map code file.)
Make 02008936-02008959 be 00... This should get rid of the dialogue that comes up with the menu, the yes/no menu, and the increment that happens if you select one over the other.
I think you may still be able to put a dialogue for getting down the stairs if you want, though... (By editing this line at 0xE58.) If so, that's because of the next dialogue call... (Usually the one after the icon menu one.) And at this index because of how text index would increment in RAM anytime a text string is used, if I remember correctly.

Anyway... 0000 = lsl r0, r0, 0x00.... Which is pretty much a 0 shift, so your value will be the same... It's not a no-op command (mov r8, r8 or something-ish is.), but it still does the trick.
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! :)

Atrius (He/Him)

Unfortunately when you use the editor on the map code it might end up moving it into the area used by GSToolkit for text...
[sprite=220,4,0]I'm shaking my head in general disapproval of everything[/sprite]

FlyingZeppelin

OK, so changing all of those points has made the YES/NO option disappear, but it still wont allow me to continue down the stairs onto the next scene.

Can you tell me how you came up with those addresses to change to 00 in the first place?

Daddy Poi's Oily Gorillas

#6
-Forgets to actually test this as well- Apparently, editing those to 00 causes the convo to sort of freeze for a couple seconds... and Dora's portrait might only show for a sec... I' not sure why.... but then continues on....

I think it's a bit easier to study GS2 because of all the studying I've been doing... but some day, I really should go through GS1 and document the matching functions from GS2.... (I've only ever did this with Party Mechanics, and yes, I did find it interesting to note the differences.)

QuoteCan you tell me how you came up with those addresses to change to 00 in the first place?
It may be a bit complicated, but more or less... finding out where in the Map Code was being executed after having that dialogue up was the goal... which is why I look in the stack for 02008000-02000FFFF (Numbers that end in 1, 5, 9, or D) pointers. (By stack, I mean, in VBA see Tools>Memory viewer.... the stack should be around 0x03007800-0x03007F00... Starting at the end and building backwards.... the data that isn't constantly changing in the stack. (The data pass the stuff that is)... is what I looked at. (In GS2, stuff before 03007800 may be music related if I remember correctly.)
Understanding that 02008000 in the entrance cutscene thing... and following the code from there is also an option, but could be slower.
While SDL-H is an option, I did not use it for locating this... (I most likely would if I had no idea where to look, though.) But don't underestimate the stack, it can hold some valuable information at times...

After finding the location, it was just a matter of reading the code (With the VBA>Tools>Disassemble...) there to figure out what was going on....
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! :)