Gameboy project week 5: LittleFM 0.5 (finally) released
February 4th, 2013This week’s project is (again) slightly late, but hopefully worth the wait. This is the latest and greatest version of LittleFM, and alternative file manager for LSD. Here are the key features in this version:
Key features
- LittleFM now comes with a Java based patcher application for easy application to any unpatched LSDj ROM, including (most probably) future versions. No more IPS patches that only work with a single version of LSDj.
- LittleFM is fully Drag’n'derp compatible. This includes interfacing with the virtual “file system” of the Derp and making sure that any song data stored in flash will be copied back when you copy the GB file off of the cartridge.
- LittleFM now supports song trading over a link cable. Currently only in the form of transfering a whole 128 kB sav at a time, but this may still be useful for backups and redundancy.
- LittleFM now checks that the SRAM is ok, both in terms of hardware and corruption. If the SRAM is corrupt or uninitialized, LittleFM will offer you to initialize it, but also to leave it as is. If the SRAM is malfunctioning on the hardware level, the program will halt with an error message.
- The stupid screen scroll bug is gone! You can now scroll to the bottom of the song list in SAVs with 32 songs, without problems.
I’ve also made a number of under the hood tweaks and small bug fixes.
Some notes on the features
ShitStrapOn, the patcher application
If you have Java installed, starting the application should be as simple double clicking the file. Should you need to execute it manually from the command line, you should be able to run it with something like java -jar ShitStrapOn.jar
The patcher will ask for three things, a clean LSDj ROM, the littlefm.gb file, and a location where to sav the output. However, it will search for littlefm.gb and not ask for it, if the program finds the file in the same directory as the .jar file. A clean LSDj ROM means one that has not been patched with LittleFM and does not contain any LittleFM save data in ROM. The ROM may still have ny number of kits, so long as there is one free slot where LittleFM can reside.
The name originally meant bootstrap for Shitwave. Since, then, however, the project has come to be used for patching LSDj ROMs with LittleFM. If you’re offended by the name, (or the subtext, a dirty dildo in LSDj’s ass,) too bad for you.
Link cable support
The link feature is a hardware feature, and any attempt to use it with any emulator is likely to end in missed bytes and tears. In my experience so far, it works perfectly both between a DMG and a DMG, and a GBC and a DMG. A GBC can send data about twice as fast DMG. (Well, it can transmit much faster than that, actually, but the *2 mode is what I’ve found to be safe for these transfers.)
LittleFM will show a progress bar as the transfer progresses. If all is well, both sides will move their progress bar in synch, and will both show OK on their respective side. If a transfer is stalled, it is safe to turn off the Gameboy, as long as no data is currently being actively transmitted or received.
You can use the Nanoloop MIDI adapter with, sort of. Sending data from the PC usually works ok-ish. However, make sure that the receving Gameboy shows ok at the end of the transfer, and that songs load correctly when the transfer is finished. Receiving data from the Gameboy to the PC can work but is extremely touchy. You may lose bytes in transit, with or without an error message. Be extremely wary of corruption, and make sure the received file is 131072 bytes big. Not a single byte less or more! Remember, unlike LSDj’s own file manager, LFM will give you an error on almost every kind of corruption, so use it to detect errors early.
Please also the previous post about LittleFM 0.4.The same basic precautions apply. Pressing erase flash in the Bleepbloop/Smartboy etc type flasher application will delete all songs stored in flash. Save project will overwrite whatever was in that flash slot before.
Have fun and be safe, and report any issue to me.
And a quick plug: If you have an older flash cart (for example belonging to an older LPT port flasher) then I would like to borrow the cartridge for a while for science, to make it work well with LittleFM and other software I have in the pipeline.
February 5th, 2013 at 10:38 am
[...] Gameboy project week 5: LittleFM 0.5 (finally) released [...]
March 19th, 2013 at 1:18 am
So glad this works with older versions of Java. I’m on a PPC mac so I’m stuck with Java 5
But this works very well. One thing you should probably mention about the patcher is that any LSDJ roms that are named anything other than “LSDJ.gb” will come up with an error. At least mine all did. I had to rename my roms then patch and name them back during the saving process.
March 19th, 2013 at 1:34 am
Hello. The program should ask for any missing files (littlefm.gb or LSDj) but the version linked here will fail if the ROM file is not situated in the same directory as the JAR file. A later version has a fix for this: here.
But I should probably organize the LittleFM downloads better so all the download links are at one single page, so you can always find the latest version.
March 19th, 2013 at 1:52 am
Oh I see. I did infact move it there at the same time I was renaming it. So that must have been the issue. Not the file name. I’m glad I found out about this project update when I did, cause I’m about to recieve my Drag’n'Drep cart and want to use this with my LSDj. So have you gotten any of the save song or new blank song stuff worked out in this version or is it just all these features mentioned above. (Which are a damn lot of great new features. I’m sure it takes a long time to code and troubleshoot.)
March 19th, 2013 at 1:57 am
Only the features mentioned above. The only change in the version linked above, apart from the path fix, is very crude multi ROM support, for EMS cartridges only.
March 19th, 2013 at 2:00 am
ok. well you’re doing great work so keep it up. Also that is a dead link in your previous comment.
March 19th, 2013 at 2:17 am
Those pesky chickens always manage to kill our green-caped hero. (Fixed!)