Unofficial FMCB Installer v0.93 beta
New in this release:
- Fixed a design fault that caused a resource leak. The File Descriptors (FDs) used in the CopyFile() function were constantly overwriting each other, which probably 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 updates.
Since the file copy process is asynchronous, file copy status messages were previously incorrectly tagged with the files.
An error that occurred might not refer to the file that was being written 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 declared 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 APPS 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 to be able to handle DMA transfers involving buffers not aligned to 16-byte boundaries or the transfer size is not a multiple of 16.
Known bugs and limitations:
- There seems to be some occasional DMA transfer size or alignment issue. Some RPC calls to MCTOOLS cause stack corruption.
- Sometimes successive installations cannot be made (Cache initialization will fail). :(
- There is one missing "Done!" status update when making installs. I don't know why and how it's missing.
- The logging window isn't large enough, and so the log can overflow and warp back to the first line, overwriting the first line.
Unfortunately, I've grown tired of trying to fix these bugs... especially since I no longer have a way to perform debugging (My only working copy of PS2LINK that works on my hardware isn't working - either because it's broken or this temporary Linux box I'm using has somehow been misconfigured).
I've already spent about 3 weeks on this project, and I doubt that I (Or anyone else) will benefit from wasting more time on it.
Maybe someone else with better PS2 programming skills can fix these issues, but I know that I cannot. I don't even know where these issues originate from.
I'll now release the source soon after I have my dinner. The link will be found on the project homepage. Good luck!
No. He is referring to the fact that the installer will overwrite your FREEMCB.CNF file with it's own copy.
Originally Posted by dsgamer
Your wish is my command! ;)
Originally Posted by yoshi314
That's good news. :)
Originally Posted by dsgamer
Unofficial FMCB v1.8C installer v0.93A beta released!
After 1 month of being away from FMCB, I now present v0.93A!
(Which should kill all existing bugs that I know of) =3
So what's new?
- Changed buffer alignment to 64-byte alignment for all buffers that will have data flushed back into from the Data Cache. Other buffers now use 16-byte alignment.
- Fixed the age-old buffer "alignment issue" (The phantom that was responsible for 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() within 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 when it does it's usual 16-byte block writes!
I know that SifSetDma() won't fix alignment and padding issues on it's own, 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:
Note: I have only tested this on my SCPH-77006 console. I need to test it on older consoles too, but I don't think that I can do that in the immediate future. ;)
To any mods/admins: Could any one of you please update the first post of this thread to reflect that v0.93A has been released by either updating the content or linking to this post?
I'll appreciate it if that was done, so that newbies won't end up gaining outdated information and discovering the broken links in the first post.