Minor clarification: the setup you saw was the Nexys2-based UMDKv2
prototype:
http://www.makestuff.eu/wordpress/umdkv2-progressing-again/
I don't think I showed you the UMDKv1, which was really just a proof-
of-concept SRAM-based ROM emulator, with no debug capabilities:
http://www.makestuff.eu/wordpress/electronics/umdkv1/
The menu program of mine that you mentioned I wrote for UMDKv1 using
Stef's devkit: it *does* work on the UMDKv1 but as you mentioned it
comes out functional but visually corrupt on the UMDKv2. This will
almost certainly be due to the crappy PSRAM memory controller in the
UMDKv2 Nexys2 prototype, which is unable to handle the ~290ns VDP
reads from cartridge address space because they are rather shorter
than the 68000's reads. Interestingly, because the /AS signal is only
asserted during 68000 reads, it's clear that Sonic uses 68000 reads
almost exclusively (the only DMA from cartridge space Sonic does is
during the "Sega" sampled-sound ditty in the intro). As I've said
before there is no point trying to improve the latency of the PSRAM
controller because the standalone UMDKv2 board uses much cheaper and
much faster SDRAM (I've soak-tested my 84ns read, 63ns write SDRAM
controller for several days continuously writing, re-reading and
verifying many terabytes of random data).