HOW TO: Run games from USB drive

Search This thread

brando56894

Senior Member
Dec 16, 2010
1,881
257
Jersey City
Great idea, I have the 8gb also and it sucks that we can only have like two big games on the device at once. I've been thinking about getting the 16gb also and regret not waiting for one to became available but hopefully someone will get the microsd card hack working perfectly soon and I'd throw a 32gb or 64gb in this bad boy and be set for life!
 

life02

Senior Member
Jan 17, 2006
533
88
DFW
Glad I waited to buy horn.... I had a feeling it would be on sale soon. I'll try it out with this method and get a video up.

Sent from my Nexus 7 using xda app-developers app
 
Oct 9, 2011
17
2
It should work but I haven't tested it... As long as it can write to the USB drive and the game isn't a single file larger than 4GB.

UPDATE: Tested on FAT32... you can skip the unmount from system and the paragon steps. It seems to be working just fine with Horn.

Thank you. I used with stock rom with NTFS using paragon and FFIII works for me. Great guide.
 

life02

Senior Member
Jan 17, 2006
533
88
DFW
I'm using http://xdaforums.com/showthread.php?t=1410262 for this. Question is what's the advantages of this method compare to DitectoryBind app? I'm having problem with DirectoryBind, the path didn't stick.

Sent from my Nexus 7

The paths stick until the usb drive is unmounted. Then you have to re-run the script.

Advantages to this method: Documentation is specific for the Nexus 7, instructions for FAT32 and NTFS drives, I'm providing the directory structure for games that work (in the scripts).

Basically I am doing the same thing as DirectoryBind: "mount -o bind /storage/usbdisk/Horn /sdcard/Android/obb/com.Phosphor.Horn.Paid"

I'm going to look at modifying the scripts to reduce the number of steps for NTFS drives. It would be great it we could get NTFS write support without the use of Paragon.
 
  • Like
Reactions: adxgrave

kieso

Senior Member
Mar 18, 2009
603
104
Is there a specific class of SD to use to make sure everything runs smooth
 
Feb 2, 2010
41
7
After 30 minutes of trouble shooting the "mount: no directory found" I give up.

*EDIT*
DO NOT UNPLUG THE OTG CABLE BEFORE UNMOUNTING.
My nexus 7 wont turn on, respond to plugging it in the wall or PC.
I have to figure out whats wrong :(

*EDIT*
Had to long press for about 15-20 seconds now it's on again :)
 
Last edited:
  • Like
Reactions: brainbeatuk

life02

Senior Member
Jan 17, 2006
533
88
DFW
Yeah none of the scripts are going to work unless you mount the usb drive to what I used in the script. You can change the script however to match your setup if you don't want to use Paragon (but it's free)

Sent from my SGH-T989 using xda app-developers app
 

jaysmi32

Senior Member
Jun 13, 2010
568
35
Anaheim Hills, CA
life02, im on eos rom using the lastest faux kernel, when i plug in my otg cable it doesnt see my 32gb sdcard, if i use stick mount then it works, how would i go about using stick mount to get this to work?
 

Top Liked Posts

  • There are no posts matching your filters.
  • 39
    NOTE: Currently only working on Android 4.1.2. I'll look for a workaround when my new OTG cables come in.

    So I purchased the 8 GB Nexus 7 and began to regret not getting the 16 GB version. These 1-3 GB games are killing me. I purchased The Bard's Tale (great game btw) and the TegraHD version requires 3.5 GB! I already had a USB OTG cable so I began looking for a way to store the game data on the USB drive and mount it to the data directory on the sdcard.

    You will need:
    • Compatible USB OTG Cable
    • Paragon NTFS&HFS+
    • GScript Lite
    • Compatible kernel (ntfs read/write support)

    I've tested this on ParanoidAndroid and SGT7 but it should work on any rom.

    Note: Each game requires a game data folder on the USB drive that matches my script (or you can create your own folder and edit the script). You will also need a blank folder on the sdcard (/sdcard/android/data/GAMEFOLDER_from_Script - You have to use this folder name). Once this folder from the USB drive has been mounted to the correct position on the SDCARD, the game data will download to the USB drive.

    Video: http://www.youtube.com/watch?v=4dWqLjnCSBg&feature=youtube_gdata

    NTFS USB Drive STEPS:
    1. Plug in USB drive to Nexus 7 and unmount if the system automounts the drive (Settings - Storage - Unmount shared storage)
    2. Open Paragon NTFS&HFS+ and mount the USB drive using the automatic mount point setting (/storage/usbdisk).
    3. Open GScript Lite and run a game script to bind mount the game data folder to the sdcard.
    4. Enjoy your game and extra space!
    5. When done, unmount with Paragon NTFS&HFS+.

    FAT32 USB Drive STEPS:
    1. Plug in USB drive to Nexus 7, it should be automounted by the system to the default location: /storage/usbdisk
    2. Open GScript Lite and run a game script to bind mount the game data folder to the sdcard.
    3. Enjoy your game and extra space!
    4. When done, unmount via the system: (Settings - Storage - Unmount shared storage)

    Assuming your USB drive is mounted on /storage/usbdisk/ and you have created the empty game data folder on the sdcard (/sdcard/android/data/GAMEFOLDER_from_Script), the following scripts should work:
    Code:
    Script for Horn:
    mount -o bind /storage/usbdisk/Horn /sdcard/Android/obb/com.Phosphor.Horn.Paid
    
    Script for Bard's Tale:
    mount -o bind /storage/usbdisk/BardsTale /sdcard/Android/data/com.inxile.BardTale
    
    Script for Max Payne:
    mount -o bind /storage/usbdisk/MaxPayne /sdcard/Android/data/com.rockstar.maxpayne
    
    Script for Dead Trigger (gave me an error the first time opened but worked fine afterwards):
    mount -o bind /storage/usbdisk/DeadTrigger /sdcard/Android/obb/com.madfingergames.deadtrigger
    
    Script for Shadow Gun THD:
    mount -o bind /storage/usbdisk/shadowgun /sdcard/Android/data/com.madfingergames.shadowgun_thd
    
    Script for Asphalt 7:
    mount -o bind /storage/usbdisk/Asphalt7 /sdcard/Android/obb/com.gameloft.android.ANMP.GloftA7HM
    
    Script for The Dark Knight Rises:
    mount -o bind /storage/usbdisk/TDKR /sdcard/Android/obb/com.gameloft.android.ANMP.GloftKRHM
    
    Script for Mass Effect Infiltrator:
    mount -o bind /storage/usbdisk/MassEffect /sdcard/Android/data/com.ea.games.meinfiltrator_na

    I'll add more scripts as time permits.

    Alternate Method (No scripts needed but you loose SDCard when USB drive is mounted):
    http://xdaforums.com/showthread.php?t=1865094
    4
    Directory Bind does not seem to be working with 4.2.1

    and does not look like the dev will ever update it as he has not been seen for almost a year on xda..

    a real shame as i use directory bind on my gnote

    Guys sorry I haven't been updating this guide since 4.2.1. Both my USB OTG cables have shorts in them so I haven't even attempted to find a workaround yet. I just ordered two more cables and will look into getting things working again on 4.2.1.
    2
    So I have to reboot the whole OS to play games or stuck in 4.1? PLEASE make this work my admired developers / hackers.

    Ok. I've use this script since a month ago and have use it to run nfs mount and directory binding successfully in 4.2.2 stock rom. I found it on the net and only remove a few line from it. All credit goes to the original author.

    Requirement:
    1. Root
    2. Busybox install in /system/xbin
    3. Stickmount
    4. $cripter (search in Play Store) - this is use to run the script or you can run it manually in terminal without this app.

    This is example script to bind FIFA12. All files needed for this game is in external sdcard under FIFA12 directory.

    The one that did the job is the last line, so ONLY modify that line to suit your need (the one that start with "adb_send_cmd")

    Step:
    1. Mount your external media using stickmount
    2. Copy all file from game folder to external media
    3. Save the script somewhere in internal storage
    4. Open $cripter and go to setting to set your script directory
    5. After the script appears in $cripter, long press and select edit. Tick run as root and save.
    6. Run the said script from $cripter.

    Caveat:
    If output from $cripter says something about device offline, just try again. That mean adb is not ready yet and nothing got mounted. Also just ignore the file not found line in the $cripter output. That got something to do with multiuser, the script did run. Sometimes stickmount mount the external media to somewhere different than sda1, so check that too.

    Edit: if you get too many device offline error, try to set the sleep time longer in the script. Find the line start with sleep and change 2 to 5.

    #!/system/bin/sh

    adb_status=`getprop init.svc.adbd`
    adb_port=`getprop service.adb.tcp.port`

    if [ -z "$adb_port" ]; then
    adb_port=-1
    fi

    adb_use_port=$adb_port
    adb_connected=0
    adb_sysroot=`getprop persist.sys.root_access`

    if [ -z "$adb_sysroot" ]; then
    $adb_sysroot=''
    fi

    adb_use_root=$adb_sysroot
    adb_rsa_keyed=0
    adb_key_at_connect=0

    trap "adb_reset" EXIT

    adb_send_cmd() {
    adb_start_flex
    adb -s localhost:"$adb_use_port" shell su -c "$*"
    }

    adb_start_flex() {
    local adb_restart=0
    if [ "$adb_use_root" != "3" ]; then
    setprop persist.sys.root_access "3"
    adb_use_root=3
    fi

    if ! [ "$adb_use_port" -gt 0 ]; then
    adb_use_port=5556
    setprop service.adb.tcp.port "$adb_use_port"
    adb_restart=1
    fi

    if [ "$adb_connected" -eq 0 ]; then
    if ! [ -f "$ANDROID_DATA/.android/adbkey.pub" ]; then
    adb kill-server
    HOME="$ANDROID_DATA" adb start-server
    fi

    grep -Fxq "$(cat $ANDROID_DATA/.android/adbkey.pub)" "$ANDROID_DATA/misc/adb/adb_keys"

    if [ "$?" -ne 0 ]; then
    cat $ANDROID_DATA/.android/adbkey.pub >> $ANDROID_DATA/misc/adb/adb_keys
    adb_rsa_keyed=1
    adb_restart=1
    fi

    if [ "$adb_restart" -eq 1 ]; then
    adb kill-server
    stop adbd
    start adbd
    sleep 2
    fi

    HOME="$ANDROID_DATA" adb connect localhost:$adb_use_port
    adb_connected=1

    fi
    }

    adb_reset() {
    local adb_restart=0

    if [ "$adb_connected" -ne 0 ]; then
    adb disconnect localhost:$adb_use_port
    adb_connected=0

    if [ "$adb_rsa_keyed" -ne 0 ]; then
    sed -i "\|$(cat $ANDROID_DATA/.android/adbkey.pub)|d" $ANDROID_DATA/misc/adb/adb_keys
    adb_restart=1
    fi

    if [ "$adb_port" -le 0 ]; then
    setprop service.adb.tcp.port "$adb_port"
    adb_restart=1
    fi

    if [ "$adb_restart" -eq 1 ]; then
    stop adbd
    start adbd
    fi
    fi

    if [ "$adb_use_root" -ne "$adb_sys_root" ]; then
    setprop persist.sys.root_access "$adb_sys_root"
    fi

    if [ "$adb_status" == "stopped" ]; then
    adb kill-server
    stop adbd
    fi
    }

    adb_send_cmd "/system/xbin/busybox mount -o bind /data/media/0/usbStorage/sda1/FIFA12 /data/media/0/Android/data/com.ea.game.fifa12_row"

    exit 0

    Example mount:
    1. NFS mount/umount
    adb_send_cmd "/system/xbin/busybox mount -o nolock server_ipaddr:/path/to/server/nfsvolume /data/media/0/nfsmount
    adb_send_cmd "/system/xbin/busybox umount /data/media/0/nfsmount"

    2. Dungeon Hunter 4 mount/umount
    adb_send_cmd "/system/xbin/busybox mount -o bind /data/media/0/usbStorage/sda1/DungeonHunter4 /data/media/obb/com.gameloft.android.ANMP.GloftD4HM"
    adb_send_cmd "/system/xbin/busybox umount /data/media/obb/com.gameloft.android.ANMP.GloftD4HM"

    3. Modern Combat: Zero Hour (2 mount point: data and obb in one script)
    adb_send_cmd "/system/xbin/busybox mount -o bind /data/media/0/usbStorage/sda1/MC4/obb /data/media/obb/com.gameloft.android.ANMP.GloftM4HM"

    adb_send_cmd "/system/xbin/busybox mount -o bind /data/media/0/usbStorage/sda1/MC4/data /data/media/0/Android/data/com.gameloft.android.ANMP.GloftM4HM/files"


    Sent from my Nexus 7 using Tapatalk 2
    2
    You can also use the app bind directory to mount and unmount works great even transfers files auto for you! I play all my games off a 32gb flash drive

    1. Basically install stickmount hook up your OTG Cable to your nexus 7 with your usb drive.

    2. Install bind directory.

    3. You have to know what folders have what in them so I use storage analyser to find what files are bigger.

    4. Create folders on your usb drive with names you can remember where you are mounting the games.

    5. Open bind directory and select the top part is where your data is going on the usb drive and bottom is where it is currently then check transfer data.

    6. Click the file to make it green and play!

    When unmounting hit the green file to make it grey and unmount from stickmount!

    Always back up your bind directory data base!

    Dead Trigger, O&C, GTA3 all work just fine.

    Sent from my Nexus 7 using xda app-developers app