https://bugs.winehq.org/show_bug.cgi?id=38104
Bug ID: 38104 Summary: 7k2: Game screen don't repaint Product: Wine Version: 1.7.35 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: trivial Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: slawek@lach.art.pl Distribution: ---
Created attachment 50772 --> https://bugs.winehq.org/attachment.cgi?id=50772 Output from console
Once game is started 7k2 don't repaint screen. It only repaint screen on mouse position(small rectangle - possible with size of cursor size).
In menu screen was repainted normally.
I submited many years ago path for it, but it wasn't applied. I submited it to wine-hackers mailing list. The response was: Microsoft never released dx6 for Windows - it was only version for Sega Dreamcast.
In these moment menu don't show - there was only displayed error message "Wine cann't attach flipping surface". The error don't appears now, the menu is correctly draw, but no screen in game is repainted.
But this is another error. Now only screen don't repaint. As I remeber, this is possible bug with locks.
https://bugs.winehq.org/show_bug.cgi?id=38104
--- Comment #1 from Sławek slawek@lach.art.pl --- I hate WinAPI and I programming in WinAPI many years ago, so I don't remember it. What I saw in logs, while setting WINEDEBUG=ddraw is" trace:ddraw:ddraw_surface4_Unlock iface 0x1d0584, rect (nil). trace:ddraw:ddraw_surface7_Unlock iface 0x1d0580, rect (null). trace:ddraw:ddraw_surface4_Unlock iface 0x1d09e4, rect (nil). trace:ddraw:ddraw_surface7_Unlock iface 0x1d09e0, rect (null). trace:ddraw:ddraw_surface4_Flip iface 0x1d0584, dst (nil), flags 0x1. trace:ddraw:ddraw_surface7_Flip iface 0x1d0580, src (nil), flags 0x1. trace:ddraw:ddraw_surface4_Lock iface 0x1d09e4, rect (null), surface_desc 0x6544dc, flags 0x801, h (nil). trace:ddraw:surface_lock This 0x1d09e0, rect (null), surface_desc 0x6544dc, flags 0x801, h (nil).
It looks like Seven Kingdoms 2: The Frythans Wars tries to unlock not existing surface and tries to flip into not existing surface.
https://bugs.winehq.org/show_bug.cgi?id=38104
--- Comment #2 from Sławek slawek@lach.art.pl --- I seen implementation of ddraw_surface7_Unlock on http://doxygen.reactos.org/d7/def/dll_2directx_2wine_2ddraw_2surface_8c_ad96... and there's no used pRect parameter, so sorry for previous comment.
https://bugs.winehq.org/show_bug.cgi?id=38104
super_man@post.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |super_man@post.com
--- Comment #3 from super_man@post.com --- Dooes this have a download to test? Can you find your submited patch somehow?
https://bugs.winehq.org/show_bug.cgi?id=38104
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #4 from joaopa jeremielapuree@yahoo.fr --- The demo shows the same problem
https://archive.org/details/SevenKingdomsIITheFryhtanWars_1020
https://bugs.winehq.org/show_bug.cgi?id=38104
--- Comment #5 from joaopa jeremielapuree@yahoo.fr --- Unfortunately, the bug still occurs with wine-4.0-rc2. Can an administrator put the link at the URL place: https://archive.org/details/SevenKingdomsIITheFryhtanWars_1020
https://bugs.winehq.org/show_bug.cgi?id=38104
--- Comment #6 from joaopa jeremielapuree@yahoo.fr --- Bug still occurs with wine-4.8
https://bugs.winehq.org/show_bug.cgi?id=38104
--- Comment #7 from joaopa jeremielapuree@yahoo.fr --- Bug still occurs with wine-5.16.
https://bugs.winehq.org/show_bug.cgi?id=38104
--- Comment #8 from joaopa jeremielapuree@yahoo.fr --- Created attachment 69435 --> https://bugs.winehq.org/attachment.cgi?id=69435 Console output with d3d and ddraw channels enabled
Still a bug in wine-6.2. Can an administrator put the link of the demo showing the problem at the URL place
https://archive.org/details/SevenKingdomsIITheFryhtanWars_1020
And the bug should be marked as NORMAL not TRIVIAL.
https://bugs.winehq.org/show_bug.cgi?id=38104
--- Comment #9 from Sławek slawek@lach.art.pl --- I forgot to tell you, 7k2: TFW is now opensource, but assets are commercial. I think, you could check code and assets extract from demo version. I don't known how different are OpenSource version from older/original one. Especially there's work to port the game to Linux, but maybe it could be helpful.
https://bugs.winehq.org/show_bug.cgi?id=38104
--- Comment #10 from joaopa jeremielapuree@yahoo.fr --- Bug still occurs with wine-8.6.
https://bugs.winehq.org/show_bug.cgi?id=38104
marco.santi@posteo.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |marco.santi@posteo.de
--- Comment #11 from marco.santi@posteo.de --- This bug has been bothering me too for years. I just stumbled on this that solves it for me:
winetricks cnc_ddraw ("Reimplementation of ddraw for CnC games")
This tracks with Sławek's diagnosis that there was a problem with ddraw.
Program repaints the screen correctly, 7k2 works as intended.
Tested successfully on MacOS 12, 64 bit (!) both on Intel and on ARM (!) arch.
I don't know my Wine version, sorry. I am using Wineskin with the latest engine: WS11WineCX64Bit22.1.1-rc2
Can someone else reproduce the solution?
https://bugs.winehq.org/show_bug.cgi?id=38104
--- Comment #12 from Sławek slawek@lach.art.pl --- I have installed 7k2. What to do to test under Linux? Should I install Wine skin? Does it needs some additional patches, making C&C works?
https://bugs.winehq.org/show_bug.cgi?id=38104
--- Comment #13 from marco.santi@posteo.de --- (In reply to Sławek from comment #12)
I have installed 7k2. What to do to test under Linux? Should I install Wine skin? Does it needs some additional patches, making C&C works?
I am very much a layperson and only use the very user-friendly Wineskin app for Mac – so I can't speak for a Linux system or for more fundamental ways of running Wine. Sorry. As I understand, Wineskin is not available for Linux.
What I have is Wineskin for Mac with the latest engine, which provides 32on64 support, to run 7k2 on a 64-bit OS. https://github.com/Gcenx/WineskinServer/tree/master/Engines
I suppose if you build 7k2 with the latest Wine you should be fine.
The important part is to run winetricks cnc_ddraw
This made all the difference for me. I didn't need any other winetrick commands.
My wrapper also contains the Winedebug instructions -esync,-plugplay,+loaddll (these were added by Wineskin itself, I am painfully ignorant of what that means!)
https://bugs.winehq.org/show_bug.cgi?id=38104
--- Comment #14 from marco.santi@posteo.de --- Did anyone get a chance to test my solution? To recap:
winetricks cnc_ddraw
and the game flows and works perfectly.
https://bugs.winehq.org/show_bug.cgi?id=38104
--- Comment #15 from joaopa jeremielapuree@yahoo.fr --- That's not a solution, but a workaround. So, it won't help to fix wine. No interest to test that.
https://bugs.winehq.org/show_bug.cgi?id=38104
--- Comment #16 from Sławek slawek@lach.art.pl --- winetricks cnc_ddraw
I did this and I must search for CD Drive. I have external CD Drive, cause nobody currently create laptops with CD Drive, sorry. When I found it, I will respond.
https://bugs.winehq.org/show_bug.cgi?id=38104
--- Comment #17 from marco.santi@posteo.de --- Thanks joaopa, I get it, this isn't really the place to point out solutions *for running a specific game*, but to develop Wine. Sorry about that.
The place for that would be the WineHQ page of the specific game, of course (https://appdb.winehq.org/objectManager.php?sClass=version&iId=40063).
Thanks Sławek for your reply. If you should manage to make it work, would you please write this workaround on the WineHQ page? I don't have an account there, I'm just a casual user, eager to share my finding with other potential users of 7k2 who look up WineHQ.
Cheers! Marco
https://bugs.winehq.org/show_bug.cgi?id=38104
Zeb Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |z.figura12@gmail.com
--- Comment #18 from Zeb Figura z.figura12@gmail.com --- It can be useful, from a development perspective, to know if a certain workaround helps, since that often provides a clue as to the source of the problem. (On the other hand, confirmation requests don't usually provide any more utility in this respect).