I can make them work the same if you want. Here comes the science bit:
Gens old way: extend 5 or 6 bits per channel (565) to 8 with zeroes, results in non-maximal colours
My way: slow multiply/divide extension
An alternative: bit padding extension
eg. 16-bit colour 31-63-16 (full red, full green, half blue)
Old Gens would make that into 248, 252, 128 (31<<3, 63<<2, 16<<3)
My code would make that into 255, 255, 131 (31/31*255, 63/63*255, 16/31*255)
Bit padding extension, which I've since learned is the "best" (read: good enough and fast) way to do it, would make that into 255, 255, 130 (31<<3|31>>3, 63<<2|62>>4, 16<<3|16>>3)
Or, I could make it optional?
Hell, it took me almost as long to explain it as to do it.
See here.