Posts for FractalFusion


Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
I have some comments about your WIP (such as a couple more shorter paths and about battle strategies) but I have no time to talk about them right now. Maybe in a couple days.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
It's good that you don't have to wait at the teleporters now (not that I know how RNG works in this game). Only downside is now you hear 31.68s less of gameplay music.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
merrp wrote:
- Using an Elixir. This is what I originally did for the double corruption method, but you can't use an Elixir on an Egg.
Oh, too bad. Well, it was worth a try anyway. What does the Elixir even do when you use it on a move whose max PP is 0? Give you 1 out of 0 PP?
merrp wrote:
Not yet tried, probably a bad idea: - Performing a second corruption to corrupt the first move's PP to a nonzero value.
I don't think that is even possible. If I understand it correctly, corruption only affects the last (most significant) byte of each block of four bytes, and Move 1's PP is the first byte of a block of four. Edit: Is it not possible to use a Leppa Berry or Ether instead of Elixir?
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
How about writing instruction code in the box names (the boxes where you store Pokemon), like in the Pokemon Crystal and Pokemon Silver TASes? I checked, and you can use the same characters as when naming Pokemon, and you get 8 characters per box name even on JP version. Though I'm not sure where it would be located in memory.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
merrp wrote:
Is there an optimal route drawn out somewhere?
For the two I mentioned, the way to go through optimally (which was not in your video) would be: ~18:04: ~33:23: Also another two: ~12:53 ~17:58 There are also similar paths that can be shortened at around 4:38, 8:09, 8:15, 18:09, 18:17, 18:54 and 33:25. Other things: - IIRC, at 6:35, it is faster to talk to Norman on his right (player facing left). It's in the published TAS. - Once you get the bike, it is possible to take advantage of sound fadeouts to reduce the length of some screen transitions. Also in the published TAS. Edit: Another thought. Is it possible to set up ACE by writing instruction code in held mail instead of in the nicknames of a lot of Poochyena?
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Hm, interesting run. Some comments: - It seems like you take longer paths in Granite Cave (~18:04) and after leaving Mauville Gym (~33:23) here. - You mentioned saving frames (waiting for Wally tutorial Ralts) by waiting in the Youngster battle, so it scrolls at 2 RNG cycles per frame. I think you can scroll it faster by running near the spinner at ~6:22 and in the grass, so it scrolls at least 2 cycles per frame from rerolling the spinner duration every frame, and you get free grass rolls (and possibly others). - If I understand the data corruption correctly, you are setting up 0x10 HP EVs and 0x31 Attack EVs so you can make the game think you have the move 0x3110 when you corrupt the PID. Would Pokerus be helpful here, to cut down on the extra fights (and maybe collect less Protein)? Pokerus check occurs after every battle (regardless of result) and you just need RNG value of 4000xxxx/8000xxxx/C000xxxx , though it might be hard to find. - Is double corruption necessary? Would it be possible just by corrupting PID instead of both PID and TID? (Bad eggs can still use moves, and move #1 is not affected by the changed PID.) - Have you considered whether other forms of data corruption are possible to get move 0x3110? Looking at the data substructures seems to indicate that it is possible to have an experience of 0x3110 and turn it into move #3 using corruption.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
0xCFE3 would be in System Bus. You can also access it from WRAM using 0x0FE3. System Bus 0xC000-0xDFFF corresponds to WRAM 0x0000-0x1FFF. Edit: The top number is the size of the region. E.g. WRAM size is 0x2000; System Bus size is 0x10000. Edit 2: Oh, I forgot you were talking about GBC, not GB. In that case WRAM has size 0x8000; there are 4 different 0x2000 banks in WRAM. At any given time, one of them is loaded in System Bus 0xC000-0xDFFF.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
nighthowl589 already translated it in the Youtube video's comments.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Hello merrp. I have a few comments about your WIP. - Your video seems to indicate that the RNG value is always seeded at 0 and goes through the formula: seed × [41C64E6D] + [6073] without being reseeded at any point in this TAS. Is that true in Pokemon Emerald? I haven't done Emerald for a while so I may be confusing it with Ruby/Sapphire/Fire Red/Leaf Green. - What is the Lua script you are using? Do you have a way to indicate things like critical hits? - 2:15: It is faster to talk to the girl instead of walking up beside her. (It might not matter because of the delays.) - 5:20: IIRC it is faster to walk over and talk to Mom to get the running shoes. - You definitely have to beat Brawly to activate Norman's gym. (Unless you mean to say that Norman's gym is skippable all together in this exploit.) I'll say more if anything else comes to mind.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Hello MUGG. I don't know how much Japanese you are intending to learn, but I'll make a few notes as far as how I understand Japanese (keep in mind that I am not a native speaker of Japanese). I don't watch One Piece, so I don't know what the context is behind these sentences.
MUGG wrote:
desu = It is
Desu (です) doesn't always mean "(it) is". It is true that desu can be used as a polite replacement for da (だ) (both which approximately mean "(it) is"), but unlike all other forms of the copula da/desu, desu can also be used as a polite marker in general (e.g. atsui desu (暑いです) "(it) is hot", shinai desu (しないです) "(I) don't do"), in which case it doesn't replace anything.
MUGG wrote:
mō = more
Only when it comes before a noun denoting a small quantity, or a count word; otherwise it means "already" or (when negative) "anymore".
MUGG wrote:
Shōrai = in the future
The difference between shōrai (将来) and mirai (未来), both which you have probably heard and both which mean future, is that shōrai refers to future prospects or something anticipated in the near future (which is what the example you gave does), whereas mirai is more general and often refers to the unknown.
MUGG wrote:
na = not
Only when it follows a verb in its base form (like how unaru (唸る) is).
MUGG wrote:
Bushi no haji ... This isn't becoming of a samurai.
I don't know the context, but I don't expect "isn't becoming" or "unbecoming" as a translation for haji (恥), as opposed to something like "shameful" or "disgraceful". In English, "unbecoming" means something slightly different (more like "inappropriate").
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Warp wrote:
blackpenredpen recently dealt in a youtube video with what could be considered a challenge. He first gave a simplified version of the challenge: 1/(3*4) + (1*2)/(3*4*5) + (1*2*3)/(3*4*5*6) + (1*2*3*4)/(3*4*5*6*7) + ... = ? Then he gave the original challenge, which was: 17/(75*76) + (17*18)/(75*76*77) + (17*18*19)/(75*76*77*78) + (17*18*19*20)/(75*76*77*78*79) + ... = ?
Telescoping sums is the way to go, for this and similar questions. However, there is a way to do the original challenge (and the simplified version) that is better than in the blackpenredpen video. The way he does it, he uses partial fractions to rewrite 1/(n*(n+1)*(n+2)) as (1/2)[1/n - 2/(n+1) + 1/(n+2)], for which the terms cancel by telescoping sums. While this is very useful in general, you would not want to do this on the original challenge, which has 59 fractions! The key is to note that each term has consecutive numbers multiplied together in the denominator. Thus we only need to decompose 2/(n*(n+1)*(n+2)) = 1/(n*(n+1)) - 1/((n+1)*(n+2)), which telescopes. So on the simplified version, we would have: 1/(3*4) + (1*2)/(3*4*5) + (1*2*3)/(3*4*5*6) + (1*2*3*4)/(3*4*5*6*7) + ... = 2/(2*3*4) + 2/(3*4*5) + 2/(4*5*6) + ... = 1/(2*3) - 1/(3*4) + 1/(3*4) - 1/(4*5) + ... = 1/6. This can be applied to the original challenge as well: 17/(75*76) + (17*18)/(75*76*77) + (17*18*19)/(75*76*77*78) + (17*18*19*20)/(75*76*77*78*79) + ... = (17*18*...*74)[1/(18*19*...*76) + 1/(19*20*...*77) + ... ] = (17*18*...*74)(1/58)[1/(18*19*...*75) - 1/(19*20*...*76) + 1/(19*20*...*76) - 1/(20*21*...*77) + ...] = (17*18*...*74)(1/58)[1/(18*19*...*75)] = 17/(58*75) = 17/4350, which is way faster than trying to find a 59-fraction partial fraction decomposition.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
NxCy wrote:
A plane has 100 seats, numbered from 1 to 100. The 100 passengers board the plane in numerical order, i.e. the passenger whose seat is number 1 boards first, then the passenger whose seat is number 2 boards the plane and so on. The first passenger chooses a seat at random and sits there. For all the remaining passengers, if their seat is not taken, they take their own seat, otherwise they choose a seat at random from the remaining vacant seats. What is the probability that the final passenger sits in his own seat?
For this problem, it's not too hard to find the answer. The answer is 1/2, as follows: At some point, someone other than the last person will choose either seat 1 or 100. If seat 100 is chosen, then the last person does not take their own seat. Otherwise, if seat 1 is chosen by the kth (possibly 1st) passenger, then there is some sequence (possibly of length 1 or 2) where person 1 sits in seat i1, whose person sits in seat i2, ..., whose person sits in seat k, whose person sits in seat 1, and all intervening seats are filled with their corresponding passengers. In that case, the remaining passengers take their seats, and so the last person takes their own seat. Since seats 1 and 100 when open can be chosen with equal probability at all stages, then the answer is 1/2.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
So the game wasn't broken enough the first time around. Now we have game-breaking glitches leading to more game-breaking glitches. Nice improvement by the way.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Challenger wrote:
Actually it's Gravity Man's stage music in this game.
Yeah, I figured that's what they were trying for. Though personally it sounds really off even from Gravity Man's MM5 stage music, which is why I didn't say it earlier.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Link to video More interesting than I expected. It has a weird Rush Coil glitch and also Quick Man's stage as well (complete with lasers). Strangely enough, Wave Man's stage music in this game doesn't sound anything like Wave Man's stage music in MM5.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Encode: Link to video
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
I've heard of this game before (mainly from Youtubers willing to suffer through it). Some level solutions are pretty interesting but for a TAS it's no problem. I noticed that this game is on the libTAS non-compatibility list, yet you were able to run this in libTAS. Even though the only version available is the Steam version, you were able to add a file to trick it into not connecting with Steam. Do you know if it is possible to use this trick to run other Steam games in libTAS?
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Nice! I didn't expect this much of an improvement over the other TASes. Anyway, I made a 4-way comparison of Pitfall TASes on TASVideos: Link to video The four TASes are: - Top left: This submission - Bottom left: Lobsterzelda's first Pitfall submission - Top right: pozzum's perfect Pitfall (no deaths, 114000 pts) - Bottom right: My any% TAS from 2012 I also included a display showing the current room number as well as treasures collected and the room number of the next treasure. By the way, video dumping seems to be wrong for Atari 2600. I noticed while encoding that even though this submission is 65388 frames (ending at the last jump), the last jump in the raw video dump ends at 65303 instead, as if the video started at 60fps and was converted to 59.923fps, instead of starting at 59.923fps in the first place (I assume 59.923fps is supposed to be the correct framerate for Atari 2600).
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
p4wn3r wrote:
A category consists of a collection of objects, and for each pair of objects, a set of morphisms between them.
I never really understood what category theory is supposed to be. Isn't a morphism just a "function", and an object just a "set"? Now I suppose the difference is that a function is a map from a set to another, whereas object and morphism are mathematical things that no one can make any assumptions about; the morphisms from A to B are literally defined by the elements comprising Mor(A,B) and nothing else. OK, I oversimplified a bit. There are some rules you have to follow, and p4wn3r already described them above. Also, composition has to be associative. I'll give this question a try. So consider the morphisms from A to A, defined solely by the elements comprising Mor(A,A). I'm assuming that a morphism f in Mor(A,A) is invertible if there exists a morphism h in Mor(A,A) such that h◦f=f◦h=idA; h is unique and denoted f-1. So to show that invertible morphisms form a group, three of the properties are automatically satisfied (associativity, identity, invertibility) so all we need is to show closure. If f and g are invertible, then so is g◦f, since (g◦f)◦(f-1◦g-1) = g◦(f◦f-1)◦g-1 = g◦idA◦g-1 = g◦g-1 = idA and the other way around, likewise. So invertible morphisms of Mor(A,A) form a group denoted Aut(A). Now consider isomorphic objects A and B; that is, there exists h in Mor(A,B) such that there exists some g in Mor(B,A) with g◦h=idA and h◦g=idB; g is unique and denoted h-1. ("Isomorphic" here has no meaning beyond this; objects A and B are just objects with no further specifications.) Let f be an invertible morphism in Mor(A,A), and consider h◦f◦h-1. By the property of composition, this is a morphism of Mor(B,B). Is it invertible? It sure is, since h◦f-1◦h-1 is also a morphism in Mor(B,B), and h◦f◦h-1◦h◦f-1◦h-1 works out to idB (and the other way around, likewise). So h◦f◦h-1 is an invertible morphism in Mor(B,B). Now that we have that, we now define the function α: Aut(A)→Aut(B), α(f)=h◦f◦h-1. We will prove that α is a group isomorphism (we are now getting back into the more familiar notion of isomorphism). First, α is one-to-one, since if α(f) = α(g), then h◦f◦h-1 = h◦g◦h-1, and by left composing by h-1 and right composing by h, we get f=g. Second, α is onto, since for any morphism g in Aut(B), h-1◦g◦h is in Aut(A) (for similar reasons as to why h◦f◦h-1 is in Aut(B)), and α(h-1◦g◦h) = h◦h-1◦g◦h◦h-1 = g. Finally, α is a homomorphism, since α(g◦f) = h◦g◦f◦h-1 = h◦g◦h-1◦h◦f◦h-1 = α(g)◦α(f). Therefore, α is a group isomorphism, and so Aut(A) and Aut(B) are isomorphic as groups. ... OK, that did feel like a lot of "abstract nonsense". Yet it feels like something I went through over and over during my university studies.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
p4wn3r wrote:
Therefore, solving p^4+(1-p)^4 = 1/3, which does give a number between 0 and 1, you can make your method work.
One of the solutions is p = 1/2 - sqrt(12*sqrt(6)-27)/6 ≈ 0.24213; you can solve it by substituting p = 1/2 + x and expanding to get 2x4 + 3x2 - 5/24 = 0, which can be solved easily as a quadratic in x2.
p4wn3r wrote:
About Pascal's triangle, it seems that you're right. I made a program to compute it mod 4 and did not find a row for the first 100 iterations. Maybe that property only works for prime n, I don't remember.
It's not possible for all elements of a row of Pascal's triangle (other than the ends) to be a multiple of 4. The ith row of Pascal's triangle sums to 2i, a multiple of 4. Since the two 1's at the ends only add up to 2, there has to be at least one other number in the row that isn't a multiple of 4.
p4wn3r wrote:
So, even if the rows in Pascal's triangle are not all divisible, you can pick a huge m, and set person A at the extremes, and for every row you put A on m mod (N-1) combinations. If m is large enough, these new combinations should be very small, and the equation still solvable.
Good! This is what I eventually came up with when trying to show it is possible for all N. (I got tripped up on "m mod (N-1) combinations" for a while; I eventually figured out that you meant "m combinations of 'mod (N-1)'", though I think it should be m+1 rather than m.) I use C(m,i) to mean the binomial coefficient m choose i. Assign, for each i between 0 and m inclusive, C(m,i) mod (N-1) of the C(m,i) outcomes of probability pi(1-p)m-i on A; everything else can be divided evenly among the N-1 others. Then the probability of A winning is: f(p)=sum[0≤i≤m] (C(m,i) mod (N-1))*pi(1-p)m-i. As mentioned before, f(0)=1 and f(1/2) = sum[0≤i≤m] (C(m,i) mod (N-1))*(1/2)m < (m+1)(N-2)(1/2)m. So to get 1/N as a possible output of f(p), we need f(1/2)<1/N so we can use the intermediate value theorem. So we just need f(1/2)<(m+1)(N-2)(1/2)m<1/N, or (m+1)(1/2)m<1/(N(N-2)), and this can clearly be satisfied for large enough m, since (m+1)(1/2)m goes to 0 as m goes to infinity.
p4wn3r wrote:
So, the equation now is this, which also works to get a fair probability for everyone.
This equation p8+2p4(1-p)4+(1-p)8 = 1/5 works out pretty nicely. The left-hand side is just (p4+(1-p)4)2, so after taking square roots, you can solve it similarly to p4+(1-p)4 = 1/3 above. Note that for N=5, 8 flips is not the minimum number of flips required; it is possible to do it in 6 flips since the polynomial f(p) above with m=6 and N=5 can be made equal to 1/5. Though it would be a lot harder to solve even with the p = 1/2 + x substitution (you'd have a cubic in x2 now), especially if you don't have WolframAlpha.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Riddler Classic this week has an interesting question. I'll paraphrase it below: ---- You need to fairly choose one of N people to be the winner, using a coin. If N=2, then you just flip a fair coin to decide the winner; heads for one person winning and tails for the other. If N=4, then flip the coin twice; the outcomes are HH, HT, TH, TT with 1/4 probability each, and just assign each outcome to each person. However, if N=3, it is not possible to assign the outcomes of a finite number of flips to the three people to fairly choose one of them with probability 1/3; for k flips, every outcome has probability 1/2^k, so no matter which outcomes you take, you can never get their probabilities to add to 1/3. However, you can choose to use an unfair coin (probability p of landing heads, 1-p of landing tails) and select any p between 0 and 1 that you wish. The question is: Is it possible to choose such a p so that you can flip the coin a finite number of times and assign the outcomes to fairly choose one of three people, and if so, how? How would the question change if there were five people (N=5)? Or for the case of N people in general? (Feel free to use WolframAlpha; I used it to help with this problem.)
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
MrWint wrote:
FractalFusion wrote:
How many rerecords do you estimate it took to bot this?
I stopped trying to track this after it has been pointed out that these numbers are wholly incomparable to anything else and just skew the statistics.
Are you referring to TASVideos statistics? Because if you are, then I could care less about whether its statistics are skewed. What I liked most about your submissions were the rerecord counts running in the hundreds of millions, if only to clearly demonstrate how much more optimized your TASes are over just about everything else.
MrWint wrote:
No. Pokérus doesn't do anything useful in Gen II.
OK. I wasn't sure whether the 2x boosted EV/Stat Exp. from Pokerus would have made a difference at any point since Cyndaquil is mostly at low levels (boosted EV is unlikely to change the stat at low levels) and when you get Raikou at LV40, you OHKO the vast majority of Pokemon from then on without using criticals. Though now that we're talking about Pokerus, I'm wondering whether the 2x boosted EV make a difference in other games. The only thing I know for sure is that Pokerus doesn't matter for the current route in Pokemon Diamond/Pearl glitched. ---- By the way, I noticed that even though Pokemon Crystal reduces the number of mandatory battles compared to Gold/Silver (by 9, if I counted correctly), Crystal is still a pretty long game. There are 81 mandatory battles in the pre-league portion of the game alone (23 in post-league), which is a pretty large number (though Diamond/Pearl glitchless has 97, counting double battles as 2). Especially long is the Goldenrod Tower section; that section alone has 24 mandatory battles, more than the entire post-league! So even though I do appreciate all the new strategies that were implemented since my really outdated TAS of Pokemon Gold, I find Gen 2 TASes rather boring, especially now that catching Raikou is clearly the way to go. I'm saying this in case anyone was wondering why I never bothered with improving my outdated TAS from 13 years ago. And yes, I agree that my outdated TAS should be obsoleted in favor of this TAS. This TAS is far better optimized, on a far better emulator (the one I made mine on was so broken that the system time affected sync, seriously), and on a version of the game which in my opinion is better.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
p4wn3r wrote:
Interestingly, even though it makes no sense for the sequence to be periodic, by reading Conway's book where he treats these kind of games, he proves that if you compute the sequence long enough, the computation itself is proof that it'll keep periodic forever!
So you do know about Winning Ways for your Mathematical Plays. It's one of my favorite mathematical books (or rather, set of volumes); it covers not just impartial games, but the angel problem (among other various combinatorial problems), as well as Conway's Game of Life. By the way, computation itself may be used to prove periodicity of nim sequences, but this is assuming of course that the nim sequence is periodic. It is conjectured that all octal games have periodic nim sequence, but that is not proven, and there are more than a few octal games whose periodicity has not been determined even when searching up to 233.
p4wn3r wrote:
Prove that sin(10o)cos(20o)cos(40o) = 1/8
p4wn3r wrote:
Another solution is to multiply and divide by sin(20o), use sin(10o)=cos(80o) and use the double angle formula: sin(2x)=2sin(x)cos(x)
You can also multiply and divide by cos(10o), use the double angle formula, and use cos(10o)=sin(80o). Same idea. Though I never knew there was a way to do this without using cubics (casus irreducibilis was my first thought for this question).
p4wn3r wrote:
Find all pairs of positive integers n and m, such that n/m + m/n is also an integer.
Suppose n,m is such a pair. Without loss of generality, assume n≥m. If n>1, then there exists a prime p dividing n. Since n/m + m/n = (n2+m2)/(mn), it follows that if p divides n, then p divides n2+m2, and therefore m, as well. Then we can write n=pc, m=pd, and so n/m + m/n = (pc)/(pd) + (pd)/(pc) = c/d + d/c, and so c,d is a smaller pair satisfying the above statement. So we can cancel common prime factors in n and m until it is no longer possible to do so, which is the case n=1. It is easily checked that n=m=1 satisfies the statement, and so solutions occur exactly when n=m.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Looks technically good. A few questions though: - How many rerecords do you estimate it took to bot this? - Did Pokerus ever factor into your route? I don't see a mention of it anywhere. - Did you consider poison deathwarping? There is one spot I can think of, and that is in the Goldenrod Radio Tower after beating the impostor manager. That would also allow you to fight a grunt with one Pokemon (around 1:18:58 in the video) instead of the scientist with three.
Editor, Experienced Forum User, Published Author, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
Radiant wrote:
Since TAS'es are supposed to be superplays, default difficulty is not whatever is fastest, but whatever is the most superhuman. As our guidelines state, When a game has multiple difficulty levels, it is preferred to play on the difficulty that would make the most interesting and entertaining run. Usually, this is the hardest difficulty, and as such it is the most preferred choice for a TAS. The main exception is when higher difficulty is "the same but longer" (e.g. all enemies get twice the HP) but that's really not the case in Iji, as the difficulty affects enemy AI and boss movesets, and reduces your healing.
As already mentioned here, I enjoyed the normal difficulty run over the Ultimortal difficulty one. I imagine that for me it would be the same case here regarding difficulty. Though this "all items" TAS doesn't really interest me all that much, in my opinion. (I don't know the game a whole lot since I never played it.)