--- Satiator Menu `Kai' ---
An alternate menu utility for Satiator ODE.
 By cafe-alpha
 https://ppcenter.webou.net/pskai/
 http://ppcenter.free.fr/pskai/ (mirror)


1. Overview
==========================================
Satiator is an Optical Disc Emulator (ODE, a modern replacement for CD-ROM
drive) which uses SD card to store CD images to play on Saturn.
More informations about Satiator is available at the following page :
    https://www.satiator.net/

Satiator SD card can contain several disc images, and selection of which one to
play on Saturn is done via a menu utility which can be either the official menu
provided on Satiator homepage or a third-party one such as Satiator Menu Kai.


2. Features
==========================================
The following features are available in Satiator Menu Kai :
 - User friendly list of disc images available for ODE
  - Two sort methods for listing disc images :
    - Alphabetical order
    - Release date order
 - Automatic selection of previously loaded disc image
 - Software reset to disc image selection menu
 - Region-free loading of disc images
 - Region-free loading of discs from CD-ROM drive
 - Cheat codes functionality
 - Per-Game Saves
 - Save Data Manager

Usage of a cartridge is not required : all the features above such as cheat
codes and Save Data Manager are available simply by copying autoboot.iso file
to Satiator SD card.


3. Limitations
==========================================
 3a. Lack of features requiring cartridge ROM
------------------------------------------
The features below are disabled because of of cartridge ROM unavailability :
 - In-game USB transfer with USB dev cart is disabled
 - ROM-based cheat codes handler is disabled
In practical terms, theses limitations are not invalidant : ROM-based cheat
codes handler is the slowest one, hence enabled only when other can't be used, 
which happens when enabling too many cheats at once.

 3b. Incomplete support of hardware and software reset
------------------------------------------
For a majority of games, a software reset triggered with A+B+C+Start keys combo
makes Saturn returning to disc images selection menu thus allows to select
another game after that.
However, Satiator Menu Kai doesn't makes possible to reset back to this disc
images list when a game requiring JHL loader is selected.

Games requiring JHL loader are for example Dragoon Saga, Mortal Kombat II etc
and full list of these games is available below :
    https://ppcenter.webou.net/pskai/compat/#autoset

Furthermore, soft reset occasionally triggers the "Drive empty" message in the
multiplayer menu, which forces you to power cycle the Saturn to return to
Satiator Menu Kai.

Finally, when performing a hard reset in a game that :
 - matches the system region -> resets the game.
 - does not match the system region -> "Game disc not suitable for this system"
   error in multiplayer menu.
 
If these limitations are too much of an inconvenience then you should opt to use
the official Satiator menu in conjunction with the patched Action Replay
firmware, both of which are available on the Satiator website.

 3c. Incomplete support for games loaded from CD-ROM drive
------------------------------------------
Games requiring the JHL loader cannot be booted from CD-ROM drive via the 
"Start from CD Drive" feature.

Games requiring JHL loader are for example Dragoon Saga, Mortal Kombat II etc
and full list of these games is available below :
    https://ppcenter.webou.net/pskai/compat/#autoset

 3d. Incomplete support for Memory Card Plus and EMS 8MEG Cartridge
------------------------------------------
Memory Card Plus and EMS 8MEG cartridge backup memory is recognized only when
CWX loader is used. As a consequence, games requiring JHL loader (Panzer Dragoon
Saga etc) can only access Saturn internal backup memory.


4. Setup
==========================================
 4a. Note about compatibility with Satiator firmware
------------------------------------------
Satiator firmware version 160 is at least required to be compatible with
Satiator Menu Kai. Firmware can be retrieved from the link below :
    https://wiki.satiator.net/

There's no warranty that Satiator Menu Kai will be compatible with future
revisions of Satiator firmware, so please revert to previous firmware version 
in the case Satiator Menu Kai stops working after a firmware update.

If you require an unsupported firmware, then please consider uninstalling
Satiator Menu Kai and using the official menu instead.

 4b. How To Install
------------------------------------------
Copy the following files in the root folder of Satiator SD card :
 - menu.bin, from Satiator homepage
 - autoboot.iso, from this archive

autoboot.iso contains Satiator Menu Kai and requires menu.bin to be loaded, so
both files have to be copied in Satiator SD card.

Optionally, pskai.ini file can be used to tune some settings used in Satiator
Menu Kai and some other modules.
As these settings are used for advanced features or troubleshooting, the copy
of this file is not necessary for normal usage of Satiator Menu Kai.

For now, Pseudo Saturn Kai firmwares for boot cartridges (e.g. Action Replay) do
not support Satiator, so please use Satiator Menu Kai in combination with:
 - official 1MB/4MB expansion RAM cartridge
 - official backup memory cartridge
 - boot cartridge with its firmware erased

Disc images should be organized as shown in the link below, and folders can be 
nested to organize disc images by region, genre etc.
    https://wiki.satiator.net/getting_started


5. Satiator Menu Browse Cache
==========================================
 5a. Overview
------------------------------------------
Unlike other menu utilies, Satiator Menu Kai is able to display or sort meta
information stored at the beginning of each disc image files.

However, as fetching this information takes a significant time, the contents of
each folders is stored into a cache file (named `pskai_cache') and so that these
contents can be re-used the next time Satiator Menu Kai lists this folder.

This cache is generated by Satiator Menu Kai. However, because this generation
is quite slow and it cannot process all disc images at once if they are located
in different folders (i.e. all game folders are not in the root of the SD card),
it is convenient to generate the cache by using a PC utility.

 5b. Cache Generation Utility
------------------------------------------
`smk_cache_gen' utility allows to generate the cache file that will be used by
Satiator Menu Kai : it scans the contents of Satiator SD card and generates
accordingly the cache file. It is recommended to rebuild the cache when
significant changes are made to the SD card, such as adding lots of disc images.

As Satiator Menu Kai can generate the cache by itself (albeit very slowly when
there are many disc images to process), the usage of this utility is not
mandatory. Please use it if you consider it is convenient.

Utility usage steps :
 1. If not already done, install Satiator Menu Kai.
 2. Copy smk_cache_gen.exe to root folder of Satiator SD card.
 3. Execute smk_cache_gen.exe from the root folder of Satiator SD card.
 4. File named 'pskai_cache' is created on the root folder of Satiator SD card.


6. Per-Game Saves
==========================================
 6a. Overview
------------------------------------------
This feature automatically imports save data from the Satiator SD card to
internal memory when loading a game, and automatically exports it from internal
memory back to the Satiator SD card when returning to Satiator Menu Kai.

Each game has ten save slots (00 to 09) and save data is organized as follows :
 [SD card Root]
 |-SAVES                   (folder)
 | |-BRAM                  (folder)
 | | |-MK-81803[U]         (folder)
 | | | |-B_RANGERS.BUP     <- Burning Rangers save data in slot 00
 | | |-T-14302G[J]         (folder)
 | | | |-BOMBERSS_01.BUP   <- Saturn Bomberman save data in slot 00
 | | | |-BOMBERSS_02.BUP
 | | | |-01                (folder)
 | | | | |-BOMBERSS_01.BUP <- Saturn Bomberman save data in slot 01
 | | | | |-BOMBERSS_01.BUP
 | | | |-02                (folder)
 | | | | |-BOMBERSS_01.BUP <- Saturn Bomberman save data in slot 02
 | | | | |-BOMBERSS_01.BUP

By default, folder names are derived from the Product Number and Region Code
fields in the disc image header. In the example above :
 - Burning Rangers (USA)    -> MK-81803[U]
 - Saturn Bomberman (Japan) -> T-14302G[J]

It is also possible to name them using only the Product Number. More details can
be found in the following text file in the Pseudo Saturn Kai archive :
    ODE\SatiatorMenuKai\Settings\readme.txt
 
 6b. How to Use
------------------------------------------
To enable Per-Game Saves, go into the Loader Settings menu and set BRAM Mode to 
"Per-Game". Once enabled and the Loader Settings menu is exited, Pseudo Saturn
Kai will ask to :
 1. Backup the contents on internal memory to the SD card and then clear it
or
 2. Keep internal memory as-is.

In most cases, it is recommended to select the first option as this puts
internal memory in a clean state, but the second option is useful if in the case
of transferring existing save data on internal memory to an empty save slot.

By default, Pseudo Saturn Kai will prompt to choose a save slot before loading a
game. If the slot selection menu is an annoyance then it is possible to bypass
it and automatically use a specific save slot by changing the Save Slot setting
from "Prompt" to a given slot.

Please note that if an occupied save slot is selected when loading a game, save
data that already exists for that particular game on internal memory will be
overwritten with the save data from that save slot.
For example, with save data for Burning Rangers in :
 - Internal memory -> First mission unlocked
 - Slot 00         -> All missions unlocked
 - Select slot 00 when loading Burning Rangers and all missions will be unlocked
 
Even when it is enabled, Per-Game Saves is not activated when loading the
following utilities :
 - Dezaemon 2 Save Game Manager
 - Save Data Manager
 - Save Game Copier by Slinga
 - Save Game Manager by Rockin'-B


7. Satiator Save Data Manager
==========================================
 7a. Satiator Save Data Manager : First usage
------------------------------------------
Satiator Save Data Manager is a part of Satiator Menu Kai; it is accessible by
pressing L shoulder button in the disc image selection menu and selecting 
"Save Data Manager".

 7b. Save Data Export : How-to
------------------------------------------
There are many kinds of backup memory devices existing, and all of them have
their own particularities. This section describes which export method should be
selected from the Save Data Export menu, depending on your particular need.

 - Saturn internal backup memory :
    -> Export Save(s) from Memory Device(s) : [++ ]
    -> Export Saturn Backup RAM             : [+++]

   "Export Saturn Backup RAM" solution is a bit faster if backup RAM contains
   many save files hence should be prefered in that case. Also, it is convenient
   because it exports into a format compatible with a wide variety of emulators.

 - Official memory cartridge :
    -> Export Save(s) from Memory Device(s) : [+++]
    -> Export Cartridge Backup RAM          : [+  ]

   Because "Export Cartridge Backup RAM" is relatively slow, it is recommended
   to select relevant saves in "Export Save(s) from Memory Device(s)" feature.
   In some particular cases, such as usage on emulator or recovery of a deleted
   save, it is then recommended to use "Export Cartridge Backup RAM" feature
   because it saves whole internal structure of the memory cartridge.

 - Floppy Disk Drive :
    -> As only "Export Save(s) from Memory Device(s)" is allowed to export
       saves from this device, choice of export method shouldn't be a difficult
       problem.
       
 - Boot cartridge :
    -> Export Save(s) from Memory Device(s) : [+++]
    -> Export Save(s) from Action Replay    : [+  ]
    -> Export Cartridge Boot ROM            : [++ ]

   There are a lot of hardware and firmware variations of Saturn boot cartridge
   and consequently the choice of a proper export method requires some care.

   First, use "Export Save(s) from Memory Device(s)" method when saves are
   available from there. If not, use "Export Cartridge Boot ROM" method.
   In case of doubt, use "Export Save(s) from Action Replay" but please note
   that this method is currently experimental and doesn't supports all existing
   compression algorithms too.

   Known problems with "Export Save(s) from Action Replay" method :
    - In the case of Memory Cart Plus and EMS 8MEG firmwares, previously-deleted
      save data might be listed and extraction errors may occur.

   Known problems with "Export Cartridge Boot ROM" method :
    - In the case of Memory Cart Plus and EMS 8MEG firmwares, previously-deleted
      save data may be exported.

   For these reasons, it is recommended to use "Export Save(s) from Memory
   Device(s)" feature with Memory Card Plus, EMS 8MEG Cartridge, and other boot
   cartridges with direct-access backup memory.

   Lastly, as a "tedious but safe method", please consider temporarily copying
   saves to Saturn internal backup memory with the utility provided by the
   cartridge and then export these saves to Satiator SD with "Export Save(s)
   from Memory Device(s)" method.
   With Action Replay firmware, this utility is available from third item in
   main menu and usually indicated as "MEMORY MANAGER". And when Memory Cart
   Plus (or equivalent) firmware, this is possible to copy saves by opening
   official save data manager (first row, middle icon in multiplayer screen)
   when being kicked there just after SEGA boot logo.

 7c. Save Data Import : How-to
------------------------------------------
In comparison with save data export, it's way easier to import saves on backup
memory device : simply copy the files to Satiator SD card, launch Save Data
Manager by pressing L shoulder button in the disc image selection menu and then
selecting "Save Data Manager".

Satiator Save Data Manager supports many formats of save data, but if the file
is not recognized, or its loading fails then please convert the saves to a
common format (such as BUP or Yabause-compatible raw binary format) with the PC
utility of your choice.

   Known problems with Save Data Import:
    - When browsing the dump file of a boot cartridge such as Action Replay,
      certain save files might be missing. If this occurs, reloading the dump
      file should make them appear.
    - When importing save data from a Memory Cart Plus or EMS 8MEG dump file,
      extraction errors may occur.

 7d. Satiator Save Data Manager : Limitations
------------------------------------------
 - Access to Action Replay cartridges is limited to save data export : 
   It is not possible to import save files from an Action Replay cartridge to
   Saturn internal memory. That's not a big problem though, since the stock
   Action Replay firmware can already do that.

 - Incomplete support for saves compressed into Action Replay ROM :
   It is not currently possible to export save files from an Action Replay
   cartridge if it gets too full and a second layer of compression has been
   applied. Likewise, it is also not possible to import save files from a
   compressed Action Replay dump.
   Once enough save files have been removed from the Action Replay, this second
   compression layer is automatically removed and these operations can be
   performed again.
   In the case individual save export from Action Replay doesn't works with a
   given flavor of legacy firmwares and/or save data compression scheme, it is
   necessary to manually copy the saves to export into Saturn internal backup
   memory (with save data manager utility embedded into the cartridge) and then
   export to Satiator from there.


8. Credits
==========================================
 - jhl / Prof. Abrasive
 - privateye
