Posts for partyboy1a

1 2
12 13 14 15 16
Experienced Forum User, Published Author, Player (136)
Joined: 9/18/2007
Posts: 389
It's two months late for april fools. No for bad game choice.
Experienced Forum User, Published Author, Player (136)
Joined: 9/18/2007
Posts: 389
You can reply faster than I can fix wrong links... Getting all the flags makes Road Runner some kind of puzzle, many of them are hidden quite difficult... [/offtopic]
Experienced Forum User, Published Author, Player (136)
Joined: 9/18/2007
Posts: 389
[offtopic]
X2poet wrote:
What about Rode Runner?
Did you mean Road Runner? If you want to, you can try an "all flags" run for the SNES version. I don't have enough time right now for it, but I posted lots of helpful stuff in the game specific thread. For example, I created some maps showing all the flags and hidden paths.
Experienced Forum User, Published Author, Player (136)
Joined: 9/18/2007
Posts: 389
The game was interesting enough, and the TAS was done well. I also liked the music. Yes from me.
Experienced Forum User, Published Author, Player (136)
Joined: 9/18/2007
Posts: 389
bzb95 wrote:
I have a question what if this run was submitted before the other 0 star? It would have been accepted correct?
Yes, that's right. Time improvent would be much greater than the (possibly) decreased entertainment. At least in my opinion.
Experienced Forum User, Published Author, Player (136)
Joined: 9/18/2007
Posts: 389
amaurea wrote:
I really don't like this "The improvement is too small, so I vote no" argument.
I dislike this argument too, but the problem with this movie is that it doesn't entertain as much as the published movie. In this case, the total time improvement is worth much less than the "sacrificed" entertainment. (It wasn't really sacrificed, it was a failed attempt to increase entertainment, in my opinion.) Some movies got rejected just because of this. This is especially true for "fighting" games like "Super Smash Bros" or games like "Teenage Mutant Hero Turtles".
amaurea wrote:
I really don't like this "The improvement is too small, so I vote no" argument.
Most important for this is: - How "perfect" is the previous movie? - How many times has it already been improved? This game has many published movies and is highly optimized, so I would say yes for even the smallest time improvement. For some other games, only one movie was ever made. Chances are quite low that everything will be done as perfect as possible. For example, the WIP for SMW2 and (afaik) also the final movie will have some parts which are known to be improvable, but remaking them would be too time-consuming. I also found some improvements for my own movie (I think it would be ~5sec overall). Such movies must be improved at least by ALL known improvements. --- Thanks Nahoc for the quick reply.
Experienced Forum User, Published Author, Player (136)
Joined: 9/18/2007
Posts: 389
The improvements are almost zero. Most camera positions are confusing. That's a no from me. By the way... It is possible to open the front door from inside to enter the castle (there was a competition just for that task, but I'm not sure where). The door that is under water at the beginning gets you to the lower part of the castle. Has someone tried to open that door from inside? This would save much more time if it is possible.
Experienced Forum User, Published Author, Player (136)
Joined: 9/18/2007
Posts: 389
I want to create a Lua script which expands the normal screen to 480 x 256 pixels, drawing all the offscreen sprites at the right position. This would bring you such a view as I demonstrate in this Super Mario World Video , but you would see it while playing... I think this would be very useful. I want to do such a thing with Lua, LuaGd (because that's the format delivered by lua.gdscreenshot), and wxLua. I couldn't find a way to use images together with wxLua. Can someone provide a minimal Lua script which opens a (non-modal) dialog, loads an image either from a gdstring or from a png, and displays it somewhere on the dialog? (I tried to use IUP with snes9x 1.43. I'm using 1.43 because the above script doesn't work with the newer versions. It works perfectly with FCEU, but I can't get anything running with snes9x, not even a single line like ' require "iup" ' or ' require "auxlib" '. If you can tell me exactly which files from which source I need, that would be nice.)
Experienced Forum User, Published Author, Player (136)
Joined: 9/18/2007
Posts: 389
Obvious no vote... I have never played Go, but it's the same problem as all the chess TASes have. Music isn't really great, and there is too much japanese text around. I guess there are many people like me on this site who don't speak japanese. Voting No for bad game choice.
Experienced Forum User, Published Author, Player (136)
Joined: 9/18/2007
Posts: 389
That was really cool!
Experienced Forum User, Published Author, Player (136)
Joined: 9/18/2007
Posts: 389
I submitted the Lua script and the AVIsynth script, they can be found in ./lua/etc/ You should use a RAMdisk for best performance, then the emulator will run at ~50 fps (for my computer at least). I haven't tried to implement this thing into the emulator directly, but it would be very useful for normal TASing... The emulator already supports "extend height" just to do some custom drawing in the bottom area of the screen, so it should be easy to create an emulator hack which does offscreen rendering... Best would be to do some kind of "early render", so that the offscreen content is drawn 10, 20 or 30 frames in advance. This would allow to fire bullets in such a way that the enemies get hit in the first possible moment (you might be able to kill enemies when they are still completely offscreen), and other useful things. I'll give that a try.
Experienced Forum User, Published Author, Player (136)
Joined: 9/18/2007
Posts: 389
I think those two games (and movies) are too different to be comparable -- glitched VS unglitched;; lap counter + map view VS percent counter;; .... This should be a separate publication. But I agree that we don't need more racing games of the same type and console, they would look too similar. (Or the other game must contain unique glitches like graphical corruptions or memory corruptions to make an interesting movie)
Experienced Forum User, Published Author, Player (136)
Joined: 9/18/2007
Posts: 389
The idea with using the sprite data directly was quite nice... I made a new video which shows how good it works already. I'm sure that would even be a nice feature for normal TASing... Note: This is absolutely console-dependent and completely game-independent.
Experienced Forum User, Published Author, Player (136)
Joined: 9/18/2007
Posts: 389
Here is another little useful program: it marks all sprites which appear on-screen. This should give quite a good hint for hitboxes and such... and you can see the enemies before they appear!
Experienced Forum User, Published Author, Player (136)
Joined: 9/18/2007
Posts: 389
Don't just thank me, I used some code Dario_ff has written for the Atlasizer modifications for Snes9x. It'll take a while until all the bugs are fixed and all the necessary features are implemented, but I think we'll get it finished...
Experienced Forum User, Published Author, Player (136)
Joined: 9/18/2007
Posts: 389
Here's a patch for the function snes9x.setrenderplanes(bool,bool,bool,bool,bool). It uses the same syntax as fceu.setrenderplanes, but it supports 4 background layers, so it needs 5 parameters. All of them must be present. for example, snes9x.setrenderplanes(true,false,true,false,false) would say "enable sprites, enable bg2, disable all others"
Index: lua-engine.cpp
===================================================================
--- lua-engine.cpp	(revision 21)
+++ lua-engine.cpp	(working copy)
@@ -2896,6 +2896,33 @@
 	return 4;
 }
 
+
+// gui.setrenderplanes{5 booleans}
+// 
+
+#ifndef luaL_checkbool
+#define luaL_checkbool(L, i) (lua_isboolean(L,i) ? lua_toboolean(L,i) : luaL_checkint(L,i)) 
+#endif
+
+static int snes9x_setrenderplanes(lua_State *L) {
+	bool sprites, bg1, bg2, bg3, bg4;
+	bg1 = luaL_checkbool(L,2);
+	bg2 = luaL_checkbool(L,3);
+	bg3 = luaL_checkbool(L,4);
+	bg4 = luaL_checkbool(L,5);
+	sprites = luaL_checkbool(L,1);
+
+	int l1, l2, l3, l4, l5;
+	l1 = (bg1 ? 0 : 1);
+	l2 = (bg2 ? 0 : 2);
+	l3 = (bg3 ? 0 : 4);
+	l4 = (bg4 ? 0 : 8);
+	l5 = (sprites ? 0 : 16);
+	Settings.BG_Forced = l1 | l2 | l3 | l4 | l5;
+	
+	return 0;
+}
+
 // gui.gdscreenshot()
 //
 //  Returns a screen shot as a string in gd's v1 file format.
@@ -4175,6 +4202,7 @@
 	{"registerexit", snes9x_registerexit},
 	{"message", snes9x_message},
 	{"print", print}, // sure, why not
+	{"setrenderplanes", snes9x_setrenderplanes}, //NEW FUNCTION: snes9x.setrenderplanes()!
 	{NULL,NULL}
 };
Experienced Forum User, Published Author, Player (136)
Joined: 9/18/2007
Posts: 389
much better than [363] NES Rad Racer by Saturn in 21:55.98... but the beginning is really boring. if that wasn't against the rules, i would vote this movie to obsolete the other one. without the other movie, i would vote no... so that's a meh from me
Experienced Forum User, Published Author, Player (136)
Joined: 9/18/2007
Posts: 389
In all seriousness though, for emulators with a layer disable function, why don't you just disable any BG layers, dump the video and overlay it onto an atlas map?
Because the results aren't good enough... If you have a map from VGmaps and just show the sprite layer, you will find non-existent enemies in the final result. On the other hand, if you have a map without any enemies and just show the sprite layer, the result will be that the map looks unnaturally empty. And there's even one more thing which makes it really complicated: Background has a different scroll speed as the normal game. So that's what I did for my SMV video: I took a "nothing" video, a "sprites only" video, a "map only" video (the part of the background which scrolls with the right speed), an empty map, a non-empty map, created an "enemy mask" for the non-empty map with gimp, dumped the background picture, and made a png of the same size as the atlas pictures... And finally I connected them in a way so that it worked... You can imagine that's way too complicated for creating long videos. I'm aiming at making that more easy so that everyone can do it. Writing my own PPU processor... No, it would take forever to adopt it to different emulators. It should be as emulator-independent as possible. And I think it would introduce many new bugs... (At the moment I don't have enough free time for coding... I will continue coding in about two weeks)
Experienced Forum User, Published Author, Player (136)
Joined: 9/18/2007
Posts: 389
Hmmm... That's really accurate, but it's very console-specific. The code you gave me (thanks!) works for GB, but not for GBA. It'll be necessary to write some kind of wrapper for each console, and maybe an additional wrapper so that the code can be applied to other emulators with little effort. I'm thinking of some kind of interface like that: (pseudo-code)
class spritedata {
   virtual sprite[] getsprites();
}

class sprite {
   int x,y,width,height,id;
   BITMAP imagedata;
}
I haven't had a look on VBA's source code, there may already be some functionality like that... It's still be necessary to do some kind of collision detection, but it's much easier... And it will be necessary to detect "sprite groups". Otherwise, some parts of an enemy may be drawn at the right location and others not... I'll give it a try, but it will take some time.
Experienced Forum User, Published Author, Player (136)
Joined: 9/18/2007
Posts: 389
Nice improvement. Yes vote. (My camhacking attempts failed. 0x30 is the little-endian 2-byte vertical map position, writing to it renders a garbage map and leads to movie desync, and the marble will be at the wrong position.)
Experienced Forum User, Published Author, Player (136)
Joined: 9/18/2007
Posts: 389
I've got another idea comparison movies! Some of them have already been done, for example for Super Mario World. The problem is that they have been created with an extremely specialized Lua script which will work only for this game. I made a script which can extract sprites from the game. It may be modified to extract the main character sprites only. The sprite position in the "old" TAS should now be auto-detected and drawn onto the "main video". It shouldn't be too difficult to use a game-independent way for creating the comparison movie.
Experienced Forum User, Published Author, Player (136)
Joined: 9/18/2007
Posts: 389
This TAS is great!
Undie wrote:
sonicpacker wrote:
Holy motherfuck, sick improvements! [...] Would someone be willing to make a comparison encode with the obsoleted movie?[...]
I can do it if someone can teach me how to line 2 clips next to each other in .avs
Nothing more simple than that, it's just StackHorizontal(clip1,clip2). You'll have to load the clips with DirectShowSource or AviSource. (and you got a pm)
Experienced Forum User, Published Author, Player (136)
Joined: 9/18/2007
Posts: 389
Wow, that's much sourcecode... I could even find your ~1500 lines of almost completely undocumented code. I'll set up a new google mail address soon. And I might learn some more spanish... I can't compile anything (with CodeBlocks), it says "int32 does not name a type" for snes9x.h line 299... I'll have to get Visual Studio to get it running. (EDIT Check your inbox to see my mail address) EDIT2 First commit done! (almost everything is just requesting more comments...) I don't have enough time right now to get into the code AND to learn all the C / C++ stuff, it will take a few weeks before I can really help you there. I will stay with the lua scripts in the meantime. I will commit them to some folder...
Experienced Forum User, Published Author, Player (136)
Joined: 9/18/2007
Posts: 389
here is a little preview for my task "movie dependent enemy placement": One necessary thing is to identify the sprites. It's quite effective, but it's not efficient. it takes about two seconds per frame... Edit: I also managed to create some code to save the sprites as PNG... another 260 lines of code...
Experienced Forum User, Published Author, Player (136)
Joined: 9/18/2007
Posts: 389
Dario_ff wrote:
I just feel a bit embarassed about my coding style and that I'm using an external library, which will prevent people from building it easily. [...]And in fact, it'd be my first experience in setting up an SVN repository, which would be good for learning I guess.
If another person is going to read your code, you must make the code readable. The good thing is that your code will contain less bugs and it can be reused much easier. Learning is always a good thing, so I will let you setup some SVN repository. You'll have to give me writing permissions (so some username and password I guess), otherwise it would be useless. I only know Google Code for this purpose, but you're free to find another host.
Dario_ff wrote:
[The breakpoint] settings are saved in the Atlas/cfgs folder. Single files for each game actually. They're not human readable anymore like at the start(INIs), they're binary data.
Oh, I think that's a bad idea. Binary data can become completely useless just by small changes in the internal data handling. I recommend to use the same format as Snes9x uses, or some kind of XML file. I'm sure there are libraries available for that, but I can also write a parser if that's necessary.
Dario_ff wrote:
If you mean just open-source, available to use, no commercial purposes, I have no problems with it.
I'm not an expert for licenses, but as far as I know: Yes, all that applies to the GPL. It even prohibits to use the software in any non-GPL software. Everyone can modify the code, but such modifications must also distributed under GPL. The details are more complicated. For example, Firefox has some kind of open-source license, but no one except the original developer (whoever that is) may distribute modifications of Firefox under the same name.
Dario_ff wrote:
And to the last Multiframe support idea, wouldn't it be easier to just do a savestate, render with different layers, load savestate again, render different layers... Repeat until it's done for this frame? Of course it'll increase the overhead more already, but it's multiframe support after all...
That's exactly what my mark_object_test.lua file (in the nes-astrix package) does! It shouldn't be too difficult to find a way to implement the functionality directly into the emulator, but it might produce many side effects... If you can find ONE function which does ALL the drawing for the current frame, it might work to edit this function in a way that the drawing gets repeated for each set of layer settings. (Which layers should be used must be stated explicitly, because rendering all possible combinations will take much too long) Then you would write a function like getmultiframe(x) which does something like the lua function emu.gdscreenshot() That might be by far easier to implement. I can't help that much for developing those functions. My programming experience for C and C++ is practically zero. I learned some Java, but Java doesn't use any * or & operators...
1 2
12 13 14 15 16