Posts for Bisqwit


Post subject: Re: Problem when submiting a movie
Editor, Experienced Forum User, Published Author, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
It should show a page explaining the submission process to you. I can't verify exactly, but it does not seem like there is a submission that is received from you. Are you sure you're logged in on the main site, for instance? http://tasvideos.org/Login.html
Post subject: Posting my WIP here. Also explaining the technical bits.
Editor, Experienced Forum User, Published Author, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
I have a WIP of this game, last updated in July 2008. (There should in fact be a newer WIP too, but I don't remember which server I ran it on, and I cannot therefore acquire the file...) However, due to bit-rot, I have been unable to continue the TAS. The program which I used to calculate the solutions, simply does not work anymore. I don't know why, and I don't have time or energy to fix it. It uses multiple instances of FCEU in parallel (multicore), and it is not written in LUA. Now it just crashes right after starting, due to problems with communication with the (virtual) X server or something. I am therefore releasing my current WIP. My hope is that someone finishes it (continuing the same awesome quality of course) and credits me as a co-author. It is a .fcm file. Apologies for that, too. I don't know whether it converts nicely to fm2. This TAS aims for fastest absolute time. I.e. it also counts score tallying as a slow-down factor and attempts to minimize that. Hence it gets the "perfect!" congratulation only once so far. 33 stages have been completed, out of the 60. The movie length is 12:45.42 according to Microstorage. It ends after the first shot in stage 34. http://dehacked.2y.net/microstorage.php/info/1597220526/lunarball-wip-34up-bisqwit.fcm Note: This WIP does not have the PAL mistake I mentioned earlier. It is proper all the way. [img_left]http://bisqwit.iki.fi/kala/snap/lunarball.png[/img_left] The playing algorithm can be explained with the following list of definitions: * Each round starts at the first possible frame when the cursor can be moved, and ends right before the next round. This ensures that the score tallying times are counted. * Whether the cursor can be moved, is determined by pressing nothing, undoing it, pressing the R button, undoing it, pressing the L button, undoing it, and checking whether the cursor had reacted in expected ways (R and L must produce a different change and 'nothing' must produce no change). * Changing the cursor distance (up and down buttons) has no effect to the game. * To repeat a shot in deterministic manner, you only need to know the angle and the power meter value to make a shot. The bot can tell you these; you can manipulate the cursor distance manually in whatever artistic way you prefer. Indeed, the bot produces a list of angle and power meter pairs for the player to perform. It does record movie autonomously, but a frame-advance and RAM watch equipped player can redo the movie entirely by simply following that list which can be transmitted in a text file or written on paper. It contains simply two numbers for each shot. * RAM addresses of significance (all numbers hex): 3C0=angle (0..FF); 3A0=velocity (12..FF at steps of 3); 187=stage; 18E=shot number; 300+n=ball status (n=0..10; 1,2=live; 0,3,83=not ball); 370+n=ball x, 330+n=ball y, 600+y*1A+x=board map * Algorithm always calculates the result of two shots in a row. For the second shot, all combinations are tested (256 angles, 80 velocities); for the first shot, just 256*15; sometimes less. I often varied these numbers manually between rounds. If the first shot pockets any balls, the second shot is omitted. (The purpose of the first shot, "pre-shot", is to position the cue ball in a better position and to reset the rating that makes score tallying go haywire.) If neither shot manages to pocket any balls, or it takes too many frames until either the cursor is controllable again or the stage ends, the aim is considered a failure. * The first shot is chosen that results in the best state after the second shot. * State wellness is calculated with the following approximate formula: ((number of balls pocketed) + (prospects)) / (the length of the round in frames). Prospects is a numeric value 0..1 that is inversely proportional to the average distance of the remaining balls to the pockets nearest to them. * A genetic algorithm is used to refine the set of remaining choices. * The search space is limited by using a frame count limit. Pocketing the cue ball also counts as a blunder. * Given a pair of angle and velocity, aiming and shooting is a matter of aiming first, then waiting until the velocity counter is at exactly the right value, and then shooting (B button for 1 frame). * Aiming is accomplished by first determining whether the R button or the L button results in faster aiming. (Simple subtractive mathematics.) After that, determining whether mashing the button results in faster aiming than just holding the button. By mashing, a change of N units requires 2*N-1 frames. By holding, a change of N units requires 15+N frames. EDIT: Surprise and terror ― the bot runs properly on my server again. Looks like the TAS is going to be continued after all. After a pause of 1,5 years! Here we go... bisqwit@chii:~/nes$ egrep 'Beginning|Pocketed' lunarball.log Beginning new shot. Table=34, remaining balls=7 Record: Pocketed 1 (time 548, angle 0, velo 255, preangle 0, prevelo 42) (ball at 6D,AD) Record: Pocketed 1 (time 532, angle 7, velo 255, preangle 7, prevelo 210) (ball at 39,74) Record: Pocketed 1 (time 487, angle 7, velo 255, preangle 7, prevelo 252) (ball at 7A,AE) Record: Pocketed 2 (time 600, angle 8, velo 255, preangle 8, prevelo 75) (ball at B2,B9) Record: Pocketed 2 (time 595, angle 8, velo 255, preangle 8, prevelo 84) (ball at B4,B9) Record: Pocketed 2 (time 579, angle 11, velo 255, preangle 11, prevelo 99) (ball at 2E,A6) Ignoring: Pocketed 1 (time 479, angle 17, velo 255, preangle 17, prevelo 150) (ball at 78,A5) Ignoring: Pocketed 1 (time 462, angle 17, velo 255, preangle 17, prevelo 153) (ball at 91,A5) Ignoring: Pocketed 1 (time 387, angle 17, velo 255, preangle 17, prevelo 210) (ball at 47,7B) Record: Pocketed 2 (time 572, angle 18, velo 255, preangle 18, prevelo 147) (ball at 7A,C8) Ignoring: Pocketed 1 (time 364, angle 13, velo 255, preangle 13, prevelo 213) (ball at 8E,5C) Record: Pocketed 2 (time 570, angle 18, velo 255, preangle 18, prevelo 159) (ball at 7A,C8) Record: Pocketed 2 (time 506, angle 14, velo 255, preangle 14, prevelo 24) (ball at A6,80) Record: Pocketed 2 (time 487, angle 30, velo 255, preangle 30, prevelo 87) (ball at 9B,B5) Record: Pocketed 2 (time 487, angle 24, velo 255, preangle 24, prevelo 54) (ball at 8A,A1) Ignoring: Pocketed 1 (time 320, angle 29, velo 255, preangle 29, prevelo 177) (ball at A6,93) Record: Pocketed 2 (time 408, angle 24, velo 255, preangle 24, prevelo 237) (ball at 8C,A2) Ignoring: Pocketed 1 (time 320, angle 36, velo 255, preangle 36, prevelo 141) (ball at A4,81) Ignoring: Pocketed 1 (time 226, angle 39, velo 255, preangle 39, prevelo 111) (ball at AD,9C) Ignoring: Pocketed 1 (time 226, angle 39, velo 255, preangle 39, prevelo 114) (ball at AD,9C) Record: Pocketed 3 (time 466, angle 43, velo 255, preangle 43, prevelo 210) (ball at C5,57) Ignoring: Pocketed 2 (time 367, angle 50, velo 255, preangle 50, prevelo 207) (ball at 6B,A2) Ignoring: Pocketed 2 (time 346, angle 50, velo 255, preangle 50, prevelo 210) (ball at 6B,A3) Ignoring: Pocketed 2 (time 346, angle 50, velo 255, preangle 50, prevelo 213) (ball at 6B,A3) Record: Pocketed 3 (time 461, angle 43, velo 255, preangle 43, prevelo 255) (ball at C5,5D) bisqwit@chii:~/nes$ ps w PID TTY STAT TIME COMMAND 13730 pts/5 Ss 0:00 -bash 14022 pts/5 S+ 0:02 fceu/fce -readwrite 1 -bisqbot 1 -state 4 -play tmp2.fcm lunarball.nes 14023 pts/5 S+ 0:00 tee lunarball.log 14304 pts/5 R+ 0:43 fceu/fce -readwrite 1 -bisqbot 1 -state 4 -play tmp2.fcm lunarball.nes 14305 pts/5 R+ 0:30 fceu/fce -readwrite 1 -bisqbot 1 -state 4 -play tmp2.fcm lunarball.nes 14308 pts/5 R+ 0:21 fceu/fce -readwrite 1 -bisqbot 1 -state 4 -play tmp2.fcm lunarball.nes 14311 pts/5 R+ 0:19 fceu/fce -readwrite 1 -bisqbot 1 -state 4 -play tmp2.fcm lunarball.nes 14322 pts/6 R+ 0:00 ps w bisqwit@chii:~/nes$ uptime 21:59:09 up 3:11, 9 users, load average: 4.12, 3.73, 2.23 bisqwit@chii:~/nes$ sensors|egrep 'temp[12]|Core' temp1: +50.0C (high = -43.0C, hyst = -3.0C) ALARM sensor = thermistor temp2: +55.0C (high = +80.0C, hyst = +75.0C) sensor = diode Core 0: +66.0C (high = +82.0C, crit = +100.0C) Core 1: +67.0C (high = +82.0C, crit = +100.0C) Core 2: +62.0C (high = +82.0C, crit = +100.0C) Core 3: +62.0C (high = +82.0C, crit = +100.0C) bisqwit@chii:~/nes$ tail -f lunarball.log k[7518]ang[ 93]vel[255]preang[ 93]prevel[252]: p=1, f=292(ef=0), 577.5488, k[7517]ang[ 93]vel[255]preang[ 93]prevel[249]: p=1, f=293(ef=0), 573.0179, k[7515]ang[ 93]vel[255]preang[ 93]prevel[243]: p=1, f=221(ef=0), 761.1994, Ignoring: Pocketed 1 (time 221, angle 93, velo 255, preangle 93, prevelo 243) (ball at 4D,B7) k[7513]ang[ 93]vel[255]preang[ 93]prevel[237]: p=1, f=222(ef=0), 757.7706, k[7511]ang[ 93]vel[255]preang[ 93]prevel[231]: p=1, f=224(ef=0), 751.0048, k[7510]ang[ 93]vel[255]preang[ 93]prevel[228]: p=1, f=225(ef=0), 747.6669, k[7507]ang[ 93]vel[255]preang[ 93]prevel[219]: p=1, f=228(ef=0), 737.8292, k[7506]ang[ 93]vel[255]preang[ 93]prevel[216]: p=1, f=229(ef=0), 734.6072, k[7287]ang[ 91]vel[255]preang[ 91]prevel[ 39]: p=0, f=665(ef=0), 74.6126, k[7281]ang[ 91]vel[255]preang[ 91]prevel[ 21]: p=1, f=642(ef=0), 0.0000, pessimistic I'm recalculating the first shot of stage 34 just in case the one produced in the fcm was not yet a final decision.
Editor, Experienced Forum User, Published Author, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Raiscan wrote:
It seems there is no thread that can hide from off-topicness and derailment! (Yes, those are real words! Honest!)
Certainly! [1], [2]
Editor, Experienced Forum User, Published Author, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
OmnipotentEntity wrote:
Bisqwit wrote:
For the record, that article was not written by me.
But you agree with the sentiments, or else you wouldn't have posted it.
I agree in that the attempted political correctness of the company's action was negated by the ignorance towards the concepts it tried to cover, with the end result of coming across distinctly discriminative towards a certain group.
Editor, Experienced Forum User, Published Author, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
OmnipotentEntity wrote:
Bisqwit wrote:
Happy Cha... Wait, nevermind.
Wow, you really do believe that white males are oppressed... how quaint. :/
For the record, that article was not written by me.
Editor, Experienced Forum User, Published Author, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
adelikat wrote:
OmnipotentEntity wrote:
One example of the "foregoes time saving damage" is Halamantariel's Illusion of Gaia. There was one place in the entire run where taking damage would have saved time. He didn't take damage then because it would look sloppy.
Thank you for pointing this out. This is by far one of the hardest tags for someone to know to put on a movie since usually only the author knows damage could save time.
NES Batman is also tagged with "foregoes timesaving damage"*. I don't think taking damage in that game really helps much. A damage-taking run probably will not be slower, but it probably won't be faster either. Taking no damage is an artistic choice, not a timesaving choice. *) I had trouble understanding at first what that even means. I don't see the word "forego" very often, and my first intuition says "go forth", i.e. proceed. If I wanted to use a fancy word there, I'd use "forfeit"… For that word I know. :)
Editor, Experienced Forum User, Published Author, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Happy Cha... Wait, nevermind. Whatever you do, don't overeat! Help the poor and go visit your relatives ― especially those of them who never get visitors.
Editor, Experienced Forum User, Published Author, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Tub wrote:
I only have access to the stock phpbb code. Bisqwit obviously made a lot of changes I don't know about.
Not many. Summarizing from http://tasvideos.org/TODO/PhpBB3Upgrade.html , the changes I made are: * Per-post avatar-enable flag (a new database field in "posts"; patch to posting and post-viewing code and templates) * Mood avatars (a new database field in "users"; patch to profile editing, posting and post-viewing code) * Per-post minor edit flag (a new database field in "posts"; patch to posting code and templates) * [img_left], [img_right] and relative (percentage) [size] bbcode tags * Skype username * Short names for each forum (a new database field in "forums") * In polls, remember who voted which option (a new database field in "vote_voters", patch to voting code) * /p, /r, /f, /t URL shorthands used and promoted by the site code itself (patch to .htaccess) * And more. :-D Listed on that page. Still, each are quite minor and none of them have anything to do with sessions.
Editor, Experienced Forum User, Published Author, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
moozooh wrote:
There's a no-death speedrun of it on YT.
Turns out it's not an all-evil game: At 2:04 the game autocorrects a short jump in a manner characteristic to many games, but not SMB.
Post subject: Re: Confidence (cf:ce) formula
Editor, Experienced Forum User, Published Author, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
sgrunt wrote:
cf:ce = floor(100% * min( 1, ((abs(yes - no) / (yes + no + meh)) + 0.7 * (yes + no + meh / 12)^1.1 )/(1.7))
Is that which you posted, not in fact the precisely same formula as indicated on the page, except for the floor() wrapping it? This is the formula shown on the submission page (rendered by Firefox, acquired by using the "?xml=1" parameter to the page (rewritten its url using queue.cgi to get around the cache) and manually fixing the broken xhtml introduced in the advertisements): EDIT: Oh, the min(1,x) in the upper right corner. Are you sure it is not there? EDIT2: Hmm yes, that min() is indeed removed. And there is indeed an outer min(). The floor() is done implicitly by sprintf using the %d modifier. Good job.
Post subject: Fixes and the maze generator source code
Editor, Experienced Forum User, Published Author, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Kuwaga wrote:
It think there is a mistake. You try hard to break the matchbox into two, and you manage to rip it into two pieces. But the flow of matches is not unhindered!
Thank you! It has been fixed. For those interested, here is the source code of the program that generates the maze near the end of the game. http://bisqwit.iki.fi/jsgames/choosestory/the_mop_is_the_key/maze_gen.phps Remove the final s from the URL, and you get to see its result (the state machine that forms the maze).
Editor, Experienced Forum User, Published Author, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Flygon wrote:
Do you ever feel any of these questions are just so needlessly insane that they are just not worth answering?
Yes.
andymac wrote:
Given the bias of both the speaker and the person in the audience, and the nature of the question, to assume that either one is the only one correct is also a false assumption.
Only when there exists no possible way to achieve even subjective validation on the question, and the reliability of a party claiming to possess that validation cannot be established. That said, here's a video interview of one of these researchers who have used scientific methods to find the locations and artefacts corresponding to the Biblical exodus of Israel from Egypt, among other things. (The English-language part starts from around 1:50, and it's a three-part video, continued with Google Earth imaginery of the locations). http://www.youtube.com/watch?v=-VFOFGwCZvI&feature=PlayList&p=0ECD095F64BE1678&index=0&playnext=1
Editor, Experienced Forum User, Published Author, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
pirate_sephiroth wrote:
And I respond with
Obviously I'm responding to a particular unkind bait here, but here goes.
pirate_sephiroth wrote:
BLARRRGGGGGGHHHHHHH!
This speaker in the video makes the fallacious assumption that born-again believers are believers because of their upbringing in a christian family. But the fact is that some of the most influential and fundamental christian believers are actually those who have been brought up in _anything but_ christian family: These come from muslim backgrounds, these come from families where their parents have practised witchcraft or voodoo and they've been sacrificed to the devil at their birth and have had to live in gangs with the "strongest survives" mentality; these come from places where being caught of owning a Bible may mean spending the rest of their lives in a prison, if they aren't murdered first, and so on. I'm talking about people like Nicky Cruz here.
pirate_sephiroth wrote:
I mean http://www.youtube.com/watch?v=6bMLrA_0O5I
No idea about this one.
Editor, Experienced Forum User, Published Author, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
71 times "Solomon's Key 2 walkthrough"? That's... unusual. Also, yay for the tvtropes links. :)
Post subject: Re: TAS Article: A bit of history and a failed attempt
Editor, Experienced Forum User, Published Author, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Editor, Experienced Forum User, Published Author, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Editor, Experienced Forum User, Published Author, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Flygon wrote:
I'll change it in that case. Thanks for the massive helps. ^_^
Thank you, too. You gave me an idea :)
Editor, Experienced Forum User, Published Author, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Flygon wrote:
Is it okay for me to have this miniature image in my signature to compensate for the fact that the 255 letter limit is incredibly imposing on the formatting needed.
For the record, I hate any 255 character limits as well. I don't mind your means to circumvent it. However, I consider it a bit too tall for a signature attached to each and every one of your posts.
Editor, Experienced Forum User, Published Author, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Raiscan wrote:
Do you believe that TASVideos (or NESVideos) has had a particular peak (i.e, where the site was/is at it's prime and everything in the community is well)? If so, when do you believe that was?
Thank you for the question Raiscan. I used to think that there was a peak in the late 2004 when spectacular NES movies were made for popular games on weekly basis (or so my memory serves). But lately I have come to realize that it is not true. There may have been slower periods, but the reality is that my previous impression was just a case of "good old times" thinking; an artifact of the inevitable fact that some things don't last forever. But as a counterbalance, new things are discovered and developed all the time. Which seems to be keeping the genre alive and well, organically developing. Same goes for the community, too. I'll elaborate no more to not give people ideas. :)
Editor, Experienced Forum User, Published Author, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Flygon wrote:
Do you think TASVideos has gotten better or worse?
Aside from those occasional session timed out errors that hinder access to the forums, the site has been doing very well after my leave.
Editor, Experienced Forum User, Published Author, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Warp wrote:
HHS wrote:
The Z80 can only add, add with carry or subtract with carry using 16-bit operands, the other operations aren't available.
What "other operands" are those
xor, and, or, not, shifts, multiplication, division, comparisons. The 8086 had an opcode that could load 32-bit values ("lds si,[bx]"), and it could produce 32-bit results in multiplication and take 32-bit value for division. It could also sign-extend a 16-bit value to 32 bits ("cwd"). Does that make it a 32-bit CPU? (I'm just playing the proverbial devil's advocate here.)
Editor, Experienced Forum User, Published Author, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Flygon wrote:
IRC wrote: > Nach: yay, I got congrulations! > pirate_sephiroth: wtf hahaha > pirate_sephiroth: someone mstyped conglaturation
Whoops. And turns out that it was not my first time. But I am not the only one who subscribes to that particular mistake… twice. What is with us Finns that we cannot spell properly? ;-) Please don't be derailed, o' topic.
Editor, Experienced Forum User, Published Author, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
I am also most impressed of what has been accomplished here. Congrulations Nach and others.
Editor, Experienced Forum User, Published Author, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Warp wrote:
Finnish song "Joutsenlaulu" (by the original band): http://youtube.com/watch?v=K38Za5Q6N4s
Good choice. Silenced everyone :) The song at Blublu's example ("Laugardagskvold") is confusing. Most of the phonemes in the beginning of that song sound so Finnish, that I get confused trying to understand it. Only in the chorus part it sounds distinctly Swedish-style, and one can relax.
Editor, Experienced Forum User, Published Author, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
arflech wrote:
ITT I bump my first thread to show off an example of "bit-rating" marketing gone wrong: http://www.actsofgord.com/Chronicles/chapter18.php
Oh dear. That attitude so reminds me of PR & lawyer departments of corporations. Stonewalling to no end.