hmmmm somebody didnt cast a type correctly or something
always type your vars properly kids.
Technically speaking, I don't think GSAVE behaves differently per se, I think it just always writes the unsigned values, which become signed due to overflow with int arrays.