Post subject: Bubble Ghost
Experienced Forum User
Joined: 6/4/2009
Posts: 570
Location: 33°07'41"S, 160°42'04"W
Experienced Forum User
Joined: 6/4/2009
Posts: 570
Location: 33°07'41"S, 160°42'04"W
Please feedback me (
Active player, Experienced Forum User (261)
Joined: 4/30/2009
Posts: 791
Lucky TAS of 2013
Might want to describe a bit about the game, and the TAS WIP itself, just for those people who aren't familiar with this game and unable to give immediate feedback. You can't just instantly assume people will know this game, or even care about your WIP without some feedback from yourself.
Experienced Forum User
Joined: 11/4/2007
Posts: 1772
Location: Australia, Victoria
I remember playing this game in the past... If you want to generate attention, can I suggest posting a YouTube/DailyMotion link of your WIP? It'll help people that are simply too lazy to download the ROM (Me) watch the movie.
Editor, Experienced Forum User, Expert player (2234)
Joined: 5/15/2007
Posts: 3825
Location: Germany
Gameboy TASer of 2015NES TAS of 2013Gameboy TASer of 2011Gameboy TASer of 2010
What does 100% mean? Here's my WIP. http://dehacked.2y.net/microstorage.php/info/1463633869/BB_mugg.vbm
  • By blowing in a certain pattern you can speed up the bubble. That's because if you blow for too long, the way the bubble would cover decreases.
  • If your ghost looks downwards at the moment he does his victory animation, it will finish earlier and you'll go to the next room sooner.
I'm currently not working on this game since it's just too annoying for me to assure the first trick to work all the time...
Experienced Forum User
Joined: 6/4/2009
Posts: 570
Location: 33°07'41"S, 160°42'04"W
[quote="MUGG"]What does 100% mean?[/quote]There is a shortcut in a level to skip other levels but I don't want to.
Editor, Experienced Forum User, Expert player (2234)
Joined: 5/15/2007
Posts: 3825
Location: Germany
Gameboy TASer of 2015NES TAS of 2013Gameboy TASer of 2011Gameboy TASer of 2010
I found a bug in this game. If the bubble touches an exit and a wall at the same time, the ghost will play both of his animations one after the other. You lose a life - which isn't so bad I think because you can use continues - but more interestingly, you will respawn in a different location. E.g. if you do it in room 2 with the right exit, you will respawn in room 2 on the left exit. Will investigate and edit this post later if I find more. When doing it in room 1 with the left exit (the only one), you will respawn out of bounds and the bubble will burst over and over until you gameover. Video: Link to video
Editor, Experienced Forum User, Expert player (2234)
Joined: 5/15/2007
Posts: 3825
Location: Germany
Gameboy TASer of 2015NES TAS of 2013Gameboy TASer of 2011Gameboy TASer of 2010
Here is a comparison between the current TAS and if the bug was used. All time stamps are from VBA v19-23, so there might be 1 or 2 frames difference to bizhawk. (VBA input is delayed) Timing is from first frame of a room where input is accepted, until first frame of the next room where input is accepted. That way, score calculation is taken into consideration.
Room      Time(OldTAS)         Time(withBug)		TimeSaved  Notes

01        443  (624-1067)      -					   0			 Can't do bug
02        621  (1067-1688)	  594  (1067-1661)	27
03        631  (1688-2319)	  594  (1688-2282)	37
04        636  (2319-2955)	  594  (2319-2913)	42
05        608  (2955-3563)	  -					   0			 Can't do bug
06 +1Up   550  (3563-4113)	  -					   0			 Can't do bug
07        642  (4113-4755)	  593  (4113-4706)	49
08        686  (4755-5441)	  593  (4755-5348)	94		   Not verified. predicting 593 is possible.
09        757  (5441-6198)	  593  (5441-6034)	164		  Not verified. predicting 593 is possible.
10        617  (6198-6815)	  593  (6198-6791)	24		   Not verified. predicting 593 is possible.
11        733  (6815-7548)	  -					   0			 Can't do bug
12 +1Up   844  (7548-8392)	  -					   0			 Can't do bug
13        649  (8392-9041)	  594  (8392-8986)	55		
14        533  (9041-9574)	  -					   0			 Can't do bug
21 +1Up   581  (9574-10155)	 -					   0			 Can't do bug
22        610  (10155-10765)	594  (10155-10749) 16		   Not verified. Predicting 594 is possible.
23        639  (10765-11404)	-					   0			 Can't do bug
24 +1Up   759  (11404-12163)	-					   0			 Can't do bug
25        761  (12163-12924)	594  (12163-12757) 167		  Not verified. Predicting 594 is possible.
26        575  (12924-13499)	-					   0			 Doesn't save time (575 is faster than 594)
27        639  (13499-14138)	-					   0			 Can't do bug
32 +1Up   529  (14138-14667)	-					   0			 Can't do bug
33        733  (14667-15400)	593  (14667-15260) 140		  Not verified. Predicting 593 is possible.
34        610  (15400-16010)	593  (15400-15993) 17		   Not verified. Predicting 593 is possible.
35        511  (16010-16521)	-					   0			 Timed until score changes. Can't do bug

LCD lag is not considered since this testing was done on old VBA. I tested on newer VBA and the LCD lag is 35 frames there. In other words, the transition lag that took 1 frame on old VBA takes 35 frames on new VBA. Doing the bug causes LCD lag to happen one additional time, so 34 frames have to be added to the TimeSaved potential. When the bug doesn't save at least 35 frames, there is no use doing it.
Room      Time(OldTAS)         Time(withBug)		TimeSaved

03        631  (1688-2319)	  594  (1688-2282)	3		
04        636  (2319-2955)	  594  (2319-2913)	8
07        642  (4113-4755)	  593  (4113-4706)	15
08        686  (4755-5441)	  593  (4755-5348)	60		
09        757  (5441-6198)	  593  (5441-6034)	130		
13        649  (8392-9041)	  594  (8392-8986)	21		
25        761  (12163-12924)	594  (12163-12757) 133		
33        733  (14667-15400)	593  (14667-15260) 106		

00:13.93 sec saved (when sticking with VBA19~23) 00:07.97 sec saved (when switching from VBA19~23 to VBA24m → added LCD lag) Bizhawk actually seems to have 37 LCD lag frames. So we subtract another 2 frames:
Room      Time(OldTAS)         Time(withBug)		TimeSaved

03        631  (1688-2319)	  594  (1688-2282)	1		
04        636  (2319-2955)	  594  (2319-2913)	6
07        642  (4113-4755)	  593  (4113-4706)	13
08        686  (4755-5441)	  593  (4755-5348)	58		
09        757  (5441-6198)	  593  (5441-6034)	128		
13        649  (8392-9041)	  594  (8392-8986)	19		
25        761  (12163-12924)	594  (12163-12757) 131		
33        733  (14667-15400)	593  (14667-15260) 104		

00:07.70 sec saved (when switching from VBA19~23 to Bizhawk → added LCD lag) Finally, we take into consideration the life management:
Room           Lives

Start of game  Have 5 lives
03 (Bug)       Have 4 lives       
04 (Bug)       Have 3 lives
06 (+1up)      Have 4 lives
07 (Bug)       Have 3 lives      
08 (Bug)       Have 2 lives
09 (Bug)       Have 1 life
12 (+1up)      Have 2 lives
13 (Bug)       Have 1 life
21 (+1up)      Have 2 lives
24 (+1up)      Have 3 lives
25 (Bug)       Have 2 lives
33 (Bug)	    Have 1 life
So it should be all good. No continues are needed. One continue would have taken 33 frames in old VBA, and probably 107 or so on Bizhawk. A new TAS should be 04:33.37 or better. EDIT: Actually, I forgot that LCD lag is added in places that aren't improved, too. So the new time will probably be much higher than the current time...
Editor, Experienced Forum User, Expert player (2234)
Joined: 5/15/2007
Posts: 3825
Location: Germany
Gameboy TASer of 2015NES TAS of 2013Gameboy TASer of 2011Gameboy TASer of 2010
I made a script again. Link It tells frames/lag/input, ghost position, ball position, ball speed, ball braking counter, global timer.
  • When you blow at the bubble, its speed turns 4 and decrements when global timer%8==0.
  • When speed is 1, the game adds 1 to the ball braking counter when global timer%8==0. Speed is kept at 1 as long as ball braking counter is lower than 20. (I have rewritten it in my script for convenience, though. So it's actually running down from 20 to 0.)
  • When blowing at the bubble vertically or horizontally, speed turns 4. When blowing at it diagonally, speed can turn 3 at max only.
  • Here is the weird thing: 5 speed means the ball moves 1 pixel every frame (or every other frame) <-- can't be achieved outside of hacking 4 speed means the ball moves 1 pixel every 2nd frame (sometimes 3rd??) 3 speed means the ball moves 1 pixel every 3rd frame (sometimes 2nd??) 2 speed means the ball moves 1 pixel every 4th frame (sometimes 5th??) 1 speed means the ball moves 1 pixel every 8th frame So far, it seems there are oscillation patterns and pixel abuse in this game like in SML2. Yes, you can blow at the bubble at the right times in order to make it move extra pixels (at least in theory).
I'm hoping it's not too insane to figure out how to optimize it. Score meter takes 3 frames to deplete per unit after a room is finished. While playing, it decrements every 31 frames depending on the globaltimer. But I have not included that aspect in my script. Since speed can be optimized really well now, my comparison isn't really accurate anymore. It may turn out to be faster to just go through some of the rooms instead of using the bug. I'm testing it as I go on with the new TAS. E: It is still impossible to go upper path in room 9 with the optimized speed abuse. So far, speed optimization turns out to be a much bigger improvement than the bug. Saved about 7 seconds already until room 11, while not even taking the LCD lag difference into account. So maybe we're looking at a 4:1x.xx time here.
Editor, Experienced Forum User, Expert player (2234)
Joined: 5/15/2007
Posts: 3825
Location: Germany
Gameboy TASer of 2015NES TAS of 2013Gameboy TASer of 2011Gameboy TASer of 2010