OK, I was bored tonight (yes I'm a nerd with nothing better to do on a Friday night) so I sucked it up and used my slow VirtualBox (a pretty boss, free and cross-platform virtual machine) to play around with patching GBA roms. Here's my guide for using the EZ-Flash 3-in-1 (3in1) with Zelda and Pokemon:
Zelda
Since Zelda was the one game that I knew that used a save file bigger than the 3in1 could support (well, technically both Minish Cap and Link to the Past both do), I decided to start with them.
BEFORE PATCHING
Then you try to load the clean dumped rom, you get a message about the file being corrupt. When you create your new save file, it again warns that the file is corrupt and won't let you continue. That as far as you can get. That's because the 3in1 doesn't support the save file size that Zelda uses.
PATCHING
I read somewhere that the 3in1 is pretty much the same as the EZ4, it's just stripped down and has the added memory expansion and vibration modes. I also read that you can use the EZ4 Client to patch the games and make the saves work, so that's what I tried. For my testing, I used version 1.03 from the
downloads. Load the GBA rom by clicking open on the bottom left, set the save to EEPROM / 64K bits (these were the default values) and then click "Send" to the right of the open button. This will patch the rom and save it to the location you are looking at on the right. If it works, it will show a dialog that says "Done". As an added bonus, it will trip the rom so it takes up less space on your memory card.
UPDATE: It's possible that I screwed something up, but in my testing, it makes no difference what "Save Size" you use. The files come out identical to one another (md5 and crc strings are the same). So..... I have no idea what that value does. I guess you can just leave it to whatever the default is once you select the rom.
AFTER PATCHING
Copy the GBA rom to the memory card and put the card in your flash cart. Put it back in the DS, put the 3in1 in the slot-2 spot (if you took it out for some reason) and boot up the DS. Now load the patched rom (I did it in NOR and PSRAM, both work). You MIGHT get the warning about the files being corrupt when you see the first menu (I did once, but never again in either version); ignore the warnings and set up your new file. This time, it will work and you can play the game. Simply magical!
NOTE: Like any game, if you loaded it from PSRAM, make sure you save the SRAM after rebooting or you will lose your save. This is the same with any slot-2 cart and you should already know about this step anyway.
Pokemon
Pokemon uses the real-time clock (RTC) which the 3in1 does not have. In fact, apparently very few slot-2 cart have one (or so I read), but it's not really an issue since very few games use it (only Pokemon as far as I know). For my testing, I used Pokemon Ruby. When I loaded Fire Red and Leaf Green, it told me I didn't need the patch so it wouldn't let me apply it.
BEFORE PATCHING
When you start the game, you get a warning reading "The internal battery has run dry. The game can be player. However, clock-based events will no longer occur." The reason you see this is because there is no RTC on the cart, so it assumed the battery for it died; there's nothing wrong with you DS or either of your flash carts.
PATCHING
For the patching, I used GBA Tool Advance v0.7 from the
downloads. Load the rom into the program by clicking on the "..." button in the upper right. Once it's loaded, you'll see some information about the game but we don't care too much about all that right now. Click on the tab that says "Clock Fix" and apply the patch to the rom. You will get a new file; the filename is the same except "output-" has been added to the beginning of it. This is the patched rom that you want to put on the memory card. You will also notice that the rom is smaller now; that's because the program trimmed it for you. Again, a nice touch.
AFTER PATCHING
Boot up the game and you'll see that the warning is now gone! There's 1 drawback to all of this though; timed events still don't actually occur. What this patch does is trick the game into thinking the clock is working when it really isn't. Since there really is no RTC on the card, the clock never changes, instead it's assigned a static value when you start the game (the current time, or so I've read).
Apparently, if you load the game later, the current time will again be used, so the game recognizes that the clock has advanced and will trigger all the appropriate timed events. However, I haven't had time to test this, and not being the biggest Pokemon fan (except Diamond/Pearl, they are super cool), I probably won't.
NOTE: Interestingly enough, this game also uses large save files, the same as Zelda. So, before you can save it, you also need to patch it with the EZ4 Client software as outlined above. Because this uses such a large save file, the game will no longer load properly from PSRAM, but will work just fine from NOR.
Thoughts
For my money, I couldn't be happier with the EZ-Flash 3-in-1 Expansion! Paired with a good slot-1 card (I use the M3 DS Simply, but the Revolution 4 DS, CycloDS Evolution or any other DLDI-supported card will work), it adds the only part you were missing; GBA playback. And it does for about $20 to boot! And, unlike other slot-2 cards, it has a memory expansion and vibration function. Flashing roms to NOR memory will make the card appear like a normal GBA game (and it would even work in a GBA if it would fit in the slot) and will boot without ANY patching or workaround; I don't think any other slot-2 card offers that. Because of this, you can pair it with DS games that can read GBA games (Castlevania and Pokemon are all I know offhand; note that I have tested neither, I'm going from my best guess here).
The only drawback is that you have to put the GBA roms on your slot-1 device which can take away from the number of DS games you can fit on it. But, unless you plan to play a LOT of GBA games, it's not worth spending the extra $50 for something like an M3 Perfect/Prefect Lite; spend the money on a larger memory card for your slot-1 device (assuming you have a unit that uses memory cards). That's my take on it anyway.
I hope this was helpful to people. I spent a fair amount of time finding all this info out and testing it to write this up. PM me with questions or corrections. If you have something to add, please do.