What Does It Take To Port 16-Bit Windows 1.0 Applications Into Native Windows 11 Programs?

Sdílet
Vložit
  • čas přidán 10. 07. 2024
  • Windows has been around for 36 years now, and it's changed a lot since it's early days. However, one question I had to wonder is: what does it take to port a legacy Windows 1.0 application to the modern day. After all, computers in 1985 were 16-bit, while modern computers are now 64-bit. For those of us who lived through the 90s, you'll remember that upgrading to then new Windows 95, and NT 4 were very much a big deal.
    My socials:
    Patreon: / ncommander
    Twitter: / fossfirefighter
    Discord: / discord
    Blog: casadevall.pro
    For the sake of my curiosity, I decided to find out. Starting with the example applications from the Windows 1.0 SDK, i started by porting them forward to Windows 3.1 and modifying them to compile under Microsoft Visual C++ 1.52. After ensuring I had working project files, I then ported then to Visual C++ 6 under Windows NT 4. This provided a 32-bit baseline, and let me resolve API issues such as changed to hPrevInstance, and the removal of certain non-Ex variants of functions from 16 to 32 bits.
    This then extended to porting to Server 2005 and Visual Studio 2005, where I did an initial x64 port, and tried to create an Itanium based ported, but failed, due to Microsoft's annoying policies of gating off developer tools behind an absurd paywall.
    After gnashing my heath, we hopped ahead to Windows 11, and Visual Studio 11, where, after importing the project files, we had everything running just fine on 64-bit platforms. This of course encouraged chat to make me take it further. First I ended getting the applications running on WINE, then we hopped into ReactOS, OS/2, and well, we transcended the world of x86 programming entirely, and ended up on NT4 on MIPS, which involved using a special edition of Visual C++ 4 to compile the binaries for the never realized non-x86 world.
    Afterwords, we wrapped itup, and I decided to re-edit this stream into a full fledged video, with the third NCommander in Realtime event.
    #ncommander #retrocomputing #window1 #16bit
  • Věda a technologie

Komentáře • 461

  • @NCommander
    @NCommander  Před 2 lety +170

    The project files for this have been uploaded here: github.com/NCommander/windows-1-apps-to-64-bit

    • @dr.shuppet5452
      @dr.shuppet5452 Před 2 lety +3

      Cool, I'll try porting to Itanium once I get a hard drive replacement.

    • @bennydreamly
      @bennydreamly Před 2 lety +1

      Cool!

    • @tuckster27
      @tuckster27 Před 2 lety +2

      You should try and port a director game to 64 bit. It would be an interesting challenge.

    • @Ufgbja
      @Ufgbja Před 2 lety

      rather rewrite the program then this, it will be easier

    • @pifatech
      @pifatech Před 2 lety

      I was gonna ask that

  • @tubeincompetence
    @tubeincompetence Před 2 lety +1097

    "Have you ever wondered what it takes to convert a 16 bit application from the very first version of Windows, release in 1985, to run as a native 64 bit application in 2021".. well.. I definately never wondered that.. but that won't stop me from enjoying this :)

    • @lenni-builder
      @lenni-builder Před 2 lety +16

      I wondered that some time ago. When I tried the Windows 3.1 file manager on Windows 10 (Microsoft recompiled it.)

    • @savagesarethebest7251
      @savagesarethebest7251 Před 2 lety +5

      Like how every ATM in Sweden seems to run on either OS/2 or NT 3.51.. 🤔

    • @lenni-builder
      @lenni-builder Před 2 lety

      @@savagesarethebest7251 Really?
      I think they mostly run on XP/POSReady 2009 here in Germany.

    • @TremereTT
      @TremereTT Před 2 lety

      Well my employers Programm started as DOS programm(Charakterbased WIMP) and became a Windows 95 Programm (Windows API based) and then an NT4 Programm It's not so difficult...It currently doesn't run below Windows2000 , yet we still have some technical debt ...like Unicode is about to be done...while it is should have been done since 2009....

    • @chasejones8302
      @chasejones8302 Před 2 lety

      It's Autism awareness month

  • @UncleKennysPlace
    @UncleKennysPlace Před 2 lety +189

    I did so much of this crap back in the day, from 16 to 32, that I knew what had to change by heart. I recently ported a 32-bit oldie (originally 16-bit) to 64, and it was painless.
    I'm so happy I retired from coding for a living; it's a much better hobby!

    • @davidtaylor6124
      @davidtaylor6124 Před rokem +4

      As recently as about 2010 I found a 32/64 bit pointer bug in a 3rd party UI library we were using. I reported the bug to the vendor and then because I was the only real email address they had I started getting invoices :-\ Being a very large company it took me months of emailing various people to get someone else to take responsibility for them.

    • @gwentarinokripperinolkjdsf683
      @gwentarinokripperinolkjdsf683 Před 7 dny

      @@davidtaylor6124 Was your company just not paying for it XD

  • @Stoyon
    @Stoyon Před 2 lety +91

    This is interesting, my dad uses a vector drawing program built for Windows 3.1, Macrografx Designer 3.1, to manage the blueprints for his house, he is constantly using it, with his new machine, running Windows 10 64 bit, I noted that MS has dropped support for running 16-bit programs, I had to set up a Win7 32-bit VM and have him run it in that environment, it works good enough for him.
    He has tried to switch to other programs, but this is the only drawing program he has been able to use effectively, and now it is a bit late to change....

    • @raspberry1440kb
      @raspberry1440kb Před 2 lety +17

      See if that application works with OTVDM (be sure to enable virtualization-based hardware accelration since by default it uses the 386 emulation core from MAME)

    • @TheSimoc
      @TheSimoc Před 2 lety +7

      Yeah, software industry simply has not enough professionality anymore to make early as good quality software as back then. I refuse to even install Windows 10, but good that you are finding a way to run old good quality software on it.

    • @themightiness
      @themightiness Před 2 lety +8

      That's really funny, my dad used to use a billing program for his medical practice that only worked with Windows XP back when I built him a new Windows 8 PC for his office. I ended up using a winXP VM for him and it worked really well for him while he needed that solution still.

    • @lawrencedoliveiro9104
      @lawrencedoliveiro9104 Před 2 lety +1

      Or you could try running it on a modern system under WINE.

  • @ruler255
    @ruler255 Před 2 lety +66

    If you replace “Windows” with “Interface Manager” in “Windows 11”, it becomes “Interface Manager 11” Which ironically has a nice ring to it

  • @sl-mb4rb
    @sl-mb4rb Před 2 lety +82

    I believe this is why Cardfile had custom assembler disk DOS routines: "createbitmap may have caused disk swap, make user reinsert disk" -- it relied on the functionality to simulate a two-floppy system on a single-floppy system. Cardfile was not written to read the entire file into memory because it ran in real mode and each card could have a bitmap up to 64k in size. You could have replaced with stdio C calls easily.

    • @NCommander
      @NCommander  Před 2 lety +19

      Good catch. There's actually a few other places where it uses assembly for some string manipulation functions. It would be straightforward to rip the ASM for C code, but it would still probably be 1-2 hours of fiddling.

    • @johndododoe1411
      @johndododoe1411 Před rokem +2

      ​@@NCommanderIf you search deep enough on old SDK and DDK discs you are likely to find the last version of MASM to support 16 bit x86 assembly . Many MS DDKs over the past 23 years included the exact compilers used for building the OS itself .

    • @0xbenedikt
      @0xbenedikt Před rokem

      @@NCommander We need that cardfile port! I'd certainly love to watch another video.

  • @AnonymousFreakYT
    @AnonymousFreakYT Před 2 lety +531

    It's too bad Microsoft doesn't have a "fat binary" (or "universal binary") system like Apple to allow one executable to run on multiple architectures. It would be fun to have one .exe that runs natively on 16-bit Intel, 32-bit Intel, PowerPC, Alpha, MIPS, 64-bit Intel, 64-bit Itanium, etc.

    • @NCommander
      @NCommander  Před 2 lety +216

      I've always been surprised they *didn't* do that for Portable Executable; they were very clearly planning multiple ports from day 1.

    • @etopowertwon
      @etopowertwon Před 2 lety +67

      @@NCommander PE have MS-DOS stub which is a valid dos application. So at least you can do is to have application that works in both Windows and DOS. And I definitely remember seeing such apps in the wild.

    • @greggv8
      @greggv8 Před 2 lety +16

      @@etopowertwon IIRC those were limited to text only ones that could run in DOS as DOS apps but when launched within Windows were Windows apps despite looking like a DOS text app in a window. Probably have seen some running on point of sale systems during the years when POS was transitioning from DOS to Windows. If the cashier user software could be written and compiled once to run on both older DOS POS systems and newer Windows POS systems, it would reduce support headaches by having a single code base. That would also help with customer retention by supporting older hardware until the demands of retail stores outstripped the capabilities of older POS systems.

    • @KookoCraft
      @KookoCraft Před 2 lety +12

      wouldnt that increase binary size

    • @samljer
      @samljer Před 2 lety +34

      @@KookoCraft to an amount that is absurd for the .001% that wants it or would be affected by it.
      Microsoft did it right by supporting it OS side...
      the problem is they dropped that support. because again... .001%
      better to inflate the os 100mb, then every executable by 10mb.

  • @AnonymousFreakYT
    @AnonymousFreakYT Před 2 lety +75

    18:50 - The 16-bit Intel compatibility is how I run a web browser on my PowerPC NT 4.0 system. The latest version of IE for PowerPC was 3.x, which is terrible. IE5 was available for Windows 3.1 16-bit, and it runs just fine on NT 4.0 PowerPC.

    • @null8507
      @null8507 Před 2 lety +2

      Linux is the answer

    • @subg9165
      @subg9165 Před 2 lety +9

      @@null8507 it may be an answer, but it's a boring one

    • @subg9165
      @subg9165 Před 2 lety +3

      @@AgeofReason well, ubuntu is bloated, and windows 8.1 is just a weird hybrid child of 7 and 10. arch can probably be decent if you manage to get everything set up completely perfect, and i'd say debian is an alright distro. but in this case, i was referring more to the usage of a less-commonly-used built of windows nt 4.0

  • @homemadejesus
    @homemadejesus Před 2 lety +87

    This in combination with the recent GTA debacle means that when I hear a company say we can't make systems backwards compatible they either don't currently have staff with the knowledge/ don't want to hire one, or it means that someone will actually have to put in the effort.
    And before you say well they lose money to the resellers....
    They have the money to start their own used stores

    • @Alucard-gt1zf
      @Alucard-gt1zf Před 2 lety +13

      Microsoft is very good with backwards compatibility
      They just don't want to waste the hours so 2 people are able to use this

    • @kidsarebadcheckmychannel949
      @kidsarebadcheckmychannel949 Před 2 lety +6

      with modern programs, many dynamic and static libraries would also need to be fixed as well, also the microsoft win32 api is extremely different now and many guis are also built with things like wxwidgets, and c++ standards are slightly different as well

    • @Maric18
      @Maric18 Před 2 lety +6

      its not that it cannot be done technically, it cannot be done profitably
      i havent watched the whole video yet, but if its 8 hours for a hello world, it would probably be thousands of hours for a game sized project
      lets assume its a rather optimistic 5000 hours and the cost of development is 50 bucks per hour
      thats at least 50k in expenditures for barely any gain

    • @Flashcardsinfo
      @Flashcardsinfo Před 2 lety +3

      There are re3 and re3-vc to run GTA 3 and Vice City on modern systems. Of course it's possible.

    • @SimonBuchanNz
      @SimonBuchanNz Před 2 lety +3

      That's game consoles, where, historically, the software is directly driving the hardware and each version of the hardware is commonly not even the same CPU instruction set, let alone memory model, graphical features, etc.
      Microsoft did the work and had a team working for years on getting old games running correctly on new systems at no additional cost to the user, while Sony and Nintendo instead required the developer to do the work to create (and sell) the port. The latter certainly makes more sense to investors, so I can hardly fault them for that, especially when it was never an expected feature before Microsoft.

  • @deepdivedylan
    @deepdivedylan Před 2 lety +14

    Great recap. I always love your videos! Maybe one of these days, the scheduling planets will align so I can attend a live stream for reals. Good job, man! 😺

  • @trwijbenga
    @trwijbenga Před 2 lety +5

    This video was in my recommendations and actually I've wondered before why it's not so easy to run older programs on newer OS'es. I lack the skills to find this out myself, so I like you investigating the problem.
    I also like your approach, you just start and patiently tackle every hurdle that you come across. On top of that, you have a great relaxing voice to listen to and do a great job explaining.
    Although this is not my main area of interest, this is real quality content. Keep it up man.

  • @paullee107
    @paullee107 Před 2 lety +1

    Earned another sub - great content, I look forward to watching you do all the geeky things. Woohoo!!

  • @KurtWoloch
    @KurtWoloch Před 2 lety +19

    This reminds me of a utility I needed which was available on the Internet only as a C source file. On double-clicking the source file, it opened in Visual C++ 6.0 (which I had installed on my XP PC), and it compiled and ran just fine after changing just one line. After the fact I realized that the source file was actually written on and for the Amiga. It still ran happily on Windows XP. However, it was a command line application with no GUI which, as far as I remember, only served to convert one file format to another.

    • @SimonBuchanNz
      @SimonBuchanNz Před 2 lety +11

      Well it's called the standard library for a reason 😉

    • @davidtaylor6124
      @davidtaylor6124 Před rokem

      @@SimonBuchanNz Even so, that's definitely a win!

    • @SimonBuchanNz
      @SimonBuchanNz Před rokem +1

      @@davidtaylor6124 yeah, though I have mixed feelings about the small size of the standard C library, it's certainly been very effective over the decades. Security issues (strcpy, scanf, etc) aside.

  • @whenindoubt_c4
    @whenindoubt_c4 Před 2 lety +51

    Great job on the video, it was interesting following the live stream and like a champ you made it through and complied it for so many OS. Definitely look forward to seeing you port more Ancient Windows applications to modern or specialized platforms. MIPS definitely doesn't look like fun.

  • @skeilnet
    @skeilnet Před 2 lety

    Love the attention to details. Great video.

  • @NomadicDmitry
    @NomadicDmitry Před rokem

    What a great content! Thank you. So much enthusiasm right here.
    Very interesting.

  • @tassaron
    @tassaron Před 2 lety +1

    I really appreciate that you edited the livestream into its own video instead of just cutting it up into a montage

  • @andycristea
    @andycristea Před 2 lety

    Very interesting and unique videos! Great channel!

  • @asadava
    @asadava Před 2 lety +4

    The commitment amazes me. This should be more popular.

  • @JanusDuo
    @JanusDuo Před 2 lety

    Amazing! You've earned my sub sir. Can't wait for a sequel!

  • @afrenchcocorico164
    @afrenchcocorico164 Před 2 lety

    A second part would be cool ! Great video

  • @davidtaylor6124
    @davidtaylor6124 Před rokem

    Well done, that was an interesting watch :) You seem to have a great deal old software on original media!

  • @NaoPb
    @NaoPb Před 2 lety

    Thanks for the compilation video. Good job on porting to all those systems. I hope one day my skills will have evolved in a way like that.

    • @SIG7Pro
      @SIG7Pro Před 2 lety +1

      With practice, you can do cool stuff

    • @SolidSonicTH
      @SolidSonicTH Před 2 lety

      Sounds like MS isn't making it easy by striking knowledge articles as the years roll by.

  • @silviocesarsilvaoliveira
    @silviocesarsilvaoliveira Před 2 lety +1

    Fantastic video!!! 👏👏👏👏

  • @Comm0ut
    @Comm0ut Před 8 měsíci

    Virtual machines are huge fun and hugely educational. Thanks for your work. Subscribed!

  • @SusanAmberBruce
    @SusanAmberBruce Před 2 lety

    I think it's very cool what you have done here, I don't understand that well some of the technicalities but I appreciate the concept.

  • @randykitchleburger2780

    Crazy dedication. Nice job

  • @jdatlas4668
    @jdatlas4668 Před 2 lety

    Oooh, is this the summary of the livestream I peeked into recently? Didn’t have the time then, but it sure seemed exciting.

  • @fredskronk
    @fredskronk Před 2 lety +59

    Although Win 11 for ARM can run x64 just fine; wouldn’t it be fun to get a native arm64 build? :)

    • @iDontProgramInCpp
      @iDontProgramInCpp Před 2 lety +3

      I wonder how it performs. Can you run games for x86-64 well on ARM?

    • @someguy4915
      @someguy4915 Před 2 lety +2

      @@iDontProgramInCpp Nope, either missing DX API or just lack or performance in general.

    • @leolucas4922
      @leolucas4922 Před 2 lety +1

      @@iDontProgramInCpp yes, some games do run very well.

  • @TheMAZZTer
    @TheMAZZTer Před 2 lety +13

    There is one more step I can see you could go, which is to have the XP+ versions opt-in to themed controls (that always bugs me about older apps that never got updated to do so).

    • @NCommander
      @NCommander  Před 2 lety +8

      I didn't actually think about that, but yeah, I could have done that.

  • @lordrayven2086
    @lordrayven2086 Před 2 lety +3

    It's pretty crazy what you put through in this project. I'm very glad that somebody really did it, because i'm tired that windows come with a lot of crap that we don't use. If i had to buy an windows it will be you're windows project :)

  • @GeoNeilUK
    @GeoNeilUK Před 4 měsíci +1

    This does kind of make me wish that Olivetti had capitalised on the Archimedes to make them ARM-based Unix workstations. I can imagine it now.
    "Windows on ARM goes way back further than you'd imagine, with Windows NT4 being released for ARM for the Olivetti Phoebe workstations. Libraries released by Acorn and Olivetti and now hosted by ARM made compiling these 16 bit X86 applications for 64 bit ARM way easier than I thought it would be!"

  • @stathissim
    @stathissim Před 2 lety +7

    This video is really a job application for a senior software engineer

    • @NCommander
      @NCommander  Před 2 lety +7

      You know, I've spent the last five minutes trying to if you called me old in the most subtle way possible. Bravo :)

    • @stathissim
      @stathissim Před 2 lety +1

      @@NCommander thank you for the great video

  • @georgecooke9010
    @georgecooke9010 Před 3 měsíci +1

    DUDE, YOU'RE A GENIUS!

  • @whiterose7055
    @whiterose7055 Před 2 lety

    Kudos Sir, you have my sincere respect!

  • @marsilies
    @marsilies Před 2 lety +35

    Thanks for this condensed recap. I watched some of the live stream, but 8 hours was too much for me. This was much more accessible.
    For porting WineMine, Could you use the bitmap files from the version meant to run under Wine, instead of the Windows 1.x port?

    • @NCommander
      @NCommander  Před 2 lety +12

      I actually considered doing that, but I couldn't find the original Winemine source code when I looked for it. It's appartantly no longer part of WINE, and I was like "yeah, I don't want this to be me googling for 30 minutes"

    • @marsilies
      @marsilies Před 2 lety +6

      @@NCommander I found a project called "Adapted WinMine Source for Teaching Win32 API Programming". The source file includes bmp and ico files. Maybe a follow-up video could include it? Also, from what I could find, the issue with the bitmaps seems to be Windows 1.x/2.x doesn't support DIB bitmaps, so the bitmap formats are different between 1.x/2.x and later versions of Windows.

    • @2xsaiko
      @2xsaiko Před 5 dny

      @@NCommander It still is part of WINE. It's in the programs/winemine folder in the source tree.

  • @dirtydemon9723
    @dirtydemon9723 Před 2 lety

    Love your channel +1 sub

  • @adancalderon8915
    @adancalderon8915 Před 2 lety

    very cool work

  • @z3my4l
    @z3my4l Před 2 lety

    You paid so much effort that I just had to subscibe.

  • @piecaruso97
    @piecaruso97 Před 2 lety +11

    You should get that ex Microsoft engineer that has a CZcams channel to help you with this stuff, he used to develop with windows on risc platforms so he is the right guy for the job.

  • @mkulak0
    @mkulak0 Před 2 lety +2

    Omg, you're awesome but live chat was sadistic :D

  • @HarhaMedia
    @HarhaMedia Před 2 lety +17

    Very interesting. And that's quite productive for "just" 8 hours I think!

  • @vincei4252
    @vincei4252 Před 2 lety +3

    I have a Itanium I HPi2000 server that I bough new some time in the very early 2000's. To this day it is still the most expensive computer I'd ever spent my own money on. Last time I powered it up (10 years ago?) it would boot into NT but shut off after about 10-15 minutes. Most probably an issue in the power supply that may be easy to fix.

    • @NCommander
      @NCommander  Před 2 lety +5

      That sounds like thermal overheat production kicking in. You should be getting a BMC log information about it. If the plastic guides in the case aren't properly installed, it gets very toasty, and then shuts down.

  • @somedude5414
    @somedude5414 Před 2 lety

    Kudos on the well balanced background music.

  • @bettyswunghole3310
    @bettyswunghole3310 Před 2 lety +2

    I understood about 10% of this video...which I'm actually quite pleased about!

  • @blai5e730
    @blai5e730 Před 2 lety +1

    Late to the party, informative! I had a range of in-house 16-bit monitoring applications I'd developed in Delphi and ported them to 32-bit back in the day. Although Borland had done a fantastic job of allowing you to port existing applications, I'd made extensive use of functions directly calling the Windows subsystem. Suffice to say, it was still a chore to successfully recompile and I also ran into you problem of functions that didn't exist (or were renamed, took different size parameters etc.).
    One of my _"just for fun"_ projects I made was a Delphi custom control for the Task Dialog (introduced in Windows Vista) for Delphi 7. Besides supporting the underlying native dialog, I built a complete emulation of the dialog for earlier Windows OS's (well, Windows 2000 & XP) that necessitated coding *more* custom controls. Yeah, you could say I got rather carried away.

  • @hedw1gP
    @hedw1gP Před 2 lety +1

    Loving the classic music backgrounds.

  • @le9038
    @le9038 Před 2 lety +2

    ok, that. was. beautiful!

  • @p2p104
    @p2p104 Před 2 lety

    Wow. Big respect!

  • @TheBypasser
    @TheBypasser Před 2 lety +2

    Pretty smooth it went I'd say! The only thing I don't really like is modifying things for a higher WinAPI version, this can be a source of typos and bugs. Instead I'd go with a wrapper-header approach, say instead of replacing MoveTo() with MoveToEx() everywhere I'd just write an inline MoveTo() calling MoveToEx() itself (won't really work in some other cases though).

  • @GeorgeValkov
    @GeorgeValkov Před 2 lety +11

    Windows 2003 supports Visual Studio 2010. I also wrote a tool for converting projects between 2010 2015 2017 2019.

    • @BJNFNE
      @BJNFNE Před měsícem +1

      can you may send me the Link to the Tool?

    • @GeorgeValkov
      @GeorgeValkov Před měsícem

      @@BJNFNE search vs-convert httpstorm

    • @GeorgeValkov
      @GeorgeValkov Před měsícem

      @@BJNFNE even the hints get filtered here

  • @quackduckface
    @quackduckface Před 2 lety

    Fonally a video about this, ive actually been wondering what it would take

  • @DrewTNaylor
    @DrewTNaylor Před 2 lety +6

    Seeing what the task of porting an app to the newest version of Windows from the oldest version was rather interesting. I do wonder if "every released version of Windows" mentioned at the end includes the mobile/phone versions. That'd be interesting.

    • @johndododoe1411
      @johndododoe1411 Před rokem

      Yeah, the CE family of Win32 program file formats are fun to work with, but the debugging tools are sorely lagging . Windows Phony 7 (based on Zune) was a disaster of uselessness. Windows Phone 8 was a version of Desktop Windows artificially locked to running a useless subset of code that would be distributed through Microsoft's app store.

    • @DrewTNaylor
      @DrewTNaylor Před rokem

      @@johndododoe1411 Windows Phone 8 was basically just the NT kernel as far as desktop components go. 10 was more like a locked-down version, particularly with how limited Continuum was.

  • @billy65bob
    @billy65bob Před 2 lety +2

    It might be cool if you could write something for LLVM, wherein it takes the original executable, and outputs a converted appropriate binary for your target platform.
    I know a few people have tried to do do some 16-bit emulators like this, but ran into issues.
    namely that the game was writing code into memory and expected to be able to branch to it and run it.

  • @jp46614
    @jp46614 Před rokem +9

    You're not finished you didn't do the minesweeper one.

  • @douglasrogers4675
    @douglasrogers4675 Před 2 lety +8

    I wonder if you could port it to windows RT? I also think that messing with Metro/UWP in general might be fun.

  • @sk.sourov
    @sk.sourov Před 2 lety

    You are a hardcore programmer! Awesome!

  • @Th_RealDirtyDan
    @Th_RealDirtyDan Před 2 lety

    Awesome video! On a barely related subject, what music did you use in the video? I know I've heard these all somewhere 😅

    • @NCommander
      @NCommander  Před 2 lety

      Epidemic Sound ... I *usually* include a list of tracks I used, but it seems I failed this time. I'll edit them in when I get a chance.

  • @01001000010101000100
    @01001000010101000100 Před 2 lety +4

    You don't have to DRAW assets when you just missing a converter. Just copy them from screenshots. I once had a problem with designing a simple Windows UI. I compared my app to a one built in Windows. I forgot which one now. My app looked dull because no icons. So I took the simplest path - I made a screenshots of the native app, moved the icons to GIMP, set transparency with color to alpha tool and bang, my app looked exactly like the native one without a single pixel drawn by hand. As for the timing - if whole process took you about 8 hours, this would probably take you no more than 30 minutes, downloading and installing GIMP included ;) Yes, I like GIMP ;) And I can't draw at all, I just use GIMP to build icons from images.

  • @morsikpl
    @morsikpl Před 2 lety +1

    The only thing I would like to see here additionally is updated GUI to match those versions of Windows you're running those apps on ;)
    Would be cool to see correct GUI elements (size, fonts, etc.) in NT and 11!

  • @manashejmadi
    @manashejmadi Před 2 lety

    amazing!

  • @Fox_Mulder350
    @Fox_Mulder350 Před 2 lety

    That was pretty cool

  • @whamer100
    @whamer100 Před 2 lety

    that livestream was fun

  • @sigourneyhacks
    @sigourneyhacks Před 2 lety

    This is a massive achievement. Hats off!

  • @MykolaTheVaultDweller

    Where did you find old visual studio 2005? Because it is hard nowadays to find older visual studios

  • @punboleh7081
    @punboleh7081 Před rokem +2

    Adding OS/2 to the mix was a nice touch. :)
    To try more processor architectures, Workplace OS could run 16bit Windows on PowerPC. Assuming you can get your hand on both a PowerPC and one of the few pre-releases of Workplace OS.
    And I'd love to see the OS/2 port, of course. One of my few regrets about my otherwise not too excessively wasted youth was that I didn't learn OS/2 programming back then.

    • @johndododoe1411
      @johndododoe1411 Před rokem +1

      Pro tip: Get an MSDN documentation CD from before 1999 and use the included guide for porting OS/2 programs to Windows, only in reverse. Also remember that GDI was called GPI (even in Windows XP internals).

    • @punboleh7081
      @punboleh7081 Před rokem

      @@johndododoe1411 Oh, that's a good idea. Thanks :) I was looking for information comparing the APIs, but I hadn't thought of looking at Microsoft's porting guides.

  • @laurdy
    @laurdy Před 2 lety +7

    I actually disassembled a (very) simple windows 1.0 program, converted it to C and recompiled it to 32 bits

    • @BJNFNE
      @BJNFNE Před měsícem

      Which program you ported to 32 bit?

    • @laurdy
      @laurdy Před 25 dny

      @@BJNFNE Clock, unfortunatly I've since lost it in a disk crash

  • @jordansean18
    @jordansean18 Před 2 lety +1

    My office has some applications that have been running on windows ME or XP for 20ish years now, and this video has renewed my confidence that we CAN make those apps run on windows 11!

    • @NCommander
      @NCommander  Před 2 lety +4

      If you've got the source code and if they're in a non-properitary programming language, its entirely doable. Best of luck!

    • @jordansean18
      @jordansean18 Před 2 lety

      @@NCommander in this case I think it's a matter of certain protocols available in older operating systems, but I'm confident I can find a way to accommodate them

  • @inachu
    @inachu Před 2 lety +4

    Love videos on when new tech meets low tech. There used to be a program that was shareware back in the 90's that after installed
    It could take any of your programs and optimize them to run better with less memory leaks. Sadly they were sent a stop desist legal notice that they
    are voiding copyright law. lol so sad. great concept though.

  • @jayturner5242
    @jayturner5242 Před 2 lety +1

    Can you do a set of ports where you update the UI elements to use the latest and greatest for each time period? (XP template uses XP style elements etc)

  • @drd2093
    @drd2093 Před 2 lety

    I spent months for a company doing this for an industrial controller application. It was made of multiple modules that cooperatively multitasked and shared pointers over DDE. Had to reimplement 16-bit memory model and work around a lot of limitations. Good project though

  • @strule
    @strule Před 2 lety

    awesome stream

  • @johnrickard8512
    @johnrickard8512 Před rokem

    Would it not be possible to switch to a fixed width truetype font?

  • @ALurkingGrue
    @ALurkingGrue Před 2 lety

    Back in the 90s I ran a render farm on Windows NT on Dec Alphas.... Oh man was that all the pain.

  • @JanWestin
    @JanWestin Před 2 lety

    Bravo!

  • @MuffinHop
    @MuffinHop Před 2 lety

    Cool project.

  • @thecomputergeek101old

    I have a windows 98 program made in Macromedia director, can you help me convert it to C++ or something like that?

  • @synthesoul
    @synthesoul Před 2 lety +2

    This actually serves as a good template for programming your own applications.

  • @Daniel15au
    @Daniel15au Před 2 lety +3

    Did you try running the executables as-is on Windows 10 32-bit? I seem to remember that someone got them working somehow.

    • @NCommander
      @NCommander  Před 2 lety +2

      Yeah, I did the original video on getting them working as it ;) (first retrotech video on this channel)

  • @softwave1662
    @softwave1662 Před rokem

    Honestly that this can be done at all is amazing to me.

  • @Spongman
    @Spongman Před 2 lety +2

    What?! You didn't cross compile to the mac using Visual C++ 4.0 for Macintosh?

  • @Gui2226
    @Gui2226 Před rokem

    i can never feel bored on the classic window interface on windows

  • @muvidz
    @muvidz Před 2 lety

    very cool

  • @MarkHyde
    @MarkHyde Před 2 lety

    This is just amazing - This summary video highlights reel is too much fun - even if YOU didn't have much of it making it. lol The vagaries of inter-generational backwards and cross platform support is interesting.

    • @NCommander
      @NCommander  Před 2 lety

      Actually about a third is new footage, and the remainder is heavily edited.

  • @helloitismetomato
    @helloitismetomato Před 2 lety

    I'm gonna make an application for Windows 1.0 now. I used to run that as a kid (on a beautiful monochrome CGA screen) on our 8086.

  • @Mario583a
    @Mario583a Před 2 lety

    NCommander: 16-bit is one helluva code drug.

    • @NCommander
      @NCommander  Před 2 lety

      It all a matter of segments until someone shoots their eye out.

  • @Lugamo94
    @Lugamo94 Před 2 lety +5

    Out of curiousity, have you considered doing the same for ancient Linux and Mac OS software?

    • @ssl3546
      @ssl3546 Před 10 měsíci

      Lol Linux requires no changes, you can literally bring a statically compiled executable from the earliest version to today and it will run fine. Linus has committed to never breaking userspace. Generally tools to build software are backward compatible as well.

    • @Algeriawindows69
      @Algeriawindows69 Před 2 měsíci

      xclock from the 80's still runs perfectly fine in modern day x11 (maybe xwayland too but haven't tried)

  • @piecaruso97
    @piecaruso97 Před 2 lety +5

    Now try to do that with an application from the very first next step os up to the latest macOS release, it’s surprising how a lot of the core api hasn’t really changed that much, and I know of people who marinated some applications this long that said they really hadn’t to do substantial changes to their code base

    • @SimonBuchanNz
      @SimonBuchanNz Před 2 lety +1

      I don't think that's true anymore, if it was ever really true?
      I don't know about NextStep, but Mac OS 1 software was written in Pascal, officially. You should have been able to use C but it would likely not be, and some point you would have to port that to C. But let's say you've gotten to a more popular "classic" Mac OS 7, that would port to the OS X Carbon API pretty easily, since that was the intent (probably about the effort of windows 16 to 32bit at worst).
      The problem is,regardless of Next or Classic Mac, that the, as far as I know, only UI API of 10.0, Carbon was removed in OS 10.15 Catalina, and Carbon to its replacement Cocoa is *not* an easy port. You could probably also hit things like the permission hardening in various versions.
      Apple, for better or worse, have not been as backwards compatible as Microsoft.

    • @kaitlyn__L
      @kaitlyn__L Před 2 lety

      @@SimonBuchanNz note the capitalisation and spacing, they’re actually only referring to OSX under the new name, not the Classic OS.
      And even core system UI elements like the colour and font picker are unchanged from NeXT, Quartz is a descendant of Display PostScript (and can still, with the right interpreter software, export the entire screen into a PSD with every window its own layer; just like NeXTSTEP could save and send a PostScript print document of the GUI to a connected printer) so I wouldn’t be surprised if some third party applications can still work with minimal tweaking.
      OSX has Swift now but last I checked (which was a few years ago) there was nothing stopping you from using legacy Objective-C code.

    • @SimonBuchanNz
      @SimonBuchanNz Před 2 lety

      @@kaitlyn__L they said "from the first next step os..." so, no, I don't think they were saying from the first branded as "macOS" (which was only somewhere around 10.12ish, IIRC? Hardly impressive if it was what they meant)
      Yes, I'm aware of Quartz. It was introduced in OS 10.0, and isn't a common or sufficient API to target: it's a 2d graphics library, not a UI library. (Or you're talking about the compositor, thanks Apple for the overloaded name). You *might* be able to compile a very specific type of application with entirely custom UI components on 10.0 up to 11.x, but I'm very suspicious. On the other hand, it's very likely that many Windows 95 samples compile on current Windows (modulo compiler fixes in practice), and that Windows 1.0 samples need only minor changes.
      Again, this isn't *intrinsically* a good thing, the API is often quite bad in comparison when ignoring the history (11 parameters to CreateWindow!?), but it's the users that really pay the price: losing access to older software, vs worse quality on average for native apps.
      Not sure why you're bringing up iOS, it's lineage isn't that relevant or interestingly long here.

    • @fdmillion
      @fdmillion Před rokem

      @@kaitlyn__L You see NeXTSTEP's influence all over modern macOS with so many of the APIs starting with "NS". I know Apple is strongly pushing people to Swift, but Obj-C still has its place - I liken it to how even Python programmers sometimes use C-based libraries for performance or compatibility reasons.

  • @magicalruin
    @magicalruin Před 2 lety

    Didnt understand anything, but found it very entertaining ;)

  • @xNathan2439x
    @xNathan2439x Před 2 lety

    I pressed the "set reminder" button when it was at 7 waiting. Then I refreshed the page and the number goes down to 6?

  • @PrinceWesterburg
    @PrinceWesterburg Před 2 lety +1

    And yet, code I wrote on Unix systems back then will compile perfectly now.

  • @hikaru-live
    @hikaru-live Před 2 lety

    For that MoveTo to MoveToEx migration et al, I would likely create a library reimplementing those removed functions using their counterparts.

  • @Linuxhippy2
    @Linuxhippy2 Před 4 měsíci

    just to be curious: why do the dialogs still look very 16-bit'ish? they still have bold fonts. the buttons seem to have a more pronounced border etc.?

    • @NCommander
      @NCommander  Před 4 měsíci

      Applications have to opt-in for win32 common controls or later.

  • @RetroSwim
    @RetroSwim Před 2 lety +2

    8:05 System.fon is a variable-width raster font, sadly. When you installed high-resolution video drivers on Win3x, they would often have a "Large Font" variant of the driver, which swapped system.fon for an equivalent with larger glyphs. Pretty sure 3.x, 9x , NT, 2K and even XP used raster fonts for all UI widgets, ClearType on XP notwithstanding. What a shamozzle! :D

    • @NCommander
      @NCommander  Před 2 lety +5

      You're supposed to make sure you have sizing to work regardless of fonts (this is one of the main reasons why German was one of the first languages that Microsoft releases betas for since statistically, it's one of the more verbose languages by character count.

    • @RetroSwim
      @RetroSwim Před 2 lety +1

      @@NCommander For sure! I was mostly just surprised that they used a bitmap font by default for so long. (Although given what you covered in the video, maybe less surprised!)

  • @kevinlkoehler
    @kevinlkoehler Před 2 lety

    What about starting from Visual Basic for DOS, another part of ms history I like is how the help file formats changed.

  • @tookitogo
    @tookitogo Před 2 lety +1

    This was great! (Though I don’t think I’ve ever heard anyone who pronounces “DOS” as “dahz”!)

  • @socialistsuccubus822
    @socialistsuccubus822 Před 2 lety +1

    "APP studio" in the 90's. I knew I wasn't crazy

  • @masternickthedesigner
    @masternickthedesigner Před 2 lety

    What is the music at 11:20?

  • @holderbee7811
    @holderbee7811 Před 2 lety +2

    Very neat.. you may get a lot of mileage out of covering TempleOS.. its existence still amazes me

  • @andersonklein3587
    @andersonklein3587 Před 2 lety

    What's interesting about coding is how there's 1000 ways to do the same thing. This really shows how amazing Windows is, there are games and programs from Windows 95 that I can literally just double click and run, and it runs. Somehow, it just works. Whereas there's other programs made for just a different version of the same windows that will throw a fit if anything changed.