Coder Social home page Coder Social logo

memcardrex's People

Contributors

atanarro avatar bitrot-alpha avatar lienby avatar lmiori92 avatar ndepoel avatar robxnano avatar shendoxt avatar

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

memcardrex's Issues

PocketStation support

Hi threre,
Few people had posted on your blog that PocketStation is not compatible with memcardrex.

I did some tries with memcarduino and memcardrex 1.9 and it seems to read PocketStation memory but it's totally unable to write PocketStation rom files on it.

Robson Couto seems to succeed this operation and shares his code on his github.

Maybe someone could implement this on memcardrex in order to write PocketStation *.bin files ?
Perhaps PocketStation rom files have differents extension file name, i'm not familiar with it.

Regards

POPS virtual Memory Card(*.VMC)

POPS starter homebrew app for emulation PS1 games on PS2 utilizes VMC format per game.

MemcardDex already supports read-write operations, but this format is missing in file select dialog. Workaround is to select all files.

Is it possible to add this filetype?

[Feature Request] PS3 Memory Card Adapter Support

Would it be possible for memcardrex to support the PS3 memory card adapter? There are some other pieces of software that can do it, of course, but they're not nearly as versatile as memcardrex. Then again, maybe formatting a card using the adapter isn't possible?
Anyway, it would be a pretty cool addition to an already awesome utility!

Upcoming changes in 2.0 release

As you may know I started a macOS port of MemcardRex.

Since it's basically a new application (except for the mc handling class and hw interfaces (and those got updates too))
and the new OS, I tried to (had to) do the things a bit differently, more streamlined under the hood.

That introduced a few changes in the way the application works (for the better) so I decided to port things over to the Windows build. The idea is to unify codebases in the end so the porting process for the changes would be easier in the future.

If you checked out the source you would undoubtedly noticed that it's quite a mess (especially the GUI department)
and that a lot of things could have been done way differently and better.
That's because way back in the day (2009.) I was actually learning C# as I was writing the application. Fun fact, first versions of MemcardRex were written using Visual Basic 6, then VB.NET and finally C#.

Changes:

  • Slots (blocks) are now handled on a per save basis. If you select any slot, no matter if it's linked that save is now selected and all affected slots are also selected in the list.
  • Linked slots now display icon and region (copied from initial slot).
  • Added undo/redo. I also want to add the history list where you can in real time traverse through changes in the file. No more annoying save editing popup messages. Any accidental commands can be reverted.
  • Better support with proper scaling on HiDPI screens.
  • Streamlined hw interfaces, less duplicated code and way easier to add new interfaces in the future.
  • More PocketStation support. I would love to add app icon to the information window. And a way to read serial/dump bios, etc.
  • Dark theme support with color accents. All the OSes are doing it and it's very cool. I must follow suit.

Currently the Windows build is not in an user usable state, most of the save edit menu handling is ripped out in
order to rewrite it. The moment it becomes usable I'll update the repo.

Also, while it may look I got the dark mode down these are weeks of hacking away on WinForm controls, they are just not
dark mode friendly (looking at you listview and tabpage)... I still have to fix some bugs.

mcrx 20 win

I'll use this issue to post updates on the Windows version. Feel free to chime in with your own thoughts.

Binaries?

May you please also post binaries along with source code?

[Feature Request] PSV/VMP Export/Signing (Reverse Engineered in 2019!)

I know it's been years this you worked on this treasure to the community (which we appreciate you dearly for), - if you're up for a bit of a challenge, the crypto on PSV and VMP was fully defeated last year by a team with tools made open source:
https://github.com/dots-tb/vita-mcr2vmp

https://github.com/dots-tb/ps3-psvresigner

https://github.com/PMStanley/PSV-Exporter

The PS community would love to see MemcardRex make a great splash again on fan news sites to kick off 2020!

Cheers Shendo. :)

Date locked save games?

Hi, I wondered if save games can be date locked?

I'm playing Pebble Beach no Hatou PLUS and restored a save game but it's not been recognised by the game.

If so, how do i get around that? Where is the verification date stored in the save game data?

Long product codes are truncated

Using the BIOS built-in SoundScope function to record a macro, and then saving the macro to memory card produces a save file with the product code "BPLAYSTATION" but MemcardRex only shows "LAYSTATION" and the header editor doesn't support editing text longer than 10 characters. Proper behaviour should support displaying and editing text to at least 12 characters instead.

Region also shows up as "0x5042" could probably add an human readable name for the region, either as "World", "None" or "BIOS", but more research should be done to determine if that specific region code is used on all BIOS versions or if any other game or software uses that region code.

Attached is an example MMC with a SoundScope save, produced in SCPH-101 BIOS.

soundscope.zip

PS3 Memorycard Adapter returns 0x02 instead of 0x01

https://github.com/ShendoXT/memcardrex/blob/master/MemcardRex/Hardware/PS3MemCardAdaptor.cs#L85

I have a PS3 Memory Card adapter and a PSX memory card. I know the memory card is a PS1 because I can save games on my PSX and see the save blocks in the bios.

When I build and run memcardrex from master, my memory fails to read. I did some debugging and it seems the second byte is 0x02 instead of 0x01. (It's 0x00 when no card is inserted into the adapter)

Per readme instructions my PS3 adapter is using the generic WinUSB driver.

Also if I comment out this check and try to read from the memory card anyways, it doesnt work. This could be a separate issue.

Do you know why I get 0x02? Is there any documentation on the PS3 Memory Card Adapter's protocol?

please add support for framework 4.0

Instructions for linux says that get mono from upstream to get newer compatibility. But mono has come such a long way that from their website or from the package manager of distros such a new build of mono is included that framework 3.5 is totally depricated.

I successfully managed to build it on fedora just fine using

xbuild /property:TargetFrameworkVersion=v4.0
mono "./MemcardRex/obj/GTKsharp debug/MemcardRex.exe"

I didn't put the program trough a full battery of tests, but I did copy a PS1 save from a PS1 save card to a USB stick using a PS2. Then copy it to the PC and make a PCSXr compatible memorycard inclduing that save and scp it to my PS Classic. And it did work.

Russian translation

I found an old version of MemcardRex with Russian translation. I tried to contact its author, but he does not answer me. Is it possible to add this translation to the latest version of MemcardRex? I can help with translating missing strings.

Make it easier to consolidate multiple .VMP save files from PSP into single .MCD save file for Duckstation

I have made an important edit at the bottom of this issue log. Please read it in its entirety before responding appropriately.

Hi, I have a couple dozen PS1 save files from my PSP that I'm trying to transfer for use with the Duckstation PS1 emulator. Roughly half have the filename of SCEVMC0 and the remaining save files are named SCEVMC1, so I assume they are for memory card slot 1 and memory card slot 2 respectively. See attached screenshot below for the filenames I am working with.

scevmc

I'm looking to have all my games share the same 2 memory cards instead of each game using its own memory card, so I want to consolidate all these files into just 2 save files. (EDIT: as explained at the bottom, I now much rather prefer the saves remain separate but all batch converted and inserted into their respective folders, so please ignore this statement)

However, every time I open either the files named SCEVMC0 or the files named SCEVMC1 altogether, I get over 40 tabs opened for every single file. It would be cumbersome and time-consuming to drag and drop each file to the one I want saved.

mcr

I would much rather prefer MemcardRex to automatically detect which memory card the files are for, and then automatically combine all the .VMP save files into 1 or 2 .MCD save files, with just a few simple clicks and without requiring any dragging and dropping (EDIT: please ignore this statement). Would that be possible to implement?

EDIT (Dec 13th 2022): I would like to note that the files in the screenshots above were batch extracted by me from individual folders that the PSP made a directory for. For future users of this tool, it might actually be more useful to just batch convert each individual save and output them to their respective folders, as I have learned since that games usually have individual save files for emulation to prevent potential issues. I think it may be possible that Duckstation already searches for saves within these respective folders. Each folder has been named after the game's respective game ID. I will attach more helpful screenshots below to show both what the directory looks like as a whole, and what can be expected to be found inside each folder.

psx2

psx3

The curious case of Crash Anywhere, on PocketStation

(This might not even be related to MemcardRex, but in the rare case that it is, I leave it here for posterity sake)

Background info: I have been using latest MemcardRex on my Win 11 PC to transfer savedata and PocketStation apps to my PocketStation via PS3 Memorycard Adapter, and everything has been working great. No problems whatsoever.

Prologue: The japanese version of Crash Bandicoot 3 has a PocketStation companion app called Crash Anywhere. You can "install" the app to your PocketStation via a settings menu within the Crash 3 game. Crash Anywhere app has 3 different minigames, and a feature, which allows the player to take "snapshots" of funny in-game moments, that are then saved as little 32 x 32 pixelart images to your in-game gallery. Pretty advanced, huh. When for example the player finishes a dance minigame, they earn a picture to their gallery.

Issue TL;DR: a PocketStation application transferred through MemcardRex is missing an in-game "photo" feature; possibly because a triggered anti-piracy method? When same application is transferred through an actual PS1, the said feature is present.

The issue in-depth: If the user has a real PS1 console and a copy of japanese Crash 3 (burned copy or a real one), and plugs in the PocketStation to their PS1, player is able to succesfully install the companion app to the PocketStation via in-game menus. When the user takes PocketStation out and plays the Crash Anywhere app, it works as expected and user is able to gather in-game "pixel photos" through gameplay. However, if the user instead uses emulator on their PC to emulate the japanese Crash 3 game, with DuckStation as an example, and creates a virtual .mcb-file that has the Crash Anywhere app inside, the user can then transfer the .mcb file to their PocketStation by using latest MemcardRex. The transfer finishes succesfully, and the user is able to play the Crash Anywhere app on their PocketStation, but there is a curious issue now: the events that are supposed to be triggered in game that allows user to take "photos" of said events, does no longer work. Everything else is in place. Only the "photo-feature", that appears after completing minigames etc is gone, and user can't complete the game via collecting these "digital pixel photos". Even if the user uses the same Crash 3 BIN/CUE-imagefile for emulation (the same that has been burned to disc and tried on an actual PS1), doesn't make the PocketStation app work properly.

So my hypothesis is, that there is something missing when transferring the crash 3 .mcb file to PocketStation with MemcardRex. Maybe it's a weird software glitch on MCR's part, or maybe it's some sort of rudimentary copy protection mechanism made by the game studio. Maybe there's a function written inside that can detect the way the files are written on the device, and if something is a miss, the game functions become limited. There were some copy protection methods created by PS1 devs for certain games, so it is not completely out of the question to think that there might be something similar going on here.

Has anyone else ran into similar weird issues with any other PocketStation app?

adding .srm filter to file open dialog

the standard psx emulator of retropie is lr-pcsx-rearmed, as you can see here:
https://retropie.org.uk/docs/Playstation-1/

this emulator uses .mcr files, but the files instead get the ".srm"-extension.
srm means eventually "Super Nintendo ROM Save File", but not in this context,
.srm files of this emulator are successfully loaded by the application.

So, can we add the extension .srm as "lrpcsx-readmed mcr-File" to the filter list of the file open dialog? would be a nice simple addition

Support for serial port TCP Bridge (e.g. Wi-Fi with esp-link)

I'm working on adding the communication with a bridged serial port over TCP/IP.
I have successfully attached a ESP8266 board to the TX and RX lines on my PSOne. The ESP8266 runs the software "esp-link" which, among many other features that are of no interested for that purpose, creates a serial bridge i.e. a client application can open a raw socket to the dedicated port and read/write from the serial port.

The first tests are promising (it works :-) ) and the development branch is currently there, I still need to implement the GUI part to setup the address and the port.

https://github.com/lmiori92/memcardrex/tree/support-for-esp-link-wifi-serial-bridge

Note: the implementation is really basic, a better design would be to split the communication-specific code in several classes with a common interface. But I don't think it's really necessary, let's see.

Here's a pic of the WiFi PSOne :-)
image

No PSV support.

You cant export single saves to psv instead (right now) you have to get a mcs file of each one and put it in some converter one at a time. So if you just add like a "Save files as PSV in Zip file" then i think it would be better.

Unable to transfer GT2 saves to Memory Card through Memcarduino

When I try to send GT2 saves to my Memory Card through Memcarduino, the data on the card will not be accepted by the game. Apparently, it gets corrupted in the process. Is it because these saves take more than a block? I hope this can be fixed. Thanks.

Building on Linux fails: unable to find LibUsbDotNet

I'm using Pop!_OS (Ubuntu) 21.04 / hirsute. I've installed mono-devel from the official website, following the instructions for Ubuntu 20.04 / focal. (Using the outdated packages in Ubuntu's default repos resulted in more errors.)

When running xbuild /property:TargetFrameworkVersion=v4.0, I get the following errors:

[stratosphere:~/Downloads/PSX/memcardrex] unilock$ xbuild /property:TargetFrameworkVersion=v4.0

>>>> xbuild tool is deprecated and will be removed in future updates, use msbuild instead <<<<

XBuild Engine Version 14.0
Mono, Version 6.12.0.122
Copyright (C) 2005-2013 Various Mono authors

Build started 11/1/2021 2:14:29 PM.
__________________________________________________
/home/unilock/Downloads/PSX/memcardrex/MemcardRex.sln:  warning : Don't know how to handle GlobalSection ExtensibilityGlobals, Ignoring.
Project "/home/unilock/Downloads/PSX/memcardrex/MemcardRex.sln" (default target(s)):
	Target ValidateSolutionConfiguration:
		Building solution configuration "Debug|Any CPU".
	Target Build:
		Project "/home/unilock/Downloads/PSX/memcardrex/MemcardRex/MemcardRex.csproj" (default target(s)):
			Target PrepareForBuild:
				Configuration: Debug Platform: AnyCPU
			Target ResolveAssemblyReferences:
/usr/lib/mono/xbuild/14.0/bin/Microsoft.Common.targets:  warning : Reference 'LibUsbDotNet.LibUsbDotNet, Version=2.2.0.0, Culture=neutral, PublicKeyToken=c677239abe1e02a9, processorArchitecture=MSIL' not resolved
				For searchpath {CandidateAssemblyFiles}
				Warning: {CandidateAssemblyFiles} not supported currently
				For searchpath {HintPathFromItem}
				Considered ../packages/LibUsbDotNet.2.2.29/lib/net45/LibUsbDotNet.LibUsbDotNet.dll, but it does not exist.
				For searchpath {TargetFrameworkDirectory}
				Considered target framework dir /usr/lib/mono/4.0-api/, assembly named 'LibUsbDotNet.LibUsbDotNet' not found.
				For searchpath {PkgConfig}
				Considered LibUsbDotNet.LibUsbDotNet, Version=2.2.0.0, Culture=neutral, PublicKeyToken=c677239abe1e02a9, processorArchitecture=MSIL, but could not find in any pkg-config files.
				For searchpath {GAC}
				Considered LibUsbDotNet.LibUsbDotNet, Version=2.2.0.0, Culture=neutral, PublicKeyToken=c677239abe1e02a9, processorArchitecture=MSIL, but could not find in the GAC.
				For searchpath {RawFileName}
				Considered 'LibUsbDotNet.LibUsbDotNet, Version=2.2.0.0, Culture=neutral, PublicKeyToken=c677239abe1e02a9, processorArchitecture=MSIL' as a file, but the file does not exist
				For searchpath bin/Debug/
				Considered '/home/unilock/Downloads/PSX/memcardrex/MemcardRex/bin/Debug/LibUsbDotNet.LibUsbDotNet' as a file, but the file does not exist
				Considered '/home/unilock/Downloads/PSX/memcardrex/MemcardRex/bin/Debug/LibUsbDotNet.LibUsbDotNet.exe' as a file, but the file does not exist
				Considered '/home/unilock/Downloads/PSX/memcardrex/MemcardRex/bin/Debug/LibUsbDotNet.LibUsbDotNet.dll' as a file, but the file does not exist
			Target GenerateSatelliteAssemblies:
			No input files were specified for target GenerateSatelliteAssemblies, skipping.
			Target _GenerateTargetFrameworkMonikerAttribute:
			Skipping target "_GenerateTargetFrameworkMonikerAttribute" because its outputs are up-to-date.
			Target CoreCompile:
				Tool /usr/lib/mono/4.5/csc.exe execution started with arguments: /noconfig /debug:full /debug:portable /optimize- /out:obj/Debug/MemcardRex.exe /resource:obj/Debug/MemcardRex.AboutWindow.resources /resource:obj/Debug/MemcardRex.commentsWindow.resources /resource:obj/Debug/MemcardRex.compareWindow.resources /resource:obj/Debug/MemcardRex.cardReaderWindow.resources /resource:obj/Debug/MemcardRex.headerWindow.resources /resource:obj/Debug/MemcardRex.iconWindow.resources /resource:obj/Debug/MemcardRex.informationWindow.resources /resource:obj/Debug/MemcardRex.mainWindow.resources /resource:obj/Debug/MemcardRex.pluginsWindow.resources /resource:obj/Debug/MemcardRex.preferencesWindow.resources /resource:obj/Debug/MemcardRex.Properties.Resources.resources GUI/aboutWindow.cs GUI/aboutWindow.Designer.cs Hardware/CardLink.cs GUI/commentsWindow.cs GUI/commentsWindow.Designer.cs GUI/compareWindow.cs GUI/compareWindow.Designer.cs Hardware/DexDrive.cs GUI/cardReaderWindow.cs GUI/cardReaderWindow.designer.cs Extras/glassSupport.cs GUI/headerWindow.cs GUI/headerWindow.Designer.cs GUI/iconWindow.cs GUI/iconWindow.Designer.cs GUI/informationWindow.cs GUI/informationWindow.Designer.cs GUI/mainWindow.cs GUI/mainWindow.Designer.cs Hardware/MemCARDduino.cs GUI/pluginsWindow.cs GUI/pluginsWindow.Designer.cs GUI/preferencesWindow.cs GUI/preferencesWindow.Designer.cs Hardware/PS3MemCardAdaptor.cs Program.cs Properties/AssemblyInfo.cs Properties/Resources.Designer.cs xmlSettingsEditor.cs Properties/Settings.Designer.cs ps1card.cs rexPluginSystem.cs obj/Debug/.NETFramework,Version=v4.0.AssemblyAttribute.cs /target:winexe /win32icon:Resources/memcardrex.ico /define:"DEBUG;TRACE" /main:MemcardRex.Program /nostdlib /reference:/usr/lib/mono/4.0-api/Microsoft.CSharp.dll /reference:/usr/lib/mono/4.0-api/System.dll /reference:/usr/lib/mono/4.0-api/System.Data.dll /reference:/usr/lib/mono/gac/System.Deployment/4.0.0.0__b03f5f7f11d50a3a/System.Deployment.dll /reference:/usr/lib/mono/4.0-api/System.Drawing.dll /reference:/usr/lib/mono/4.0-api/System.Windows.Forms.dll /reference:/usr/lib/mono/4.0-api/System.Xml.dll /reference:/usr/lib/mono/4.0-api/System.Core.dll /reference:/usr/lib/mono/4.0-api//mscorlib.dll /warn:4
				Microsoft (R) Visual C# Compiler version 3.6.0-4.20224.5 (ec77c100)
				Copyright (C) Microsoft Corporation. All rights reserved.
Hardware/PS3MemCardAdaptor.cs(5,7): error CS0246: The type or namespace name 'LibUsbDotNet' could not be found (are you missing a using directive or an assembly reference?)
Hardware/PS3MemCardAdaptor.cs(6,7): error CS0246: The type or namespace name 'LibUsbDotNet' could not be found (are you missing a using directive or an assembly reference?)
Hardware/PS3MemCardAdaptor.cs(39,16): error CS0246: The type or namespace name 'ErrorCode' could not be found (are you missing a using directive or an assembly reference?)
Hardware/PS3MemCardAdaptor.cs(29,33): error CS0246: The type or namespace name 'UsbDeviceFinder' could not be found (are you missing a using directive or an assembly reference?)
Hardware/PS3MemCardAdaptor.cs(31,17): error CS0246: The type or namespace name 'UsbDevice' could not be found (are you missing a using directive or an assembly reference?)
Hardware/PS3MemCardAdaptor.cs(32,17): error CS0246: The type or namespace name 'UsbEndpointReader' could not be found (are you missing a using directive or an assembly reference?)
Hardware/PS3MemCardAdaptor.cs(33,17): error CS0246: The type or namespace name 'UsbEndpointWriter' could not be found (are you missing a using directive or an assembly reference?)
			Task "Csc" execution -- FAILED
			Done building target "CoreCompile" in project "/home/unilock/Downloads/PSX/memcardrex/MemcardRex/MemcardRex.csproj".-- FAILED
		Done building project "/home/unilock/Downloads/PSX/memcardrex/MemcardRex/MemcardRex.csproj".-- FAILED
	Task "MSBuild" execution -- FAILED
	Done building target "Build" in project "/home/unilock/Downloads/PSX/memcardrex/MemcardRex.sln".-- FAILED
Done building project "/home/unilock/Downloads/PSX/memcardrex/MemcardRex.sln".-- FAILED

Build FAILED.

Warnings:

/home/unilock/Downloads/PSX/memcardrex/MemcardRex.sln:  warning : Don't know how to handle GlobalSection ExtensibilityGlobals, Ignoring.

/home/unilock/Downloads/PSX/memcardrex/MemcardRex.sln (default targets) ->
(Build target) ->
/home/unilock/Downloads/PSX/memcardrex/MemcardRex/MemcardRex.csproj (default targets) ->
/usr/lib/mono/xbuild/14.0/bin/Microsoft.Common.targets (ResolveAssemblyReferences target) ->

	/usr/lib/mono/xbuild/14.0/bin/Microsoft.Common.targets:  warning : Reference 'LibUsbDotNet.LibUsbDotNet, Version=2.2.0.0, Culture=neutral, PublicKeyToken=c677239abe1e02a9, processorArchitecture=MSIL' not resolved

Errors:

/home/unilock/Downloads/PSX/memcardrex/MemcardRex.sln (default targets) ->
(Build target) ->
/home/unilock/Downloads/PSX/memcardrex/MemcardRex/MemcardRex.csproj (default targets) ->
/usr/lib/mono/xbuild/14.0/bin/Microsoft.CSharp.targets (CoreCompile target) ->

	Hardware/PS3MemCardAdaptor.cs(5,7): error CS0246: The type or namespace name 'LibUsbDotNet' could not be found (are you missing a using directive or an assembly reference?)
	Hardware/PS3MemCardAdaptor.cs(6,7): error CS0246: The type or namespace name 'LibUsbDotNet' could not be found (are you missing a using directive or an assembly reference?)
	Hardware/PS3MemCardAdaptor.cs(39,16): error CS0246: The type or namespace name 'ErrorCode' could not be found (are you missing a using directive or an assembly reference?)
	Hardware/PS3MemCardAdaptor.cs(29,33): error CS0246: The type or namespace name 'UsbDeviceFinder' could not be found (are you missing a using directive or an assembly reference?)
	Hardware/PS3MemCardAdaptor.cs(31,17): error CS0246: The type or namespace name 'UsbDevice' could not be found (are you missing a using directive or an assembly reference?)
	Hardware/PS3MemCardAdaptor.cs(32,17): error CS0246: The type or namespace name 'UsbEndpointReader' could not be found (are you missing a using directive or an assembly reference?)
	Hardware/PS3MemCardAdaptor.cs(33,17): error CS0246: The type or namespace name 'UsbEndpointWriter' could not be found (are you missing a using directive or an assembly reference?)

	 2 Warning(s)
	 7 Error(s)

Time Elapsed 00:00:00.8315000

Here's what msbuild reports:

[stratosphere:~/Downloads/PSX/memcardrex] unilock$ msbuild /property:TargetFrameworkVersion=v4.0
Microsoft (R) Build Engine version 16.6.0 for Mono
Copyright (C) Microsoft Corporation. All rights reserved.

Building the projects in this solution one at a time. To enable parallel build, please add the "-m" switch.
Build started 11/1/2021 2:18:46 PM.
Project "/home/unilock/Downloads/PSX/memcardrex/MemcardRex.sln" on node 1 (default targets).
ValidateSolutionConfiguration:
  Building solution configuration "Debug|Any CPU".
Project "/home/unilock/Downloads/PSX/memcardrex/MemcardRex.sln" (1) is building "/home/unilock/Downloads/PSX/memcardrex/MemcardRex/MemcardRex.csproj" (2) on node 1 (default targets).
ResolveAssemblyReferences:
  Primary reference "LibUsbDotNet.LibUsbDotNet, Version=2.2.0.0, Culture=neutral, PublicKeyToken=c677239abe1e02a9, processorArchitecture=MSIL".
/usr/lib/mono/msbuild/Current/bin/Microsoft.Common.CurrentVersion.targets(2101,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "LibUsbDotNet.LibUsbDotNet, Version=2.2.0.0, Culture=neutral, PublicKeyToken=c677239abe1e02a9, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. [/home/unilock/Downloads/PSX/memcardrex/MemcardRex/MemcardRex.csproj]
          For SearchPath "{HintPathFromItem}".
          Considered "/home/unilock/Downloads/PSX/memcardrex/packages/LibUsbDotNet.2.2.29/lib/net45/LibUsbDotNet.LibUsbDotNet.dll", but it didn't exist.
          For SearchPath "{TargetFrameworkDirectory}".
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.0/LibUsbDotNet.LibUsbDotNet.winmd", but it didn't exist.
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.0/LibUsbDotNet.LibUsbDotNet.dll", but it didn't exist.
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.0/LibUsbDotNet.LibUsbDotNet.exe", but it didn't exist.
          Considered "/usr/lib/mono/4.0-api/LibUsbDotNet.LibUsbDotNet.winmd", but it didn't exist.
          Considered "/usr/lib/mono/4.0-api/LibUsbDotNet.LibUsbDotNet.dll", but it didn't exist.
          Considered "/usr/lib/mono/4.0-api/LibUsbDotNet.LibUsbDotNet.exe", but it didn't exist.
          For SearchPath "{GAC}".
          Considered "LibUsbDotNet.LibUsbDotNet, Version=2.2.0.0, Culture=neutral, PublicKeyToken=c677239abe1e02a9, processorArchitecture=MSIL", which was not found in the GAC.
          For SearchPath "{RawFileName}".
          Considered treating "LibUsbDotNet.LibUsbDotNet, Version=2.2.0.0, Culture=neutral, PublicKeyToken=c677239abe1e02a9, processorArchitecture=MSIL" as a file name, but it didn't exist.
          For SearchPath "bin/Debug/".
          Considered "bin/Debug/LibUsbDotNet.LibUsbDotNet.winmd", but it didn't exist.
          Considered "bin/Debug/LibUsbDotNet.LibUsbDotNet.dll", but it didn't exist.
          Considered "bin/Debug/LibUsbDotNet.LibUsbDotNet.exe", but it didn't exist.
CoreResGen:
  No resources are out of date with respect to their source files. Skipping resource generation.
CoreCompile:
  /usr/lib/mono/msbuild/Current/bin/Roslyn/csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /errorreport:prompt /warn:4 /define:DEBUG;TRACE /main:MemcardRex.Program /highentropyva- /reference:/usr/lib/mono/4.0-api/Microsoft.CSharp.dll /reference:/usr/lib/mono/4.0-api/mscorlib.dll /reference:/usr/lib/mono/4.0-api/System.Core.dll /reference:/usr/lib/mono/4.0-api/System.Data.dll /reference:/usr/lib/mono/gac/System.Deployment/4.0.0.0__b03f5f7f11d50a3a/System.Deployment.dll /reference:/usr/lib/mono/4.0-api/System.dll /reference:/usr/lib/mono/4.0-api/System.Drawing.dll /reference:/usr/lib/mono/4.0-api/System.Windows.Forms.dll /reference:/usr/lib/mono/4.0-api/System.Xml.dll /debug+ /debug:full /filealign:512 /optimize- /out:obj/Debug/MemcardRex.exe /resource:obj/Debug/MemcardRex.AboutWindow.resources /resource:obj/Debug/MemcardRex.commentsWindow.resources /resource:obj/Debug/MemcardRex.compareWindow.resources /resource:obj/Debug/MemcardRex.cardReaderWindow.resources /resource:obj/Debug/MemcardRex.headerWindow.resources /resource:obj/Debug/MemcardRex.iconWindow.resources /resource:obj/Debug/MemcardRex.informationWindow.resources /resource:obj/Debug/MemcardRex.mainWindow.resources /resource:obj/Debug/MemcardRex.pluginsWindow.resources /resource:obj/Debug/MemcardRex.preferencesWindow.resources /resource:obj/Debug/MemcardRex.Properties.Resources.resources /target:winexe /utf8output /win32icon:Resources/memcardrex.ico /win32manifest:app.manifest /langversion:7.3 GUI/aboutWindow.cs GUI/aboutWindow.Designer.cs Hardware/CardLink.cs GUI/commentsWindow.cs GUI/commentsWindow.Designer.cs GUI/compareWindow.cs GUI/compareWindow.Designer.cs Hardware/DexDrive.cs GUI/cardReaderWindow.cs GUI/cardReaderWindow.designer.cs Extras/glassSupport.cs GUI/headerWindow.cs GUI/headerWindow.Designer.cs GUI/iconWindow.cs GUI/iconWindow.Designer.cs GUI/informationWindow.cs GUI/informationWindow.Designer.cs GUI/mainWindow.cs GUI/mainWindow.Designer.cs Hardware/MemCARDduino.cs GUI/pluginsWindow.cs GUI/pluginsWindow.Designer.cs GUI/preferencesWindow.cs GUI/preferencesWindow.Designer.cs Hardware/PS3MemCardAdaptor.cs Program.cs Properties/AssemblyInfo.cs Properties/Resources.Designer.cs xmlSettingsEditor.cs Properties/Settings.Designer.cs ps1card.cs rexPluginSystem.cs "obj/Debug/.NETFramework,Version=v4.0.AssemblyAttributes.cs"
  Using shared compilation with compiler from directory: /usr/lib/mono/msbuild/Current/bin/Roslyn
Hardware/PS3MemCardAdaptor.cs(5,7): error CS0246: The type or namespace name 'LibUsbDotNet' could not be found (are you missing a using directive or an assembly reference?) [/home/unilock/Downloads/PSX/memcardrex/MemcardRex/MemcardRex.csproj]
Hardware/PS3MemCardAdaptor.cs(6,7): error CS0246: The type or namespace name 'LibUsbDotNet' could not be found (are you missing a using directive or an assembly reference?) [/home/unilock/Downloads/PSX/memcardrex/MemcardRex/MemcardRex.csproj]
Hardware/PS3MemCardAdaptor.cs(39,16): error CS0246: The type or namespace name 'ErrorCode' could not be found (are you missing a using directive or an assembly reference?) [/home/unilock/Downloads/PSX/memcardrex/MemcardRex/MemcardRex.csproj]
Hardware/PS3MemCardAdaptor.cs(29,33): error CS0246: The type or namespace name 'UsbDeviceFinder' could not be found (are you missing a using directive or an assembly reference?) [/home/unilock/Downloads/PSX/memcardrex/MemcardRex/MemcardRex.csproj]
Hardware/PS3MemCardAdaptor.cs(31,17): error CS0246: The type or namespace name 'UsbDevice' could not be found (are you missing a using directive or an assembly reference?) [/home/unilock/Downloads/PSX/memcardrex/MemcardRex/MemcardRex.csproj]
Hardware/PS3MemCardAdaptor.cs(32,17): error CS0246: The type or namespace name 'UsbEndpointReader' could not be found (are you missing a using directive or an assembly reference?) [/home/unilock/Downloads/PSX/memcardrex/MemcardRex/MemcardRex.csproj]
Hardware/PS3MemCardAdaptor.cs(33,17): error CS0246: The type or namespace name 'UsbEndpointWriter' could not be found (are you missing a using directive or an assembly reference?) [/home/unilock/Downloads/PSX/memcardrex/MemcardRex/MemcardRex.csproj]
Done Building Project "/home/unilock/Downloads/PSX/memcardrex/MemcardRex/MemcardRex.csproj" (default targets) -- FAILED.
Done Building Project "/home/unilock/Downloads/PSX/memcardrex/MemcardRex.sln" (default targets) -- FAILED.

Build FAILED.

"/home/unilock/Downloads/PSX/memcardrex/MemcardRex.sln" (default target) (1) ->
"/home/unilock/Downloads/PSX/memcardrex/MemcardRex/MemcardRex.csproj" (default target) (2) ->
(ResolveAssemblyReferences target) -> 
  /usr/lib/mono/msbuild/Current/bin/Microsoft.Common.CurrentVersion.targets(2101,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "LibUsbDotNet.LibUsbDotNet, Version=2.2.0.0, Culture=neutral, PublicKeyToken=c677239abe1e02a9, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. [/home/unilock/Downloads/PSX/memcardrex/MemcardRex/MemcardRex.csproj]


"/home/unilock/Downloads/PSX/memcardrex/MemcardRex.sln" (default target) (1) ->
"/home/unilock/Downloads/PSX/memcardrex/MemcardRex/MemcardRex.csproj" (default target) (2) ->
(CoreCompile target) -> 
  Hardware/PS3MemCardAdaptor.cs(5,7): error CS0246: The type or namespace name 'LibUsbDotNet' could not be found (are you missing a using directive or an assembly reference?) [/home/unilock/Downloads/PSX/memcardrex/MemcardRex/MemcardRex.csproj]
  Hardware/PS3MemCardAdaptor.cs(6,7): error CS0246: The type or namespace name 'LibUsbDotNet' could not be found (are you missing a using directive or an assembly reference?) [/home/unilock/Downloads/PSX/memcardrex/MemcardRex/MemcardRex.csproj]
  Hardware/PS3MemCardAdaptor.cs(39,16): error CS0246: The type or namespace name 'ErrorCode' could not be found (are you missing a using directive or an assembly reference?) [/home/unilock/Downloads/PSX/memcardrex/MemcardRex/MemcardRex.csproj]
  Hardware/PS3MemCardAdaptor.cs(29,33): error CS0246: The type or namespace name 'UsbDeviceFinder' could not be found (are you missing a using directive or an assembly reference?) [/home/unilock/Downloads/PSX/memcardrex/MemcardRex/MemcardRex.csproj]
  Hardware/PS3MemCardAdaptor.cs(31,17): error CS0246: The type or namespace name 'UsbDevice' could not be found (are you missing a using directive or an assembly reference?) [/home/unilock/Downloads/PSX/memcardrex/MemcardRex/MemcardRex.csproj]
  Hardware/PS3MemCardAdaptor.cs(32,17): error CS0246: The type or namespace name 'UsbEndpointReader' could not be found (are you missing a using directive or an assembly reference?) [/home/unilock/Downloads/PSX/memcardrex/MemcardRex/MemcardRex.csproj]
  Hardware/PS3MemCardAdaptor.cs(33,17): error CS0246: The type or namespace name 'UsbEndpointWriter' could not be found (are you missing a using directive or an assembly reference?) [/home/unilock/Downloads/PSX/memcardrex/MemcardRex/MemcardRex.csproj]

    1 Warning(s)
    7 Error(s)

Time Elapsed 00:00:01.19

Installing libusb-1.0-0-dev did not help.

I fixed this by downloading the LibUsbDotNet NuGet package and extracting the contained lib folder to <root of repository>/packages/LibUsbDotNet.2.2.29. But I'm not sure how to fix this in a more sane manner.

BTW, to run on Linux, you have to run mono <root of repository>/MemcardRex/bin/Debug/MemcardRex.exe.

Also, selecting the "Quit" button from within MemcardRex freezes the program. You then have to CTRL+C Mono. I guess one should only use the window's "X" button.

I'm clueless...

This seems like a great bit of software, but I have no idea how to open it.

Source for plugins?

Hello. I'm looking to make a plugin for editing a save. I see Plugin interface.cs in the Plugins folder but I think it would be beneficial to have some source code as a guide/reference?

Thanks, Kevin

Copy/paste slots to merge looks nonviable?

King's Field.mcr.zip

I'm finding success porting this game to Windows/PlayStation VR. But I have save games that I want to use with emulators/mcr. I think this tool could be more user-friendly, but in this case (attached) it seems not to be possible to add a save game from one file to another, that already has 2 saves from the same game...

I did copy pasted (with format step) and renamed the ID to 3. Still, in the emulator, only the last/added save is detected.

No offense, but it would be good if there were simply two panels, for 2 cards, and moving saves between them works like the PlayStation's utility. I was able to use MemCardRex to get the save off of a PS3 reader, and I'm grateful for that. But how can I use it for this? Thanks :)

EDITED: For background the RetroArch emulator in both memory card modes (one is emulated by the PlayStation module) seems to modify the MCR file when it runs (it doesn't have to be saved to) so to remove the save games that it doesn't display in the game, suggesting that it doesn't understand the MCR file saved by MemCardRex.

Improve support for non-standard DexDrive formats

A significant number of DexDrive formatted memory card images (.GME) hosted on GameFaqs seem to have a completely zeroed header, this makes them fail to load, since openMemoryCard function assumes the header to start with "123-456-STD".

I don't know how these files come to be, but considering these seem to be uploaded by many different users, it's probably an emulator or clone dumping device not adhering completely to the DexDrive format.

A secondary fallback logic to handle such files could be to check if the file extension is GME and the card size is exactly 134976 bytes, then just start from the typical 3904 offset like the regular logic used now.

Shouldn't affect the other formats, since there's none of them with non-standard headers of this size.

Example files:
https://gamefaqs.gamespot.com/ps/582940-pro-evolution-soccer-2/saves/22507
https://gamefaqs.gamespot.com/ps/197765-the-legend-of-dragoon/saves/19636
https://gamefaqs.gamespot.com/ps/197765-the-legend-of-dragoon/saves/15054
https://gamefaqs.gamespot.com/ps/913684-digimon-world/saves/21133
https://gamefaqs.gamespot.com/ps/196885-castlevania-symphony-of-the-night/saves/26785
https://gamefaqs.gamespot.com/ps/258931-mega-man-x5/saves/26811
https://gamefaqs.gamespot.com/ps/198763-star-ocean-the-second-story/saves/8738
https://gamefaqs.gamespot.com/ps/480705-saiyuki-journey-west/saves/21061
https://gamefaqs.gamespot.com/ps/480705-saiyuki-journey-west/saves/19395

This last one seems to be a little different, the header has been filled with strange data from the user system, however, if skipping the DexDrive header like the rest, the save data seems to be fine and load:
https://gamefaqs.gamespot.com/ps/198266-parasite-eve-ii/saves/7743

When exporting RAW single save, everything in the destination path after and including "." is ignored

This can be reproduced by exporting to a path like C:\Users\[username]\Downloads\MemcardRex.1.9.cd98032\BASLUS-006640 with BASLUS-006640 being the file name of the RAW single save.
You will instead wind up with a RAW single save called MemcardRex under C:\Users\[username]\Downloads

This is also seen when exporting a RAW single save where the save file identifier includes a . like in Tales of Phantasia
image
Exporting this save as a RAW single save attempts to name the file as BISLPSP01770.TOP.C (on 1.9.2b7a018 at least. There's a different issue on 1.9.cd98032 when you go to export where it replaces the identifier with a seemingly random string of characters). Instead, you wind up with a file called BISLPSP01770

"File could not be opened" with MMX4 save

Hi, I recently copied all my PS1 saves from memory cards using wlaunchelf on my PS2. To make them more useable, I created .mcr files with memcardrex and started importing the saves. All my saves worked except the one attached, which shows the error:
"File could not be opened"
Did that save become corrupted?
BASLUS-00561.zip

Not recognizing memory card files it creates

Okay, I read my memory card with the PS3 MC Adapter, saved it as an ePSXe card, exported all the saves as a their own files just in case, then closed the card to make a new one for each game. I created a new card and imported my Parasite Eve 2 saves, then saved the card as a PCSX ReARMed/RetroArch file with the ".srm" extension, which just happens to be my initials, as well. I then closed the card, and tried to re-open it. Only to get this error:
'Parasite Eve 2' is not a supported Memory Card format.

Okay... Just to be sure it's not an issue with the program, I open up a RetroArch save. Yep, it loads in fine. Alright, create a new card, import saves, save as an ePCXe ".mcr" file. Close it, and try to open it. Same error:
'Parasite Eve 2' is not a supported Memory Card format.

The only one that opens is the original scan I saved. I've no idea where I've messed up...

checksums?

I was wondering if there's any way the MCR can analyse the checksum on a save game slot?

I am playing Kero Kero King (JP PS1) and the save game was corrupted, partly zeroed out and even though i have recovered the missing bits the checksum is now incorrect. So I either have to restart or figure out how to calc the checksum?

Support for transparency in icons

The icons of savegames can have transparency. This is for example the case with the icons for Spyro games. The transparency effect can be seen in the memory card manager in the BIOS. More information can be found in the Noca$h documentation: http://problemkaputt.de/psx-spx.htm#memorycarddataformat
It says:

Icon Frame(s) (Block 1..15, Frame 1..3) (in first block of file only)
00h-7Fh Icon Bitmap (16x16 pixels, 4bit color depth)
Note: The icons are shown in the BIOS bootmenu (which appears when starting the PlayStation without a CDROM inserted). The icons are drawn via GP0(2Ch) command, ie. as Textured four-point polygon, opaque, with texture-blending, whereas the 24bit blending color is 808080h (so it's quite the same as raw texture without blending). As semi-transparency is disabled, Palette/CLUT values can be 0000h=FullyTransparent, or 8000h=SolidBlack (the icons are usually shown on a black background, so it doesn't make much of a difference).

I am not 100% sure what this means, but it seems that a palette color that is 0x0000 is transparent while 0x8000 is black. For other colors, the MSB does not seem to matter. Memcardrex should support this kind of transparency.

Note that I'm not sure why it says the icons are usually shown on a black background - in my BIOS, the background is bluish:
screeny

Linux - Does not run with Mono - DllNotFoundException

I'm guessing something's wrong with Fedora and Mono, because I was able to run MemcardRex in OpenSUSE last I checked.

I followed the instructions on mono-project.com to install the latest stable Mono per MONO.md

[arashi@control-bureau MemcardRex 1.9.cd98032]$ mono --version
Mono JIT compiler version 6.12.0.107 (tarball Wed Dec  9 21:44:58 UTC 2020)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
	TLS:           __thread
	SIGSEGV:       altstack
	Notifications: epoll
	Architecture:  amd64
	Disabled:      none
	Misc:          softdebug 
	Interpreter:   yes
	LLVM:          yes(610)
	Suspend:       hybrid
	GC:            sgen (concurrent by default)

When running mono MemcardRex.exe with the latest release, I get this error log:

[arashi@control-bureau MemcardRex 1.9.cd98032]$ mono MemcardRex.exe
Gtk-Message: 01:07:33.511: Failed to load module "pk-gtk-module"
System.DllNotFoundException: dwmapi.dll assembly:<unknown assembly> type:<unknown type> member:(null)
  at (wrapper managed-to-native) MemcardRex.glassSupport.DwmIsCompositionEnabled(bool&)
  at MemcardRex.glassSupport.isGlassSupported () [0x00026] in <51d023b1534a4ef9bc3b0d1191357c9c>:0 
  at MemcardRex.mainWindow.applyGlass () [0x00030] in <51d023b1534a4ef9bc3b0d1191357c9c>:0 
  at MemcardRex.mainWindow.applySettings () [0x00034] in <51d023b1534a4ef9bc3b0d1191357c9c>:0 
  at MemcardRex.mainWindow.loadProgramSettings () [0x001f1] in <51d023b1534a4ef9bc3b0d1191357c9c>:0 
  at MemcardRex.mainWindow.Form1_Load (System.Object sender, System.EventArgs e) [0x0009c] in <51d023b1534a4ef9bc3b0d1191357c9c>:0 
  at System.Windows.Forms.Form.OnLoad (System.EventArgs e) [0x0001f] in <eaa3af9f3e15467aba111734e9f9f2f7>:0 
  at System.Windows.Forms.Form.OnLoadInternal (System.EventArgs e) [0x00023] in <eaa3af9f3e15467aba111734e9f9f2f7>:0 

Running mono in debug mode and redirecting terminal output with MONO_LOG_LEVEL=debug mono MemcardRex.exe > log.txt I get this text file:
log.txt

After installing the gtk2-engines package, putting /usr/lib64/gtk-2.0/modules/ and /usr/lib64/gtk-2.0/modules/ into a file at /etc/ld.so.conf.d/, and running ldconfig:

[arashi@control-bureau MemcardRex 1.9.cd98032]$ mono MemcardRex.exe
System.DllNotFoundException: dwmapi.dll assembly:<unknown assembly> type:<unknown type> member:(null)
  at (wrapper managed-to-native) MemcardRex.glassSupport.DwmIsCompositionEnabled(bool&)
  at MemcardRex.glassSupport.isGlassSupported () [0x00026] in <51d023b1534a4ef9bc3b0d1191357c9c>:0 
  at MemcardRex.mainWindow.applyGlass () [0x00030] in <51d023b1534a4ef9bc3b0d1191357c9c>:0 
  at MemcardRex.mainWindow.applySettings () [0x00034] in <51d023b1534a4ef9bc3b0d1191357c9c>:0 
  at MemcardRex.mainWindow.loadProgramSettings () [0x001f1] in <51d023b1534a4ef9bc3b0d1191357c9c>:0 
  at MemcardRex.mainWindow.Form1_Load (System.Object sender, System.EventArgs e) [0x0009c] in <51d023b1534a4ef9bc3b0d1191357c9c>:0 
  at System.Windows.Forms.Form.OnLoad (System.EventArgs e) [0x0001f] in <eaa3af9f3e15467aba111734e9f9f2f7>:0 
  at System.Windows.Forms.Form.OnLoadInternal (System.EventArgs e) [0x00023] in <eaa3af9f3e15467aba111734e9f9f2f7>:0

As I understand it, dwmapi.dll should be provided by Mono. What's going on?
Thanks.

Android port

Would you please make an android port? Most people do not have a pc and wants to use memcardrex so they can manage saves on their android. Memcardrex doesn't work on exagear or winlator. So could you please make an android port?

unirom comms issue

Hi,
I have a working genuine FTDI USB serial cable (7 wire Net Yaroze mod) it works fine with nops and unirom on a retail 7xxx.
All settings are correct and working.

I tried the last release on win10, to read the memcard but I got this:
image

I click okay, and it goes into this error screen on the PS1:
image

Any suggestions, I'm happy to test any updates.

Alternate sector information is not processed, resulting in corruption upon save

Memory cards contain 20 reserved sectors ("Alternate Sectors") in the FAT block that can be used to replace broken sectors. The respective documentation can be found here under "Broken Sector List".

It seems MemcardRex does not process this information and instead assumes that all sectors are sane. This can lead to severe problems when working with corrupted cards. An example flow I've been able to verify is exporting a single save containing a corrupted sector. MemcardRex in this case exports the save with the corrupted sector, the alternate sector is ignored. When this save is later re-imported, it remains corrupt - even though the original memory card image works fine (because it contains the alternate sector). Also, when simply saving the full image again, alternate sectors seem to be cleared - resulting in MemcardRex corrupting the original save.

My suggested treatment would be to replace the broken sectors with their alternate sectors when a memory card is loaded, and clear the alternate sectors at this point. This would effectively fix the card image and prevent inconsistencies from occurring when the card is edited. However, this solution also has a few drawbacks that I can think of:

  • If the card image is written back to the physical memory card from which it was taken, the previously-broken sectors of this card are likely still broken, and therefore the saves will break unless MemcardRex detects write errors and creates new alternate sectors. It might be that the memory card adapter or the memory card itself perform these checks though - I'm not familiar with the involved protocols.
  • It is not clear from the specs if alternate sectors can also replace sectors within the FAT block - possibly even other alternate sectors, or possibly even themselves. From a pure format definition perspective, this is possible. In an extreme case, MemcardRex would need to read sectors in some to-be-determined order to ensure that data is read consistently, handle recursive replacements, and avoid loops. I personally don't believe that the PlayStation BIOS (or the memory card controller?) is smart enough to handle this - it might ignore such alternate sectors, or just crash. I suppose the easiest option here would be to prevent loading of images whose alternate sectors reference the FAT block.
  • Compatibility with FreePSXBoot might be affected. Suggested treatment would be to disable automatic substitution with the option introduced in 0952399 (Note that this specific change is unrelated to alternate sectors, it only seems to fix checksums, which is a different concern) and show a warning to users when attempting to load such an image, possibly disabling editing.

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.