Here's a small utility that prints some useful information about the state of the VS1010; interrupts, driver enables, DAC sample rate etc. If you run into a situation where there is no sound playing, try to run this. If you can run this utility, it prints out useful information which can lead to the cause of the sound not playing.
Here's what it should print:
Global interrupts enabled, Int Encount: 0
DAC 0x20:0x923b, pri 2 -> 0x923b
SP1 0x24:0x8d1b, pri 1 -> 0x8d1b
RX0 0x2d:0x9b94, pri 1 -> 0x9b94
TI2 0x30:0x80e9, pri 1 -> 0x80e9
RX2 0x31:0x9bf8, pri 2 -> 0x9bf8
ANA_CF1: 3af0, All analog/drivers enabled [L R GBUF DAC]: 0xf
DAC_SRC: 0x137599, sample rate is about 44100.0 Hz
stdaudioout=0x101b (972e is ROM default)
Write=0x94c1 (94c1 is AudioWrite)
AudioBufFree: 2047, .wr=0x34e8, .rd=0x34e6
Writing something to the audio buffer, hopefully it's not stuck...
AudioBufFree: 1547, .wr=0x38d0, .rd=0x34e6
AudioBufFree: 1706, .wr=0x38d0, .rd=0x3624