cw cheat 0.1.6 by weltall (c) 2006 www.consoleworld.org weltall@consoleworld.org
----------------------------------
ITALIANO
----------------------------------
Questo programma permette a chiunque di usare trucchi
nei giochi attraverso la modifica dei dati in ram della psp
attraverso codici creabili da chiunque (come action replay,
codebreaker, gameshark, xploder, ect).
Per ulteriori informazioni vedere il changelog

Gli ultimi aggiornamenti sono sempre disponibili su
http://www.consoleworld.org e http://weltall.consoleworld.org
Le ultime versioni del database sono scaricabili da
http://cwcheat.zioale.it/
Se create qualche trucco ci farebbe piacere inserirlo nel database principale :)
se  un lungo trucco o se sono molti trucchi contattatemi :)

Se trovate qualche bug potete inserirlo su bugzilla:
http://weltall.consoleworld.org/cgi-bin/bug/index.cgi :)

Questo  programma che  nato nel lontano marzo
mentre sperimentavo l'uso dei prx.
Dopo alcuni giorni di prove, vedendo che potevo
dumpare e modificare la ram dei giochi senza
problemi io insieme a sincro abbiamo iniziato
questo progetto.
Mentre io mi dedicavo al core (il prx), lui si
dedicava al loader (un eboot), a un programma
di ricerca di valori nei dump della ram fatto in VB
e allo sviluppo del formato del database.
A met aprile perpersi i contatti con sincro e
a causa di alcuni problemi con runumd questo progetto
si aren
Con l'uscita di devhook e con i primi tentativi di
caricarci prx (usbhostfs e lo screenshotbmp),
ripresi in mano il progetto scartando il loader
(non pinecessario) e adattando il core in modo
da poter funzionare in modalit standalone e 
reimplementando le funzioni mancanti nelle lib
del kernel.
Nel frattempo ho aggiunto altre funzioni al prx
rendendolo picompleto per l'uso anche come menu
in-game per altri usi.
Oltre a questo zio`ale ha sviluppato un sito in php
in grado di fornire e generare automaticamente un db
con gli ultimi codici inseriti nel database del sito.
------------------------------------
CHANGELOG:

0.1.6 RELEASE
[CORE PRX]
-ora lo schermo non flickera pi nei menu e i dati sono aggiornati in tempo reale
-corretto il glitch grafico che poteva apparire rimuovendo e rimettendo la memory stick
-rimossi dai menu inutili richiami a funzioni di cancellazione e scrittura
-Aggiunto il supporto ai codici 8bit e 16bit multiadress write
 sono l'equivalente del 32 bit multi adress write ma hanno uno 0x8 al posto dello 0x4
 e uno 0x1 per i 16bit e uno 0x0 per gli 8bit davanti all'entry del valore
 32bit
 0x4aaaaaaa 0xxxxxyyyy
 0xdddddddd 0x00000000
 16bit
 0x8aaaaaaa 0xxxxxyyyy
 0x1000dddd 0x00000000
 8bit
 0x8aaaaaaa 0xxxxxyyyy
 0x000000dd 0x00000000
-ottimizzazioni nelle stringhe
-supporto per selezionare nella fixed value e diff search di intervalli di ram in cui cercare (premere R per arrivare
 alla schermata di inserimento di questi, nel diff search  necessario reinserirli ogni volta)
-ora l'opzione di swap dei bottoni  salvata e caricata
-corretta una stringa dove la X era comunque visualizzata anche se i bottoni erano swappati
-corretto un bug che bloccava remaPSP quando veniva caricata una macro (grazie a BAC per aver riportato questo)
-ora lo schermo viene pulito prima di uscire dal menu (utile per truccare alcuni programmi TIFF come il tetris che manteneva
 il menu del cwcheat nello sfondo, in pi questo aiuta nei giochi che mantengono il menu del cwcheat finch non aggiornano
 lo schermo
-aggiunti maggiore/minore di rispetto a prima nel diff search con R  possibile andare a selezionare di quanto deve
 differire il valore da cercare
-ora il db  caricato nella partizione volatile (grazie a tyranid per averla sbloccata) cos  possibile avere db
 fino a 4mb (teoricamente)
-aggiunto supporto agli screenshoot:  un implementazione custum basata sui sorgenti di nekokabu che blocca il gioco
 per molto meno di un secondo. sembra funzionare bene in qualunque caso escluso in alcuni casi nel browser internet
 in pi  possibile cambiare il bottone che lo attiva (anche questo usa la zona volatile della ram)
-ora quando si usa la funzione clear background lo schermo  cancellato anche nei giochi che prima non permettevano
 di farlo (es: burnout)
-corretto un bug che non permetteva di andare a sinistra inserendo valori hex nel menu di modifica cheat e nel fixed
 value search
-ottmizzato un p il codice delle finestre di inserimento valori
-il bottone per gli screenshoot pu essere cambiato e salvato nel file di config(NOTA: non selezionando nessun bottone
 questa funzione  implicitamente disabilitata)
-il menu di modifica trucchi  stato ridisegnato (grazie a haruyuki per l'idea su come cambiarlo) ora tutte le linee del
 trucco sono visualizzate comtemporaneamente con i loro indirizzi e il loro valore in esadecimale e decimale.
 R cambia le colonne (indirizzo, valore hex, valore dec) L cambia le linee (codelines), X salva le modifiche, O annulla
-corretto un buffer overflow che poteva essere exploitato con il db ufficiale in alcuni giochi provocando l'abilitazione
 automatica e inrisolvibile del remapsp se il gioco nel db aveva un nome con pi di 30 caratteri
-ora il nome del gioco pu essere fino a 36 caratteri
-rielaborato il lettore di testi: pu aprire file fino a 1mb e andare su e giu in essi. richiede ancora alcune funzioni
 e il pulsante su alcuni controlli ma funziona bene :)
-correzioni qua e la e ottimizzazioni

[INSTALLATORE]
-aggiunto il supporto alla presenza di prx del DLX
-aggiornata la versione

[DB DOWNLOADER]
-aggiornata la versione

[PACKAGE]
-aggiunta la traduzione tedesca di Martek, spagnola di Lezek e portoghese di Coimbra.
-Aggiunta un utility di traduzione di Martek


0.1.5 RELEASE
[CORE PRX]
-molte ottimizzazioni che hanno risparmiato 7kb
-ora  possibile tradurre CWCHEAT(nota: cwcheat use il font classico del printf quindi non ci sono caratteri come  ect)
NOTA: il file della traduzione scelta deve essere messo in ms0:/dh/cwcheat.lng
-ora  possibile accedere al menu di selezione cheats dal gioco senza aprire il main menu
- possibile swappare i tasti: sia forzatamente in formato giapponese sia in modo automatico (direttamente dalle
 configurazioni del firmware emulato)
-cambiato gcc dal 4.1.0 al 4.0.2 poich era un p instabile (e ha anche ridotto di 2kb il file questo cambiamento)
-fissato il problema che in alcuni giochi faceva eseguire l'opzione del tasto premuto escendo dal menu
-ora il valore dell'indirizzo trovato  copiato in tutte le modalit di ricerca
-ora  possibile cambiare l'indirizzo di un trucco nel database premendo L nel menu di configurazione cheats
-ora i codici non allineati a 4byte del tipo 32bit costant write sono correttamente funzionanti (utili per condensare)
- possibile annullare la ricerca tenendo premuto il bottone annulla (default: cerchio) per un p
-altre piccole cose

[PACKAGE]
-incluso francese (grazie a stark), inglese e italiano come lingue

0.1.4B RELEASE
[CORE PRX]
-corretto un bug che non permetteva all'utente di modificare il valore di un trucco gi presente
 o trovato attraverso la ricerca
-corretti alcuni errori nei quick help
-ora il valore corrente nell'indirizzo trovato  copiato nel cheat quando si ricerca

0.1.4 RELEASE
[CORE PRX]
-ora  possibile scrollare la lista dei trucchi di +/- 10 con DESTRA/SINISTRA
-ora lo scrolling dei trucchi  corretto e pi veloce
-CORRETTI I PROBLEMI DELLA RAM ora i trucchi sono allocati dinamicamente (anche se l'allocazione  fissa per questa
 versione)
-ora sono supportati 550 trucchi per 30 codici senza problemi :)
-il caricamento del db  ora mosso nella ram del kernel
-il diff search ora usa la ram disponibile dinamicamente: cerca la zona pi libera e la usa
-ora  possibile caricare svariati db premendo sinistra/destra sopra "reload cheat database" e poi premendo x
 questo  valido solo per il caricamento, le altre funzioni e la scrittura ancora usano il db di default
 db 0 (default) = cheat.db
 db 1 2 3 ... = cheat1.db cheat2.db cheat3.db
-ora il diff search funziona anche con giochi che usano troppa ram
-ora la modifica dei valori e l'inserimento nella ricerca ha un puntatore che permette di aggiungere un 1 in 
 ogni parte del numero accelerando l'inserimento del valore (sinistra/destra per spostare il puntatore, su e giu
 per aggiungere togliere 1 a quella cifra, R per cambiare l'input tra decimale e esadecimale)
-codici 8bit condizionale aggiunti: funzionano come gli originali a 16bit ma con un 2 nel valore:
 *8-bit greater than - TEST CODE - 0xDaaaaaaa 0x203000dd
 *8-bit less than - TEST CODE - 0xDaaaaaaa 0x202000dd
 *8-bit not equal - TEST CODE - 0xDaaaaaaa 0x201000dd
 *8-bit equal - TEST CODE -   	0xDaaaaaaa 0x200000dd
-cheat.db aggiornato
-cambiamenti nel testo della gui del diff search
-altre ottimizzazioni
-grazie a tyranid per una funzione da psplink che mi ha aiutato a risolvere i problemi di ram
-ora  possibile rimuovere con la pressione di un bottone tutti i dati utilizzati durante la ricerca

0.1.3B RELEASE

[CORE PRX]
-corretto un bug che nei giochi con pi di 399 codice overfloddava nella ram kernel e portava a crash
 (vedi: monster hunter freedom eu)
-ora sono supportati 420 trucchi per gioco (cos tutti i trucchi per mhf eu possono essere caricati)
-ora la cartella remaps di remaPSP  spostata in ms0:/dh/ mentre prima era in ms0:/

[INSTALLER]
-rimosso lo 0x0 dall'interfaccia

[PACKAGE]
-aggiunto un manuale in francese grazie a stark di cfccar.com

0.1.3 RELEASE

[PACKAGE]
-aggiunta un'applicazione che permetti di scaricare automaticamente dalla
 psp l'ultimo database (cwcheat db downloader)

[CORE PRX]

-ora la funzione del pulsante QUADRATO  scritta nel menu di selezione trucchi
-Ora la pressione di L durante il caricamento (nella schermata attendere, nella schermata
 bianca con la scritta PSP playstation portable caricando un gioco: a seconda di dove si fa
 avviare cwcheat)  possibile bloccarne l'avvio e non sar disponibile fino al prossimo caricamento
-Ora premere R abilita la modalit HOMEBREW. Questa modalit salta la lettura dell'UMD e cerca nel
 database la signature HOMEBREW. in questa modalit si possono truccare gli homebrew caricati tramite
 devhook
-ora  supportato il jocker code
 la sintassi  0xD0000000 0x1vvvvvvv dove v  il valore ottenuto dalla somma
 di fino a tre valori del controller: controllare il MANUALE o pspcrtl.h nell'sdk
 per i valori. PSP_CTRL_HOME, PSP_CTRL_MS, PSP_CTRL_DISC non sono gestiti
-Ottmizzazioni nelle funzioni di cambio dei bottoni
-Ora  possibile cambiare il valore da ricercare di +/- 1000 usando R/L
-ora  possibile cambiare il valore da modificare di +/- 100 usando i bottoni SINISTRA/DESTRA
-ora  possibile cambiare il valore da modificare di +/- 1000 usando i bottoni L/R
-Ora per cambiare codeline nel menu di modifica dei trucchi si usa TRIANGOLO/QUADRATO
- possibile salvare il database per i giochi e gli homebrew. Salva i valori modificati, i trucchi
 aggiunti e se un codice  attivato o disattivato
-ora sono supportati gli ottali nel database fino a 37777777777 prima era fino a 777777777.
 Ricordarsi di mettere uno zero prima dei numero ottali es: 037777777777
-corretto un bug che preveniva il funzionamento della combinazione di attivazione/disattivazione
 dei trucchi se erano usati meno di 3 bottoni
-Ora quando si abilitano/disattivano i trucchi con la combinazione di tasti viene visualizzato
 lo status di abilitazione dei trucchi fino a che la combinazione viene rilasciata e il controller check
 delay  passato
-rimosso del vecchio testo dal menu di cambio dei controlli
-ora lo scorrimento del menu di selezione cheats  pi veloce
-corretto un piccolo bug che poteva bloccare dal funzionare in alcuni casi i codici 16bit greather than
-corretto un piccolo bug che poteva bloccare dal funzionare in alcuni casi i codici 16bit less than
-corretto un piccolo bug che poteva bloccare dal funzionare in alcuni casi i codici 16bit equal
-corretto un piccolo bug che poteva bloccare dal funzionare in alcuni casi i codici 16bit not equal
-corretto un piccolo bug che poteva bloccare dal funzionare in alcuni casi i codici copy bytes
-corretto un bug in cui la funzione copy byte copiava i byte richiesti + 1
-AGGIUNTO REMAPSP DI DANZEL con tutte le funzioni del remapsp standalone
-remaPSP can be enabled/disabled dall'ingame menu o attraverso una combinazione selezionabile
-il menu di configurazione di remaPSP  accessibile dall'ingame menu e non affligge pi i prx per gli screenshoot
-remaPSP pu essere automaticamente avviato all'avvio se abilitato nella configurazione
-Quando si disattiva remaPSP, rimuove tutti gli hook alle funzioni e abilitarlo ricarica la mappa tasti del gioco se presente
-NOTE: remaPSP non ha alcuna possibilit di cambiare i controlli del cwcheat, dei jocker codes, della psp vsh e del menu
 home della psp perch i suoi hook sono alle funzioni usermode
-la mappa dei controlli scelta pu essere salvata come default e autocaricata se una mappa specifica per il gioco non 
 viene trovata
-ora  possibile dumpare su usbhostfs0:/ leggere il manuale per ulteriori informazioni
-ora i volt della batteria visualizzano i decimali
-ora la versione del firmware  visualizzata nell'ingame menu
-pulizie del codice
-varie ottimizzazioni

[DB DOWNLOADER]
-scarica automaticamente nella cartella corretta il cheat.db dal server
-il cheat.db  aggiornato  con il database principale sql ogni 15 minuti
-grazie a bzip2 per l'implementazione in lato server
-connette automaticamente con la prima connessione. quando si avvia assicurarsi lo switch wlan sia su

0.1.2 RELEASE

[CORE PRX]
-Ora i trucchi sono applicati ogni 1/10000 di secondo  (prima era 1sec*cheat delay)
-Cheat delay e' ora control delay che e' il tempo ogni quanto vengono
 controllate le combinazioni dei tasti
-Ora la priorita' e' 0x64 prima era 0x1 (questo significa priorita' piu' bassa)
-Ora entrando nel menu di selezione cheats viene atteso che venga rilasciato
 il bottone X per evitare che il primo cheat si attivi entrando nel menu
-Ora i bottoni che vengono tenuti premuti vengono ripetuti anche nel
 menu principale
-Ora l'usb viene autoattivato correttamente e l'usb viene abilitata
 quando viene caricato (se l'opzione e' selezionata)
-Corretti alcuni glitch grafici nel fondo dello schermo nel menu principale
-aggiornamento del formato del DB: ora e' possibile salvare anche lo stato
 abilitato/disabilitato per ogni trucco.
 Ora il vecchio formato del database, pur funzionando ancora,
 non funzionera' piu' nella prossima versione.
 Nel nuovo formato viene cambiata la voce _C (cheat) che ora e' _C#
 dove # e' un 1 (abilitato) o uno 0 (disabilitato). Se viene trovato
 un'altro numero il trucco viene disabilitato.
 Se invece viene trovato uno spazio viene letto come nel formato vecchio
 del database (solo per questa versione). Per aggiornare il database
 basta sostituire tutti i _C con _C0 (o _C1)
-ora e' possibile modificare direttamente dal menu del cwcheat il campo
 valore (il secondo) di un codice.
-Ora i codici 32bit multi adress write funzionano correttamente anche
 se l'indirizzo non e' un multiplo di 4.
 Quindi i codici condensati che prima non funzionavano ora funzionano
 correttamente.
-Ora e' disponibile una funzione di ricerca dei cheat
-Gli indirizzi trovati vengono salvati su memory stick come pass0.txt,
 pass1.txt, ecc.
-Si puo' tornare al gioco e continuare successivamente la ricerca
 dei codici
-La funzione resume fixed value search visualizza i primi 10 indirizzi
 trovati nella ricerca precedente con i valori contenuti in questi
 indirizzi in formato esadecimale e decimale (utile per evitare
 un'altra ricerca quando si ha solo un esiguo numero di indirizzi)
-Alcune ottimizzazioni qua e la

[INSTALLER]
-Cambiata l'icona restore a restore/update per evitare errori

0.1.1 RELEASE

[CORE PRX]
-Ora si puuscire dal menu principale con O
-Ora nel menu principale se si preme X su return to game (o O)
 il prx aspetter che venga rilasciato il tasto prima di tornare
 al gioco, per evitare azioni non volute nel gioco
-Nei sotto menu ora aspetta che venga rilasciato il pulsante cerchio
 durante l'uscita
-Ora premendo SU quando si  sulla prima voce del menu verr selezionata
 l'ultima; viceversa premendo GIU quando si  sull'ultima opzione del
 menu la prima verr selezionata
-Nel menu cheat selection ora tenendo premuto un tasto questo verra
 automaticamente ripetuto cos  possibile spostarsi nella lista
 facilmente
-Ora i dump possibili sono infiniti sono fatti in diversi file finch c' spazio disponibile. quando finisce inizia di nuovo sovrascrivendo il primo
 dump
-aggiuto 33mhz per la cpu e 16mhz per il bus
-Aggiunta una funzione per abilitare l'usb. Carica in game la funzione usb mass
 cos  possibile accedere alla memory stick mentre si sta giocando per fare i
 codici pivelocemente e senza un lettore di schede.
 NOTE1: viene disabilitato durante il dump e riattivato subito dopo
 NOTE2: in alcuni casi scrivere sulla ms dal pc non aggiorna la cache
        dei file e quindi se si cerca per esempio di caricare un database
        cambiato, verr caricato ancora quello vecchio.
        Se capita un work around  tirare fuori e poi rienserire la
        memory stick.
 NOTE3:  necessario disabilitare usbhostfs per poter usare l'usbmass
-aggiunta opzione "enable usb"
-corretti alcuni buffer overflow nelle funzioni di parsing del cheat.db
-ora  possibile dare ai giochi nomi fino a 30 caratteri (prima erano 20)
-ora  possibile dare ai cheat nomi fino a 30 caratteri (prima erano 20)
-ora  possibile caricare fino a 500 cheats per gioco (prima erano 400)
-Alcune piccole cose e ottimizzazioni

[INSTALLER EBOOT]
-Aggiornato il database incluso
-Aggiornato il prx incluso
-Aggiunta l'opzione usb enable
-Ora  possibile configurare cwcheat dall'installer anche senza il cwcheat.ini

[CERCATORE DI CHEAT]
-ora  possibile forzare una ricerca 8/16/32bit o tenere AUTO come prima
-ora le ricerche 16/32bit hanno l'endianess corretto (little endian)
 quindi se avevate problemi con queste ricerche riprovate
-ora  in inglese e italiano!

0.1 RELEASE

[CORE PRX]
-supporto funzioni di devhook e cambio della sua configurazione
 (mhz cpu/bus, versione devhook)
-in game menu con pausa di tutti i tread
-supporto visualizzazione dimensione/spazio libero memory stick
-supporto visualizzazione frequenza effettiva cpu/bus
-supporto visualizzazione informazioni avanzate sulla batteria
 (% carica, tempo carica, status di ricarica, volt)
-ricaricamento database durante il gioco 
 (utile per trovare nuovi trucchi)
-funzione di dump della ram su file
-supporto cambio bottoni per le funzioni principali
 (apertura menu, dump della ram, abilitazione/disabilitazione
  trucchi, applicazione one-time dei trucchi)
-mini text reader (puleggere file che sono in grado di stare
 nello schermo della psp gli altri sono troncati)
-abilitazione trucchi onetime da menu
-menu di selezione cheat con supporto abilitazione/disabilitazione
 anche di tutti i trucchi e con testo informativo. Utilizzabile
 anche durante il gioco
-possibilit di settare il delay di applicazione dei trucchi e
 controllo dei tasti premuti
-possibilit di settare cpu (0, 111, 222, 333) 
 e bus (0, 37, 54, 111, 133, 166) con applicazione immediata
-il menu mantiene come sfondo l'immagine del gioco finch non
 viene sovrascritta:  possibile disattivare questa funzione
 e avere uno sfondo nero
-possibilit di attivare/disattivare la funzione dump
-possibilit di attivare/disattivare l'applicazione dei trucchi
 dal menu
-protezione online gaming: se lo switch wlan  su (attivo) 
 i trucchi non vengono applicati
-visualizzazione nome gioco (se presente nel DB) e ID del gioco
-codici supportati (alcuni non  stato possibile testarli
 se siete in grado di testarli e non vi funzionano
 potreste mandarmi il codice e potrei vedere perch non va)
 *16-bit Greater Than : Multiple Skip 	Ennndddd 3aaaaaaa
 *16-bit Less Than : Multiple Skip 0xEnnndddd 0x2aaaaaaa
 *16-bit Not Equal : Multiple Skip 0xEnnndddd 0x1aaaaaaa
 *16-bit Equal : Multiple Skip	0xEnnndddd 0x0aaaaaaa
 *16-bit greater than - TEST CODE - 0xDaaaaaaa 0x0030dddd
 *16-bit less than - TEST CODE - 0xDaaaaaaa 0x0020dddd
 *16-bit not equal - TEST CODE - 0xDaaaaaaa 0x0010dddd
 *16-bit equal - TEST CODE -   	0xDaaaaaaa 0x0000dddd
 *code stopper  0xCaaaaaaa 0xvvvvvvvv
 *Time Command  0xB0000000 0xnnnnnnnn (based on cheat delay)
 *16-bit XOR - 0x7aaaaaaa 0x0005vvvv
 *8-bit XOR -  0x7aaaaaaa 0x000400vv
 *16-bit AND -	0x7aaaaaaa 0x0003vvvv
 *8-bit AND - 	 0x7aaaaaaa 0x000200vv
 *16-bit OR -	 0x7aaaaaaa 0x0001vvvv
 *8-bit OR - 	 0x7aaaaaaa 0x000000vv
 *[pointer command] 32-bit write	0x6aaaaaaa 0xvvvvvvvv 0x0002nnnn 0xiiiiiiii
 *[pointer command] 16-bit write	0x6aaaaaaa 0x0000vvvv 0x0001nnnn 0xiiiiiiii
 *[pointer command] 8-bit write	0x6aaaaaaa 0x000000vv 0x0000nnnn 0xiiiiiiii
 *copy byte	0x5aaaaaaa 0xnnnnnnnn 0xbbbbbbbb 0x00000000
 *[tp]32-bit Multi-Address Write 	0x4aaaaaaa 0xxxxxyyyy 0xdddddddd 0x00000000
 *32-bit decrement 0x30500000 0xaaaaaaaa 0xnnnnnnnn 0x00000000
 *32-bit increment 0x30400000 0xaaaaaaaa 0xnnnnnnnn 0x00000000
 *16-bit decrement 0x3030nnnn 0xaaaaaaaa
 *16-bit increment 0x3020nnnn 0xaaaaaaaa
 *8-bit decrement 0x301000nn 0xaaaaaaaa
 *8-bit increment 0x300000nn 0xaaaaaaaa
 *[t]32-bit Constant write 0x2aaaaaaa 0xdddddddd
 *[t]16-bit Constant write 0x1aaaaaaa 0x0000dddd
 *[t]8-bit Constant Write 0x0aaaaaaa 0x000000dd

 [t] sono testati e sicuramente funzionanti
 [tp] testati ma non a sufficienza e/o con codici reali
 per ulteriori informazioni consiglio questo sito:
 http://www.codemasters-project.net/portal-english/apportal/cmp_plugins/content/content.php?content.23
 
 NB: i codici sono in formato relativo rispetto all'inizio dell'area
     user della ram. quindi l'indirizzo assoluto      indirizzo relativo + 0x08800000
     Quindi per convertire dei trucchi in formato assoluto basta
     sottrarre 0x08800000 all'indirizzo del codice

-possibilit di salvare tutta la configurazione che verr caricata all'avvio (modificabile a mano e salvata in
 /dh/CWCHEAT.INI)
-funziona su tutti i firmware che funzionano sotto devhook

[INSTALLER EBOOT]
-funziona sotto 1.50 (1.00 non testato)
-contiene tutti i dati necessari in un solo eboot
-copia automaticamente il prx, il db incluso nelle cartelle corrette
 (prx => /dh/kd/cwcheat.prx, db => /dh/cheat.db)
-aggiunge automaticamente nei file pspbtcnf.txt (caricamento nella vsh)
 e/o pspbtcnf_game.txt (caricamento nel gioco) i dati necessari
-funzione di ripristino che controlla l'uguaglianza binaria del file
 con quello embedded nell'installer e permette di ripristinare prx,
 db e richiami nei file pspbtcnf.txt/pspbtcnf_game.txt; permette anche
 di modificare l'installazione e di caricare il prx in firmware diversi
-funzione di configurazione del prx ( sempre consigliabile farlo dal prx)
-funzione di disinstallazione che cancella db, prx e ogni riferimento in
 ogni file pspbtcnf.txt/pspbtcnf_game.txt di ogni firmware
-grafica by ale275

[CERCATORE DI CHEAT]
-fatto da sincro
-ricerca valori 8/16/32 bit con rilevamento automatico
-ricerca in pipassi con salvataggio dei risultati di ogni passo
 e creazione voce di db
-modalit ricerca differenze tra dump ( > e <)

----------------------------------------------------
TODO:

-controllare funzionamento di tutti i tipi di trucchi
-aggiungere giochi nel db
-ottimizzare il codice
-completare il text reader
-aggiungere supporto per il caricamento nel custum firmware
-ricerca codici dalla psp
-aggiunta codici dalla psp
-altro (si accettano idee :P)

----------------------------------------------------
ENGLISH
----------------------------------------------------
This is a prx which works under devhook and can cheat
every devhook-compatible game under firmware emulation
This works trought raw-relative cheat codes like
action replay, codebreaker, gameshark, xploder, etc.
Other than this, it has support to other function
which are usefull for cheat finder and normal users
(like battery, cpu/bus clock, devhook version, 
 ms free/total space information)

The latest updates are always available on
http://www.consoleworld.org and http://weltall.consoleworld.org
The latest database version is available from
http://cwcheat.zioale.it/
If you make a cheat we would like to add it on the main database :)
if it's a long cheat or if you have a lot of cheats just contact me :)

if you found any bug just report it on bugzilla:
http://weltall.consoleworld.org/cgi-bin/bug/index.cgi :)

This project originally started in march with some
simple tests of prx functionality (like loading 1.50
vsh) then with the help of sincro (which developed
a loader and a cheat searcher) it evolved in a cheat
device.
But later in April this was discontinued because I couldn't
anymore contact sincro and problems with runumd.
Then... devhook with firmware emulation came... and
also some prxs appeared... so i decided to take again
that project and i ported successfully it to devhook
as a builtin prx without any loader (so the old loader
was removed from the project) and now it works as a
in-game menu and cheat device.

------------------------------------------------------
CHANGELOG:

0.1.6 RELEASE
[CORE PRX]
-No more screen flickering and real time update of data in the main menu
-fixed that graphic glitch appearing when putting out and in the ms
-cleaned up the menus of useless clear screen and print calls
-added support for 8bit and 16bit multiadress write
 it's the same as 32bit multi write but with a 0x8 in the place of 0x4
 and a 0x1 for 16bit and 0x0 for 8bit in front of the value entry (d)
 32bit
 0x4aaaaaaa 0xxxxxyyyy
 0xdddddddd 0x00000000
 16bit
 0x8aaaaaaa 0xxxxxyyyy
 0x1000dddd 0x00000000
 8bit
 0x8aaaaaaa 0xxxxxyyyy
 0x000000dd 0x00000000
-string optimizations
-support to select search intervals in the fixed value and diff search
-now swap buttons option is saved and loaded
-fixed a string were X was still showed even if the buttons were swapped
-fixed a bug which could lock up remaPSP if you tried loading macros (thanks to BAC for reporting this)
-now the screen is cleared before exiting the menu (usefull when cheating some tiff apps like tetris which keeped
 cwcheat menu in background and was a bit annoying, plus it can help avoiding games which shows cwcheat menu till
 they refresh the screen)
-added greather/less by than before in the diff search with R you can navigate the entry for the value
-now the db is loaded in the volatile partition (thanks to tyranid for unlocking it) so it can be up to 4mb (in teory)
-added screenshoot support: this is a custum implementation based on nekokabu sources which locks the game only
 for much less than a second. It proved to work fine everywere except in the browser with the menu opened.
 plus you can costumize the button for it (also this uses the volatile ram area)
-now when using the clear background function the screen is cleared also in those games which didn't permit to do it
 (eg: burnout)
-fixed a bug which could prevent you to go left while entering hex values in the fixed value search and cheat modify menu
-optimized a bit the code of the value insert dialogs
-the screenshoot button can be changed and saved to config file (NOTE: if you don't set any button it's disabled)
-cheat modification dialog has been redesigned (thanks to Haruyuki for the idea on how to change it), now all
 the codelines are showed contemporanely and with their adress, value in hex and value in decimal
 R changes COLUMS (address, hex value, dec value) L changes ROWS (codelines), X saves the modifications, O aborts them
 and DPAD just like before moves in the number and changes it
-fixed a buffer overflow which made remapsp auto enabling if the game name in the db was bigger than 30 chars
-now the game name can be up to 36 chars
-reworked the text reader: it can open files up to 1mb and scrool them up and down. it still requires some functions
 and the up botton requires some checks, but it works fine :)
-fixes here and there and optimizations


[INSTALLER]
-added support to DLX
-updated version

[DB DOWNLOADER]
-updated version

[PACKAGE]
-added german translation by Martek, spanish by Lezek and portogues by Coimbra.
-added translation utilities by Martek



0.1.5 RELEASE
[CORE PRX]
-done a lot of optimizations here and there gaining 7kb
-now you can traslate CWCHEAT (note cwcheat uses the classic printf font so you wont have chars like  ect)
NOTE: you must put the file with your translation here: ms0:/dh/cwcheat.lng

-now you can access the cheat selection menu directly from the game without opening the main menu
-button swap support added: now it's possible to confirm with O and abort with X if enabled, or have the same
 configuration taken from your firmware register files (emulated firmware)
-returned to gcc 4.0.2 : gcc 4.1.0 proved being higly instable (and made prx with 2 more kb)
-now the diff search screen is cleared when searching
-fixed some games in which the button pressed while exiting from in game menu was passed to the game
-now the current value of a found adress by searching is copied to the new cheat for all search type
-now you can change the adress of a cheat by pressing L in the cheat modification menu
-main menu reorganized and a new config submenu
-not 4byte alligned 32bit costant write codes now works (usefull for condensing, performance are affected like
 with not 4byte alligned 32bit multi adress write)
-now you can abort search by pressing O for some times
-other little things

[PACKAGE]
-included french (thanks to stark), english and italian language files


0.1.4B RELEASE
[CORE PRX]
-fixed a bug which didn't permit the user to modify the value of an already present cheat
 or a new cheat found trought search
-fixed some quick help errors
-now the current value is copied to the new cheat when adding a cheat found by searching

0.1.4 RELEASE
[CORE PRX]
-now it's possible to scrool cheat by +/- 10 with RIGHT/LEFT
-now cheat scrolling is fixed and faster
-FIXED RAM PROBLEMS now cheats are alloched dinamically (altough the allocation is fixed for this version)
-now it supports 550cheats * 30 codes without glitches :)
-db loading moved to kernel ram (this wasn't a problem but better safe than sorry)
-diff search now uses available ram dinamically: it search for the most big chunch of ram and allocates it
-now you can load different dbs by selecting a number with LEFT/RIGHT when reload cheat database is selected
 and pressing then x (this is valid only for loading: writing and other functions still saves to the default db)
 db 0 (default) = cheat.db
 db 1 2 3 ... = cheat1.db cheat2.db cheat3.db
-now diff search works also if the games allocates too much ram
-now cheat value modification, cheat entry trought search and fixed search value entry use a better input method
 where you choose the number to modify with left/right and press UP/DOWN to add a 1 to it. if you want you can edit
 the number in hex mode by pressing R
-8bit conditional codes implemented they work like the original but with a 2 in the value:
 *8-bit greater than - TEST CODE - 0xDaaaaaaa 0x203000dd
 *8-bit less than - TEST CODE - 0xDaaaaaaa 0x202000dd
 *8-bit not equal - TEST CODE - 0xDaaaaaaa 0x201000dd
 *8-bit equal - TEST CODE -   	0xDaaaaaaa 0x200000dd
-cheat.db updated
-changes in the diff search gui text
-other optimizations
-thanks to tyranid for a function from psplink which helped me iron out those ram problems
-now it's possible to remove with a button press all the search data


0.1.3B RELEASE

[CORE PRX]
-correct a bug which overflodded the kernel ram if a game had more than 399 cheats and could lead to a crash
 (eg: monster hunter freedom eu)
-now 420 cheats are supported per game (now all mhf cheats can be loaded)
-now the remaps folder of remaPSP is moved to ms0:/dh/ before it was in ms0:/

[INSTALLER]
-removed the 0x0 from the GUI

[PACKAGE]
-added a french manual by stark from cfccar.com

0.1.3 RELEASE

[PACKAGE]
-added an application which permits to automatically download from the psp 
 the latest database (cwcheat db downloader)

[CORE PRX]

-now square function is written in the select cheats menu
-Now pressing L during the loading process (when you are on the please wait
screen, when you are on the PSP white loading screen... (depending where you
load cwcheat)) it's possible to terminate cwcheat and it won't be enabled till
vsh/game reload
-now pressing R enables HOMEBREW MODE. this mode skips the umd reading runtime
and search in the database for the signature HOMEBREW. in this modality you
can cheat usermode homebrew loaded trought devhook
-now the a jocker code type is supported
 this is the syntax 0xD0000000 0x1vvvvvvv where v is a value obtained by the
 sum of up to three controller command: check the MANUAL or pspcrtl.h in the
 sdk, PSP_CTRL_HOME, PSP_CTRL_MS, PSP_CTRL_DISC aren't handled
-optimization in the change buttons functions
-now it's possible to change the value to be searched by +/- 1000 by using R/L
 Buttons
-now it's possible to change the value to be modified by +/- 100 by using
 left/right button
-now it's possible to change the value to be modified by +/- 1000 by using L/R
 buttons
-Now to change codeline in the cheat modification menu you have to use TRIANGLE/SQUARE
-support for database saving for either games and homebrew. it saves modified
 values, added codes and if a code is enabled/disabled
-now supporting octals in the database up to 37777777777 before was 777777777
 remember to put a zero before octal numbers eg: 037777777777
-corrected a bug which prevented cheat apply abilitation/deabilitation
 controller combination to work with combinations of less than three buttons
-now when you enable the cheats with the combination it will be showed the
 status of the cheats (enabled / disabled) till the combination buttons are
 released and controller check delay has passed
-removed some old text in the controller change submenu 
-now scrolling in the cheat selection menu is faster
-fixed a small bug which could make 16bit greather than not working in some cases
-fixed a small bug which could make 16bit less than not working in some cases
-fixed a small bug which could make 16bit equal not working in some cases
-fixed a small bug which could make 16bit not equal not working in some cases
-fixed a small bug which could make copy bytes not working in some cases
-fixed a bug which copied in copy byte required bytes + 1
-ADDED REMAPSP BY DANZEL with all function of the standalone remapsp
-Remapsp can be enabled disabled from the ingame menu or trought a selectable combination
 disabling it will remove all hooks, enabling it will reload the remap txt file of the game
-the remapsp configuration menu is accessible from the ingame menu this won't affect screenshoot prxes anymore
-when you enable/disable remapsp you will see a text on the bottom of screen telling you if it's enabled or disabled
-remapsp can be automatically enabled at boot time if enabled in the configuration
-NOTE: it won't affect cwcheat controls and jocker code just like the psp vsh or psp home menu because it's an hook of
       usermode functions
-selected controller map can be saved as default and autoloaded if game specific map not found
-it's possible to dump to usbhostfs0:/ for more information check the MANUAL file
-now battery volt shows decimals
-now fw version is showed in the in game menu
-code clean ups
-various optimizations

[DB DOWNLOADER]
-Downloads automatically to the correct folder the cheat.db from the server
-the cheat.db is updated with the main sql database every 15 minutes
-thanks to bzip2 for the server side implementation
-it connects automatically with the first connection so make sure before launching this 
 that the wlan switch is up


0.1.2 RELEASE

[CORE PRX]
-now cheats are applied every 1/10000 sec (before was second*cheat delay)
-cheat delay is now control delay which mean how much seconds to wait
 before checking the keys combinations
-now priority is 0x64, before was 0x1 (this means less priority)
-now when entering the cheat selection it waits for the X buttons to be
 released (this caused the always Y first cheat when entering the menu)
-now the buttons which are keep pressed will be repeated also in the
 main menu
-now usb autostart is correctly handled and usb is enabled when the prx 
 is loaded
-corrected some graphic glitchs on the bottom of the screen of the main menu
-cheat DB format update: now the db can store also the enabled/disabled
 status of every cheat so it will automatically enable the cheats you
 choose.
 Now the old database format is deprecated: it still works but the support
 for it will be dropped on the next version
 The new format changes only the _C (Cheat) entry now it's _C# where #
 is a 1 (enabled) or a 0 (disabled). If another number is found the cheat
 will be disabled, if a space is found (only this version) the cheat will
 be read as an old format cheat. To update your DB just replace the _C
 with _C0 (or _C1)
-now it's possible to edit on the go directly from the cwcheat menu
 the value field of a code. 
-now the 32bit multi write code works correctly also if the adress isn't
 a power of 4. So condensed codes which didn't work before will work fine
-Now it's available a cheat search function from the game
-The cheat search function supports 8/16/32bit fixed value search
-Found adresses in the cheat search function are written to progressive
 file (pass0.txt, pass1.txt, etc.)
-You can return to game and then continue your search for codes.
-The resume fixed value search function shows the first 10 adresses
 found in the precedent search with the value of these adresses in
 hexadecimal and decimal format (usefull to avoid another search when
 you have only a little number of adresses)
-some optimizations here and there

[INSTALLER]
-changed the restore icon to a restore/update icon to avoid mistakes

0.1.1 RELEASE

[CORE PRX]
-now you can exit the main menu with O
-in the main menu if you press X on return to game (or O)
 the prx will  wait for you to release the x button. 
 In this way you will avoid not wanted keypresses when exiting
-in the submenus it will wait you to release O button when exiting
-now when you press up when you are on the first entry it will go
 to the last entry. If you press down when you are on the last entry
 it will go to the first entry
-in the cheat selection submenu you can keep a button pressed and it
 will automatically repeat so you can scrool large code list in less
 time
-Now dump are endless they will be made in different files till you
 finish the free space on memory stick then it will start again with
 the first dump
-added 33 mhz for cpu and 16mhz for bus
-added an enable usb function. it will load in game the usb mass function
 so you can access your ms while playing to make cheat quicker and without
 a card reader.
 NOTE1: it will be disabled while dump to be re-enabled after
 NOTE2: sometimes when writing to ms from pc the psp doesn't
        flush the cache so if you change the database it could
        still be not updated. if this happen a workaround is
        ejecting the memory stick and putting it in again.
 NOTE3: you need to disable usbhostfs to make usb mass work
-added "enable usb" options
-fixed some buffer overflow in the cheat.db parsing function
-now you can give to the game names up to 30 chars (before was 20)
-now you can give to the cheat names up to 30 chars (before was 20)
-now you can store up to 500 cheats for game (before was 400)
-other little things and optimizations

[INSTALLER EBOOT]
-updated included database
-updated included prx
-added option usb enable
-now you can configure cwcheat from the installer also without the cwcheat.ini

[CHEAT FINDER]
-now you can force 8/16/32bit search or keep to AUTO like before
-now 16/32bit search have the right endianess (little endian)
 so if you had problem with these searches before try again
-NOW IT'S IN ENGLISH AND ITALIAN!

0.1 RELEASE

[CORE PRX]
-support for some devhook function and configuration change
 (cpu/bus mhz, devhook version)
-in game menu with pausing of all the threads
-shows free space/size of the memory stick
-shows effective cpu/bus frequence
-shows advanced informations about the battery
 (charge %, time left, charging status, volt)
-reloading of the cheat database while in-game
 (usefull to find new cheats)
-support to change buttons for the principal function
 (menu opening, ram dumping, abilitation/deabilitation cheats,
  one-time cheat application)
-mini text reader (it can read text which can stay on the psp screen,
 the rest of the files will be truncated)
-one-time chat apply from menu
-cheat selection menu with abilitation/deabilitation of 
 single/all cheats and with cheat description, usable also ingame
-you can set a delay of the cheat application and check of pressed
 buttons (1-10 sec)
-You can set the cpu clock (0, 111, 222, 333) 
 e bus clock(0, 37, 54, 111, 133, 166) with immediate application.
-the menu mantains the game screen of the not overwritten areas:
 it's possible to disable this function
-you can enable/disable dump function
-you can enable/disable cheat application from the menu
-online gaming protection: if the wlan switch is on
 the cheats won't be applied
-shows game name (if present on the DB) and game ID
-supported codes(some couldn't be tested if they don't work for you
 tell me what goes wrong and a sample code to exploit the problem)
 *16-bit Greater Than : Multiple Skip 	Ennndddd 3aaaaaaa
 *16-bit Less Than : Multiple Skip 0xEnnndddd 0x2aaaaaaa
 *16-bit Not Equal : Multiple Skip 0xEnnndddd 0x1aaaaaaa
 *16-bit Equal : Multiple Skip	0xEnnndddd 0x0aaaaaaa
 *16-bit greater than - TEST CODE - 0xDaaaaaaa 0x0030dddd
 *16-bit less than - TEST CODE - 0xDaaaaaaa 0x0020dddd
 *16-bit not equal - TEST CODE - 0xDaaaaaaa 0x0010dddd
 *16-bit equal - TEST CODE -   	0xDaaaaaaa 0x0000dddd
 *code stopper  0xCaaaaaaa 0xvvvvvvvv
 *Time Command  0xB0000000 0xnnnnnnnn (based on cheat delay)
 *16-bit XOR - 0x7aaaaaaa 0x0005vvvv
 *8-bit XOR -  0x7aaaaaaa 0x000400vv
 *16-bit AND -	0x7aaaaaaa 0x0003vvvv
 *8-bit AND - 	 0x7aaaaaaa 0x000200vv
 *16-bit OR -	 0x7aaaaaaa 0x0001vvvv
 *8-bit OR - 	 0x7aaaaaaa 0x000000vv
 *[pointer command] 32-bit write	0x6aaaaaaa 0xvvvvvvvv 0x0002nnnn 0xiiiiiiii
 *[pointer command] 16-bit write	0x6aaaaaaa 0x0000vvvv 0x0001nnnn 0xiiiiiiii
 *[pointer command] 8-bit write	0x6aaaaaaa 0x000000vv 0x0000nnnn 0xiiiiiiii
 *copy byte	0x5aaaaaaa 0xnnnnnnnn 0xbbbbbbbb 0x00000000
 *[tp]32-bit Multi-Address Write 	0x4aaaaaaa 0xxxxxyyyy 0xdddddddd 0x00000000
 *32-bit decrement 0x30500000 0xaaaaaaaa 0xnnnnnnnn 0x00000000
 *32-bit increment 0x30400000 0xaaaaaaaa 0xnnnnnnnn 0x00000000
 *16-bit decrement 0x3030nnnn 0xaaaaaaaa
 *16-bit increment 0x3020nnnn 0xaaaaaaaa
 *8-bit decrement 0x301000nn 0xaaaaaaaa
 *8-bit increment 0x300000nn 0xaaaaaaaa
 *[t]32-bit Constant write 0x2aaaaaaa 0xdddddddd
 *[t]16-bit Constant write 0x1aaaaaaa 0x0000dddd
 *[t]8-bit Constant Write 0x0aaaaaaa 0x000000dd

 [t] tested and surely working
 [tp] tested but not with real codes
 For further information i advise this site:
 http://www.codemasters-project.net/portal-english/apportal/cmp_plugins/content/content.php?content.23
 (yeah it's the right section :P)
 
 NB: the codes are in the relative format from the start of the user ram area.
     So the absolute adress is relative adress +0x08800000
     To convert some cheat from the absolute format you need to
     subtract 0x08800000  from the adress of the code

-you can save the configuration which will be loaded every time 
 the prx is loaded (it's manually modificable and it's saved in
 /dh/CWCHEAT.INI)
-it works under all firmware which works under devhook

[INSTALLER EBOOT]
-works with 1.50 (1.00 isn't tested)
-contains all the necessary data in the eboot
-Copies automatically the prx, the included db on the correct folders
 (prx => /dh/kd/cwcheat.prx, db => /dh/cheat.db)
-adds automatically in the pspbtcnf.txt (vsh loading)
 and/or pspbtcnf_game.txt (in game loading) files the necessary data
-restore function which controls the prx file integrity and permits
 the restoration of the prx, of the db and of the calls to the prx
 inside the pspbtcnf.txt/pspbtcnf_game.txt files; it permits also
 to modify the installation and to load prx in different firmware
-configuration function for the prx (it's better the built in prx function)
-uninstallation function which erases the db, the prx and every call
 in the pspbtcnf.txt/pspbtcnf_game.txt in every firmware
-graphic by ale275

[CHEAT FINDER]
-Made by sincro
-search 8/16/32bit value with auto selection
-search in various pass with save of the result from every pass
 and creation of the db entry
-it can search differences beetwen dumps (major less values)

----------------------------------------------------
TODO:

-check if all the cheats type works
-adding games to the db
-code optimizations
-completing the text reader
-evolving the db format
-Adding support to loading inside the custum firmware
-adding of cheats from the psp
-add a greather by, less by
-add name editing from psp
-others (I'm accepting ideas :P)

---------------------------------------------------------------------------
Credits:
Made by weltall
REMAPSP by danzel
original database implementation and pc cheat searcher by sincro
gfx by ale275
database website by zio`ale (http://cwcheat.zioale.it/)
croncheat (application server side to make the required files for the cwcheat db downloader) by bzip2 

thanks goes out to the betatesters:
-ale275
-WSagitt
-C10uD
-sincro
-Gigasonic
-ps2lover

thanks to the dbmantainer/betatesters:
-zio`ale
-jungleteck
-vincent_10_27
-Henry
-CanisLupus
-other i've missed (tell me :P)

thanks for some cheats goes to:
-radical dreamer (also for pointing some problems)
-stark
-nekokabu
-731
-sincro
-WSagitt
-UCF-Sal X
-bdragonomega
-cyx
-albert_jr2
-Haruyuki
-Xedecimal
-BlackDeath
-Sketch
-Tot31
-kenobi (also for pointing some problems)
-all the others (if you want yourself added put a comment with your nick on the online db
                 for a considerable amount of games and point it to me)

thanks to all the ps2dev community, to Tyranid, dot_blank, imk, danzel.
thanks to bugzilla developers for their bug tracking enviroment.
thanks to BOOSTER for his devhook
thanks to you
-----------------------------------------------------------------------------
Disclaimer

The cwcheat Program is free to use, but I retain ownership of it.

LICENSE GRANT

The author grants a non-exclusive license to use the program, free of charge, if the user:
Does not use the program for illegal purposes or aganist other licenses (like sony online gaming);
Does not try to modify it;
Does not try to modify any part of the archive, of the text files and the applications itself;
Does not try to remove copyrights or change them.

People that for any reason do not fit the conditions above, are expressly forbidden to use the program."

In addition the software (cwcheat) is released AS IS this means that i won't take any responsability
about damages or data lost directly or indirectly by the use of this application so use at your own risk
and do backup as always when installing/uninstalling something.


