https://bugs.winehq.org/show_bug.cgi?id=49195
Bug ID: 49195
Summary: Multiple 4k demoscene OpenGL demos crash on startup
(failure to lookup atom 0xC019 'static' from global
atom tables)
Product: Wine
Version: 5.8
Hardware: x86-64
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: user32
Assignee: wine-bugs(a)winehq.org
Reporter: focht(a)gmx.net
Distribution: ---
Hello folks,
extracted from bug 48898
My comment: https://bugs.winehq.org/show_bug.cgi?id=48898#c12
--- quote ---
To me it looks like bug 18490 ("Multiple games fail to set pixel format on D3D
device context created on desktop window (Empire: Total War, Napoleon: Total
War, Utopia City)") but for GL device context on the desktop window.
According to online information it's not allowed to do any rendering using this
context but enough to call functions like glGetString() etc.
Maybe some of the Wine graphics folks could weigh in with an opinion if this
limitation is already known / tracked in a bug?
--- quote ---
Henri's answer: https://bugs.winehq.org/show_bug.cgi?id=48898#c13
--- quote ---
I'm not aware of an existing bug report for this issue, no. It does strike me
as similar to bug 36506 though, and it would not particularly surprise me if
wglGetProcAddress() is supposed to return results consistent with
GL_EXTENSIONS/GL_VERSION here, even without a current GL context.
I seem to recall having established in the context of bug 18490 that creating a
GL context (or more specifically, setting a pixel format) on the desktop window
is indeed supposed to fail. In any case, this seems like of of those bugs that
would benefit from tests to establish what's supposed to happen.
--- quote ---
Turns out this was a side-effect of an earlier problem.
It was not supposed to be GetDC(NULL) (Desktop window).
--- snip ---
$ WINEDEBUG=+seh,+relay,+server,+class,+win,+msg wine ./End\ of\ time\ 720p.exe
>>log.txt 2>&1
...
0024:Call user32.ChangeDisplaySettingsA(00421288,00000004) ret=004200da
...
0024: get_desktop_window( force=0 )
0024: get_desktop_window() = 0 { top_window=00010020, msg_window=00010026 }
...
0024:Ret user32.ChangeDisplaySettingsA() retval=00000000 ret=004200da
0024:Call
KERNEL32.CreateThread(00000000,00000000,004201ca,004304e8,00000000,00000000)
ret=004200ee
...
0024:Ret KERNEL32.CreateThread() retval=00000080 ret=004200ee
00bc: *fd* 17 <- 38
00bc: init_thread( unix_pid=3683, unix_tid=3729, debug_level=1, teb=7ffd4000,
entry=004201ca, reply_fd=15, wait_fd=17, cpu=x86 )
0024:Call
user32.CreateWindowExA(00000000,0000c019,00000000,91000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000)
ret=004200f4
0024:trace:win:WIN_CreateWindowEx (null) #c019 ex=00000000 style=91000000 0,0
0x0 parent=(nil) menu=(nil) inst=(nil) params=(nil)
00bc: init_thread() = 0 { pid=0020, tid=00bc, server_start=1d62d3b280579be
(-2.9701360), info_size=0, version=603, all_cpus=00000003, suspend=0 }
0024:trace:win:dump_window_styles style: WS_POPUP WS_VISIBLE WS_MAXIMIZE
0024:trace:win:dump_window_styles exstyle:
...
00bc:Starting thread proc 0x4201ca (arg=0x4304e8)
...
0024: create_window( parent=00010020, owner=00000000, atom=c019,
instance=00000000, dpi=96, awareness=2, class=L"" )
0024: create_window() = INVALID_HANDLE { handle=00000000, parent=00000000,
owner=00000000, extra=0, class_ptr=00000000, dpi=0, awareness=0 }
0024:warn:win:create_window_handle error 6 creating window
0024:trace:class:GetClassInfoExW (nil) #c019 0x1518f9e0
0024:trace:class:CLASS_FindClass #c019 0x7e910000 -> not found
0024:Ret user32.CreateWindowExA() retval=00000000 ret=004200f4
--- snip ---
The failing window creation resulted in NULL handle which got passed to
user32.GetDC():
--- snip ---
0024:Call user32.GetDC(00000000) ret=004200fb
0024:trace:win:GetDCEx hwnd 0x10020, hrgnClip (nil), flags 00000003
...
0024: get_visible_region( window=00010020, flags=00000013 )
0024: get_visible_region() = 0 { top_win=00010020, top_rect={-1920,0;-1919,1},
win_rect={0,0;3200,1080}, paint_flags=00000001, total_size=16,
region={{-1920,0;1280,1080}} }
0024:Call
winex11.drv.GetDC(00030039,00010020,00010020,1518fde0,1518fdf0,00000013)
ret=7e97bd3e
0024:Ret winex11.drv.GetDC() retval=00000001 ret=7e97bd3e
0024:trace:win:GetDCEx (0x10020,(nil),0x13): returning 0x30039 (updated)
0024:Ret user32.GetDC() retval=00030039 ret=004200fb
--- snip ---
Well, the rest of the OpenGL story is known and the current behaviour makes
sense.
Back to the actual problem...
The creation of the window which ought the be used for OpenGL context/rendering
fails because atom 0xc019 can't be found/resolved.
I should have looked more carefully at the trace log and the demo disassembly.
--- snip ---
...
004200B6 | xor esi,esi |
004200B8 | push esi |
004200B9 | push esi |
004200BA | push esi |
004200BB | push esi |
004200BC | push esi |
004200BD | push esi |
004200BE | push esi |
004200BF | push esi |
004200C0 | push esi |
004200C1 | push 91000000 |
004200C6 | push esi |
004200C7 | push C019 | global atom!
004200CC | push esi |
004200CD | push 4 |
004200CF | push end of time 720p.421288 |
004200D4 | call dword ptr ds:[<&user32.ChangeDisplaySettingsA>] |
004200DA | push esi |
004200DB | push esi |
004200DC | push end of time 720p.4304E8 |
004200E1 | push end of time 720p.4201CA |
004200E6 | push esi |
004200E7 | push esi |
004200E8 | call dword ptr ds:[<&KERNEL32.CreateThread>] |
004200EE | call dword ptr ds:[<&user32.CreateWindowExA>] | fails
004200F4 | push eax |
004200F5 | call dword ptr ds:[<&user32.GetDC>] |
004200FB | mov edi,eax |
004200FD | mov dword ptr ds:[3AB08EC],eax |
00420102 | push esi |
00420103 | push edi |
00420104 | push esi |
00420105 | push end of time 720p.42125C |
0042010A | push edi |
0042010B | call dword ptr ds:[<&gdi32.ChoosePixelFormat>] |
00420111 | push eax |
00420112 | push edi |
00420113 | call dword ptr ds:[<&gdi32.SetPixelFormat>] |
00420119 | call dword ptr ds:[<&opengl32.wglCreateContext>] |
0042011F | push eax |
00420120 | push edi |
00420121 | call dword ptr ds:[<&opengl32.wglMakeCurrent>] |
00420127 | call dword ptr ds:[<&user32.ShowCursor>] |
0042012D | call end of time 720p.4202CC |
--- snip ---
The demoscene guys are crazy and fight for each saved byte ;-)
Courtesy of: http://www.pouet.net/topic.php?which=9894
--- quote ---
I was able to get 4 bytes off of a test 1k intro (Peach GLSL Shader of Japan)
by replacing the "edit" string with 0xC018, making it 1006 bytes instead of
1010. Nice.
...and then I got it down to 1004 bytes, because now "test eax, eax" compressed
better than "test ax, ax", which used to compress better sometime before this
newest change. ;) This 1k intro business is crazy, you'd really need some kind
of brute-force code masher that tries all possible combinations of code that
perform the same thing.
--- quote ---
--- quote ---
That´s mine since 2009 using DirectX9...someone told me using "static" instead
of "edit" would be better back then in some other thread...was iq if i remember
correctly.
The ATOM for "static" is 0xC019 btw, but be warned: it added 7 bytes here in my
first test, opposed to chopping off 4 bytes in case of "edit".
--- quote ---
--- quote ---
Oh, shit...i did the test the wrong way around...meaning the ATOM actually
chopped off 7 bytes in case of "static" vs. "0xC019" :/ :D
Yay, thanks for the nice trick, man! :)
--- quote ---
Also relevant, shows dump of global and typical local atom tables:
https://github.com/lungetech/ICAS/blob/master/logs/volatility/win32/output/…
Wine source:
https://source.winehq.org/git/wine.git/blob/9e26bc811656ad8eb901bffa5528b9c…
--- snip ---
407 /***********************************************************************
408 * CLASS_FindClass
409 *
410 * Return a pointer to the class.
411 */
412 static CLASS *CLASS_FindClass( LPCWSTR name, HINSTANCE hinstance )
413 {
414 static const WCHAR comctl32W[] =
{'c','o','m','c','t','l','3','2','.','d','l','l',0};
415 struct list *ptr;
416 ATOM atom = get_int_atom_value( name );
417
418 GetDesktopWindow(); /* create the desktop window to trigger builtin
class registration */
419
420 if (!name) return NULL;
421
422 name = CLASS_GetVersionedName( name, NULL, NULL, TRUE );
423
424 for (;;)
425 {
426 USER_Lock();
427
428 LIST_FOR_EACH( ptr, &class_list )
429 {
430 CLASS *class = LIST_ENTRY( ptr, CLASS, entry );
431 if (atom)
432 {
433 if (class->atomName != atom) continue;
434 }
435 else
436 {
437 if (strcmpiW( class->name, name )) continue;
438 }
439 if (!class->local || class->hInstance == hinstance)
440 {
441 TRACE("%s %p -> %p\n", debugstr_w(name), hinstance,
class);
442 return class;
443 }
444 }
445 USER_Unlock();
446
447 if (atom) break;
448 if (!is_comctl32_class( name )) break;
449 if (GetModuleHandleW( comctl32W )) break;
450 if (!LoadLibraryW( comctl32W )) break;
451 TRACE( "%s retrying after loading comctl32\n", debugstr_w(name) );
452 }
453
454 TRACE("%s %p -> not found\n", debugstr_w(name), hinstance);
455 return NULL;
456 }
--- snip ---
https://source.winehq.org/git/wine.git/blob/9e26bc811656ad8eb901bffa5528b9c…
$ sha1sum atz-end_of_time.zip
3a4ce3fd92e2fdd1a4533ee67d4809d3f2184f6b atz-end_of_time.zip
$ du -sh atz-end_of_time.zip
3.3M atz-end_of_time.zip
$ wine --version
wine-5.8-173-g9e26bc8116
Regards
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=49905
Bug ID: 49905
Summary: VbsEdit runs wscript.exe with unsupported switches /d
and /u
Product: Wine
Version: 5.18
Hardware: x86-64
OS: Linux
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: wscript
Assignee: wine-bugs(a)winehq.org
Reporter: sloper42(a)yahoo.com
Distribution: ---
Created attachment 68266
--> https://bugs.winehq.org/attachment.cgi?id=68266
patch for wscript
In VbsEdit version 9.2139 from https://www.vbsedit.com/, when choosing "Start
Debugging with wscript", wscript.exe is called with unsupported options /d
(debug) and /u (unicode).
Therefore wscripts bail out and script is not executed.
Solution is to ignore these options.
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55151
Bug ID: 55151
Summary: PC crashes after endlessly eating up memory
Product: Wine
Version: 8.11
Hardware: x86-64
OS: Linux
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: cmd
Assignee: wine-bugs(a)winehq.org
Reporter: axis6404(a)proton.me
Distribution: ---
example script (selfdel.bat):
:REP
del "selfdel.bat"
if exist "selfdel.bat" goto REP
wine selfdel.bat (An infinite loop occurs. Until it eats up all the memory and
the PC stops.)
The koeiuc.bat in Steam games made by Koei eats up all the memory and crashes
the PC.
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=44817
Bug ID: 44817
Summary: Some software protection schemes need
ntdll.NtSetLdtEntries implementation
Product: Wine
Version: 3.4
Hardware: x86-64
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: ntdll
Assignee: wine-bugs(a)winehq.org
Reporter: focht(a)gmx.net
Distribution: ---
Hello folks,
to track
https://github.com/wine-staging/wine-staging/tree/master/patches/ntdll-NtSe…
The stub was added with bug 26268 ("Multiple applications need
ntdll.ZwSetLdtEntries stub (kwiksupport.me, Ragnarok Online patcher)").
Unfortunately there is no further information/details *which* copy-protection
scheme needs and actual implementation.
No applications/games are mentioned.
--- quote ---
1. Some copy protections call NtSetLdtEntries(0x000f) and then with 'retf'
instruction jump to that selector expecting that it works (the tests show that
NtSetLdtEntries(0x000f,0x001f) should succeed). In order to make this work a
limitation to set only selectors > LDT_FIRST_ENTRY (512) in
wine_ldt_set_entry()
was removed.
2. wine_ldt_set_entry() was made to always mark modified selector entries as
WINE_LDT_FLAGS_ALLOCATED, otherwise get_selector_entry() server call returns
entries without that flag set and
NtQueryInformationThread(ThreadDescriptorTableEntry)
fails.
--- quote ---
$ wine --version
wine-3.4
Regards
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=21855
Summary: WordPro Windows pull down does not show file names
Product: Wine
Version: 1.1.38
Platform: x86
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: P4
Component: -unknown
AssignedTo: wine-bugs(a)winehq.org
ReportedBy: ToddAndMargo(a)verizon.net
Created an attachment (id=26459)
--> (http://bugs.winehq.org/attachment.cgi?id=26459)
Missing file names in Windows pull down
Hi All,
Would you guys fix this for me?
I am using Lotus Word Pro N9.8.0208.1200. When you open two files (documents)
from the command line (the jpeg I have attached), then go to the "Window" pull
down to select which file to bring into focus, the file names are missing. If
you start Word Pro, then use File, Open to select two files, one at a time, the
second file does not show.
Many thanks,
-T
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=58156
Bug ID: 58156
Summary: Star Wars: Jedi Knight - Dark Forces II Demo: won't
launch, "smackw32.DLL" failed to initialize
Product: Wine
Version: 10.6
Hardware: x86-64
OS: MacOS
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: -unknown
Assignee: wine-bugs(a)winehq.org
Reporter: cemer99797(a)isorax.com
Created attachment 78437
--> http://bugs.winehq.org/attachment.cgi?id=78437
Wine-devel 10.6 log for "wine jkdemo.exe -windowgui"
the Star Wars: Jedi Knight - Dark Forces II Demo: won't launch, it says
"smackw32.DLL" failed to initialize. This is a Windows 95 game demo
I tried setting the Windows Version to Windows 10, Windows 95, and Windows 98
in winecfg. I also tried launching the demo with and without the windowgui
flag: `wine jkdemo.exe -windowgui` as mentioned in AppDB HowTo section.
This is a regression because a lot of users report this game demo as Gold in
AppDB, including on macOS
(https://appdb.winehq.org/objectManager.php?sClass=version&iId=10948)
The jedi.exe file is a launcher GUI which works fine, but when clicking "Play
Jedi Knight Demo" it fails with the error:
`file` command info for: jkdemo.exe
PE32 executable (GUI) Intel 80386, for MS Windows
Unable to start the Jedi Knight Demo game program. Try running JK.EXE where you
installed the Demo directly. Also make sure you have the latest DirectX drivers
installed on your system.
The macOS terminal shows this error as one of the last things in the log:
"err:module:loader_init "smackw32.DLL" failed to initialize, aborting"
(the module is normally unzipped next to the jkdemo.exe executable)
tested with Gcenx's Wine-devel 10.6
(https://github.com/Gcenx/macOS_Wine_builds/releases/tag/10.6) on macOS 11
and Wine-devel 9.21
(https://github.com/Gcenx/macOS_Wine_builds/releases/tag/9.21)
and Gcenx's Wine CrossOverFOSS 23.7.1-1 based on Wine 8.0.1
(https://github.com/Gcenx/winecx/releases/tag/crossover-wine-23.7.1-1)
download page (choose Download this File > Agree > Jedi Knight Demo.zip):
https://community.pcgamingwiki.com/files/file/1308-jedi-knight-dark-forces-…
sha256: 7bc013918cf79879a086a10c27306f2f3511852726f4b4a9fec09668ed221d18
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53767
Bug ID: 53767
Summary: vbscript fails to handle ReDim when variable is not
yet created
Product: Wine
Version: 7.16
Hardware: x86-64
OS: Linux
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: vbscript
Assignee: wine-bugs(a)winehq.org
Reporter: jsm174(a)gmail.com
Distribution: ---
While working on leveraging the vbscript engine of Wine for a macos/linux port
of Visual Pinball, I finally have the example table working and am starting to
work through the runtime errors.
Since the table scripts are often copies of copies of copied code, sometimes
bad practices make their way in.
Take the following code:
Const tnob = 5 ' total number of balls
ReDim rolling(tnob)
This works in real vbscript, but fails here.
As a work around, I've updated the script to:
Const tnob = 5 ' total number of balls
Dim rolling()
ReDim rolling(tnob)
According to the rules I've found:
It's possible to create a new dynamic array within a procedure using the ReDim
statement if the array to which it refers doesn't already exist at either
module or level. Typically, this results from an error of omission; the
programmer forgets to explicitly define the array using Dim, Public, or
Private. Since this method of creating an array can cause conflicts if a
variable or array of the same name is subsequently defined explicitly, ReDim
should be used only to redimension an existing array, not to define a new one.
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=32572
Bug #: 32572
Summary: Alpha Polaris doesn't play well with built-in d3dx9
libraries
Product: Wine
Version: 1.5.20
Platform: x86
URL: http://www.gamershell.com/download_75822.shtml
OS/Version: Linux
Status: NEW
Keywords: download
Severity: minor
Priority: P2
Component: directx-d3dx9
AssignedTo: wine-bugs(a)winehq.org
ReportedBy: gyebro69(a)gmail.com
CC: wine-bugs(a)winehq.org
Classification: Unclassified
Created attachment 42985
--> http://bugs.winehq.org/attachment.cgi?id=42985
terminal output
The game comes with native d3dx9_34.dll installed in the game directory, the
reported problems happen only when you set it to built-in.
wine-1.5.20-57-gdabde6a or newer is needed to test this bug (a follow-up to bug
#27627).
The game starts and loads to the menu fine with the built-in d3dx9_34 but you
will face several issues throughout the game.
Install the demo then start it with AlphaPolaris.exe. Click <OK> in the
launcher and get in the game. Start a new game from the menu, skip the intro
video. Here are some issues I noticed with built-in d3dx:
- anytime you press a key (either in the menu or in mid-game) a black bar
appears in the upper left corner. An error message from the game engine
(Wintermute) is hiding behind those black bars, as I've seen those in the game
from bug #29495. "Script runtime error. View log for details".
- the game begins with a conversation but dialogues/subtitles are displayed so
fast that you can hardly read them. Probably due to this, most of the audio
(speech) is missing from the game.
- when the opening conversation ends you should see the main character standing
in front of his bed. With built-in d3dx the character is missing (invisible).
- the game tends to crash on exit as can be seen in the attached log file.
All those issues are non-existent when d3dx9_34=native.
Saved games that were created with built-in d3dx9_34 are also affected. If you
load a saved game created with built-in, those issues are present, even if the
game was started with native.
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50210
Bug ID: 50210
Summary: S.T.A.L.K.E.R.: Call of Pripyat needs
D3DX11GetImageInfoFromMemory implementation
Product: Wine
Version: 5.22
Hardware: x86-64
OS: Linux
Status: NEW
Severity: minor
Priority: P2
Component: directx-d3d-util
Assignee: wine-bugs(a)winehq.org
Reporter: andrey.goosev(a)gmail.com
Distribution: ---
Enhanced full dynamic lighting (DX11)
fixme:d3dx:D3DX11GetImageInfoFromMemory src_data 08D75427, src_data_size 65664,
pump 00000000, img_info 0031D0C0, hresult 00000000 stub!
wine-5.22-195-gcbca9f847f6
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=57877
Bug ID: 57877
Summary: CMD: Parsing issue: Mismatch in parentheses provoked
by trailing tab
Product: Wine
Version: 10.2
Hardware: x86-64
OS: Linux
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: cmd
Assignee: wine-bugs(a)winehq.org
Reporter: Dominik-Home(a)gmx.de
Distribution: ---
Wine has issues in parsing if-statements like the following:
if not [%FOO:~-1%] == [True] ( <----- NOTE THE TRAILING TAB HERE
echo ENTERED IF-EXPRESSION
)
On Windows those kind of expressions execute as expected but on Wine it errors
with a note 'Mismatch in parentheses.'. While playing around with this
construct I realised that the trailing tab may cause this issue. As soon as I
remove it, the code seems to work.
See also the attached reproducers.
For reference this, is the last issue to get the PlanAhead (part of Xilinx ISE)
batch scripts to work. They are responsible for configuring the environment and
starting the GUI.
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.