module game_controller(
    input clk,
    input reset,
    input joy_up,
    input joy_down,
    input joy_left,
    input joy_right,
    input button_a,
    input button_b,
    output reg up,
    output reg down,
    output reg left,
    output reg right,
    output reg a,
    output reg b
);

    always @(posedge clk or negedge reset) begin
        if (reset == 0) begin
            up <= 0;
            down <= 0;
            left <= 0;
            right <= 0;
            a <= 0;
            b <= 0;
        end
        else begin
            if ((joy_up == 1) && (joy_down == 0) && (joy_left == 0) && (joy_right == 0)) begin
                up <= 1;
                down <= 0;
                left <= 0;
                right <= 0;
            end
            else if ((joy_up == 0) && (joy_down == 1) && (joy_left == 0) && (joy_right == 0)) begin
                up <= 0;
                down <= 1;
                left <= 0;
                right <= 0;
            end
            else if ((joy_up == 0) && (joy_down == 0) && (joy_left == 1) && (joy_right == 0)) begin
                up <= 0;
                down <= 0;
                left <= 1;
                right <= 0;
            end
            else if ((joy_up == 0) && (joy_down == 0) && (joy_left == 0) && (joy_right == 1)) begin
                up <= 0;
                down <= 0;
                left <= 0;
                right <= 1;
            end
            else begin
                up <= 0;
                down <= 0;
                left <= 0;
                right <= 0;
            end
            
            if (button_a == 1) begin
                a <= 1;
            end
            else begin
                a <= 0;
            end
            
            if (button_b == 1) begin
                b <= 1;
            end
            else begin
                b <= 0;
            end
        end
    end

endmodule
