*Way* cleaner (and likely faster) than mine! But it assumes other bits of CTRLPF (in particular 6 and 7) won't be set. They are unused in theory (http://nocash.emubase.de/2k6specs.htm#videoplayfield), buy some game might set them (sounds like insanity, but games do this kind of crazy thing quite often, e.g., to reuse a value already on a CPU register), so I believe we should either:

- ensure writes to CTRLPF keep bits 6 and 7 reset (likely adding a CTRLPF case to https://github.com/alcarvalho/ruby2600/blob/293bd490101a5a82041183e20ddd4f6548b307ec/lib/ruby2600/tia.rb#L86 that masks those bits, coupled with a proper test to, say, write FF to CTRLPF and check that 3F was stored); *or*
- mask them on the code above (and on `missile.rb` as well)

IMHO, first option is faster, and very likely compatible with the real thing, as TIA does not have the silicon to store the upper bits (and you can't read CTRLPF back anyway). If you prefer, just add a #FIXME and I'll do it before merging. Thanks!