SD cards not playing nice

A few nights ago, I connected my sparkfun microsd breakout to my stk500 and tried to read the card with a mega88. I eventually got it working (I read out the MBR which matched the MBR I got from my card reader). I then (stupidly) proceeded to make some changes to the code without backing up my working copy. It stopped working.

Basically, I send CMD0 and it sends back 0x01 (card in idle mode) which is good. If I send any illegal commands it sends back 0x05 (illegal command; card in idle mode) which is also good. But as soon as I send CMD1 or ACMD41 (init commands) I get back 0x01(card in idle mode), and then every byte that I receive after that, no matter what command I send(except CMD0), is 0xFF. If I send CMD0 again, it goes back to the start of this loop.

This is incredibly frustrating :x ; does anyone have any insights into what is going wrong? I have a 1gb and a 2gb microsd card, both of which are definitely not SDHC.

see my example code for MMC / MMC+ / SD / SDHC on some MCUs:

http://www.embedded-os.de/index.html?pcfat_port.htm

but its current not ported to Mega88 - only for Mega128…