       ___  _____  ___  ___   __
|\   |  |     |    |    |  | |  |
| \  |  |     |    |__  |__| |__|
|  \ |  |     |    |    |    |\
|   \| _|_    |    |__  |    | \
    _
   | \ \   /
   |_/  \ /
   | \   |
   |_/   |

 __              ___ 
|     /\  |\   |  |  | /
|__  |__| | \  |  |  |/
   | |  | |  \ |  |  |\
___| |  | |   \| _|_ | \

Installation:
1) Copy nitePR.prx to ms0:\seplugins\
2) Copy UCUS-98645.txt to ms0:\seplugins\nitePR\
2) If ms0:\seplugins\game.txt doesn't exist, create it
3) In ms0:\seplugins\game.txt add this line: ms0:/seplugins/nitePR.prx
4) Save ms0:\seplugins\game.txt
5) Turn off the PSP and then turn it on again while holding R-TRIGGER
6) In OE's BIOS, go under plugins and when you see nitePR, enable it

Mechanics:
When selecting cheats:
Cheats don't take effect till you tap the music button once
NitePR has to generate "OFF codes" and it does not do this till you press the music button at least once

After pressing the music button ONCE, then you'll be able to turn on/off codes whenever using the music button
(music button won't work while the menu's showing)

selecting cheats with the SQUARE button makes them blue - these cheats stay on until you turn em off in the menu - they DON'T get turned off by the music button
selecting chreats with the CROSS/X button makes them white - these cheats are turned on/off with the music button
So when it says "Cheats are OFF" - the WHITE cheats ARE off but the BLUE CHEATS STAY ON until you deselect them in the menu


Usage:
1) Start SOCOM FTB 2 (USA)
2)
   Method 1: Have cheats that are turned on/off by one button 
   a) Press the Volume + and - buttons at the same time to bring up the cheat selection menu
   b) At the menu, press X to select/deselect cheats
   c) Press O to return back to the game
   d) Press the NOTE button to turn on/off the selected cheats
   e) You can freely press the + and - buttons to bring up the cheat menu, and then deselect cheats to turn them off individually

   Method 2: Have cheats that are always On
   a) Press the Volume + and - buttons at the same time to bring up the cheat selection menu
   b) At the menu, press [] to enable/disable cheats
   c) What [] does is that it allows you to select cheats to have ALWAYS on!
   d) Cheats selected with X turn on/off with the music button, but cheats selected with [] don't!!!
   e) [] cheats stay forever on until deselected in the cheat menu or CONVERTED to an X cheat by clicking X on a []fied cheat =3

   ... btw [] = Square button on the PSP

   To edit cheats:
   a) Press Triangle over a cheat's name to go to the edit screen
   b) At the edit screen, press X to switch between EDIT MODE and SCROLLER MODE
   c) BLUE CURSOR = SCROLLER MODE
   d) RED CURSOR = EDIT MODE
   e) WARNING: There's no undo button, pressing the CIRCLE button doesn't act as undo!!! 
   f) NOTE: Edited cheats don't take effect until nitePR's cheat menu is closed

PLEASE READ BELOW!!!
Issues:
1) Compressed cheats (identified by cheats that start with 0x4_______ such as the one shot kill cheat) are not supported
   One can decompress such cheats easily by hand - please DO NOT ask me how to go about doing this for I don't care
   If you experience crashing, most of the times it's due to an inproper cheat or improperly converted cheat

2) Byte cheats (identified by cheats that start with 0x0_______) have to be converted like this:
   CWCheat format:
        0x0_______ 0x000000__
   NitePR format: (remove the 6 zeroes)
        0x0_______ 0x__
   So 0x00ABCDEF 0x000000FF would become 0x00ABCDEF 0xFF
   If you experience crashing, most of the times it's due to an inproper cheat or improperly converted cheat

3) Word cheats (identified by cheats that start with 0x1_______) have to be converted like this:
   CWCheat format:
        0x1_______ 0x0000____
   NitePR format: (remove the 4 zeroes)
        0x1_______ 0x____
   So 0x10ABCDEF 0x0000FFFF would become 0x10ABCDEF 0xFFFF
   If you experience crashing, most of the times it's due to an inproper cheat or improperly converted cheat
   
4) "Pressing the music button causes the game to crash"
    a) Try using the default UCUS-98645.txt that came with the zip file (for debugging purposes)
    b) Try disabling all plugins (since it might be CWCheat competing for memory in the PSP)
    c) A memory desync happened - rare but it happens - that's when code is being written to an area that's being executed

5) "Pressing the music button causes the TINT to freeze off or never turn on again"
    a) This is a problem with cache issues. The non-graphical cheats will turn on/off accordingly - so no need to panic.
    b) Will be replaced by a much simpler and bug-free mechanism in the future versions

6) "Can I change the buttons?"
    a) Yes you can - see "extended.txt"
    b) As well as ability to change SAVE GAME MAC address without reflashing - see "extended.txt"
    c) Or you can use the program nitePRed.exe to do it without a hex editor
    d) To use nitePRed.exe, just place it in the same folder as nitePR.prx!

7) "Will other PSP games work?"
    a) Yes, make an appropriate text file in the ms0:\seplugins\nitePR\ folder!
    b) The text file name uses the game's ID (which should be on the side of the UMD box)

8) "Does NitePR support cheats that are BYTEs and WORDs ... or only DWORDs?"
    a) Since version C, support for BYTEs and WORDs have been added, look at Issues #2 and #3 to see how to convert byte/word cheats

9) "For some reason, with NitePR my game music shuts off!"
    a) NitePR (in order to draw to the screen without flicker) needs to have extra memory to draw the visuals to. Sometimes this collides with games causing wierd errors like such.
    b) Nothing can be done about it right now =/

10) "What's the Cheat Hz for? - it's under the PRX menu"
    a) Setting this to 0 means Cheat freezing is Off
    b) WARNING - do not touch this if you have no clue what you're doing!
    c) Most SOCOM cheats work by changing the game code - so those cheats only need to be applied once
    d) But for other games, the cheats work by constantly resetting a value, let's say the player health, to 100
    e) To enable such functionality in NitePR, just set this to anything other than 0 to enable cheat freezing
    f) Using this in NitePR for SOCOM, esp. online causes a lot of lag + slowdown... hence expect to lose network connection constantly!!!

11) "What's 'Pause Game' for?"
    a) It will pause the game whenever the nitePR menu is being shown
    b) It's also useful for creating lag
    c) As well as giving the user time to think while the room is getting booted since it causes SOCOM to skip a few packets

12) "How many cheats does NitePR support?"
    a) NitePR doesn't count by cheats but more by addresses. It supports 512 lines of addresses.

13) "I added my cheat from the searcher, but it's not taking affect?"
    a) Sometimes you need to "refresh" the cheats - this is because nitePR needs to generate OFF codes for the new cheats.
    b) To force nitePR to do this, go to PRX->Reset Cheats

14) "What's the button setup for each screen?"
    a) Good question!
    b) Cheater menu:
       1) >< = Select cheat Method 1 - cheats selected with this method get turned on/off whenever the MUSIC button's pressed
       2) [] = Select cheat Method 2 - cheats selected with this method get turned on, and stay on till they are deselected again
               Although, to enable em, you just need to press the MUSIC BUTTON ONCE (before joining a room let's say)
       3) /\ = Edit the currently selected cheat (be careful, there's no undo button)
       4) () = Cancel/Close Menu
    
    c) Searcher menu/PRX menu:
       1) >< = Select menu option
       2) () = Deselect menu option
    d) Browser/Decoder:
       1) >< = Enable/Disable edit mode
       2) () = Cancel/Close Menu ... if EDIT MODE is enabled, this won't close NitePR but will instead exit EDIT MODE. Tap it once more to close NitePR
       3) DPAD = Move around ... if EDIT MODE is enabled, this movements change the values
       4) WHEN EDIT MODE IS OFF: [] + Analog stick = SCROLL
       5) WHEN EDIT MODE IS OFF: [] + DPAD = SCROLL
       6) WHEN EDIT MODE IS ON: [] = Teleport Cursor between ASCII and BYTES

15) "In the cheat editor or search editor, I press the [] button to change the value type/size, but it's not working!"
    a) In the search editor, you can only set the value type/size on the first search.
       1) All the searches afterwards use the type/size based on the first one
       2) To change this, select Searcher->Reset Search, or keep selecting "Undo Search" until you can use [] again
    b) In the cheat editor, you can only set the value type/size when the address is divisible by 4 with no remainder

UCUS-98645.txt file syntax:
1) Format of a cheat
#CHEAT NAME
0x________ 0x________
0x________ 0x________
0x________ 0x________

2) For X-type cheats: 
The ! symbol tells NitePR to "select" the cheat by default
#!CHEAT NAME
0x________ 0x________
0x________ 0x________
0x________ 0x________

3) For []-type cheats:
Notice what's different from before? There's TWO ! after the # this time and NOT just one
The !! symbol tells NitePR to "select" the cheat by default
#!!CHEAT NAME
0x________ 0x________
0x________ 0x________
0x________ 0x________

4) Comments
Comments are denoted by a SEMICOLON
They are IGNORED by NitePR upon loading up
So put whatever you want there
They're useful for grouping cheats into one cheat but allowing you to identify the cheats later when looking at socom.txt directly
(For example, look at the "Boot-Cheats" in UCUS-98645.txt )

#!CHEAT NAME
;This line allows you to see Jesus
0x________ 0x________
;No clue what this line does
0x________ 0x________
;Mhmm - I smell tacos
0x________ 0x________

5) A note about CWCheat:
CWCheat cheats are in this format:
0x##AAAAAA 0xVVVVVVVV

Where:
## = type
AAAAAA = address
VVVVVVVV = value

If the type is 00, the value is a byte
If the type is 10, the value is a word (2 bytes)
If the type is 20, the value is a dword (4 bytes)
If the type is 40, the cheat altogether is a simple RLE-type compressed cheat

6) A note about NitePR
NitePR cheats are in this format:
0x##AAAAAA 0xVVVVVVVV

Where:
## = ANY NUMBER, could be FF, 10, 50, etc., whatever it is, NitePR ignores this value for now!!! It will be used later to help create DMA cheats
AAAAAA = address
VVVVVVVV = value

If the value is 2 digits, the value is a byte... example is 0x25
If the value is 4 digits, the value is a word (2 bytes)... example is 0x3F01
If the value is 8 digits, the value is a dword (4 bytes)... example is 0x13A100EE