Closed DvdBoon closed 8 years ago
According to exec/alerts.s
it means: Memory header not located. [ Usually an invalid address passed to FreeMem() ]
.
Perhaps someone called FreeMem()
to free PPC memory at exit? Probably not a problem in Phase5 designs, where memory is shared between CPUs.
Does the guru display actual address where error occurred? Does it look like address in Sonnet memory?
Funny, in WipeOut it is because voodoo memory gets an Endian switch which messes up the memory header from the voodoo pci dma memory and subsequently also the memory list.
Moving the pcidma memory from pci.library to the back fixed the problem for WipeOut and Earth2140 demo. Doom fails on a CloseDevice() still with a 0100000F guru.
I can't really comment on memory management issues in WarpOS and/or pci.library APIs as I never really investigated them. However, I'm pretty sure that Voodoo 3 has a register that allow automated endian swapping to be done by the hardware. Maybe pci.library or P96 driver manipulates this register, whenever little endian data is needed.
Bit 12 in lfbMode
register is related to this.
Seeing it solved almost all problems except for ADoomPPC I'm betting it's a problem within ADoom itself. Keeping this issue open for now.
I don't have this issue with ADoomPPC. I can run the timedemo as many times until the memory issue comes up. I've tried it at 640x480, 800x600, 800x480 and 960x540a at 8bpp. I do have the issue with Tinymeter if it is running when I open a 16bpp screen with Vmpeg I get a recoverable alert 0100000C sanity check on memory list failed. Maybe unrelated.
The memory list gets corrupted when the gfx mem is switched to little endian. That is why the gfx mem is moved to the end of the list. Maybe it is worthwhile to just remove it after sonnet.library has installed itself in case of a Voodoo.
As indicated. Problem solved. Remaining crash of ADoomPPC (on my system) is not sonnet.library related.
Appears in:
ADoomPPC (when exiting) WipeOut2097 demo (5 times at the start) Earth 2140 Demo (2 times start, 1 time end)
Have to verify if it isn't related to my system only.