Please enable JavaScript to display the menu. - From Author

Please enable JavaScript to display links.

YS FLIGHT SIMULATOR Ver. 20150425 (for Windows, Mac, and Linux)

Polygon Crest 20160221


I finally figured why shadow-map was not cleared (therefore could not be correctly rendered) in the aircraft-selection screen.  I was forgetting that GL_DEPTH_MASK was set to GL_FALSE for drawing GUI widgets.  :-P  It is fixed.  I'll upload it soon.

Congratulations, Yoshihide Muroya for winning the 2017 World Champion in Red Bull Air Race!

Wow!  That was impressive!  Indianapolis is not too far to drive from Pittsburgh (if it were not during the semester).  I wish I were there to witness the first Japanese pilot to win the race!

Position Title

I have been working for Carnegie Mellon University for long time.  For the first two years after finishing my Ph.D, I was a post-doc.  But, the Department of Mechanical Engineering policy allows someone to be called a post-doc only up to two years (that's what I heard), and I was given a new title of research associate.  That has been my title for a while, but when I started teaching a class, I was given a second title, adjunct faculty.  So, I have been a research associate / adjunct faculty.  It is a time to renew my contract, and was told my title will be changed to research scientist.  I'm not sure if it is an upgrade, or class change.  Will I be able to use a new magic?

Flight Review

To fly as a Pilot In Command (not for an airliner), I need to take a flight review every two years.  There are three ways to do so.  The easiest and cheapest method is to fly with an instructor for an hour or so.  The second method is to get a new certificate or rating.  A funny thing is that if I get a hot-air balloon certificate, that extends my privilege to fly a fixed-wing airplane as a PIC for two years.  I'm very much interested in getting a lighter-than air certificate, too.  Maybe one day I go for it.  The third method is to participate FAA Wings Program.  It is the most expensive way, but it is a way to demonstrate my commitment for air safety.  To get Wings certificate, I need to take three knowledge credits and three flying credits.  I already attended a safety seminar, which counts as a knowledge credit.  I needed two more knowledge credits and three flying credits.

For flying credits, the default choices assigned by the Wings program for me were all in a multi-engine airplane.  I could have chosen a different options, but I haven't flown a twin since my check ride, so I thought it was a good opportunity to fly Beech Duchess again.  So I reserved Duchess at PFTC for three Saturday and miraculously the weather cooperated.  I flew three times, and fulfilled the flying credits.  Duchess seems to be more maneuverable than Cessna 172 despite its heavier weight.  Especially I tended to over control on the runway during take-off run and during the final approach.  The instructor applied some pressure on the yoke to correct my over-controlling tendency.  (I could feel the pressure on my yoke.)  But, the last landing today went pretty well.  I saw my instructor not touching the yoke during the last landing.  Kind of satisfaction.

Sad part is that I probably won't fly Duchess for another two years and will forget the feeling of sensitive control.  But, it's ok.  It was fun flying a twin.


Finally, I made one of the changes that I wanted to do for long time in YSFLIGHT test version.  If use-particle option is turned on, YSFLIGHT draws smoke trails of airplanes and missiles with particles.  I thik it looks pretty.  On the other hand, I have received many comments that the current test version is too heavy for relatively-old PCs.  In that case, by turning off use-particle option, YSFLIGHT substantially reduces particle usage.  So, it should run as fast as the current stable version.



I am always trying to be a pilot even when I am driving a car.  In fact, I feel that my flight training made me a safer driver.  Like, pilots are trained to, fly an airplane, navigate, then communicate.  The highest priority is always to control the airplane.  Same thing in the car.  Drive the car, navigate, then communicate.  The highest priority is to control the car.  If I miss a turn, just keep driving, and take the next and come back.  Navigate only when I have control of the car.  Talk with passengers when I am able to control and navigate, and still have some attention to spare.  Attention is a limited resource.  Human doesn't have infinite attention.  A pilot needs to pay attention to, or distribute attention to, airspeed, altitude, heading, engine condition, radio communication, and so on.  Same thing in driving.  A driver needs to distribute attention to road condition, pedestrians, speed, signs, traffic lights, other cars, and many information while driving.  Never fixate on one thing.

This September 2 to 4 was the Annual Cleveland Airshow weekend.  Because the forecast was horrible for Saturday due to a hurrican turned into a tropical depression, I was planning to go on Sunday and Monday.  Another friend was going to come in a separate car.  I always leave very early for an air show, so we were supposed to meet there.  The road condition from Pittsburgh to Cleveland was a disaster.  Occasional severe rain.  The water everywhere and extremely slippery.  My car wagged tail many times due to hydro-planing.  The forecast for Sunday was predicting cloudy sky clearing toward the afternoon, but the reality was obviously worse than the forecast.  The weather was not recovering as advertised.  It was a very difficult condition.  It was pretty much similar to a snow-cover.  That's what I felt.  I wondered if I should warn my friend who was supposed to be coming behind me.  I could have asked my passenger to text them.  The passenger in the following car could have picked it up.  But, I didn't bother after all.  They should be fine.  I thought.  The car coming after us by 30 minutes to an hour lag slipped and crashed when they were getting off I-80.  The car was totalled.  My friend who was behind the wheel suffered a major injury.  Luckily, it was not life threatening, and full recovery is expected.

I had no obligation to warn them.  Nor, I was responsible.  But, I could have warned.  If they knew that the condition was serious enough to warrant a warning, they should have driven more carefully, and the accident could have been avoided.  An accident does not happen for only one reason.  If the chain of events leading to the accident is broken somewhere, even one ring, the accident doesn't happen.  The pilot is the last line of defense, but the pilot alone cannot prevent an accident.  The accident must be prevented by the system.  It's something that was supposed to be engraved on my heart.

But, I didn't act as a pilot that day.  Had I warned, they could have just enjoyed the air show and returned to Pittsburgh safely.  I had a chance to cut the accident chain, but I didn't.

I saw their Honda Civic towed to a junkyard when I salvaged stuffs for my friend who was still in ICU at the time.  The Civic was totalled, but looked proud for fulfilling its ultimate mission.  That guy saved lives of the driver and the passenger.  It was the best looking car I had ever seen.  That Civic not only saved the two lives, but also saved myself.  If a life was lost, I would have cursed myself for the rest of my life.  That Civic must have wanted to travel more with the owner it loved.  I felt sorry for the Civic.  Why I didn't act as a pilot that day?  Why I missed a chance to cut the chain leading to the accident?  I deeply regret my decision.

I don't think I can break free from this feeling of regret.  This feeling probably will haunt me for the rest of my life.  I would never hesitate to warn someone whenever I know the road condition is going to be difficult.

I killed a Red Tail Hawk this Sunday.  I was driving on a 35MPH-limit road with no side walk.  All of a sudden, I saw a hawk in a bush on my right.  It took off as soon as I noticed, flew into right-side of my windshield.  Thud!  That was a worst kind of noise to hear.  I hit the hawk before I could apply brakes.  The hawk spinned and crashed behind my car.  I parked my car on the road side and ran to the hawk.  I moved the hawk to the side of the road before other cars turn it into a ground meat.  The hawk was breathing heavily.  Wings still spread as if this guy was trying to climb into the sky.  I needed to save this guy.  All I could think of was the National Aviary.  I googled the phone number and called.  I asked if they could accept an injured hawk, but the answer was they could not accept a wild bird for treatment.  While I was talking over the phone, the hawk stopped breathing.  I didn't have a same feeling when I killed a bird with the right-wing of my Cessna in the air a few weeks ago.  But, maybe because this guy died in front of me?  Tears didn't stop coming down from my eyes until I came back home.

The next day, I was eating Duck Curry in a Thai restaurant.  Human is a contradicting creature, I thought.  Ducks are cute and taste good.


2D Retro Map Tool Available for Download

The program I wrote specifically for finishing a retro RPG called Xanadu Revival 2, but later also worked for Chrono Trigger for iOS, and turned out to have some practical usefulness, is now available for download.  With this program, you can make a 1x1 pixel-scale map of a 2D game like this:

Click to see 1x1 scale.

Also updated "Drawing Text with System Font in UWP OpenGL ES app using Win2D" for the new feature in CMake 3.8 and newer.  I've just been forgetting to update.

I was supposed to go to Cleveland Air Show over the weekend.  But, due to a dramatic event, I couldn't.  Well, I don't want to violate privacy of those who were involved, so I cannot disclose details.  But, I think I was able to do a good thing for them.

When I've just arrived Pittsburgh in 1998, one of my college friend was staying here for his business.  He helped me a lot of things while I was starting my life in Pittsburgh.  When he was leaving Pittsburgh, I said to him that I'll return my favor in the future.  In return, he said that he didn't need my favor, but I should give it to the new generation coming to Pittsburgh.  I am determined to keep his words.

I was thinking to organize airshow pictures during the summer break.  But, actually I spent most of the time playing Chrono Trigger for iOS.  Oh no, I haven't even finished photos from Cleveland Air Show from the last year....


Sorry for no update a while.  A friend recommended Chrono Trigger for iOS, and most of my time was invested on this one.  Actually, I was making a 1x scale map using my mapping tool.  It worked fine with iOS screenshots, sent to the PC with Photo Stream.  I really want to write a documentation and make it public.  I want 48 hours per day.

Screenshot of my Retro RPG Mapping Tool.

Chrono Trigger was originally released for Super NES.  In that time, many of my friends had a NES or SNES, but I had a computer called FM-7.  All I could do was watching friends happily playing those games.  Now it is my time to revenge.

Speaking of FM-7, I found it was still sitting in the closet of my home when I visited Japan last year.  It started once, but never started again.  But, CMU Computer Club may be able to repair it.  I needed to save it before my parents threw away.  This time, I shipped FM-7 as well as FM-TOWNS that were in a deep sleep for decades to Pittsburgh.  I was prepared to pay up to $1,000, but the total cost including the monitor was $600.  Less than what I was expecting.

I never checked if FM-TOWNS was still alive or needed some repair.  But, this guy worked perfectly.  Its CD-ROM drive was in good shape.  It was not Apple that shipped a first computer with a built-in CD-ROM drive.  FM-TOWNS was the very first computer that came with a built-in CD-ROM drive.  The hardware looked to be in the perfect shape, but I carelessly dropped the keyboard on the floor, and cracked the circuit board.  I asked the Computer Club for help, and they were able to repair it.  Their technique is impressive.  When you go to an air show, you may hear the song "Keep them flying" during the heritage flight.  In here, it is "Keep them running."

FM-TOWNS 20F running After Burner II after 27 (maybe 26) years of deep sleep.

FM-7 was more of a problem.  It was first sold in 1982, when there was no VGA.  It uses a digital RGB cable.  Unless I somehow make a monitor cable, I cannot even see the screen.  Also, a floppy-disk drive was a luxury that time.  I was saving and loading programs and data files in an audio cassette tape.  I am afraid that younger people may not even know an audio cassette tape and a floppy disk.  It was that retro.  I learned assembly-language and BASIC language with this computer.

But, one good news was that it was working again, although I couldn't start it for the second time in Japan.  FM-7 has three LED lamps, INS, CAPS, and KANA.  CAPS and KANA are controlled by the keyboard hardware.  But, INS is controlled by the software.  I was able to toggle the LED, which meant that the CPU is alive.  I also was able to play PSG music by typing PLAY "V15 CDEFGAG", and beep by typing BEEP.  Actually, the hardware of this FM-7 is modified so that it can force to ignore VRAM-access wait.  It accelerates graphics drawing, with some noise on the monitor.  The solder balls for the MOD was not covered, and may have been touching other parts of the circuit board.  So, I covered the solder balls with plastic tapes.  FM-7 is working stably since then.

So, I knew that the CPU was alive.  I needed a monitor and a data-recorder cables.  I found pin assignments for a single-color monitor and a data-recorder cables on this page.  I ordered 5-pin and 8-pin DIN connectors from Amazon.  But, I also found a cable for connecting color-monitor output to VGA sold by Classic PC Research Group in Japan, and they were able to ship it to the U.S.  It's easier.  I ordered the cable, too.  Single-color cable would be a back-up plan.  Another issue was that the output from the cable was going to be 15kHz, which is too low for modern VGA monitors.  I would need an up-converter.  I found one on on Amazon, and ordered it as well.  I didn't know if this up converter was going to work.  It was a gamble, just like buying a PC parts in 1990s.  At that time, we never knew if a PC part was going to work with my PC even a well-known brand models.

The cable and up converter arrived.  I hooked them together.  Fingers crossed, and turned on FM-7.

It works!  FM-7 gained the monitor output again!  It has some blue vertical lines, but it's ok.

FM-7 drawing random lines after 30 years of deep sleep.

The next thing was the data-recorder cable.  8-pin DIN arrived more than a week later.  I followed the instruction on this page, and fabricated the cable myself.  I'm a programmer.  I am not trained to do soldering very much.  It was a struggle.  I ruined one connector, but I made it in the second attempt.  I connected the cable to FM-7, and the other end to a desktop computer, that pretends to be an audio-cassette recorder/player.  I wrote a short program on FM-7 and typed SAVE "TEST",A  It was a success!  I heard a familiar noise that I heard for the first time 33 years ago when I was 11-years old.  Loading was a problem, too.  First I've just played what I recorded.  But, nothing happened.  I increased the volume of the WAV file, and tried again.  This time, it was a success.  I can write a program and save to and load from a WAV file.

In Carnegie Mellon University, the Computer Club hosts an event called Demo Splash in November.  The plan is to show off this FM-7 side by side with FM-TOWNS in the event.  The Computer Club also has X68000.  It would be great to put them on display, making a Japanese Retro PC section.

The last problem is that FM-7 can load a program from my desktop PC, but not from my ThinkPad.  ThinkPad may not be able to play WAV file loud enough.  Or, maybe plus and minus are inverted.  This is something I need to figure next.


End of Loooong Busy June

I was enjoying heaven-like 1.5 months.  I had something to watch every week.  Pittsburgh Air Show on May 13-14, watching Blue Impulse over-the-base training at Matsushima air base on May 23, seeing off the last for-passenger YS-11 of Japan Air Self-Defense Force at Miho air show on May 28, watching Blue Impulse fly-over at Hikone castle on June 4, seeing Airbus 380 take-off for the first time from Narita Air and Science Museum on June 11, Youngstown Air Show on June 18, and Dayton Air Show on June 24-25.

It happened this way because all major air-shows near Pittsburgh were all in May and June, except Cleveland.  While it was like a heaven, it was physically challenging.  I got very much exhausted, but now I am relaxed and recovering.

The photo is YS-11 #152 taking off for the last fly-by in Miho air show.  This airplane was ferried to a museum in Nagoya the next day.


YSFLIGHT Test Version 20170517

Updated the test version.  Sorry, I'm still working on some of the bug reports.  I'll try to get them done in the next update.

Pittsburgh Air Show 2017

It was fantastic that the air show came back to Pittsburgh.  I haven't been able to organize photos though.

The air show had so many performers that something was always flying from 9am all the way to 4pm.  Civilian teams included Sean D. Tucker, Sea Harrier, T-33 etc.  Military participation was large, too.  F-18 demo team, F-22 demo teams, C-130s from the hosting squadron of the 911th airlift wing, and the finale was the Thunderbirds!

Actually I haven't been able to organize photos from the Cleveland Air Show of the last year, either.  The biggest thing in the last Cleveland Air Show was the heritage flight of F-35, F-22, and P-51.  For the first time I saw F-35 flying.

Below are the photos taken in the Cleveland Air Show 2016, and Wings Over Pittsburgh 2017.

F-35 in the Cleveland Air Show 2016

T-33 in the Wings Over Pittsburgh 2017


YSFLIGHT Test Version 20170314
Sorry, Shadow-Map was off in the package I uploaded yesterday.  It is fixed in the new package. 


YSFLIGHT Test Version 20170313
Added Console Server for macOS.  Also maps are now drawn depth-tested.  I believe (hope) elevated maps should be drawn correctly in this version.

1,500 logged landings!
I flew a cross-country to Dayton International (KDAY) yesterday.  When i came back, I did one touch & go, and then full stop.  That gave me 1,500th logged landings.
(Read more)

Compiling Universal Windows Platform + OpenGL ES 2.0 Program with CMake (Updated)
Since CMake 3.8rc1, you can link a .targets file that comes in NuGet package.  This new feature allows you to download a NuGet package of OpenGL ES library and link it with a Universal Windows App all in CMake scripts.  (By the way, I contributed to the CMake project my code to enable this feature.)


(Finally!) I had time to organize photos from 2016 Toledo air show.  I first thought it was going to be a small local air show, but I was wrong.  It was much more fun and bigger than I expected.


Synchronously Getting File Listing in a Directory in Universal Windows App in C++

Universal Windows Platform API very often require asynchronous processing (IAsyncOperation).  At first, I thought it was a failed API design.  Requiring asynchronous processsing for just getting file listing of a local directory is too much.  It's a failed API design, I thought at first.

But, I figured that all I need to do is to run it in a different thread.  Just by getting file listing in a different thread, you can do it synchronously.  If someone is having a same problem, it might be a help.

(Read more)


YSFLIGHT Test Version 20170122 available for download.


Happy New Year!

Fall semester went just as usual.  I have taught this introductory programming course many times by now, and I know what materials to cover and how much time should be used where.  But, last spring-semester course, advanced-level course was difficult.  It was finalized in November, two months before the semester started.  I had very short time to prepare.  What made it more difficult was some contents that I was planning to cover was overlapping with other courses and had to drop them.  I was totally under-prepared.  This time there is no such excuse.  I must spend time and well prepare for the comin semester, but...

I ended up spending looooong time playing a classic RPG called Xanadu and Xanadu Scenario 2 by Falcom.  I have purchased the re-make version based on an official PC-8801SR emulator, two years ago, and the package had been sitting in my bookshelf.  By the way I'm wondering why Falcom does not sell the English-translation of those titles.  They are such a nice games.  If they need a translator, I'll be more than happy to volunteer.  Xanadu was released in 1986 and Xanadu Scenario 2 in 1988.

I ended up with starting these two games to test my program for stitching screenshots together to make a 1:1 scale map of 2D role-playing games.  I was browsing a Japanese Amazon ( late November, when I realized a package called Xanadu Perfect Collection was available.  It was a re-make version of Xanadu series.  It included for the first time a re-make version of Revival Xanadu 2.  Actually, the package was on sale a year ago.  The package was sold for pre-order only.  I knew it too late to place an order.

But, I really wanted it.  I played Xanadu and Xanadu Scenario 2 on my old 8-bit FM77AV when I was a junior-high student.  I was away from the Xanadu series for  long, but after I moved to Pittsburgh.  I imported and played the re-make version called Revival Xanadu.  Then I played the more modern version called Xanadu Next last winter.  So, I have played three Xanadu titlesmade for PC, Scenario 1 (Revival 1 is same as Scenario 1), Scenario 2, and Next.  But, only one made for a PC, Revival Xanadu 2, was only available for PC-9801, and never ported to Windows until this Xanadu Perfect Collection.  It was too late to buy it new.  But, some sellers were selling it at almost twice the original price.  I took it, and asked my co-worker who is visiting Japan this winter to pick it up for me.

I won't receive it early enough to play this winter break, but I'll be able to put my hand on it during the spring break or summer.  When I played Scenarios 1 and 2, I bought the game package and a cheating book together.  I had just followed the book to the ending.  But, if I play a new title (new to me) now, I want to clear without such a guide book.  Playing with a cheating book is just like traveling with a tour guide.  Playing by myself is like exploring an uncharted territory.

If I play without such a cheating information, what is essential is field maps.  I will need to make a map by myself.  Suddenly the idea came to my mind.  It's a classic 2D game.  If I take screenshots, trim, and stitch together, I can make a 1:1 scale map.  Of course, if you do it in a general image editor, it will take infinity.  But, if I write a program, I should be able to do it.

So I did write a program.  I pull out Dragon Slayer Chronicle that I bought two years ago, and started Xanadu Scenario 1 to test my program.  I was playing and enhancing my program simultaneously.  It went very well.  Then I couldn't resist starting Scenario 2.  As a side-effect, I am able to type non-English (UNICODE) characters into a text-box widget of my GUI library.  This will be also available in YSFLIGHT.  (I need to upload a test version!)

I will also release this Retro RPG Map Tool soon. 

By the way, I flew this Friday.  For whatever reason, the runway was not plowed and snow-covered.  It was a bit of real-world soft-field take-off and landing.  Mmy actual PIC (my PIC time without a presence of current CFI) reached 300.  U.S. regulation allows to log PIC time regardless of the presence of an instructor on board after you get a license.  But, Japanese regulation does.  Although my chance of flying as a pilot in Japan is nearly zero, I keep track in my Excel version logbook.  This year, I expect to reach 600 total flying time, and 1500 landings.


[Posts from year 2016]

Please enable JavaScript to display links.

Comments are welcome.  Send E-Mail to: 


This page is link free, but please link to  Please use one of following banners.