Modificando a velocidade na qual um processo é executado (Alternativa do Cheat Engine como um Hack de Velocidade de Jogo em Flash)

20

No Windows, existe uma ferramenta para jogos em Flash chamada Cheat Engine que pode acelerar / reduzir um processo em X, fazendo com que o tempo necessário para uma tarefa em um jogo seja mais rápido ou mais lento do que no mundo real. Isso é especialmente útil para jogos baseados no tempo que fazem você esperar por um período de tempo em que um prédio é concluído, uma colheita para ser concluída, etc ... Isso também se aplica a jogos que você precisa que eles sejam lentos para que você possa defender contra vários inimigos (jogos de zumbis, etc.) ou jogos que sua dificuldade reside em quão rápido se pode completar alguma coisa.

Mas isso não está limitado a jogos em Flash baseados na web. Cheat Engine também pode acelerar / diminuir outros jogos (Half-Life, Quake 3, etc.).

Existe uma maneira de fazer isso no Ubuntu?

Aqui está a opção SPEED HACK a que me refiro ao utilizar a ferramenta "Cheat Engine" no Windows e é na verdade a opção que 99,99% dos utilizadores do Cheat Engine utilizam o Cheat Engine para:

Devo mencionar que não estou procurando um método para pausar o processo a cada milissegundos (como desacelerar o Firefox ou o Chrome em vez de desacelerar o jogo em Flash). Por exemplo, desacelerar o Firefox não funcionaria, uma vez que também desacelera todo o resto, de modo que não seria um hack da velocidade, mas retardaria o processo em geral, incluindo todas as ações do usuário. Basicamente, tudo seria o mesmo, apenas mais lento. O mesmo vale para agilizar o processo.

Estou procurando uma maneira de fazer isso em jogos Flash baseados na Web e / ou jogos emulados de vinhos.

    
por Luis Alvarado 27.08.2011 / 23:44

3 respostas

3

Resposta curta, não. Não há um botão 2x para o agendamento do processo. O melhor que você pode fazer é usar os cgroups para o que você está interessado em obter mais tempo de CPU, às custas de outro processo. Se eu tivesse que adivinhar, o motivo pelo qual o speedhack funciona mesmo é porque ele está fazendo negócios manipulando o tempo de execução do flash ou simplesmente chamando-o de máquina virtual. Não é que esteja acelerando o programa, ele alterou os parâmetros fundamentais nos quais toda a VM é baseada. Eu suponho que a mesma coisa seria possível com algo como Java ou Python.

Ah, bem, eu acho que você vai ter que continuar traindo o Windows. Vergonha.

    
por ppetraki 24.02.2012 / 04:26
3

Isso pode ajudar a retardar os processos, mas não acelerá-los ...

1) SIGSTOP e SIGCONT:

O comando kill pode emitir os sinais STOP e CONT para um processo com um determinado pid. Eu usei para 'pausar' e 'estrangular' scripts python antes, e funciona bem para esse fim.

Aqui está um exemplo em um script bash (passe no PID do processo relevante como o parâmetro da linha de comando):

PID=$1
while true; do 
    sleep 0.5
    kill -s STOP $PID
    sleep 0.5
    kill -s CONT $PID
done

Aqueles que dormem (em segundos) precisariam descer para uma quantidade muito menor para reduzir a idiotice, mas o intervalo maior torna isso mais óbvio para testes.

Uma vez que você esteja feliz com um intervalo específico, você pode ajustar a proporção de horas de sono com uma variável.

2) Outra possibilidade, para afogamento, é 'cpulimit':

sudo apt-get install cpulimit

Para limitar o firefox a 30% da CPU:

cpulimit -e firefox -l 30
    
por laher 24.02.2012 / 03:43
1

Eu sugeriria algumas coisas. Se é realmente farmville / algo jogado na net (como ppetraki sugeriu), eu acredito que uma avenida é ir via rota greasemonkey (é uma plataforma para permitir a execução de todos os scripts baseados em javascript para permitir ajustes mais avançados em todos os níveis do navegador / renderização de página.). Não menos, eu li todas as outras respostas muito rapidamente, e surpreendentemente não vi ninguém mencionar o link do Wine.

Mais especificamente, se o vinho normal não funcionar (o que eu consegui fazer funcionar, melhor tentar 32 bits), toda a esperança não está perdida, já que isso soa como um candidato perfeito para a extensão Wine / add-on'esque programa, 'Wine-Hacks', ele solicita ao usuário um walk-through para a instalação de várias peças de software que atendam a requisitos específicos / etc ... (este é um caminho muito fácil, se a configuração de vinho tradicional doesn não funciona). Esta é uma situação interessante, e é importante lembrar que o Linux em geral dá ao usuário uma plataforma muito maior para personalizar e ajustar os vários processos / threads / etc em todos os níveis ... No entanto, uma grande quantidade de leitura normalmente vem isto. Em uma perspectiva de nível mais baixo, é possível, se o jogo estiver utilizando a comunicação entre processos, ajustar as velocidades nos soquetes (os comandos 'vmstat' / 'top' / 'ps' / 'ss' são apenas um pequeno arsenal do que o linux oferece) eles mesmos, e embora não tenha uma pequena curva de aprendizado / facilidade de uso, mas essas ferramentas são um começo para a análise de atividade em nível de processo / memória-mgmt.

Mas olhando para a sua imagem, e tendo baixado o aplicativo eu mesmo, ganhando um entendimento de como o aplicativo funciona, e o fato de ele estar lendo pedaços de memória e escaneando endereços de memória / etc ... é muito fazendo exatamente isso, aprimorando a comunicação de memória / interprocesso em um nível baixo (no entanto, seguindo esse caminho você criaria sua própria versão hackish do 'Cheat-Engine', poderia facilmente ser feito com um gdb (gcc-debugger) , uma ferramenta de desenvolvimento / segurança como fazer esses tipos de tarefas é uma parte comum do trabalho de um desenvolvedor para melhor avaliar como o aplicativo funciona / seu desempenho geral., age de maneira similar em um escopo mais limitado). ferramenta para controlar a memória / sequenciamento de comunicação em nível de soquete.No mínimo, o cenário Wine funcionará, e eu tentei brevemente (no entanto, eu não sei o que o jogo alvo seu jogo é, lol !!). / p>

Para concluir, para que fôssemos claros, uma maneira seria refazer os processos / processos (tarefas) no Linux / e localizar os vários endereços de memória e os bits usados na comunicação entre processos / soquetes usando utilitários / ou depurador (já mencionado). Em seguida, outra maneira mais básica que utilizaria a lógica do 'Cheat-engine', em um ambiente não-Windows, instalando-o com o Wine, enquanto o Wine executa o aplicativo, e o gerencia em processos / threads dentro, se o programa está sendo executado no próprio Windows. O programa Wine está em todas as distros específicas do Ubuntu que eu vi, "apt-get" / "aptitude" para instalar o Wine. Além disso, outra ferramenta para depurar / tweaking jogos baseados em flash / etc ... é o Flashbug (uma variante do firebug, assim como o Greasemonkey é usado no Mozilla) Boa sorte & aplausos !!

    
por William Franklin 07.03.2012 / 11:40