Strange bug in EZ Flash IV?

Alex S

Creator Of WWHDM, And Metroid Fusion XER0X!
OP
Member
Joined
May 2, 2016
Messages
695
Trophies
0
Location
Hell
Website
www.erm.wut
XP
1,002
Country
United States
How do i check the firmware? I ordered it but got it today :P

--------------------- MERGED ---------------------------

I think its version 2.030

--------------------- MERGED ---------------------------

Do i have to patch the rom or?
 

zfreeman

Well-Known Member
Member
Joined
Mar 9, 2013
Messages
1,556
Trophies
2
Location
USA
XP
3,985
Country
United States
As of v2.00, you do not have to manually patch ROMs.

https://www.reddit.com/r/Gameboy/co...v_and_i_realise_im_a/?st=j83uz7fu&sh=20706bd3

"...a lot of games are having problems with the newer firmwares. Since 2.02, Minish Cap and a lot of other games don't launch because of the new softreset and sleep patches. Use 2.01 and you'll be good..."

"It's definitely a firmware issue. Minish Cap runs fine on 2.010, but 2.020 and 2.030 cause it to crash a lot. You can get past the crash on the title screen if you have a save file already, but it crashes anyway if you hit a shoulder button or start. Use 2.010 until EZ Flash fixes these issues."

v2.01 (ezfla_up.bin): https://gbatemp.net/attachments/ez-flat-iv_2-01-zip.90414/
 
Last edited by zfreeman,
D

Deleted-236924

Guest
You can use 2.03, you'll just have to add the game code to keyset.cfg so it disables the patches for that game only.

http://gbatemp.net/threads/ez4-kernel-2-03-released.477687/#post-7453011

If you need the EZ4 Reset you might still be able to pre-patch your rom with EZ4Client. idk if that will work because I've never seen a good reason to update past 1.72

2.XX firmware uses kuwanger's reset patches which work differently but it also breaks Minish Cap. EZ4Client reset patch works fine.
 

Alex S

Creator Of WWHDM, And Metroid Fusion XER0X!
OP
Member
Joined
May 2, 2016
Messages
695
Trophies
0
Location
Hell
Website
www.erm.wut
XP
1,002
Country
United States
Also for those who want to know, that newest firmware screwed up a lot more than minish cap. Absolutely no issues on 2.010 :3
 
D

Deleted-236924

Guest
I'm hoping they're making note of all the games that get broken from it and implement a workaround in their next release that patches those game using EZ4 Client's reset patch instead of kuwanger's, so the cart would automatically select whichever patch is best suited for the game being played and ensure everything works as expected.

There are still some games for which both EZ4 Client and kuwanger's patch don't work, but it's not like you were gonna get reset patch working on those games with pre-2.00 firmware anyway. Ideally I'd hope they also investigate those so that the reset patch works for at least 99.9% of games, with the remaining 0.1% being more obscure games that won't affect many people.

(This is important imo, because once the save battery in the cart runs dry, reset patch becomes the only reliable way to keep your saves because turning your GBA off and back on will very easily lose the save in SRAM before copying it over to SD. :/
They should have at least taken a page out of Everdrive's book and had a battery socket on the main board rather than soldered tabs, to make it really easy to replace the battery... Imagine if CMOS battery on your computer's motherboard was soldered in place. :P)
 

Alex S

Creator Of WWHDM, And Metroid Fusion XER0X!
OP
Member
Joined
May 2, 2016
Messages
695
Trophies
0
Location
Hell
Website
www.erm.wut
XP
1,002
Country
United States
I'm hoping they're making note of all the games that get broken from it and implement a workaround in their next release that patches those game using EZ4 Client's reset patch instead of kuwanger's, so the cart would automatically select whichever patch is best suited for the game being played and ensure everything works as expected.

There are still some games for which both EZ4 Client and kuwanger's patch don't work, but it's not like you were gonna get reset patch working on those games with pre-2.00 firmware anyway. Ideally I'd hope they also investigate those so that the reset patch works for at least 99.9% of games, with the remaining 0.1% being more obscure games that won't affect many people.

(This is important imo, because once the save battery in the cart runs dry, reset patch becomes the only reliable way to keep your saves because turning your GBA off and back on will very easily lose the save in SRAM before copying it over to SD. :/
They should have at least taken a page out of Everdrive's book and had a battery socket on the main board rather than soldered tabs, to make it really easy to replace the battery... Imagine if CMOS battery on your computer's motherboard was soldered in place. :P)

well you can always run it on the gamecube itself with homebrews like like gbi or gameboy player disc and the console never loses power with cart reset
:3 this works around the issue easily.
 
D

Deleted-236924

Guest
Yeah, that would be a good workaround for those who have a Gamecube with GB Player, who just want to play the games and don't care about portability.

Still, I wish there was an easier way for those like me who want to play on an actual GBA. I've been able to get reset patch working on all the games I was interested in at least, so it's not that bad.
 

kuwanger

Well-Known Member
Member
Joined
Jul 26, 2006
Messages
1,510
Trophies
0
XP
1,783
Country
United States
Yea, when I altered Dwedit's sleephack to support ez4 reset, I did it precisely to patch the few games that weren't patched properly/at all with EZ4Client. And even, there's some games that don't work well/at all with my hack because hooking interrupts can do bad things in games. In any case, it seems sort of ironic that it's now the inverse situation. Personally? I'm still on a 1.x firmware because it's not worth it to me to go back through and figure out what needs patched what way to work around the handful of games with issues. *shrug* I do appreciate the EZ4 Team's efforts, though.
 
  • Like
Reactions: zfreeman
D

Deleted-236924

Guest
I'm hoping they can have both their original reset patch from the client + yours in the next release, and add an extra toggle in keyset.cfg to pick between the two in case a game has issues.

Something like, BZME = OLD to make that game use EZ4 Client's reset patch, BZME = NEW to make the game use yours, and BZME = OFF to disable it completely.

Then no one would have to test every game, user would just have to try it and if it breaks, toggle a setting for that game.
Still there may still some games for which both reset patches don't quite work; someone may have to come up with a different implementation just for these games so we can get closer to 100% compatibility.
 

kuwanger

Well-Known Member
Member
Joined
Jul 26, 2006
Messages
1,510
Trophies
0
XP
1,783
Country
United States
I'd prefer it if we could figure out the problem games and patch them using the old method. :) Honestly, their method is actually better in a lot of ways: remap all the key input routines to jump to their subroutine to check for soft reset and otherwise return with the key pressed. Sadly to support sleep + reset, I actually made the code do an interrupt if any matching key is pressed which means more spurious interrupts (although less code should execute than their method..but at more spurious times). Makes me wonder if I made a reset-only version if it'd be a lot better compatibility. *shrug*

The real final thing would be to just figure what works with what we have and use that or make something that does work. That's the point where we're at. Out of curiosity, what do the patch files look like, anyways? I'd imagine it'd be possible to make a PC-based patch generator and just zip the whole archive up of the OLD method and then use a database (with a lot of testing) to use their method, my method, or work out a custom patch. Ie it's 99% the leg work, and sadly no one (not me) is willing to put the effort into it. :/ That's the part the old EZ4 team did and really well with their old database. Too bad it wasn't perfect.
 
D

Deleted-236924

Guest
Well I'd be interested in a reset-only version, if only for consistency's sake, since half my games are patched with EZ4 Client and the other half patched with your code. I don't care about nor need sleep hack and it bugs me that half my games have sleep hack while the other half doesn't, lol.
Though to be fair, on its own that isn't really a good reason to start working on this, and I'm just rambling.

I guess there's no way to tell if a reset-only patch would improve compatibility until it was made and tested. How much work/effort would it be to make that, and how willing would you be to do it?
I'd help, but I know nothing (though I guess maybe I could learn, heh.)

I don't know about the patch files, and I'm not sure if I can even try 2.03 to get patch files because I read that firmwares above 1.72 may not be able to read miniSDs correctly. If that's the case then I'd be SoL if I updated.
Perhaps someone who has an EZ4 on 2.02+ can upload some of the patch files (if that's something you're interested in pursuing, it would probably be better to make a new thread just for this research, because no-one's going to find this in this thread lol.)

I don't think taking the time to test every GBA release to build a database would be worth the time (you're talking about building a database on which reset patch works/doesn't work for which games right?)
Why take the time to test all of 2.8k GBA roms twice just so the kernel can automate picking the right reset patches for the chosen game, when the user could just flip a switch on their end for the same result, but with much less time investment required?

I admit that having the user manually edit a config file on their card may not be the best solution (not as user-friendly, and many people might not really understand what to type into the cfg file or how.)
EZ-Flash team mentioned they wanted to improve the kernel UI. They could have an Options button on the main menu for setting reset combo, and a contextual menu on games that would let you set options on a per-game basis (enable/disable reset patch, select which reset patch to use, stuff like that.)

At that point we'd just need to wait until people complain about problem games that can't have reset patches without breaking. A list can be compiled over time from user reports and perhaps a new patch can be designed in the future just for those games. But maybe you're more of a perfectionist than I am and you'd rather have it all sorted sooner than later in which case I guess having the entire library manually tested would be the only option.
 

kuwanger

Well-Known Member
Member
Joined
Jul 26, 2006
Messages
1,510
Trophies
0
XP
1,783
Country
United States
Well I'd be interested in a reset-only version, if only for consistency's sake, since half my games are patched with EZ4 Client and the other half patched with your code. I don't care about nor need sleep hack and it bugs me that half my games have sleep hack while the other half doesn't, lol.
Though to be fair, on its own that isn't really a good reason to start working on this, and I'm just rambling.

The easy part is the code. Basically get Dwedit's original sleep hack and replace the "sleep now" with my "reset code". The hard part is remembering how to make the patch file (I think it uses arm-none-eabi-gcc and arm-none-eabi-objdump, but it's been a while) and generally the testing of it.

I guess there's no way to tell if a reset-only patch would improve compatibility until it was made and tested. How much work/effort would it be to make that, and how willing would you be to do it? I'd help, but I know nothing (though I guess maybe I could learn, heh.)

Some effort. I'd imagine the EZ4 Team is probably in a better position to make the changes just because they've messed with the code in a while and so less likely to hiccup on obvious stuff I'm probably forgetting from the comment above.

I don't know about the patch files, and I'm not sure if I can even try 2.03 to get patch files because I read that firmwares above 1.72 may not be able to read miniSDs correctly. If that's the case then I'd be SoL if I updated.
Perhaps someone who has an EZ4 on 2.02+ can upload some of the patch files (if that's something you're interested in pursuing, it would probably be better to make a new thread just for this research, because no-one's going to find this in this thread lol.)

Well, the general issue is laziness. I got far enough in patching and testing problem games that I really don't want to have to go through it all again.

I don't think taking the time to test every GBA release to build a database would be worth the time (you're talking about building a database on which reset patch works/doesn't work for which games right?)
Why take the time to test all of 2.8k GBA roms twice just so the kernel can automate picking the right reset patches for the chosen game, when the user could just flip a switch on their end for the same result, but with much less time investment required?

Yes, I was speaking of making a new database, mostly because that's how the original reset database was made (in part). No doubt they had some tool that disassembled code and quickly could locate patching games, but I've seen some games that require special patching so clearly it's more than that.

I admit that having the user manually edit a config file on their card may not be the best solution (not as user-friendly, and many people might not really understand what to type into the cfg file or how.)
EZ-Flash team mentioned they wanted to improve the kernel UI. They could have an Options button on the main menu for setting reset combo, and a contextual menu on games that would let you set options on a per-game basis (enable/disable reset patch, select which reset patch to use, stuff like that.)

Yea, that'd probably be a lot easier at least on the give-user-choice and no-work-for-me front. :)

At that point we'd just need to wait until people complain about problem games that can't have reset patches without breaking. A list can be compiled over time from user reports and perhaps a new patch can be designed in the future just for those games. But maybe you're more of a perfectionist than I am and you'd rather have it all sorted sooner than later in which case I guess having the entire library manually tested would be the only option.

The problem is the GBA scene, while alive, didn't make such a list. So going along now to just hope enough people mention problem games is really wishful thinking. So, yea, I'm something of a perfectionist--more of a completionist--who'd like to see the problems ironed out. Oh, and Pogoshell plugin support. That's the real thing I've wanted for the EZ4 for a long time. :)
 
D

Deleted-236924

Guest
Yeah, that's completely fair. They've been open to suggestions lately with 2.XX, so maybe if we get enough people to point this out to them, they may be willing to work on removing all the related sleephack code and interrupts, leaving only reset code. Hope at least they add default EZ4 Client reset patch as an option at some point.

Still, with the improved reset+sleep hack compatibility in 2.03, hopefully they can take this one step further and continually deliver fixes in future updates, and who knows maybe they don't even need to remove sleephack code to fix most popular games without having to use default EZ4 reset (Kirby, Zelda come to mind.)

The problem is the GBA scene, while alive, didn't make such a list. So going along now to just hope enough people mention problem games is really wishful thinking. So, yea, I'm something of a perfectionist--more of a completionist--who'd like to see the problems ironed out. Oh, and Pogoshell plugin support. That's the real thing I've wanted for the EZ4 for a long time. :)

imo if no one reports problems with certain games then it's safe to assume there are no problems.

There's a real possibility that there are problems and no one is reporting them, but I'd like to put some responsibility onto the user to report problems when they encounter them. If an user has a problem with a game but they don't bother reporting it, then they don't really matter in the grand scheme of things. I see it like people who don't vote; they chose to have no voice in the matter.

In a perfect world we could just thoroughly research everything and ensure it's all 100% functional before it gets delivered to the end user, and it would be great! but I imagine the amount of effort required to reach 100% compatibility would increase exponentially the closer we get to said 100% and it's probably more time-efficient to get, say, 90-95% compatibility, and then rely on user reports to single out the other problem games and fix them one by one (especially if certain problem games are games that only a handful of users would ever realistically want to play.)

I imagine we'll probably just have to agree to disagree on that, though.

As far as pogoshell goes I'm honestly not sure what it does, how it works, and I've never messed with it, so I can't comment on that. :P
 

kuwanger

Well-Known Member
Member
Joined
Jul 26, 2006
Messages
1,510
Trophies
0
XP
1,783
Country
United States
There's a real possibility that there are problems and no one is reporting them, but I'd like to put some responsibility onto the user to report problems when they encounter them. If an user has a problem with a game but they don't bother reporting it, then they don't really matter in the grand scheme of things. I see it like people who don't vote; they chose to have no voice in the matter.

Do I point out the reason I added reset to sleephack is precisely because there were problem games, there was no clear list (so it wasn't merely a matter of hand patching a couple dozen games), and so it became clear having a generic patch thingy was the way to go? Btw, it's not really that people didn't mention problem games. It's that you're still back to the issue of looking through, say, release lists and trying to spot all the problem reports. Except there's no "one" release list or only one region might have comments or some comments might be inaccurate/outdated.

Meanwhile, by your logic, I wouldn't get a vote/voice because I didn't bother to complain before. I just figured out which ones weren't working for me and used sleephack+reset on them. :)

As far as pogoshell goes I'm honestly not sure what it does, how it works, and I've never messed with it, so I can't comment on that. :P

Pogoshell was a GUI (not unlike the EZ4's menu) to run GBA games on older NAND flash carts while managing the very limited (usually only around 1MB) SRAM using compression. The more neat thing, IMO, was a plugin system so you could associate, say, .nes files and load PocketNES hence avoid a lot of needless duplicate. Currently, you have to either build standalone images (if the program supported it) or Plugin2GBA (aka Pogoshell2GBA) to wrap the plugin in a mini fake Pogoshell system.

I'd imagine most the other carts (SuperCard SD and the like) do something similar as it's the easiest approach, but I've no idea if that's the actual case. In any case, the EZ4 Team is in the best position to make the changes.
 
D

Deleted-236924

Guest
Meanwhile, by your logic, I wouldn't get a vote/voice because I didn't bother to complain before. I just figured out which ones weren't working for me and used sleephack+reset on them. :)

? That's not what I said at all.

You noticed some games didn't work with default EZ4 patch, so instead of complaining to EZ-Flash team trying to get them to release an official fix, you went and made your own patches that worked with those problem games and you released the patch to the public. That is your "voice." You gave your vote by fixing it yourself, because you could.

Of course if a game doesn't work with EZ4 Client reset patch, but works with your patch, then no one needs to complain because there is no problem, everything is now working. Same if a game breaks with your reset patch, but works fine with EZ4 Client's. The user can just use default EZ4 patches and there is no problem (which is currently not an option for those on 2.XX kernels, but this will be easily fixed in a future kernel update if EZ-Flash team just adds per-game options to choose which reset patches to use.)

I'm talking about games that don't work at all with either EZ4 Client's patch nor yours. Those are the ones that people need to report and complain about, and if you just silently make a better patch on your own time to fix all those issues without the flashcart team's help, then you don't need to complain to the flashcart team.

If someone's been frustrated for months that a certain game didn't work, but they never bothered talking about it, they don't really "deserve" an immediate fix, because you can't just expect the company making your product to magically know about every possible problem. You need to speak up and tell them there is a problem. If their devs end up noticing that problem on their own and fixing it, great, but you couldn't really have expected it.

I'm pretty sure EZ-Flash team is already working on fixing problem games on their own; 2.03 fixed 24 games, and I'm pretty sure most of those games they didn't need user reports to fix. People reporting more problem games only helps them improve compatibility in future patches because it points out problem games so that they don't have to find them themselves.

After that, if the flashcart team ignores the reports and/or takes forever to fix the problem, that's another issue altogether, but if as a customer you didn't bother reporting any of your issues (or fixing them on your own) then you made the choice to go with the flow.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    Veho @ Veho: The cybertruck is a death trap.