Username:
B
I
U
S
"
url
img
#
code
sup
sub
font
size
color
smiley
embarassed
thumbsup
happy
Huh?
Angry
Roll Eyes
Undecided
Lips Sealed
Kiss
Cry
Grin
Wink
Tongue
Shocked
Cheesy
Smiley
Sad
page  <- 12345678910111213 -> <- 1 .. 4 .. 13 ->
--
--
List results:
Search options:
Use \ before commas in usernames
"Let's put a SMILE on that face!"
I wasn't necessarily saying that you should farm for one, but that if you managed to get one, it would alter/improve the route.  Farming for one might be preferable though, if it turns out that the alternate route would be significantly different.

I started streaming a casual refresher run the other day, so I'll make sure to catch your stream tonight, possibly while continuing my own run offstream.
I wont be home til later (930pm est) but Id be down to watch that on my twitch app while I do more research + play a bit on my emulator. Where can I catch your stream (both you guys)
Edit history:
Dana Crysalis: 2013-02-13 04:32:16 pm
Let's Dance!
I highly agree on the Double-Beat chance, because while it looks low, in my experience (anecdotal, but), I've pretty much never failed to grab one either on the way through the pass, or stopping for a short time to grind one out.  Sometimes I even find one outside  (but inside would be much easier, with the six rabbit pack, and the HP/MP lake)

Also Doobie, their stream links are:
http://www.twitch.tv/omnigamer
http://www.twitch.tv/cvagts
Thanks Dana!
"Let's put a SMILE on that face!"
Also, if you join the #rpg channel on the irc.speedrunslive.com IRC network, we've been talking about Suikoden 2 among other RPGs.  It would be easier to bounce a lot of things back and forth there, I think.
All the things
Reposting this video:



In summary, use Escape Talismans when possible, and you might find some fun skips.
Time to test this in pretty much every place I can't get through. Cheesy
Edit history:
Lag.Com: 2013-02-14 03:00:01 am
Lag.Com: 2013-02-14 02:58:21 am
sda loyalist
Looks like using an escape talisman could fail to load some scripts? In any case that's somewhat promising.

Also yes, get Double Beat early. It will make the game a lot quicker. I usually give one to Shiro so he can abuse his sky-high speed and strength early. His attack anim is nice and short, too.
All the things
So for experience: http://www.suikosource.com/games/gs2/guides/bestiarylegend.php

I guess it's not a bug at all, just an abuse of the mechanics. What this also means is that it is not required to have it perfectly set up, although it is to your advantage to have as many higher leveled enemies available as possible, since the next time you'll have reduced returns.
"Let's put a SMILE on that face!"
So that means that if you fight six enemies more than 14 levels ahead of you, and one character manages to live, they get 10k experience from each one?  and if two live, they divide that 60k experience?

Also the North Swallow Pass talisman warp doesn't do a whole lot.  There are still Highland guards at Tenzan Pass, and if you exit and re-enter the map, the guards will still not let you pass (re-doing the talisman warp glitches them out again).  My guess is that after you get booted from Kyaro Town, they set the townspeople's dialogue to be relevant to the next time you visit (the end of the war) and that's why the dialogue is such.  The item shop is unchanged as well.
Edit history:
Omnigamer: 2013-02-14 10:55:36 am
Omnigamer: 2013-02-14 09:47:36 am
All the things
Pretty much CVagts. And because it's not recalculated at following levels, each 10k experience is exactly equivalent to 10 levels. Getting it to work with just one character alive may be overkill, but 2 seems more reasonable and still pretty damn beneficial from a speedrunning perspective. 30k experience added on to levels in the 10-20 range is still ridiculous. Just a matter of deciding what's overkill and what isn't, and the time gain/loss associated with each.

EDIT: Actually, now that I'm thinking about it, you can set this up to occur at almost any point by making sure you keep some characters at really low levels. The trick is still finding an efficient way to kill yourself off, but I imagine this becomes easier later on once you can set up a party with only 2-3 characters. Fire Lizard rune would help here; just find a pack of 6 somethings that can only attack front row, and obliterate them with Riou while making sure the last one wipes you out. The remaining character(s) will still receive the full effect.
sda loyalist
Rune explosion is a possibility, though obviously not very likely in a single segment run. Nanami has E-rank with Lightning and Wind, so you can do them pretty early.
All the things
I read up a synopsis of the RNG system, although I'll still have to go in and confirm things myself.

The initial seed is likely the System Clock. This is both good and bad. Good in that it may be abuseable in real-time to force predetermined patterns. It's bad in that to properly abuse it, you'll most likely have to do one of two things: manually set the clock value, or remove the internal battery so that power down always resets the clock. An argument can be made towards either of these cases that it constitutes hardware modification.  It also likely tracks it to the millisecond, so some incredibly precise timing is also required.

That said, if it were possible to reliably abuse it then many, many things would become easier. This includes guaranteed double beat runes, easy setups for level grinding, acquiring specific Rare Finds, and so on. A lot of effort would have to be put in to find optimal times, but it would certainly be possible. Even something like setting up the clock at the beginning of the game could influence how the entire first hour of the game progresses, if analyzed correctly.
"Let's put a SMILE on that face!"
Removing the internal battery definitely sounds like it would be hardware modification, but manually setting the clock value (I assume this would be done on a PS2?) doesn't seem like it.  Maybe that's just me.

And after messing around with a few things, doing a one-man level-up trick seems farfetched, but a two-man seems more feasible.

With regards to the North Sparrow Pass, I think it's an isolated incident and doesn't really have practical applications.  Neat, but no real use.
Edit history:
Omnigamer: 2013-02-14 01:45:50 pm
Omnigamer: 2013-02-14 01:44:31 pm
All the things
End run would probably be done on a PS2 with fast disc speed, but I haven't done any testing with it yet and nobody has confirmed if fast disc affects anything. Loading times seem to be fairly minimal in this game to begin with, but there may be benefits to it elsewhere.

I agree that having 2 people left is going to give a much better time/reward ratio than not. Even 3 people is still pretty darn good (20 free levels) but 2 is all you really need to beat the game into submission from then on.
"Let's put a SMILE on that face!"
Something else I wanted to figure out:  if you're rooting around looking for Kindness Rune stuff, see if it raises a point on x:30:00 times or x:30:00 AND x:00:00.
All the things
I'm pretty sure it's the latter. But either way, you could save yourself some trouble by making sure that your end recipient is in your party when you level up to 40ish in Matilda, since you'll need to have them knocked out anyway.
sda loyalist
About the randomizer: I only see one call to srand(), but I don't know enough PS1 architecture to figure out what all the crap around it does.
All the things
If you have the disassembly, would you mind posting it? I'm fairly familiar with MIPS.
Edit history:
Lag.Com: 2013-02-15 01:26:08 pm
sda loyalist
Here's the relevant code. Might also be some slightly non-relevant stuff near the beginning.
Code:
TEXT:8006DE10 init_srand:                              # DATA XREF: TEXT:8006B058o
TEXT:8006DE10                 lui     $s0, 0x8011
TEXT:8006DE14                 lw      $v0, dword_8010AF94
TEXT:8006DE18                 nop
TEXT:8006DE1C                 beqz    $v0, loc_8006DEE8
TEXT:8006DE20                 lw      $v0, dword_8010D704
TEXT:8006DE28                 nop
TEXT:8006DE2C                 sll     $a0, $v0, 5
TEXT:8006DE30                 subu    $a0, $v0
TEXT:8006DE34                 sll     $a0, 2
TEXT:8006DE38                 addu    $a0, $v0
TEXT:8006DE3C                 lui     $v0, 0x8011
TEXT:8006DE40                 lw      $v1, dword_8010D6D0
TEXT:8006DE44                 li      $v0, 0x8000
TEXT:8006DE48                 addu    $v1, $v0
TEXT:8006DE4C                 lhu     $a1, 0x1A56($v1)
TEXT:8006DE50                 sll     $a0, 3
TEXT:8006DE54                 sll     $v0, $a1, 2
TEXT:8006DE58                 addu    $v0, $a1
TEXT:8006DE5C                 sll     $v0, 1
TEXT:8006DE60                 addu    $a0, $v0
TEXT:8006DE64                 lhu     $a1, 0x1A54($v1)
TEXT:8006DE68                 lhu     $v1, 0x1A52($v1)
TEXT:8006DE6C                 sll     $v0, $a1, 2
TEXT:8006DE70                 addu    $v0, $a1
TEXT:8006DE74                 addu    $a0, $v0
TEXT:8006DE78                 jal     srand
TEXT:8006DE7C                 addu    $a0, $v1
TEXT:8006DE80                 lw      $v1, -0x506C($s0)
TEXT:8006DE84                 li      $v0, 2
TEXT:8006DE88                 bne     $v1, $v0, loc_8006DEA0
TEXT:8006DE8C                 lui     $v0, 0x8011
TEXT:8006DE90                 lui     $v1, 0x8011
TEXT:8006DE94                 sw      $0, dword_8010D614
TEXT:8006DE98                 j       loc_8006DEE4
TEXT:8006DE9C                 li      $v0, 1

As you can see it's reading from a few addresses but I can't say for sure what their contents are. I don't see any obvious timer calls around there but I'm not 100% sure what function name I should be checking for.

As a side note I'm idly trying to decipher file contents and such, so hopefully I'll uncover something fun.
Edit history:
TengEng: 2013-02-16 05:56:31 pm
Whatever, just do it quickly.
Going to reorg the disassembly a bit:

Code:
TEXT:8006DE10 init_srand:                              # DATA XREF: TEXT:8006B058o
TEXT:8006DE10                 lui     $s0, 0x8011
TEXT:8006DE14                 lw      $v0, dword_8010AF94
TEXT:8006DE18                 nop
TEXT:8006DE1C                 beqz    $v0, loc_8006DEE8       ## jump to 8006DEE8 ifeq (MEM32(0x8010AF94),0)

TEXT:8006DE20                 lw      $v0, dword_8010D704
TEXT:8006DE28                 nop
TEXT:8006DE2C                 sll     $a0, $v0, 5
TEXT:8006DE30                 subu    $a0, $v0
TEXT:8006DE34                 sll     $a0, 2
TEXT:8006DE38                 addu    $a0, $v0
TEXT:8006DE50                 sll     $a0, 3                  ## $a0 = 1000 * MEM(8010D704)

TEXT:8006DE3C                 lui     $v0, 0x8011
TEXT:8006DE44                 li      $v0, 0x8000             ## $v0 = 0x80118000
TEXT:8006DE40                 lw      $v1, dword_8010D6D0     ## $v1 = MEM32(0x8010D6D0) 
TEXT:8006DE48                 addu    $v1, $v0                ## $v1 += $v0

TEXT:8006DE4C                 lhu     $a1, 0x1A56($v1)
TEXT:8006DE54                 sll     $v0, $a1, 2
TEXT:8006DE58                 addu    $v0, $a1
TEXT:8006DE5C                 sll     $v0, 1                  ## $v0 = 10 * MEM16($v1+ 0x1A56)

TEXT:8006DE60                 addu    $a0, $v0                ## $a0 += $v0

TEXT:8006DE64                 lhu     $a1, 0x1A54($v1)
TEXT:8006DE6C                 sll     $v0, $a1, 2
TEXT:8006DE70                 addu    $v0, $a1
TEXT:8006DE74                 addu    $a0, $v0                ## $a0 += 5*MEM16($v1+0x1A54)

TEXT:8006DE68                 lhu     $v1, 0x1A52($v1)
TEXT:8006DE7C                 addu    $a0, $v1                ## $a0 += MEM16($v1+0x1A52)

TEXT:8006DE78                 jal     srand                   ## $v0 = srand($a0)

TEXT:8006DE80                 lw      $v1, -0x506C($s0)       ## $v1 = MEM32(0x8010AF94)
TEXT:8006DE84                 li      $v0, 2
TEXT:8006DE88                 bne     $v1, $v0, loc_8006DEA0
TEXT:8006DE8C                 lui     $v0, 0x8011
TEXT:8006DE90                 lui     $v1, 0x8011
TEXT:8006DE94                 sw      $0, dword_8010D614
TEXT:8006DE98                 j       loc_8006DEE4
TEXT:8006DE9C                 li      $v0, 1


So something about srand(1000A+10X+5Y+Z)
Edit history:
Omnigamer: 2013-02-17 09:39:34 am
All the things
I did a small bit of digging last night and found a couple things:

-A large portion of the RNG is stored at a 4-byte range in 00109960. This isn't the only thing that determines the RNG value, but it's definitely a part of it.
-The RNG advances on several different things, including every step you take in a location that could have a battle and any time an NPC has to decide if/where to move.
-Some very limited tests reveal that the RNG may be somewhat possible to manipulate on console; I did this by resetting and then going immediately to the name generator. Repeating the same general set of actions, I was able to force it to be one of just a couple different names. Not sure if this is universal, but some further testing showed that a frame counter is used in addition to the RNG. This may or may not be the case elsewhere.

I'll continue play around with it later. I'm using the memory features of psxjin and the debugger in pSX, although the debugger is still a pain since I can't seem to find good instructions on how to use it. Eh, more info will come sooner or later.

EDIT: After watching it a bit more, it seems like it is constantly based on the frame counter. Loading up a save in real-time, I was not able to get it to be consistent any of a handful of times. With the name selection it's easier since you can buffer all the inputs, but you can't buffer inputs on the save screen. So probably not possible to reliably manipulate something in real-time.
"Let's put a SMILE on that face!"
So one of the biggest questions I had about routing was how to handle the early-game grinding (post-fort burning down).  The original idea I had was to level up with the Futch/Humphrey sidequest, but I don't know how reasonable that would be.  Getting Futch and Humphrey would be a boost early, especially if done with an imported save, and getting Riou/Nanami some levels while having them die could help if you wanted to make Nanami your Kindness Rune person early on (at least until you get Sheena).  It's just really shaky in my head right now so if anyone had any other ideas I'd like to hear them.
All the things
The game has really sparse boss battles early on, so I don't think it will be much of an issue to get to Matilda. You probably don't even have to do all of the Futch and Humphrey quest; just the muscle in your party is enough to get you powerful from the random encounters in the area. The next actual boss isn't until the Abomination, which should be plenty easy with level 45-ish party.
Edit history:
Lag.Com: 2013-02-17 02:32:41 pm
sda loyalist
The only bosses you fight before you get Kindness are Mist Guardian, Double Head and Abomination. The only really dangerous fights in a normal playthrough are Luca and the bosses at L'Renouille. Even Lucia and Seed/Culgan should be plenty trivial with the power of Kindness.