VHDL: I have a lot of inferring latches due to my case statement
One problem is that the logic doesn't describe a mux at all. You're sending one set of inputs to two possible destinations, which is the opposite of a mux &mdash; a demux.

A case statement is not the appropriate construct to use. Instead, you need a series of statements of the form:

architecture Behavioral of twoplayermux1 is
begin
    show_out   &lt;= show  when player = '0' else '0';
    set_out    &lt;= set   when player = '0' else '0';
    input_out  &lt;= input when player = '0' else "00000000";
    -- etc.

    show_out2  &lt;= show  when player = '1' else '0';
    set_out2   &lt;= set   when player = '1' else '0';
    input_out2 &lt;= input when player = '1' else "00000000";
    -- etc.

end Behavioral;


I'm just guessing about what you want in the else clauses &mdash; you could put other values there.