Posts for Masterjun


Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
You want to do the rounding you do at secs everywhere, otherwise only one of the values gets rounded and the other one is off (as you have seen). So just introduce a new variable where all other values are calculated from.
Language: lua

local function totimeseconds(frames,fps) ---- option 1, cutting off: ---- 2.994 -> 2.99 ---- 2.996 -> 2.99 --local fullsecs = frames/fps ---- option 2, rounding at half steps: ---- 2.994 -> 2.99 ---- 2.996 -> 3.00 local fullsecs = math.floor(((frames/fps)*100)+0.5)/100 local hours = math.floor(fullsecs/3600) local mins = math.floor(fullsecs/60)%60 local secs = math.floor(fullsecs%60) local ms = math.floor(fullsecs*100)%100 return string.format("%02d:%02d:%02d.%02d",hours,mins,secs,ms) end
At 59.7275005696058 FPS it will give proper results: 178 frames -> (2.9802... seconds) -> 00:00:02.98 179 frames -> (2.9969... seconds) -> 00:00:03.00 180 frames -> (3.0136... seconds) -> 00:00:03.01
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
To TAS Celeste, you can use libTAS on Linux. Of the 6 different platforms this game has been released, only Linux and Windows are currently TASable, and the Windows tool (Hourglass) is not very good and is very likely to not work.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
For reference, here is the link to the current guidelines.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
Voting No because of lack of spaghetti.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
What, do you think Mario's cape is made out of regular material? It's yellow for a reason!
<Nach> Masterjun now grows a cape right out of his shoulders <Nach> what will Masterjun do? <Masterjun> spin to win <Nach> Masterjun spins super quickly pulling all the Spaghetti into himself and becomes a giant Spaghetti monster in his own right!
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
SMB with portals. Without portals! Truly a feat to be remembered for decades to come.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
Spaghetti!
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
Great! This solves the discussion of whether to call them movie files, input files, playback files, etc. We will use the term recipe from now on.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
codemann8 wrote:
Anyone know the current bsnes core version that is used in the current Bizhawk release?
In BizHawk, go to Help -> About.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
So I made a program simulating the engine and brute forcing inputs to get a piece into a position. (Not really brute force, but something similar to Dijkstra) For reference, this movie, with this RNG seed and piece placement order, misses 13 wallkicks each saving one frame, and then another frame by not having the DAS charged up enough. Examples: - - The full list of framecounts where piece are placed one frame too late: 3472, 4215, 6028, 6607, 6643 (DAS), 6800, 7121, 7304, 7570, 8026, 8833, 9426, 9751, 9971 Saving the 14 frames from the original 02:42.63 in-game time, you get 02:42.40. However, I want a new submission to get the Gold AC medal, so this is a post just for reference.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
This feature has been added, but is not yet in any official release (the latest one is 2.2.3 currently). However, if you're on Windows, you can use the autobuilds of the development version. The syntax description is: bool movie.play(string filename, [bool read_only, [int pauseframe]]) (aliases are movie.load or movie.playback) Loads and plays a movie from the directory relative to the Lua script or from the absolute path. If read_only is true, the movie will be loaded in read-only mode. The default is read+write. A pauseframe can be specified, which controls which frame will auto-pause the movie. By default, this is off. A true value is returned if the movie loaded correctly.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
This currently submitted movie only saves 44 frames, but that new movie saves an additional 495 frames and includes new glitches. It would be best to cancel this submission and make a new one with an updated submission text.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
This run is of high technical quality, good job! I did see some minor things that might save some frames here and there, but nothing big. But the ROM hack in general seemed a bit... boring? Maybe not boring but at least lacking. Of course, the level puzzles and the music were great. The extra sprites were interesting. But what about the major features of SMW already existing in the game? The only times powerups were used, their purpose was to get hit instantly and give Mario a few invincibility frames. Yoshi was also only used for a few seconds as an extra jumping platform. For me, it didn't really feel like a game to TAS. The levels were very linear, and a lot of them were on some kind of global timer (either an autoscroller, or waiting for a platform to reach you), making all optimizations useless in the end. Well, but I always enjoy a high quality TAS on an SMW engine, even if it's a game like this.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
The initial state of RAM is an interesting topic which has been discussed a few times on this site. For starters, in general, the initial state of RAM is not all 0's and not all 1's (speaking in bits of course). So if the boot state just happens to have the values the game uses to determine a soft reset, then yes, the game will acknowledge it as such. Now, the question how likely this is to happen is a very different one. In general, there isn't a 50/50 chance of a bit being 0 or 1 on boot. Even the assumption that every console would be the same is wrong. For more information on that, it's indeed best to read Nach's page on that. Since our emulators want to assure determinism, they use a fixed starting state. And due to the non-trivial randomness involved, we don't allow setting a custom starting state for an advantage.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
Yuzu requires OpenGL 4.3 (or even higher at this point). To make savestates possible, OpenGL needs to be emulated in software. You can see the supported versions in this matrix. Now, libTAS uses llvmpipe, which only goes as high as OpenGL 3.3 as of now, so it's not looking good. For reference, I tested around a lot.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
Submission text wrote:
AC Medal: One all clear is performed at the start for the Bronze AC medal. As previously mentioned, there is too much RNG involved to get a higher medal than that
Hmm... Link to video Note that I didn't change the RNG, the pieces are the same.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
Warp wrote:
How do you prove that sqrt(2) isn't an integer?
You can do it like this: Of course, this assumes the monotonic property (strictly increasing) of square roots. In other words, x<y ⇒ sqrt(x)<sqrt(y), which can be proven easily. (Here's my attempt)
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
As an author of runs myself, I would dislike it if my run would get published when there is a faster run. Talking about disrespect here works in both directions.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
Warp wrote:
most commonly when people talk about online video services and "streaming", they are talking about live-streaming, not just an uploaded video.
Nope.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Post subject: Don't vote purely based on time taken
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
For reference everyone: Voting No simply because he took 30 minutes to make this 1 minute run is not a good idea. Back when I was new to the site I made and submitted this 10 minute run in 4 hours, which is only 24 minutes per 1 minute TAS. It wasn't the best TAS, but it was acceptable and at least worth a watch before voting.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
MUGG wrote:
In Lua, is it possible to split a hexadecimal number in two?
Usually this is done by using bitwise AND and logical shifts right:
Language: lua

num = 0x1234 print(num & 0xF) -- 0x4 print(num & 0xFF) -- 0x34 print(num & 0xFFF) -- 0x234 print(num >> 4) -- 0x123 print(num >> 8) -- 0x12 print(num >> 12) -- 0x1
However, these bitwise operation were only introduced to Lua in version 5.3. It's useful to know that this can also be done by using division and splitting up the integer part (integer division) and the remainder part (modulo operation): Think how dividing 5678 by 100 will give you 56.78 - the integer part 56 and remainder part 78. This is the same in base 16: 0x1234 dividing by 0x100 will give you an integer part 0x12 and a remainder part 0x34. Getting the integer part is done by using math.floor and the remainder part uses %:
Language: lua

num = 0x1234 print( math.floor(num/0x100) ) -- 0x12 -- math.floor to simulate integer division print( num%0x100 ) -- 0x34 -- modulo operator %
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Post subject: How to fix ratings
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
<feos> the main problem is WE PEOPLE are INCREDIBLY lazy. if something is less trivial than Apple's "whole screen filled with just one button saying PUSH", they will make shortcuts everywhere they can <MESHUGGAHTAS> feos: good idea. make a big button on each movie. if the viewer presses it, the TAS stays. if the viewer skips to next TAS, tht TAS gets fucking rejectd and thrown in to the eternal fire of dark corners of the blood flowing caverns of hell
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
Can't you just shuffle normally, but then afterwards drop each card from a sufficiently high elevation? Instead of flipping a coin you're flipping the cards. Every configuration of cards would have the same probability. This means that having 26 face up cards out of 52 is much more likely than having 0 face up cards. Just like how rolling two dice will give you a sum of 7 more often than 2. If you want an even distribution on the number of cards being face up, the easiest way would probably be to add a 53th card, shuffle the deck (all face down), use the extra card to divide the deck in a top and a bottom half (and remove the extra card), turn around the top half, and then shuffle again. Edit: If you don't have a 53th card, then of course you can just use the randomness of a shuffled deck, for example: Use eight cards from 1 to 8 (1 being Ace), shuffle, take a card, subtract 1 then multiply by 8. Reshuffle the eight cards, subtract 1 and then simply add the number to the previous result. This gives you an equal distribution from 0 to 63. If you get a number above 52 just redo the process. The rest should be trivial.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
If you're on Windows 10 and you enabled scaling up applications: If you just want the BizHawk application itself to be scaled up you can do: Right-click on EmuHawk.exe -> Properties -> Compatibility tab -> Change high DPI settings -> Check: Override high DPI scaling behavior. Scaling performed by: System This might make BizHawk blurry because it is now bigger than the default.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Masterjun
He/Him
Experienced Forum User, Published Author, Site Developer, Skilled player (1971)
Joined: 10/12/2010
Posts: 1179
Location: Germany
Warp wrote:
For years I have been wondering, and often commenting about, how TASing exhibitions at the GDQ events have devolved from "speedrunning with superhuman perfect skills" to "let's exploit games and inject our own code into the console"
Looking at the past runs, I wonder how you came to that conclusion. Please elaborate (or quote your old replies).
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)