If My Heart Had Wings

The official English release (could not find an official version number).

Application Details:

Version: 20130628
Votes: 0
Latest Rating: Gold
Latest Wine Version Tested: 3.11

Maintainers: About Maintainership

No maintainers. Volunteer today!

Test Results

Old test results
The test results for this version are very old, and as such they may not represent the current state of Wine. Please consider submitting a new test report.
Selected Test Results

What works

Most of it without workarounds, but you can't get very far (see what does not work). With workarounds, everything seems to work.

What does not

Crashes when trying to play videos. Even with ffdshow, native Quartz, and WMP, it still crashes when trying to play any of the videos that are in Windows Media format, which most of them are. As video playback is integral to much of this visual novel, a workaround is necessary to get anywhere.


I recommend installing under a fresh prefix.

winetricks ffdshow quartz d3dx9_43

d3dx9_43 may not be strictly required, but does ensure the config screens display correctly.

When installing ffdshow, make sure you set it to handle MPEG-1. The other formats don't matter. Optional: disable its system tray icons; I find they steal keyboard focus every time a video starts, which makes it annoying when I try to use the keyboard instead of mouse.

Although it cannot play Windows Media videos, it can play MPEG-1. Therefore, a solution is to re-encode the problematic videos to MPEG-1. On your host system, make sure you have FFmpeg, configured to accept Windows Media input and with mpeg1video and libtwolame encoders and mpeg muxer. Run the following shell script while in the installation directory (updated since previous test: the videos with larger dimensions must not be downscaled, or they display wrong):

encode () {
        local avgrate=$1 maxrate=$2
        shift 2
        commonopts="-v warning -c:v mpeg1video -b:v $avgrate \
                -bufsize $bufsize -maxrate $maxrate -flags +loop+mv0+naq \
                -me_method epzs -dia_size 16 -g 18 -bf 2 -trellis 1"
        for fn in $@
                echo Encoding $fn
                mv $fn $fn-orig
                ffmpeg -i $fn-orig -pass 1 $commonopts -an -f mpeg -y /dev/null
                ffmpeg -i $fn-orig -pass 2 $commonopts \
                        -c:a libtwolame -b:a $audiorate -f mpeg $fn
encode $avgrate_big $maxrate_big EFMOVIE_14*.dat
encode $avgrate $maxrate `file *.dat | grep ASF | cut -d: -f1`

Be careful about parameters. The game had some stack overflows with $bufsize set higher, so I went with a much lower value.

The script leaves original videos as *-orig. I prefer to keep these, but you may discard them if you need the space.

What was not tested

I have completed the game, and can't think of anything I haven't tested.

Hardware tested


  • GPU: Intel
  • Driver: open source

Additional Comments

I use the retranslation patch by MeruP, though this shouldn't affect the results.

selected in Test Results table below
Operating systemTest dateWine versionInstalls?Runs?Used
CurrentGentoo Linux x86_64Jul 17 20183.11Yes Yes YesGoldDaniel Dawson 
ShowGentoo Linux x86_64Jun 10 20183.9Yes Yes YesGoldDaniel Dawson 
ShowDebian GNU/Linux 9.x "Stretch" x86_64Feb 12 20182.0.4-stagingYes Yes YesSilverKevin Polo 
ShowArch Linux x86_64Aug 13 20141.7.23Yes Yes NoGarbagean anonymous user 

Known Bugs

Bug # Description Status Resolution Other apps affected

Show open bugs


Comments Disabled

Comments for this application have been disabled because there are no maintainers.