Вы находитесь на странице: 1из 6

Free Memory Card Boot (FMCB) installer changelog

-----------------------------------------------2015/01/10 - v0.97
------------------*Re-compiled to fix broken strings table.
*Large files can now be copied properly to the HDD unit (copied in blocks).
*Fixed size computation of the unused areas of the HDD unit by making it complia
nt with the homebrew APA driver.
2015/01/09 - v0.97
------------------*Added animations to UI.
*Select button will be CIRCLE for Japanese consoles and CROSS for everything els
*Shifted the PAL screen to the right by 4.
*Re-added quit confirmation message.
2015/01/07 - v0.97
------------------*Added support to install FMCB for the PSX, from a PS2.
*Added HDD space check.
2015/01/06 - v0.97
------------------*Fixed language support.
*Added new warning against the use of multi-installations.
2015/01/02 - v0.97
------------------*Updated to be compilable with the latest PS2SDK revision.
*Compiled with the latest PS2SDK revision for stability.
*Updated to support FMCB v1.95.
*Enlarged output buffers for S-commands within SECRMAN to 16-bytes, as CDVDMAN c
an assume that these output buffers are 16-bytes long.
*Added support for DEX units.
*Revamped the GUI.
*HDD unit will only be shut off if HDD support is disabled.
*Changed fonts to the Google Noto fonts.
*Added warning messages for users of unsupported consoles (ROM v2.30) and for us
ers with HDDs that need maintenance/replacement (for FHDB).
2014/06/25 - v0.96
-----------------*Updated to be compilable with the latest PS2SDK revision.
*Compiled with the latest PS2SDK revision for stability.
2013/10/13 - v0.95
-----------------*Fixed required space calculating, which was using the wrong IFDIR macro. It pro
bably wouldn't have really affected required space calculation though, but it's
good to do it right.
*Fixed the returned error code for cache initialization failures, for multi-inst
allations. The installer should no longer say that the installation completed su
ccessfully if the cache cannot be initialized.
*Added support for the SCPH-10000 (v1.01) and SCPH-15000 kernel update.
*Recompiled with the new PS2SDK, so that the installer can receive its fixes.
2013/08/14 - v0.94H BETA

*Activated HDD support.

*Included FMCB v1.9 for the memory card (retail PS2 + PSX supported) and HDD OSD
(Browser update v2.00).
*Corrected Japanese language strings (some strings were in the wrong order).
*The startup device will now be checked, and the program will quit if it was sta
rted from an unsupported device.
*The program will now quit if the resource files (e.g. fonts) cannot be loaded,
instead of getting stuck at a black screen.
*Updated to compile with the latest PS2SDK revision.
*Updated all locales (Locales not updated will have English strings for the miss
ing lines). The Dutch, French, Portuguese and Spanish translations are the only
ones which are fully updated.
*Added support for the Chinese consoles (Magicgate region 09, folder letter C. e
.g. SCPH-50009).
*Cleaned up region-letter parsing (Only 'A', 'C', 'E', 'H' and 'I' will be recog
nised). I don't think that other letters are used.
*Fixed the recording of the paths of the cross-linked files in the multi-install
uninstallation log file.
It's recommended to backup your card, format it, reinstall FMCB, before
finally copying your data back onto the card, if your FMCB multi-installation wa
s made with any version of installer v0.94 prior to v0.94D/H.
2013/07/18 - v0.94C BETA
------------------------*Fixed the UDNL module yet again. The UDNL module was not calculating the size o
f the used portion of memory properly.
*Updated Dutch and French localizations.
*Added Portuguese translation.
2013/07/16 - v0.94B1 BETA
------------------------*Fixed an old bug in the UDNL clone module, which was left behind by Sony.
*Added the Spanish, Italian and Dutch localizations.
2013/07/14 - v0.94B BETA
------------------------*Changed the background image from a bitmap to PNG image, to save space.
*Standardized how a message box is flashed (during status updates) between this
software and the others I'm writing (Added DisplayFlashStatusUpdate()).
*Totally disabled HDD support. Leftover code was causing multi-installations and
normal cross-regional installations of FMCB v1.8c to fail.
*Added German and French localizations.
2013/07/12 - v0.94A BETA
------------------------*Added tentative HDD support for FHDB (disabled and unused at the moment).
*Updated the language strings to support FHDB.
*Updated cleanup code to support the HDD and more than 18 folder items. Now supp
orts cleaning up subdirectories.
*Adjusted the location FMCB.XLF and OSDSYS.XLF (install/ to install/SYSTEM/).
*Fixed the bug whereby installing FMCB will still continue despite the card havi
ng insufficient space.
*Updated uLaunchELF to v4.42d.
2013/07/09 - v0.94 BETA
------------------------*Improved crosslinking stability (bug found in MCTools that results in a NULL po
inter - used memset() in the wrong place) when installing. However, it won't imp
rove the reliability of the system: If you have been getting filesystem corrupti
on (as in, your saves become inaccessible after multi-installs are made), this w

on't fix it.

*New UI that (finally!) has progress bars and less cryptic messages like "Error
code -5".
*MC dumping and restoration operations can be cancelled half-way.
*Multi-language support to go with the rest of the PS2.
*Full compatibility with the first release of the SCPH-10000 (03/2000 release, w
ith boot ROM v1.00).
*FreeType is now used instead of Fontm, so that compatibility with the PSX can b
e achieved (but probably not doable at the moment... but SOON!).
*Improved MC dumping performance by about twice.
*Files and folders in the BOOT and APPS folders will be copied "as-is". Yes, fee
l free to add/remove stuff from the BOOT folder as well!
*Should be finally bootable from a CD/DVD disc that uses the ISO9660 filesystem.
*Users no longer have to disconnect and re-insert the memory card between raw-I/
O operations (multi-install installations/cleanup, memory card restorations etc.
*XSECRMAN, which just hooked onto the boot ROM SECRMAN module and extended its e
xported function set, has been retired. Full SECRMAN and SECRSIF modules have re
*Installations can now be made in several forms: Normal, cross-regional and cros
s-model. Multi-installations introduce controlled filesystem corruption, which i
sn't exactly a safe thing and it's a hack. The Memory Card filesystem was never
designed for soft links, and working around this limitation with a hack probably
isn't the best idea.
*Adjusted the design of the UI's buttons to make them more visible (Lengthened +
changed their orientations + changed the way they reflect their highlighted sta
*MCMAN from the PS2SDK was taken and modified to have its cache invalidation fun
ction exported. This is so that MCMAN can have its internal cache invalidated to
prevent it from using an outdated cached copy of clusters.
*The initialization and flushing of the MCTOOLs cache is now done by functions i
n the system.c file. This is because flushing of the cache must be strictly done
immediately after the crosslink operation completes.
*Added a call to PollSema before the actual call to WaitSema is made within Sync
FlipFB(). That way, the screen won't be redrawn prematurely before a VBlank star
t event occurs.
*Added a call to SyncFlipFB() before the VRAM memory clear in UploadDefaultResou
rces(), to send too unsent DMA tags to the GS. gsKit sometimes crashes because g
sKit_send() assumes that the DMA tag buffer is empty.
2012/11/04 - v0.93B1 BETA
------------------------*Rewrote the MCTOOLs EE-side RPC client. Since libpad may cause crashes if the p
ad DMA buffer is stored on the stack, it means that it's impossible for GCC to e
nsure that buffers on the stack are aligned to 64-byte boundaries even with the
ALIGNED directive.
All parameters passed to the RPC server on the IOP are now written to a
shared transmission buffer.
*Increased the size and alignment of all buffers to 64-bytes, where SifWriteBack
DataCache() will be used with them. This is to ensure that weird behaviour resul
ting from DCache flushes do not ever appear.
*Changed the compilation parameters for the MCTOOLs and SECRMAN RPC server modul
es. Turned optimization level down to O2 to prevent bugs from being introduced t
hrough overly aggressive optimization, and enabled usage of the gp register.
*Added a free space check.
*Modified the DeleteCrossLinkedFiles() and CreateCrossLinkedFiles() functions, t
o support more than 6 cross-linked files.
*Compatibility for the first SCPH-10000 unit should now be restored. mc:/BIEXECSYSTEM/osdsys.elf is now an additional cross-linked file.
*ExecOSD() has been replaced with Exit(). By right, the CRT should call Exit(),

but it seems like the homebrew CRT is buggy and crashes instead. :(
2012/04/07 - v0.93B BETA
-----------------------*Fixed RPC registration in all RPC server modules. Previously, they passed a poi
nter to the address of the RPC server buffer instead of the address of the RPC s
erver buffer itself, to sceSifRegisterRpc().
*Reduced the stack size of the MCTOOLS RPC server.
*Increased the stack size of the SECRMAN_RPC RPC server, since it seems like 0x8
00 bytes is really way to insufficient.
*Adjusted the compilation flags of all modules, enabling -O3 and -mno-check-zero
*Fixed a critical bug in the EE_memcpy() functions in all modules that have it:
The DMA start address was not incremented after address and transfer length alig
nment was performed.
The bug never occurs, since all buffers used in the EE-side of the insta
ller are all aligned to 64-byte boundaries.
*MCTOOLs was updated to free up it's allocated cache memory if an error occurs,
so that it won't run into the "Out of memory" error (That usually happens when a
memory card's parameters were misread either because of a corrupted/damaged or
substandard card).
*Changed the size of the RPC transmit buffer for the EE MCTOOLS client (Rounded
up to 16).
2011/11/03 - v0.93A BETA
-----------------------*Changed buffer alignment to 64-byte alignment for all buffers that will have da
ta flushed back into from the Data Cache. Other buffers now use 16-byte alignmen
*Fixed the age-old buffer "alignment issue" (The phantom that was responsible fo
r mysteriously corrupting the stack has been vanquished!). !!CRITICAL!!
Turns out, data buffers specified with SifCallRpc() will have data read
from and written to in groups of 16... and some of the calls to SifCallRpc() wit
hin the EE-side clients like MCTOOLS pass the address of a 32-bit variable to it
. The result? The SIF overwrites data beyond the end of that 32-bit variable whe
n it does it's usual 16-byte block writes!
I know that SifSetDma() won't fix alignment and padding issues on it's o
wn, so I actually expected the SIF library to fix those issues lol.
*Fixed the issue with the "done!" messages disappearing. =3
Somehow, I can now see why the messages were disappearing, after getting
some sleep! XD
It's because of the fact that the status messages are displayed 2 lines
after the "Copying <file>..." message is first displayed. The system will bring
the cursor back 2 lines, write the status and then bring the cursor back forward
2 lines. The problem is that this behaviour should not exist for the last file
copied (The cursor position should only be brought back ONE line!). D:
2011/10/02 - v0.93 BETA
----------------------*Fixed a design fault that caused a resource leak. The File Descriptors (FDs) us
ed in the CopyFile() function were constantly overwriting each other, which prob
ably caused some opened files to be left unclosed and it's FD never feed up.
*Improved how the log messages are displayed, to give more accurate status updat
Since the file copy process is asynchronous, file copy status messages w
ere previously incorrectly tagged with the files.
An error that occurred might not refer to the file that was being writte
n to the card, but the file that was being read from the source as another file
was being written to the card.
*Somehow fixed the stack corruption issue. And hence, all variables that were de

clared as static for that reason are now normal variables.

*Added a check for an existing FMCB configuration file (CNF). Provides the user
with an option to retain the existing configuration file.
*Changed the format and name of the multi-installation uninstall file.
*Added support for the APPS folder, and added the required resources for the APP
S folder to this package.
*Support for the a pad connected to port 2 has been added.
*Drivers that have DMA support like MCTOOLS and SECRMAN_RPC have been modified t
o be able to handle DMA transfers involving buffers not aligned to 16-byte bound
aries or the transfer size is not a multiple of 16.
2011/09/20 - v0.92 BETA
----------------------*FMCB installations should now be faster. Files are being read in as the files a
re being written to the memory card asynchronously.
*Fixed a bug in MCTOOLS where deletion of unused clusters doesn't work properly
and trashes up the FAT and directory records.
*Changed the uninstallation part of the FMCB installer to use the ROMVER string
that was recorded into the FMCB uninstall file (SYS-CONF/uninstall.dat).
It's important as the console used for uninstalling the old FMCB install
ation might be of a different region code from the console used for making that
old installation.
*Added more checks and warnings to the installer.
*Changed the properties that the crossed linked directory entries will come with
. Directories will now be non-copyable and all directory entries are read-only.
*Split off process of uninstalling of FMCB from the process of downgrading to a
normal installation by removing the cross-linked files and folders.
This was not only to prevent a possible failure that could occur by perf
orming file I/O after manipulating the card's filesystem layout, but to give use
rs more flexibility and reduce the number of writes to the cards.
*Consolidated all checks into one function to reduce the amount of redundant cod
*Corrected some errors in the uninstallation file generation function. It might
remove the wrong file during an event of failure.
*Declared some buffers as global. Hopefully, that will make things easier to man
age and to reduce the amount of stack overflows.
*Re-written the prerequisite check system. Now all checks and error messages are
displayed from a single function to save space.
*The uninstaller has been fixed.
*The installer system has been altered to be easier to understand and to be simp
ler in design.
2011/09/16 - v0.91 BETA
----------------------*Introduced a page caching system into MCTOOLS to reduce the number of reads and
writes to the memory card.
*The graphics corruption issue has been resolved by changing the way the screen
and menus were rendered (Now, everything is drawn in the "ONESHOT" mode).
*The OSDSYS update path is now being determined. Normal installs should now work
for older consoles that do not look for osdmain.elf.
*Additional checks and warnings have been added to avert the possibility of data
corruption because of MCMAN's internal filesystem cache.
*The bug where memalign() was not used properly has been fixed. Previously, call
s to memalign() would only allocate 16 bytes of memory, and that allocated buffe
r would usually overflow with almost no visible consequences.
*Logging messages were changed to become clearer.
*The dumping and restoring memory cards should now be faster too. A double-buffe
ring system has been installed.
2011/09/14 - v0.90 BETA

----------------------*Initial release