Lunar Ball / Lunar Pool. It is a minigolf-esque pocket billiards game.
Emulator used: FCEU version 0.98.15. The last table will not sync on any other version.
Table of contents

Game objectives

  • Emulator used: FCEU version 0.98.15
  • Complete all 60 boards starting from 1
    • It is possible to begin from any board, including 60, but you have to complete all 60 to get the ending
  • Single player
  • Friction setting: 32 (DEFAULT)
  • Fastest time
  • Does not use death (it was used in the frictionless version).
  • Utilizes glitches

N/A game objectives

  • This game is completely deterministic. There is no "manipulates luck".
  • Apologies, but there are still no dinosaurs in this game.

Comments

This movie was created mostly using a computer program, the development of which took several months and several iterations.
This movie plays using the default settings of the game. That is, it starts from the first board and uses the default friction setting. Given the arbitrary selection possibility for friction, the default value gives a reasonable baseline for comparisons to other players' results.
The development of this movie began in late 2006, after Comicalflop suggested the possibility of writing a computer program to calculate the optimal shots. I started writing my bot as a sort of competition between qFox and I.
As a programming challenge, it was very interesting, because of the infinite possibilities for improvements.
The source code of my first version of the bot can be seen here. It determined the most optimal shot, then moved on, repeated ad-infinitum. However, it was quickly seen that such a naive bot has its shortcomings. This game has a RATE mechanism that causes the board clearing to take longer and longer time until it is practically impractical. By board 27, the bot had already consumed 29 minutes in the movie.
It was determined that any bot would have to start shooting "dummy" shots in the between; shots that would pocket no balls at all, but which would simply reset the RATE value.
This was relatively easy to program, but not a trivial change to make: Instead of 80*256 shots (20480) to determine, there would be 80*256 + 80*256*80*256 shots (419450880) to determine, per each round. It was obvious that something would have to be done for the movie to be finished within a decade.
So I designed lots and lots of heuristics by which the attempts could be cancelled as early as possible. Wrote code which attempts to save frames (in testing) by reusing cursor positions and choosing the velocity values in the order that they become available. And I added multiprocessing, which analyzes four different ways of shooting simultaneously using the quad-core CPU.
Even this was not enough, so I had to limit the search space somewhat so that only some second-shots would be analyzed. The second-shots to be analyzed would have a velocity and angle range much smaller than for the first-shots. This would reduce the search space from 419450880 shots into 80*256 + 41*256*29*112 (34111488). This reduced number is only 8 % of the original number. Even with this reduced number, it took about 3 days per average for the bot to do a single round; about a week by average to clear a single board. This movie does not utilize the "suicide" option that was used in the frictionless submission.
However, much to everyone's surprise, the bot managed to find a bug in the game. You can see it in this movie in a few boards, described below.

Score and RATE


In Lunar Ball, each successful shot increases the "RATE" value of the player; each unsuccessful shot resets it. The higher the "RATE" value, the more points the player is awarded for the next successful shot. Points are awarded at a rate of 10 points per frame.
The RATE value maxes at 99, at which point completing a single board can give about 12000 points IIRC. Tallying that amount takes about 20 seconds. Because nobody wants to watch 15 minutes of score tallying, it is a good idea to reset the RATE value every once in a while.
In this movie, the RATE value is reset by shooting shots that do not pocket any balls. Such shots achieve to reset the RATE value, as well as to move the balls into a more optimal position for the actual shot that pockets them.

Board by board comments

Stage 01, Standard board

Shot 1RATE=01Positioning only. Push balls 1, 3 and 5. The bot determined that it can do a much better shot after this shot.
Shot 2RATE=01Pocket balls 1, 2, 4 and 6. Score += 410, (1*1 + 2*2 + 4*3 + 6*4)*10
Shot 3RATE=11Positioning only. Touch ball 3.
Shot 4RATE=01Pocket balls 3, 5. Score += 130, (3*1 + 5*2)*10

Stage 02, Corner oriented

Shot 1RATE=05Positioning only.
Shot 2RATE=01Pocket balls 1, 2, 4 and 5. Partially uses ball 6 as a projectile.
Shot 3RATE=11Positioning only.
Shot 4RATE=01Pocket balls 3 and 6.

Stage 03, Four corner compartments

Shot 1RATE=05Pocket balls 1, 2 and 4. Score += 450, (1*5 + 2*6 + 4*7)*10
Shot 2RATE=12Positioning only.
Shot 3RATE=01Pocket balls 3, 5 and 6.

Stage 04, Clamp the middle

Shot 1RATE=08Pocket balls 1 and 2. Use ball 2 as a projectile. Score += 260, (1*8 + 2*9)*10
Shot 2RATE=12Positioning only. Touch ball 7.
Shot 3RATE=01Pocket balls 4, 5 and 6.
Shot 4RATE=08Pocket balls 3 and 7. Score += 870, (3*8 + 7*9)*10

Stage 05, Z shape with horizontal ball orientation

Shot 1RATE=12Positioning only.
Shot 2RATE=01Pocket balls 1, 2 and 3.
Shot 3RATE=08Positioning only.
Shot 4RATE=01Pocket balls 4, 5, 6 and 7. Score += 600, (4*1 + 5*2 + 6*3 + 7*4)*10

Stage 06, Octagon with many adjacent pockets

Shot 1RATE=11Positioning only.
Shot 2RATE=01Pocket balls 1, 2 and 5, using ball 1 as a projectile.
Shot 3RATE=08Positioning only.
Shot 4RATE=01Pocket balls 3, 4 and 6.

Stage 07, North diagonals

Shot 1RATE=08Positioning only.
Shot 2RATE=01Pocket balls 1, 2, 4, 5 and 7. Score += 860, (1*1 + 2*2 + 4*3 + 5*4 + 7*7)*10
Shot 3RATE=14Pocket ball 6 without hesitation. Score += 840, (6*14)*10
Shot 4RATE=15Pocket ball 3 without hesitation. Score += 450, (3*15)*10

Stage 08, Plus sign with eight pockets

Shot 1RATE=16Positioning only.
Shot 2RATE=01Pocket balls 3, 4, 5 and 7.
Shot 3RATE=11Positioning only. Some cursor movement detected.
Shot 4RATE=01Pocket balls 1, 2 and 6. Some cursor movement detected.

Stage 09, Circular with wall in the middle

Shot 1RATE=11Positioning only. Some cursor movement detected.
Shot 2RATE=01Pocket balls 1, 2 and 3. Some cursor movement detected.
Shot 3RATE=08Positioning only. Push ball 4.
Shot 4RATE=01Pocket balls 4, 5 and 6.

Stage 10, Superposition of two stage 02s

Shot 1RATE=08Positioning only. Push ball 3.
Shot 2RATE=01Pocket balls 1, 2, 3 and 4.
Shot 3RATE=11Pocket balls 5 and 6 without hesitation. Score += 1270, (5*11 + 6*12)*10.

Stage 11, X shape with sixteen pockets

Shot 1RATE=15Positioning only. Push ball 6.
Shot 2RATE=01Pocket balls 1, 2, 3, 4 and 6.
Shot 3RATE=14Positioning only.
Shot 4RATE=01Pocket ball 5. Score += 50.

Stage 12, Circular with a giant pocket in the middle

Shot 1RATE=02Positioning only.
Shot 2RATE=01Pocket balls 1, 2, 3 and 5.
Shot 3RATE=11Positioning only.
Shot 4RATE=01Pocket balls 4, 6 and 7.

Stage 13, Greater-than sign

Shot 1RATE=08Positioning only. Push ball 7.
Shot 2RATE=01Pocket balls 1, 5, 6 and 7.
Shot 3RATE=11Positioning only. Some cursor movement detected.
Shot 4RATE=01Pocket balls 2, 3 and 4. Some cursor movement detected.

Stage 14, Diagonal oval

Shot 1RATE=08Positioning only.
Shot 2RATE=01Pocket balls 2, 3 and 6.
Shot 3RATE=08Pocket balls 4 and 6 without hesitation. Push ball 7.
Shot 4RATE=12Pocket ball 1 without hesitation.
Shot 5RATE=13Pocket ball 7 without hesitation. Score += 910, (7*13)*10.

Stage 15, Choice of five

Shot 1RATE=14Positioning only. Push ball 2.
Shot 2RATE=01Pocket balls 1, 2, 3 and 4.
Shot 3RATE=11Pocket ball 5. Some cursor movement detected.

Stage 16, Walled halves

Shot 1RATE=12Positioning only.
Shot 2RATE=01Pocket balls 1, 2 and 3.
Shot 3RATE=08Positioning only.
Shot 4RATE=01Pocket balls 4, 5 and 6.

Stage 17, Little teeth here and there

Shot 1RATE=08Positioning only. Some cursor movement detected. Ball 1 used as a projectile.
Shot 2RATE=01Pocket balls 1, 2 and 3.
Shot 3RATE=08Positioning only. Some cursor movement detected.
Shot 4RATE=01Pocket balls 4 and 5. Some cursor movement detected.

Stage 18, Z shape revisited

Shot 1RATE=05Positioning only.
Shot 2RATE=01Pocket balls 1, 2, 3 and 6.
Shot 3RATE=11Positioning only.
Shot 4RATE=01Pocket balls 4, 5 and 7.

Stage 19, Reminds me of the union jack

Shot 1RATE=08Positioning only.
Shot 2RATE=01Pocket balls 2, 4, 5 and 6. Ball 2 used as a projectile.
Shot 3RATE=11Pocket ball 3 without hesitation.
Shot 4RATE=12Pocket ball 2. Score += 240, (2*12)*10.

Stage 20, Obstacle course

Shot 1RATE=13Positioning only. Push ball 3.
Shot 2RATE=01Pocket balls 1, 2, 3, 4, 5 and 6. Score += 910, (1*1+2*2+3*3+4*4+5*5+6*6)*10.

Stage 21, Walls and corridors

Shot 1RATE=17Positioning only. Push ball 3.
Shot 2RATE=01Pocket balls 1, 3, 4, 6 and 7. Ball 2 used as a projectile.
Shot 3RATE=14Pocket balls 2 and 5. Score += 1030, (2*14 + 5*15)*10.

Stage 22, Walls point towards a drain

Shot 1RATE=18Positioning only.
Shot 2RATE=01Pocket balls 1, 5 and 6.
Shot 3RATE=08Pocket balls 2, 3, 4 and 7.

Stage 23, Forward slash

Shot 1RATE=19Positioning only.
Shot 2RATE=01Pocket balls 3, 4 and 5.
Shot 3RATE=08Positioning only. Push ball 2.
Shot 4RATE=01Pocket balls 2, 6 and 7. Ball 6 used as a projectile.
Shot 5RATE=08Pocket ball 1 without hesitation.

Stage 24, North diagonals revisited

Shot 1RATE=09Positioning only. Push ball 1.
Shot 2RATE=01Pocket balls 1, 2, 3 and 5.
Shot 3RATE=11Positioning only.
Shot 4RATE=01Pocket balls 4, 6 and 7.

Stage 25, Circular with wall in the middle revisited

Shot 1RATE=08Positioning only.
Shot 2RATE=01Pocket balls 1, 2, 4 and 5.
Shot 3RATE=11Positioning only.
Shot 4RATE=01Pocket balls 3 and 6.

Stage 26, Left-pointing arrow

Shot 1RATE=05Positioning only. Push ball 1.
Shot 2RATE=01Pocket balls 4, 6 and 7.
Shot 3RATE=08Positioning only.
Shot 4RATE=01Pocket balls 2, 3 and 5.
Shot 5RATE=08Pocket ball 1 without hesitation.

Stage 27, Plus sign with eight pockets revisited

Shot 1RATE=09Positioning only. Push ball 1.
Shot 2RATE=01Pocket balls 1, 2 and 7, using ball 1 as the projectile.
Shot 3RATE=08Positioning only. Push ball 4. Some cursor movement detected.
Shot 4RATE=01Pocket balls 3, 4, 5 and 6. Some cursor movement detected.

Stage 28, As board 01, but with shark tooth edges

Shot 1RATE=11Positioning only.
Shot 2RATE=01Pocket balls 1, 2, 3 and 6.
Shot 3RATE=11Positioning only.
Shot 4RATE=01Pocket balls 4 and 5.

Stage 29, Obstacle course revisited

Shot 1RATE=05Pocket ball 7. PERFECT!
This is the only "PERFECT!" in this movie.

Stage 30, Diagonal compartments

Shot 1RATE=09Pocket balls 1 and 2. Push ball 3.
Shot 2RATE=13Pocket ball 3 without hesitation. Score += 3*13*10.
Shot 3RATE=14Positioning only.
Shot 4RATE=01Pocket balls 4, 5 and 6.

Stage 31, Walled halves revisited

Shot 1RATE=08Positioning only.
Shot 2RATE=01Pocket balls 1, 5 and 6.
Shot 3RATE=08Pocket balls 2 and 3.
Shot 4RATE=12Pocket ball 7 without hesitation.
Shot 5RATE=13Positioning only.
Shot 6RATE=01Pocket ball 4. Maximum velocity.

Stage 32, LB

Shot 1RATE=02Pocket balls 1, 2, 3 and 6.
Shot 2RATE=01Positioning only.
Shot 3RATE=01Pocket balls 4, 5 and 7.

Stage 33, Ziggurat

Shot 1RATE=08Positioning only
Shot 2RATE=01Pocket balls 1 and 4. Using a maneuver that makes perfectly sense but is not likely to succeed.
Shot 3RATE=05Pocket ball 6 without hesitation.
Shot 4RATE=06Positioning only
Shot 5RATE=01Pocket balls 2, 3 and 5.

Stage 34, Diagonal oval revisited

Shot 1RATE=08Pocket balls 1 and 2. Maximum velocity.
Shot 2RATE=12Positioning only.
Shot 3RATE=01Pocket balls 3, 4 and 5.
Shot 4RATE=08Positioning only.
Shot 5RATE=01Pocket balls 6 and 7.
Ball 2 was pocketed before ball 1.

Stage 35, Circular with a giant pocket in the middle revisited

Shot 1RATE=05Positioning only. Push balls 1 and 3.
Shot 2RATE=01Pocket balls 1, 2, 3, 5, 6 and 7.
Shot 3RATE=17Pocket ball 4.

Stage 36, Horizontal walls

Shot 1RATE=18Positioning only. Push ball 6.
Shot 2RATE=01Pocket balls 2, 4, 5 and 7.
Shot 3RATE=11Positioning only.
Shot 4RATE=01Pocket balls 1 and 3.
Shot 5RATE=05Pocket ball 6.
I almost didn't believe it can get ball 6 without a positioning shot.

Stage 37, Circular with smaller wall in the middle

Shot 1RATE=06Positioning only.
Shot 2RATE=01Pocket balls 1, 3, 5 and 6.
Shot 3RATE=11Positioning only. Some cursor movement detected. Push ball 4.
Shot 4RATE=01Pocket balls 2 and 4. Some cursor movement detected.

Stage 38, Standard board revisited

Shot 1RATE=05Positioning only.
Shot 2RATE=01Pocket balls 3, 5 and 6.
Shot 3RATE=08Pocket balls 1 and 2 without hesitation.
Shot 4RATE=12Pocket balls 4.

Stage 39, Little teeth here and there revisited

Shot 1RATE=13Pocket balls 1 and 2.
Shot 2RATE=17Positioning only.
Shot 3RATE=01Pocket balls 5, 6 and 7. Uses ball 6 as projectile.
Shot 4RATE=08Pocket balls 3 without hesitation.
Shot 5RATE=09Positioning only.
Shot 6RATE=01Pocket ball 4. Slow, slow cursor.

Stage 40, Dot dot dot

Shot 1RATE=02Positioning only. Pushes ball 1.
Shot 2RATE=01VANQUISH balls 3, 4, 5 and 6. Music stops.
Shot 3RATE=11VANQUISH balls 1 and 2.
Shot 4RATE=15Positioning only.
Shot 5RATE=01Pocket ball 7.
The glitch used in this stage took me completely by surprise.

Stage 41, Octagon with many adjacent pockets revisited

Shot 1RATE=02Pocket balls 4, 6 and 7. Ball 2 used as projectile.
Shot 2RATE=09Positioning only.
Shot 3RATE=01Pocket balls 1, 2, 3 and 5.

Stage 42, Clamp the middle revisited

Shot 1RATE=11Positioning only. Push ball 3, 4, 5 and 6.
Shot 2RATE=01Pocket balls 2, 3 and 4.
Shot 3RATE=08Positioning only.
Shot 4RATE=01Pocket balls 1, 5 and 6.

Stage 43, Walls and corridors revisited

Shot 1RATE=08Positioning only. Touch ball 1.
Shot 2RATE=01Pocket balls 1, 2 and 3.
Shot 3RATE=08Pocket balls 4 and 5 without hesitation.
Shot 4RATE=12Pocket balls 6 and 7 without hesitation.
Pocketing ball 7 is what they would call a "lucky shot".

Stage 44, Superposition of two stage 02s revisited

Shot 1RATE=16Positioning only.
Shot 2RATE=01Pocket balls 1, 2 and 3.
Shot 3RATE=08Positioning only.
Shot 4RATE=01Pocket balls 4, 5 and 6.

Stage 45, Greater-than sign revisited

Shot 1RATE=08Positioning only. A chain reaction affecting balls 1, 2, 3 and 4.
Shot 2RATE=01Pocket balls 1, 2 and 4.
Shot 3RATE=08Positioning only.
Shot 4RATE=01Pocket balls 3, 5, 6 and 7.

Stage 46, Ziggurat revisited

Shot 1RATE=11Positioning only. Push ball 1.
Shot 2RATE=01Pocket balls 2, 5 and 6.
Shot 3RATE=08Positioning only.
Shot 4RATE=01Pocket balls 3, 4 and 7.
Shot 5RATE=08Pocket ball 1.

Stage 47, Corner oriented revisited

Shot 1RATE=09Pocket balls 1 and 4. Disturb the position in general.
Shot 2RATE=13Pocket ball 2. Score += 260, (2*13)*10.
Shot 3RATE=14Positioning only.
Shot 4RATE=01Pocket balls 3, 5 and 7. Push ball 6.
Shot 5RATE=08Pocket ball 6. And almost the cue ball, too.

Stage 48, Reminds me of the union jack revisited

Shot 1RATE=09Positioning only. Push ball 6.
Shot 2RATE=01Pocket balls 3, 4, 5 and 6.
Shot 3RATE=11Positioning only. Push ball 7.
Shot 4RATE=01Pocket balls 1, 2 and 7.

Stage 49, Four corner compartments revisited

Shot 1RATE=08Positioning only.
Shot 2RATE=01Pocket balls 1, 5 and 6.
Shot 3RATE=08Positioning only.
Shot 4RATE=01Pocket balls 2, 3 and 4.

Stage 50, Left-pointing arrow revisited

Shot 1RATE=08Positioning only.
Shot 2RATE=01Pocket balls 2 and 6. Disturb the position in general.
Shot 3RATE=05Pocket balls 4 and 5 without hesitation.
Shot 4RATE=09Pocket ball 3 without hesitation.
Shot 5RATE=10Pocket balls 1 and 7 without hesitation. Score += 870, (1*10 + 7*11)*10

Stage 51, Diagonal compartments revisited

Shot 1RATE=14Positioning only. Push ball 1.
Shot 2RATE=01Pocket balls 2 and 4. Balls 1 and 5 used as projectiles.
Shot 3RATE=05Pocket balls 1 and 5 without hesitation.
Shot 4RATE=09Positioning only.
Shot 5RATE=01Pocket balls 3 and 6.

Stage 52, As board 01, but with shark tooth edges revisited

Shot 1RATE=05Positioning only.
Shot 2RATE=01Pocket balls 2, 4 and 5.
Shot 3RATE=08Positioning only.
Shot 4RATE=01Pocket balls 1, 3, 6 and 7. Ball 6 used as a projectile.

Stage 53, Forward slash revisited

Shot 1RATE=11Positioning only.
Shot 2RATE=01Pocket balls 2, 3, 4 and 5. Ball 1 used as a projectile.
Shot 3RATE=11Positioning only.
Shot 4RATE=01Pocket balls 1, 6 and 7.

Stage 54, Circular with smaller wall in the middle revisited

Shot 1RATE=08Positioning only. Push ball 7.
Shot 2RATE=01Pocket balls 4, 5, 6 and 7.
Shot 3RATE=11Pocket balls 1, 2 and 3.

Stage 55, Choice of five revisited

Shot 1RATE=18Positioning only.
Shot 2RATE=01Pocket balls 1, 3, 4 and 5.
Shot 3RATE=11Pocket ball 2 without hesitation.
Shot 4RATE=12Positioning only.
Shot 5RATE=01Pocket balls 6 and 7.

Stage 56, Walls point towards a drain revisited

Shot 1RATE=05Positioning only. Push balls 1 and 2.
Shot 2RATE=01Pocket balls 2, 3 and 4.
Shot 3RATE=08Positioning only. Push ball 1.
Shot 4RATE=01Pocket balls 1, 5 and 6.
Shot 5RATE=08Pocket ball 7.

Stage 57, X shape with sixteen pockets revisited

Shot 1RATE=09Positioning only.
Shot 2RATE=01Pocket balls 2, 3, 4 and 5. Uses ball 3 as a projectile.
Shot 3RATE=11Positioning only.
Shot 4RATE=01Pocket balls 1, 6 and 7. Trades motion energy twice with ball 1.

Stage 58, Horizontal walls revisited

Shot 1RATE=08Pocket balls 1 and 2.
Shot 2RATE=12Positioning only.
Shot 3RATE=01Pocket balls 4, 5 and 7.
Shot 4RATE=08Positioning only.
Shot 5RATE=01Pocket balls 3 and 6.

Stage 59, Dot dot dot revisited

Shot 1RATE=05Positioning only. Pushes ball 7.
Shot 2RATE=01Pocket balls 1, 2, 3 and 4.
Shot 3RATE=11Pocket ball 5 without hesitation.
Shot 4RATE=12Positioning only. Touch ball 6.
Shot 5RATE=01Pocket balls 6 and 7.

Stage 60, LB revisited

Shot 1RATE=05Positioning only. A chain reaction affecting balls 1, 2 and 3.
Shot 2RATE=01VANQUISH balls 1 and 2. Disturb the position in general. Music stops.
Shot 3RATE=05Positioning only. Push balls 4 and 5.
Shot 4RATE=01VANQUISH ball 3 and pocket balls 5 and 7.
Shot 5RATE=08Positioning only. Touch ball 4.
Shot 6RATE=05VANQUISH ball 4 and pocket ball 6. MOVIE END
After shooting the last shot, the input is terminated. The triumphal ending is seen after the board is completed.

Other comments

Thanks to:
  • Comicalflop
  • qFox
  • Derakon
  • Xkeeper
  • Adelikat
  • Nach
  • Bisqwit
  • Jemini, Teramoto, Miyamoto, Yunoki and Niitani -- the Compile crew credited in the game

FractalFusion: Set to delayed while the author works out improvements.

Bisqwit: Framecount goes from 85834 to 85792 in this update. Submission is "new" again. And I think, unfortunately, it will probably still fail for some emulators. At least the stage 60 has now been exhaustively tested.
FractalFusion: Accepting for publication on technical merit alone.


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15527
Location: 127.0.0.1
This topic is for the purpose of discussing #2676: Bisqwit's NES Lunar Pool "friction" in 23:49.87
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Note to whomever it concerns: This is a standard-friction movie. The other is a no-friction movie. The times are not comparable. This is not a 12-minute improvement. Note to self: The rerecord count was accidentally modified after I reset it to 0. I will replace the submission later, after verifying something in board 60. Might take a week though. Note to everyone: This movie was in the making for 24/7 for over a year in total. (Though there was a pause of 1,5 years in the middle of it!) Yes, this means that it took more than 8760 hours of 100% capacity work on 4 CPU cores to produce this movie. Besides the programming, some manual work was also involved. The "cursor movements" reported in the submission message were done by me, not the bot.
Senior Moderator
Joined: 8/4/2005
Posts: 5775
Location: Away
Bisqwit wrote:
more than 8760 hours of 100% capacity work on 4 CPU cores
Warp wrote:
Edit: I think I understand now: It's my avatar, isn't it? It makes me look angry.
Joined: 3/31/2010
Posts: 84
Location: Middle of Nowhere
K after extensive trial and error, this movie only syncs with FCEU 98.12/13/15. Yes vote from me for new glitches and for being very entertaining, despite the fact that #60 desyncs on new FCEU(X)'s. ED: reworded (I was bored) Encode on a fceu that syncs soon(tm)
mklip2001
He/Him
Editor
Joined: 6/23/2009
Posts: 2227
Location: Georgia, USA
More so than the frictionless movie, this movie takes my childhood plight with this game and laughs in its face. Simply incredible.
Used to be a frequent submissions commenter. My new computer has had some issues running emulators, so I've been here more sporadically. Still haven't gotten around to actually TASing yet... I was going to improve Kid Dracula for GB. It seems I was beaten to it, though, with a recent awesome run by Hetfield90 and StarvinStruthers. (http://tasvideos.org/2928M.html.) Thanks to goofydylan8 for running Gargoyle's Quest 2 because I mentioned the game! (http://tasvideos.org/2001M.html) Thanks to feos and MESHUGGAH for taking up runs of Duck Tales 2 because of my old signature! Thanks also to Samsara for finishing a Treasure Master run. From the submission comments:
Shoutouts and thanks to mklip2001 for arguably being the nicest and most supportive person on the forums.
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
Got a desynch right on the last stage with FCEU 0.98.16. Still, a very amazing run and the glitch at Stage 40 was unexpected. If you manage to keep the rerecount for each level that would be a good addition to text submission! Now, I'm interested about what might be the quickest friction level to clear the "stage 1 only"... but that would probably require more than 1 years to know as well :) Great bot, superb run.
Rolanmen1
He/Him
Experienced player (763)
Joined: 2/20/2009
Posts: 569
Location: Dominican Republic
moozooh wrote:
Bisqwit wrote:
more than 8760 hours of 100% capacity work on 4 CPU cores
Yay God Enel :P Yes Vote
Post subject: Re: #2676: Bisqwit's NES Lunar Ball in 23:50.57
Banned User
Joined: 3/10/2004
Posts: 7698
Location: Finland
TASVideoAgent wrote:
This game has a RATE mechanism that causes the board clearing to take longer and longer time until it is practically impractical. By board 27, the bot had already consumed 29 minutes in the movie.
I think this is a real shame and a huge bummer. In practice (at least from a TASing point of view) the game penalizes you for playing too well, so the playing has to be deliberately imperfect if the game is going to be finished in less than a day. In other words, the game forces you to play an imperfect game. That's a shame. It would be nice to see an absolutely perfect game where each shot is superhumanly accurate, iow. everything that TASing is all about. But it's just not feasible, not even with a "contains speed/entertainment tradeoffs" disclaimer (because in this case the speed is hurt so much that it hurts entertainment as well). If/when this gets published, the publisher should remember to explain the reason for the missed shots in the description so a casual viewer won't wonder about them.
Joined: 11/4/2007
Posts: 1772
Location: Australia, Victoria
I really do feel for your CPU... if it were my computer, the whole ventilation system would have actually fallen apart (There is a reason my case is falling apart so quickly). I'll probably encode this when I am not at a McDonalds restaurant.
Joined: 6/4/2009
Posts: 570
Location: 33°07'41"S, 160°42'04"W
BadPotato wrote:
Got a desynch right on the last stage with FCEU 0.98.16
Me too, in stage 60, with "fceux-2.1.3-win32" instead. But I can already yes vote as the other 59 stages are surprising and good.
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Looks like the desync is emulator version specific; the bug in the game might be timing-sensitive much like those scrolling glitches in Megaman 2. I am redoing stage 60, but it looks like the same initial sequence is going to be used, which means it will still continue to desync on wrong emulator versions. Apologies. Please use the right emulator version instead of the wrong one.
Joined: 3/31/2010
Posts: 84
Location: Middle of Nowhere
Archive.org Linky Direct Linky Sorry this one took so long, I trial-and-errored the version of FCEU. 98.12/13 had audio-sync problems with the video, and 98.16 wouldn't use the Table #60 glitch. 98.15 on the other hand, not only does the glitch, but also the audio syncs even in turbo mode. Also thanks to Flygon for his deldup settings on this encode. One last thing, occasionally, the balls are covered with random "bars" that fade them in/out. (good example is on table 40 around 15 minutes in) It's not an encoding problem, I triple-checked.
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Velitha wrote:
One last thing, occasionally, the balls are covered with random "bars" that fade them in/out. (good example is on table 40 around 15 minutes in) It's not an encoding problem, I triple-checked.
It is called the "8 sprite limit". A hardware limit in the NES, which means that the PPU can only render a maximum of eight sprites on a single scanline. The ninth and so forth are not displayed at all. To avoid things appearing completely invisible, most games rotate the sprite list so that in case of the limit being met, each sprite on the scanline "blinks" rather than some of them being completely invisible. This happens in any game where large groups of actors are lined horizontally. (For an example, you can see this occurring in Solomon's Key room 7, though not in the Famtasia movie, because Famtasia does not emulate the 8-sprite limit.) The blinking affects only those scanlines where the limit is hit; not the entire objects. Hence rectangular "bars". On the topic of blinking -- blinking can also occur due to the other limit: The PPU can only receive a list of a maximum of 64 sprites for the entire screen. Again, most games rotate the sprite list to avoid some actors being left completely invisible for a large time. This is what you get in Mega Man 2 or Rygar when you scroll the screen such as to invite the same enemy multiple times to the same screen, many times enough. Not applicable in Lunar Ball, because the object count is fixed.
Tub
Joined: 6/25/2005
Posts: 1377
ah, an encode :) It's interesting to note that even with a perfectly symmetrical problem, the optimal solution seems to be very chaotic, without symmetry and with completely unexpected results (try guessing which balls are pocketed at the beginning of a shot). It's evident that games like this will never be TASed to their full potential by mere humans with a bit of re-recording. Makes me wonder which other games are out there with similar complex and chaotic decision trees? oh, yes vote of course. Turning chaos (seemingly random shots) into order (pocketed balls) is a kind of beauty that's rarely found anywhere else.
m00
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Velitha wrote:
Sorry this one took so long, I trial-and-errored the version of FCEU. 98.12/13 had audio-sync problems with the video, and 98.16 wouldn't use the Table #60 glitch. 98.15 on the other hand, not only does the glitch, but also the audio syncs even in turbo mode.
Thanks Velitha. However, it looks rather audio-desyncy to me. By the end of the movie, audio is about 0.3s late. In stage 40, it's about 0.6s late. (Visual, unverified estimates only.) Also, I said I'm probably going to replace this submission, depending on how it turns out after the bot redoes stage 60; as such, it should have been considered a temporary encode, and archive.org should probably not have been used for it. Oh well.
arflech
He/Him
Joined: 5/3/2008
Posts: 1120
The shots in which you VANQUISH balls are intriguing; how did you get the balls to go away without pocketing them?
Velitha wrote:
Archive.org Linky Direct Linky
Once again the version used on archive.org streaming is terrible; the direct link is a better idea. I didn't remember the streaming Flash versions being this consistently terrible, just the Ogg versions...
i imgur com/QiCaaH8 png
Editor, Active player (475)
Joined: 5/23/2006
Posts: 361
Location: Washington, United States
It's a real shame that you have to make so many useless shots to decrease the RATE meter, but I suppose it ends up being somewhat interesting as an optimization puzzle. I noticed that the cursor position is retained between boards - did this ever save time on any board? i.e. did you ever put the cursor in a sub-optimal position in the last shot on board x so that you could have a better starting shot for board x+1? Ironically, I enjoyed your zero-friction movie a little more because there was a lot more of "chaotic-bouncing-that-somehow-pockets-all-the-balls". But, the challenge of optimizing every board and setting up the perfect sequence of shots still makes this a great watch. The VANQUISH glitch was interesting too, although I would like to know exactly what causes it...
Post subject: cursor position on the next board
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Chef Stef wrote:
I noticed that the cursor position is retained between boards - did this ever save time on any board? i.e. did you ever put the cursor in a sub-optimal position in the last shot on board x so that you could have a better starting shot for board x+1?
No, I didn't. Optimizing that fact is a TODO for future contestants. In my understanding, it would have exponentially increased the production time further (i.e. instead of 1 year, it'd take 100 years or so).
Joined: 5/13/2009
Posts: 141
That was actually far more entertaining than I would have guessed. Yes.
Joined: 3/14/2005
Posts: 43
Voted yes. Surprisingly entertaining, aside from the music being a little annoying. Some of the shots are pretty cool like the all balls in one shot on Level 20. I can imagine this game having some really insane shots. Guess I should check out the no-friction version to see how crazy it is.
Editor
Joined: 3/31/2010
Posts: 1466
Location: Not playing Puyo Tetris
Voting yes since you made the table get more holes though bugs.
When TAS does Quake 1, SDA will declare war. The Prince doth arrive he doth please.
Post subject: Status update on redoing the last stage
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Status update: I'm still redoing the last stage of this movie, but I tweaked some of the bot parameters and it's going unexpectedly slowly. It is recalculating the first two shots (which is to pocket two balls on the second shot, both of them into an ad-hoc black hole, if it goes the same way as it did before), and it is currently calculating angle 109/255. For some reason, it is going very slowly; yesterday, it was 105/255. The first 90 or so went very quickly. I'm not sure what exactly I changed to cause this to be so slow, but… oh well. To my understanding, I only changed it so that for the last shot, it no longer considers the timing after the launch to be important, so the movie could end sooner.
mklip2001
He/Him
Editor
Joined: 6/23/2009
Posts: 2227
Location: Georgia, USA
I managed to get this movie to sync all the way through with FCEU 0.98.12, but nothing else caused Hole 60 to work. This is surprising, since Hole 40 worked on every emulator I tried, and those two holes use the same mysterious glitch. That's still an amazing glitch. Has anyone figured out what causes it?
Used to be a frequent submissions commenter. My new computer has had some issues running emulators, so I've been here more sporadically. Still haven't gotten around to actually TASing yet... I was going to improve Kid Dracula for GB. It seems I was beaten to it, though, with a recent awesome run by Hetfield90 and StarvinStruthers. (http://tasvideos.org/2928M.html.) Thanks to goofydylan8 for running Gargoyle's Quest 2 because I mentioned the game! (http://tasvideos.org/2001M.html) Thanks to feos and MESHUGGAH for taking up runs of Duck Tales 2 because of my old signature! Thanks also to Samsara for finishing a Treasure Master run. From the submission comments:
Shoutouts and thanks to mklip2001 for arguably being the nicest and most supportive person on the forums.
Joined: 1/22/2008
Posts: 319
Location: Brasil
i couldnt see the last table im using fceu-rerecording-0.98.28 and sync very well
Run..Run...Run.....
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
wicked wrote:
i couldnt see the last table im using fceu-rerecording-0.98.28 and sync very well
Sir, you contradict yourself in the very same post. Contradicting claims indicated by underlining.