DXX-Rebirth unification Beta Builds
#11
Alright then...what can I use to debug a Windows program inside Linux, so as to get you some useful info on the crash? Or could anyone else using Windows that is also experience this crash get a a backtrace?
Reply
#12
The way I'd do it is to compile with the debug flag (debug=1) and get gdb from MinGW on Windows, launch the game with it (no mouse capture and in window mode) and then run a backtrace (bt). If you guys can wait till Sunday, I'll see to get this fixed.
The greatest pleasure in life is to do what people say you cannot do.
Uhm... Honey, there's a head in the toilet!
Reply
#13
If you are using Wine to run it, then winedbg can be used to debug it.  If the crash is happening under Wine as well as on native Windows, I can try to run under Wine to analyze it.  I normally do not test under Wine, since Wine can only run the software rendered build, but not the OpenGL build.  My previous post was that running the Linux native build works fine for me.

However, before spending any effort on that, please sync to Fix Win64 startup crash, rebuild, and retry.  When I wrote that commit, I thought the crash only happened on Win64, but I now believe it would also happen on Win32.  Some history, for those interested:

Mingw32-GCC 4.7 and above changed the default structure packing algorithm to better match the Microsoft layout.  This caused a hang at level load time because the Parallax code for paging in data assumed, without any checking, that certain misaligned structures were packed without padding.  When the structure became less packed in 4.7+, the code broke and manifested as an infinite loop.  In Fix level load hang on >=mingw32-gcc-4.7, I enabled more aggressive structure packing, which fixed this problem.  Unfortunately, this broke use of std::map, since any system headers included after that pragma directive will use different packing than headers included before it and std::map has a one-byte member adjacent to a more aligned member.  I originally noticed the Win64 crash sometime last year, but ignored it since no one has ever published Rebirth-Win64 builds before, and I thought at the time that it only applied to Win64 builds, not Win32 builds.  By coincidence, I took interest in it last week and tracked down the problem, but the commit did not get put in until after AFP created his snapshot builds.  I realized today that I had no evidence anyone had successfully run Rebirth-Mingw32 in more than a year, so I checked and, at least according to a test program, Win32 builds will have a misaligned std::map when built with that packing pragma.

Back when I fixed the level load hang, I also added some compile time checks to the Parallax paging code, so if a commit changes the structure layout, the build will fail instead of producing a runtime hang.
Reply
#14
That fixed it!!!! It's working fine now! (Under Wine at least).

I also decided to go with your suggestion zico. The date I compiled is now in the filenames, and I'm keeping a list of what dates correspond to what commits in the first post.

Can this thread be stickied and/or moved to the dev section? (Or should it stay here for greater visibility?)
Reply
#15
The beta exe runs fine for me in Wine now.  Nice work AFP.
Reply
#16
OK, I'm going to hijack this thread a bit to announce the availability of beta builds for the Raspberry Pi version.  ;D

Binary packages for raspbian can be found here:
https://www-user.tu-chemnitz.de/~heinm/dxx/deb/beta/

My builds are based on my unification/rpi branch which can be found https://github.com/derhass/dxx-rebirth/t...cation/rpi here. (Most of this is also in the official repo already).

(Note that I completely made up the version number for the packages. I just chose 0.58.1 and added the date as fourth component, to make sure this version is higher than 0.58.1 and lower than whatever the next release will use).

Btw, I also made some binary packages of the current release version as well as some data packages with the shareware/demo game content: https://www-user.tu-chemnitz.de/~heinm/dxx/deb/
"Perfection is attained not when there is nothing more to add, but when there is nothing more to remove." -- Antoine de Saint Exupéry
Reply
#17
Builds updated with homing crash fix and guided missile -> wall fix.
Reply
#18
Builds updated with vsync and kill/suicide score bugs fixed.
Reply
#19
Cool! Big Grin
The vsync issue was almost running me crazy, lol

Just for the sake of testing, I will check out the latest beta build and see if it feels right with vsync enabled.
Reply
#20
New build coming tonight or tomorrow Smile
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)