Lightweight multithreaded video capturing patch (was: dynamic core crashes video recording)

Here you can discuss the development of patches.

Lightweight multithreaded video capturing patch (was: dynamic core crashes video recording)

Postby xcomcmdr » 2014-1-25 @ 12:16

Hello,

Here is my configuration :
- regular x86_64 DOSBox 0.74 provided by my linux distribution
- no config file in ~/.dosbox/
- Archlinux x86_64 (uname : Linux 3.12.8-1-ARCH #1 SMP PREEMPT Thu Jan 16 09:16:34 CET 2014 x86_64 GNU/Linux)
- ASUS N56VV laptop computer :
* core i5 running between 1.20 GHz and 3.14 GHz (it depends on the demand). Two cores, and two additonal virtual cores thanks to HyperThreading
* NVIDIA Optimus (Intel HD 4000 IGP with 64 MB of shared video RAM / NVIDIA GeForce GT 750M with 2 GB of DDR3 VRAM)
* Audio device: Intel Corporation 7 Series/C210 Series Chipset Family High Definition Audio Controller (rev 04)


Here's what happens :
-Launch Quake 1.06 (or any other game that makes dosbox switch to the dynamic core, although it seems to hit the bug more often with DOS 3D games)
-dosbox switches to the dynamic core because of "core=auto" (and switches to max cycles)
-launch video recording
-crashes after a short while with this message :
Code: Select all
Exit to error: DRC64:Unhandled memory reference

OR
with a segmentation fault (usually, the core is dumped, too)
OR
sometimes, dosbox just crashes (quits) without any error reported (the only error is that dosbox disappeared on it's own).

How to avoid it :
- use core=normal
> But then the emulation might be too slow (as it is with quake)
> I've played all the episodes of Quake a lot of times with DOSBox and the dynamic core without any lag or crash (but then again I wasn't trying to record it)
> using the NVIDIA card (by prefixing dosbox with "optirun") or not does not change anything.

Additionnal information
I built a debug version of dosbox (with this PKGBUILD).
Attached / linked to this post are :
- a gdb stack strace from a crash run with Quake 1.06 and the debug build
- a (short) video recording from the same crash run
- a core dump from the same crash run
- the linux debug x86_64 binary build

I did another try with Duke3D (this time with the dosbox binary provided by my distribution, not my debug build), and here is what I got :
A) A frozen Duke3D game after a while
B) This in my terminal once Duke3D was frozen (a lot was printed, my terminal wasn't able to keep it all) :
Code: Select all
Illegal write to efe90237, CS:IP      180:  2510fe
Illegal write to efe90238, CS:IP      180:  2510fe
Illegal write to efe90235, CS:IP      180:  2510fe
Illegal write to efe90236, CS:IP      180:  2510fe
Illegal write to efe90233, CS:IP      180:  2510fe
Illegal write to efe90234, CS:IP      180:  2510fe
Illegal write to efe90231, CS:IP      180:  2510fe
Illegal write to efe90232, CS:IP      180:  2510fe
Illegal write to efe9022f, CS:IP      180:  2510fe
Illegal write to efe90230, CS:IP      180:  2510fe
Illegal write to efe9022d, CS:IP      180:  2510fe
Illegal write to efe9022e, CS:IP      180:  2510fe
Illegal write to efe9022b, CS:IP      180:  2510fe
Illegal write to efe9022c, CS:IP      180:  2510fe
Illegal write to efe90229, CS:IP      180:  2510fe
Illegal write to efe9022a, CS:IP      180:  2510fe
Illegal write to efe90227, CS:IP      180:  2510fe
Illegal write to efe90228, CS:IP      180:  2510fe
Illegal write to efe90225, CS:IP      180:  2510fe
Illegal write to efe90226, CS:IP      180:  2510fe
Illegal write to efe90223, CS:IP      180:  2510fe
Illegal write to efe90224, CS:IP      180:  2510fe
Illegal write to efe90221, CS:IP      180:  2510fe
Illegal write to efe90222, CS:IP      180:  2510fe
Illegal write to efe9021f, CS:IP      180:  2510fe
Illegal write to efe90220, CS:IP      180:  2510fe
Illegal write to efe9021d, CS:IP      180:  2510fe
Illegal write to efe9021e, CS:IP      180:  2510fe
Illegal write to efe9021b, CS:IP      180:  2510fe
Illegal write to efe9021c, CS:IP      180:  2510fe
Illegal write to efe90219, CS:IP      180:  2510fe
Illegal write to efe9021a, CS:IP      180:  2510fe
Illegal write to efe90217, CS:IP      180:  2510fe
Illegal write to efe90218, CS:IP      180:  2510fe
Illegal write to efe90215, CS:IP      180:  2510fe
Illegal write to efe90216, CS:IP      180:  2510fe
Illegal write to efe90213, CS:IP      180:  2510fe
Illegal write to efe90214, CS:IP      180:  2510fe
Illegal write to efe90211, CS:IP      180:  2510fe
Illegal write to efe90212, CS:IP      180:  2510fe
Illegal write to efe9020f, CS:IP      180:  2510fe
Illegal write to efe90210, CS:IP      180:  2510fe
Illegal write to efe9020d, CS:IP      180:  2510fe
Illegal write to efe9020e, CS:IP      180:  2510fe
Illegal write to efe9020b, CS:IP      180:  2510fe
Illegal write to efe9020c, CS:IP      180:  2510fe
Illegal write to efe90209, CS:IP      180:  2510fe
Illegal write to efe9020a, CS:IP      180:  2510fe
Illegal write to efe90207, CS:IP      180:  2510fe
Illegal write to efe90208, CS:IP      180:  2510fe
Illegal write to efe90205, CS:IP      180:  2510fe
Illegal write to efe90206, CS:IP      180:  2510fe
Illegal write to efe90203, CS:IP      180:  2510fe
Illegal write to efe90204, CS:IP      180:  2510fe
Illegal write to efe90201, CS:IP      180:  2510fe
Illegal write to efe90202, CS:IP      180:  2510fe
Illegal write to efe901ff, CS:IP      180:  2510fe
Illegal write to efe90200, CS:IP      180:  2510fe
Illegal write to efe901fd, CS:IP      180:  2510fe
Illegal write to efe901fe, CS:IP      180:  2510fe
Illegal write to efe901fb, CS:IP      180:  2510fe
Illegal write to efe901fc, CS:IP      180:  2510fe
Illegal write to efe901f9, CS:IP      180:  2510fe
Illegal write to efe901fa, CS:IP      180:  2510fe
Illegal write to efe901f7, CS:IP      180:  2510fe
Illegal write to efe901f8, CS:IP      180:  2510fe
Illegal write to efe901f5, CS:IP      180:  2510fe
Illegal write to efe901f6, CS:IP      180:  2510fe
Illegal write to efe901f3, CS:IP      180:  2510fe
Illegal write to efe901f4, CS:IP      180:  2510fe
Illegal write to efe901f1, CS:IP      180:  2510fe
Illegal write to efe901f2, CS:IP      180:  2510fe
Illegal write to efe901ef, CS:IP      180:  2510fe
Illegal write to efe901f0, CS:IP      180:  2510fe
Illegal write to efe901ed, CS:IP      180:  2510fe
Illegal write to efe901ee, CS:IP      180:  2510fe
Illegal write to efe901eb, CS:IP      180:  2510fe
Illegal write to efe901ec, CS:IP      180:  2510fe
Illegal write to efe901e9, CS:IP      180:  2510fe
Illegal write to efe901ea, CS:IP      180:  2510fe
Illegal write to efe901e7, CS:IP      180:  2510fe
Illegal write to efe901e8, CS:IP      180:  2510fe
Illegal write to efe901e5, CS:IP      180:  2510fe
Illegal write to efe901e6, CS:IP      180:  2510fe
Illegal write to efe901e3, CS:IP      180:  2510fe
Illegal write to efe901e4, CS:IP      180:  2510fe
Illegal write to efe901e1, CS:IP      180:  2510fe
Illegal write to efe901e2, CS:IP      180:  2510fe
Illegal write to efe901df, CS:IP      180:  2510fe
Illegal write to efe901e0, CS:IP      180:  2510fe
Illegal write to efe901dd, CS:IP      180:  2510fe
Illegal write to efe901de, CS:IP      180:  2510fe
Illegal write to efe901db, CS:IP      180:  2510fe
Illegal write to efe901dc, CS:IP      180:  2510fe
Illegal write to efe901d9, CS:IP      180:  2510fe
Illegal write to efe901da, CS:IP      180:  2510fe
Illegal write to efe901d7, CS:IP      180:  2510fe
Illegal write to efe901d8, CS:IP      180:  2510fe
Illegal write to efe901d5, CS:IP      180:  2510fe
Illegal write to efe901d6, CS:IP      180:  2510fe
Illegal write to efe901d3, CS:IP      180:  2510fe
Illegal write to efe901d4, CS:IP      180:  2510fe
Illegal write to efe901d1, CS:IP      180:  2510fe
Illegal write to efe901d2, CS:IP      180:  2510fe
Illegal write to efe901cf, CS:IP      180:  2510fe
Illegal write to efe901d0, CS:IP      180:  2510fe
Illegal write to efe901cd, CS:IP      180:  2510fe
Illegal write to efe901ce, CS:IP      180:  2510fe
Illegal write to efe901cb, CS:IP      180:  2510fe
Illegal write to efe901cc, CS:IP      180:  2510fe
Illegal write to efe901c9, CS:IP      180:  2510fe
Illegal write to efe901ca, CS:IP      180:  2510fe
Illegal write to efe901c7, CS:IP      180:  2510fe
Illegal write to efe901c8, CS:IP      180:  2510fe
Illegal write to efe901c5, CS:IP      180:  2510fe
Illegal write to efe901c6, CS:IP      180:  2510fe
Illegal write to efe901c3, CS:IP      180:  2510fe
Illegal write to efe901c4, CS:IP      180:  2510fe
Illegal write to efe901c1, CS:IP      180:  2510fe
Illegal write to efe901c2, CS:IP      180:  2510fe
Illegal write to efe901bf, CS:IP      180:  2510fe
Illegal write to efe901c0, CS:IP      180:  2510fe
Illegal write to efe901bd, CS:IP      180:  2510fe
Illegal write to efe901be, CS:IP      180:  2510fe
Illegal write to efe901bb, CS:IP      180:  2510fe
Illegal write to efe901bc, CS:IP      180:  2510fe
Illegal write to efe901b9, CS:IP      180:  2510fe
Illegal write to efe901ba, CS:IP      180:  2510fe
Illegal write to efe901b7, CS:IP      180:  2510fe
Illegal write to efe901b8, CS:IP      180:  2510fe
Illegal write to efe901b5, CS:IP      180:  2510fe
Illegal write to efe901b6, CS:IP      180:  2510fe
Illegal write to efe901b3, CS:IP      180:  2510fe
Illegal write to efe901b4, CS:IP      180:  2510fe
Illegal write to efe901b1, CS:IP      180:  2510fe
Illegal write to efe901b2, CS:IP      180:  2510fe
Illegal write to efe901af, CS:IP      180:  2510fe
Illegal write to efe901b0, CS:IP      180:  2510fe
Illegal write to efe901ad, CS:IP      180:  2510fe
Illegal write to efe901ae, CS:IP      180:  2510fe
Illegal write to efe901ab, CS:IP      180:  2510fe
Illegal write to efe901ac, CS:IP      180:  2510fe
Illegal write to efe901a9, CS:IP      180:  2510fe
Illegal write to efe901aa, CS:IP      180:  2510fe
Illegal write to efe901a7, CS:IP      180:  2510fe
Illegal write to efe901a8, CS:IP      180:  2510fe
Illegal write to efe901a5, CS:IP      180:  2510fe
Illegal write to efe901a6, CS:IP      180:  2510fe
Illegal write to efe901a3, CS:IP      180:  2510fe
Illegal write to efe901a4, CS:IP      180:  2510fe
Illegal write to efe901a1, CS:IP      180:  2510fe
Illegal write to efe901a2, CS:IP      180:  2510fe
Illegal write to efe9019f, CS:IP      180:  2510fe
Illegal write to efe901a0, CS:IP      180:  2510fe
Illegal write to efe9019d, CS:IP      180:  2510fe
Illegal write to efe9019e, CS:IP      180:  2510fe
Illegal write to efe9019b, CS:IP      180:  2510fe
Illegal write to efe9019c, CS:IP      180:  2510fe
Illegal write to efe90199, CS:IP      180:  2510fe
Illegal write to efe9019a, CS:IP      180:  2510fe
Illegal write to efe90197, CS:IP      180:  2510fe
Illegal write to efe90198, CS:IP      180:  2510fe
Illegal write to efe90195, CS:IP      180:  2510fe
Illegal write to efe90196, CS:IP      180:  2510fe
Illegal write to efe90193, CS:IP      180:  2510fe
Illegal write to efe90194, CS:IP      180:  2510fe
Illegal write to efe90191, CS:IP      180:  2510fe
Illegal write to efe90192, CS:IP      180:  2510fe
Illegal write to efe9018f, CS:IP      180:  2510fe
Illegal write to efe90190, CS:IP      180:  2510fe
Illegal write to efe9018d, CS:IP      180:  2510fe
Illegal write to efe9018e, CS:IP      180:  2510fe
Illegal write to efe9018b, CS:IP      180:  2510fe
Illegal write to efe9018c, CS:IP      180:  2510fe
Illegal write to efe90189, CS:IP      180:  2510fe
Illegal write to efe9018a, CS:IP      180:  2510fe
Illegal write to efe90187, CS:IP      180:  2510fe
Illegal write to efe90188, CS:IP      180:  2510fe
Illegal write to efe90185, CS:IP      180:  2510fe
Illegal write to efe90186, CS:IP      180:  2510fe
Illegal write to efe90183, CS:IP      180:  2510fe
Illegal write to efe90184, CS:IP      180:  2510fe
Illegal write to efe90181, CS:IP      180:  2510fe
Illegal write to efe90182, CS:IP      180:  2510fe
Illegal write to efe9017f, CS:IP      180:  2510fe
Illegal write to efe90180, CS:IP      180:  2510fe
Illegal write to efe9017d, CS:IP      180:  2510fe
Illegal write to efe9017e, CS:IP      180:  2510fe
Illegal write to efe9017b, CS:IP      180:  2510fe
Illegal write to efe9017c, CS:IP      180:  2510fe
Illegal write to efe90179, CS:IP      180:  2510fe
Illegal write to efe9017a, CS:IP      180:  2510fe
Illegal write to efe90177, CS:IP      180:  2510fe
Illegal write to efe90178, CS:IP      180:  2510fe
Illegal write to efe90175, CS:IP      180:  2510fe
Illegal write to efe90176, CS:IP      180:  2510fe
Illegal write to efe90173, CS:IP      180:  2510fe
Illegal write to efe90174, CS:IP      180:  2510fe
Illegal write to efe90171, CS:IP      180:  2510fe
Illegal write to efe90172, CS:IP      180:  2510fe
Illegal write to efe9016f, CS:IP      180:  2510fe
Illegal write to efe90170, CS:IP      180:  2510fe
Illegal write to efe9016d, CS:IP      180:  2510fe
Illegal write to efe9016e, CS:IP      180:  2510fe
Illegal write to efe9016b, CS:IP      180:  2510fe
Illegal write to efe9016c, CS:IP      180:  2510fe
Illegal write to efe90169, CS:IP      180:  2510fe
Illegal write to efe9016a, CS:IP      180:  2510fe
Illegal write to efe90167, CS:IP      180:  2510fe
Illegal write to efe90168, CS:IP      180:  2510fe
Illegal write to efe90165, CS:IP      180:  2510fe
Illegal write to efe90166, CS:IP      180:  2510fe
Illegal write to efe90163, CS:IP      180:  2510fe
Illegal write to efe90164, CS:IP      180:  2510fe
Illegal write to efe90161, CS:IP      180:  2510fe
Illegal write to efe90162, CS:IP      180:  2510fe
Illegal write to efe9015f, CS:IP      180:  2510fe
Illegal write to efe90160, CS:IP      180:  2510fe
Illegal write to efe9015d, CS:IP      180:  2510fe
Illegal write to efe9015e, CS:IP      180:  2510fe
Illegal write to efe9015b, CS:IP      180:  2510fe
Illegal write to efe9015c, CS:IP      180:  2510fe
Illegal write to efe90159, CS:IP      180:  2510fe
Illegal write to efe9015a, CS:IP      180:  2510fe
Illegal write to efe90157, CS:IP      180:  2510fe
Illegal write to efe90158, CS:IP      180:  2510fe
Illegal write to efe90155, CS:IP      180:  2510fe
Illegal write to efe90156, CS:IP      180:  2510fe
Illegal write to efe90153, CS:IP      180:  2510fe
Illegal write to efe90154, CS:IP      180:  2510fe
Illegal write to efe90151, CS:IP      180:  2510fe
Illegal write to efe90152, CS:IP      180:  2510fe
Illegal write to efe9014f, CS:IP      180:  2510fe
Illegal write to efe90150, CS:IP      180:  2510fe
Illegal write to efe9014d, CS:IP      180:  2510fe
Illegal write to efe9014e, CS:IP      180:  2510fe
Illegal write to efe9014b, CS:IP      180:  2510fe
Illegal write to efe9014c, CS:IP      180:  2510fe
Illegal write to efe90149, CS:IP      180:  2510fe
Illegal write to efe9014a, CS:IP      180:  2510fe
Illegal write to efe90147, CS:IP      180:  2510fe
Illegal write to efe90148, CS:IP      180:  2510fe
Illegal write to efe90145, CS:IP      180:  2510fe
Illegal write to efe90146, CS:IP      180:  2510fe
Illegal write to efe90143, CS:IP      180:  2510fe
Illegal write to efe90144, CS:IP      180:  2510fe
Illegal write to efe90141, CS:IP      180:  2510fe
Illegal write to efe90142, CS:IP      180:  2510fe
Illegal write to efe9013f, CS:IP      180:  2510fe
Illegal write to efe90140, CS:IP      180:  2510fe
Illegal write to efe9013d, CS:IP      180:  2510fe
Illegal write to efe9013e, CS:IP      180:  2510fe
Illegal write to efe9013b, CS:IP      180:  2510fe
Illegal write to efe9013c, CS:IP      180:  2510fe
Illegal write to efe90139, CS:IP      180:  2510fe
Illegal write to efe9013a, CS:IP      180:  2510fe
Illegal write to efe90137, CS:IP      180:  2510fe
Illegal write to efe90138, CS:IP      180:  2510fe
Illegal write to efe90135, CS:IP      180:  2510fe
Illegal write to efe90136, CS:IP      180:  2510fe
Illegal write to efe90133, CS:IP      180:  2510fe
Illegal write to efe90134, CS:IP      180:  2510fe
Illegal write to efe90131, CS:IP      180:  2510fe
Illegal write to efe90132, CS:IP      180:  2510fe
Illegal write to efe9012f, CS:IP      180:  2510fe
Illegal write to efe90130, CS:IP      180:  2510fe
Illegal write to efe9012d, CS:IP      180:  2510fe
Illegal write to efe9012e, CS:IP      180:  2510fe
Illegal write to efe9012b, CS:IP      180:  2510fe
Illegal write to efe9012c, CS:IP      180:  2510fe
Illegal write to efe90129, CS:IP      180:  2510fe
Illegal write to efe9012a, CS:IP      180:  2510fe
Illegal write to efe90127, CS:IP      180:  2510fe
Illegal write to efe90128, CS:IP      180:  2510fe
Illegal write to efe90125, CS:IP      180:  2510fe
Illegal write to efe90126, CS:IP      180:  2510fe
Illegal write to efe90123, CS:IP      180:  2510fe
Illegal write to efe90124, CS:IP      180:  2510fe
Illegal write to efe90121, CS:IP      180:  2510fe
Illegal write to efe90122, CS:IP      180:  2510fe
Illegal write to efe9011f, CS:IP      180:  2510fe
Illegal write to efe90120, CS:IP      180:  2510fe
Illegal write to efe9011d, CS:IP      180:  2510fe
Illegal write to efe9011e, CS:IP      180:  2510fe
Illegal write to efe9011b, CS:IP      180:  2510fe
Illegal write to efe9011c, CS:IP      180:  2510fe
Illegal write to efe90119, CS:IP      180:  2510fe
Illegal write to efe9011a, CS:IP      180:  2510fe
Illegal write to efe90117, CS:IP      180:  2510fe
Illegal write to efe90118, CS:IP      180:  2510fe
Illegal write to efe90115, CS:IP      180:  2510fe
Illegal write to efe90116, CS:IP      180:  2510fe
Illegal write to efe90113, CS:IP      180:  2510fe
Illegal write to efe90114, CS:IP      180:  2510fe
Illegal write to efe90111, CS:IP      180:  2510fe
Illegal write to efe90112, CS:IP      180:  2510fe
Illegal write to efe9010f, CS:IP      180:  2510fe
Illegal write to efe90110, CS:IP      180:  2510fe
Illegal write to efe9010d, CS:IP      180:  2510fe
Illegal write to efe9010e, CS:IP      180:  2510fe
Illegal write to efe9010b, CS:IP      180:  2510fe
Illegal write to efe9010c, CS:IP      180:  2510fe
Illegal write to efe90109, CS:IP      180:  2510fe
Illegal write to efe9010a, CS:IP      180:  2510fe
Illegal write to efe90107, CS:IP      180:  2510fe
Illegal write to efe90108, CS:IP      180:  2510fe
Illegal write to efe90105, CS:IP      180:  2510fe
Illegal write to efe90106, CS:IP      180:  2510fe
Illegal write to efe90103, CS:IP      180:  2510fe
Illegal write to efe90104, CS:IP      180:  2510fe
Illegal write to efe90101, CS:IP      180:  2510fe
Illegal write to efe90102, CS:IP      180:  2510fe
Illegal write to efe900ff, CS:IP      180:  2510fe
Illegal write to efe90100, CS:IP      180:  2510fe
Illegal write to efe900fd, CS:IP      180:  2510fe
Illegal write to efe900fe, CS:IP      180:  2510fe
Illegal write to efe900fb, CS:IP      180:  2510fe
Illegal write to efe900fc, CS:IP      180:  2510fe
Illegal write to efe900f9, CS:IP      180:  2510fe
Illegal write to efe900fa, CS:IP      180:  2510fe
Illegal write to efe900f7, CS:IP      180:  2510fe
Illegal write to efe900f8, CS:IP      180:  2510fe
Illegal write to efe900f5, CS:IP      180:  2510fe
Illegal write to efe900f6, CS:IP      180:  2510fe
Illegal write to efe900f3, CS:IP      180:  2510fe
Illegal write to efe900f4, CS:IP      180:  2510fe
Illegal write to efe900f1, CS:IP      180:  2510fe
Illegal write to efe900f2, CS:IP      180:  2510fe
Illegal write to efe900ef, CS:IP      180:  2510fe
Illegal write to efe900f0, CS:IP      180:  2510fe
Illegal write to efe900ed, CS:IP      180:  2510fe
Illegal write to efe900ee, CS:IP      180:  2510fe
Illegal write to efe900eb, CS:IP      180:  2510fe
Illegal write to efe900ec, CS:IP      180:  2510fe
Illegal write to efe900e9, CS:IP      180:  2510fe
Illegal write to efe900ea, CS:IP      180:  2510fe
Illegal write to efe900e7, CS:IP      180:  2510fe
Illegal write to efe900e8, CS:IP      180:  2510fe
Illegal write to efe900e5, CS:IP      180:  2510fe
Illegal write to efe900e6, CS:IP      180:  2510fe
Illegal write to efe900e3, CS:IP      180:  2510fe
Illegal write to efe900e4, CS:IP      180:  2510fe
Illegal write to efe900e1, CS:IP      180:  2510fe
Illegal write to efe900e2, CS:IP      180:  2510fe
Illegal write to efe900df, CS:IP      180:  2510fe
Illegal write to efe900e0, CS:IP      180:  2510fe
Illegal write to efe900dd, CS:IP      180:  2510fe
Illegal write to efe900de, CS:IP      180:  2510fe
Illegal write to efe900db, CS:IP      180:  2510fe
Illegal write to efe900dc, CS:IP      180:  2510fe
Illegal write to efe900d9, CS:IP      180:  2510fe
Illegal write to efe900da, CS:IP      180:  2510fe
Illegal write to efe900d7, CS:IP      180:  2510fe
Illegal write to efe900d8, CS:IP      180:  2510fe
Illegal write to efe900d5, CS:IP      180:  2510fe
Illegal write to efe900d6, CS:IP      180:  2510fe
Illegal write to efe900d3, CS:IP      180:  2510fe
Illegal write to efe900d4, CS:IP      180:  2510fe
Illegal write to efe900d1, CS:IP      180:  2510fe
Illegal write to efe900d2, CS:IP      180:  2510fe
Illegal write to efe900cf, CS:IP      180:  2510fe
Illegal write to efe900d0, CS:IP      180:  2510fe
Illegal write to efe900cd, CS:IP      180:  2510fe
Illegal write to efe900ce, CS:IP      180:  2510fe
Illegal write to efe900cb, CS:IP      180:  2510fe
Illegal write to efe900cc, CS:IP      180:  2510fe
Illegal write to efe900c9, CS:IP      180:  2510fe
Illegal write to efe900ca, CS:IP      180:  2510fe
Illegal write to efe900c7, CS:IP      180:  2510fe
Illegal write to efe900c8, CS:IP      180:  2510fe
Illegal write to efe900c5, CS:IP      180:  2510fe
Illegal write to efe900c6, CS:IP      180:  2510fe
Illegal write to efe900c3, CS:IP      180:  2510fe
Illegal write to efe900c4, CS:IP      180:  2510fe
Illegal write to efe900c1, CS:IP      180:  2510fe
Illegal write to efe900c2, CS:IP      180:  2510fe
Illegal write to efe900bf, CS:IP      180:  2510fe
Illegal write to efe900c0, CS:IP      180:  2510fe
Illegal write to efe900bd, CS:IP      180:  2510fe
Illegal write to efe900be, CS:IP      180:  2510fe
Illegal write to efe900bb, CS:IP      180:  2510fe
Illegal write to efe900bc, CS:IP      180:  2510fe
Illegal write to efe900b9, CS:IP      180:  2510fe
Illegal write to efe900ba, CS:IP      180:  2510fe
Illegal write to efe900b7, CS:IP      180:  2510fe
Illegal write to efe900b8, CS:IP      180:  2510fe
Illegal write to efe900b5, CS:IP      180:  2510fe
Illegal write to efe900b6, CS:IP      180:  2510fe
Illegal write to efe900b3, CS:IP      180:  2510fe
Illegal write to efe900b4, CS:IP      180:  2510fe
Illegal write to efe900b1, CS:IP      180:  2510fe
Illegal write to efe900b2, CS:IP      180:  2510fe
Illegal write to efe900af, CS:IP      180:  2510fe
Illegal write to efe900b0, CS:IP      180:  2510fe
Illegal write to efe900ad, CS:IP      180:  2510fe
Illegal write to efe900ae, CS:IP      180:  2510fe
Illegal write to efe900ab, CS:IP      180:  2510fe
Illegal write to efe900ac, CS:IP      180:  2510fe
Illegal write to efe900a9, CS:IP      180:  2510fe
Illegal write to efe900aa, CS:IP      180:  2510fe
Illegal write to efe900a7, CS:IP      180:  2510fe
Illegal write to efe900a8, CS:IP      180:  2510fe
Illegal write to efe900a5, CS:IP      180:  2510fe
Illegal write to efe900a6, CS:IP      180:  2510fe
Illegal write to efe900a3, CS:IP      180:  2510fe
Illegal write to efe900a4, CS:IP      180:  2510fe
Illegal write to efe900a1, CS:IP      180:  2510fe
Illegal write to efe900a2, CS:IP      180:  2510fe
Illegal write to efe9009f, CS:IP      180:  2510fe
Illegal write to efe900a0, CS:IP      180:  2510fe
Illegal write to efe9009d, CS:IP      180:  2510fe
Illegal write to efe9009e, CS:IP      180:  2510fe
Illegal write to efe9009b, CS:IP      180:  2510fe
Illegal write to efe9009c, CS:IP      180:  2510fe
Illegal write to efe90099, CS:IP      180:  2510fe
Illegal write to efe9009a, CS:IP      180:  2510fe
Illegal write to efe90097, CS:IP      180:  2510fe
Illegal write to efe90098, CS:IP      180:  2510fe
Illegal write to efe90095, CS:IP      180:  2510fe
Illegal write to efe90096, CS:IP      180:  2510fe
Illegal write to efe90093, CS:IP      180:  2510fe
Illegal write to efe90094, CS:IP      180:  2510fe
Illegal write to efe90091, CS:IP      180:  2510fe
Illegal write to efe90092, CS:IP      180:  2510fe
Illegal write to efe9008f, CS:IP      180:  2510fe
Illegal write to efe90090, CS:IP      180:  2510fe
Illegal write to efe9008d, CS:IP      180:  2510fe
Illegal write to efe9008e, CS:IP      180:  2510fe
Illegal write to efe9008b, CS:IP      180:  2510fe
Illegal write to efe9008c, CS:IP      180:  2510fe
Illegal write to efe90089, CS:IP      180:  2510fe
Illegal write to efe9008a, CS:IP      180:  2510fe
Illegal write to efe90087, CS:IP      180:  2510fe
Illegal write to efe90088, CS:IP      180:  2510fe
Illegal write to efe90085, CS:IP      180:  2510fe
Illegal write to efe90086, CS:IP      180:  2510fe
Illegal write to efe90083, CS:IP      180:  2510fe
Illegal write to efe90084, CS:IP      180:  2510fe
Illegal write to efe90081, CS:IP      180:  2510fe
Illegal write to efe90082, CS:IP      180:  2510fe
Illegal write to efe9007f, CS:IP      180:  2510fe
Illegal write to efe90080, CS:IP      180:  2510fe
Illegal write to efe9007d, CS:IP      180:  2510fe
Illegal write to efe9007e, CS:IP      180:  2510fe
Illegal write to efe9007b, CS:IP      180:  2510fe
Illegal write to efe9007c, CS:IP      180:  2510fe
Illegal write to efe90079, CS:IP      180:  2510fe
Illegal write to efe9007a, CS:IP      180:  2510fe
Illegal write to efe90077, CS:IP      180:  2510fe
Illegal write to efe90078, CS:IP      180:  2510fe
Illegal write to efe90075, CS:IP      180:  2510fe
Illegal write to efe90076, CS:IP      180:  2510fe
Illegal write to efe90073, CS:IP      180:  2510fe
Illegal write to efe90074, CS:IP      180:  2510fe
Illegal write to efe90071, CS:IP      180:  2510fe
Illegal write to efe90072, CS:IP      180:  2510fe
Illegal write to efe9006f, CS:IP      180:  2510fe
Illegal write to efe90070, CS:IP      180:  2510fe
Illegal write to efe9006d, CS:IP      180:  2510fe
Illegal write to efe9006e, CS:IP      180:  2510fe
Illegal write to efe9006b, CS:IP      180:  2510fe
Illegal write to efe9006c, CS:IP      180:  2510fe
Illegal write to efe90069, CS:IP      180:  2510fe
Illegal write to efe9006a, CS:IP      180:  2510fe
Illegal write to efe90067, CS:IP      180:  2510fe
Illegal write to efe90068, CS:IP      180:  2510fe
Illegal write to efe90065, CS:IP      180:  2510fe
Illegal write to efe90066, CS:IP      180:  2510fe
Illegal write to efe90063, CS:IP      180:  2510fe
Illegal write to efe90064, CS:IP      180:  2510fe
Illegal write to efe90061, CS:IP      180:  2510fe
Illegal write to efe90062, CS:IP      180:  2510fe
Illegal write to efe9005f, CS:IP      180:  2510fe
Illegal write to efe90060, CS:IP      180:  2510fe
Illegal write to efe9005d, CS:IP      180:  2510fe
Illegal write to efe9005e, CS:IP      180:  2510fe
Illegal write to efe9005b, CS:IP      180:  2510fe
Illegal write to efe9005c, CS:IP      180:  2510fe
Illegal write to efe90059, CS:IP      180:  2510fe
Illegal write to efe9005a, CS:IP      180:  2510fe
Illegal write to efe90057, CS:IP      180:  2510fe
Illegal write to efe90058, CS:IP      180:  2510fe
Illegal write to efe90055, CS:IP      180:  2510fe
Illegal write to efe90056, CS:IP      180:  2510fe
Illegal write to efe90053, CS:IP      180:  2510fe
Illegal write to efe90054, CS:IP      180:  2510fe
Illegal write to efe90051, CS:IP      180:  2510fe
Illegal write to efe90052, CS:IP      180:  2510fe
Illegal write to efe9004f, CS:IP      180:  2510fe
Illegal write to efe90050, CS:IP      180:  2510fe
Illegal write to efe9004d, CS:IP      180:  2510fe
Illegal write to efe9004e, CS:IP      180:  2510fe
Illegal write to efe9004b, CS:IP      180:  2510fe
Illegal write to efe9004c, CS:IP      180:  2510fe
Illegal write to efe90049, CS:IP      180:  2510fe
Illegal write to efe9004a, CS:IP      180:  2510fe
Illegal write to efe90047, CS:IP      180:  2510fe
Illegal write to efe90048, CS:IP      180:  2510fe
Illegal write to efe90045, CS:IP      180:  2510fe
Illegal write to efe90046, CS:IP      180:  2510fe
Illegal write to efe90043, CS:IP      180:  2510fe
Illegal write to efe90044, CS:IP      180:  2510fe
Illegal write to efe90041, CS:IP      180:  2510fe
Illegal write to efe90042, CS:IP      180:  2510fe
Illegal write to efe9003f, CS:IP      180:  2510fe
Illegal write to efe90040, CS:IP      180:  2510fe
Illegal write to efe9003d, CS:IP      180:  2510fe
Illegal write to efe9003e, CS:IP      180:  2510fe
Illegal write to efe9023d, CS:IP      180:  251183
Illegal write to efe9023e, CS:IP      180:  251183
Illegal write to efe9023b, CS:IP      180:  2510fe
Illegal write to efe9023c, CS:IP      180:  2510fe
Illegal write to efe90239, CS:IP      180:  2510fe
Illegal write to efe9023a, CS:IP      180:  2510fe
Illegal write to efe90237, CS:IP      180:  2510fe
Illegal write to efe90238, CS:IP      180:  2510fe
Illegal write to efe90235, CS:IP      180:  2510fe
Illegal write to efe90236, CS:IP      180:  2510fe
Illegal write to efe90233, CS:IP      180:  2510fe
Illegal write to efe90234, CS:IP      180:  2510fe
Illegal write to efe90231, CS:IP      180:  2510fe
Illegal write to efe90232, CS:IP      180:  2510fe
Illegal write to efe9022f, CS:IP      180:  2510fe
Illegal write to efe90230, CS:IP      180:  2510fe
Illegal write to efe9022d, CS:IP      180:  2510fe
Illegal write to efe9022e, CS:IP      180:  2510fe
Illegal write to efe9022b, CS:IP      180:  2510fe
Illegal write to efe9022c, CS:IP      180:  2510fe
Illegal write to efe90229, CS:IP      180:  2510fe
Illegal write to efe9022a, CS:IP      180:  2510fe
Illegal write to efe90227, CS:IP      180:  2510fe
Illegal write to efe90228, CS:IP      180:  2510fe
Illegal write to efe90225, CS:IP      180:  2510fe
Illegal write to efe90226, CS:IP      180:  2510fe
Illegal write to efe90223, CS:IP      180:  2510fe
Illegal write to efe90224, CS:IP      180:  2510fe
Illegal write to efe90221, CS:IP      180:  2510fe
Illegal write to efe90222, CS:IP      180:  2510fe
Illegal write to efe9021f, CS:IP      180:  2510fe
Illegal write to efe90220, CS:IP      180:  2510fe
Illegal write to efe9021d, CS:IP      180:  2510fe
Illegal write to efe9021e, CS:IP      180:  2510fe
Illegal write to efe9021b, CS:IP      180:  2510fe
Illegal write to efe9021c, CS:IP      180:  2510fe
Illegal write to efe90219, CS:IP      180:  2510fe
Illegal write to efe9021a, CS:IP      180:  2510fe
Illegal write to efe90217, CS:IP      180:  2510fe
Illegal write to efe90218, CS:IP      180:  2510fe
Illegal write to efe90215, CS:IP      180:  2510fe
Illegal write to efe90216, CS:IP      180:  2510fe
Illegal write to efe90213, CS:IP      180:  2510fe
Illegal write to efe90214, CS:IP      180:  2510fe
Illegal write to efe90211, CS:IP      180:  2510fe
Illegal write to efe90212, CS:IP      180:  2510fe
Illegal write to efe9020f, CS:IP      180:  2510fe
Illegal write to efe90210, CS:IP      180:  2510fe
Illegal write to efe9020d, CS:IP      180:  2510fe
Illegal write to efe9020e, CS:IP      180:  2510fe
Illegal write to efe9020b, CS:IP      180:  2510fe
Illegal write to efe9020c, CS:IP      180:  2510fe
Illegal write to efe90209, CS:IP      180:  2510fe
Illegal write to efe9020a, CS:IP      180:  2510fe
Illegal write to efe90207, CS:IP      180:  2510fe
Illegal write to efe90208, CS:IP      180:  2510fe
Illegal write to efe90205, CS:IP      180:  2510fe
Illegal write to efe90206, CS:IP      180:  2510fe
Illegal write to efe90203, CS:IP      180:  2510fe
Illegal write to efe90204, CS:IP      180:  2510fe
Illegal write to efe90201, CS:IP      180:  2510fe
Illegal write to efe90202, CS:IP      180:  2510fe
Illegal write to efe901ff, CS:IP      180:  2510fe
Illegal write to efe90200, CS:IP      180:  2510fe
Illegal write to efe901fd, CS:IP      180:  2510fe
Illegal write to efe901fe, CS:IP      180:  2510fe
Illegal write to efe901fb, CS:IP      180:  2510fe
Illegal write to efe901fc, CS:IP      180:  2510fe
Illegal write to efe901f9, CS:IP      180:  2510fe
Illegal write to efe901fa, CS:IP      180:  2510fe
Illegal write to efe901f7, CS:IP      180:  2510fe
Illegal write to efe901f8, CS:IP      180:  2510fe
Illegal write to efe901f5, CS:IP      180:  2510fe
Illegal write to efe901f6, CS:IP      180:  2510fe
Illegal write to efe901f3, CS:IP      180:  2510fe
Illegal write to efe901f4, CS:IP      180:  2510fe
Illegal write to efe901f1, CS:IP      180:  2510fe
Illegal write to efe901f2, CS:IP      180:  2510fe
Illegal write to efe901ef, CS:IP      180:  2510fe
Illegal write to efe901f0, CS:IP      180:  2510fe
Illegal write to efe901ed, CS:IP      180:  2510fe
Illegal write to efe901ee, CS:IP      180:  2510fe
Illegal write to efe901eb, CS:IP      180:  2510fe
Illegal write to efe901ec, CS:IP      180:  2510fe
Illegal write to efe901e9, CS:IP      180:  2510fe
Illegal write to efe901ea, CS:IP      180:  2510fe
Illegal write to efe901e7, CS:IP      180:  2510fe
Illegal write to efe901e8, CS:IP      180:  2510fe
Illegal write to efe901e5, CS:IP      180:  2510fe
Illegal write to efe901e6, CS:IP      180:  2510fe
Illegal write to efe901e3, CS:IP      180:  2510fe
Illegal write to efe901e4, CS:IP      180:  2510fe
Illegal write to efe901e1, CS:IP      180:  2510fe
Illegal write to efe901e2, CS:IP      180:  2510fe
Illegal write to efe901df, CS:IP      180:  2510fe
Illegal write to efe901e0, CS:IP      180:  2510fe
Illegal write to efe901dd, CS:IP      180:  2510fe
Illegal write to efe901de, CS:IP      180:  2510fe
Illegal write to efe901db, CS:IP      180:  2510fe
Illegal write to efe901dc, CS:IP      180:  2510fe
Illegal write to efe901d9, CS:IP      180:  2510fe
Illegal write to efe901da, CS:IP      180:  2510fe
Illegal write to efe901d7, CS:IP      180:  2510fe
Illegal write to efe901d8, CS:IP      180:  2510fe
Illegal write to efe901d5, CS:IP      180:  2510fe
Illegal write to efe901d6, CS:IP      180:  2510fe
Illegal write to efe901d3, CS:IP      180:  2510fe
Illegal write to efe901d4, CS:IP      180:  2510fe
Illegal write to efe901d1, CS:IP      180:  2510fe
Illegal write to efe901d2, CS:IP      180:  2510fe
Illegal write to efe901cf, CS:IP      180:  2510fe
Illegal write to efe901d0, CS:IP      180:  2510fe
Illegal write to efe901cd, CS:IP      180:  2510fe
Illegal write to efe901ce, CS:IP      180:  2510fe
Illegal write to efe901cb, CS:IP      180:  2510fe
Illegal write to efe901cc, CS:IP      180:  2510fe
Illegal write to efe901c9, CS:IP      180:  2510fe
Illegal write to efe901ca, CS:IP      180:  2510fe
Illegal write to efe901c7, CS:IP      180:  2510fe
Illegal write to efe901c8, CS:IP      180:  2510fe
Illegal write to efe901c5, CS:IP      180:  2510fe
Illegal write to efe901c6, CS:IP      180:  2510fe
Illegal write to efe901c3, CS:IP      180:  2510fe
Illegal write to efe901c4, CS:IP      180:  2510fe
Illegal write to efe901c1, CS:IP      180:  2510fe
Illegal write to efe901c2, CS:IP      180:  2510fe
Illegal write to efe901bf, CS:IP      180:  2510fe
Illegal write to efe901c0, CS:IP      180:  2510fe
Illegal write to efe901bd, CS:IP      180:  2510fe
Illegal write to efe901be, CS:IP      180:  2510fe
Illegal write to efe901bb, CS:IP      180:  2510fe
Illegal write to efe901bc, CS:IP      180:  2510fe
Illegal write to efe901b9, CS:IP      180:  2510fe
Illegal write to efe901ba, CS:IP      180:  2510fe
Illegal write to efe901b7, CS:IP      180:  2510fe
Illegal write to efe901b8, CS:IP      180:  2510fe
Illegal write to efe901b5, CS:IP      180:  2510fe
Illegal write to efe901b6, CS:IP      180:  2510fe
Illegal write to efe901b3, CS:IP      180:  2510fe
Illegal write to efe901b4, CS:IP      180:  2510fe
Illegal write to efe901b1, CS:IP      180:  2510fe
Illegal write to efe901b2, CS:IP      180:  2510fe
Illegal write to efe901af, CS:IP      180:  2510fe
Illegal write to efe901b0, CS:IP      180:  2510fe
Illegal write to efe901ad, CS:IP      180:  2510fe
Illegal write to efe901ae, CS:IP      180:  2510fe
Illegal write to efe901ab, CS:IP      180:  2510fe
Illegal write to efe901ac, CS:IP      180:  2510fe
Illegal write to efe901a9, CS:IP      180:  2510fe
Illegal write to efe901aa, CS:IP      180:  2510fe
Illegal write to efe901a7, CS:IP      180:  2510fe
Illegal write to efe901a8, CS:IP      180:  2510fe
Illegal write to efe901a5, CS:IP      180:  2510fe
Illegal write to efe901a6, CS:IP      180:  2510fe
Illegal write to efe901a3, CS:IP      180:  2510fe
Illegal write to efe901a4, CS:IP      180:  2510fe
Illegal write to efe901a1, CS:IP      180:  2510fe
Illegal write to efe901a2, CS:IP      180:  2510fe
Illegal write to efe9019f, CS:IP      180:  2510fe
Illegal write to efe901a0, CS:IP      180:  2510fe
Illegal write to efe9019d, CS:IP      180:  2510fe
Illegal write to efe9019e, CS:IP      180:  2510fe
Illegal write to efe9019b, CS:IP      180:  2510fe
Illegal write to efe9019c, CS:IP      180:  2510fe
Illegal write to efe90199, CS:IP      180:  2510fe
Illegal write to efe9019a, CS:IP      180:  2510fe
Illegal write to efe90197, CS:IP      180:  2510fe
Illegal write to efe90198, CS:IP      180:  2510fe
Illegal write to efe90195, CS:IP      180:  2510fe
Illegal write to efe90196, CS:IP      180:  2510fe
Illegal write to efe90193, CS:IP      180:  2510fe
Illegal write to efe90194, CS:IP      180:  2510fe
Illegal write to efe90191, CS:IP      180:  2510fe
Illegal write to efe90192, CS:IP      180:  2510fe
Illegal write to efe9018f, CS:IP      180:  2510fe
Illegal write to efe90190, CS:IP      180:  2510fe
Illegal write to efe9018d, CS:IP      180:  2510fe
Illegal write to efe9018e, CS:IP      180:  2510fe
Illegal write to efe9018b, CS:IP      180:  2510fe
Illegal write to efe9018c, CS:IP      180:  2510fe
Illegal write to efe90189, CS:IP      180:  2510fe
Illegal write to efe9018a, CS:IP      180:  2510fe
Illegal write to efe90187, CS:IP      180:  2510fe
Illegal write to efe90188, CS:IP      180:  2510fe
Illegal write to efe90185, CS:IP      180:  2510fe
Illegal write to efe90186, CS:IP      180:  2510fe
Illegal write to efe90183, CS:IP      180:  2510fe
Illegal write to efe90184, CS:IP      180:  2510fe
Illegal write to efe90181, CS:IP      180:  2510fe
Illegal write to efe90182, CS:IP      180:  2510fe
Illegal write to efe9017f, CS:IP      180:  2510fe
Illegal write to efe90180, CS:IP      180:  2510fe
Illegal write to efe9017d, CS:IP      180:  2510fe
Illegal write to efe9017e, CS:IP      180:  2510fe
Illegal write to efe9017b, CS:IP      180:  2510fe
Illegal write to efe9017c, CS:IP      180:  2510fe
Illegal write to efe90179, CS:IP      180:  2510fe
Illegal write to efe9017a, CS:IP      180:  2510fe
Illegal write to efe90177, CS:IP      180:  2510fe
Illegal write to efe90178, CS:IP      180:  2510fe
Illegal write to efe90175, CS:IP      180:  2510fe
Illegal write to efe90176, CS:IP      180:  2510fe
Illegal write to efe90173, CS:IP      180:  2510fe
Illegal write to efe90174, CS:IP      180:  2510fe
Illegal write to efe90171, CS:IP      180:  2510fe
Illegal write to efe90172, CS:IP      180:  2510fe
Illegal write to efe9016f, CS:IP      180:  2510fe
Illegal write to efe90170, CS:IP      180:  2510fe
Illegal write to efe9016d, CS:IP      180:  2510fe
Illegal write to efe9016e, CS:IP      180:  2510fe
Illegal write to efe9016b, CS:IP      180:  2510fe
Illegal write to efe9016c, CS:IP      180:  2510fe
Illegal write to efe90169, CS:IP      180:  2510fe
Illegal write to efe9016a, CS:IP      180:  2510fe
Illegal write to efe90167, CS:IP      180:  2510fe
Illegal write to efe90168, CS:IP      180:  2510fe
Illegal write to efe90165, CS:IP      180:  2510fe
Illegal write to efe90166, CS:IP      180:  2510fe
Illegal write to efe90163, CS:IP      180:  2510fe
Illegal write to efe90164, CS:IP      180:  2510fe
Illegal write to efe90161, CS:IP      180:  2510fe
Illegal write to efe90162, CS:IP      180:  2510fe
Illegal write to efe9015f, CS:IP      180:  2510fe
Illegal write to efe90160, CS:IP      180:  2510fe
Illegal write to efe9015d, CS:IP      180:  2510fe
Illegal write to efe9015e, CS:IP      180:  2510fe
Illegal write to efe9015b, CS:IP      180:  2510fe
Illegal write to efe9015c, CS:IP      180:  2510fe
Illegal write to efe90159, CS:IP      180:  2510fe
Illegal write to efe9015a, CS:IP      180:  2510fe
Illegal write to efe90157, CS:IP      180:  2510fe
Illegal write to efe90158, CS:IP      180:  2510fe
Illegal write to efe90155, CS:IP      180:  2510fe
Illegal write to efe90156, CS:IP      180:  2510fe
Illegal write to efe90153, CS:IP      180:  2510fe
Illegal write to efe90154, CS:IP      180:  2510fe
Illegal write to efe90151, CS:IP      180:  2510fe
Illegal write to efe90152, CS:IP      180:  2510fe
Illegal write to efe9014f, CS:IP      180:  2510fe
Illegal write to efe90150, CS:IP      180:  2510fe
Illegal write to efe9014d, CS:IP      180:  2510fe
Illegal write to efe9014e, CS:IP      180:  2510fe
Illegal write to efe9014b, CS:IP      180:  2510fe
Illegal write to efe9014c, CS:IP      180:  2510fe
Illegal write to efe90149, CS:IP      180:  2510fe
Illegal write to efe9014a, CS:IP      180:  2510fe
Illegal write to efe90147, CS:IP      180:  2510fe
Illegal write to efe90148, CS:IP      180:  2510fe
Illegal write to efe90145, CS:IP      180:  2510fe
Illegal write to efe90146, CS:IP      180:  2510fe
Illegal write to efe90143, CS:IP      180:  2510fe
Illegal write to efe90144, CS:IP      180:  2510fe
Illegal write to efe90141, CS:IP      180:  2510fe
Illegal write to efe90142, CS:IP      180:  2510fe
Illegal write to efe9013f, CS:IP      180:  2510fe
Illegal write to efe90140, CS:IP      180:  2510fe
Illegal write to efe9013d, CS:IP      180:  2510fe
Illegal write to efe9013e, CS:IP      180:  2510fe
Illegal write to efe9013b, CS:IP      180:  2510fe
Illegal write to efe9013c, CS:IP      180:  2510fe
Illegal write to efe90139, CS:IP      180:  2510fe
Illegal write to efe9013a, CS:IP      180:  2510fe
Illegal write to efe90137, CS:IP      180:  2510fe
Illegal write to efe90138, CS:IP      180:  2510fe
Illegal write to efe90135, CS:IP      180:  2510fe
Illegal write to efe90136, CS:IP      180:  2510fe
Illegal write to efe90133, CS:IP      180:  2510fe
Illegal write to efe90134, CS:IP      180:  2510fe
Illegal write to efe90131, CS:IP      180:  2510fe
Illegal write to efe90132, CS:IP      180:  2510fe
Illegal write to efe9012f, CS:IP      180:  2510fe
Illegal write to efe90130, CS:IP      180:  2510fe
Illegal write to efe9012d, CS:IP      180:  2510fe
Illegal write to efe9012e, CS:IP      180:  2510fe
Illegal write to efe9012b, CS:IP      180:  2510fe
Illegal write to efe9012c, CS:IP      180:  2510fe
Illegal write to efe90129, CS:IP      180:  2510fe
Illegal write to efe9012a, CS:IP      180:  2510fe
Illegal write to efe90127, CS:IP      180:  2510fe
Illegal write to efe90128, CS:IP      180:  2510fe
Illegal write to efe90125, CS:IP      180:  2510fe
Illegal write to efe90126, CS:IP      180:  2510fe
Illegal write to efe90123, CS:IP      180:  2510fe
Illegal write to efe90124, CS:IP      180:  2510fe
Illegal write to efe90121, CS:IP      180:  2510fe
Illegal write to efe90122, CS:IP      180:  2510fe
Illegal write to efe9011f, CS:IP      180:  2510fe
Illegal write to efe90120, CS:IP      180:  2510fe
Illegal write to efe9011d, CS:IP      180:  2510fe
Illegal write to efe9011e, CS:IP      180:  2510fe
Illegal write to efe9011b, CS:IP      180:  2510fe
Illegal write to efe9011c, CS:IP      180:  2510fe
Illegal write to efe90119, CS:IP      180:  2510fe
Illegal write to efe9011a, CS:IP      180:  2510fe
Illegal write to efe90117, CS:IP      180:  2510fe
Illegal write to efe90118, CS:IP      180:  2510fe
Illegal write to efe90115, CS:IP      180:  2510fe
Illegal write to efe90116, CS:IP      180:  2510fe
Illegal write to efe90113, CS:IP      180:  2510fe
Illegal write to efe90114, CS:IP      180:  2510fe
Illegal write to efe90111, CS:IP      180:  2510fe
Illegal write to efe90112, CS:IP      180:  2510fe
Illegal write to efe9010f, CS:IP      180:  2510fe
Illegal write to efe90110, CS:IP      180:  2510fe
Illegal write to efe9010d, CS:IP      180:  2510fe
Illegal write to efe9010e, CS:IP      180:  2510fe
Illegal write to efe9010b, CS:IP      180:  2510fe
Illegal write to efe9010c, CS:IP      180:  2510fe
Illegal write to efe90109, CS:IP      180:  2510fe
Illegal write to efe9010a, CS:IP      180:  2510fe
Illegal write to efe90107, CS:IP      180:  2510fe
Illegal write to efe90108, CS:IP      180:  2510fe
Illegal write to efe90105, CS:IP      180:  2510fe
Illegal write to efe90106, CS:IP      180:  2510fe
Illegal write to efe90103, CS:IP      180:  2510fe
Illegal write to efe90104, CS:IP      180:  2510fe
Illegal write to efe90101, CS:IP      180:  2510fe
Illegal write to efe90102, CS:IP      180:  2510fe
Illegal write to efe900ff, CS:IP      180:  2510fe
Illegal write to efe90100, CS:IP      180:  2510fe
Illegal write to efe900fd, CS:IP      180:  2510fe
Illegal write to efe900fe, CS:IP      180:  2510fe
Illegal write to efe900fb, CS:IP      180:  2510fe
Illegal write to efe900fc, CS:IP      180:  2510fe
Illegal write to efe900f9, CS:IP      180:  2510fe
Illegal write to efe900fa, CS:IP      180:  2510fe
Illegal write to efe900f7, CS:IP      180:  2510fe
Illegal write to efe900f8, CS:IP      180:  2510fe
Illegal write to efe900f5, CS:IP      180:  2510fe
Illegal write to efe900f6, CS:IP      180:  2510fe
Illegal write to efe900f3, CS:IP      180:  2510fe
Illegal write to efe900f4, CS:IP      180:  2510fe
Illegal write to efe900f1, CS:IP      180:  2510fe
Illegal write to efe900f2, CS:IP      180:  2510fe
Illegal write to efe900ef, CS:IP      180:  2510fe
Illegal write to efe900f0, CS:IP      180:  2510fe
Illegal write to efe900ed, CS:IP      180:  2510fe
Illegal write to efe900ee, CS:IP      180:  2510fe
Illegal write to efe900eb, CS:IP      180:  2510fe
Illegal write to efe900ec, CS:IP      180:  2510fe
Illegal write to efe900e9, CS:IP      180:  2510fe
Illegal write to efe900ea, CS:IP      180:  2510fe
Illegal write to efe900e7, CS:IP      180:  2510fe
Illegal write to efe900e8, CS:IP      180:  2510fe
Illegal write to efe900e5, CS:IP      180:  2510fe
Illegal write to efe900e6, CS:IP      180:  2510fe
Illegal write to efe900e3, CS:IP      180:  2510fe
Illegal write to efe900e4, CS:IP      180:  2510fe
Illegal write to efe900e1, CS:IP      180:  2510fe
Illegal write to efe900e2, CS:IP      180:  2510fe
Illegal write to efe900df, CS:IP      180:  2510fe
Illegal write to efe900e0, CS:IP      180:  2510fe
Illegal write to efe900dd, CS:IP      180:  2510fe
Illegal write to efe900de, CS:IP      180:  2510fe
Illegal write to efe900db, CS:IP      180:  2510fe
Illegal write to efe900dc, CS:IP      180:  2510fe
Illegal write to efe900d9, CS:IP      180:  2510fe
Illegal write to efe900da, CS:IP      180:  2510fe
Illegal write to efe900d7, CS:IP      180:  2510fe
Illegal write to efe900d8, CS:IP      180:  2510fe
Illegal write to efe900d5, CS:IP      180:  2510fe
Illegal write to efe900d6, CS:IP      180:  2510fe
Illegal write to efe900d3, CS:IP      180:  2510fe
Illegal write to efe900d4, CS:IP      180:  2510fe
Illegal write to efe900d1, CS:IP      180:  2510fe
Illegal write to efe900d2, CS:IP      180:  2510fe
Illegal write to efe900cf, CS:IP      180:  2510fe
Illegal write to efe900d0, CS:IP      180:  2510fe
Illegal write to efe900cd, CS:IP      180:  2510fe
Illegal write to efe900ce, CS:IP      180:  2510fe
Illegal write to efe900cb, CS:IP      180:  2510fe
Illegal write to efe900cc, CS:IP      180:  2510fe
Illegal write to efe900c9, CS:IP      180:  2510fe
Illegal write to efe900ca, CS:IP      180:  2510fe
Illegal write to efe900c7, CS:IP      180:  2510fe
Illegal write to efe900c8, CS:IP      180:  2510fe
Illegal write to efe900c5, CS:IP      180:  2510fe
Illegal write to efe900c6, CS:IP      180:  2510fe
Illegal write to efe900c3, CS:IP      180:  2510fe
Illegal write to efe900c4, CS:IP      180:  2510fe
Illegal write to efe900c1, CS:IP      180:  2510fe
Illegal write to efe900c2, CS:IP      180:  2510fe
Illegal write to efe900bf, CS:IP      180:  2510fe
Illegal write to efe900c0, CS:IP      180:  2510fe
Illegal write to efe900bd, CS:IP      180:  2510fe
Illegal write to efe900be, CS:IP      180:  2510fe
Illegal write to efe900bb, CS:IP      180:  2510fe
Illegal write to efe900bc, CS:IP      180:  2510fe
Illegal write to efe900b9, CS:IP      180:  2510fe
Illegal write to efe900ba, CS:IP      180:  2510fe
Illegal write to efe900b7, CS:IP      180:  2510fe
Illegal write to efe900b8, CS:IP      180:  2510fe
Illegal write to efe900b5, CS:IP      180:  2510fe
Illegal write to efe900b6, CS:IP      180:  2510fe
Illegal write to efe900b3, CS:IP      180:  2510fe
Illegal write to efe900b4, CS:IP      180:  2510fe
Illegal write to efe900b1, CS:IP      180:  2510fe
Illegal write to efe900b2, CS:IP      180:  2510fe
Illegal write to efe900af, CS:IP      180:  2510fe
Illegal write to efe900b0, CS:IP      180:  2510fe
Illegal write to efe900ad, CS:IP      180:  2510fe
Illegal write to efe900ae, CS:IP      180:  2510fe
Illegal write to efe900ab, CS:IP      180:  2510fe
Illegal write to efe900ac, CS:IP      180:  2510fe
Illegal write to efe900a9, CS:IP      180:  2510fe
Illegal write to efe900aa, CS:IP      180:  2510fe
Illegal write to efe900a7, CS:IP      180:  2510fe
Illegal write to efe900a8, CS:IP      180:  2510fe
Illegal write to efe900a5, CS:IP      180:  2510fe
Illegal write to efe900a6, CS:IP      180:  2510fe
Illegal write to efe900a3, CS:IP      180:  2510fe
Illegal write to efe900a4, CS:IP      180:  2510fe
Illegal write to efe900a1, CS:IP      180:  2510fe
Illegal write to efe900a2, CS:IP      180:  2510fe
Illegal write to efe9009f, CS:IP      180:  2510fe
Illegal write to efe900a0, CS:IP      180:  2510fe
Illegal write to efe9009d, CS:IP      180:  2510fe
Illegal write to efe9009e, CS:IP      180:  2510fe
Illegal write to efe9009b, CS:IP      180:  2510fe
Illegal write to efe9009c, CS:IP      180:  2510fe
Illegal write to efe90099, CS:IP      180:  2510fe
Illegal write to efe9009a, CS:IP      180:  2510fe
Illegal write to efe90097, CS:IP      180:  2510fe
Illegal write to efe90098, CS:IP      180:  2510fe
Illegal write to efe90095, CS:IP      180:  2510fe
Illegal write to efe90096, CS:IP      180:  2510fe
Illegal write to efe90093, CS:IP      180:  2510fe
Illegal write to efe90094, CS:IP      180:  2510fe
Illegal write to efe90091, CS:IP      180:  2510fe
Illegal write to efe90092, CS:IP      180:  2510fe
Illegal write to efe9008f, CS:IP      180:  2510fe
Illegal write to efe90090, CS:IP      180:  2510fe
Illegal write to efe9008d, CS:IP      180:  2510fe
Illegal write to efe9008e, CS:IP      180:  2510fe
Illegal write to efe9008b, CS:IP      180:  2510fe
Illegal write to efe9008c, CS:IP      180:  2510fe
Illegal write to efe90089, CS:IP      180:  2510fe
Illegal write to efe9008a, CS:IP      180:  2510fe
Illegal write to efe90087, CS:IP      180:  2510fe
Illegal write to efe90088, CS:IP      180:  2510fe
Illegal write to efe90085, CS:IP      180:  2510fe
Illegal write to efe90086, CS:IP      180:  2510fe
Illegal write to efe90083, CS:IP      180:  2510fe
Illegal write to efe90084, CS:IP      180:  2510fe
Illegal write to efe90081, CS:IP      180:  2510fe
Illegal write to efe90082, CS:IP      180:  2510fe
Illegal write to efe9007f, CS:IP      180:  2510fe
Illegal write to efe90080, CS:IP      180:  2510fe
Illegal write to efe9007d, CS:IP      180:  2510fe
Illegal write to efe9007e, CS:IP      180:  2510fe
Illegal write to efe9007b, CS:IP      180:  2510fe
Illegal write to efe9007c, CS:IP      180:  2510fe
Illegal write to efe90079, CS:IP      180:  2510fe
Illegal write to efe9007a, CS:IP      180:  2510fe
Illegal write to efe90077, CS:IP      180:  2510fe
Illegal write to efe90078, CS:IP      180:  2510fe
Illegal write to efe90075, CS:IP      180:  2510fe
Illegal write to efe90076, CS:IP      180:  2510fe
Illegal write to efe90073, CS:IP      180:  2510fe
Illegal write to efe90074, CS:IP      180:  2510fe
Illegal write to efe90071, CS:IP      180:  2510fe
Illegal write to efe90072, CS:IP      180:  2510fe
Illegal write to efe9006f, CS:IP      180:  2510fe
Illegal write to efe90070, CS:IP      180:  2510fe
Illegal write to efe9006d, CS:IP      180:  2510fe
Illegal write to efe9006e, CS:IP      180:  2510fe
Illegal write to efe9006b, CS:IP      180:  2510fe
Illegal write to efe9006c, CS:IP      180:  2510fe
Illegal write to efe90069, CS:IP      180:  2510fe
Illegal write to efe9006a, CS:IP      180:  2510fe
Illegal write to efe90067, CS:IP      180:  2510fe
Illegal write to efe90068, CS:IP      180:  2510fe
Illegal write to efe90065, CS:IP      180:  2510fe
Illegal write to efe90066, CS:IP      180:  2510fe
Illegal write to efe90063, CS:IP      180:  2510fe
Illegal write to efe90064, CS:IP      180:  2510fe
Illegal write to efe90061, CS:IP      180:  2510fe
Illegal write to efe90062, CS:IP      180:  2510fe
Illegal write to efe9005f, CS:IP      180:  2510fe
Illegal write to efe90060, CS:IP      180:  2510fe
Illegal write to efe9005d, CS:IP      180:  2510fe
Illegal write to efe9005e, CS:IP      180:  2510fe
Illegal write to efe9005b, CS:IP      180:  2510fe
Illegal write to efe9005c, CS:IP      180:  2510fe
Illegal write to efe90059, CS:IP      180:  2510fe
Illegal write to efe9005a, CS:IP      180:  2510fe
Illegal write to efe90057, CS:IP      180:  2510fe
Illegal write to efe90058, CS:IP      180:  2510fe

I can stop the recording and restart it, but DOSBox and Duke3D are otherwise frozen :
Code: Select all
Stopped capturing video.
Capturing Video to /home/max/.dosbox/capture/duke3d_001.avi
Stopped capturing video.

I recorded what it looked like in the attached file out-1.ogv.7z (video codec : theora, audio codec : ogg vorbis)
I was able to quit with a Ctrl^C at the terminal window

* To be sure that this crash was related, I let Duke3D run for an hour without any recording : it never crashed.

(both Quake and Duke3D are demanding 3D games and both show gameplay demos when one launches them and then leave them alone, which is very useful to test dosbox while doing something else)

Finally, here are the first and second Duke3D video recorded by DOSBox.
You do not have the required permissions to view the files attached to this post.
Last edited by xcomcmdr on 2014-1-26 @ 08:46, edited 4 times in total.
User avatar
xcomcmdr
Newbie
 
Posts: 72
Joined: 2009-9-19 @ 01:03

Re: [Bug report] DOSBox 0.74 : dynamic core crashes with video recording active

Postby Dominus » 2014-1-25 @ 13:19

there have been some fixes to the dynrec in regard to 64bit, maybe try the SVN.
Btw. the most stable and presumably fastest way is to run a 32bit DOSBox, because the dynrec core is optimized for that.
User avatar
Dominus
DOSBox Moderator
 
Posts: 7381
Joined: 2002-10-03 @ 09:54
Location: Vienna

Re: [Bug report] DOSBox 0.74 : dynamic core crashes with video recording active

Postby xcomcmdr » 2014-1-25 @ 13:35

Thanks !
I'll try this package script then : [AUR] bin32-dosbox-svn
User avatar
xcomcmdr
Newbie
 
Posts: 72
Joined: 2009-9-19 @ 01:03

Re: [Bug report] DOSBox 0.74 : dynamic core crashes with video recording active

Postby xcomcmdr » 2014-1-25 @ 18:26

I can confirm now that it works fine with the SVN version.

And a patch implementing multithreaded video capturing I've been cooking up for a long time works too (it is based on kekko's awesome work : viewtopic.php?t=21705 ).

(now I'm trying to have a capturefps=X value to be read from the config file and taken into account - because 70 FPS is overkill and makes the queue full a lot of times - which means that dosbox pauses while the queue is being emptied by the video capture thread)

Anyway, sorry about the noise. I should have tried the SVN version sooner. :)
User avatar
xcomcmdr
Newbie
 
Posts: 72
Joined: 2009-9-19 @ 01:03

Re: [Bug report] DOSBox 0.74 : dynamic core crashes with video recording active

Postby Dominus » 2014-1-25 @ 18:28

;) have fun recording!
User avatar
Dominus
DOSBox Moderator
 
Posts: 7381
Joined: 2002-10-03 @ 09:54
Location: Vienna

Re: [Bug report] DOSBox 0.74 : dynamic core crashes with video recording active (already FIXED in SVN)

Postby xcomcmdr » 2014-1-25 @ 23:43

Thanks. :)

In case someone is interested :
Now, I have :
- threaded video capturing (so the emulation is not slowed down), based on kekko's work
- and it is stable this time ! \o/
- there is also no busy waiting (one the main process side when the queue is full and dosbox paused, and in the video thread when the queue is empty)
User avatar
xcomcmdr
Newbie
 
Posts: 72
Joined: 2009-9-19 @ 01:03

Re: Lightweight multithreaded video capturing patch (was: dynamic core crashes video recording)

Postby xcomcmdr » 2014-1-27 @ 10:35

Well, bummer.

It works alright. But DOSBox pauses a lot, because the thread's queue is often full.
And after the first pause, it comes back more often.

Although my CPU is at 40% usage at worst.

So I've tried :
- 30 FPS limit (no more pauses, but it causes a video/audio desync in the output video file. i've tried other values too)

Ideas I've yet to try :
- More encoding threads (that's not efficient if the CPU is already at max capacity, plus it will be a mess to try to keep the frames in order. And I don't know how to query cpu usage.)
- threaded zmbv codec ? (seems _hard_ to implement)

Any more ideas ?
User avatar
xcomcmdr
Newbie
 
Posts: 72
Joined: 2009-9-19 @ 01:03

Re: Lightweight multithreaded video capturing patch (was: dynamic core crashes video recording)

Postby Qbix » 2014-1-27 @ 10:42

Ensure the i5 core runs at max speed ?
At my linux PC, the default governer didn't always play nicely with DOSBox with max cycles. This was why I introduced the max 105% setting, as then my real cpu would be in high performance mode all the time, without having to mess with the governer.

Check for disk usage ? Maybe your hdd can't keep up ?
Water flows down the stream
How to ask questions the smart way!
User avatar
Qbix
DOSBox Author
 
Posts: 10448
Joined: 2002-11-27 @ 14:50
Location: Fryslan

Re: Lightweight multithreaded video capturing patch (was: dynamic core crashes video recording)

Postby xcomcmdr » 2014-1-27 @ 12:14

Thanks for the leads, I'll try that this evening (in ~8 hours) ! :)

It seems that I'm using linux' default governor : powersave. Which means that the CPU changes it's frequency often. Might not be good for DOSBox, indeed !

As for my HDD, it has a lot of free space on a quite recent ext4 partition (so there is basically no fragmentation), and it runs at 7200 RPM. It doesn't seem to be very stressed at all during recording, even when dosbox is paused while the thread is emptying the queue.
User avatar
xcomcmdr
Newbie
 
Posts: 72
Joined: 2009-9-19 @ 01:03

Re: Lightweight multithreaded video capturing patch (was: dynamic core crashes video recording)

Postby xcomcmdr » 2014-1-27 @ 21:31

Wow ! :exclamation:

It's really night and day between the powersave and performance governors.

I was able to play and record Syndicate Wars without any lag or pause.
That's one of the most demanding 3D dos games, and even on my Pentium 3 computer sometimes it's slow !

And even if Quake did pause a few times, it was at worst once per minute, and usually once in a good while.
When it was paused, the second core was at 100% usage this time (and near that when DOSBox wasn't paused).

One of the games that pauses way less often, but still does it the most is Duke3D (around once per minute at worst), but I guess it can't be helped. Unless I go out and buy a quad core computer (not one with two cores and two additionnal but virtual cores) and I code one or two more encoding threads (which means re-ordering the frames before muxing), but I'm lazy.

For those games, I'll use external programs like recordmydesktop.

But the main objective was to avoid any emulation lag when capturing, and there was none. :happy:

I have also tested Dune 1 for 30 minutes too and it had no pause whatsoever, even with the powersave governor (I was playing and recording it while traveling by train). Other 2D games like Hero Quest didn't pause nor lagged at all either.

So in the end I had no crash, no pause (or so little of them), and a blast. :)

Now, I almost do not dare to ask, but : Could this be incorporated in the official SVN DOSBox code; pretty please ?
Is there some requirement for that ? (some code style to apply ? even if it seems already close to the other source files)
I must say this is primarly kekko's work, I merely tested it and removed some bugs I found on my end (and removed some busy waiting in the main and in the video thread).
You do not have the required permissions to view the files attached to this post.
User avatar
xcomcmdr
Newbie
 
Posts: 72
Joined: 2009-9-19 @ 01:03

Re: Lightweight multithreaded video capturing patch (was: dynamic core crashes video recording)

Postby kekko » 2014-1-28 @ 21:59

Nice work.
I haven't tried it, but removal of busy wait is a nice plus.
Make sure to keep up with the svn changes, i.e. add CAPTURE_VideoEvent(true); to the Hardware class destructor [r3637]
check out for other changes, since 2010
http://sourceforge.net/p/dosbox/code-0/ ... rdware.cpp
User avatar
kekko
Member
 
Posts: 480
Joined: 2004-3-24 @ 18:56

Re: Lightweight multithreaded video capturing patch (was: dynamic core crashes video recording)

Postby xcomcmdr » 2014-1-29 @ 16:19

Thanks. :)

Here is an updated version. (or here for Archlinux users : https://aur.archlinux.org/packages/bin3 ... -svn-video )

I hope that it will be part of DOSBox' official code in the future. But for now, I'm just very happy that it works. :)
You do not have the required permissions to view the files attached to this post.
User avatar
xcomcmdr
Newbie
 
Posts: 72
Joined: 2009-9-19 @ 01:03



Return to DOSBox Patches

Who is online

Users browsing this forum: No registered users and 3 guests