Posts for qFox

1 2
14 15 16
24 25
Experienced Forum User
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
In case you were asking for my bot, I've compiled my last version. I included the docs for the bot and two examples (including the lunar pool file I was working with). The pool file needs work though, seems to screw up when you change X. Bla. Get it here: http://netload.in/datei2bcf7f3b7e31c57786b59cad6b95b217.htm
qfox.nl
Experienced Forum User
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
Then it is decided :) Grav 32 for teh win
qfox.nl
Experienced Forum User
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
Kirby is a very micro-managing game to do. It's sometimes annoying how one move is faster in one situation while slower in the next. There's so much inconsistency...
qfox.nl
Experienced Forum User
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
We need to agree on a grav though. Grav 1 will make for a lot of perfects but slower (as mentioned before). I do think that the perfects are more fun to watch, as well as the score that'll skyrocket. I've put logging on my todo list for the project. My bot saves and shows (like .16) only the best, and I've added the last as well, to evaluate visually. Oh Bisqiwt you may wanna up the frame-limit. Depending on when you stop counting, it can last quite a while. Here's my first two levels: http://phil.uu.nl/~zee/qfoxlunar2.avi http://phil.uu.nl/~zee/qfoxlunar2.fcm
qfox.nl
Experienced Forum User
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
Hm On a sidenote, I never really thought of poking stuff to speed things up in a bot. Not sure whether it's applicable anyways, but I'll think about it when I continue the project. Do you know how the distance of the aimer affects the shot? Further means harder/softer? Or what... Because that may be very interesting. There's a very quick clearance for level 2 on grav 1 btw.
qfox.nl
Experienced Forum User
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
Man, it sux that there's a desync bug in my botcode when doing it by part. I implemented some code that could do a game by doing small parts in sequence. However, for some reason it desyncs when linking the computed parts. Even though I can't think of why since it uses the same saving and loading mechanics as a player would. If it wasnt desyncing, i could've let it comute the entire game overnight :D Some day I will though, but since I can't determine the cause of it and don't know whether it's FCEU's legacy code's fault, or mine, I'm not very eager to look for something that may not be there and to fix it right now.
qfox.nl
Experienced Forum User
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
Oh, no I didn't. But if you press A when it's FF, you have the same effect as my bot and it should do the same. I'm checking out how to detect a "next level" screen because I'm having a hard time determining when I cleared the table (but with the score computed). I'm doubting whether you can actually make a perfect clearing on each table...
qfox.nl
Experienced Forum User
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
grav 1, speed FF (or perhaps FE), angle 181 and 245 and 247 it looks as if you get a clearance score of 910 (from balls) every time. For the first table anyways. There's a bonus-system that increases as you go along making consequtive scores. oh and maybe there is some kind of random factor. my bot chooses to change angle by left or right depending on whats closest (uses the attempt counter as angle), but when trying the 181 right now it used the other way to get to that angle. suddenly it didnt clear (where-as it did when i fixed this). It may not make sense but bottom line is, it appears that how you do things does effect the outcome. So I'm guessing there is a random factor after all.
qfox.nl
Experienced Forum User
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
Thats odd... The bot is coded to press A when speed is FF Perhaps this results in speed being FE...
qfox.nl
Experienced Forum User
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
I'll compute grav 1 now, max speed.
qfox.nl
Experienced Forum User
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
Well here it is: [gone look for the newer below] No audio, but who cares. This game is one of the few where there's no issue of a random generator. Just know the angle and the speed of the shots from levelstart and you're safe. This movie is sloppy btw (the start), but its just a demo. For this one it's: grav 5, angle 163, speed max (255) Pity the FCEU work in progress (the one that has my bot, and the one I've used to get this) has the .16 avi-recording bug. So I have to load the fcm in fceu .15 and record it there. But it works, that's all that counts :)
qfox.nl
Experienced Forum User
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
Yeah guys, do it again, make it so no damage is taken! ;)
qfox.nl
Experienced Forum User
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
Amazing. Angle 163 leads to a perfect shot. This kind of proves the system is not 100% symetrical (since the invert angle should lead to the same). Unfortunately it didn't register the hit due to the way I check for a "next shot attempt" so I don't know the specs, but score was about 2200 or so :) I'll check in a sec when the thing is done. I need to adjust finish anyways.
qfox.nl
Experienced Forum User
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
Yah 0 friction doesnt slow any ball so the cueball is bound to end up in the pocket. I'm trying friction 10 right now with max power on all angles. So far the best was 5 balls pocketed with score of 550 (at 128 attempts, and it should do the same for the other half... but score may be higher due to different order of pocketing) Angle 20, max speed, gravity 10. I'll let it compute all around and continue on grav 1.
qfox.nl
Experienced Forum User
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
Hm I hadn't taken the gravity into account. Well if you use zero gravity, take the 256 angles limit into account, you can compute the single shot fastest solution for each board. I'm almost positive every board can be finished within one shot at zero gravity at max speed. That would add up to 256*60 shots, multiply that by 1000 (frames to compute beyond the shot to see result) and it comes down to computing about 15 milion frames. Not bad. Might be nice for a speedrun? So, a zero friction one shot per level run?
qfox.nl
Experienced Forum User
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
Sorry, desyncs after first part of level 1.
qfox.nl
Experienced Forum User
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
Right, the world model can be described in ball-details, all hex: the 030x through 03Ex are bytes for ball 0-7 (where 0 is the white ball). x denotes the ball (so 0310 is a static 0, 0311 is a static 1, etc). 030x: ball on table, A2 means yes, 00 means no, 3 means "went in during current shot" and resets to 0 when shot is done. balls replaced when you make a fault get A1 and get A2 immediately after shooting. 031x: denotes the ball in question, 0 is white. 031x just shows the (static) numbers of the ball (0-7) 032x: ? 033x: vert position (top-bottom 56-C1) 034x: ? 035x: vert direction? 00 means down, FF means up. 1 means not on table. 6 is after you make a fault. 036x: ? 037x: horizontal position (left-right 2F-D1) 038x: ? 039x: hori direction? 00 means right, FF means left. 1 means not on table. 6 is after you make a fault. 03Ax: ball speed, 0 means dead in the water. if all balls are 0, next shot starts (i'd say "duh"). 03Dx: vertical position on a larger scale (less precise), resets after each shot to FF, resets to 0 at the start of a level. only balls that move(d this shot) dont have FF. 03Ex: horizontal position on a larger scale (less precise). postion does not reset like 03Dx. Not so sure about the pocket-positions or table-layout yet. 0187: level (duplicate addresses possible here) 0368: number of lives left 036A: number of shots left 03B0: speed up or down, FD=down, 03=up 0468-046E: score (046E is always 0) 0462-0467: hiscore (0467 is always 0) I'm now using 03D0 == FF to check whether a shot has completed. But this only works for the first shot (which is fine for me right now).
qfox.nl
Experienced Forum User
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
Hm, do you have Lunar Pool (U)[!].nes or just Lunar Pool (U).nes ? I only have Lunar Pool (U).nes and a [o1], but I dont think we'll use the overdump :p
qfox.nl
Experienced Forum User
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
With the internet as it is now, i only really see a problem in hosting. And i'm rather sure SDA would even host this for the heck of it. Other then that, a 4 gig video with this content is well worth it. Encoding it is indeed a whole other issue. Maybe you can do it in parts. Like encode 5 minutes per part (at least while wip-ing). Then in the end you could do a huge one, and have the parts.
qfox.nl
Experienced Forum User
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
yeah lunar ball (J) just gives me a white screen as well so i played pool, which seemed to look the same anyways. How many frames does it take to roll out a shot? Have you found that bit yet? Problem is that not only do you have over 21000 possibilities to test each shot... you have to let the balls roll quiet to see the result. Doing the 21000 shots is not really an issue, but add 5 seconds+ for each shot and you'll see the time rising fast. Although it _is_ interesting to see what the best opening shot would be for level one (and a few of the others).
qfox.nl
Experienced Forum User
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
And slaughter you.
qfox.nl
Experienced Forum User
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
Try playing with a different fceu... you never know. Hexediting will work only for a short amount of time. The random generator _will_ catch up with you eventually.
qfox.nl
Experienced Forum User
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
Brilliant. At first I thought somehow the other MegaMan now finished a boss earlier then before, but you switched the megaman windows around :p Good job though! Is playing and recording four fceu's as heavy as playing the video's of this codec? :p
qfox.nl
Experienced Forum User
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
Well, if you maximize the shot (or, if frame-specific, use minimum power of x, to save time not having to wait for max power) then that would lower the threshhold. But like bisqwit points out, its ok to do one shot. It's not so ok to compute one level, unless every level can be done <5 shots. And even then, finding that one set of moves is not so easy. It's hard to computationaly prune the obvious no's (although perhaps one could compute the angles at which the ball would directly go into the pocket, depending on how the worldmodel is kept in memory). It's not a very attractive to compute it. But if someone can give me some more ram addresses I can whip up a program for it... Stuff like angle, worldmodel, score, "is anything still moving?", turn, "faulty shot" etc. If you compute blind you don't even need to know the worldmodel.
qfox.nl
Experienced Forum User
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
yes but like in real pool, the possibilities might be endless (well, the grid isn't that high-res so not so endless, but mighty high nevertheless). i've thought about it though, but it would require knowing a lot of the ingame variables. maybe too many...
qfox.nl
1 2
14 15 16
24 25