added 3dsx support

This adds 3dsx support
should be `new (std::nothrow) u8`. Otherwise, `new` throws an exception upon allocation failure instead of returning `nullptr`.