Posts for r57shell

1 2 3 4
15 16
Experienced Forum User, Published Author, Player (107)
Joined: 12/12/2013
Posts: 380
Location: Russia
Easy yes vote.
Experienced Forum User, Published Author, Player (107)
Joined: 12/12/2013
Posts: 380
Location: Russia
Glitches are nice, pace is fast, that's why yes vote. It was entertainming. It doesn't seem well optimized because of moments like at time 2:03, and 13:22-13:35. In first - moving up for a moment then down. It's either mistake or rng manipulation, but I don't think it's rng. Second time just some additional walk... Also looks like you could use sword sooner. Only after watching I did notice "Rerecords: 1923" - another sign of that.
Experienced Forum User, Published Author, Player (107)
Joined: 12/12/2013
Posts: 380
Location: Russia
Well, I wrote a program, actually few, to use my strategy above. And, here is what I got: First, I tried to make this program without taking nice moves, and as expected I got a bit above 632 rough estimate. But it was due to bug. Then I add binary search in case when only one poisoned is remaining, and got 541: and was like o_O. I made some debug output, and it turned out that 541 was from 99 positives, and for some reason it said in this case you need 7 steps. And, it actually true, because we have 99 positives, and we decide from 99, so power of two is 7 not 9 as I've mentioned above. But, obviously I had a bug. And bug was with range of possible positives, so not all positives was considered. After it was fixed I got 633 and was like - why it's dumb and can't find 632 steps described above. And, it turns out that description above has mistake. :D Correct calculation is following: 333 (groups) + 301(summary size of groups) - 1 (we don't check last one) = 633. So, even with binary search, it wasn't able to find better than 633 steps "dumb approach". So, I had to add advanced knowledge that we already used a bit. It's when there are all negative in positive group, then remaining one is poisined. It's very tricky to apply correctly, because in some cases there are more 'empty' groups, in some cases there are less of those. So, idea is to find out number of minimum emtpy groups using pigeonhole principle or something similar. For example, if there are 99 positives, then there is possible that all of groups not empty. And, number of positives is always less than number of poisoned, so this information not enough to derive minimum number of 'empty' groups. So, I had to also consider how many poisoned drinks we got after tests one by one. And, knowing this information, if we have found 88 drinks among 99 positives, it means that at least 11 groups is empty, so at least 11 additional drinks are found! After this addition, I got result 568! So, in worst case you can solve it in 568 steps using this approach if my calculations and my program is right :D Now, a bit about worst case. Surprisingly, worst case turns out to be 85 positives. My program says that you need 333 tests to test groups, then 85 largest groups one by one except one in each group = 4+3*(85-1) - 85 = 171. And, it says worst case is when we found 85 poisoned drinks during 171 tests, so none of them are empty. And we have to find 15 poisoned drinks among 85 remaining drinks under suspicion. And, in worst case it says we need 64 steps for that. I thought worst case would be 75 positives, but my program tells it needs 558 steps, other interesting thing is that for 75 and less positives, worst found drinks is range with 75 in it, so 75 is also worst. And with decreasing number of positives this range is increasing. I need to mention, that I was always considering as worst case is when positive groups are largest in size. I think following proof works: if we know how to find out poisoned drinks in K steps for largest sizes, then we can always add 'dummy' - non poisoned drinks and do all our operations with them even though we know they are not poisoned. Thus, we have groups of largest possible sizes, and we know how to solve them in K steps. So, always consider largest groups in summary size. Okay, it was results of using strategy mentioned in previous post with some kind of pigeonhole principle applied. Now, thoughts regarding optimality. I though about entropy approach, and depending on positive and negative groups any consequent group size is varies. But lets for a moment forget about this fact. Lets assume we know list of sizes. We know that all negative (no poisoned drinks in group) - whole group is decided. So, in the end we only need positive groups. Also, lets assume we don't use intersecting groups. And here is what I think: now we know only total number of poisoned drinks we have, but no information about number of poisoned drinks within groups. It means, in worst case any next group that pick drinks from several groups may have positive result and gives no information. It's not strict statement. It's just intuition, it's not proof and very likely is wrong. But I think so because we get more information (intuitively) if we split this set of picked drinks by groups that was already picked, we get more information. For example, if we try set 3,4,5,6 and we already tried set 1,2,3,4 and also 5,6,7,8, so better would be split our set into two: 3,4 and 5,6. So, if we try 3,4 and it's positive, we know that 3,4,5,6 positive, and also know that 3,4 is positive. but if 3,4 is negative, we know 3,4 is negative, and if we want to know about 5,6, we just also check 5,6. So, two checks to know about two sets. But if we use 3,4,5,6 we will need three checks in worst case. It's just intuition, not a proof. Also, we don't know how many poisoned drinks within the group. And best way to find out is to check all of them. So, if we belive in this, then we have to find out how many poisoned among all groups, and we need again check all of them one by one. This leads to question: how large is total size of all positive groups using entropy method? I don't know. it's hard task. Actually, better to know what maximum total size of all groups for each possible number of positive groups. Then, I can try my approach with it, and probably it could be better. But we know that this size is not greater than (positives*3)+1. Other thing: for n > 1 to find (n-1) poisoned drinks from n you need n-1 steps. Even though entropy is same as to find 1 among n. You can't do better. because the only one set for test can reveal answer: pick non poisoned one. I think similarly you can prove for n > 2 that you need n-1 steps to find (n-2) poisoned drinks among n drinks. Also, optimal way to find out how many poisoned drinks among n require n steps. Other idea is following, if I always pick largest positive groups among picked groups size, then imagine we don't care about probability, and just trying to minimize for each possible number of positive groups total size of largest of them. I didn't think in this way much, so I can't say anything about it yet. Ah, I didn't mention, that to find 2 poisoned drinks among n there is better strategy similar to binary search, but I was lazy to add it. Idea is to try to find two non-intersecting largest groups that are both positive. And then, do binary search within them. Also, it may be better for larger number of poison drinks as well. Also, little note: my program can't find better than 999 steps solutions for number of poisoned drinks from 333 and above. first less than 999 steps is 998 steps for 332 poisoned drinks :)
Experienced Forum User, Published Author, Player (107)
Joined: 12/12/2013
Posts: 380
Location: Russia
HHS wrote:
If we want to minimize the worst case, the best I could come up with was doing groups of 3, and then doing them one by one, for 631 measurements in total. (Special case: if you end up with 100 positives in the first step, you'll at most need to make 200 additional measurements.)
For groups of 3 there is following thing: lets assume we have 100 positives. Then, we know that in each group should be exactly one poisoned drink. So, if we test one by one within group, then as soon as we find poisoned one move onto next group. So worst case: we try two of drinks and none of them is poisoned, and we know for sure that last one is poisoned. Therefore in this case 2 tests is enough for group. So after we have 100 positives, we can solve with 200 tests. Tricky part is how we find 100 positives. If we have already 99 positives, there is chance that we have 99 positives, or 100 positives, so we need to dicide it. In good case we have 99 positives and many groups left: then we can do binary search! But in worst case we have 99 positives when we have left exactly one group that may have poisoned or not. So we need to test all groups in worst case. Assuming that there are 332 groups of 3 and 1 group of 4, then we need 333 tests to find out number of positives. In case with 100 positives we can solve in 333+200 = 533 tests in total. And, it's not worst case. The worst case is when positives are 99. This means that one of group has two poisoned dinks, and we don't know which. For each group there is a chance we have two in it. If after two tests within group we have no positives, it means last one is positive - only two tests. But there is case a bit worse: if we have second test positive, we don't know do we have two or one positive. So strategy is to check third one. In worst scenario we have all groups no yes no answers to poison test, and in the last one we don't need to do last test because we know that last group has two positives. And last group has 4 drinks, so in total, in this case we can solve in 333 + 300 - 1 = 632 tests. Now, things go even more complicated. We know that we should do 2 test at least for each group, then why not do them in the first place, and dicide stuff later? For last group we will do three tests. After 201 tests we have three kinds of groups: 0,1,2 poisoned drink found. For groups with 0 we know poisioned drink. If we have group with 2 poisoned drink found - no additional tests is need. So, we have left with only groups with 1 poisoned drink found. And our goal to find where is last one of two. We can do it with binary search. So we can solve using this strategy this case in 333 + 201 + 9 = 543 steps, where 9 is smallest power of two greater than 333. This leads to question: is it worst case? What if we have 98 positives? this may lead to 2 groups of two! How to deal with it? You can do similarly with groups of 4. In short: things are complicated. I don't know optimal solution.
HHS wrote:
How close can we get to the theoretical minimum of 469?
I have no idea. Theoretical minimum is 465 https://www.wolframalpha.com/input/?i=log%282%2CC%281000%2C100%29%29
Experienced Forum User, Published Author, Player (107)
Joined: 12/12/2013
Posts: 380
Location: Russia
OmnipotentEntity wrote:
Do you allow strict opposite difference?
Yes, I called that out specifically as one of the 7 total distinguishable cases.
I didn't want to allow it, because why don't allow then 3 balls equal 2 balls, like 2 2 1 and 2 3? Probably it doesn't matter though. And you see here they are strict opposite.
OmnipotentEntity wrote:
I think you misunderstand what I'm considering the end state. Because there are 7 total distinguishable cases with 12 ways of making those 7 cases, I'm considering the end state to be when each ball is reduced to one viable hypothesis. Not just when I decide their relationship solely to the normal balls.
Okay, as far as I understand now, you mean answer is also telling their oddness, do they both lighter and equal between, etc.
OmnipotentEntity wrote:
Also I believe you may have entered the data in your calculator wrong? It's still 18Choose2, not 12Choose2.
Well, I use interactive python:
>>> log(12*18*17/2,2)
10.842350343413809
>>> log(8*12*11/2,2)
9.044394119358454
One above is your calculation, below is mine. So, everything is fine. If you mean that I should put choose from 18 - no, with my reasoning I should choose from 12. And, yes, with additional case with strict opposite, multiplier would be 12.
OmnipotentEntity wrote:
Next, I'm going to set up a system for generating a graph, and perform an A* search on it using the entropy remaining as a heuristic function, and I'll see what shakes out.
I think the real trouble will be number of intersection of hypothesis.
Experienced Forum User, Published Author, Player (107)
Joined: 12/12/2013
Posts: 380
Location: Russia
I don't think there is any strict relation between entropy and strategy for games like that when you can "tune" strategy on the way to the end. For 12 balls and light/heavy odd ball there are already many subcases so it's already very tricky task. When you add second ball there are some things to consider. Do you allow strict opposite difference? for example, normal wieght is 5 and two odd balls are 4 and 6. so 4+6 = 5+5? For single ball there is simpler version, when you know in what way it's odd: heavier or lighter. Then task is easier. So, you may try to solve 12 balls 2 heavier balls first, and find out smallest possible number of steps. But, what comes to my mind: try original problem with 11 balls instead. Entropy should be lower, but I expect more steps. Reason is obvious, I don't know anology for first step of solution for 12 in case with 11 :p Edit: Ah, no, it works. I'm retarded. But 13 balls is log326 weighings = 2.966 I don't think 13 balls is possible in 3 steps.
OmnipotentEntity wrote:
So there are 7 total distinguishable cases: both heavier same magnitude, both heavier different, (same with lighter), and then one heavier one lighter x3 (H bigger, L bigger, same). However, if you're selecting from these 7 cases to simulate, because order matters in case where the balls are not identical, there are 12 total ways to choose these two balls. So the total possible beginning states is 12 * 18C2 = 10.842 bits of entropy.
No, you have a mistake. 8*С212 = 9.044 bits of entropy. Reasoning is following. First, choose an answer - places with odd balls. Variants with different answers are obviously different. So, now, the only reason why variants can be different with same answer is their weight. There are four possibilities: LL*3, LH, HL, HH*3. LL and HH multiplied by 3 because LL or HH can be < = > in their weight (only because in your task you may have L and L different). Order matters, because when we know answer, and pick two places in ordered way, we can place all eight those possibilities, and this would give different beginning states. I can also say, that theoretically you don't need to know are they heavier or lighter to give an answer, so theoretically, you could delete this 8 multiplier and 2 multiplier in original task! This is another reason why I don't think there is strict relation with entropy.
Experienced Forum User, Published Author, Player (107)
Joined: 12/12/2013
Posts: 380
Location: Russia
4EDCDD = X
   328 = Y
*2
9DB9BA = X*2
   650 = Y*2
*2
13B7374 = X*4
    CA0 = Y*4 = D

D' = C00

13 / C = 1
1 * CA0 = CA0

13B7374 = X*4
-CA0    = D*1000
0717374 = X*4 - D*1000

71 / C = 9
9 * CA0 = 71A0

0717374 = X * 4 - D * 1000
-71A0 = D*900
negative -> 8
so 71A0 - CA0 = 6500
0717374 = X * 4 - D * 1000
-6500   = D * 800
00C7374 = X * 4 - D * 1800

0717374 = X * 4 - D * 1000
-6500   = D * 800
00C7374 = X * 4 - D * 1800

C7 / C = 10
10 * CA0 = CA00

00C7374 = X * 4 - D * 1800
 -CA00 = D * 100
negative -> F
CA00 - CA0 = BD60
00C7374
 -BD60 = D * F0
0009D74 = X * 4 - D * 18F0

9D / C = D
D * CA0 = A420
0009D74 = X * 4 - D * 18F0
  -A420
negative -> C
A420 - CA0 = 9780
0009D74 = X * 4 - D * 18F0
  -9780
00005F4 = X * 4 - D * 18FC

-- results --
18FC * CA0 + 5F4 = 13B7374
18FC * (328*4) + 5F4 = (4EDCDD * 4)
5F4 / 4 = 17D
18FC * 328 + 17D = 4EDCDD
Experienced Forum User, Published Author, Player (107)
Joined: 12/12/2013
Posts: 380
Location: Russia
It's well described though. Main tricky thing is "normalized divisor". But put it aside for a moment. Lets say the problem is hard. So, lets make it easier. Easier problem is when you want to divide number N words (limbs in terms of gmp) by 1 word (limb). It's easy. It's reduced to division of 2 word by 1 in succession.
 XXXXXXX
-ZZ
You find such number Y so d*Y = ZZ and remainder is less than Y, which means one digit of dividend is turned into zero after subtraction. So, problem reduced into N-1 words division by 1 word. Here where comes "normalized divisor". What if divisor is just one = 1? Then quotient is two words! For divisor 1 it doesn't make carries when you add quotient to ending result, but if you have divisor small, it may cause carry. Also, you may not have division that may output quotient 2 words size. That's why we normalize divisor, by shift of both: dividend and divisor. Because A/B is equal (A*2)/(B*2). Take care with remainder though. Alright. Now we can divide arbitrary long number by single word. What if divisor is also arbitrary long? Well... reduce to simpler task: to division by single word again. What if we neglect all words (limbs) except most significant? Lets say D is original divisor, and D' is D with all zero words except most significant:
DDDDD = D
D0000 = D'
Then D > D', and X / D < X / D' (the higher the divisor, the lower the result). Now, idea is similar. Lets divide X by D':
 XXXXXXX
-ZZ
We need to find such y that y*D' = ZZ is less than XX and remainder XX - ZZ is less than D'. You can do that by simple division of two words by one. Now, instead of simple subtraction from X. We'll calculate y*D - multiplication of 'guessed' y by real D - with neglected words (limbs) turned back. This is single word times arbitrary long number multiplication. 1xM multiplication in terms of gmp (where M = number of words (limbs) of D). Now, because X / D < X / D' result of y * D may be larger than we need. In this case we need to reduce y by one. And instead of additional multiplication, we just subtract D because: (y-1) * D = y * D - D. Taking into account that we want to subtract result from X, you could subtract y * D and if it turned into negative, you could add D back. This is what is described in quote:
Such a quotient is sometimes one too big, requiring an addback of the divisor, but that happens rarely.
Now, you know highest word (limb) of quotient. And current X has current remainder. Repeat this process until X is less than D, and you're done. And... why don't you just use gmp for example? Or other package that is made for things like that? :o Regarding thing with probability... I'm not specialist there. I see only two ways. Numerical approach and Analytical approach. Numerical approach it's monte carlo or any other numerical. For example, you may integrate using various numerical methods, like Runge–Kutta, Euler method, or Gaussian quadrature... Analytical approach is harder just because you have to scramble formulas. There are some packages for it, like in numpy for Python... but it's way complicated. I'm horrified from it. If you don't need to program stuff but just solve exact task like you noted, then you indeed may find distribution first, then apply suitable methods. Not for any integral of analytical funciton is expressed with elementary functions.
Experienced Forum User, Published Author, Player (107)
Joined: 12/12/2013
Posts: 380
Location: Russia
I want to make it rigorous, so I'll start from simple facts. First fact. If a < b then a * c < b * c, for any positive real numbers a, b, c. Proof: if a < b then (a - b) < 0, thus a*c - b*c = (a - b) * c - negative times positive = negative, so a*c < b*c. Second fact. if a < c and b < d then a * b < c * d. Proof: Using first fact a * d < c * d, and using first fact second time a * b < a * d. So, a * b < a * d < c * d. Third fact. if a < basen and b < basen, then a * b < base2n Proof: basen * basen = base2n Using second fact: a * b < base2n where c = basen and d = basen. Straight from this third fact, you can prove that z0 and z1 have this size. Why they're not intersecting - conjunction of their size and multiplier. Regarding to z1 - this formula is to reduce multiplication count, but if you open brackets you'll get more useful for prove formula: AAAAA*DDDDD+BBBBB*CCCCC. Using fact three you can tell that if a, b, c, d < basen then a*d < base2n, and b*c < base2n, thus a*d+b*c < 2*base2n. This means, that it's either 0FFFFFFFFFF or 1FFFFFFFFFF, because 20000000000 is already = 2*base2n but it should be less. Now, this means, that if you consider those two digits as last full carry propagation, then yes, this is last. But, if you mean that it's last digit where you should propagate carry - no. Look at this example:
      100001
     *999999
------------
 99900000999 = z2,z0
+  100899
------------
100000899999
Experienced Forum User, Published Author, Player (107)
Joined: 12/12/2013
Posts: 380
Location: Russia
No vote from me. Just because tricky game turned out to be just run asap.
Experienced Forum User, Published Author, Player (107)
Joined: 12/12/2013
Posts: 380
Location: Russia
Selicre wrote:
I don't want to interact directly with Gens because I am running it in wine, and.. building 32-bit windows executables? That link to OpenGL? On Linux? No thanks.
Alright. Btw there is also popen in lua, idk works it with linux pipes or not. Here is smooth follow demonstation: https://youtu.be/oWHyL_t2Uqo Here is alternative logic demonstation: https://youtu.be/Yimz-r_gfdA
Experienced Forum User, Published Author, Player (107)
Joined: 12/12/2013
Posts: 380
Location: Russia
You said they are hidden: I was planning to do the same, but... Also, fix this stuff. https://imgur.com/a/emK20jl Btw, with rust you could write plugin instead of my dll, because rust is c++ friendly.
Experienced Forum User, Published Author, Player (107)
Joined: 12/12/2013
Posts: 380
Location: Russia
difference with my encode: camera fixed to screen centered - easy to change. my encode has background - easy to disable. sprites correct priority (sonic/tails/rings not always on top) - easy to make always on top. I display glitchy invisible sprites: dead boss, blue things in marvel garden zone, magnetic platforms in flying battery zone... <- not easy to change. need to hardcode. had no time. I didn't hide hud. I show some object that I added in that time: spikes, monitors, and very few other objects. And, objects off screen is full opaque. The reason why I have background and correct priority - it was made with idea that original screen should seemlessly placed over it to prove that everything is right. Hud is visible because I display original screen, kinda same reason. One can say that sprites on top is not a bug, it is a feature. I can't argue with that. I tried camera smoothly following both, and with background enabled it makes weird move of it. I have issue with tails when he is "dead" because I don't know how to know is he alive atm, and I don't want to spend time on it. But when his position just reset - camera works fine. Just when he is dead, it's trying to reach some offscreen position. There is nifty hack to fix transitions in stages: if difference of sonic position > 128, shift camera with same difference :b As always, I'm not planning to update anything.
Experienced Forum User, Published Author, Player (107)
Joined: 12/12/2013
Posts: 380
Location: Russia
I just leave it here ._. Link to video
Experienced Forum User, Published Author, Player (107)
Joined: 12/12/2013
Posts: 380
Location: Russia
Chanoyu wrote:
Is the line of the jump not parallel to the line connecting the start and end points?
This is same what I said:
r57shell wrote:
And, btw, better approximation is having angle same with vector from start to target except very long distances along edge.
It's better in some cases, but it's not the best. In case if you got it same way as I did, I'll describe a bit better. I got it taking into assumption that shortest distance is lowest effort. This thing is taken from physics, for example light travels shortest distance in some meaning (Principle of least action). So, to reduce effort (energy/action), you would like to get from jump maximum profit. And this leads to idea to move along same direction. Why it doesn't work? Because restrictions are awkward. You need to reach edge, and from there you can move fixed distance in any direction. This never happens in physics. You can't cut corners. You could solve this task using string with sliding ring holders along the edges. This should work. By the way, origami approach also doesn't work, because it gives obviously wrong solution with corner in the middle of the jump :D
Experienced Forum User, Published Author, Player (107)
Joined: 12/12/2013
Posts: 380
Location: Russia
I can confirm this equation. But I, myself, was solving case when both: start and target is not aligned on the edge. And, it looks like this task is ugly, in the way that it doesn't have analytic solution, or at least no 'neat' analytic solution :( And, btw, better approximation is having angle same with vector from start to target except very long distances along edge.
Experienced Forum User, Published Author, Player (107)
Joined: 12/12/2013
Posts: 380
Location: Russia
Interesting task that popped up in discord:
This is for the Nightfire TAS. Basically I'm starting at the black dot in and I need to get to the yellow point. Which of the lines would be the best to take? I need to jump from A (the ledge i'm walking along) to B (the edge of the platform i'm going to land on) The speed is constant and the jump length is always the same. basically the line connecting A to B is always the same length
Addition from me: velocity same for move and jump. So, you need to find trajectory that connects start point with target point, and distance traveled between borders is less than length of jump L.
Experienced Forum User, Published Author, Player (107)
Joined: 12/12/2013
Posts: 380
Location: Russia
NICE. first drone kill :O.
Experienced Forum User, Published Author, Player (107)
Joined: 12/12/2013
Posts: 380
Location: Russia
Sometimes your axe turns to be yellow. Is it just graphics or does it have any effect?
Experienced Forum User, Published Author, Player (107)
Joined: 12/12/2013
Posts: 380
Location: Russia
Script updated, one gif added. It's also about mercury boss. Now it also shows trajectories to the point of decision of next target point. Also it shows current player target by red rectangle around it. One note about mercury boss AI. Normaly his attacks is Fire, Fire, Drone, Staff in cycle. But when it make choice to do Staff, if target player y position is above his y position, it moves target y position to move 60 pixels above to move upper, but suddenly change his next cycle to Drone instead, and attack timer to 20. So, in this way you may manipulate him to always pick Drone, if you have enough luck to make him lower than you at certain points of time. Thus, my script also shows next attack according to this strategy. If target player is lower than boss and next is Staff, it will show small letter d instead, meaning that he will go for Drone after 20 frames.
Experienced Forum User, Published Author, Player (107)
Joined: 12/12/2013
Posts: 380
Location: Russia
Script updated. Now it shows a bit of info about Mercury Boss. Here some gifs, about 10 MB in total size https://imgur.com/a/87KHA3Y Mercury boss AI is following. There are three timers: 1) Attack timer. When it hits zero: pick attack. Delay is 250 frames. 2) Move timer. When it hits zero: pick new target position. Delay is 150 frames. 3) Aim timer. When it hits zero: pick player. Delay is 10 frames. Only random thing here is "new target position". RNG is placed at FF0312, it's single byte = index in 256 value list. RNG array is at ROM:0541A2, RNG routine at ROM:05418E There are three attacks: 1) Drone - thing hit boss 2) Staff 3) Fire Drone AI has two phases: 1) It moves in circles - this trajectory is fixed, except perhaps some corner cases like lags / screen restrictions. It is just chasing corners of expanding box. This phase has two timers. a) When first hits zero, box is expanded. b) Second timer is size of box. When it reach maximum, drone goes back to the boss. 2) When drone got hit, it's similarily chasing but single point. Frequently changing it position. This phase has also two timers. a) When first timer hits zero: go back to boss. Delay is 350 frames. b) When second timer hits zero: change target position. Delay is 50 frames. Random target of boss = position of target player + vector(RNG, RNG)/2 sign extended from bytes with some range clipping. Random target of drone = position of top left corner of screen + vector(RNG, RNG) unsigned. Thus, it may not roll in range [256,319] positions of screen.
Experienced Forum User, Published Author, Player (107)
Joined: 12/12/2013
Posts: 380
Location: Russia
Script was updated, link is same. Here are fresh new maps for this awesome game: First version: https://www.mediafire.com/file/5qg9k5bl4ep9p5o/Doom_Troopers_maps.zip/file
Experienced Forum User, Published Author, Player (107)
Joined: 12/12/2013
Posts: 380
Location: Russia
Experienced Forum User, Published Author, Player (107)
Joined: 12/12/2013
Posts: 380
Location: Russia
Spikestuff wrote:
Another thing to note, is that it looks like roughly the first 5 seconds will be lost. Don't know how to go about this other than padding which unfortunately I forgot the command to on ffmpeg.
I tried this way:
ffmpeg -f lavfi -t 5 -i color=c=black:s=480x360 -f lavfi -t 5 -i anullsrc=channel_layout=stereo:sample_rate=44100 -i d:\qwe.mp4 -filter_complex "[0:v][1:a][2:v][2:a] concat=n=2:v=1:a=1[outv][outa]" -map "[outv]" -map "[outa]" d:\asd.mp4
for plain files it worked for me. you need to set correct picture dumensions and audio sample rate though. I don't know better way.
Experienced Forum User, Published Author, Player (107)
Joined: 12/12/2013
Posts: 380
Location: Russia
Juarez wrote:
r57shell, 6 shots in cross, 20 shots in boss
It doesn't tell me anything. I don't know damage of weapons, their properties. Also I don't know boss hp, and so on.
1 2 3 4
15 16