Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
ike9000e authored Jul 29, 2020
1 parent b5c1205 commit 217408d
Showing 1 changed file with 299 additions and 0 deletions.
299 changes: 299 additions & 0 deletions readme.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,299 @@
------------------
CFSpace
------------------

FAT32 partition contiguous file space manager.
Creating, checking or copying contiguous, not-fragmented files.
Command line utility for Linux and Windows platforms.

Features:

* Checks if file can be created contiguous before
begining to copy the data, by default.
Usefull for limiting the wear of the flash memory on the USB
connected devices.

* Can be used to check if the files on the disk are already
contiguous or not.
Providing contiguous, non-fragmented files can be necessary
for a hardware that has limited capabilities of reading the
data from the FAT32 partitions.

* Can be used to open system disks or disk image files.
(Administrator or root level privileges are usually required,
depending on the disk type, operating system type or version.)

* Can be configured to run only from the actual shell, with
no need of entering the internal micro shell otherwise.
See the '--run_cmd' switch or the 'scr' internal command.


This project makes use of the FatFs library that
enables reading and writing files on the FAT32 disks
(see the Links section for more info).


WARNING!
---------------------

USE AT YOUR OWN RISK!
NO WARRANTY PROVIDED!
BACKUP YOUR DATA FIRST!


Command line interface
-----------------------------

--open_disk DISKNAME

Open disk on the program startup.
DISKNAME can be:
* File name of the FAT32 partition image.
* System name of the partition on the physical HDD/SDD.
Eg. on Linux this may be "/dev/sdd2".

Note that this is an optional switch and the disk can be always
opened with the "open" command from the program's micro shell.

--read_only

Open the disk in read only mode.
This affect both, the "--open_disk" switch
and the "open" command.

--current_dir PATH

Directory on the opened disk to srart in.
Valid only when opening disk on startup with the "--open_disk" switch.

--error_exit

Exit the program when command error occuts.
Usefull when the program is running text script via the "scr" command.

--buff_rw_size NUM

Buffer size for read and write operations. Default is 1MiB.
For debug purposes.

--run_cmd CMD

Run command on the program startup.
Can be used for automation from the shell.
See "scr" command on how to execute commands from text file.

--crc_ul TEXT

Utility.
Generates checksum that goes into the "ul.cfg" file and the ties game entry
with the game split-files. USB Advance and OpenPS2Loader (OPL) format.
This is so that you can manually create and copy files to the disk,
For example, for game title "New Playstation Game", final file
name may endup being: ul.88BC6456.SLUS_123.45.00


--ul_cfg_add TEXT

Utility. Opens "ul.cfg" file in current system direntory,
adds entry froom text eneterd, and exits the program.
The TEXT sould contain game name followed by game id.
Game id can be with or without the punctuation. Either
SLUS12345 or SLUS_123.45 is expected.
Eg. if the TEXT is set to "New Playstation Game SLUS_123.45",
added will be game with name set to "New Playstation Game"
and game-id set to "SLUS_123.45".
Note 1: This is only a command line switch that makes the
program exit after it's done - does not starts the main program.
Note 2: No game files are opened or copied when using this switch.

--no_disk_reinit_w

Do not reinit the disk at the end of all write operations, like
injecting a file using the "inj" command.

--write_sync

For debug purposes.
Performs a sync operation on each buffer write.


Micro shell interface
------------------------------

This is just simple command line interpreter that parses user
input from the STDIN in the console/terminal.
Once started, enter "help" or "list" to get more info.
Enter "help all" to show list and info for all commands.

Commands
--------------------

>>> open <<<
Opens FAT32 disk, partition or disk image.
Use -r switch to open in the read-only mode.

>>> close <<<
Closes current, previously opened disk.

>>> ls <<<
Alias: dir
Shows contents of current directory.
Use '-l' switch to get long listing.
Use '-f' switch to show fragmentation for each file.

>>> cd <<<
Changes current directory.
Use 'cd ..' to switch to the parent directory.
Use 'cd /' to switch to the root directory.

>>> pwd <<<
Shows current directory path.

>>> diskinfo <<<
Alias: dinf
Shows basic disk information.
Size, empty space, label, etc.

>>> exit <<<
Aliases: quit, q
Exits the program and returns to the shell.

>>> dele <<<
Deletes single file or empty-directory.
Will not delete files with read-only flag
or non-empty directories.
Use '-f' switch to force delete of read-only file.

>>> mkfile <<<
Alias: mkf
Creates new file. Empty or with prealocated size.
File is created contiguous, with contents undefined.
Use '-s SIZE' switch to specify its size.
Fails if there is not enough contiguous space available.

>>> extr <<<
Copies file from curently mounted disk to the system.
Syntax: extr <source> <dest>.


>>> inj <<<
Copies file from the system to the currently opened disk.
By default, new file is being created contiguous.
Fails if there is not enouh contiguous space on the disk.
Use '-o' switch to allow file to be created non-contiguous.
Syntax: inj [-o] <source> [<dest>]
If <dest> is omited, new file name is automatically taken from the path in <source>.
If the file name in <dest> is without the path part, creates file in the current directory.

>>> showfrag <<<
Alias: sfr
Shows the file fragmentation.
Syntax: showfrag <file-name>
This command is limited in that it can only tell if the file is fragmented or not.
If retrieved value of is 1 then the file is not fragmented, contiguous.
If the file is fragmented, the value shown is '2+'.
Note: you can also use the 'ls -f' command.

>>> scr <<<
Alias: s
Runs commands from the text script - file on the system.
Syntax: scr [-c] <file-name>
File name is expected to be an ANSI or UTF-8 text file.
Use '-c' switch to continue executing on errors.
This command can be used to automate tasks from the actual shell.
For shell automation, consider command line switches: '--run_cmd'
and '--error_exit'.
If file name is without the extension, auto checks for the TXT file.

>>> show_disks <<<
Alias: sd
Shows system disks or volumes.
Use the 'open' command to open diisk from the list.
For example, to open disk D, use 'open D:' command.
On unix platforms use device names from the /dev directory.
Example: 'open /dev/sdc1'.

>>> ul_inject <<<
Alias: uli
Injects ISO adding entry to the 'ul.cfg' file.
Asks to press Enter key once files allocated, before file copy.
WARNING: does not checks if the same game already exists.
For PS2 games on USB disks.
This is USB Advance format that is also used by OPL.
Use '-b' to do not update the 'ul.cfg' file.
Use '-i' to do set game-id manually.

>>> ul_list <<<
Alias: ull
Lists contents of 'ul.cfg' file in current directory on the disk.
Use '-l' switch to show more info (game-id).

>>> ul_dele <<<
Alias: uld
Delete entry from 'ul.cfg' file in current directory on the disk.
Specify one or more entries as asterissk with number, 1-based.
Eg. 'ul_dele *2' or 'ul_dele *1 *5 *10'
Use '-t' switch for test mode - don't delete or modify any files.


Build Instructions
----------------------------

Unix:

* Download and unpack source code package.
* Enter directory: "projects/01_cli"
* Run the command: "make release"
* On success, the binary file is created under this path:
"projects/01_cli/bin/release/cfspace"

Windows:

Use Microsoft Visual C++ (MSVC) version 2017 and Windows
SDK that comes with it. Possibly can be compiled with
other MSVC versions.


Changelog
-----------------

v1.1.1
* Initial release.
* Builds for Linux x86_64 platforms.

v1.1.2
* Adds Windows support.

v1.3.1
* Added handling of USB Advance (also OpenPS2Loader) format games.
* Added ul.cfg commands: ul_inject, ul_list and ul_dele.
* Minor filesystem handling improvements.
* Previous official release was version 1.1.2.
* Readme file documentation updates.


Links
------------------

Github Project Page
https://github.com/ikk00/CFSpace

FatFs Library - Generic FAT Filesystem Module
http://elm-chan.org/fsw/ff/00index_e.html

FatFs User Forum
http://elm-chan.org/fsw/ff/bd/

Forum Topic on PS2-HOME Website
https://www.ps2-home.com/forum/viewtopic.php?p=43159



Special Thanks
--------------------

Authors of the FatFs project.

Authors and contributors of the Linux and Ubuntu operating system.


0 comments on commit 217408d

Please sign in to comment.