Posts for paul_t


Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 8/12/2007
Posts: 102
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 8/12/2007
Posts: 102
Levels 1 and 2 - http://www.youtube.com/watch?v=eAEZZsLTAMU Development on Mednafen is moving along with a lot of new features and fixes. There's now a Visual Studio 2008 project file in the SVN if anyone wants to try it.
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 8/12/2007
Posts: 102
Yeah, I fast-forwarded the cutscene with the intention of cutting it out but I thought it was funny. :) It looks like this normally. mz: I'm currently working on it in an Ubuntu VM running in Windows due to the difficulty of getting it to compile any other way. I've tried several configurations of MinGW in Windows, MinGW cross-compiling in Linux, and Cygwin and I couldn't get anything to work. Fortunately there is massively less work to be done on Mednafen than what you had to do on PCSX. It's already very usable for my purposes. Sir VG: 1 - Thanks, I will look into that. 2 - Falling was faster when I tested it, but I'll check again when I redo that part. 3 - I think you're right, I'll look into that as well. EDIT: Level 3 There is now a recording/playback/stopped indicator by the frame counter. Also, savestates made during recording and playback are now separate from ones made while stopped. This should prevent potentially ruining a movie by saving states while stopped.
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 8/12/2007
Posts: 102
Level 2 Backflips seem to be slower than normal walking. I added individual hotkeys for saving and loading savestates. I also added hotkeys that can speed up and slow down the rate of the frame advance key when it is held. I think this makes Mednafen about advanced enough to release a windows binary, but even after a lot of attempts I can't seem to put together a working toolchain for compiling one.
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 8/12/2007
Posts: 102
As far as I can tell, Mednafen's emulation is very good. The only problems I've had are due to bugs in my own code. I've been using screen capturing software, I don't think it has AVI dumping. Perhaps it could be ported from FECU? I haven't looked into this issue. Some development assistance would be awesome if that interests you. :)
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 8/12/2007
Posts: 102
As far as I can tell, the speeds are the same. Watching ram values would be the way to confirm it though. Like you said, good style would make a TAS of this a lot more interesting.
Post subject: Castlevania: Rondo of Blood
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 8/12/2007
Posts: 102
I got a frame counter working, which makes a more complicated game like Rondo feasible to TAS. Level 1
Post subject: Ninja Spirit
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 8/12/2007
Posts: 102
Levels 1 and 2, made with the re-recording version of Mednafen.
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 8/12/2007
Posts: 102
I got re-recording working in Mednafen, but there are no additional features at the moment, so it's still mostly unsuitable for TASing. Right now the movie filename is hard-coded. EDIT: Fixed some bugs state.cpp movie.cpp movie.h
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 8/12/2007
Posts: 102
I was working on Mednafen, but I'm a novice programmer and I think it's beyond my ability. This is my movie.cpp: http://pastebin.com/f7e02bb40 Mednafen starts movies from a savestate, embeds loaded savestates into the movie file and loads them during playback, and also saves a state to the end of a movie file. That movie.cpp records and plays back from power-on, and doesn't embed any savestates into the movie file. I also made it so that Mednafen doesn't compress movie files. I wanted to avoid a lot of filestream opening/closing stuff by keeping the movie in a buffer, but I can't get MDFNMOV_AddJoy to play from or record to a buffer properly.
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 8/12/2007
Posts: 102
That was awesome. I'd like to see more. Mednafen was originally a fork of FCEU and contains a lot of similar code in the savestate and movie sections. I think a decent part of FCEUX's re-recording code could be reused. I've been working on it for the last several days without any success, but a few lines of code can make it record and play back from power-on without starting from a savestate.
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 8/12/2007
Posts: 102
I was really impressed by all those improvements you found in the intro and Mijinion stages and I'm interested to see how it turns out in the Gate levels. I think the invincibility glitch might not save that much time in Gate 1.
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 8/12/2007
Posts: 102
I agree with FractalFusion and DarkKobold, your work on PCSX is not useless at all. Also, there's a bunch of Linux oriented work done on this fork of PCSX: http://pcsx-df.sourceforge.net/
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 8/12/2007
Posts: 102
Here's another Guard Shell test: Without GS With GS About the High Max fight, Z-buster was actually about 40 frames slower when I tested it. I was only able to use it once in the fight though, manipulating High Max to use that attack more often could maybe make it faster. You can disable the first set of lights in Turtloid like this: 09CB08 00 09CB68 00 09CBC8 00 09CC28 00 But the movie recorded without the cheats won't sync. There's probably another way to do it that works better. Here are some ram values that are useful: 970C6 Jumping 970C5 Jumping|Sub 911B2 X|Pos 911B6 Y|Pos 911B3 X|Block 911B7 Y|Block 911B1 X|Subpixel 911B5 Y|Subpixel 8EFA4 Boss|Health 8EFA1 Boss|Invulnerab 8EFAB Boss|Invulnerab 8EFA5 Boss|Health|2 !CCF60 Level|Timer (Two bytes) c456c Input 970FC Health 970FD Health|2 CCF2B Health|3 e434 Damage|Invul (FF: I've been tricked by that YouTube thing as well, I can delete your comment if you want, otherwise it doesn't matter)
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 8/12/2007
Posts: 102
Thanks for the suggestions. I decided to restart, saving around 30 seconds. The biggest improvement is the High Max fight. Up to High Max - Some loading time is cut out. Movie file
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 8/12/2007
Posts: 102
Thanks, I'll keep all these timesavers in mind. For the moment I'm going to continue for testing purposes. I don't think the Guard Shell would be able to save enough time. Shield Sheldon's level and loading screens are something around 1:30 long. In addition to that, switching to it takes up about a second each time. Up to High Max the second time Movie file There's another unnecessary pause, which I thought was needed to use Ensuizan. The part with the totem poles seems like it could be faster too.
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 8/12/2007
Posts: 102
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 8/12/2007
Posts: 102
Here's an updated test run, saving about thirty seconds due to improved strategies and weapon choices. Youtube Movie File Solon: I originally thought the weapon would save time at the end of the game, but found out later that it doesn't as far as I can tell. satan: Great info, thanks. I'm actually not sure what the difference between Heavy and Hard difficulty is anyway. It seems like a slower rate of fire for the bike wouldn't make a big difference since you can almost always do more damage out of it.
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 8/12/2007
Posts: 102
I just did a test on the stage 2 boss, it can be beaten in under 13 seconds with the laser weapon, and it only takes 1/3 of the power meter. Since it takes about 5 seconds to pick up the weapon, I think the time savings may justify picking it up. The plasma does 2 damage per shot, so a direct hit will do 10 damage. Here's a chart of damages tested right on the enemy so the shots don't have to travel in the air. It doesn't tell the whole story due to the various quirks of the weapons which will slow down the actual gameplay. Normal Gun - 6 damage every 60 frames Laser - about 8 damage every 60 frames (more like 12 damage on large enemies) Flame - about 11-12 damage every 60 frames Plasma - 12.5 damage every 60 frames Mines - about 22 damage every 60 frames Bird - about 33-35 damage every 60 frames
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 8/12/2007
Posts: 102
Thanks for watching. :) Here's answers for most of your questions: 1a: The game is laggy in general, so minimizing what's on the screen at any given time is probably a good idea. It's hard to avoid the enemies that come up from the sand when flying lower, but I'm sure it could be faster than it is. 1b: I tested your idea and it seems to be slower. The EX-UP spends too much time shooting the projectiles. 2a: Some testing suggests that the speeds are equal. The guided laser does 1 damage per hit, which is the same as the flame weapon. It's not totally clear which one is better, since they fire at different rates and the laser can hit a target twice. 2b: I think that's just because they have longer to travel. The boss could definitely be faster by using the flame weapon more effectively, but the trade off is spending more time on the other enemies. The EX-UP doesn't track the boss. The mines are hard to use due to the way the boss moves, and the boss is too high to take damage from one that hits the ground. 3b: I tried the mine and it seems to be slower since you have to do additional rounds of having the eye closed. The lasers don't seem to be any more effective against the second part than the flame weapon. 4a: It's not obvious at all, but if you crouch before pressing up you can actually make it to the ledge unassisted. I've been playing the game for years but never knew about that until a couple of days ago. 5a: I think it would be difficult to do this stage quickly without dying. 6b: It's a fixed distance, so it's faster to take the hits. You can do damage well before the health meter shows up.
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 8/12/2007
Posts: 102
I've finished a test run of this game: Part 1 Part 2 Movie File You can sustain flight indefinitely by turboing the up button, which I use to save time in some levels.
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 8/12/2007
Posts: 102
Good AI manipulation has the potential to save a lot of time. I think knowledge of the code would be required to take full advantage though.
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 8/12/2007
Posts: 102
Here's a quick test run of the first three levels: Youtube Movie File EDIT: Up to the final boss: Youtube Movie File Ram Addresses: 00ff11a5 - enemy 00ff1235 - enemy 00ff1205 - enemy 00ff1d9a - boss health Cross Rang - 8 damage per shot A weapon becomes more expensive each time you buy it. In my test run, the Ultra Bombs become too expensive to buy at Menone. Better weapon management would save a lot of time. EDIT 2: I redid the run with better weapon management: Youtube Movie File I think it would be faster to skip the last speed upgrade and get more weapons instead. The second boss is faster with the "back" weapon.
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 8/12/2007
Posts: 102
Nicely done. At this point I would be comparing the ram contents of these movies and looking for a memory address that controls the event.
Emulator Coder, Experienced Forum User, Published Author, Former player
Joined: 8/12/2007
Posts: 102
What about an "ignores the stats screen" rule like the Sonic runs?