Posts for OmnipotentEntity

Experienced Forum User, Published Author, Player (36)
Joined: 9/11/2004
Posts: 2624
There are proofs and bounds for specific x. https://oeis.org/A257213 But a general formula doesn't seem to be feasible. If you examine the first few values, you can see that it jumps around quite a bit. This is due to how the number line and division interacts, which is to say, very weirdly and interestingly. I don't want to speak for anyone here, but this is well beyond me. Anyway, here are the first 200, grouped by 10s 2, 3, 2, 3, 3, 4, 4, 3, 5, 4, 4, 5, 5, 5, 4, 6, 6, 5, 5, 7, 6, 6, 6, 5, 7, 7, 7, 6, 6, 8, 8, 7, 7, 7, 6, 8, 8, 8, 8, 7, 7, 9, 9, 9, 8, 8, 8, 7, 10, 9, 9, 9, 9, 8, 8, 10, 10, 10, 10, 9, 9, 9, 8, 11, 11, 10, 10, 10, 10, 9, 9, 11, 11, 11, 11, 11, 10, 10, 10, 9, 12, 12, 12, 11, 11, 11, 11, 10, 10, 13, 12, 12, 12, 12, 12, 11, 11, 11, 10, 13, 13, 13, 13, 12, 12, 12, 12, 11, 11, 14, 14, 13, 13, 13, 13, 13, 12, 12, 12, 11, 14, 14, 14, 14, 14, 13, 13, 13, 13, 12, 12, 15, 15, 15, 14, 14, 14, 14, 14, 13, 13, 13, 12, 15, 15, 15, 15, 15, 15, 14, 14, 14, 14, 13, 13, 16, 16, 16, 16, 15, 15, 15, 15, 15, 14, 14, 14, 13, 17, 16, 16, 16, 16, 16, 16, 15, 15, 15, 15, 14, 14, 17, 17, 17, 17, 17, 16, 16, 16, 16, 16, 15, 15, 15, 14, 18, 18, 17, 17, 17
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Experienced Forum User, Published Author, Player (36)
Joined: 9/11/2004
Posts: 2624
FractalFusion wrote:
(A now-deleted post by OmnipotentEntity pointed out you need sin(5x), a 5th degree function. In general, 5th degree polynomials are not solvable by radicals.)
I deleted it because it seemed like there was something else going on, to wit you never see 4th or 5th roots in those equations despite needing to solve sin(5x). But nothing was coming to mind, and rather than be potentially misleading, I thought it better to retract.
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Experienced Forum User, Published Author, Player (36)
Joined: 9/11/2004
Posts: 2624
I is the imaginary unit in those formulas, it appears frequently in the casus irreducibilis of 3rd degree and better polynomials. While it is possible to use trig substitutions to eliminate the imaginary unit, the point of the chart is to give a solution under radicals, and these numbers simply cannot be simplified further under this restriction. However, the imaginary parts do completely cancel in all cases. A good minimal example of such a number* to play around with is (1 + i*sqrt(7))^1/3 + (1 - i*sqrt(7))^1/3 Which is approximately 2.6016791318831542525 This is also equal to 2 sqrt(2) cos(1/3 arctan(sqrt(7))) (Math Challenge: Can you prove this relationship?) * It's generating cubic is x3 - 6 x - 2 = 0
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Post subject: Forum Request, MathJax plugin
Experienced Forum User, Published Author, Player (36)
Joined: 9/11/2004
Posts: 2624
It would be useful for the math thread and anywhere else where non-trivial formulas are used (such as damage formulas for games, or RNG update formulas, and so on.) Here's one such plugin for PHPBB. https://www.phpbb.com/community/viewtopic.php?f=70&t=2133985 And a screenshot of the markup from the above post:
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Experienced Forum User, Published Author, Player (36)
Joined: 9/11/2004
Posts: 2624
FractalFusion wrote:
Let g(x) be the inverse function of (x-1)ln(x). Then the second solution is x=g(ln(2)).
Actually, a better definition might be to extend the Lambert W function. Let's call it where W(x;a) is the inverse of (x-a)e^(x). In this case x = W(2; -1) + 1 I got this wrong. Working it out: xx - 2x = 0 xx = 2x ln(xx) = ln(2x) x ln(x) = ln(2x) eln(x) ln(x) = ln(2x) eln(x) ln(x) = ln(2) + ln(x) ln(x) * (eln(x) - 1) = ln(2) So we'd actually need a slightly different function. W(x;a) = f-1(x*(e(x)-a)) W(ln(2); 1) = ln(x) x = eW(ln(2); 1)
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Experienced Forum User, Published Author, Player (36)
Joined: 9/11/2004
Posts: 2624
Thatguy, It looks like it's not possible to use the W function to simplify this expression. Warp, did you solve this equation? If so, give us a hint, which special function did you use?
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Experienced Forum User, Published Author, Player (36)
Joined: 9/11/2004
Posts: 2624
4 player control, with FREEFORALL and DOUBLEVISION activated. But why tho? It's not useful for the full game run.
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Experienced Forum User, Published Author, Player (36)
Joined: 9/11/2004
Posts: 2624
Warp wrote:
OmnipotentEntity wrote:
It's also possible to calculate the sin(9°) through a similar technique to the one used by blackpenredpen to calculate sin(18°). Why not give it a shot Warp. ;D
I tried it, I couldn't figure anything out.
Hint, if you follow the same procedure as rpbp you get a 18-72-90 right triangle. But the problem is you need the side that represents the cosine of 18°. 🤔
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Experienced Forum User, Published Author, Player (36)
Joined: 9/11/2004
Posts: 2624
It's also possible to calculate the sin(9°) through a similar technique to the one used by blackpenredpen to calculate sin(18°). Why not give it a shot Warp. ;D
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Experienced Forum User, Published Author, Player (36)
Joined: 9/11/2004
Posts: 2624
Beginning at 01F6B1 there seems to be hitbox data. The enemy type is stored at an offset of 0x1B from the beginning of the enemy data structure. Bosses and NPCs do not use this table. This seems to be regular enemies only. I have not confirmed what each of these four values mean yet. But I think it might be hurtbox delta x, hurtbox delta y, hitbox delta x, hitbox delta y?
.01:F6B1                 Hitbox $11, $A, $22, $14 ; 0 - Cril
.01:F6B9                 Hitbox $14, $A, $28, $14 ; 1 - Dro
.01:F6C1                 Hitbox $11, $C, $22, $18 ; 2 - Chiphon
.01:F6C9                 Hitbox $14, $A, $28, $14 ; 3 - Tick
.01:F6D1                 Hitbox $10, $A, $20, $14 ; 4 - Bune
.01:F6D9                 Hitbox $18, $B, $30, $16 ; 5 - Savage
.01:F6E1                 Hitbox $10, $A, $20, $14 ; 6 - Gregory
.01:F6E9                 Hitbox $13, $A, $26, $14 ; 7 - Revie
.01:F6F1                 Hitbox $10, $A, $20, $14 ; 8 - Roputo
.01:F6F9                 Hitbox $10, $A, $20, $14 ; 9 - Crud
.01:F701                 Hitbox $12, $A, $24, $14 ; 10 - Hauru
.01:F709                 Hitbox $12, 9, $24, $12 ; 11 - Rock
.01:F711                 Hitbox $11, $A, $22, $10 ; 12 - Hunter Wolf
.01:F719                 Hitbox $14, $A, $28, $14 ; 13 - Magie
.01:F721                 Hitbox $14, $A, $28, $14 ; 14 - Bizarl
.01:F729                 Hitbox $14, $A, $28, $14 ; 15 - Nondietto
.01:F731                 Hitbox $14, $D, $28, $1A ; 16 - Zudabvou
.01:F739                 Hitbox $12, $A, $24, $14 ; 17 - Gustavu
.01:F741                 Hitbox $12, $D, $24, $1A ; 18 - Elumerutergie
.01:F749                 Hitbox $14, $A, $28, $14 ; 19 - Mikky
.01:F751                 Hitbox $14, $A, $28, $14 ; 20 - Angelassu
.01:F759                 Hitbox $14, $A, $28, $14 ; 21 - Revock
.01:F761                 Hitbox $14, $D, $28, $14 ; 22 - Kiezer
.01:F769                 Hitbox $10, $A, $20, $14 ; 23 - Helliones
.01:F771                 Hitbox $D, $A, $1A, $10 ; 24 - Oruton
.01:F779                 Hitbox $14, $A, $28, $14 ; 25 - Sagiterl
.01:F781                 Hitbox $10, $A, $20, $14 ; 26 - Nuter
.01:F789                 Hitbox $14, $A, $28, $14 ; 27 - D-Cline
.01:F791                 Hitbox $14, $A, $28, $14 ; 28 - Killerknight Dame
.01:F799                 Hitbox $13, $C, $26, $14 ; 29 - Edoger
.01:F7A1                 Hitbox $12, $A, $24, $14 ; 30 - Sadowiee
.01:F7A9                 Hitbox $10, $A, $20, $14 ; 31 - Flyokuto
.01:F7B1                 Hitbox $12, $A, $24, $14 ; 32 - Brol
.01:F7B9                 Hitbox $14, $A, $28, $14 ; 33 - Foolisharukan
.01:F7C1                 Hitbox $16, $D, $2C, $1A ; 34 - Bishamon
.01:F7C9                 Hitbox $14, $A, $28, $14 ; 35 - Exellian
.01:F7D1                 Hitbox $18, $C, $30, $18 ; 36 - Thimale's Guardians
.01:F7D9                 Hitbox $28, $24, $50, $2C ; 37 - Evil Spirit Shell
.01:F7E1                 Hitbox $18, $18, $30, $18 ; 38 - Beast Zerah
Names are taken from the x68000 version, as the names never appear in the SNES game. The last three appear during boss battles; however, seem to use this table. I haven't figured out yet how the game decides whether to use this or the (yet to be found) boss table. (To think it took me 7 years to get this shit moving... Jesus I'm slow.) RNG state seems to be located in memory at 3B4 and 3B5. There's what looks to be a uniform distribution subroutine from 0 to Acc at 9800, which outputs to BF. The next state of the RNG from current is simply:
acc = $3B5 + 1;
$3B4 = acc;
$3B5 = 5 * acc;
$3B4 = $3B5 * 16 | $3B5 / 16; // nibble swap
Additionally, one is added to $3B5 every frame. The damage formula in code is (4*Atk - 2*Def)/10 (which is equivalent to the damage formula posted on page two). And there's an RNG component that is calculated by taking the result of that and generating a random number between 0 and one tenth of the result and adding it. So if you do between 0 and 9 damage, you just do that damage. But if you do between 10 and 19 damage, you have a 1/2 chance to do 11 to 20 instead. For 20 to 29 damage, you have a 1/3 chance of doing 21 to 30, and another 1/3 chance of doing 22 to 31. And so on.
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Experienced Forum User, Published Author, Player (36)
Joined: 9/11/2004
Posts: 2624
http://tasvideos.org/userfiles#uploadfile You need to be logged into the website, same username and password. Filesize needs to be under 4MB when compressed. So you should be fine, as long as your movie file is more or less normal, (ie, low entropy)
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Experienced Forum User, Published Author, Player (36)
Joined: 9/11/2004
Posts: 2624
Warp wrote:
FractalFusion wrote:
7+5sqrt(2)=(1+sqrt(2))3
That equation seems less than self-evident...
(1 + sqrt(2))3 (1 + sqrt(2))(1 + sqrt(2))(1 + sqrt(2)) (1*1 + 1*sqrt(2) + sqrt(2)*1 + sqrt(2)*sqrt(2))(1 + sqrt(2)) (1 + 2*sqrt(2) + 2)(1 + sqrt(2)) (3 + 2*sqrt(2))(1 + sqrt(2)) (3*1 + 3*sqrt(2) + 2*sqrt(2)*1 + 2*sqrt(2)*sqrt(2)) (3 + 3*sqrt(2) + 2*sqrt(2) + 4) (7 + 5*sqrt(2))
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Experienced Forum User, Published Author, Player (36)
Joined: 9/11/2004
Posts: 2624
nymx wrote:
hegyak wrote:
A comment on the Twitch Stream: You can use a Verification Movie file to unlock Master Difficulty. Then submit a TAS that plays on Master Difficulty. The Verification movie file, does not have to be optimized at all. It just needs to get the game to unlock Master Difficulty.
Thanks for your comment hegyak. Bascially, TASVideos doesn't accept that ... even if it was not tampered with to cheat the game. This sites restriction on this can be viewed at: http://tasvideos.org/MovieRules.html#WeDoNotAllowSaveAnchoredMovies
I assure you that we do accept what hegyak wrote. In fact, you very kindly provided me the citation that I was going to provide you:
However, there are certain games with unlockable modes, second quests, or other things of interest that can only be accessed if a save file (or an otherwise "dirty" SRAM) is present. If you really wish to submit a movie made on such a mode, you will need a verification movie made and provided alongside it. Any input file that starts from power-on (for example, a previously submitted movie for that game) and creates the exact circumstances for your submission to sync will generally do.
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Experienced Forum User, Published Author, Player (36)
Joined: 9/11/2004
Posts: 2624
I could ask Bisqwit, but I'm pretty sure that the rule against PAL (and other similar rules on game branches) originated in order to keep the site from being cluttered with several different runs of the same (popular) game of potentially varying quality, to reduce the workload of publishers, and to reduce the CPU usage of the torrent tracker (back when that was still the primary distribution method). Clutter can be reduced through, through better design. And the torrent tracker isn't really that busy anymore I don't think. We have the vault now to keep "less entertaining" runs, which was a similar change towards inclusivity. So should this be an opportunity to revisit these rules formally? If so, what's the best way to handle this? Speedrunners just have all of the regions in the same branch normally, but there are exceptions. Should this all just be done case by case? If so, who decides?
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Experienced Forum User, Published Author, Player (36)
Joined: 9/11/2004
Posts: 2624
Putting this here because it's a bit counterintuitive. It is faster to go up the west wing of F1 to the Silence Terrace, get the Moon Blade, and then go back down to F2 to grab the statue before continuing up to F4. It's 1111 frames faster, or about 18.5 seconds. But there is less experience on the route, because you spend most of your time in enemy free rooms. I also tested going up the East wing and back down to F2 to grab the statue before continuing to the Silence Terrace to grab the Moon Blade, that route is actually 2139 frames slower (primarily because of the longer F1 route.)
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Experienced Forum User, Published Author, Player (36)
Joined: 9/11/2004
Posts: 2624
As requested: around(ln(n))(n) around(li(n))(n)
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Experienced Forum User, Published Author, Player (36)
Joined: 9/11/2004
Posts: 2624
Bobo the King wrote:
First, I have to admit that I didn't understand many of OmnipotentEntity's graphs. Could you be more explicit about what you're graphing at each step?
Hey that's ok! It just means I was a bit unclear. This graph is essentially taking n to be time and graphing ai(n). The left side is high values of i near n. And the right is low values. So the point on the x axis marked as 1 is actually n, 2 is actually n-1, and so on. As the value of i decreases, the value of ai(n) increases until it reaches a peak, then rapidly drops off. Each frame is labeled with a value which is pretty stupidly calculated in retrospect. Essentially, if you subtract it from 1 you get the ratio i/n such that ai(n) is maximized within the ak(n) family of functions. The second image: These are the stupidly calculated values from before, except isolated and graphed against increasing n. So subtract these from 1 and you'll get something useful... maybe. This is exactly the same graph as the first one, except placed on a log axis, to highlight the exponential growth of the function. This is exactly the same graph as the third one, except with an exponential curve that connects an(n) and aimax(n). This is to highlight the fact that this function actually grows faster at the beginning than at the end, giving the "best performing" value for i with respect to n. "Best performing" meaning that the value of ai(n) for this particular i the highest compared to the line fitted out of all the ak(n) functions. The last two images are again poorly calculated, subtract them from 1 and you might get something better. But essentially, when subtracted from 1, this is the ratio i/n such that ai(n) is the "best performing" value of the family of functions ak(n)
The closest I can come is where I say finding the right partition is "a complete nightmare". In this sense, I suppose I would be looking for the function k in terms of n that maximizes the computational complexity of finding the partition that maximizes the LCM.
Well, because of combinatoric explosion, the larger values of i and n tend to make computation longer. However, this cannot be what you mean. Can you elaborate?
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Experienced Forum User, Published Author, Player (36)
Joined: 9/11/2004
Posts: 2624
Well, if we define a sequence of ai(n) from i=n to i=1 for all n < 85 we get a series of graphs. (Note, as mentioned, I reversed the x axis essentially to get everything to line up nicely and highlight the similarities between subsequent graphs.) It's clear that there's some point at which the graph peaks. And it seems to be converging on a single point. So let's highlight that: However, that's not what you're talking about. Right? There's a sweet spot where the function is doing "better than expected." So let's look at this graph on a log scale: So it looks as if the function has a bit of a hump. It starts of faster than it finishes. So it could be said that the sweet spot is where ak(n) / fitk(n) is maximized. (Or subtraction too, I just think that division is a better fit because we're dealing with exponentials maybe?) You mentioned it might be at around sqrt(n), so here's that last graph with 1/sqrt(n) added, seems suggestive: If anyone wants to try to prove these relationships, that would be awesome. I'm pretty useless when it comes to proofs.
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Experienced Forum User, Published Author, Player (36)
Joined: 9/11/2004
Posts: 2624
According to OEIS, the asymptotic behavior of ak(n) seems to be nk/kk. I do not know why this would be the case. http://oeis.org/A129647 http://oeis.org/A129648 http://oeis.org/A129649 http://oeis.org/A129650 It should be noted that the behavior of a5(n) seems to exhibit non-monotonicity quite a bit.
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Experienced Forum User, Published Author, Player (36)
Joined: 9/11/2004
Posts: 2624
Nach wrote:
OmnipotentEntity wrote:
Note: It doesn't seem to run on my phone at all.
Either version? Is there an error message? Does it just lock up?
It doesn't lock up, it just doesn't run. No error message. The constrained version does run; however, and I get this result:
Google Nexus 6

User Agent: Mozilla/5.0 (Android 7.0; Mobile; rv:54.0) Gecko/54.0 Firefox/54.0
Vector   Block   Result   Duration
12   3   correct   259.75ms
13   3   correct   676.00ms
14   3   correct   1760.41ms
15   3   correct   3702.22ms
16   3   correct   6768.39ms
12   4   correct   382.44ms
13   4   correct   773.34ms
14   4   correct   1532.51ms
15   4   correct   3219.69ms
16   4   failed    7.36ms
12   5   correct   828.78ms
13   5   correct   1491.93ms
14   5   failed    1.91ms
15   5   failed    0.51ms
16   5   failed    1.32ms
Status: Done.
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Experienced Forum User, Published Author, Player (36)
Joined: 9/11/2004
Posts: 2624
Update your Firefox.
Intel Core i7-7500U CPU @ 2.70GHz

User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:54.0) Gecko/20100101 Firefox/54.0
Vector	Block	Result	Duration
12	3	correct	40.10ms
13	3	correct	79.84ms
14	3	correct	156.90ms
15	3	correct	310.39ms
16	3	correct	619.43ms
12	4	correct	84.44ms
13	4	correct	165.54ms
14	4	correct	329.75ms
15	4	correct	657.62ms
16	4	correct	1317.17ms
12	5	correct	170.76ms
13	5	correct	337.95ms
14	5	correct	678.52ms
15	5	correct	1345.25ms
16	5	correct	2676.88ms
Status: Done.
Note: It doesn't seem to run on my phone at all.
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Experienced Forum User, Published Author, Player (36)
Joined: 9/11/2004
Posts: 2624
It's not really a solution. It's a workaround.
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Experienced Forum User, Published Author, Player (36)
Joined: 9/11/2004
Posts: 2624
It's easier if you think of it in terms of modular arithmetic. Any number n that is divisible by p is congruent to 0 in mod p. So if we have a finite list of primes, p_1, p_2, ... p_n then we can construct a number which is congruent to 0 in every mod p_i. When you add one to this number you get a number congruent to 1 in every mod p_i. Which is therefore not divisible by any p_i.
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Experienced Forum User, Published Author, Player (36)
Joined: 9/11/2004
Posts: 2624
Plush wrote:
Nah thanks, you just answered =)
I'm just popping in to point out that completely ignoring the part where it took a long time is actually a bit disrespectful to the person who did the encodes. Their time is also donated to the site, and they tend to get fewer accolades than the runners, but tend to spend as long, if not longer, contributing to the site overall. I've been a reasonably minor figure on both sides of the player/publisher divide, and I can assure you that encoding with Mupen has been a pain that I've had the displeasure of experiencing. Please don't minimize the actual problems that it represents. And, I understand that you think you've rhetorically outwitted Mothrayas here. But as far as I have seen in this thread, he's been as or more polite to you than anyone else. Please return that courtesy. We all have similar goals here. natt is in the thread, why not open a dialog and try to help him, if he's willing? If emulator accuracy is the problem for you accepting BizHawk, wouldn't that be the most reasonable thing to do? I'm sure you have more than a few test cases that might be useful. It might not be as easy as trying to bully staff into accepting an improvement, but I think we both can agree it's more useful and sustainable.
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Experienced Forum User, Published Author, Player (36)
Joined: 9/11/2004
Posts: 2624
Plush wrote:
Mupen64 objectively HAS better accuracy than Biz, since it's much closer to final time.
Just because the time is closer, doesn't necessarily mean that the emulation is more accurate. There are a lot of moving parts in an emulator. For instance, if an emulator has two emulation errors, one that causes it to gain a frame, one that causes the loss of a frame, the overall time is exactly the same. However, if a second emulator merely has the second error, then it will be a frame faster. But you'd presumably agree with me that the second emulator is objectively the more accurate emulator, despite having a different time.
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.