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
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Topics - Plexa

#2
Golden Sun / Lash Ropes
18, September, 2017, 01:18:01 AM
Okay so these are driving me crazy. The length of the rope on a lash post is variable in length - either short, medium or long (as far as I know). But there doesn't seem to be a good reason why the length of the rope changes? It definitely isn't based on the GRN? Is it related to a global counter or something?

EDIT: Whoops wrong game :D
#3
https://www.youtube.com/watch?v=Ki_aclH14a4

Found by fx (definitelynotfx on twitch)

Going into the ICG state in this particular room and jumping around will cause your Z coordinate to descend infinitely. Entering retreat mode and then save/reset will cause a game crash on load. Apparently it causes the glitch out making noises similar to https://www.youtube.com/watch?v=BPwQR8xeEGU
#4
Golden Sun: The Lost Age / Megiddo vs Doom Dragon
03, September, 2017, 12:09:58 PM
Never mind! I'm dumb. This was a spreadsheet calculation error :)
#5
Golden Sun / Graphical glitch in Lamakan
02, September, 2017, 12:06:30 AM
https://www.twitch.tv/videos/171607528

Never seen this before! Posting here in the off chance there's something interesting going on.
#6
Golden Sun: The Lost Age / More RNG Questions
28, August, 2017, 10:21:09 PM
Thinking of seriously rerouting GS2 any% next week and there's two things that will make that a lot easier.

1) Randomly Generated Stats on File Generation

When creating a new file, Felix's party's stats are generated upon loading the rename character box. Isaac's party's stats and djinn are generated upon confirming that no PW is required. It would be convenient to know how the game uses the GRN seed to do this, so that I can use external scripts to find the ideal stats/djinn combination.

For reference, me and Zetonegi both have 'good' setups as is. Mine is easier but generates worse stats for Jenna which ends up making a difference at Serpent. Zetonegi's is pretty good but takes a long time to set up. Finding a happy intermediate or a strict improvement would be desirable.

2) Attacks First/Caught By Surprise

Zetonegi wrote a script to dump the first 2000 or so BRN seeds that give attacks first or caught by surprise. I'd prefer to just read the BRN directly and determine if the next fight has either of these properties.

By cross checking his list of numbers, it looks like it is necessary (but not sufficient) for the last three hex digits of the BRN to be less than or equal to 0x0FF. While caught by surprise must be less than or equal to 0x00FF. But beyond this check I haven't been able to work out how to predict attacks first or caught by surprise.
#7
Golden Sun / Saturos Attacks
22, August, 2017, 02:30:12 AM
Hey, just wondering how the game determines where Saturos starts in his pattern?

I tried comparing it to the stuff we did for Star Magician (http://forum.goldensunhacking.net/index.php?topic=2784.msg46723#msg46723) and it didn't seem to be following this formula.
#8
Golden Sun / I crashed the game in Tret tree
15, July, 2017, 11:07:38 PM
https://www.twitch.tv/videos/159498931

I posted about some weird tilesets and stuff being rendered in Tret on emulator a long time ago. Finally found a convenient door to test out what happens on console. It crashes the game.
#9
The other day I found this oob stuff in jupiter lighthouse: https://www.twitch.tv/videos/157338573

I've been trying to track down the flag/addresses that indicate this kind of skip could be used elsewhere. My rudimentary brute-force RAM search has turned up nothing lol
#10
This is probably nothing, but it's worth pointing out in case there is some crazy thing that's useful resulting from this. Video: https://www.twitch.tv/videos/157318168?t=23m40s

I have the following codes active:
02030E3C:00000000
02030E40:00000000
02030E44:7FFFFFFF
02030E48:7FFFFFFF

I know this causes weirdness on the world map, but I've never seen it cause huge weirdness like this before.

Basically, accessing certain doors OOB will black out the screen and the game will start writing values to the games memory. It basically filled up a lot of the 02000000-02000300 section as well as writing a ton of sprite data (tracked by the nonzero tile thing in my script, lower the number = more sprite data). Eventually the game will load the room I was supposed to end up in.

The values of memory written change depending on the coordinates of the door I access (not the destination of the door) and solves the puzzles in the game as you would expect with values written to those addresses.

I'm wondering why this bizarre behavior is having, and whether there's any idea as to how this may be replicated without the camera lock codes.
#11
Golden Sun: The Lost Age / Can anyone explain this?
07, July, 2017, 01:10:04 PM
https://www.youtube.com/watch?v=AIdt53_mqXQ

Why on earth is the item pulled by the retreat glitch the Sol Blade?

Bonus: you get different garbage text by talking to the stone from different directions.
#12
Golden Sun: The Lost Age / Jupiter Lighthouse Stuff
08, February, 2017, 07:11:32 AM
Hey everyone. Jupiter lighthouse is known as the most unbroken dungeon in TLA. Everything we've thought of has failed. I took another run at the Lighthouse today and made a curious observation concerning the retreat glitch.

Normally the retreat glitch works like this. After retreat has failed the game thinks you are in the room that you would have been sent to if retreat was successful (the 'retreat room'). Example - entering Airs rock through the second entrance makes the retreat point Area 55 Door 10, if you enter another Area of the dungeon (say Area 58) and use the retreat glitch then the Area is reset to 55, while you're still physically in Area 58. In this glitched state walking through doors loads the corresponding door in the retreat room. So if you're in Area 58 and walk through Door 3, instead of being sent where this door sends you instead you will be sent to where Area 55 Door 3 will send you.

Hopefully that's not too confusing.

In Jupiter Lighthouse this doesn't appear to happen. Regardless of which door you access, you always get sent back to Area 251 Door 0. This is the same location you'd be if you'd entered the dungeon from the overworld. I'm not sure if it is Door 0, but it certainly seems like it is.

I'm just wondering if there's anything special code wise surrounding this lighthouse that might explain this. I know that encountering Alex resets the last visited Sanctum to Contigo, but beyond that I don't know of anything. 
#13
Golden Sun: The Lost Age / Collision Stuff
16, January, 2017, 07:41:03 PM
https://clips.twitch.tv/tl_plexa/CourageousTigerHassanChop

https://www.twitch.tv/tl_plexa/v/115272846

Mostly this is just for curiosity. My theory for why this is happening is that this is the same as using a switch to interrupt movement and weird sliding happening (you might recall it from Lunpa Cave). Instead of the switch interrupting movement it is the sand rising cutscene and if you're in the right position and/or in the right part of your movement animation you will slide. If you happen to slide into a collision seam or something like that in the right pixel/subpixel then you can go through and clip like I did in the clips there.

If this is the case it might be possible to use elsewhere, but I'm not sure.
#14
Golden Sun: The Lost Age / Guardian Ball
08, January, 2017, 05:22:40 AM
So I'm experimenting with Star Magician and I'm having trouble manipulating the Guardian Ball into not using Guard Aura. I've advanced the BRN 11 times from 0 and it's using Guard Aura inconsistently. Changing the GRN changes whether or not the Guardian Ball uses Guard Aura - the resulting turn order from a seed where Guard Aura is used is the same as one where Guard Aura is not used.

This is a very unusual thing, I don't know of anything else that behaves this way. I was curious if there's any special coding for Guard Aura or whether I'm missing something and it actually does behave according to usual battle rules.
#15
Feedback / Trouble with verification email
26, December, 2016, 10:10:19 PM
Hey guys. A friend of mine (Ark) is trying to register here and is unable to get the verification email. He's checked his spam folder and sent the email twice. Any advice?
#16
Golden Sun: The Lost Age / Lemuria Fountain is weird
18, December, 2016, 09:36:46 PM
Can anyone explain this?
https://youtu.be/YrxQEaDx2uc

Two save states, same RN value, identical files. Exit/enter fountain and tossing medal yields different results. Despite everything being aligned otherwise.

The only thing that I can think of is the positioning of people outside of the fountain leads to inconsistent results... but as I mentioned both save states were generated from the same save file so I'm really confused.

This also happens on console for reference.

Update for more information:
What I'm doing here is clearing the title screen within a 0.1s window (~6frames) to get amongst a set of known seeds. I toss two lucky medals to work out what seed I'm on. Then advance the RNG using the nurse cap/save game to a particular RNG value. Then I use pound (which gets me to the RNG value seen in the video), exit/enter and that should give me the wild coat. But obviously I'm getting either the wild coat OR the crafted gloves.

It's 100% the exit/enter that is causing the discrepancy. Throwing another medal without exit/enter gives the same result from tossing the medal.

I gathered some data, and it might be that the original RNG seed plays a role somehow? Perhaps in distributing random movement NPCs in Lemuria? I'm not sure. I did get Wild Coat off my Fireman Pole/Potion seed and then Crafted Gloves off of Water of Life/Potion seed consistently (as far as I can tell) but it's a hard thing to test rigorously.
#17
Golden Sun: The Lost Age / GS2 Utility Script
07, October, 2016, 08:50:05 AM
Hello everyone! I'm back to work out some things for writing a utility script for GS2 akin to the one made for GS1 http://forum.goldensunhacking.net/index.php?topic=2656.0

The big difference between GS1 and GS2 is that the kinds of things I need out of the script are somewhat different. I've ported over everything from the GS1 script but there's one thing in particular that would be much more useful in GS2 than GS1 is the value of the agility roll in a fight.

So let's be precise. We know that a member of your party can have its agility boosted between 0-6% depending on RNG (specifically, the general random number "GRN" i.e. the random number in the 0x03xxxxxx series). What Zetonegi found a couple months ago is that the reason the GRN advances when finalising your party members action is that the game calculates the 0-6% boost at that step.

Just so there's no confusion; Say the party member is Felix, you command Felix to attack an enemy. You then get to issue a command for Jenna. Once the attack is issued and before you choose Jenna's action the random number is rolled to determine what Felix's agility will be for that action. If you cancel Felixs command (by pressing B) and issue a new one, a new agility boost is calculated by rolling the random number again.

I'm curious as to where this value is stored, so that I can get my script to read this value and know what agility my party members will have on that turn. 
#18
I've known about this glitch where you can unload one of the flame torches in Mars Lighthouse but never been able to replicate it until today.



Here's how its done; http://www.twitch.tv/tl_plexa/v/28696965

Essentially you get an encounter approximately on the same frame as when the torch gets lit, and then after the encounter the torch is missing. I don't think this is usable anywhere else but I'm posting it here in case somewhere here is interested in why it happens and if there's any potential for further abuse.
#19
Golden Sun: The Lost Age / Odd Discovery in Mars Lighthouse
14, September, 2015, 11:01:34 PM
So my good friend Bloodduster found this today: http://www.twitch.tv/bloodduster/v/16027481
Essentially, in Mars 2 (i.e. after the lighthouse has been activated) if you ascend one of the four elemental towers (excluding venus) and after using Blaze to activate the flame you enter retreat mode (get to less than 6 PP, use retreat on a hotkey) and cast Blaze a second time you will activate the Venus tower's flame. If you climb the Venus tower and try this you simply activate the venus flame again.

This is a little bit perplexing because entering retreat mode makes the game think Felix is in the first room of the dungeon (which in this case is the entrance to Mars lighthouse) and there is no flame to activate there. Additionally, casting blaze anywhere else in retreat mode doesn't appear to have any effect. So from my naive point of view, there's no reason why this should work.
#20
Golden Sun / Creating useful Lua Scripts
08, August, 2015, 02:21:38 AM
Hey all.

To better optimise the GS1 speedrun I want to write a few lua scripts to do useful things for us. The ones I have at the moment cover things like:
- time to next encounter
- GRN/BRN display
- GRN/BRN advance counter (number of times RNG advances)
- enemy hp
- position of Isaac

The way to take scripting to the next level of usefulness is to develop a script which tells you:
- encounter step growth rate (i.e. how fast does the encounter counter rise) (im sure there is a memory value that can be read for this but I don't know where it is)
- number of GRN advances required to flee from battle
- number of BRN advances required to trigger an assassin blade instant kill

The biggest barrier to creating the second two scripts is that I don't know how the game modifies the GRN (general random number) and BRN (battle random number) to be used in the formulas in the master formula thread.

Hunting through the disassembly, I think to generate a random number between 0x0 and 0xFFFF it shifts the GRN value to the right by 2, then shifts to the left by 4 and returns the hex value of the inner four digits of the GRN value (in hex). I have no idea how the game modifies a random number to get a value less than 0x63.

Last time the subject was discussed, Fox said
Quote0811CE94 = Calculate chance of fleeing.
5000 + (2000*fleeFails) + (Relative Level * 500) >= Random(0,9999) , Oddly uses the "General" RNG.
Relative Level = Get the average level of all the PCs and subtract the average level of the enemies.
If my previous guess is correct, I now have a number between 0 and 65535 and I don't know how to convert that to a number =< 9999 for use in the formula. I figure if I can work out how to get the flee predictor working, the assassin blade should follow in a similar manner.

I've spoilered a section of the code I am writing in case that is useful.
[spoiler]
local GRN = 0x03001CB4 -- General RN

local function flee(GRN)

el1 = memory.readbyte(0x02030887)
el2 = memory.readbyte(0x020309d3)
el3 = memory.readbyte(0x02030B1F)
el4 = memory.readbyte(0x02030c6b)

if el4 ~= 0 then
ela = (el1+el2+el3+el4)/4
elseif el3 ~=0 then
ela = (el1+el2+el3)/3
elseif el2 ~=0 then
ela = (el1+el2)/2
else
ela = el1
end

party = memory.readbyte(0x02000040)
isl= memory.readbyte(0x0200050E)
gal= memory.readbyte(0x0200065a)
ivl= memory.readbyte(0x020007a6)
mil= memory.readbyte(0x020008F2)

if party == 15 then
ml = (isl+gal+ivl+mil)/4
elseif party == 7 then
ml = (isl+gal+ivl)/3
else
ml = (isl+gal)/2
end

LevelAve = ml-ela

fleeFail = memory.readbyte(0x02030092)

fl = 5000 + (2000*fleeFail) + (LevelAve * 500)

cgren = ??? [this would be the GRN value modified]

if fl >= cgrn then
return true
else
return false
end
end
[/spoiler]
#21
Golden Sun: The Lost Age / OOB Walls and Encounters
26, January, 2015, 02:17:02 PM
This is a topic I've long been curious about as it begins to suggest that the out of bounds (OOB) world of Golden Sun is an incredible mess. For the record, this applies to Golden Sun 1 as well but is more pronounced in Golden Sun 2. Anyway, let's talk about what the issue is.

We've spent an awful long time working out how to navigate the OOB world because there are loading zones/doors that you can access here that can warp you various places. One well known instance of this is the Gondowan skip which allows you to go from Indra to Gondowan pretty much anytime that you like. In particular, in a speed run after getting scoop you will go do the Kibombo quest and get Piers etc before fighting Briggs (and activating the flag for the rope that allows you to pass through the mountains). Here's one possible Gondowan skip; https://www.youtube.com/watch?v=05FNHFx6LeI here is another https://www.youtube.com/watch?v=AEaYMVn5cH0 and the one we currently use in speedruns is slightly different again.

Gondowan skip is also an example of the problem we currently have. All of these methods work so long as you maintain a 0 BRN i.e. get no encounters.

Bizarrely, getting certain encounters will completely change the OOB landscape. Most often this will result in walls being put up everywhere preventing you from accessing anything useful. The prominent example in this area is getting the 2 chest beater party. Once you hit that the landscape changes and there's not much you can do except save, reset and try again.

Other places where getting 'bad' encounters is known to cause trouble include the Aqua Rock skip, Vale Cave Skip (gs1) and Sol Sanctum skip (gs1). Whatever information/files that would be useful to help diagnose the problem here I'll happily supply. More than happy to answer questions if I've been unclear or left out information!
#22
Golden Sun / Tret OOB Weirdness
22, January, 2015, 10:50:50 AM
Using the retreat glitch you can get out of bounds in a number of locations in the game. Generally speaking, the game is reasonably well behaved aside from various junk data lying around. There is one particular out of bounds (OOB) area which does not behave well - you may guess from the topic title that it is tret. Unlike other dungeons, tret has certain areas which will soft lock the game if you walk to them and even a location which will crash the game if you walk there. We in the speedrunning community have no idea why the game is crashing or soft locking, and we strongly suspect there are some other things at play here. I was watching the memory as I moved through tret and it constantly seems like Isaac was running near doors because of how the memory was changing.

I'm including a goodie-pack so that you can mess around with this yourself and hopefully help us understand exactly what the hell is going on here.

1) Here are a bunch of save files while I am out of bounds in Tret: the save states work with VBA-RR v24, there is also a battery file if those fail: https://www.dropbox.com/s/07j7r0ju1z5r4pb/tret%20oob.rar?dl=0
2) Here is a nifty lua script to help explore out of bounds local AD1 = 0x0200053a --Isaac Cur PP
local AD1Value = 5
local AD2 = 0x0200047a -- Step Counter
local AD2Value = 1

while true do
memory.writeword(AD1, AD1Value)
memory.writebyte(AD2, AD2Value)

gui.text(0,00,"Area: " .. memory.readword(0x02000400))
gui.text(0,10,"Door: " .. memory.readword(0x02000402))


gui.text(40,00,"Actual: " .. memory.readword(0x02000408))
gui.text(40,10,"Actual: " .. memory.readword(0x0200040A))

gui.text(0,20,"X: " .. memory.readdword(0x02030ec4)/1000000)
gui.text(0,30,"Y: " .. memory.readdword(0x02030ecc)/1000000)
gui.text(0,40,"Z: " .. memory.readdword(0x02030ec8)/1000000)

    vba.frameadvance();
end

And here are some codes to lock the camera on isaac (but it's really not that useful)
02030DB8:00000000
02030DBC:00000000
02030DC0:7FFFFFFF
02030DC4:7FFFFFFF

(Incidentally, if you know how to make these codes lock when the X/Y coordinates underflow to 4298 that'd be fantastic!)
3) In tret here are some "bad" locations (X,Y):
- (4283,4241) = game crashes and reset
- (4292,4242) = game crashes, no reset (tries to access door 32 from that area)
4) In the 0x02000410-0x02000420 range of the memory you'll notice that there are some changes as you wander around. e.g. load up the battery file and just hold up and see how it changes. This reminds me of what happens when Isaac walks past a door .. what is going on here?
#23
Hi all! So a little bit of back story, part of the GS2 speedrun of Airs Rock involves using the Retreat glitch to bypass a lot of the puzzles in the first two rooms. We do this by entering the second room and ending up at a "dead end", set Retreat to a hotkey and have retreat fail, save+reset which loads us back into the first room. Interestingly, the objects from the second room load into the first room which unloads a whirlwindable rock in the top right which allows us to walk right past where it usually is, into the second room and continue on our glitch-happy way. Once weird thing about this is that as we get close to leaving the area there is a noticeable slowdown in Felix's movement. So I was messing around with the area trying to work out (a) why this happens (b) how to prevent it.

So far as (a) is concerned, it's pretty obvious that the RAM is being overloaded with sprites to keep track of. The tornado generating statues from the second room are generating tornadoes in the first room, and those tornadoes aren't being removed, thus you have an excess of sprites. Now I don't *really* care about (b), but it would be nice to know. What I found out in my investigations was something far more interesting.



After spending a reasonably long time in the room, that starts happening to the menu. This is actually pretty interesting but I am in no way experienced enough to know how to make the best use of this. If people can point me towards the memory addresses of the portraits that would be a huge help to get me started investigating the implications of this glitch. If you'd like to play around with this yourself, I've included a battery file which you can load into your emulator of choice -- just hang around in the first room for a reasonably long time and it should start happening (don't get a fight though, it will refresh everything).
#24
Golden Sun: Dark Dawn / OoB Mechanics
22, May, 2013, 11:37:00 AM
Hey guys! I'm a Golden Sun speedrunner and thus have quite an interest in the glitches in this game. Vanishmantle has been really helpful in confirming a lot of my theories for GS1 and GS2 and since me and the other guy who run Dark Dawn (khyron) are struggling to understand why this worked, we're hoping that the hacking community can again help us out in understanding what is going on here.

Basically at certain points in Dark Dawn the collision detection for matthew (or sveta) stops working and matthew can walk through walls/fall through objects. This is relatively common bug which has plagued many casual runs with the bug happening most often in Ayuthay and Kaocho. My hypothesis for why sometimes the collision turns off is that the game is storing so much information in the RAM that it 'forgets' that collisions should happen and will allow you to walk through stuff. This would be similar to the tweaking glitch in Gev IV pokemon which basically comes about because you ride around in a particular pattern with the bike which (if done right) will cause the edge of the map to not load properly and thus all hell breaks loose.

This would be quite difficult to test because in general it's hard to purposely turn on the glitch... except I happen to have a save state for DesMuMe 0.9.8 which is saved RIGHT before the collision gives way and has given me some useful insight as to the behavior of this glitch (i.e. not moving for even an instant will turn collision back on). The save state is at the apollos lens as depicted below:

The first screen is where the savestate is taken.

If anyone is willing to help investigate this I'll happily supply the necessary files to be able to set this up. I won't make them public for well, obvious legal reasons :)