Posts for Ramzi

1 2 3 4
18 19
Post subject: Depixelizing emulators
Experienced Forum User
Joined: 3/25/2004
Posts: 459
Hay guyz, http://johanneskopf.de/publications/pixelart/ How hard would it be to pull the sprites from a ROM at startup, depixelize them, save them to a hashmap or something, and render them instead of the original sprites? Make emulators at movies beautiful.
Experienced Forum User
Joined: 3/25/2004
Posts: 459
I'm not brute forcing. I'm making AI compete. Game enthusiasts can describe their playing style in something near English. That's the API. That's game-specific. For example, in Zelda 1, if there is a health drop, rupee drop, and bomb drop, how would the AI know which one to pick up? I can think of 3 different AIs right away. Right? But it all depends on the circumstance. Anyway, the parameters of how to value competing interests are game specific.
Post subject: AI competitions?
Experienced Forum User
Joined: 3/25/2004
Posts: 459
It would be neat if APIs for specific games were readily available, so as to write AIs for them without having to worry about the low-level technicals. AI classes could be made and recombined with different weights. Conservative, risky, values this more, values that more. This is far more computationally tractable than brute forcing game trees. Many subtrees get shaved off. Including potentially optimal solutions. But that's the price you pay for the tractability. Wouldn't it be fun to have AI competitions for games, even if they come out slower than human TASes?
Experienced Forum User
Joined: 3/25/2004
Posts: 459
Someone could easily create a game that requires an exact set of keypresses in order to win. And then encrypt the ROM so that that keypress set cannot be reverse engineered.
Experienced Forum User
Joined: 3/25/2004
Posts: 459
Dearest biscuit: Can drugs bring about a religious experience? If so, what is the likelihood religions were inspired with drugs? Mmm... biscuit....
Experienced Forum User
Joined: 3/25/2004
Posts: 459
Bag of Magic Food wrote:
Let's change the topic to "The Legend of Zelda no Densetsu II: The Adventure of Link no Bouken" so that the title will literally mean, "The Legend of Zelda's Legend 2: The Adventure of Link's Adventure."
Let's just retitle it to "The Legend of Zelda's Legend 2: The Adventure of Link's Adventure."
Experienced Forum User
Joined: 3/25/2004
Posts: 459
http://terpconnect.umd.edu/~rmukhar/Zelda movies.rar In this rar there are 7 movies. 150 percent - This was me playing the game naturally at 150%. I think I was trying to play with no savestates, but got gameover at some point and then didn't mind using them. It says I rerecorded 37 times, but I don't remember where I started using them. It was a while ago, so I don't remember, but it has a low rerecord count. Ramzi z1 - This is just me playing the game normally. I beat it in 55 minutes. It says I used 3 rerecords, but I don't remember where those were. I think I might have gotten a gameover and that's why I used it. But I don't remember. Swordless - I wanted to call this "how to play Zelda stoned." And I was quite stoned when I made it. But that's probably true for the rest of the movies also. Swordless2 - This was to be my refinement of "how to play Zelda stoned." I wanted to go over the video with soundbytes, like, "Fire fire GWAR!" or "Come on baby light my fire," when I used the candle. The plot of this movie, along with its predecessor, is that Link does things like, forget where he put his sword, borrows money from friends, and has to have underground hookups (secrets to everybody, and the letter that gets you potions.) Pacifist bomberman - This is me beating the game only using bombs, except where I have to use something else. Also, I never kill any bad guys that I don't need to. Pacifist bomberman fuckup #1 and #2 - In these movies I wanted to refine my previous movie. The first movie gambles a lot, and buys a key. I wanted to do the movie without buying a key. These movies are the same in the beginning, and are only different for Level 7, Level 6, and the start of Level 9. In Level 9, I find out I am missing a key, so the challenge goes unfinished. It was a bit ago I was interested in doing the pacifist bomberman refined movie, but have since had it looming over me as an unfinished project. But tonight, after fucking up again by getting to Level 9 while missing a key, I just decided not to finish it. I think the pacifist bomberman idea is much closer to a minimal run than the swordless video. You need to know the game a lot better. Keys are more of a concern, as well as bomb drops. Not getting hit is very important for bomb drops, which I didn't consider in my first make of the movie, which is why I buy so many bombs. Ideally, I'd like to see a clean movie of this challenge, along with the 3-heart challenge. That is, 3-heart pacifist bomberman.
Experienced Forum User
Joined: 3/25/2004
Posts: 459
Might it be possible to complete a level faster by dying intentionally to teleport to the starting location of the level?
Experienced Forum User
Joined: 3/25/2004
Posts: 459
Edit: Wrong thread sorry.
Experienced Forum User
Joined: 3/25/2004
Posts: 459
Where do you guys learn this stuff?
Experienced Forum User
Joined: 3/25/2004
Posts: 459
I read about coroutines, NMI, and the Mega Man 2 scrolling glitch. That NMI stuff seems advanced. I hope I'm not asking something obvious here, but how can we know when such interrupts occur, and whether they could be advantageous?
Post subject: Threading in NES games? Can it be exploited?
Experienced Forum User
Joined: 3/25/2004
Posts: 459
I'm not really sure how NES games were coded, whether threads played a role in them or not, and how those threads were handled. The hope is threads could be understood, and by exploiting them the game's natural boundaries could be broken. No surprise I was playing Zelda 1 when the thought occurred to me. A rare event occurred. An enemy-bomb drop landed on the very tile of the room-placed item drop of bombs in Level 2, (right before the Dodongo). I like to leave that room-placed item drop there, so I could return to it if I was wasteful with bombs when fighting the Dodongo. (I chose to collect the enemy drop before finishing the rest of the enemies for the room drop to appear, but that's besides the point. As a further aside, room-items are slightly different. For one thing, it is preserved even when you leave the room, and you can only get it once. Also, you cannot pick it up with the boomerang.) Anyway, the general gist of my thoughts were to make bombs drop on each other, or close enough to each other, such that exploiting threading could somehow yield a bomb count greater than the games imposed limit. (8, before upgrades. 12 and 16 after upgrades.) If the bomb increment goes something like this... onBombDropPickUp() { 1. if(bombCount + 4 <= bombLimit) 2. bombCount += 4; 3. else 4. bombCount = bombLimit; } then hopefully, suppose you have 3 bombs, by making two threads, timed to switch focus correctly, both threads could be at statement 2, before they finish executing, leaving the player with 11 bombs. However, if it was programmed more like this: onBombDropPickUp() { 1. bombCount += 4; 2. if(bombCount > bombLimit) 3. bombCount = bombLimit; } Then it seems the bomb quantity will be checked at the very end, making the check avoidance through thread exploitation... less visibly likely. Anything worth considering here?
Experienced Forum User
Joined: 3/25/2004
Posts: 459
I understand the peculiarities of this run, and it's incongruity with the mission statement of the rest of the site, but for the casual visitor to the site, don't you think he needs some kind of Zelda swordless run? Maybe just as a concept demo, rather than a formal TAS.
Experienced Forum User
Joined: 3/25/2004
Posts: 459
I'd be interested in doing this if there is interest, if we can find quick consensus on a good route. I would not like to use the screen scrolling glitch recently discovered. Using Save/Quit counts as a game over, and I am not fond of using it. Lastly getting the rod very early also seems to defeat the purpose.
Experienced Forum User
Joined: 3/25/2004
Posts: 459
Whelkman wrote:
How about "Don't TAS me, bro!" with a picture of Super Smash Bros. or something.
Would this imply the pronunciation is "tayse" "tase" or "tace" (those three are the same in my head) as oppose to "tass." Are we really willing to make such executive decisions here? I vote we make the pronunciation "tase" to make Whelkman's joke work / be funnier. Are there any European/crazy letters, dots, symbols, accent marker dealies that would make the pronunciation that way? It might add a visual flare, and it would be a tribute to all the European/crazy people who contribute to this site.
Experienced Forum User
Joined: 3/25/2004
Posts: 459
I'm just coming here to say that it took me fucking forever to figure out what this video was by the description on the main page. Someone needs to fix the times and put the red gem explanation. Just emphasizing.
Experienced Forum User
Joined: 3/25/2004
Posts: 459
Derakon wrote:
Keep in mind that brute-forcing games is very inefficient. In your Zelda example, let's say that it takes at minimum 15 presses of left/up to get to the old man with the sword. That means that at bare minimum you will be evaluating 4^15 = 1073741824 possible variations (minus variants that are duplicates of ones you've checked before) before reaching your first goal. Basically, any approach that boils down to "exhaustive search" isn't feasible yet and probably never will be.
Hmm... I almost feel dumb for having posted it in the first place. I know it's been mentioned so many times already. Just sometimes it feels more plausible than other times. Suppose we hardcode the overworld route into the bot, an exhaustive search for dungeons would be feasible, wouldn't it? Rather than doing the exhaustive search, say, depth first, why not do it breadth first, and use each completion time of the game as a measuring stick for the next branch. So we won't claim that we have found the fastest route, just the fastest route thus far.
Post subject: Game-specific LUA AI discussion
Experienced Forum User
Joined: 3/25/2004
Posts: 459
I started reading about LUA scripting today. Although I don't know how to program in it, it's availability made me think about the reality or difficulty of creating AI for certain games. I think, perhaps, there has been little discussion of LUA (as far as I noticed in doing a quick forum search for it), and I think, maybe, if we kept a catalog of all scripts for specific games, this could aid TAS developers in the future, particularly those who could use the scripts, but do not know how to develop them. But providing sample code could help the aspiring programmer, such as just providing x/y coordinates of the main character or bad guys, or something general like that. Then more-specific functions can be developed by the TAS maker. I thought of two bot ideas. Zelda 1: Perform an exhaustive path search. (Depth or breadth, doesn't matter, but allowing cycles.) So, from the starting location, there are 4 options. Left, Up, Inside, Right. Make the respective goal-state be whatever let's Link reach the end of the screen. Hard-code the level conditions in, (that is, for example, Level 5 MUST BE entered and completed before Level 7. Although this isn't necessarily true, it is a basic assumption of the Zelda 1 first question, that in a TAS one should not enter and exit a temple before completing it.) If one level is entered that violates a condition, then that path can be successfully pruned. Level stategy, likewise, is exhaustive search. Except, only "completing a room," when "necessary." The "necessary" conditions will be: the room contains a key, the room contains a movable block, or a door will open by defeating all the enemies on the level. Let Link's fighting strategy use the sword, as opposed to an intelligent combination of multiple weapons, requiring that he be a tile-distance away from an enemy linearly from the direction he is facing. Value the current gamestate by some function consisting of Link's health, total enemy health if it is a "necessary" room, and distance away from the goal state. So, two states with the same amount of health and bad guys, but different distances from the door, values the one closer to the door as higher. Continuing this heuristic could allow intelligent pruning. I think this should be sufficient to beat the game, even if many specific rules need to be hardcoded, such as, "play the flute at the location with the Level 7 pond," "shoot the level 6 bad guy with the arrow," "burn the tree to level 8 if on that screen," and, "bomb this location to enter level 9." Levels 1, 2, 3, 4, 5, and 6 should be found naturally through the exhaustive search. Pac-Man: This game essentially invokes the same principles as the Zelda ones I just mentioned, although they are seemingly simpler. Perhaps I should have listed it first, but I wanted to type my ideas true to the order in which I had thought them. Anyway, do not look at Pac-Man routes as pixel by pixel decisions, but rather as intersection by intersection decisions. Suppose you're at an intersection where you were going left, and could continue left, turn up, or turn down. Simply try all three, and create the branches. If contact with a ghost is made (not during time of the power pellet effects) then stop pursuing that branch. I think this should be sufficient to beat the game.
Experienced Forum User
Joined: 3/25/2004
Posts: 459
arflech wrote:
I just looked up Gore's relationship to the Internet, and now I <3 him more than ever before and hope he returns to politics someday: http://en.wikipedia.org/wiki/Al_Gore_and_information_technology
That was really interesting. Thanks for this. I thought it had just been a big joke for years. Why do we make fun of him?
Experienced Forum User
Joined: 3/25/2004
Posts: 459
Damn. There goes my idea. What about being able to provide a specific time in a video, and having it go there? I imagine graphic rendering and sound take a lot of the processing time. Couldn't we just disable outputting the video and sound to the screen, but having the game play the keypress file until a certain point, at which time functionality returns as normal for the user?
Experienced Forum User
Joined: 3/25/2004
Posts: 459
Okay. My sound quality was on Low, but I turned it off anyway. So, on 6000%, the movie should be 60 times faster. This means, that for an hour video (60 minutes), it should only take 1 minute to view the whole thing. This is certainly not the case, at least on my end. How would it be realistic to improve this? Another idea, more interesting to me, is adding a rewinding feature. It seems as easy as automatically saving states for some time interval, and just loading them back until the user finds the place he wants to be. Save states could add up in size, which is a concern. Is there a better way of doing this, or a good reason why it hasn't been done yet?
Experienced Forum User
Joined: 3/25/2004
Posts: 459
I just started using this the other day. And one complaint I have is, if I'm trying to create a save state, because I saved accidentally, I have to watch the entire video up to that point. This takes a long time. The max speed I can crank it to is 6400%. By my calculations, unless I've done something wrong, 6400% should get me anywhere in the movie right fucking fast. But it seems to be running, more realistically, much slower than that. Is this a bug only on my end? Is it possible to increase the playback speed, via programmatic patching, and is it possible to tell an emulator, given a movie file and a rom, to create a save file at a specified time point? I am in a class where I need to contribute to an open source project. I think I might just have found the project, presuming it's not too complicated.
Experienced Forum User
Joined: 3/25/2004
Posts: 459
damn quit locking my shit fascist
Experienced Forum User
Joined: 3/25/2004
Posts: 459
Nah. I'm not saying that you can do shit like put the whistle in level 9. I'm saying, all the levels are the same. But like, you could put level 1 in level 9's position. Or level .... hmm... I guess some parts of the overworld would inaccessible without the ladder. New questions. By switching only the level locations (to the spots of other level locations, essentially switching them) is it possible to generate any impossible games?
1 2 3 4
18 19