Hi dekutony, are you using a French keyboard? When I reproduce your movie, I see "TENTQCLES" being inputted, which of course desyncs. This is typical of french keyboards.
Hi Curhob. I'm the new judge for this submission.
Seems a lot of water has flown under the bridge and it's hard to recover from the discussion what's the exact state of this submission now. I have a couple of questions to start setting the record straight. Please do answer all of them in as much detail as necessary
1) What exactly is the movie file that you want to be judged? If a userfile, please provide a link to it.
2) Who are the author(s) of that movie? What are their contributions (give percentages, if necessary)
3) What is the FPS of that movie and why was it selected? (I see discussions arguing it's the wrong FPS for this game, so I'd like to know your opinion)
4) What exactly is the command you used to launch the game (e.g., libTAS -r mymovie.ltm ruffle -gl game.swf)
5) What exactly is the name and hash (MD5 or SHA1) of the .swf file you used to launch this game
6) Any additional sync settings I need to know. Please do not link me to them if you've posted them already, just re-paste them in your answer.
Thanks
Hey eien86, you probably tried this but im gonna ask anyway because i noticed it...
Have you tried a perfect start? Like timing your acceleration at the start of each track to get a "boost"?
And for turning corners... did you hold down the direction button or tap it?
Thanks in advance for answering!
Hi Somyeol!
I didn't approach this TAS super professionally. I did it to have fun and take a rest from the technical grind. So I didn't study the effects of timing the start and perfectly tapping turns.
This game is very quirky with physics and probably a more sophisticated touch will find improvements.
Unfortunately I am getting a desync.
jaffar:~/ruffle-nighly-2024-12-15$ libTAS -r PoP_SEv2.ltm ./ruffle --no-gui -g gl PoP1_SE/Swf/Prince.swf
I noticed the file I used: PoP1_SE/Swf/Prince.swf has
MD5: 7184c60f5dfc957d1a405fc2791ff83d
SHA1: 51582b3e1659a637e21c516f9ec9f79a404f90e1
Which doesn't coincide with the ones you indicate in your publication
395809fc740ea76750aa934533799c2a
2dce9e0c8b9f4110942eb72e2f1c5947
Please tell me exactly the command you used to run the movie, which swf file you used, and its SHA1/MD5 hash value.
Is something like this possible with the normal friction with perfect score after perfect score?
Yep, I have that exact movie finished, waiting for submission. One difference though is that the 'minimum strikes' and 'max score' goals differ when you introduce friction.
There might be a table where you can pocket in two turns in a 3/3 or 0/6 configuration. Zero is possible thanks to friction, as you can re-locate the cue ball to a more favourable position. In this case, I configured the bot to go for 0/6, to reduce frame count, as it resets the rate. Had I wanted to go for max score, the bot would've chosen the 3/3 route.
This dillemma happens only a couple of times, but its enough to insert a considerable wedge between the two categories.
Stay tuned!
eien86, should I go ahead and judge this as is, or are is there work being on this and I should wait?
Hi CHM, as far as I'm concerned you can go ahead an judge as is. The work that Alyosha and Bigbass are doing may result in a proof-of-sync movie, but not necessarily one that replaces the submission.
But perhaps it's better to wait and see what's their opinion on this.
If you guys need missing callbacks in quickerNES, I can add them. Just let me know exactly what's needed
What's needed is an IInputCallbackSystem callback that fires on controller latch. Having this allows poll based dumping. In this case it would also help in conversion to SubNESHawk using lua.
EDIT: for quickerNES it would be inside this if check on line 838 of core.hpp:
if (input_state.w4016 & 1 & ~data)
Why did you sometimes shoot you ball into a hole slowly? Like, you could gain more power and save a couple of frames.
So concerns shooting other balls and "dying" as a result. Stage 47 is very representative on this regard
It's hard to tell, but my theory is that I think it boils down to the emulation aspect. The game being so finnicky, perhaps this weird move enables the perfect setup for the next shot.
What does "Frictionless" mean in your YouTube encode's title? Is that why your truck is going so unusually fast or is this just a natural quirk of the game when played perfectly?
Lol, it was a copy&paste mistake from my previous YouTube upload. I'll remove it
Also emulation differences make it so that executing a shot under the same conditions (angle, position, power, power increase/decrease direction) would result in different outcomes.
What is it that makes this the case? That seems strange.
In some stages I wanted to replicate Bisqwit's solution, but even if I got all the conditions (angle, power, power direction), pressing the B button would react one frame slower or faster. I am pretty sure this has to do with emulation timing disagreements between the emulators.
Alyosha wrote:
It's impressive botting work as usual, though I'm not really a fan of using QuickerNES for cases like this where emulation accuracy matters, to me it's like using a lot of resources to get an incorrect answer.
I agree this is not the ideal emulator to be using when accuracy plays such a role. However, given the previous movie was done and accepted using FCEU, it can be considered an improvement even. Had that movie been done with NesHawk, I wouldn't have considered using a less accurate emu.
Alyosha wrote:
Out of curiosity though, how fast would an accurate emulator need to be for you to consider using it for botting?
I'd say anything in the ballpark. I can get around 1.7M rerecords/s with QuickerNES. If an accurate emu could get me 100k, I could consider using it for cases like these. Less than ~50k would be completely useless.
Thank you so much again for the cool encode!!
FractalFusion wrote:
By the way, I noticed in the input that the TAS starts with the code Right-A-Down-B-Left-A-Up-B was used at the beginning of the TAS to speed up the ball by 50%. I guess in-game codes are allowed now? (Also, what does "warpless" even mean?)
Boy, I'm working on so many movies, I forgot to clarify these important points. The code is used for selecting "Hard" difficulty. It makes the ball go faster in every level from the get-go (which is convenient for a TAS) and grants additional score.
Warpless means I do not take any 'Breakout' power up that ends the current stage immediately.
Technically additional loops would be additional content up until you've played every track with max upgrades once, right? Though I wouldn't expect you to do it unless you were interested
In my interpretation, completing all tracks, and obtaining all upgrades are orthogonal goals: you could make movies with the two goals separately. Furthermore, joining them could eventually be considered 100%. Here I make my decision of going for "all tracks" explicit in the goal, to remove any confusion.
I have a question, there is a reason to not use B/Y buttons?
On default speed, with both buttons pressed, you can make to the other side on 17 frames (and on fast is the same), but with only fast speed it's 22-23 frames side to side with no buttons
Wow, I had no idea you could do that! Definitely something to try the next time I come back to this game ;)
Nice to see more Arkanoid. Two things. Since your NES movie made use of a different peripheral, how does using the SNES mouse compare to the joypad for this title? And sometimes you let balls disappear, even when there's blocks enough that they seem useful. I don't know the full mechanics, but can you not return the coloured balls that appear when you hit certain enemies? (Like in round 97.)
Hi Chanoyu, thanks for your coments.
The closer to a specialized controller for SNES is using a mouse to control the paddle. However, the mouse has speed limitations and therefore cannot achieve the same effects as in my NES movie.
As per apparently sub-optimal situations (balls lost), it can be the case that dropping one or two in favor of keeping others far away alive ends up being the global optimum. However, this can also be attributed to the fact that I used a significantly narrower exploration space for this game than for the NES, since the latter can be emulated much (~6x) faster, and more states (200x) fit in memory
As per the colored balls, they will explore upon touching them with the paddle or with other balls. Unfortunately, it's hard to make better use of them.
Hope that answers your questions!
This is very superhuman looking with the paddle teleporting all over the place and very fast clears. Despite that it seems to me that certain levels should be able to be done a little faster. Some levels look amazingly fast with all the balls zipping and bouncing off blocks rapidly and everything coming to a close about the same time. However a couple stages it seems the balls kind of struggle at the end to get the final block. Some levels also seem like it would be faster if more balls were shot through holes to bounce off the top of the map and the top of the blocks since the bouncing distance is less than the distance between the paddle and the nearest blocks on the bottom. I don't know if there is a way of directing the bot, but could be something to consider (or if improving is even possible). Still looks great though!
Thanks for your comments! I am pretty sure you are thinking about, for example, [https://youtu.be/DWvEd5vz-hw?si=vg6wTQI1azxzVqFb&t=517|Stage 31]. Here the looks are deceiving. The stage won't end until the totally score tally finishes, so the bot is optimized to finish the "bulk" of the blocks as soon as possible, even potentially leaving one or two "alive" for a while, since the tallying is the dominant factor. You can see even how, even after destroying the last brick, we keep counting and counting. Hope that clarifies the situation!
I like how the Arkanoid paddle controller actually improves the TAS.
1080p60 encode, with input display:
Link to video
I recommend viewing at 720p60 or above, since the "entertainment" effects don't show up on 30-fps settings.
Omg this encode gave me life. You can see exactly the logic behind the entertainment inputs I added. I'll use it as official encode. Thanks!