Giter Club home page Giter Club logo

gamecard-microsd's Introduction

PS Vita gamecard to microSD adapter

Software

driver contains a kernel module. Add it to taihen's config.txt KERNEL section. You can download a precompiled .skprx from the Releases section.

Your microSD card must have no partition table. exFAT filesystem should be written directly to the device. On Linux, do:

mkfs.exfat /dev/sdx # (without a number)

On Windows, this works: https://redd.it/6o4gqh / https://redd.it/6o62vx

On Mac this should work (Tested on OSX 10.12):

# List your attached storage, find your sd card
sudo DiskUtil list
# If necessary, unmount volume
sudo diskutil unmountdisk /dev/diskn (where n is the number of the mounted sd card)
# Format drive
sudo newfs_exfat -R /dev/diskn  

After that, the card still works on both Linux and Windows, however other devices might have some problems.

Compiling the driver

To compile:

cd driver
mkdir build && cd build
cmake ..
make

Hardware

board contains Autodesk EAGLE schematics and board files. Note: last revision still untested.

The pcb has to be 1mm thick. This means I only tested 1mm thick PCBs and found them to work fine. I don't know if other thicknesses work.

Note how the pcb has a hole in place of microsd socket. You need to flip the socket and mount it into the hole .

The socket should look like that. You can buy these from aliexpress for about $0.1-0.2/piece. Check out issue 2 for a buying guide.

There's no case for the adapter. Make sure to cover testpoints with some tape to prevent shorts. (v3.0 of the design has no test pads so you do not have to insulate anything). You also will have to use tweezers to remove adapter from PS Vita. Don't grab the adapter by the socket or you risk damaging it.

The adapter does not use Vita gamecard push-pull mechanism. If you feel a spring while inserting it, this means you are inserting it wrong.

If you accidentally short contacts, the Vita will power off. However, in my testing, this does not seem to cause any permanent damage.

Once you insert the adapter, you can replace microSD without taking the adapter out.

Version history

v3.0

  • Reduced gamecard pads total width by 0.2mm.
  • Removed testpads.
  • Removed unused INS pad on the microSD socket side.
  • Changed routing to reduce number of VIAs and the probability of electrons falling out of the board.

This design is not tested yet.

v2.0

  • Reduced gamecard pads total width by 1.0mm.
  • Removed fourth microsd socket leg.

This design is not tested by me yet, but other people confirmed it works.

v1.0

Original design.

Alternative designs

You can find some alternative designs here:

(Send a pr if you want to be included here)

License

Code inside the driver directory is licensed under GPLv3 or later.

Contents of the board directory are licensed under CC0.

Special thanks to

  • @motoharu-gosuto for their work on gamecard RE
  • @TheOfficialFlow for providing original version of the usbmc plugin

gamecard-microsd's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gamecard-microsd's Issues

Error opening board files in Eagle.

Hi,

When i try and open either of the board design files i get this error..

Loading Z:/adapter.brd ...

Error:

line 8, column 16: This is not an EAGLE file.

Which coating?

xyz: FR4 proto: 2 layers / 5x5cm (2.2x3.1cm) / 1.0mm / HASL / 1oz / Blue / Protopack ±10
basically all default settings except 1mm

Permission Issue? App exits

Using SD2Vita (without a ps memory card) can cause certain apps not to function properly e.g. moonlight. App constantly returns to game menu when a setting is changed and saved (pressing o when done) or when attempting to type an ip since the configuration files in ux0:data/moonlight are not being created/changed when the app is launched.

Could this be a permission issue of some sort since if I didn't have the SD2Vita then the PS Memory card would be mounted as ux0 and the app would work?

When using sd2vita, sceIoMkdir becomes very slow

I have made some tests on sceIoMkdir and I get the following results:

  • sceIoOpen("ux0:somefile", SCE_O_CREAT|SCE_O_WRONLY) with or without sd2vita => 2ms
  • sceIoMkdir("ux0:data", 06) or any folder that already exists => 2ms
  • sceIoMkdir("ur0:test", 06) => 40ms
  • sceIoMkdir("ux0:test", 06) without sd2vita and StorageMgr or gamesd => 40ms
  • sceIoMkdir("ux0:test", 06) with sd2vita and StorageMgr or gamesd => 250 ms or more

This issue causes massive download speed drops in pkgj for games that contains hundreds of folders and eventually lead to a download failure due to HTTP timeout. I am also wondering if these 250ms aren't spent doing a FS sync to the sdcard which may wear it out sooner than necessary.

I tried a couple things. Replacing

static SceIoDevice uma_ux0_dev = { "ux0:", "exfatux0", "sdstor0:gcd-lp-ign-entire", "sdstor0:gcd-lp-ign-entire", MOUNT_POINT_ID };

with

static SceIoDevice uma_ux0_dev = { "ux0:", "exfatux0", "sdstor0:gcd-lp-ign-entire", NULL, MOUNT_POINT_ID };

Because that's what the structure looks like before being replaced. It did not help.

I also tried using sdstor0:gcd-lp-act-entire because that's a string that appears in the exfat kernel module.

Here is the small c++ snippet I used to benchmark mkdir:

void testmkdir(char const* path, int mode)
{
    sceIoRmdir(path);
    auto const start = std::chrono::high_resolution_clock::now();
    int err = sceIoMkdir(path, mode);
    auto const end = std::chrono::high_resolution_clock::now();
    auto const total =
            std::chrono::duration_cast<std::chrono::milliseconds>(end - start)
                    .count();

    if (err < 0)
        LOGF("sceIoMkdir({}, {:x}) time: {} failed: {:#08x}",
             path,
             mode,
             total,
             static_cast<uint32_t>(err));
    else
        LOGF("sceIoMkdir({}, {:x}) time: {} success", path, mode, total);
}

Related issue: TeamFAPS/PSVita-StorageMgr#54

Control over mount points

Many thanks for the driver code.

As you know, others have modified it to mount the gamecardsd as ux0, and even to mount the genuine Vita memory card as uma0 at the same time.

I was going to ask you if you could make those modifications "official" and have alternative driver binaries available to download from your github page, rather than from random untrusted sites.

But then I wondered whether a single binary driver could read a config file at startup to change its behaviour, i.e. the mount points?

E.g. (and I don't know if this is possible) but maybe "pseudo command line arguments" can be passed via tai/config.txt? Or maybe the driver could read its own config file?

Thank you for reading.

Couple of problems on 3.65

On the newest version compatible with 3.65 enso the memory card is no longer mounted to Uma0. Vitanshell still recognizes it as there and in the previous version it worked as expected. Additionally, I'm having trouble installing nonpdrm games on the sd adapter. When I refresh the livearea it says 0 refreshed but if I move the same files to my sd and then comment out gamesd from config.txt then it installs properly on the memory card. Existing nonpdrm games work still so it seems to be a problem with gamesd not allowing the new folder to be picked up.

sdcard.skprx driver does not play well with usbmc.skprx

long story short, i'd like to load yifan's 3g usb device along side the sd2vita card.
The current driver doesn't seem to play nice. Whichever i call out in config first wins.
Is there anyway to add support for both at the same time?

Soldering

Good afternoon!
Tell me, do I need to solder the adapter to the card?

SD2VITA mounted as uma0 instead (alternate version)

Is it possible for each update to this plugin, you also release an alternate version in which the sd2vita card is mounted as uma0 instead of ux0? This would be extremely helpful for the few that use this plugin the other way around.

Gerber format

I'm trying to send a plaque to try this, but the dealer asks me for the circuit in Gerber format (which I try to create but without success from the eagle)

Could you add this format to github?

Incorrect free memory reported when formatting a high capacity sd with default cluster size

So i'm not entirely sure if this problem is directly related to the plugin or if it's something more focused on the way the vita handles memory cards so i apologise if it's the latter.

but when i formatted my 256gb micro sd card with the default cluster size my vita would always report incorrect free space while windows and all other devices display it just fine but this only happens if the card was filled up by more than about 100gb of data that was tested, and what's more is after a while if i don't do much the free space it claims is still available starts to quickly disappear.

I have flashed zzblank.img, formatted and copied all the files back over twice and the problem still persisted, but finally after talking with a lot of people trying to figure it out i finally found the solution, the free space will only be 100% accurate if when formatting you choose 32kb cluster instead of the default option which in my case was 256kb.

Wolf Among Us episode 2 crashing while entering open arms hotel

While the game is a bad port with a lot of stuttering I enjoy the story and as I paid for the game I tried to make the best out of it.
I ran the psv vsh menu with maximum CPU and GPU clock additionally to the gamesd-plugin when the game crashed and I had played for half an hour or so.
To make sure the psv vsh menu didn't affect the crashing I tried to reproduce the crash with an original memory card, but it loaded the scene without crashing, so I guess the gamesd-plugin is to blame.
Otherwise I had no issues so far with other games.

SD2Vita/gamesd.skprx constantly waking up device

I've created a few threads over the past couple of days both on GBATemp and on /r/vitahacks trying to isolate the issue. It appears that the gamesd.skprx plugin might be causing an issue where the Vita will wake itself up from sleep mode. On my system, the screen will come on completely, the PS button light will flash and then it will go back to sleep after a few seconds. Normally I wouldn't mind this behavior if it happened only once or twice, but it seems to be happening constantly for me and some others (someone reported losing nearly 50% of their battery over night due to constant wake-ups).

I don't have any absolutely concrete evidence aside from the user accounts and my own personal accounts, but I hope that is enough evidence to justify this bug report.

Here are some additional things that I have done to isolate the issue:

  • Disable all Henkaku plugins on boot by hold L - issue did not occur
  • Disabled just the gamesd.skprx - issue did not occur
  • Tried using different SD2Vita adapters - issue occurred
  • Tried reinstalling Enso - issue occurred

Again, hopefully this is enough concrete evidence to justify this bug report. This is the only repo I have found for the gamesd.skprx plugin, but I know multiple "versions" of it are floating around. I would assume though that this is where all the versions of the plugin are coming from since I haven't found any other source code anywhere else.

Missing uma0

I followed the tutorial on wololo to use sd2vita. I successfully installed it. However I can't find uma0 in vitashell. I am under the impression that upon activating the plugin, sd2vita will be ux0 and the sony memory card will be uma0. I have a vita phat with FW6.68 running h-encore. SD2vita is 200GB and the memory card has 16GB. I want to use the sd2vita for vita games and the memory card for PSP games using Adrenaline. Is my impression wrong or did I miss something? Thanks.

Sd Connector

Hello Xyzz!,
What is the sd connector model?
Maybe some "serial number" component?
Greetings.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.