Modifica della velocità di esecuzione di un processo (alternativa a Cheat Engine come Flash Game Speed ​​Hack)


20

In Windows, esiste uno strumento per i giochi Flash chiamato Cheat Engine che può accelerare / ridurre un processo di X, facendo in modo che il tempo necessario a un'attività in un gioco vada più veloce o più lento rispetto al mondo reale. Ciò è particolarmente utile per i giochi basati sul tempo che ti fanno aspettare una quantità X di tempo per completare un edificio, un raccolto per essere completato, ecc ... Ciò vale anche per i giochi di cui hai bisogno per andare più lentamente in modo da poter difendersi da diversi nemici (giochi di zombi, ecc.) o giochi che la loro difficoltà sta nella velocità con cui si può completare qualcosa.

Ma questo non si limita ai giochi Flash basati sul web. Cheat Engine può anche velocizzare / ridurre altri giochi (Half-Life, Quake 3, ecc.).

C'è un modo per farlo in Ubuntu?

Ecco l' opzione SPEED HACK a cui mi riferisco usando lo strumento "Cheat Engine" in Windows ed è effettivamente l'opzione che il 99,99% degli utenti di Cheat Engine utilizza Cheat Engine per:

inserisci qui la descrizione dell'immagine

Devo dire che non sto cercando un metodo per mettere in pausa il processo ogni millisecondi (come rallentare Firefox o Chrome invece di rallentare il gioco Flash). Ad esempio, il rallentamento di Firefox non funzionerebbe poiché rallenta anche tutto il resto, quindi non si tratterebbe di uno Speed ​​hack quanto di rallentare il processo in generale, comprese tutte le azioni dell'utente. Fondamentalmente tutto sarebbe uguale, solo più lento. Lo stesso vale per accelerare il processo.

Sto cercando un modo per farlo con i giochi Flash basati sul Web e / o i giochi emulati da vino.


1
Penso che questo problema sarà sperimentato fino a quando non verrà pubblicato un "Cheat Engine per Linux".
Luis Alvarado,

circa sei mesi dopo, c'è qualche risposta a questa domanda (non sto contando la priorità del processo come una risposta ... dal momento che non funziona comunque)?
Yanick Rochon,

non ne so nulla ma dopo averlo letto mi è venuto in mente il perché non emulare il flash e aggiungere un po 'di automazione forse anche un po' di AI per anticipare i cambiamenti non chiedermi 'come' perché come ho detto non ho idea di come fare succede

Risposte:


3

Risposta breve, no. Non esiste un pulsante 2x per la pianificazione del processo. La cosa migliore che puoi fare è usare i cgroup per quello che ti interessa per ottenere più tempo alla CPU, a spese di un altro processo. Se dovessi indovinare, il motivo per cui Speedhack funziona è perché sta facendo affari manipolando il runtime flash, o semplicemente chiamandolo una macchina virtuale. Non è che sta accelerando il programma, ha cambiato i parametri fondamentali su cui si basa l'intera VM. Suppongo che la stessa cosa sarebbe possibile con qualcosa come Java o Python.

Oh bene, immagino che dovrai continuare a barare su Farmville su Windows. Vergogna.


3

Questi potrebbero aiutare a rallentare i processi, ma non accelerarli ...

1) SIGSTOP e SIGCONT:

Il killcomando può emettere un STOPe un CONTsegnale a un processo con un dato pid. L'ho usato per "mettere in pausa" e "limitare" gli script Python in precedenza, e funziona bene a tale scopo.

Ecco un esempio in uno script bash (passa il PID del processo rilevante come parametro della riga di comando):

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

Quei dormienti (in pochi secondi) dovrebbero ridursi a una quantità molto più piccola per ridurre il jerkiness, ma l'intervallo più grande rende più ovvio per i test.

Una volta che sei soddisfatto di un determinato intervallo, puoi rendere il rapporto tra i sonno regolabile con una variabile.

2) Un'altra possibilità, per limitare, è "cpulimit":

sudo apt-get install cpulimit

Per limitare firefox al 30% della CPU:

cpulimit -e firefox -l 30

Non sarebbe in realtà il contrario di quello che sta chiedendo?
Uri Herrera,

1
Stavo rispondendo alla parte sui "giochi in cui è necessario renderli più lenti in modo da poter completare un livello difficile"
laher

1

Vorrei suggerire un paio di cose. Se è davvero farmville / qualcosa riprodotto in rete (come suggeriva ppetraki), credo che una strada sia quella di seguire il percorso greasemonkey (è una piattaforma che consente l'esecuzione di tutti gli script basati su javascript per consentire modifiche più avanzate a tutti i livelli del browser / rendering della pagina.). Non di meno, ho letto tutte le altre risposte molto rapidamente, e sorprendentemente non ho visto nessuno menzionare Wine http://www.winehq.org/documentation .

Più specificamente, se il normale vino non funziona (cosa che sono riuscito a farlo funzionare, meglio provare a 32 bit), ogni speranza non viene persa, in quanto sembra un candidato perfetto per l'estensione / componente aggiuntivo di Wine 'programma esque,' Wine-Hacks ', richiede all'utente una guida per l'installazione di vari software che soddisfano particolari requisiti / ecc ... (questa è una strada molto semplice, se la tradizionale configurazione del vino non funziona ). Questa è una situazione interessante, ed è importante ricordare che Linux in generale offre all'utente una piattaforma molto più grande per personalizzare e modificare i vari processi / thread / etc su tutti i livelli ... Tuttavia, una grande quantità di lettura viene in genere da esso. In una prospettiva di livello inferiore si potrebbe, se il gioco utilizza la comunicazione tra processi, modificare le velocità sui socket ('vmstat' / '

Ma guardare la tua immagine e aver scaricato l'app da solo, capire come funziona l'applicazione e il fatto che legge bit di memoria e scansiona indirizzi di memoria / ecc ... sfugge che sta facendo proprio questo , modificando la comunicazione tra memoria e tra processi a basso livello (comunque seguendo questa strada si creerebbe la propria versione hacker di "Cheat-Engine", si potrebbe facilmente fare con un gdb (gcc-debugger, uno sviluppatore / strumento di sicurezza in quanto svolgere questi tipi di attività è una parte comune del lavoro di uno sviluppatore per valutare meglio come funziona l'applicazione / le sue prestazioni complessive., agisce in modo simile in un ambito più limitato). Dovresti semplicemente utilizzare uno strumento diverso per controllare la memoria / il sequenziamento della comunicazione a livello di socket. Non meno, lo scenario Wine funzionerà e l'ho provato brevemente (tuttavia, nonnon so quale sia il tuo gioco mirato, lol !!).

Per concludere, in modo da essere chiari, un modo sarebbe di ridefinire i processi / thread di processo (attività) in Linux / e localizzare i vari indirizzi di memoria e i bit utilizzati nella comunicazione tra processi / socket usando utility / o debugger ( già menzionato). Quindi un altro modo più semplice che utilizzerebbe la logica del "Cheat-engine" stesso in un ambiente non Windows, installandolo con Wine, poiché Wine esegue l'applicazione e la gestisce in processi / thread all'interno in modo che sia come se il programma viene eseguito in Windows stesso. Il programma Wine è in tutte le distro specifiche di Ubuntu che ho visto, "'apt-get' / 'aptitude'" per installare Wine). Inoltre, un altro strumento per il debug / l'ottimizzazione di giochi basati su flash / ecc ... è quello di Flashbug (una variante di firebug, proprio come Greasemonkey è usato in Mozilla) Buona fortuna e saluti !!


Avresti bisogno dell'intero stack installato con WINE - un browser in esecuzione su WINE (a meno che il gioco non possa essere eseguito all'esterno), Flash Player per Windows e l'hacking di Flash Speed ​​(più ovviamente il file SWF) Come per GreaseMonkey - che non lo farà opera. JS e Flash sono tecnologie completamente diverse.
Piskvor,

È una buona notizia il fatto che siano tecnologie totalmente diverse, ma non stavo facendo questa distinzione, il flash (anzi un plug-in proprietario) è messo in mostra essendo incorporato nel DOM, e naturalmente per alcune cose si potrebbero usare quegli eventi con i quali JavaScript completamente si interfaccia con un fine per influenzare il flash, poiché a volte il flash è persino incorporato in javascript. A meno che non abbiano eliminato gradualmente le specifiche w3 / whatwg su tutte le interazioni di pagina, è il risultato di un'esecuzione basata su eventi. L'esecuzione basata su eventi è la ragion d'essere di javascript (ECMA ai vecchi tempi della scuola), FYI: 80% + gli script greasemonkey sono trucchi per i giochi.
William Franklin,

Hai ragione su cos'è JS, da dove viene e come funziona; ma a meno che il BLOB Flash non esponga effettivamente un'interfaccia per modificare la velocità di gioco (estremamente improbabile), non puoi semplicemente usare JS per questo - non esiste un controllo "incorporato" per tale interazione. Sono a conoscenza degli script cheat GM; si noti che tutti hanno come target la parte JS / DOM e / o l'interazione di Flash con JS, non il funzionamento del BLOB Flash stesso.
Piskvor,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.