
debug output
Current configuration:
AmigaModel: Amiga 500
realTimeClock: no
df0: yes Drive 3.5" DD
df1: no Drive 3.5" DD
df2: no Drive 3.5" DD
df3: no Drive 3.5" DD
warp: 0 (82763776) (77992)
Assertion failed: (IS_EVEN(addr)), function peek16,
file .../vAmiga/Amiga/Computer/Memory.cpp, line 395.
points to here ... addr is not even ... ends with 1.
uint16_t
Memory::peek16(uint32_t addr)
{
if (!IS_EVEN(addr)) {
debug("PC: %X peek16(%X) memSrc = %d\n", _cpu->getPC(), addr, memSrc[(addr & 0xFFFFFF) >> 16]);
_amiga->dump();
}
assert(IS_EVEN(addr));

I wanted to look at the root cause but I have no good idea. I traveled the stacktrace but this strategy does not really help here. Maybe it is some DMA scheduling problems ? Because when it crashes the mouse pointer sprite gets scrambled too?
Up to now, I simply assumed that memory is accessed at even addresses only (as far as I know, the 68000 CPU should trigger an internal exception, trap, or irq if the address is odd. Only the newer 68x models can handle odd addresses).
Is the crash deterministic? If yes, I can run it against SAE and see what happens there. Either the odd address should not be odd (because of an earlier bug) or the CPU reaction is configured wrong.
Yes deterministic. Always the same odd address. Really odd. 馃お
Hmm, I cannot reproduce this either. I get some weird graphics errors instead:

Which Kickstart and which Workbench did you use? I guess we're using two different versions.
Regarding the address violation issue, I've seen that I have boundary checks disabled in Musashi (which should be enabled). Before enabling it, I would like to check in SAE if the address violation happens there, too.
Kickstart 1.3, Workbench 1.2 .... I got the same graphics errors exactly in the moment of the crash plus the assertion triggered. Before the crash he speaks out loud and clearly "I am an Amiga". It sounds absolutely authentic in my opinion. Maybe we should command him to say "I promise I will never crash again" ???
Hmmmm, my WB is called "A2000 WB 1.2 D". Interestingly, my system folder is different to yours:

I had to load the "Say" app from the Extras disk.
steps to reproduce:
OK, I can reproduce it now. I'll check if the address violation also happens in SAE.
Oups, interleave mode seems to need some attention, too 馃槻.

BTW, after disabling interlace mode, you can use "Df0->Export ..." to save the modified disk to a new ADF file.
Haven't looked at the crash yet, but I'm making progress on interlace mode:

Do you succeed in loading the Pawn hi-res intro screen ?
Do you succeed in loading the Pawn hi-res intro screen ?
Well, not really 馃槀:

Oh, I see, Pawn is using HAM mode which is not implemented, yet.

The music plays nicely though...
Holy cow... HAM and Interlace at the same time !!! High load pressure on the chipram DMA ;-)
High load pressure on the chipram DMA ;-)
Actually, it doesn't increase the load. If interlace is on, the Amiga draws 25 long frames and 25 short frames per sec (short frame means one rasterline less). If interlace is off, it draws 50 long frames.
HAM only affects the way Denise synthesises RGB values. The amount of DMA data remains unchanged.
Fixed. Was caused by the "Blitter always runs when DMA gets enabled" bug.
Most helpful comment
Haven't looked at the crash yet, but I'm making progress on interlace mode: