ScreenGet discussion thread - 1.11 out now

Talk about anything related to the site & forums.

ScreenGet discussion thread - 1.11 out now

Postby Grim » Wed Aug 31, 2011 6:01 pm

Intro

I made a new program! It hasn't come up much but yeah, I'm a programmer. Tell me what you think.

AnimGet

Ok, so we've all used AnimGet a million times I bet. I myself was just using it to rip a SNES fighting game someone had asked me to do. Eventually I came to an animation that would always skip several frames when using AnimGet, no matter how many times I tried. So it got me thinking: what if I could make AnimGet go faster, or make it use less memory? It's a great program for sure, but it has some obvious limitations:

  • It can only save .BMP files
  • It can only take screenshots at the default speed, apparently 10ms
  • Moreover, it compares screenshots WHILE it takes them, making it much slower than 10ms in reality

Obviously I don't have access to AnimGet's source code, but I figured, how hard could it be to make a program that takes screenshots super fast? Well, harder than I expected, but nevertheless, here it is!

ScreenGet

First, the GUI:

Image
The long gray status bar shows the program's current state: Idle (doing nothing), Recording, and Paused.
The little gray "shots" box shows how many screens are in memory.

Click the red circle (record) and it'll start taking shots as soon as you switch windows. Click it again and it'll pause.
Click the save button (floppy disc) and it'll save all the screens in memory.
Click delete (red X) and it'll clear everything in memory.


If you go File>Config there are options you can set.
Image
You can manually set the frame delay - the default is 32ms.
You can change the file type too, if you prefer BMP to PNG for some reason.
The folder to save screenshots to can be set under File Path.
And the latest feature, Keep Redundant Frames, allows you to save every screen even if it is a duplicate.


The big difference, besides the GUI and added features, is that my app compares the screens AFTER they have been taken. This means it's free to take screens as fast as it wants to without having to worry if they're the same. The screens are compared later, when you click Save. Of course that means saving takes much longer, but you can't have it both ways.

Grudge Match!
Here are some animated comparisons of what the two are capable of on my PC.
Each of these was taken of a pre-recorded gameplay movie using Visual Boy Advance's movie record feature.
These animated GIFs are made from the first 50 screens captured from the exact same starting point; they are all animated at the same rate.

AnimGet capturing at 10ms
ScreenGet capturing at 10ms
ScreenGet at capturing at 16ms

I hear your protests already: but more stuff happens in the AnimGet example! Exactly, because more frames are being skipped.
The animations capped by my program have more "pointless" frames where it's just a flickering shadow and nothing really happening, but the thing is, AnimGet would capture these too if it could! You can see that even set to 16ms, my app is much faster.

In the interest of fairness, here are the disadvantages of my app.
  • Screenshots include the GUI - when you use AnimGet, you only get the game screen. I'll fix this if I can but I have no clue how AnimGet does it.
  • Saving is quite slow.
  • For many situations, this program is probably overkill.

You decide!

Download ScreenGet (12kb .zip)
Surprise, you can download it right now and try it out. Obviously you need the .NET framework and it's Windows only.

Try it out. Use it for real, or just mess around with it. Try to break it if you want. If anything doesn't work or seems confusing, let me know.
Also if you have an idea for a better name, please share.

Disclaimer
I promise this isn't a virus, but any other problems it causes ain't my fault!
Depending on your system settings, you may have to run as administrator - this program reads, writes, and creates files.
A word of advice: for emulators like VBA, Kawaks, Desmume, etc. where you can manually advance frames there is NO NEED for a program like this.
Yes, the frame counter really is supposed to move that fast!
No, it's not crashing when you click save - let it finish!
User avatar
Grim
Administrator
Administrator
 
Posts: 1995
Joined: Tue Nov 24, 2009 1:55 pm
Location: NY

Re: ScreenGet - move over, Animget (maybe)

Postby Heatpark » Thu Sep 01, 2011 12:32 pm

You are a programmer? I learn new things about you everyday.

Jokes aside, the program is good but saving is VERY slow compared to animeget. Still, I like the fact that it can save in PNG and not just BMP and you can choose where to save the pictures. And in my opinion, the GUI just looks better.
User avatar
Heatpark
Mega Member
Mega Member
 
Posts: 335
Joined: Wed Jun 02, 2010 10:29 am

Re: ScreenGet - move over, Animget (maybe)

Postby Grim » Thu Sep 01, 2011 12:57 pm

Ah, finally a reply. :P Thanks for the kind words. I will admit the saving is damn slow. C#.NET (the language I used) is pretty good at handling images but it doesn't seem to have any adequate way of comparing them without doing a tedious one-pixel-at-a-time check. But hey, at least it works as advertised and is highly accurate.

Hm. Lightbulb. What if I modify the program so it saves all the screens, even the duplicates, and then add a feature that can optionally weed them out afterward? Or make it so the user can set whether or not to check for duplicates when saving? In my trial runs there were never that many screens that had to be deleted anyway so maybe it's not a bad idea.
User avatar
Grim
Administrator
Administrator
 
Posts: 1995
Joined: Tue Nov 24, 2009 1:55 pm
Location: NY

Re: ScreenGet - move over, Animget (maybe)

Postby Heatpark » Thu Sep 01, 2011 2:51 pm

Would optionally weeding them out afterwards make it faster (I don't know anything about programming)? Because if it does (and even if it fails), give it a try. It can't hurt right?

I think the only thing this program needs is speed. Keep it up Grim.
User avatar
Heatpark
Mega Member
Mega Member
 
Posts: 335
Joined: Wed Jun 02, 2010 10:29 am

Re: ScreenGet - move over, Animget (maybe)

Postby Grim » Thu Sep 01, 2011 5:35 pm

They'll save faster. Then let's say you're looking at them and there are way too many duplicates, you could go back to the program and say "hey, get rid of those for me". That would still be slow, but optional.
User avatar
Grim
Administrator
Administrator
 
Posts: 1995
Joined: Tue Nov 24, 2009 1:55 pm
Location: NY

Re: ScreenGet - move over, Animget (maybe)

Postby MadaraPeinKyuuby » Fri Sep 02, 2011 10:12 am

Lol I didn't know you're an programmer
HeatPark i'm suprised too
we learn new things about Grim everyday
ok i tested out on 16 frames per second and its flawless
great job grim
simple gui interface but i like it
Image
User avatar
MadaraPeinKyuuby
Mega Member
Mega Member
 
Posts: 247
Joined: Mon Mar 22, 2010 7:05 pm
Location: Romania

Re: ScreenGet - move over, Animget (maybe)

Postby lucci85 » Fri Sep 02, 2011 7:07 pm

Why am I not surprised you're expert in informatics? XD
Cool thing anyway, even if (as you said too) the saving is slow. It could be extremely useful in the future.
User avatar
lucci85
Mega Member
Mega Member
 
Posts: 470
Joined: Sun Dec 20, 2009 10:53 am

Re: ScreenGet - move over, Animget (maybe)

Postby Belial » Sun Sep 04, 2011 7:38 am

I don't care about saving speed if it allows me to nab those in-between frames that animget sometimes misses. Thanks man.
User avatar
Belial
Super Member
Super Member
 
Posts: 102
Joined: Mon Dec 28, 2009 4:50 pm

Re: ScreenGet - move over, Animget (maybe)

Postby sgn15 » Wed Sep 07, 2011 4:03 am

thanks man. this will definitely inspire me to rip sprites again. and its only fitting that the owner of a sprite rips website makes a program for ripping sprites. thanks and congrats for the program :)
User avatar
sgn15
Super Member
Super Member
 
Posts: 131
Joined: Sun Sep 12, 2010 3:31 am

Re: ScreenGet - move over, Animget (maybe)

Postby Grim » Wed Jul 03, 2013 11:10 am

Whoa guys, this topic is rising from the grave.

So I got an email from a ScreenGet user (the fact that any exist makes me rather happy) who suggested some changes:

-Add leading zeroes to the filenames so they sort properly (ie, screen_0001 instead of screen_1)
-Allow the program to keep the duplicate screenshots if the user wants to (ie, for accurate animation capture, etc.) [this was actually discussed as a possibility above, but I never implemented it]

Both pretty good ideas! And it turns out I still had the visual studio project files, so I added 'em! Here's the newer version: http://spritedatabase.net/downloads/ScreenGet/ScreenGet.zip

Probably some minor UI updates are coming but hey, there's an update to a 2-year old program that nobody was expecting.
User avatar
Grim
Administrator
Administrator
 
Posts: 1995
Joined: Tue Nov 24, 2009 1:55 pm
Location: NY

Re: ScreenGet - move over, Animget (maybe)

Postby hyperlon » Mon Aug 19, 2013 5:23 pm

Excellent, Grim :)
I'll use it the next time for sure!
hyperlon
Newbie
 
Posts: 4
Joined: Mon Aug 12, 2013 8:25 am

Re: ScreenGet - move over, Animget (maybe)

Postby G.o.D. » Tue Aug 20, 2013 3:16 pm

Thanks for the updates on this nice tool.
User avatar
G.o.D.
Mega Member
Mega Member
 
Posts: 400
Joined: Wed Sep 26, 2012 7:50 am
Location: Italy

Re: ScreenGet discussion thread - 1.11 out now

Postby sgn15 » Wed Sep 11, 2013 7:51 am

Image

^do you know of the source of this error?

Also, I have tried all versions (links from the downloads in the main site, in the first post of this thread and last post of Grim in this thread), but aside from that error, when I click OK, the GUI I got is the one with only icon buttons (no "Record", "Save", and "Delete" words on the buttons)..... and yeah, if I click OK, it doesn't work (save screenshots) either.
User avatar
sgn15
Super Member
Super Member
 
Posts: 131
Joined: Sun Sep 12, 2010 3:31 am

Re: ScreenGet discussion thread - 1.11 out now

Postby Grim » Wed Sep 11, 2013 5:31 pm

Ugh, somehow the wrong version is uploaded, I'll upload the correct one right away. Edit: It's fixed - http://spritedatabase.net/downloads/Scr ... eenGet.zip

As for that error, I can't tell you what caused it because I don't know what you were doing when it came up. If I had to guess it's something I mentioned in the first post - running as administrator might fix it.
User avatar
Grim
Administrator
Administrator
 
Posts: 1995
Joined: Tue Nov 24, 2009 1:55 pm
Location: NY

Re: ScreenGet discussion thread - 1.11 out now

Postby sgn15 » Thu Sep 12, 2013 12:48 pm

Ok. That fixed it. No more error message. The .exe file now has icon too! happy ripping again
User avatar
sgn15
Super Member
Super Member
 
Posts: 131
Joined: Sun Sep 12, 2010 3:31 am

Next

Return to Sprite Database: Discussion

Who is online

Users browsing this forum: No registered users and 1 guest