private void moveGameUp(){
        int index = gameList.getSelectedIndex();
        
        if(index > 0){
            
            byte movedGameId = games[index-1];
            
            // Update the active games array
            if(Utils.getIndex(activeGames, games[index]) != -1){
                int movedGameIndex = Utils.getIndex(activeGames, movedGameId);

                // Only update the active games when the moved game is active and not the last game.
                if(movedGameIndex != -1 && movedGameIndex < activeGames.length-1){
                    activeGames[movedGameIndex] = activeGames[movedGameIndex+1];
                    activeGames[movedGameIndex+1] = movedGameId;

                    prefs.put(Config.Key.active_tabs.toString(),
                            implode(activeGames));
                }
            }
            
            // Store the built in game ID index
            int bIndex = Utils.getIndex(builtInGames, games[index]);

            // Update the games array
            games[index-1] = games[index];
            games[index] = movedGameId;

            // Update the gameList
            Object tempObj = gameModel.get(index-1);
            gameModel.set(index-1, gameModel.get(index));
            gameModel.set(index, tempObj);
            
            // Update the selected game
            gameList.setSelectedIndex(index-1);
            
            // Only run this when both games involved are built in.
            if(bIndex != -1 && Utils.getIndex(builtInGames, movedGameId) != -1)
            {
                // Update the games id position in the built in games array
                builtInGames[bIndex-1] = builtInGames[bIndex];
                builtInGames[bIndex] = movedGameId;
                
                // Rebuild the tabs
                if(selectedTab == bIndex)
                    selectedTab--;
                else if(selectedTab == bIndex-1)
                    selectedTab++;

                buildTabs();
            }
        }
    }