Posts for nitsuja


Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
(re: moozooh and mklip2001) I still see actually a lot of similarity between this run and the previous one (and even this one from 5 versions ago). There are lots of obvious differences too, more than some of the previous updates, but there are definitely parts that at least appear to have been left completely alone (e.g. almost all of AIZ and CNZ1). It's common for movies on this site to obsolete other very similar movies, but I think the idea is that in those cases the new author has made an attempt to improve the whole thing and if some parts ended up being basically identical then that's just how it is. I don't think that's exactly what's happened here... I think that at least for certain parts, the author chose to leave them mostly unchanged, rather than trying to improve every part of it as much as possible and happening to end up with similar results. I could be wrong on this but I kind of doubt that the previous versions were so close to perfection that the changes from a from-scratch redo wouldn't visibly permeate every part of it. In cases where a movie is created that contains significant amounts of input from another movie made by a different author (whether from hex editing or from re-entering it by watching the input display), I think it's appropriate that the new author either lists the previous author as co-author, or asks them for permission to not do that. For the record, I wouldn't mind not being listed as co-author... I think that's marzojr's choice at this point. But (while I really enjoyed watching this movie) I would also like to see a brand new run of this game, eventually.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Here's a custom level that's harder than it might first appear, but still very doable:
http://pleasingfungus.com/?ctm=Robo-Tumbler!;OUTPUT:_Replace_R,Y,G,B_with_Y,G,B,R_respectively!_(Input_always__alternates);ry:yg|yg:gb|gb:br|br:ry|rybgbyr:ygrbrgy|rygbrygbrygb:ygbrygbrygbr|byrygbybrygbgy:rgygbrgrygbrbg|:;13;3;0;
"Input always alternates" means only that you may assume that the input does not contain any color twice in a row, although it is still allowed to begin and end with the same color. Also, apparently the game lets you increase the board dimensions 2 past the usual maximum on custom levels (to 15x15) but I wonder if that's enough for this:
http://pleasingfungus.com/?ctm=Manufactorial!;OUTPUT:_With_blue_as_1_and_red_as_0,_output_the_factorial_of_the_number!;r:b|b:b|br:br|bb:bbr|brr:bbrrr|brb:bbbbrrr|bbr:brbbrbrrrr|bbb:brrbbbrbbrrrr;15;3;1;
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Engineers in 21 parts: ?lvl=24&code=c12:8f3;c12:9f3;c12:10f3;c12:11f3;c12:12f3;g9:3f2;c9:4f1;c10:2f2;p10:3f5;q10:4f7;r10:5f2;c11:2f3;c11:3f3;p11:4f3;q11:5f5;g12:2f0;q12:3f4;b12:4f1;p12:6f3;c12:7f3;q12:5f3;
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Here's a funny Academics solution: Reverse the input string 3 times! (58 parts)
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
My Officers! algorithm worked almost as-is to solve Generals! too. I basically just had to swap a few colors around so that it would search for the last 1 instead of the last 0. It's still not a very optimal way of solving the problem (27 parts). ?lvl=14&code=g9:4f2;r9:5f2;q10:4f7;p10:5f1;y10:6f1;q11:4f0;b11:5f0;y11:6f0;r11:9f2;b11:11f2;c12:5f3;q12:7f6;g12:8f3;p12:9f7;q12:10f4;p12:11f7;q12:12f6;b13:9f0;r13:11f0;r13:6f0;p12:6f3;c12:4f3;c13:4f0;y11:3f2;g12:2f3;i12:3f7;b13:3f3; Bisqwit, if it makes you feel any better, I barely understand what flagitous did and I'm still completely stuck on Police!, that's definitely not "out of your league"... EDIT: Okay, I'm not stuck on Police! anymore, but my first solution looks pretty bad (46 parts): ?lvl=19&code=g12:2f3;b11:4f3;c11:5f2;p12:4f3;y12:5f3;r13:4f3;c13:5f0;y12:3f3;p12:6f3;r13:6f0;b11:6f2;q12:7f1;g11:7f2;c13:7f3;b12:8f3;r14:8f3;c14:9f0;c13:9f0;p11:9f4;y12:9f0;r11:8f3;b11:10f1;q10:9f5;p9:9f4;r9:8f0;b9:10f0;c8:8f3;c8:9f3;c8:10f3;p8:11f7;b9:11f3;r7:11f3;c9:13f2;c10:13f2;c11:13f2;c10:5f2;p13:8f3;q9:12f6;c10:12f1;c10:11f1;c10:10f1;c10:8f1;c10:7f1;c10:6f1;c7:12f2;c8:12f2;
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Bisqwit wrote:
I understand Flagitious's program. ... But not Nitsuja's :)
My algorithm was simply: Starting with the last 0 in the string, invert all the bits. (I prepend a 0 first so that there is always a last 0 to be found.)
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
flagitious wrote:
I have been working on Officers today too, got it down to 18 parts.
Wow! This doesn't work when given an empty string though, which the game recognizes as zero, but I guess it doesn't specify whether handling that is required...
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Here's my first try at Officers!, potentially interesting because there is no concept of carry bits: ?lvl=13&code=g12:2f3;g9:4f2;r9:5f2;q10:4f7;p10:5f1;y10:6f1;q11:4f0;b11:5f0;y11:6f0;r11:9f2;b11:11f2;p12:6f7;q12:7f6;g12:8f3;p12:11f7;q12:12f6;b13:6f0;b13:9f0;r13:11f0;y12:3f3;r12:4f3;c12:5f3;c11:3f2;p12:9f7;q12:10f4; It's 25 parts. I suspect smaller solutions are possible, but not with the same algorithm.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Heisanevilgenius wrote:
...difficulty or gameplay options to ramp up the difficulty to something that the developers never actually expected people would actually try because it's ludicrously difficult.
Maybe it doesn't qualify because of the developer's intent that people try it, but Hero Core seems like it has a great example of this otherwise: The extra difficulty mode is like a boss rush with 8 of the game's bosses on hard mode, except all of them attack simultaneously and you're at level 0 with no powerups. The bosses fill the screen with bullets, making it like a bullet hell shooter but without the tiny hitboxes, and the bosses themselves also fill up much of the screen while moving around erratically. Even under TAS conditions it's extremely difficult just to beat it at all (never mind beating it optimally), despite the gameplay being entirely skill-based (all you have to do is shoot each boss until it's dead).
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
klmz wrote:
My more interesting (0:30 with 23 parts, faster and smaller, but neither the fastest nor the smallest) solution for Robo-children: ?lvl=18&code=y12:3f3;p12:5f3;c10:6f1;r14:5f1;b10:5f1;c10:4f2;c12:4f3;c14:4f0;p13:7f3;p12:7f3;c12:11f3;q12:6f2;p11:7f3;c14:6f1;y14:7f1;y10:7f1;c12:10f3;p11:5f3;p13:5f3;c11:4f2;c13:4f0;c12:8f3;c12:9f3;
I think the smallest solutions usually end up being the most interesting in this game. This one I posted earlier, for example, is so small and simple and yet so far from what one would typically arrive at: And yet I still wonder if it's possible to go smaller than that on robo-children (EDIT: doubtful), or at least more vertical so as to use fewer conveyor belts at the bottom (EDIT: it can!). I don't really like that aspect of the game, though... I wish I could put "accept" positions anywhere I want, similarly to how the game allows for "reject" positions anywhere.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
I got a better parts record on Robo-Children: 17 parts. I shuffled that around to get something even simpler but due to the board size it's still 17 parts (On a 6x6 board it would only take 12 parts). Somewhat disappointingly, I did a search for records others have posted, and found that somebody else posted exactly the same solution as that second one elsewhere (though the code URL looked different) an hour or so ago, so I can't claim to probably be the first to discover a 17-part solution to this.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Scepheo wrote:
My solution for Androids: ?lvl=17&code=c12:10f3;c12:9f3;c12:4f3;c12:5f3;p12:6f7;c12:7f3;p13:6f2;b13:7f1;c12:8f3;b13:5f1;p13:4f5;r14:4f0; This actually works for any input, as far as I know. It uses as little parts as it does by not using begin/end markers.
That's not a valid solution, because it accepts the sequence "B R B B R R" and it loops infinitely when given the sequence "B B". So I found a different solution that happens to also use only 12 parts, but I think this one actually works: ?lvl=17&code=c12:9f3;c12:10f3;g12:4f3;i12:5f6;p12:6f7;c12:7f3;q13:4f1;p13:5f5;p13:6f2;b13:7f1;r14:5f0;c12:8f3; EDIT: Robo-children gave me more trouble. I can't get it below 21 parts: ?lvl=18&code=c12:11f3;y12:3f3;c12:10f3;b10:4f2;c10:5f1;i11:4f4;p11:5f5;p12:5f3;q12:6f2;p12:7f3;c12:8f3;i13:4f0;p13:5f5;r14:4f0;c14:5f1;c12:9f3;y13:7f1;y11:7f1;c13:6f1;c11:6f1;c12:4f3;
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Patashu wrote:
Edit: 19 parts. ?lvl=17&code=g12:4f3;q12:9f6;p12:10f7;c10:7f2;r10:8f1;i11:7f3;c12:7f3;p12:8f7;i13:7f2;c14:7f0;b14:8f1;c11:9f1;c13:9f1;g11:10f1;g13:10f1;p11:8f1;p13:8f1;c12:5f3;c12:6f3;
That's actually not valid, because it accepts things like "red, blue". It failed for me by accepting a random test that went "RBBRBBRRBR".
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Androids can be solved properly with 12 parts. I just found a solution that uses 4 branches, 3 writers, 4 conveyors, and 1 bridge. It's probably almost identical to what Scepheo found. (I used way more than that the first time though, because I didn't know about bridges or the concept of markers.)
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
subanark wrote:
Allowing a script to be part of the movie may allow for the movie to be playable on multiple systems, since you aren't aiming for fully controlling the environment.
But I am aiming to fully control the environment, or at least, all parts of the environment that have any effect on the game logic of any games that are supported. When you think about it, I must be controlling an awful lot of the environment already, because otherwise these movies wouldn't even sync reliably on my own computer due to tiny timing differences from disk or CPU cache contents or the OS running background processes at different times and causing changes to the game's randomness and such. And of course while recording, if the speed my computer runs the game at mattered at all, then I wouldn't have been able to use tools like frame advance and fast-forward without causing desyncs all over the place. As for the multithreading unpredictability issues I mentioned earlier, I have an option that completely turns off multithreading (only the main thread is allowed to be created) and the game still syncs the same with that option on (the same goes for Cave Story and Iji and probably many other games), so I'm confident that's a non-issue in this case too.
subanark wrote:
The "bot" would only define what a "frame" is.
Ah. I think what you're suggesting really isn't that different from what I'm already doing. But I'm trying to keep things simple, so the definition of what a frame is will be an automatic, built-in concept as far as I can make it, rather than some extra thing the TASer has to worry about creating.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
sonicpacker wrote:
http://www.youtube.com/watch?v=YYcJHVV_05Q odd
There was an emulator bug in versions 0.9.4 and earlier of DeSmuME that would cause random teleportation like that. It's much harder to do on a real DS (or newer emulator versions) than it was in those old emulator versions, if not impossible. Now, I have seen videos of similar bugs happening in SM64DS on a real DS, so some instances of it may be legitimate, but the ones I've seen so far all involve making Mario dive/slide into collision and ending up very high in the air, which seems different from what happened in this video.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Okay, you asked for it: reallyjoelsdad.avi Or maybe you didn't ask for it, but I felt a need to justify my previous post's assertion anyway. Again, it's just a test TAS, probably not very optimized. EDIT: I would have edited that into the previous post, but got a site error when I tried to do that. But, apparently, editing this new post works just fine...
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
subanark wrote:
I would vote for simply allowing a bot that controls the input (and can decide when to input the keys) to be acceptable as part of the run. ...
I don't see why we would bother with that sort of thing when we can TAS games in the more usual way (which, incidentally, allows for bots to contribute to the input if the TASer wants to put in the large amount of extra effort to do so).
subanark wrote:
Also I don't think that "reallyjoel's dad" difficulty was really ever expected to be beatable. Although it would be funny if it was.
Regardless of whether it was expected to be beatable, I would be very surprised if it's impossible to beat the first room.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
It's difficult to plan a route for reallyjoel's dad so it's taking a little longer to TAS than normal did. Although I'm pretty sure the optimal start involves killing Reaper Drone and Tetron in the first 3 seconds.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Umihara Kawase + Super Mario Galaxy. Metal Gear Solid + Katamari Damacy. (hide around the corner until the guard looks the other way, then quickly jump out roll him into your Katamari ball... it becomes progressively more challenging to be stealthy the bigger you get... maybe you can blend in with your surroundings by gathering up the right combination of stuff and holding still... yes I'm kind of joking, but I could see some sort of stealth + accumulation gameplay working in the right setting) Portal + Marble Madness. Chrono Trigger + Monkey Island. Ikaruga + Loco Roco. Yoshi's Island + Blast Corps. (1-1 could be called "Make Eggs, Throw Eggs, Demolish Neighborhood") Counter-Strike + Grand Theft Auto. Final Fantasy Tactics + Toribash. Ico + Bomberman. ROM CHECK FAIL ^2.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
FatRatKnight wrote:
It depends on whether input.get can pick up the joystick. ... Run this. See if the joystick stuff makes text appear on screen. Seems doubtful, unless the JoyToKey I hear about works in this case.
This sort of thing is why joypad.peek was created, so you can ask the emulator which game buttons are being held down and it will figure out which keyboard keys or joypad buttons to check and check them for you. There's no need to bother checking input keys directly, that's only for things that don't correspond with game buttons. Try this instead, it should work even with buttons assigned to a joypad:
gui.register(function ()
    local count = 0
    local buttons = joypad.peekdown()
    for k,v in pairs(buttons) do
        count = count+1
        gui.text(1,count*10,k)
    end
end)
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
I think those other games are all very similar to Hero Core in whatever measure of simplicity matters here. I haven't tried them recently so I really don't know whether they work now, I was just mentioning that if I can get Hero Core to work (which it is mostly, but not flawlessly yet) then most of the groundwork should already be laid for those other games since they're all using the same engine/framework, or at least, it implies that all of them can be supported.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
I've been making some progress: Here's a test TAS of Hero Core. This game was previously giving me difficulties that I thought were due to multi-threaded logic at the splash/loading screens, but fortunately that problem is not quite as common as I thought it was. There are still more things to fix for it, but getting this game working could be a big step forward for overall compatibility, because it's a Game Maker game, and that is a fairly-commonly-used game engine (e.g. Iji, Jumper, Seiklus, Spelunky, An Untitled Story).
Post subject: Re: Trying out something in lua.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
FatRatKnight wrote:
Pause emulation, tap a button, and it will be pressed when you finally frame-advance. This should help in making sure you don't overload the keyboard trying to press so darn many buttons at once.
This particular functionality is already in DeSmuME (and several other re-recording emulators), called the "Auto-Hold" hotkey. Originally it only supported the buttons but I think Gocha has added a stylus auto-hold feature as well. Of course if you want to be able to customize how these things work then Lua is a perfectly valid way of getting that.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
upthorn wrote:
Wait, why can't the wrapper access system clocks?
Well, I have full access to all of that stuff, I just can't use any of it because there is no way to use it deterministically for thread scheduling or anything else that affects the game's timing. (Those are the same restrictions that the rest of the wrapper is already operating under, besides "frontend" stuff.)