Posts for FractalFusion


Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
What system are you using? Are you using PSXjin v2.0.2 svn0? I am using that now, and savestates work perfectly, whether I load it right away, or after I close and open the emulator, or after 10 days.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
It's possible to zip out without doing the cutscene. However, if you don't trigger the cutscene and zip out instead, then later, on the parts that go downward, at some point the game takes control of your character, who walks into a wall, and the game is stuck.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
I'm late to the party, I guess. I have done some studying of how the RNG in this game works. It seems that, in addition to the normal RNG used in battles that is similar to Ruby/Sapphire/Emerald, there is a second RNG used only to determine wild encounters. The normal RNG ("RNG 1", address 0x3005000 for U version, 0x3004FA0 for J version), if you remember, uses the formula:
val <- val*0x41C64E6D + 0x6073
The second RNG ("RNG 2", address 0x20386D0 for U version, 0x203861C for J version), uses this formula:
val <- val*0x41C64E6D + 0x3039
In addition, RNG 2 only ever advances if you step in grass/cave/water. This verifies pretty much what everyone is saying about encounters. RNG 2 is seeded in a strange way. This occurs right after the Charizard screen clears in the intro. First, RNG 1 is seeded with the 16-bit entropy address 0x4000104. Then RNG 1 is advanced twice. Then the top half of RNG 1 is used to seed RNG 2, which is thereafter used in the game. Note that RNG 1 is seeded again at the naming screen, so the first seeding of RNG 1 is only used to seed RNG 2, and nothing else. I can't really clarify the entropy address (it is very sensitive to timing and even moving around the naming screen), so it may have to come down to trial and error. What I do know is that, from running some C++ programs, I found that there are a few RNG 1 seeds that generate RNG 2 seeds with as few as 3 encounters within 74 advances of RNG 2. (I pulled the number 74 from an estimated minimum number of advances before you reach Pewter City and get Repel.) There are some things that delay the advancing of RNG 2, but it seems only to be the first 6 grassy steps after a battle or when entering a new area. By the way, the encounter rate in grass is 21.5%. If top half of RNG 2 mod 1600 is less than 344, you get an encounter. I used the debugger VBA-SDL-H to help with my analysis. It wasn't too hard for me; just - find RNG 1 and 2's addresses, - construct a scenario, with help of Lua scripts to analyze, where their behavior is interesting, - reconstruct the scenario in official VBA (because savestates are compatible with VBA-SDL-H), - set a read/write breakpoint on them in VBA-SDL-H, and - disassemble away. Of course, having a lot of context helps. I don't have to examine all the opcodes to do a verification; I just need a clue to the likely formulas. Once I have that, the analysis takes care of itself.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Don't know what you guys are smoking. This TAS is funny and interesting. Maybe it doesn't smash your mind after two minutes, but it is much comparable to the Ghostbusters TAS. At least have the decency to give some credit. goofydylan8: How many rerecords did you use for this TAS? The number seems to have been lost in the transition.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Just use savestates. If I can do it, so can you.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
hegyak wrote:
Yes. The (J) version only says, "りり" I am told, it means "Good"
いい (ii) is "good", not りり (riri). りり doesn't mean anything other than that it sounds vaguely like "Lily". Of course, thanks to this game, りり now has a cultural meaning of its own.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
It may be glitched, but it is definitely beatable. http://tasvideos.org/2155S.html Also, welcome to the forums.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
I got an error beginning with:
...\side\snes9x v1.43\smartramsearch\SmartRAMSearch.lua:1: module 'BasicFunctions.lua' not found: no field package.preload['BasicFunctions.lua'] no file '.\BasicFunctions\lua.lua' ...
Even though I have all the files ("BasicFunctions.lua", "SmartRAMSearch.lua", "Sorts.lua", "VectorOps.lua", "YummyButton.lua") in one folder labelled "smartramsearch". I tested both versions of Snes9x, as well as FCEUX 2.1.4 and VBA v22.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Bernka, are you done with this run, and you won't try to improve it for at least the next month?
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Have you tried PCSX instead? Also, don't record a movie when doing LP or normal play. Movie savestates can only be loaded when playing the movie that created them. Check the savestates folder; the savestates are indeed named after the movies. Just don't record movies, and the game will only use the non-movie savestates. Or, if you absolutely must record movies, change the name of the savestates if necessary when switching movies.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Currently encoding.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
As an example of my approach, here is what I used for the Gekisou Sentai Car Ranger encode to Youtube:
function Blend(clip c, float oa)  { 
Layer(SelectEvery(c, 2, 0), SelectEvery(c, 2, 1), level=int(round(oa * 257)))
}

function Blend2(clip c, float oa)  { 
Layer(SelectEvery(c, 2, -1), SelectEvery(c, 2, 0), level=int(round(oa * 257)))
}

function Blend3(clip c, float oa)  { 
Interleave(Layer(SelectEvery(c, 4, 0), SelectEvery(c, 4, 1), level=int(round(oa * 257))), 
        \          Layer(SelectEvery(c, 4, 2), SelectEvery(c, 4, 3), level=int(round((1.0 - oa) * 257))))
}

AVISource("z.avi")
b=ConvertToRGB32()
AVISource("gekisoulogo.avi")
ConvertToRGB32()
logo=ResampleAudio(48000)
logo=monotostereo(logo,logo)
logo++b

text="Gekisou Sentai Car Ranger TAS\nTime: 6:56.90\nRerecords: 7746\nAuthor: FractalFusion"
subtitle(text,-1,0,771,1071, "Arial", 14, $FFFFFF, lsp=1, align=8)

text="This is a tool-assisted recording.\nFor more information,\nsee http://TASVideos.org/"
b=subtitle(text,-1,0,1071,1371, "Arial", 14, $FFFFFF, lsp=1, align=8)

x1=Trim(b,0,11719)
x2=Trim(b,11720,25403)
x3=Trim(b,25404,27033)
x4=Trim(b,27034,27099)
x5=Trim(b,27100,33380)

y1=Blend(x1,0.75)
y2=Blend2(x2,0.75)
y3=Blend(x3,0.75)
y4=Blend3(x4,0.55)
y5=Blend(x5,0.75)

y1++y2++y3++y4++y5
#27033-27099

#SelectEvery(1,0,0)
#StackHorizontal(b)
I use a simple
...|ev|od|ev|od|...
...|33|66|33|66|...
...|     |     |...
as the function Blend. Without regard to flicker, this gives a suitable interpolation of motion. The function Blend2 is the same as Blend, but with even and odd frames reversed. This is useful in some cases. When my character takes damage, the game uses a 3 on 1 off flicker pattern. So Blend might come up with the following situation:
...|1 |1 |0 |1 |1 |1 |0 |1 |...
...|33|66|33|66|33|66|33|66|...
...| 100 | 66  | 100 | 66  |... 
So there is not much flicker. However, if I reverse the parity by using Blend2:
...|1 |1 |1 |0 |1 |1 |1 |0 |...
...|33|66|33|66|33|66|33|66|...
...| 100 | 33  | 100 | 33  |... 
Here, the flicker is more pronounced. Finally, I use
...|33|66|66|33|33|66|66|33|...
...|     |     |     |     |... 
for the 30Hz flicker scene of the Earth turning into fireworks. I chose the parameters 0.75 (75%) for Blend and Blend2. To me this seems to have the best tradeoff between motion and blur. I chose the parameter 0.55 (55%) for Blend3; I chose not to portray a full-effect flicker due to seizure considerations. For a full-effect flicker at 15Hz, the parameter 1.00 (100%) is used. The flicker level I chose is 10x weaker. To apply the various blends, I cut the clip into pieces with Trim, applied the appropriate Blend to each one, then spliced them back together. The SelectEvery and StackHorizontal at the end are commented out; when not, these are used to help compare the frame-blended 30fps video with the original 60fps. Anyway, the message here is that one single method cannot handle all the deficiencies of 30fps. For example, see this issue regarding site TASBlend. I find it easier to adjust the video carefully based on particular segments, applying appropriate blends to each one. Edit: Changed TASBlend to Blend.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
I haven't tried it yet, but it seems you can dump the RAM values with Lua and use AviSynth's ConditionalReader. http://avisynth.org/mediawiki/ConditionalReader Manual effort can substitute dumping RAM values, if it is not too much work. gocha used AviSynth to insert input and stuff in his encode for Castlevania: Dawn of Sorrow (scripts are here), but I find it awfully hard to decipher.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Here is the list of games (in spoiler tags) which correspond to the videos in the TAS Nicovideo 2011 Ranking. Those with known runs to movies on this site have links. Because the ranking is based on Nicovideo videos and not TASes or the games themselves, many videos have confusing titles that fail to indicate which game is run. I put question marks (?) on a few of them because I don't know. Also, there are multiple listings of the same game; those have different videos, and do not always correspond to TASVideos movies on the same game. A couple of entries correspond to recent TASVideos submission that have not been judged or published yet; those have the "*recent*" tag on them. If there are any mistakes in the list, let me know. 50-31 50: King of Fighters 2000 49: Brain Age 2 (link) 48: Legend of Zelda Palace of Four Swords (GBA) (link) 47: Custom Robo V2 46: GoldenEye 007 (link) 45: Dragon Quest V (PS2) 44: Super Bomberman (link) 43: Crash Bandicoot 2 (100%) 42: Earthbound *recent* (link) 41: Street Fighter Zero 2 Alpha 40: Super Smash Bros. Brawl 39: Street Fighter III 3rd Strike 38: Castlevania Harmony of Dissonance (Maxim) (link) 37: Super Mario World *recent* (link) 36: Super Mario Land 2 (link) 35: Armored Core 34: Shin Samurai Spirits (Samurai Shodown II) 33: Brain Age (Blank Answer version) 32: Kirby Super Star* 31: Super Smash Bros. Brawl PICK UP SPECIAL Total Recall (link) Choro Q ? Final Fantasy III (J) (link) Donkey Kong Country (link) Cave Story (link) Castlevania Portrait of Ruin (link) 30-11 30: Gradius 29: Kirby Bowl 28: Momotarou Dentetsu DX 27: Super Mario Bros. 2 (U) (link) 26: Final Fantasy VIII 25: Final Fantasy VIII 24: Street Fighter Zero 3 Dramatic Battle 23: Uehara Tetris 22: Street Fighter 2 ? 21: Shodai Guilty Gear Kai ? 20: Final Fantasy III (J) (link) 19: Mahjong ? 18: Mega Man X3 (100%) (link) 17: Super Puyo Puyo 16: Downtown Nekketsu Koushinkyoku 15: Hyper Street Fighter II 14: Mario Kart 64 (Yoshi Valley) 13: Mega Man 10 (link) 12: Dragon Warrior II 11: Super Mario 64 10-1 10: Resident Evil 4 9: Grand Theft Auto 3 8: Super Mario 64 (link) 7: SaGa Frontier 6: Brain Age (link) 5: Bomberman ? 4: Super Smash Bros. Brawl 3: Iraira Bou (Irritating Stick) 2: Hikaru no Go 1: Super Smash Bros. Brawl * According to MUGG, the clip shown is from a fake run, that used the ZSNES emulation glitch.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Sorry for the late reply. Progress is currently at Boomer Kuwanger, 176 frames ahead. I'll check if Rolanmen1 wants to do Boomer Kuwanger.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
izanamuさん、 申し訳ありませんが、 最速クリアだけの格闘ゲームのTASをあまり受け付けません。 格闘ゲームは、 技ひとつのTASがよくつまらないって、色々の技をみせることがよりいいから、 最速クリアが目指せません。 例えば: http://tasvideos.org/1342M.html http://tasvideos.org/422M.html 「これがReJectされても、まあ構いません」とここに書かれたけど、 Youtube動画がまた投稿されてよくわかりません。 自分の投稿を解除でき、 Gruefoodフォーラムに移動されました。 (投稿を削除できません) ---- izanamu, I'm sorry, but we often don't accept TASes of fighting games that only go for speed. In fighting games, a TAS that uses only one attack is often boring. It would be better to show off various attacks, although you can't go for fastest completion. For example: http://tasvideos.org/1342M.html http://tasvideos.org/422M.html In here, you wrote "Even if it is rejected, it doesn't matter", but you posted a Youtube movie, so I am not sure. You can cancel your own run, and it will be moved to the Gruefood forum. (Submissions cannot be deleted) ---- boct1584: Don't use machine/online/Google translation.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Youtube: http://www.youtube.com/watch?v=ch0JNoXMwVA Mediafire (~11MB): http://www.mediafire.com/download.php?p370t3nk89zgu80 Note that the DS is rotated 90° counterclockwise to begin with. After it asks you to flip the DS, the DS is rotated 90° clockwise. A couple DS icons are displayed to indicate this. Keep in mind that we have a published Brain Age run as well as a cancelled Brain Age 2 submission.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
I'm currently encoding.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
I don't know. Sometimes, the loading zone may be shorter or longer depending on when you end the last area. I try not to worry about that. Bernka, are you trying now to improve the run again? Please consider that, since you are trying to improve the run, publication (http://tasvideos.org/forum/viewtopic.php?t=12103) will be delayed, and might be cancelled. I do not wish to update it any further. Then you will have to make a new submission. In the future, please consider making the improvements first before submitting.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Screenshots: Regarding the ending message: Translation:
You've defeated the Bowzocks, but without RV Robo, you cannot win against Giant Gynamo!

Try again and collect the hidden Parts!

Save the Earth with RV Robo!
About going for the good ending: Whether or not it is more entertaining is debatable, but it seems more meritable at least (just because it is longer and harder to do, and shows off more of the game). But I won't be working on that version any time soon.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
OK, I've updated it again. No SRT, but here's the changes: added "The pushing is due to waiting for the dialog to trigger." deleted, at Full Metal Hugger, Altena guards "BOOM" deleted, Jagan "SURPRISE BOOM!!!!!" deleted, Zable Fahr "?????????????????????????????\N?????????????????????????????\N?????????????????????????????" "Wait... it's not... Full Metal Hugger!?" -> "Wait... it's... Full Metal Hugger!?"
neo_omegon wrote:
Just mistyping? On your srt and ass file, there is Cerberus, so there is no problem.
You're right. I mistyped it. It should be Cerberus. Thanks for the help. praetarius3, do you have any comment? If not, I assume you are perfectly fine with the subtitles.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Bernka, could you explain how the time was saved?
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Try this link. http://www.nicozon.net/watch/sm16107381 nicovideo.jp -> nicozon.net To turn off the scrolling comments, click on the "..." in the bottom right corner after it starts playing.