|
Not all programs in YSFLIGHT.COM are open source. But, you can download some of the source code from the following URL.
https://github.com/captainys/public
VICTORY TO UKRAINE!
I've long been wondering about this. But after watching recent news, I think I got why.
Unless they quarantine people and force it down to zero, citizens in China will realize that the fake Chinese COVID vaccine that the communists insisted to work does not actually work. Probably people who had Chinese vaccine still have a very high risk from COVID. Chinese vaccine is no better than placebo based on the statistics. We westerners all know this. We are comfortable to go out and get together because we had good real vaccines. Yes, I did have COVID, but had a real minor issue and no long-term effect, most likely thanks to Moderna.
Covering up lies with more lies. Ego in front of people's lives. Communists' business as usual.
I have logged 2000th landing during my flight on 11/14. Of course, there should have been mis-counting, so the real number could be a few more or less, but on the logbook, it is 2000. Cleared one milestone.
I have released the source code of YS Flight Simulator here: https://github.com/captainys/YSFLIGHT
I don't believe open-source is the solution of everything. I have seen some open-source project that collapsed after contributors randomly added dependencies on hundreds of libraries. Open-source program is future-proof is a myth.
Nonetheless, my hands are pretty much full and haven't been able to work on YSFLIGHT for the past a few years. I suppose making the source code open is the best for the YSFLIGHT community, especially long-time YSFLIGHT pilots. Well, I wanted to clean the code a little more before releasing. The oldest code traces back to early 1990s. My programming style changed. I also had a distrust on C++ Standard Template Library earlier. But, it is what it is.
YSFLIGHT fullfilled two of my lifetime goals (1) writing my own flight simulator, and (2) writing a program that is used all over the world by hundreds of thousands of users. I always enjoy reading emails from YSFLIGHT users. I'll get back to YSFLIGHT development when other projects wind down, but for the meantime, please feel free to fork it and make your own version!
Finally! PCB, parts, etc. arrived. The last time, prototype SRAM card had only one surface mount, PCMCIA connector. But, I wanted to put this prototype inside the memory-card slot. So, everything was surface mount. Very small resistors, capacitors, and ICs, all I had to solder surface mount. Much more difficult than the last SRAM card prototype.
I am not that old to have hands constantly shaking, but the problem was my eyes. My far vision didn't change since I was like 10 years old. I have no problem see far-flying airplanes. But, near-vision is getting difficult. My eye doctor gives reading glasses, but I didn't feel it was too helpful. So, this time, I used a pinhole glasses. You can google for one. It is a black plastic glass with small holes. The mechanism is same as a pinhole camera, or a camera with high F-stop. By reducing the aperture, you can gain focus depth in return. But, I was skeptical until I really wore it. My friend gave one to me because he didn't need it any more. I tried it on, and I was amazed. Isn't it better than reading glasses?
So I tried surface mount with this pinhole glasses.
New version of FM-7/77 RS232C serial expansion card, succeeded in configuraing COM1 or COM2 with jumper pins. You can find KiCAD Schematic and PCBs here (githug).
Earlier RS232C serial expansion card could not be used with FM77AV40 and newer models because I/O addresses collided with on-board RS232C. It probably worked if you kept the on-board RS232C off, but it can accidentally be turned on, then you never knew what was going to happen. But, the on-board RS232C could be only up to 19200bps. The expansion card could communicate at 38400bps, double the speed. The new version can be configured to COM1, which uses different I/O addresses, therefore it should work with FM77AV40 and newer models. (To be confirmed soon.)
The major advantage of BIOS Redirection to RS232C is it can be installed with just 4 lines of F-BASIC program, although it is not the fastest way of running FM-7/77 without actual floppy disk drive or tape drive. Actually, FM77AV40SX did not have the audio-cassette interface and therefore could not run tape-based programs. But, with this redirector, AV40SX can run tape-based games.
This new version RS232C card allows AV40 and newer models to use 38400bps transmission. It loads tape-based games at blazing fast (faster than tape), or somewhat usable as a virtual disk drive.
To support the new RS232C card, I have updated FM-7 Series Resurrection utilties, too. Disk BIOS Redirector, Tape BIOS Redirector, Disk Image Transmitter (RAWREAD) identifies COM0/COM1 automatically. If the computer has both COM0 and COM1, it uses COM1.
Problem Solved!
An easy solution: Copy C:\Windows\System32\C_1252.NLS to C:\Windows\SYSWOW64. You need to do it from Admin Command Prompt, or you won't have access right. With this fix, my CMake-generated projects do not always re-link executables.
I got a very useful comment from Japanese FM TOWNS BBS. I asked if someone else having the same problem. One person suggested it may be because CMake.exe was 32-bit binary then it won't access C:\Windows\System32. It was not CMake being 32-bit binary, I made sure I was using 64-bit CMake, but it was most likely msbuild.exe being 32-bit binary. Msbuild.exe tried to find C:\Windows\System32\C_1252.NLS, but since it was a 32-bit binary, it was redirected to C:\Windows\SYSWOW64\C_1252.NLS, which didn't exist.
I looked further into the log of msbuild.exe to see how it generates dependencies. It was using a program called Tracker.exe. Tracker.exe calls Link.exe, and make a list of files that Link.exe reads and writes. Msbuild.exe identifies all the files read by Link.exe as input, and written files as output. I was using English-version Windows with Japanese as the system locale. In this configuration, Link.exe for some reason tries to read from C:\Windows\System32\C_1252.NLS. I doubt if Link.exe was able to read from this file since I believe Link.exe is also a 32-bit binary. But, Tracker.exe detects it. It must be at least trying to open this file.
During the next build, msbuild.exe thinks all linker output files depends on C_1252.NLS based on the previous output from tracker.exe. It looks for C_1252.NLS in C:\Windows\System32, but due to its binary bitness, it was redirected to C:\Windows\SYSWOW64, where C_1252.NLS doesn't exist. Therefore, it doesn't find it. Logically, if a necessary file is missing, it should stop with error. But, somehow msbuild.exe thinks it needs to re-link.
Simplest solution is let msbuild.exe find this file. Just copying C_1252.NLS file from C:\Windows\System32 to C:\Windows\SYSWOW64 does it. I wouldn't notice this solution unless I got a very good hint from Japanese FM TOWNS BBS.
So, I am able to build Tsugaru, YSFLIGHT, and my work-related projects with no stress. Why the build got slower is, I am suspecting because I installed vcpkg and the linker needs to look for libraries from more locations. But, since I can build fast again, I leave this issue for the time being.
cmake_minimum_required(VERSION 3.12) project(project) add_executable(main main.cpp)
CMakeLists.txt
int main(void) { return 0; }
main.cpp
I have confirmed that if I build from the command, Visual Studio generator always re-links the executable. It is not my CMake scripts. It is CMake problem. Now I need to wait veeeeeeeeeeeeeery long time to build Tsugaru, YSFLIGHT, and my research code. And, there is no fix.
The log from msbuild is:
Read Tracking Logs: main.dir\Debug\main.tlog\link.read.1.tlog Outputs for C:\TMP\CMAKEBUGGED\BUILD\MAIN.DIR\DEBUG\MAIN.OBJ: C:\TMP\CMAKEBUGGED\BUILD\DEBUG\MAIN.EXE C:\TMP\CMAKEBUGGED\BUILD\DEBUG\MAIN.ILK C:\TMP\CMAKEBUGGED\BUILD\DEBUG\MAIN.PDB C:\WINDOWS\SYSTEM32\C_1252.NLS does not exist; source compilation required. Inputs for C:\TMP\CMAKEBUGGED\BUILD\MAIN.DIR\DEBUG\MAIN.OBJ: C:\WINDOWS\SYSTEM32\C_1252.NLS C:\PROGRAM FILES (X86)\WINDOWS KITS\10\LIB\10.0.18362.0\UM\X64\KERNEL32.LIB C:\PROGRAM FILES (X86)\WINDOWS KITS\10\LIB\10.0.18362.0\UM\X64\USER32.LIB C:\PROGRAM FILES (X86)\WINDOWS KITS\10\LIB\10.0.18362.0\UM\X64\GDI32.LIB C:\PROGRAM FILES (X86)\WINDOWS KITS\10\LIB\10.0.18362.0\UM\X64\WINSPOOL.LIB C:\PROGRAM FILES (X86)\WINDOWS KITS\10\LIB\10.0.18362.0\UM\X64\SHELL32.LIB C:\PROGRAM FILES (X86)\WINDOWS KITS\10\LIB\10.0.18362.0\UM\X64\OLE32.LIB C:\PROGRAM FILES (X86)\WINDOWS KITS\10\LIB\10.0.18362.0\UM\X64\OLEAUT32.LIB C:\PROGRAM FILES (X86)\WINDOWS KITS\10\LIB\10.0.18362.0\UM\X64\UUID.LIB C:\PROGRAM FILES (X86)\WINDOWS KITS\10\LIB\10.0.18362.0\UM\X64\COMDLG32.LIB C:\PROGRAM FILES (X86)\WINDOWS KITS\10\LIB\10.0.18362.0\UM\X64\ADVAPI32.LIB C:\TMP\CMAKEBUGGED\BUILD\MAIN.DIR\DEBUG\MAIN.OBJ C:\WINDOWS\SYSTEM32\TZRES.DLL C:\WINDOWS\GLOBALIZATION\SORTING\SORTDEFAULT.NLS C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2019\COMMUNITY\VC\TOOLS\MSVC\14.28.29333\LIB\X64\MSVCRTD.LIB C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2019\COMMUNITY\VC\TOOLS\MSVC\14.28.29333\LIB\X64\OLDNAMES.LIB C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2019\COMMUNITY\VC\TOOLS\MSVC\14.28.29333\LIB\X64\VCRUNTIMED.LIB C:\PROGRAM FILES (X86)\WINDOWS KITS\10\LIB\10.0.18362.0\UCRT\X64\UCRTD.LIB Source compilation required: input is newer than output . Environment Variables passed to tool: TRACKER_CONSOLEPAGE=65001 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\bin\HostX64\x64\link.exe /ERRORREPORT:QUEUE /OUT:"C:\tmp\cmakebugged\build\Debug\main.exe" /INCREMENTAL /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"C:/tmp/cmakebugged/build/Debug/main.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:/tmp/cmakebugged/build/Debug/main.lib" /MACHINE:X64 /machine:x64 main.dir\Debug\main.obj
It says "Source compilation required: input is newer than output ." The problem is all input files are older than output files. One weird line is "C:\WINDOWS\SYSTEM32\C_1252.NLS does not exist; source compilation required." But this file exists. If it doesn't, I can make a dummy file and try again, but I cannot make this file exist on top of already existing file.
I thought I might have destroyed some setting. I tried this minimum project on my laptop, and the result was the same. Something was broken globally. I am suspecting other people may be experiencing the same problem. I haven't updated Visual Studio (unless it was automatically done.) I haven't installed a newer version CMake. It's like a bad call to the customer support: "Hey, my computer broke even though I didn't do anything."
I searched for keywords and file names, and found nothing useful. The solution I found on Stackoverflow didn't apply.
Strangely, if I compile from Visual Studio IDE, I don't get the problem. But, I cannot build from my script, so it is useless. Basically Graphical User Interface is useless in general. For the time being, I change generator to NMake Makefiles, but I cannot use --parallel option. I have no solution at this time :-(
If you know how to fix this problem, please let me know.
FM Towns IC Memory Card project in progress. If successful, it could save 1st, 2nd, and 3rd generation FM TOWNS models without any modification to the hardware.
There is not much I can do to help Ukrainian people, but I can support organizations that are helping Ukrainian people. Global Empowerment Missions link was from NBC Today Show, so I guess it is a reliable organization. I've just donated some money, hope it helps people who are facing great difficulty.
https://www.globalempowermentmission.org/mission/ukraine-crisis/To avoid scam, I opened NBC.COM then clicked on TODAY.COM link from NBC.COM, and then copied the link. Unless someone hacked one of these sites, or my browser was hacked. The link must be authentic.
Is Vladimir Putin following the ghost of Soviet Union?
Yeah, yeah. I enjoy watching Olympic games. But, sadly women's ski jump was rigged.
Winter Olympics 2022: ‘Totally crazy!' - Top competitor in tears as DQ chaos ruins ski jump final "Women's ski jumping destroyed": Unlucky German rails against world association after Olympic scandalSearch yourself for more of the information. I post it here just to spread the information. This scandal is reported intensively in the victimized countries, but maybe not in other locations.
Cowardly criminals disguised as the officials disqualified five athletes from four countries. They disqualified top jumpers to deliver victory to whom I don't know. Most likely one of the three on the podium. Tell you what, human body changes size. Even my finger. My fingers just fit my bowling ball one night. When my hand warms up, it expands and becomes very tight. Or, when it is chilly my hand gets cold, it contracts and the hole feels a bit loose. So, this cowardly criminal took advantage of the very cold weather. Somehow they let top ski jumpers wait long enough until their muscle contracted. Then, measured the uniform size after the jump, instead of before. Successfully disqualified them. I want to see anyone who say it can be justified. Some European athletes are claiming the officials (or criminals) measured the size different way from it was used to be done. That something I cannot confirm, but maybe it was so because those cowards wanted to rig the competition.
It came to my attention because one of the top Japanese jumpers was also a victim of this crime against sports. She was targeted because she flew the longest jump. This Olympic games will be remembered as shame. It is less-than-half interesting after this rigged women's ski jump. If it was rigged, how many others are rigged?
I really want to ask those who won by this cowardly act. Are you happy? You just made your own victory worthless. Are you really happy?
By the way, from NBC nightly news. One U.S. skater was tested positive for COVID. He was once told he needed two negative tests. He had it. Then he was told four negative tests required. Someone is thinking to have right to change rules arbitrarily. Olympic of Shame. But, he did get four negative and flying to Beijing. I wish him best of luck! Beat the cowards! Give them a hell!
Someone found my screensaver left in a PC that once was used by Lockheed Martine, and posted on YouTube. So, I excavated source code from my backups and set up build for Windows and FM TOWNS OS.
I made source code available from the following URL:
https://github.com/captainys/FLYBY2
I never expected someone finds my screensaver from a quarter century ago. It was so amazing!
I didn't remember where I released it. But later I found that it was included in a CD-ROM bundled with a book I published back in 1996:
Soji Yamakawa, "3D Screensaver SDK Saber", ASCII, 1996, ISBN4-7561-1403-2
I think only Windows version screensaver was in this CD-ROM. So, I believe it is the first release for FM TOWNS. It requires 486DX or faster (needs FPU), and it needs to be launched from Towns OS V2.1 L31 or newer because the executable is in .EXG format. I have tested on Tsugaru.
Almost useless information. "Genpei Toma Den (源平討魔伝)" by namco ported to Windows 95/98/Me/2000/XP by MediaKite cannot be installed on Windows 10 because the installer refuses to run. However, if you copy DISK_1 directory in the installation CD and double click GENPEI.EXE, you can run on Windows 10. You can enter full-screen mode, and it recognizes the game pad, so it is fully-playable. My skill rusted over 30+ years, and could not finish all the way though.
"Dragon Buster" by namco ported to Windows 95/98 by MediaKite as Super 1500 series, cannot be installed on Windows 10 because the installer refuses to run. However, if you install it on Windows 98 or 95 once, and copy files including sub-directories under "C:/Program Files/ドラゴンバスター", you can run it on Windows 10. The problem is it doesn't support 2X screen nor full-screen nor maximize mode, so you need to use something like Magnifier to make it playable. Also, it looks to be a very high-fidelity port of the arcade version, and it leaves infamous impossible forward jump. Dragon Buster should have been remembered as a masterpiece in the video game history, but it is remembered as a semi-masterpiece only for the one single reason: for whatever reason namco chose to use 4-way lever instead of 8-way lever. If you push the lever up while walking, you expect to jump forward. Instead, you end up jumping straight up. It made the game extremely frustrating. This one single unfortunate mistake was corrected in many of the consumer ports. I have confirmed FM77AV port and PlayStation1 port (namco museum) corrected this issue.
It's already January 19 while I was procrastinating!
Playing Daikoukaijidai (Uncharted Waters) on FM TOWNS Emulator TsugaruIf I think of why do I play retro games, I was not able to buy many games when I was using FM-7 and FM77AV because I was a kid, and I was too busy learning 3D graphics and C programming when I was using FM TOWNS. New games must be much more sophisticated and spectacular than games from 1980s and 1990s. Nonetheless, there were many games that I was interested but I didn't play back then. I feel those are unfinished business before moving on to modern games.
Daikoukaijidai, or Uncharted Waters in English, was one of them. About 30 years ago, my high-school friends were playing it. It looked fun, but I was just watching. Once I graduated high school, I spent most of my time to write my own flight simulator for FM TOWNS. I even didn't notice Uncharted Waters was released for FM TOWNS then. But, I was able to win a copy in Yahoo! Auction. I was looking forward to playing it.
But the problem was time. Once I start, I knew it was going to take time. I kept it on hold until this winter break. Then, finally after 30 years, I played Uncharted Waters on my FM TOWNS Emulator Tsugaru.
The file in the CD-ROM, VER.DAT indicated Ver 1.00 Rel 1.00, date was 1990 10.31. I have encountered at least four bugs during my play. I was able to patch three of them. The other one was not so critical, and I cannot re-produce it again. One of them was critical and if you encounter it you cannot continue and you need to start over from the beginning. The situation will be saved to the data file. Resetting and resuming from the save data does not help. Another one was less critical. It seemed that you could get around by resetting and loading from the previous save data. The rest two were something that should have been caught if someone play tested from the beginning to the end. Therefore, I am suspecting that nobody play-tested FM TOWNS version Uncharted Waters from the beginning to the end before the release. I am still wondering if KOEI released a fixed version later.
Unfortunately there is no Uncharted Waters English translation of FM TOWNS version. So, unless you can read Japanese, there is a language barrier to play FM TOWNS version of Uncharted Waters. But, if you are interested, it is available for Windows, Android, and iOS. It is a great game. I finished FM TOWNS version, but I'm thinking to try Windows version eventually as well.
Comments are welcome. Send E-Mail to: |