Hacking PS2VICE

Some time ago I’ve got PS2VICE 1.14 from somewhere. One of the feature I missed was the ability to load disk images from USB storage devices. Although it supports for USB keyboads I guess at the time PS2VICE USB storage devices weren’t very popular, so it doesn’t support them.

The PS2VICE 1.14 VICEMENU is loads the various VICE emus (C64, C128, VIC and Plus4) is hardwired to load from CD. In order to load from somewhere else, the sources would need to be changed and added the ability to also load disk images from the mass device.

In fact I’ve found the PS2VICE 1.14 sources (look for the homepage of PSPVICE which was done from the PS2 version – the PS2 sources are included in the source archive) but today I had the idea to do a hex edit and replace every “cdfs” string by “mass”. Usually things aren’t so easy – if the executable flushes the loaded modules, you can say bye-bye to any initialization done for uLE.

But it works. I also replaced the “host” entry at the disk image loading menu to “mass” so you lost host support but gained the mass.

I’m still going to change the original source (I have more features to add, such as replacing the digital pad as input for the analog joystick) but for now that’s all.

Get it from here :


I didn’t included any games : I’m sure you have plenty of them.
See the included README2.txt for some extra information how to load the emulators.

As usual, drop a comment if the download link gets broken.

— News Update : —————————————————————————————————-


21 Responses to “Hacking PS2VICE”

  1. heko Says:

    thanks for posting this. i was just about to do the same thing but now i don’t have to 🙂

  2. pedroduarte0 Says:

    You’re welcome. Anyway, I’m still trying to put the old PS2 source compiling before trying to properly add a mass: entry. I’m still a novice in GCC tools.

  3. Starscream Says:

    Hey, this is pretty nice. I was just googling around to find out if it can actually be launched from MC, but USB is even better. I assume that saving actually to disks won’t still work though ?

  4. pedroduarte0 Says:

    saving to disks?

  5. Starscream Says:

    Um, yeah, I guess that was a little unclear phrased by me. Essentially, I mean “Disk changes” to work and be kept. I was hoping that when the C64 images would be accessed on a writeable media instead of a CD they could be changed like in the PC version, since PS2vice’s Snapshot feature only saves to the PS2’s memory. Without, you can’t make character disks, save etc. and play games that need such features (Phantasie, Ultima etc.)
    Anyway, I just tested the USB hack and it worked when I launched it with ULE 4.12 (not with older) , so thanks, I can delete my Vice folder on the MC, takes up a lot of space ;).

  6. pedroduarte0 Says:

    I could try to do that if I were succeeded to put the sources and makefile compiling… I messed a lot with those but I lost a bit of the interest (not to mention patience) since my goal was already archieved by “adding” support for USB storage (well, reading in fact).

    I can only added what you asked by programming (so having the code first to compile) and not by simple hacks… Currently I’m spending my limited free time to other projects, so I cannot promise anything soon. Anyway, I would like to make this to compile (the sources I’ve got weren’t ready to build – they seem not to be the final project) so eventually I’ll succeed.

  7. Junebug Says:

    Hi there, I know its a bit late to leave a reply – but this is fantastic work. Great logical leap to modify via a hex editor. I have been playing from my USB Drive with no probs. at all – reliving many happy memories. Thanks for that!

  8. brad Says:

    so awesome. Thank you for implementing the USB feature. I’d love to see (many) more PS2 emulators brought up to the times and feature read/write from USB device. It really makes things so much easier!

    • pedroduarte0 Says:

      Hi Brad,
      Actually I didn’t implemented anything – I kinda unlocked it with a basic hack, the code was already there 🙂

  9. brad Says:

    I’m actually having some trouble running it surprisingly. Let me tell you what I did:

    I put all of the files in the zip into a folder called ‘PS2VICE_USB’ and put that folder in the root of my usb drive.

    I fired up ulaunchelf (I don’t have a modded PS2, but rather an exploited MC– FreeMCBoot). From ulaunchelf I ran x64.elf and then the screen goes black with the words: mass:PS2VICE_USB/sjpcm.irx

    The screen just stays frozen like that. Any idea what I did wrong, or how to get this to run successfully? I’m guessing I just made a silly mistake in folder structure or something? I like to try to have each homebrew program in its own folder on the usb drive if possible, rather than a bunch of stray files in the root.

    • pedroduarte0 Says:

      I’ll look at this at the week end.

    • pedroduarte0 Says:

      Hello brad,

      What is the version of uLaunchELF you’re using? Since you use FreeMCboot I guess is the latest, but who knows…

      Try to put a dvd into the PS2 before lauching x64.elf (any dvd, even a dvdr). I’m not completely sure if PS2VICE tries to access the DVD drive at startup and as you may know, the boot process of FreeMCboot had in the past (still has?) some issue with DVD drive initialization. This is also an issue when you run uLanchELF with no disk in the drive and have the option “disc control on”…

  10. brad Says:

    I tried putting a DVD in before launching the elf file. By the way, it was x64mass.elf I was launching. It still gave me the same error! The version of LaunchELF is v3.72 if that helps?

    • pedroduarte0 Says:

      Hi brad,

      Yes that helps. It’s a rather old version and already other person had a similar issue with it (maybe not the same version but also a 3.xx version number)

      Get a newer uLaunchELF from here :

      Remember that this modified VICE only has USB reading capabilities not writing… As I said, it just a lucky dirty hack, no code was compiled/changed.

      Also, if you have a Playstation2 compatible USB keyboard you may use it with PS2VICE (if your keyboard it works with uLaunchELF it should work with PS2VICE). This is already present from the original version before my hack; I’m just telling you this because it’s a cool feature 🙂

  11. brad Says:

    Updated and it worked! Thanks for taking the time to figure that out for me!

  12. Kranold Says:

    Look at
    for a version including an USB modification and possibility to use the analog joysticks instead of the digital keys on the pad.
    This file also contains the original ps2vice-1.14 source, not only the ones from PSPVice.

    • pedroduarte0 Says:

      Thanks for the link. I also prefer the analog stick.
      You are the author of the mod, right? Good work!
      I’ve been looking at the sources and the makefile at src\arch\ps2 doesn’t seems to follow the usual ps2sdk style… How do you compile it with current ps2sdk?

  13. Kranold Says:

    yes, I’m the author. I was too lazy to set up a working linux-native ps2sdk environment. So I downloaded the current mingw ps2sdk version (I guess 2009-01-09) and changed the Makefile s of ps2vice.
    In principle, I just replaced “ee-g++” by “wine /path/to/ee-g++” etc., and appended ps2dev/ps2sdk/ee/lib/libkernel.a to linker options (ps2dev/ps2lib/ee/lib/libkernel.a does not suffice).
    I must admit, it’s the first time I was programming for ps2.
    What next? Upgrade to newer vice version? Read-Write for MC and USB device? We’ll see, but for the moment it’s working.
    You can also contact me via email.

  14. mazxim Says:

    ..any chance to see an upgrade to VICE 2.0 of your port, Kranold?

  15. Kranold Says:

    Download ps2vice, upgraded to version 2.2 from

  16. Bruce Says:

    There seems to be a bug. If for example I attach disc 1 to device #8 and disc 2 to device #9, when playing the game I still get asked to insert disc 2, even though it should be seen in device #9, I have to attach in device #8 for any game to see the disc. The strange thing is that I can see discs from Basic, for example load”*”,9,1 will see the disc in device #9. Hope you can fix in the next update, else everything is working really well

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: