If you're writing in assembly language, you can do whatever you want. It's only when you want to interact with some external code (maybe a library, maybe a system call) that you need to obey the calling convention. Some architectures have multiple different ABIs, so you have to be careful.
If I recall correctly, pretty much everybody uses the same calling convention for 32-bit PowerPC, so this Apple reference should have everything you need to know. As you mention, parameters are commonly passed in R3-R10 and the return value is put in R3. This tutorial seems to indicate the same.