Free Memory Card Boot (FMCB) is a piece of homebrew software, which is designed to setup your PlayStation 2 console and provides you with means of launching homebrew software, without the need for any extra hardware, modifications to your console or dangerous tricks like the legendary swap trick.

FMCB was originally developed by Neme and Jimmikaelkael, but they have been kind enough to provide me with access to its source code, for me to make some improvements to it.

FMCB is installed onto your memory card. While clone/compatible memory cards may work, they are copies of a proprietary memory card, which often means that they aren't perfectly compatible. Please use clones/compatibles at your own risk.

FMCB will not allow you to boot games that you cannot already play. This means no playing of burned and imported discs.

What is FHDB?

Free Harddisk Drive Boot (FHDB) is basically FMCB that gets installed onto the PlayStation 2 console's HDD unit. It does everything like FMCB does, but is meant to be used with the Sony HDDOSD (Browser update v2.00).

Patched/modified copies of the HDDOSD may not work, although non-Sony disks are supported by FHDB itself.
***Whether the hacked HDD OSD supports non-Sony disks or not depends on whether it was modified to support non-Sony disks.***

Modifying or getting a pre-modified copy of the HDDOSD is not under this project, which is why that topic will not be discussed here.

Like with FMCB, FHDB will not allow you to boot games that you cannot already play. This means no playing of burned and imported discs.

All checks must pass, including the S.M.A.R.T. status.
Disks that fail the S.M.A.R.T. test are about to fail, and should be replaced.

If the partition bad sector check fails, it means that your disk has been marked as having bad sectors by a filesystem driver. Using WinHIIP's scan and repair function should solve that, assuming that the bad sector(s) was remapped by the drive successfully. Alternatively, a format with WinHIIP or uLaunchELF should solve it too, at the expense of all unbacked-up data.

Used this when I still had the fat ps2 with NA and HDD, even before the first public version of FHDB was released... Man do I miss that, instant ps2... Only sold it because I got a BC ps3 which can do pretty much the same, otherwise I'd have kept it

I just wanted to say a huge thankyou to you sp193 for all your work in maintaining/improving FMCB/HDLGameInstaller and other tools.

I only got my first PS2 last week (I'm a little late to the party) and was pleasantly surprised to find that not only are there still guides on using these tools, but they've actually recieved updates this year.

After receiving a FMCB card from a friend yesterday I was able to pretty easily work out how to create another as a backup, configure the menu items etc. The 'noobie' packs just look to have a few extra program ELF files in boot/apps/hdd-apps and listings for them in the cnf file, once i could see the final folder structure on the FMCB card itself the usage was all pretty clear.

Just waiting on my network adaptor so I can try out an internal HDD, once it's here Ill use your HDD checker to see if my old PATA drives are still in an acceptable state

I was unable to sign up for that other PSX site to say thanks, luckily you're on this forum also.
It really is impressive that I can just stick a specially configured memory card into a stock console and have so much power to play around with cool new toys.

A counter-example has been found, so there are R-chassis consoles with ROM v2.20 (that support FMCB).
The example is a SCPH-90004a with datecode 8C, so it could mean that the switch to ROM v2.30 happened shortly after.

In installer now the new font looks awesome, but when I "highlight text" for the 1st time, it takes some time for respond

Click to expand...

I've spent a considerable amount of time on reworking the UI, to find the best way to work with the variable-width font. Unfortunately, this was the best solution I could come up with, to allow for okay bootup times and for a variable-width font to be used.

Originally, it used to scan for and wrap long lines at boot. But using FreeType to measure the width of any text is just so slow, that it took a whole minute for the installer to start up...
So now I do the wrapping when the line is used the first time. Hence when you move the cursor around, the UI will become more responsive.

Yes. If you don't use the HDD Browser (v2.00), then you will get what you observed. You can even copy + paste (or even just resave) the FMCB file, and it will work.

FHDB was made to be used with the HDD Browser. But if the user does not have it installed, then it will use the ROM browser instead. That is why its default FREEHDB.CNF file will not display properly in the ROM browser.

I also notice that in new wLe coping files from PS2HDD to mass don't work.
I'm getting pastie failed.
With version from 09/09/2017 coping seems to work fine.

Click to expand...

Really? Wow.
Nothing got changed though. But it's not really surprising, I guess. LaunchELF has bad code. USBHDFSD also has bad code. Just touching anything or if the planets aren't aligned, will cause the unhelpful error to appear...

If USBHDFSD has a problem with writing files, then it should always fail. If PFS and/or APA had issues, then we should have more visible problems.
But no, we get this after putting it all together.

PFS itself might have problems, as you have noticed from HDDChecker. Sometimes, I seem to get corruption (LaunchELF reports paste failed), but I cannot tell why it happens.
Just today, I've found another bug with it, since our version was based on the HDD Utility disc's version - so our homebrew module sets UID and GID to 0, but software may ignore files that do not have GID and UID set to 0xFFFF.

USBHDFSD itself might have problems that were never found too. We all know that somehow, corruption happens.

I've spent a considerable amount of time on reworking the UI, to find the best way to work with the variable-width font. Unfortunately, this was the best solution I could come up with, to allow for okay bootup times and for a variable-width font to be used.

Originally, it used to scan for and wrap long lines at boot. But using FreeType to measure the width of any text is just so slow, that it took a whole minute for the installer to start up...
So now I do the wrapping when the line is used the first time. Hence when you move the cursor around, the UI will become more responsive.

Actually, HDLGameInstaller's GUI is a custom version of the system from the 3 other (newer) projects. It's a custom version because it is the only one of my projects left that still uses gsKit and has far more complicated needs (e.g. soft keyboard, scrollable game list, device list, 3D icon rendering).
A lot of time was spent replacing HDLGameInstaller's 6-year old UI code. So it wasn't cheap (time-wise) to make either. I had most trouble getting the variable-width (non monospace) fonts to draw nicely in the game list and the soft keyboard.

While the new GUI design came from HDDChecker, the new font-drawing code started with HDLGameInstaller. So I made HDLGameInstaller use the new UI, before changing the font-drawing code. And then after all that, I back-ported the code to the 3 other projects.

The slow part is the measurement and auto-wrapping of messages. So if the tool does not have many lines, it would be "fast".
This feature was added to HDLGameInstaller v0.816. At v0.815, auto-wrapping was just removed because I had no idea how to make it work with the variable-width font.
It used to also affect button-drawing, but I cheated my way out lol - I draw the label of the button without any centering for the first frame, calculating the width of the label in the process, before drawing it in the right place for all subsequent frames.

Honestly, I do not know if I did anything wrong or what, but it does feel like the calculation of the font glyph widths (by FreeType) is slower than actually drawing the glyphs - but I do not know why.
Since the documentation mentioned that it is slow, I assumed that its time complexity is just very great, which is bad for a 19-year old console anyway.

But thanks for asking. I think it's good to have this explained somewhere.

It's probably not a big deal, but sometimes to turn off my PS2 in FHDB Browser I used app "packed_poweroff.elf".
This app seems to be also included in previous FMCB noobie packages.
With FHDB 1.96, after I run this app through FHDB menu I'm getting stuck at black screen.
With previous FHDB versions, PS2 turns off normally.
I even tried to run it through wLe (couple versions) and it worked as it should turning off my PS2.

So maybe now Updated HDD modules will not work with some old homebrew?

This does not only affect FMCB, it affects the new copies of any software that writes. Maybe reading as well, but so far I've not seen it give problems while reading.

What happened today was that I tried to add a logging feature to HDDChecker, but it would always corrupt my USB disk. Very badly.
It should be a problem with USBHDFSD. I then tried to revert the likely culprits, 7f21832, 6f940a2 and d4c0411, but the corruption still occurred after the next run of HDDChecker.
Worse still, it seems like HDDChecker has font-drawing problems... so I don't know, maybe Git could not even revert those commits cleanly or the bug is actually elsewhere.

This is giving me a headache and I really have no wish to waste anymore time on these projects. I am prepared to write off all the time I spent on that day, for USB support.
So if anybody else mentions issues with the USB modules destroying their data, I shall do a mass-revert and re-release all software that I have released over the past 3 days.

Developer i have a console of scph 90004 with R-chassis but i have running fmcb v1.953 on my ps2 by hacked OSDSYS LAUNCHER. so i have a doubt if i update to v1.96 by replacing boot.elf in boot folder by HACKED OSDSYS then it will boot or not

Developer i have a console of scph 90004 with R-chassis but i have running fmcb v1.953 on my ps2 by hacked OSDSYS LAUNCHER. so i have a doubt if i update to v1.96 by replacing boot.elf in boot folder by HACKED OSDSYS then it will boot or not

Click to expand...

If you could run FMCB with your PlayStation 2, then it is a R-chassis model with ROM v2.20. There are some units like that.

To upgrade, you need to download the package and run the FMCB installer. FMCB must be installed.

But for now, I am investigating a possible bug in the USB drivers. So you may want to hold off upgrading to v1.96, until tomorrow.

Okay, then it depends on the software you use to boot FMCB, since your PS2's browser cannot do it.
Is FMCB still stored as mc:/BxEXEC-SYSTEM/osdmain.elf? If so, you can try to install FMCB the normal way and it should probably work.

Replaced DVD player booting code, to give the Sony-like behaviour. For compatibility with all DVD players and projects.

NEW! - Re-released with the corrected USBHDFSD and PFS modules.

Changelog for the installerChangelog for v0.981:

UI rework.

Updated USBHDFSD module for performance.

Updated translation template.

NEW! - re-released with the corrected USBHDFSD and PFS modules.

NEW! - Updated FSCK to v0.96.

Note: LaunchELF has been updated to use the corrected USBHDFSD and PFS modules as well.

USBHDFSD had issues with writing correctly. Since external homebrew software may use the USBHDFSD module that FMCB/FHDB provides, I have made a new package.
LaunchELF also has its own copies of USBHDFSD and PFS, which have been updated as well.