mirror of
https://github.com/joncampbell123/dosbox-x.git
synced 2025-05-09 20:01:19 +08:00
updated notes and bugs regarding demoscene entry "Majic 12: Show" and
why and when it triggers a "MCB list is corrupt" error message in DOSBox and how to reconfigure your dosbox.conf to work around it. It turns out the demo (perhaps the graphical effect routines) clears and overwrites memory in the 0xC0000-0xCFFFF range. If DOSBox has any private areas or upper memory blocks there, the data there will be lost. If upper memory blocks exist up there, they will be lost and DOSBox will E_Exit() with a message stating that the MCB list is corrupt. When I added code to dump the MCBs, I saw that when this happens, the MCBs below the 640KB boundary are OK, the MCBs in the upper memory are zeroed out.
This commit is contained in:
parent
e77b8abff3
commit
5c9842baa4
@ -6,9 +6,15 @@ VGA raster bugs:
|
||||
(but only if the cycles count is greater than about 9000).
|
||||
|
||||
Memory corruption bugs:
|
||||
- DOSBox complains upon demo exit that the MCB (memory allocation
|
||||
chain) is corrupted IF "private area in umb=false" and
|
||||
"private area size=4096", or "private area in umb=false"
|
||||
and "mainline compatible mapping=false" and "private area size"
|
||||
is less than 32768.
|
||||
- Majic 12 appears to have issues with upper memory blocks or anything
|
||||
in the upper (0xC000-0xCFFF) range. If you run the demo with umb=true
|
||||
or with the private data area in umb, the contents stored up there
|
||||
will be partially or fully zeroed by the demo on shutdown. Worst
|
||||
case scenario the overwritten data will cause DOSBox to crash with
|
||||
an error message stating that the MCBs (Memory Control Block linked
|
||||
list used to manage DOS memory allocations) is corrupt.
|
||||
|
||||
A dump of the MCB list in that case shows MCBs in lower memory
|
||||
(below 640KB) are intact while the MCB chain in upper memory is
|
||||
completely gone!
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user