However, your pin assignment is I think the problem.
You can't use SD2 or SD3 (9, 10). These are connected to the flash chip where the code is run from. Trying to use these is certain to cause the program to crash.
You can use 4 and 15. 0 and 15 are best used as outputs 0 and 15 are best used as an outputs to avoid any issues with their use as determining boot method during reset. So I think if you swap 9 to 4 (busy input) and 10 to 15 (data0) that should work.
When you get that working we can look again at graphics problem.