This BIOS call can only copy in units of 8 words (32 bytes). A row is 30
entries, 2 bytes each, so the final size is 60 bytes. This isn't a valid
size for this BIOS call.
It happened to work because it copied 64 bytes instead of 60, and the
additional 4 bytes are just the unused space of the background outside of
the screen.
CpuSet() doesn't copy 8 words in a row, so it is possible to use it
instead of CpuFastSet().
I detected this issue because my GBA emulator didn't emulate the behaviour of CpuFastSet() correctly, so the call only copied 32 bytes, and only half of the console was scrolling.
This BIOS call can only copy in units of 8 words (32 bytes). A row is 30 entries, 2 bytes each, so the final size is 60 bytes. This isn't a valid size for this BIOS call.
It happened to work because it copied 64 bytes instead of 60, and the additional 4 bytes are just the unused space of the background outside of the screen.
CpuSet() doesn't copy 8 words in a row, so it is possible to use it instead of CpuFastSet().