Posts for Luke


Experienced Forum User, Published Author, Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
Thaurlom wrote:
I don't get it. Is this made with a PAL rom emulating NTSC? Wouldn't that make it run faster than it's supposed to do?
I don't know, but from reading the older topics, I guess they decided to use NTSC time and not convert to PAL. It appears that this ROM is intended to run fine in either mode. And I didn't want to submit a slower run... I asked in the forum, a few people responded and unanimously said go ahead with NTSC.
98.16 FCEU????????
http://media2.uploadjar.com/file.php?file=uploads/fceu.zip I added a few features and put in new mappers from another FCEU project, hence 98.16. A few games are emulated that 98.15 did not, but most things run the same in both versions. Hopefully I will get back to it soon and fix a couple things.
Use the force
Experienced Forum User, Published Author, Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
Atma wrote:
I, conversely, cant even get this to sync past the first part of the first level. when I tried enabling/disabling pal emulation, it synced for about 10 seconds, and then crapped out. not to mention there were a surprisingly large amount of graphical glitches in that 10 second period. I think I'll pass from both watching and voting.
I mentioned this in my comments (pretty long, I know...), but your problem is probably with an FCEU glitch about PAL/NTSC mode. Rename the ROM file to something not containing (E) -- for example, "Super Turrican.nes". I've tested it in nitsuja's FCEU 98.15 and it synced fine using this trick. Hope this helps. The glitch is that FCEU will use PAL mode, regardless of your settings or the movie settings, if the movie name contains an "(E)".
Use the force
Experienced Forum User, Published Author, Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
Desyncs are caused by a couple possibilities: The emulator depends on how fast something is rendered or calculated--this is why plugins are really important, as they affect the timing. More accurate emulation should decrease the dependency on your computer's timing, and instead simulate the N64's timing. But accurately emulating the N64 is very difficult. (Compare to the NES, which is accurately emulated, and the movies basically never desync) Or, some variables are not initialized by the program, or not saved by the savestate. This is not necessarily a bug, since a real N64 could read from uninitialized memory. But for making movies, this is bad, since uninitialized or unsaved data is unpredictable! Anyway I hope these problems don't frustrate you too much, because seeing a TAS of this game would be a real treat!
Use the force
Experienced Forum User, Published Author, Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
You are talking about the Japanese version, right? This version is for the Famicom Disk System (FDS). You will need a copy of the FDS ROM--this is copyrighted so you'll have to get it on your own. Name it "disksys.rom" and put it in the directory with FCEU. It's unlikely you can simply copy input to make the go-through-walls work. You have to be in the exact right position for it to happen. If you search systematically it's not a horrible number of attempts to make it work, although you will have to be very patient :)
Use the force
Experienced Forum User, Published Author, Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
Nice run at SDA. Anyone up for improving the TAS? Other than moving the technodrome, are there any other known improvements? Was there a use for the glitch Spider-Waffles found? I am interested in this run, I played it a lot on NES... if no one else wants to, I might look at it (although I still have a couple projects to do first!)
Use the force
Experienced Forum User, Published Author, Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
This may be interesting: http://www.cs.utexas.edu/users/ahudson/ This is the winner from a programming contest a couple years ago, where the challenge was to develop the fastest route for a race, given simple car physics. Although I would suggest F-Zero as a better candidate for a bot-assisted run. Its physics are simpler and there's no item system to complicate things.
Use the force
Experienced Forum User, Published Author, Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
Baxter wrote:
Then I'll also repeat what I mentioned on IRC: - TMNT3 (either single, or 2-player) - Super Mario Kart - Rockin' Kats
With the amazing, huge, difficult projects JXQ has done, I think Mario Kart would be a great next project. It's hella difficult to TAS a racing game (I've tried) but I don't doubt he could do it. PS I think TMNT3 would make a GREAT run, too. It has the special attacks that take life, right?
Use the force
Experienced Forum User, Published Author, Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
FCEU should never desync. If it did, we should investigate, since it should be impossible. Maybe you loaded your save states in a bad order?
Use the force
Experienced Forum User, Published Author, Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
Although this game might not be as awesome as CT or FF3, go for it! I'd watch it, and there are swarms of FF fans who would, too.
And in battle, would you just pause and then unpause and see if that's a critical, and if not, frame advance once and try again?
Basically, yes. Although sometimes you can do other actions, too, to affect the random number. However, don't underestimate how tedious this becomes after a while :) If this is your first TAS, I'd recommend playing around/practicing the game a bit first. Try a few battles, etc. Usually you'll need a while to learn about all the little things you can do to affect the random numbers, etc. Plus, playing a game with frame advance can be a little strange at first. An obvious but imporant piece of advice, is make sure your keys are all easy to press: for snes, you might want Z X your controller buttons, and Shift your frame advance. The SNES emulator can desynch--that means, your movie file won't play back correctly. This is because the emulation is not exact, and occasionally gives slightly different results. So sometimes you might have to remake part of the movie, or at least get your hands dirty with hex-editing.
Use the force
Experienced Forum User, Published Author, Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
Halamantariel wrote:
I totally agree with that. However, since these are both test runs (right?), combining the strong points of each into a single movie would be totally awesome, wouldn't it? All these time-savers, combined into one movie ... that would be the perfect FF3/6 TAS, in my opinion. Continue your great work, guys!
For a game this complex, I would expect there to be several generations of TASs. Even DW1 went through quite a few significant improvements. Keep up the good work, guys!
Use the force
Experienced Forum User, Published Author, Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
The debugger memory viewer is default in hexadecimal. The memory watch is default in decimal. If you want to watch in hexadecimial, you could enter "x000" as the memory address. (the prefix "x" tells it to display the value in hexidecimal)
Use the force
Experienced Forum User, Published Author, Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
It's not hard to get the best of both worlds. It would just take more memory per frame. For example, have 1 byte each frame recording the special events. Then, that could be followed by the input data for that frame. Even though this is not a very efficient format, if you ran this through zlib, it would compress excellently. And like I mentioned, FCEU has zlib in it already (for reading ROMs), so all the tools are there to have it write savestates and movies in zip format. That's how I would do it, if I were designing the format. (Why I said FCEU's format is compressed: the event-driven format has the advantage of run-length encoding--if you hold the A button down for 20 frames, it only records two events: A on, A off. So for most movies, this saves quite a bit of memory.)
Use the force
Experienced Forum User, Published Author, Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
I thought the run was interesting, and it looked to me like this is a pretty good game as a candidate TAS since it has lots of maneuvers. But I didn't vote because I wasn't at all familiar with this game, and I couldn't say at all how well-played it was. Anyway, my point is, don't be discouraged by the lack of votes. At least in my case, it's from a lack of familiarity rather than a lack of interest.
Use the force
Experienced Forum User, Published Author, Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
If you need to do something very simple, hex-editing an FCM file is reasonable, but you will need to be good at reading hex. I would be happy to help you out there. Otherwise you will have to compile NESmock or wait for someone to compile it for you. I suppose I could probably do that... [rant] I can't believe the FCM movie format, FMV is so much more natural. It's run-length encoded, to help compress the movie file. But, why? There's already an uncompressed save state in the movie file. And FCEU already has zlib in it, why not just write the movie file in zip format and save a ton of space?
Use the force
Experienced Forum User, Published Author, Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
I wonder how to interpret those terms of use. 50webs had a similar clause, and shut down the website I was using for FCEU. But FCEU has no copyright violations--it contains nothing made by Nintendo or any other company. Emulating hardware is perfectly legal--that's why AMD can make chips using Intel's instruction set, for example. When they list legal things under illegal things, it makes the license very ambiguous. And techinically (my understanding anyway, I'm not a lawyer), if it's ambiguous it's not an enforceable part of the contract. Grrrr.
Use the force
Experienced Forum User, Published Author, Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
I will have to eat my words about saying it should only be a few thousand nodes. I did an A* in C++, using the heuristic sum(distance from final position). The 6x6 took 100k nodes, 50 moves as you said. I then optimized the program for 4x4 puzzles, getting about 280k node/sec on my computer using the C++ STL priority queue (a binary heap, not optimal for this problem). The 4x4 you mentioned as being difficult took 54 moves, not 62. It used 8.1M nodes, with the final heap (aka priority queue) being 4.1M nodes, using 12bytes/node. However my program doesn't generate solutions, sadly. So it's possible I'm wrong (although it was working fine for smaller puzzles). I would have to write my own heap to do that. I'll edit this post when I do that, maybe tonight, maybe not :) This is a good problem for id-A* as someone mentioned. 50MB of RAM is not worth it for a 4x4 puzzle :) Edit: I implemented the iterative deepening A*, and now it goes crazy fast (probably since the program fits in the cache?). I get 2.6M nodes/s now. Here is the 54-step solution: (Whoops, L = right, R = left. :P)
 1 11  7  5
14  3  4 13
 2  9  0 12
10  8  6 **

DDDLULULDRDRUULLURRRDLLDRRU
LLURRDLLLDRDLURRRDLUULLURRR
depth 54, nodes 8405436
3.204 s
I tried various random 4x4's and most take a few seconds. Here are the hardest I found if you want to try to optimize your solver:
10 ** 14  3
12  6 11  0
13  1  9  2
 8  5  4  7

depth 55, nodes 899119579
UURULDRDDLUUURDDRDLLURRUULDLULDD
RDLURDRURDLULUULDRRDRUU
342.741 s

 5  4 11 10
** 14  6  9
 1 13 12  8
 0  7  2  3

depth 57, nodes 919366955
URRULDDDRUULLURRDRULLDDDRURDLLLU
URRDLDLUURRDRULURDLDDRUUU
345.206 s

Here is source and .exe: http://media2.uploadjar.com/file.php?file=uploads/slidepuzzle.zip (The source is hard to read because I went general A* -> 4x4 A* -> 4x4 IDA*, and there's a lot of optimized bit manipulation)
Use the force
Experienced Forum User, Published Author, Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
How much time are you gaining over your Famtasia run? I am curious because your last run looked nearly optimal to me.
Use the force
Experienced Forum User, Published Author, Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
What are you doing when it crashes? Recording a movie, playing a movie, opening a ROM, etc.? Any particular ROMs? Are more than one FCEU open? Most importantly, can you tell me how to recreate a crash?--then I could easily debug it. Anyone else seen any crashes? I would like to at least know what code to look at. I haven't seen FCEU crash yet. I know it's possible, there are some problems in the code (some memory leaks have always existed, but I think they are harmless unless you are REALLY trying to crash it). I am curious if anything I changed has unintended problems, because I would at least like to fix my bugs.
Use the force
Experienced Forum User, Published Author, Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
Broke 10k in Death mode - Hide next, even with some horrible mistakes. http://ccgi.gdward.plus.com/cgi-bin/tetris/highscores.php?death=1&hidenext=1
Use the force
Experienced Forum User, Published Author, Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
I love Phil's Legend of Zelda movie. The creative route, all the damage to save time, and the insanely fast fighting.
Use the force
Experienced Forum User, Published Author, Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
Vidar wrote:
So... any thoughts on this? Two player seems a bit hard, as I can't optimize moment since there are frames where I am forced to take my fingers off jump/attack for one player..... unless, I bind one key for all four actions, which would get pretty hectic.
Are you saying that you are having problems keeping all buttons pressed? This is common because keyboards usually only detect so many keys at once. There are a couple solutions: bind multiple keys to the same button, or use the auto-hold feature in FCEU.
Use the force
Experienced Forum User, Published Author, Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
Been following your progress at SDA, looking forward to your run:) The pseudo-random number is affected every frame as soon as you turn on the NES. The technodrome location is picked after pressing start on the screen that says "press start". As far as I can tell, there are no "sweet spots", and anyway a real NES might have slightly different random numbers than FCEU. So basically you just have to get lucky.
Use the force
Experienced Forum User, Published Author, Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
In all probability, using a heuristic that strong, a search shouldn't need more than a few thousand nodes. So a beam search should be fine, and your results should be optimal, even though A* would do the same job faster :) Although admittedly a beam search is probably easier to program if you don't have A* code lying around.
Use the force
Experienced Forum User, Published Author, Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
Hmm, I guess 50webs cancelled my site. lol. Apparently emulators fall under their "copyright vio" policy, even though FCEU violates no copyrights. Maybe bandwidth usage got their attention... Screw them. Anyway here is the 98.16 FCEU and the html files http://media2.uploadjar.com/file.php?file=uploads/fceu.zip And here is all the source (this includes the .Po files so it should compile without all the extra work) http://media2.uploadjar.com/file.php?file=uploads/src_1.rar I'll check out the palette bug, it shouldn't be hard to fix. I have a couple other tweaks I should add to FCEU too. I will probably do automake/autoconf in the future. Although I am a little afraid that running these will mess everything up, since FCEU uses a custom config file. I don't have any experience with these...
Use the force
Experienced Forum User, Published Author, Player (84)
Joined: 2/10/2006
Posts: 113
Location: US
The way to solve these optimally is to use an A* search with heuristic function = how many tiles are out-of-place. Although I don't have the time to program this right now... Edit: Primorial Soup is right, an even better heuristic is the sum of the distances of each tile to its final location. An A* with this should find the solution almost instantly.
Use the force