Code Monkey home page Code Monkey logo

desktop-ponies's Introduction

Desktop Ponies

8 bit ponies on your desktop.

Desktop Ponies Desktop Background by CuteSkitty

Desktop Ponies lets you choose some ponies from My Little Pony: Friendship is Magic to trot around your desktop whilst you work.

The ponies will move around on screen performing a variety of custom animations. They also talk occasionally and some ponies will interact with each other.

There are over 300 ponies and other characters from the show included. There is also a wide array of OCs available and you can create your own ponies too.

Don't want to restrict yourself to just ponies? Try downloading the Equestria Girls characters made by Bot-chan.

Installation

Desktop Ponies works on Windows, Mac and Linux.

License

The artwork is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0). This means you are allowed to share and alter the artwork, provided you give credit, do not use it for commercial purposes and release it under this same license. You can find assets for the ponies and other characters in the Content/Ponies directory. There is a list of credits in the Content directory.

The source code is available under the same license.

External Links

Documentation

Some information about the file formats employed by the program can be found in the technical documentation.

Related Projects

  • DPengine - Multi-platform reimplementation of Desktop Ponies. Worth trying if you use Mac or Linux or need better performance.
  • Browser Ponies - Desktop Ponies in Javascript. Get ponies in your browser.
  • New Browser Ponies - Fork from the Original Repository Browser Ponies updated with the last current new ponies and Cloudflare CDN support.
  • BronyLiveWallpaper - Live Android Wallpaper using Desktop Ponies sprites.
  • PonyPaper - Live Android Wallpaper using Desktop Ponies sprites.
  • ponysay - cowsay reimplementation for ponies, using some Desktop Ponies sprites.
  • Linux/GTK+ - Desktop Ponies reimplementation for Linux.
  • Desktop Ponies for OS X - Desktop Ponies reimplementation for OS X.
  • qponies - Desktop Ponies reimplementation with Qt.
  • Qt-ponies - Desktop Ponies reimplementation with Qt.

Building

This project evolved from a Windows only solution and whilst it just about runs on non-Windows machines thanks to Mono, it is not really portable in terms on building on other platforms (sorry about that).

You will need to install Mono in order to acquire the libraries for the Gtk/Cairo portion of the program that runs on non-Windows platforms. You will probably need to update the references for those dlls in each of the projects that requires them.

Once resolved, you have a standard Visual Studio solution split into three projects. Desktop Sprites is the library that handles rendering, Desktop Ponies is the pony specific part of the application and Release Tool is used to run image optimizers and package new releases.

If you want to use the Release Tool to optimize images, you will need to acquire the gifsicle and pngout and drop them into the application directory for them to work.

desktop-ponies's People

Contributors

hidefromkgb avatar jasmindreasond avatar liz4v avatar ngyikp avatar roosterdragon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

desktop-ponies's Issues

Opacue screensaven on windows 10

I'm currently using Windows 10 pro x64, and i'm having a problem with desktop ponies -screensaver is not transparent.
I've been already looking this up on google, but i found nothing on how to fix this problem.
Screensavers in windows 10 are just opacue.
Ponies will run on black/blue screen instead of desktop.
BTW, don't try using preload/prelook or whatever is this button called, because that way it will be transparent. Only when time is passes, screensaver is opacue.
Can you do something about it?

Ponies are layered behind everything!

What happened:

  • I already had various applications launched
  • I launched Desktop Ponies while nothing else was currently being launched
  • Everything worked normally, switching between my windows always kept Desktop Ponies on top
  • Closed Desktop Ponies by right-clicking in taskbar and choosing Close Window. The "main menu" of the Desktop Ponies application popped up in the background (behind other windows)
  • Some switching between applications and whatnot
  • Brought up that existing "main menu" of DP and pressed "GIVE ME PONIES"
  • Desktop ponies appeared, however as soon as I select any window it goes in front of them. They are layered just like if they were a regular window. (obviously, still layered above the desktop itself)
  • Clicking on a pony or on the DP taskbar icon brings them to foreground, but only until I focus another window. Same for focusing DP with alt+tab.
  • Right clicking on the taskbar icon and choosing Close Window, then clicking "GIVE ME PONIES" does, in fact, fix it. Now they are layered on top of everything no matter what.

Just thought I'd share this. It has never happened on this machine before.

OS: Windows 10 Home (x64)

Sound Not Working

I got a new computer and now the sound on Desktop Ponies does not work whatsoever. Not on voice lines that should have it, or anywhere else. I have checked in both normal operations, and in the pony editor. I have checked settings to make sure it's enabled (no change from installation on old PC) and all other sounds on the PC in question work fine.

Edit: it just occurred to me that I should mention that I have in fact checked the volume mixer when Desktop Ponies is in operation, and it doesn't show up. By which I mean it isn't in the volume mixer, or in the general sound settings either.

Edit 2 (9/5/21): The issue appears to have fixed itself, sound now works again, even though I didn't knowingly change anything. Might have had something to do with Windows update, but I'm not sure.

Might want to suggest wine for linux in the readme

I am running this on ubuntu 24 with KDE plasma. I've found it runs a lot better when running it through wine compared to how the readme suggests. I thought it might be a good idea to add that as a suggestion for anyone having performance issues with it.

It is so good by the way. Makes me really smile

How can I help?

I am interested in helping with Desktop Ponies. I've used it for a long time but haven't seen any major improvements. Of course, I never realized it was on Github either.

I have extensive experience with C#, and some with VB.NET. I cannot do art, but I can code. What can I help with?

Suggestion on how to achieve significantly faster loading

I don't like how long the loading time of Desktop Ponies is (I mean while launching the application, not after clicking "GIVE ME PONIES").
I have come up with a simple solution which works for me, and could perhaps be incorporated into the real thing.

Here's what I did:
It appears a large portion of the loading time is loading the big menu with all the ponies.
Turns out, of the hundreds of available characters, I only use 4 or 5.
So I deleted everything in my "Ponies" folder except for the ones I use.
The application now loads significantly faster. Haven't measured it, but it is basically instantaneous.

While I'm perfectly ok with the above solution for myself, it is not elegant at all. We certainly can't tell users to "delete the ponies they don't want loaded". Here's an idea in how to design the user interface:

In the options menu, there would be a checkbox called "Only show the following ponies:"
Bellow, there'd be something like a drop down list of all characters and each would have their own checkbox. Here's where you choose what you want. Or perhaps something similar to the "Pony Filter" would be more user friendly? I'm not really sure about this part.
On startup, it is checked if "Only load these ponies" is on. If so, only the chosen ones are loaded up - and at the end of the pony list, there is a big button "show all" which, when clicked, ignores the limitations and loads everything anyway. This way the user can't get stuck if he forgets where and how he had disabled a bunch of the characters.

shell on macos has a problem?

After installing the latest mono on osx(el capitan) and running the shell RunOnMac.command, the console showed an error like exec: mono: not found.I changed the line 4 into exec /Library/Frameworks/Mono.framework/Commands/mono32 "Desktop Ponies.exe" "$@" and the it worked properly. Is it an problem?

Very slow on Mac

Even with only one pony, my MacBook fails to render at a decent framerate and I see flicker all the time. With ponies like Rainbow Dash that do special effects, the framerate goes near 0 and the effects are glitchy.

Doesn't compile on Linux

When compiling I get the following error:

/usr/lib/mono/4.5/Microsoft.Common.targets: Error: Command 'robocopy "/home/kraxarn/Downloads/Desktop-Ponies-master/Content" "/home/kraxarn/Downloads/Desktop-Ponies-master/Desktop Ponies/bin/Debug//" /XO /MIR
IF errorlevel 4 exit /b %errorlevel%
exit /b 0' exited with code: 2. (Desktop Ponies)

Suggestion - 𝑛 instances of each pony

You are able to choose 0 or 1, so why not add an additional option below it:

[text box] of each pony

Something like that. (Where [text box] is an input field accepting an integer)

Menu locked after autostart

Hello again ^^
Found a bug where if you start the application via autostart and then do "Return to Menu" on a pony, the menu is locked. Can't add nor remove ponies via the main menu.
image

image

Ooo also found another bug but I'm gonna put it in a separate issue 😄 #8

Mutliple monitors to single monitor ⇒ Unexpected Error

Switched from 2 monitors to 1 and got this little error message when opening the options:

Unexpected Error - Desktop Ponies v1.58
An unexpected error occurred and Desktop Ponies must close. Please report this error so it can be fixed.
System.ArgumentOutOfRangeException: Värdet på 3600 är inte giltigt för Value. Value ska vara mellan 'Minimum' och 'Maximum'.
Parameternamn: Value
   vid System.Windows.Forms.NumericUpDown.set_Value(Decimal value)
   vid DesktopPonies.OptionsForm.RefreshOptions() i _______________________________________________Desktop Ponies\Desktop Ponies\DesktopPonies\OptionsForm.vb:rad 94
   vid DesktopPonies.OptionsForm.LoadInternal() i _______________________________________________Desktop Ponies\Desktop Ponies\DesktopPonies\OptionsForm.vb:rad 47
   vid System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
   vid System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
   vid System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   vid System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   vid System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   vid System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
   vid System.Windows.Forms.Control.InvokeMarshaledCallbacks()
2016-01-09 19:33:51Z

command line arguments in readme

Would be good to find the command line arguments inside the readme
image
Instead of finding out from testing. :)

Also would be sweet if the autostart didn't view the menu at all (like it does while loading)

OBS Issues

When trying to having this running while streaming, OBS can't appear to capture it without completely blocking the rest of the stream unless using display capture. If there was a way to have a way to their background window be transparent, that'd be awesome.

Or any other workarounds would be cool to know as well!

PTS doesn't speak

Princess Twilight Sparkle doesn't say the voice lines, they appear silently

prevent invalid characters when copying profile

i tried to create a new profile called "typical ig?", and since "?" is an invalid path character it failed. it would be nice if there was some sort of name validation to prevent entering characters like "?"

DPE as a backend?

Exactly as it says on the can.

I propose the overall structure to be as follows:
[1] At start, DPE allocates rendering threads and output windows, one window for each renderer available, then reads the whole base into memory (~80 MB) and passes control to DP.
[2] DP, according to user`s request, chooses which ponies («unit libraries» in DPE terminology) shall be visible, and then controls the execution via main window, options list and context menus.
[3] It is still unclear for me how DP and DPE shall interact, but I think it might be some set of handlers on both sides, which can be registered and unregistered: for example, context menu handler registered by DP and called by DPE, or options update handler, registered by DPE and called by DP.

From the «binary» point of view, I plan DPE to be several separate libraries: DLL for Windows, SO for Linux and DYLIB for Mac, so it would be up to DP to determine the OS and choose which library to load.

This is how I see it. Feel free to correct and extend =)

Settings dont load properly

Lots of bugs with the autostart functionality ;)
Some settings (or it's mainly one I've found that) doesn't load properly I think.

The Ponies are always on top of other windows setting,
2015-12-26 00_09_35-start
if I start via the autostart then even tho I have that setting saved in my profile, they are not above everything 😞

image

If I open the options, the setting is checked, contrary to it's effect. And I have to uncheck it, then check it again to, and then save for it to work.

Note: If I launch the app normally then the Ponies are always on top of other windows setting works...

Running v1.58 btw

Audio cuts

Hi! I find something that I would like to be fixed. I'm changing the voices of the ponies because I want them to say specific things by putting new .MP3 files. With Rarity I go well and everything was OK but when I tried Rainbow Dash, Applejack and Fluttershy, for some unknown reason the dialogue, even when is short, is cutted before it finish. I don't know what is the reason of this, but I would like to say this if this can be fixed. I really love the program, and I would like this problem to be fixed

Unexpected Error - Desktop Ponies v1.63

Unexpected Error - Desktop Ponies v1.63 An unexpected error occurred and Desktop Ponies must close. Please report this error so it can be fixed. System.ComponentModel.InvalidAsynchronousStateException: An error occurred invoking the method. The destination thread no longer exists. at System.Windows.Forms.Control.WaitForWaitHandle(WaitHandle waitHandle) at System.Windows.Forms.Control.EndInvoke(IAsyncResult asyncResult) at DesktopSprites.Core.ControlExtensions.CrossThreadInvoke(Control control, Action action) in _______________________________________________Desktop Ponies\Desktop Sprites\Core\ControlExtensions.cs:line 86 at DesktopSprites.Core.ControlExtensions.TryInvoke(Control control, Action action) in _______________________________________________Desktop Ponies\Desktop Sprites\Core\ControlExtensions.cs:line 38 at DesktopSprites.SpriteManagement.WinFormSpriteInterface.set_PreventSelfClose(Boolean value) in _______________________________________________Desktop Ponies\Desktop Sprites\SpriteManagement\WinFormSpriteInterface.cs:line 808 at DesktopSprites.SpriteManagement.AnimationLoopBase.Run(Object startSync) in _______________________________________________Desktop Ponies\Desktop Sprites\SpriteManagement\AnimationLoopBase.cs:line 1148 at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart(Object obj) 2018-07-25 21:33:41Z

Directory structures messed up

On Unix, the directory separator is /. But the zip file uses \ instead:


I've written a Python script to justify these errors here, I have tested it, and it seems to have worked so far.

Show on notification area

Is there a way to put the icon on the notification area (after you close the windows and the ponies appear) so it doesn't shows up on the taskbar, or are you going to implement it on future updates?

Nevermind, find the option, sorry for the inconvienience

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.