Actually it's not that hard, and pretty similar in GBDK anyways. There are some basic helper functions but most of the work is setting registers directly anyways. Also GBDK creates a big overhead for function calls and stuff like that. Once you go past the hello world it can get pretty frustrating. Give it a try!