After some preliminary testing it seems the BC_ChkNullV has a bug in it. It shouldn't check the value that 'a' points to, but the value of 'a' itself.
case BC_ChkNullV:{ // TODO: Pointer size asDWORD *a = *(asDWORD**)(l_fp - SWORDARG0(l_bc)); if( a == 0 ) {
Making this change makes the tutorial work perfectly. However it seems to be breaking some other things, that I'm studying right this moment.
I'll be back with more info when I can.