Lata mijają, zakurzone w szufladzie karty pamięci powoli wymierają, a „szaraki” coraz częściej zastępują emulatory. Oczywiście ortodoksyjni fani rozedrą w tym momencie koszulę krzycząc: hańba! Ale to nie do nich skierowany jest poniższy tekst, a do wszystkich którym drogie są save’y i chcieliby je przenieść na inną platformę. Nie będzie to szczegółowy poradnik prowadzący za rękę, a raczej krótki przewodnik po przeróżnych postaciach save’ów, czym się między sobą różnią, czym je konwertować i po co.

Pojęcia podstawowe

Jeślibyśmy mieli trzymać się kurczowo definicji, to znaczenie anglojęzycznego słowa “save” jest dość oczywiste i teoretycznie nie wymaga głębszego tłumaczenia. Niestety w mowie potocznej na równi funkcjonują także inne pojęcia, które mącą w głowie osobom „nietechnicznym”. Uporządkujmy więc to semantyczne grzęzawisko:

  • Obraz karty pamięci

Czyli dokładna kopia całej karty pamięci, jej wszystkie 16 bloków (pierwszy to tablica dlatego 1+15), mająca dokładnie n+128KiB. Zależnie od formatu, może przyjmować różne rozmiary – gdzie “n” to ewentualny nagłówek, ale o tym szczegółowo znajdziesz w dalszej części artykułu. Wszystkie emulatory zapisują stany gier właśnie na obrazach kart pamięci, które udają prawdziwą kartę, tak jak emulator prawdziwą konsolę która to robi.

Różne formaty obrazów kart można dowolnie między sobą konwertować, zależnie od wymagań docelowego emulatora.

  • Save

Czyli stan gry, który zapisuje gra. Karta pamięci dla PSX nie posiada systemu plików, więc podzielono ją na bloki. Każdy blok to dokładnie 8KiB. Jeśli save zajmuje na „memorce” więcej niż jeden, będzie to wielokrotność tej wartości (dla dwóch: 16KiB, dla trzech: 24KiB, dla czterech: 32KiB itd.). Niektóre programy eksportując pojedynczy save, dokłada swoje trzy grosze w postaci nagłówka i wtedy możemy mówić o n+(8KiB*ilość bloków), ale nie może mieć to miejsca ani na prawdziwej karcie, ani na emulowanej czyli jej obrazie.

Różne formaty save’ów można dowolnie między sobą konwertować, zależnie od upodobań archiwizacyjnych.

  • Save State

Czyli zrzut pamięci ulotnych emulowanej konsoli o wielkości równej sumie tych pamięci (najczęściej jest skompresowany jak np. robi to ePSXe). Różne emulatory zapisują w różny sposób takie dump-y.

Formatów save state’ów nie można konwertować na obrazy kart pamięci, ani pojedynczych save’ów, ponieważ to jest tylko zawartość RAM. Bardzo często znajdują się w niej także pojedyncze save’y, które można wydłubać, ale nie zawsze w tej samej formie co na karcie pamięci i nie zawsze jeden – więc bardzo ciężko przerobić to na „normalny save”.

Należy też pamiętać, by nigdy nie robić save state’u zanim nie zrobi się pierwszy raz „save’a prawdziwego” w grze. Bywa bowiem, że emulator po wczytaniu takiego „stejta”, czyli nadpisaniu emulowanych pamięci, może nie zapisywać save na obrazie karty (w grze będzie wyglądało jakby wszystko było ok). Przydarzyło mi się tak m.in. z „Lunar: Silver Star Story Complete” na PCSXbox i ratowałem się grzebaniem w save state. Ku przestrodze!

Obrazy surowe

„Kopie 1:1”, lub jak kto woli nazywać „kopie RAW” to kopie idealnie odwzorowujące dane znajdujące się na karcie pamięci do PSX. Większość emulatorów, obsługuje właśnie takie, choć bywają różnie nazywane (*.bin, *.ddf, *.mcd, *.mci, *.mcr, *.ps, *.psm, *.srm, *.vm1). Wszystkie więc reprezentują zawartość karty pamięci PSX i mają dokładnie 128KiB. Wszystkie są obrazami i „konwersja” pomiędzy nimi to zwyczajna zmiana nazwy pliku. 😉

Wiele osób traktuje te kilka literek po kropce, jako jedyne w swoim rodzaju, unikalne oznaczenie struktury danych, a tak przecież w rzeczywistości nie jest. Kilka przykładów:

  • Rozszerzenie MCI używane jest również jako mapa bitowa właściwości karty do PS2. Rzecz jasna to zupełnie inny format, a jedyne co ma wspólne z PSX’owym MCI to tylko nazwę.
  • Rozszerzenie SRM używane jest przez RetroArch jako wspólna nazwa na „prawdziwe save’y” przeróżnych platform. Oczywiście taki save z gry np. na SNES to zupełnie inny format niż obraz karty PSX, mimo iż dzielą wspólne rozszerzenie.
  • PS3 używa obrazów kart pamięci VM1. A więc takich samych jak emulator ePSXe, czyli MCR. Wystarczy więc zmienić nazwę pliku z np. “mcr” na “<dowolna nazwa>.VM1”, wrzucić do “dev_hdd0/vmc/” (za pomocą managera plików wbudowanego np. w program multiMAN lub via FTP) i z poziomu menu serwisowego, odbudować bazy danych (inaczej nie pojawi się w XMB). Ważne jednak by rozszerzenie składało się z dużych liter (czyli *.VM1), jeśli będzie z małych (czyli *.vm1) to konsola uzna je za uszkodzone.

Obrazy MEM, VGS i GME

Są również formaty obrazów kart: *.mem, *.vgs (używane przez emulator VGS) i *.gme (używany przez urządzenie DexDrive), które mają doklejony własny nagłówek i aby użyć ich gdziekolwiek indziej, trzeba się go najpierw pozbyć. Naturalnie wystarczy jakikolwiek edytor heksadecymalny, ponieważ karta do PSX zaczyna się zawsze od wartości “MC” (na 0x40 w przypadku MEM/VGS i 0x0F40 w przypadku GME), ale polecam MemcardRex, który potrafi importować lub eksportować także pojedyncze save’y, umożliwia zmiany nazw plików etc. Prawdziwy scyzoryk szwajcarski i godny sukcesor podobnej aplikacji: PSXGameEdit.

MemcardRex 1 - Formaty save’ów na PlayStation / PSX

Obrazy VMP

Sony wraz z wprowadzeniem emulatora POPS do firmware PlayStation Portable i gier z PSX do PlayStation Store, musiało opracować także format karty pamięci jakiego miał używać. Aby uniemożliwić graczom użycie obrazów „memorek” z emulatorów (lub własnych kopii prawdziwych kart), które można by po ludzku wrzucić na kartę Memory Stick Pro Duo, zanieczyścili go 128 bajtowym nagłówkiem zawierającym cyfrowy podpis.

Na PSP, obrazy kart w formacie *.vmp znajdziesz w “ms0:/PSP/SAVEDATA/<GameID>/SCEVMC*.VMP”.  “SCEVMC0.VMP” to karta przypięta do wirtualnego pierwszego slotu, a “SCEVMC1.VMP” jak nietrudno się domyślić, do drugiego. GameID to identyfikator gry, np. SCES12345 (musi być zgodny z prawdą ponieważ emulator montuje obraz karty adekwatnie do identyfikatora gry, który znajdzie w obrazie płyty).

PSV i PSTV wirtualizują PSP, a więc używają tego samego emulatora PSX co PlayStation Portable, zatem i używane obrazy kart są identyczne. Problem jednak w tym, że dostęp do danych na tych konsolach jest mocno utrudniony ze względu na obowiązkowego pośrednika w postaci programu CMA, który służy do zarządzania kopiami zapasowymi. Dlatego najlepiej jest mieć złamaną konsolę i dane przenosić via pendrive za pomocą managera plików VitaShell lub FTP. Odpowiednikiem wirtualnej karty Memory Stick jest tutaj “ux0:/pspemu/”, który należy traktować tak samo jak “ms0:/” na PSP.

Do niedawna jedyną możliwością użycia własnej karty, było jej wstrzyknięcie za pomocą modułu CWCheat – a więc wymagało to złamanej konsoli, na której można uruchomić homebrew. Na szczęście dzięki programowi Vita MCR2VMP to już przeszłość i konwersję można wykonać na komputerze bez udziału konsoli, a więc i bez potrzeby jej „eksploitacji”. Program generuje owy podpis w taki sam sposób jak konsola i dokleja taki sam nagłówek do karty jaki rozumie PSP. Działa to również w drugą stronę: można z *.vmp szybko zrobić *.mcr.

VitaMCR2VMP - Formaty save’ów na PlayStation / PSX
Mimo że aplikacja jest w CLI to wystarczy złapać *.mcr i upuścić na *.exe by ten automatycznie przerobił go na *.vmp.

Nazwę wyplutego pliku *.vmp należy zmienić na taką, jaką rozumie konsola i zastąpić stary obraz nowym. Czyli na przykładzie wyżej: zmienić nazwę z “Vagrant Story (SLUS-01040).mcr.VMP” na “SCEVMC0.VMP” i wrzucić do:

PSPms0:/PSP/SAVEDATA/SLUS01040/
PSV/PSTVux0:/pspemu/PSP/SAVEDATA/SLUS01040/

Sieroty PSV

Wszystkie emulatory PSX jakie można znaleźć w konsoli PlayStation 3, używają surowych obrazów kart pamięci. Niestety Sony nie umożliwiło graczom swobodnie ich wgrywać lub archiwizować, a zamiast tego zaprojektowało specjalną opcję eksportu pojedynczych save’ów z tych kart na pendrive do enigmatycznego formatu *.psv. W doklejonym nagłówku, kolejny raz dorzucono kukułcze jajo w postaci cyfrowego podpisu pliku, tak aby uniemożliwić modyfikację lub import własnego save’a…

Oczywiście posiadacze Custom Firmware lub HEN po prostu zastąpią te obrazy na dysku twardym i zapomną o problemie. Co jednak mają zrobić wszyscy ci, którzy nie chcą łamać swojej PS3? Ano czeka ich trochę rzeźbienia w… heksach. 😉

Najpierw należy zapisać grę na PS3 i eksportować save na np. pendrive (PS3 obsługuje wyłącznie FAT32 na MBR, innych pamięci masowych na USB nie zobaczy). Następnie skopiować specjalny nagłówek, czyli pierwsze 132 bajty (unikalny dla każdej gry z osobna).

HxD 1 - Formaty save’ów na PlayStation / PSX

Teraz należy otworzyć obraz karty pamięci z save’em docelowym za pomocą programu MemcardRex i eksportować go jako “RAW single save (B???????????*)”.

MemcardRex 2 - Formaty save’ów na PlayStation / PSX

Tenże save otwieramy w edytorze szesnastkowym i wklejamy „skalp” na początku pliku. Oczywiście zmiany należy zapisać (w moim przypadku będzie to “BASLUS-01040VAG2.PSV”).

HxD 2 - Formaty save’ów na PlayStation / PSX

Otrzymaliśmy w ten sposób własny save w formacie PSV (po to wycinany był nagłówek z eksportowanego save’a i doklejany do naszego), ale z niepoprawnym podpisem cyfrowym. Aby to naprawić wystarczy upuścić plik na programie PS3-PSVresigner.

PS3PSVResigner - Formaty save’ów na PlayStation / PSX

Wynikiem działania programu będzie plik “BASLUS-01040VAG2.PSV.new“, któremu nazwę należy zmienić na “BASLUS-0104056414732.PSV” i wrzucić do “dev_usb000/PS3/EXPORT/PSV/“, czyli tam gdzie PS3 eksportuje i skąd importuje save’y gier z PSX i PS2.

Jeśli byłeś uważny, zapewne zauważyłeś że wewnętrzny identyfikator (w tym przypadku “VAG2”) musi mieć nazwę odpowiadającą wartościom szesnastkowym. Dzieję się tak dlatego, że niektóre gry używały w tymże identyfikatorze znaki niedozwolone w systemie plików FAT32 (np. “Tales of Destiny II” tak robi). Mało tego, jeśli nazwa pliku nie będzie się zgadzała z tą wewnątrz nagłówka to PS3 odmówi importu, twierdząc że save jest uszkodzony…

Przeprowadzka

A co z prawdziwymi kartami? Jak przenieść z nich dane? Są różne sposoby, ten z antycznym i dziś problematycznym DexDrive zapewne znasz, więc przybliżę dwa inne.

  • Jeśli masz złamaną PS2 (przylutowany modchip, wgrany FMCB), a karta jest oryginalna (podróbki rzadko są widoczne) to wystarczy użyć programu unofficial Launch ELF by skopiować save np. na pendrive lub program Memory Card Annihilator by utworzyć obraz takiej karty na pendrive.

 

  • A jeśli masz PS3 i do niej urządzenie zwane PlayStation 3 Memory Card Adapter (musi być oryginalny) to za jego pomocą przekopiować save do wirtualnej karty w konsoli, a później eksportować go do PSV na pendrive. Ewentualnie jeśli posiadasz tylko sam adapter to są nieoficjalne sterowniki do Windows, dzięki którym z urządzeniem będzie można się dogadać dołączonymi narzędziami.
Załaduj więcej powiązanych artykułów
  • obrazy playstation baner big 320x220 - Obrazy płyt PlayStation – wczoraj i dziś

    Obrazy płyt PlayStation – wczoraj i dziś

    Od dnia premiery rewolucyjnej konsoli PlayStation minęło już niemal 25 lat.…
Załaduj więcej od Berion
Załaduj więcej w Karta pamięci

Jeden komentarz

  1. Berion

    Ojciec-gracz

    21 sierpnia 2019 o 20:09

    Nic z tego nie zrozumiałem bo jestem zielony w sprawach informatyczno-hakerskich.

    Odpowiedz

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

This site uses Akismet to reduce spam. Learn how your comment data is processed.