pouët.net

An afterthought on intros depending on windows 8.1

category: code [glöplog]
I realize now that it was perhaps a bit too soon to release an intro, that requires Windows 8.1 or later, because Windows 8.1 is not yet that widespread... but even if it has to take 5 to 10 years, we must accept and plan with the fact, that d3dcompile_*.dlls are now part of the operating system, and therefore this is the right way of doing things (meaning DirectX intros) in the future.

But since the vast mayority of demosceners are still running Windows 7 or earlier (and I can very well understand the reasons), I've decided to provide a compatible version of my 8k.

Thanks to Psycho for giving me the idea and a good piece of source code, the win7 compatible binaries now try to load d3dcompiler_47.dll first, and if that fails, they try to load d3dcompiler_43.dll, which is part of the latest DirectX runtime (June 2010).

This is the code that I included in the intro:
Code: HINSTANCE hl = LoadLibrary(d3dcompiler47_dll); if (!hl) { d3dcompiler47_dll[13] = '3'; hl = LoadLibrary(d3dcompiler47_dll); } d3dCompile = (pD3DCompile)GetProcAddress(hl, "D3DCompile");


I didn't have any available size for this extra code, that's why the win7 compatible versions exceed the 8k size limit. I preferred to leave it this way instead of sacrificing parts of the real intro, because, after all, the intro works flawlessly and meets the size expectations on its intended platform.

I hope you appreciate the gesture :) The download link is the same.

In my opinion, we intro coders should include that code (or something similar) on upcoming intros, it's a mayor size cost, but it's good in two ways:
1) runs on a vanilla installation of the latest windows version (without external dependencies)
2) runs on all windows versions that have the directx redist installed
added on the 2014-04-23 21:05:20 by xTr1m xTr1m
It still amazes me when people still consider windows a good demo platform, while -a s they seem to be tinkers, hackers - they should support everything BUT windows :>
added on the 2014-04-23 21:08:37 by OlaHime OlaHime
Well the whole point of this thread is about supporting the most widespread platform across all demosceners, and that is irrefutably windows. NOT supporting windows at all is more or less like requiring windows 8.1, which is what I'm arguing against here.
added on the 2014-04-23 21:14:47 by xTr1m xTr1m
nice workaround. the problem still is the not inclusion of it as standard windows component. win8 scored it. win7 still needs the extra. call that mofos at microsoft to inclu the 47's on win7 too. that's the fix.
added on the 2014-04-23 21:18:31 by yumeji yumeji
Here is your answer fresh from this month :

BB Image

Is moving away from the only windows platform allowing both 16 and 32-bit code worth the latest DirectX fad add-in ?

"Users Refuse to Move Away from Windows XP, Stats Show"
[April 1st, 2014 src : http://news.softpedia.com/news/Users-Refuse-to-Move-Away-from-Windows-XP-Stats-Show-435046.shtml]
i'd bet most of that 48.77% is also running 64bit OS.

to back this up... the company i work for writes a product for windows.. our custom auto-updater logs the requesting OS.

we have the kind of user base that is relatively up to date, with very few casual home users. for the non-corporate users nearly all are using win7 x64.

no corporate figures, as those large seat customers tend to manage roll new versions out themselves. but they tend to spec what comes on the next wave of machines they buy. win 8.1 will take over.
added on the 2014-04-23 21:28:28 by Canopy Canopy
Quote:
Is moving away from the only windows platform allowing both 16 and 32-bit code worth the latest DirectX fad add-in ?

Afaik all 32-bit versions of any Windows can run 16-bit code. It's not dependent so much on which windows version. Also, "latest" fad...? :). I think most of the current XP users reside in China anyway, and other poor countries.
added on the 2014-04-23 21:31:18 by noby noby
So does this mean that the DLLs these 4ks depend on are not available through the "normal" channels (latest DirectX, drivers, etc.) on systems < Windows 8?
Quote:
'd bet most of that 48.77% is also running 64bit OS.


Maybe but who knows without statistics, right ?

It's sad because when 64-bit platforms forbid 16-bit, MS-DOS category will become officially an extinct platform. DosBox will not suffice and VMs are cumbersome.

For now looking at the CNET graph, one can imagine a MS-DOS 16-bit prod has >50% of the live computer park to be ran (27+48/2). It is a luxurious choice.

MS-DOS 16-bit prods is the preferred platform for sizeprods too (64-bytes, 128-bytes, 256-bytes and up to 1k) which encourage the learning and survival of x86 assembly language.

By running after the latest trendy DX add-in that force-switchs your OS/platform to one killing assembly language survival is PC platform and demoscene nonsense.
Quote:
MS-DOS category will become officially an extinct platform

And disregarding some size-limited intros and some very highly specialized and completely outdated tools for stuff like PLC programming, has it been used anywhere in a long, long time? CP/M is a dead platform too and no one misses it either.
added on the 2014-04-23 21:48:24 by Preacher Preacher
MS-DOS has been an oldschool platform for a long time already, just like MSX-DOS. What's the problem, now you can no longer pretend it's "mainstream"? I don't have a problem admitting that I'm creating obscure stuff for obscure platforms.
added on the 2014-04-23 22:03:46 by yzi yzi
Quote:
So does this mean that the DLLs these 4ks depend on are not available through the "normal" channels (latest DirectX, drivers, etc.) on systems < Windows 8?


_47 is part of windows 8.1
_43 is the one coming with the last DirectX enduser runtime - the June 2010 one.

We've been discussing ways to add this 43/47 feature to crinkler, as some sort of fallback dll loading - then it would take almost no space, but it needs to be done ofcourse.

I'm also still using d3dx9 for fonts (it's the smallest way to do it for both 2d and 3d), meaning that the intro will still require the directx runtime on win 8. Maybe an opengl context for text (can it coexist with a dx11 context on the same window as d3d9ex can?) could be viable too.
added on the 2014-04-23 22:11:47 by Psycho Psycho
About that "how many machines run what" chart: it's ok as a general idea, but not at all accurate because:

- a whole lot of PCs sit in offices. They aren't your target audience.
- a whole lot of winxp machines sit in china (probably sharing a single license number ;) They're (mostly) not your target market either.

In other words, win7/8, linux and mac are a much bigger share of the actual demoscene audience.

That chart also omits tablets and phones, which would change it massively ;)
added on the 2014-04-23 23:10:20 by psonice psonice
Why not supply a "compatible.exe"? That helped most of the times "back then".

I don't really care about this fallback thing - it's not a fallback for something that is on a vanilla system. So you can also directly rename a 43 to a 47.dll - it doesn't really matter.
added on the 2014-04-24 00:37:26 by las las
To be honest, I think the required graphics hardware to render recent demos at decent frame rates is a bigger hurdle than OS.
added on the 2014-04-24 02:17:42 by bloodnok bloodnok
demoscene for me ment always to do things, the "others" aren't capable of.. yet.
so utilizing win8 is imho ok :-)
added on the 2014-04-24 07:21:04 by FeN FeN
Quote:
By running after the latest trendy DX add-in that force-switchs your OS/platform to one killing assembly language survival is PC platform and demoscene nonsense.


Killing assembly language survival? Erm... what?
You think MS-DOS is the only OS that supports assembly language?
There was quite a big Win32ASM community in the late 90s and early 2000s. And there are also people writing linux stuff in asm etc.

Aside from that. Who cares? C64 and Amiga have been 'dead' for decades. Never stopped the demoscene.
added on the 2014-04-24 10:52:35 by Scali Scali
Quote:
demoscene for me ment always to do things, the "others" aren't capable of.. yet.
so utilizing win8 is imho ok :-)


I agree. We have a ton of platforms in the demoscene, and within these platforms there are various minimum requirements.
People who only think in terms of MS-DOS are missing the point. MS-DOS has many versions, and runs on a lot of different hardware.
Do you need Hercules? CGA? EGA? VGA? SVGA? VESA support? Do you need a 16-bit CPU? 32-bit? 64-bit? Do you need an FPU? MMX? SSE? AVX? Do you need a GUS? Etc.

Having intros that require Windows 8.1 is no problem for me. I do agree though, since in this case it's just a few lines of code to make a compatible version for older versions, why not add a Win7-compatible version to the archive, even if it doesn't make the size limit? It's been common practice to have multiple versions of intros anyway...

Having support in Crinkler would also be nice... But given the above, I think it should be optional. So if the coder wants to save those last few bytes, he can bypass it.
added on the 2014-04-24 11:02:42 by Scali Scali
Quote:
Having intros that require Windows 8.1 is no problem for me


that's garbage. i won't buy it for that. they don't require win 8.1. they require that stupid dlls. you can run a fucking crinklered intro using them on 7 too. just 4 damn files to put in your system directories.

wtf. obey micro$oft? naahhh. fuck them for that cheap recrap.
added on the 2014-04-24 11:31:55 by yumeji yumeji
Quote:

We've been discussing ways to add this 43/47 feature to crinkler, as some sort of fallback dll loading - then it would take almost no space, but it needs to be done ofcourse.


To quote a wild compo entry from Revision 2014:
Awesome!
added on the 2014-04-24 11:44:38 by xTr1m xTr1m
Quote:
that's garbage. i won't buy it for that. they don't require win 8.1. they require that stupid dlls.


Who cares?
It's 2014. The real party is on YouTube!
It's not about running demos on real hardware anymore.
added on the 2014-04-24 12:15:42 by Scali Scali
Quote:
Who cares?
It's 2014. The real party is on YouTube!
It's not about running demos on real hardware anymore.


This is bullshit. I allways like to run the demos on real hardware to look how skills the coder are. if you like to watch a Video by one oder watch tv ;-) .....
added on the 2014-04-24 12:48:27 by Ciclope Ciclope
Quote:
This is bullshit. I allways like to run the demos on real hardware to look how skills the coder are. if you like to watch a Video by one oder watch tv ;-) .....


There are tons of interesting demos on hardware that I no longer have, have never owned, or will never own.
Some of my own stuff is also written for hardware that hardly anyone actually has.
But because of video captures, everyone can enjoy the demos anyway.
I don't see why Windows prods should be any different. If a prod is written for Windows 8.1, so be it. If you want to watch it on real hardware, then stfu and buy Windows 8.1. If you just want to watch it, look at a video capture. If you don't want to watch it, what's your point anyway?
added on the 2014-04-24 12:59:01 by Scali Scali
According to steam hardware survey, whopping 78.99% of steam windows users are on a 64 bit os (52.84% on win7 64bit, followed by 13.56% of win8.1 64bit).
added on the 2014-04-24 13:00:26 by sol_hsa sol_hsa
Quote:

Who cares?
It's 2014. The real party is on YouTube!
It's not about running demos on real hardware anymore.

As soon as it will be really true, the scene will be really dead.
Knowing your hardware and feeling as the demo runs on it is a big part of the watching pleasure.
Watching today demos on real ZX or Amiga would make my jaw drop. Watching them on emulators makes me only wonder how great they are. Watching them on YT makes me fall asleep.
It's like watching porn even without wanking VS doing the real thing.
added on the 2014-04-24 22:03:54 by rutra80 rutra80

login