Post subject: emulators (goomba etc.) not saving? -solution inside
Posted: Sun Nov 05, 2006 10:20 pm
Joined: Sun Nov 05, 2006 10:14 pm Posts: 58
Edit by FAST6191, kuwanger kindly updated the most commonly used emulators to support the EZ4 properly are available in this thread: viewtopic.php?f=12&t=12660 (also stickied at in the EZ4 section). This thread will remain for the more obscure emulators that could get caught up in this and for those interested.
------------- Original post--------------------------- Hi, i'm new here, i've had a ezf2 with no problems but i recently got a 4 lite deluxe, and i seem to be having problems with the saving features of these emulators (goomba, goomba color, SMS, and nes) they all seem to be only saving the first 32kb instead of the whole 64kb. I already tried sending them through the newest client and just putting them on my sd card. and it still doesnt work, any suggestions would be appreciated.
that's not really the issue, i even tried splitting all my gameboy mono games into seperate files, but when i turn it off, the saves disappear because it seems in goomba, the emulator writes the data at the last 32kb rather than the first 32kb.
Joined: Sun Apr 30, 2006 5:39 am Posts: 1560 Location: Canada, eh?
Its a known problem. You can either use the .nds and prepend the version of the ndsloader.bin I posted a while back or you can look here (instead of running it through ezclient).
Joined: Sun Apr 30, 2006 5:39 am Posts: 1560 Location: Canada, eh?
My bad, but the same info still applies. You have to change the code in the GBA header just like ds.gba homebrew, and provide a properly named 64k save file.
Try this:
- grab this patcher I just "whipped" up : EZ4-64-1.zip - instead of running it through EZ client, drop it on the EXE from that zip
* use a tool like gbata to fix the header after you get the out file (don't think this is necessary in the current GBA kernel as it doesnt hard reset, though I'll look into fixing the complement automagically)
- rename the save and bin according to your preference
- place the save and bin on your SD and let me know if it works for you.
Thanks cory1492, it works great, it saves the full 64k, but i keep getting this mildly annoying message "Cheat error! continue=a return=b" i just simply hit a and it works. If you can remove it that'd be great, but otherwise, it works.
edit: i used your patcher and returned the first 3 bits to 00 00 00, and it stopped giving me the message, but i don't know if it'll cause any problems, so can you give it a test to see if it'll cause any problems? or find out what those 3 bits do. thanks.
Last edited by markedsword on Tue Nov 07, 2006 4:07 pm, edited 1 time in total.
Joined: Sun Apr 30, 2006 5:39 am Posts: 1560 Location: Canada, eh?
markedsword: I am assuming that because I grabbed the hex code from a 64K FLASH type GBA game that those first 3 are designed to give an address to jump to either save patch code or cheat code. Putting them to 00 will probably work fine, so long as it has the correct size
Quote:
The EZ patcher changes the "reserved area" of a ds.gba from (hex) 00 00 00 00 00 00 00 to 00 00 00 08 00 08 00 and uses a 32K file in the saver dir (and wont write any other size it would seem...) changing it to (based on sonic advance 2 flash save patched with EZ's patcher) C0 DF 0C 9C 01 10 00 allows a 64K file to be used.
8000h is the size of a 32K file, 10000h is the size of a 64K file - considering the endianess of the DS and the fact that it is on a 16 bit bus I would assume the second set of bytes designates the save size. If you like I will recompile the code to 00 the first three bytes. Still havent figured out how to get a proper checksum though (every tool I have tried so far gives me a different one and I have no idea which is correct, though I have code in place that should be making a correct sum).
Jonny9797: I dont have an EZ3, but I know at least with my EZ1 and EZ2 there is a way to change the save size after adding a ROM and before burning it. It should be set to 256Kbit after you add it and before you commit it to the flash (if there is a way to change it in the EZ3 client).
Cool, it'd be great if you can your code for the first 3 bytes, i coudn't find the copy of param.h you were using, so i couldnt do it myself.
I was just wondering what the other bytes outside the save size information do, if they do anything at all. I did a comparison of the sonic 2 hex where you made the change between 3 types of patches, (no patch, save patch, and save + reset patch) the only difference i saw was that in the save and save+reset, the first 3 bytes are different. So i guess that's what they do. Thanks for helping me out, along with alot of other people trying to get goomba and other homebrew to work.
Jonny9797: I dont have an EZ3, but I know at least with my EZ1 and EZ2 there is a way to change the save size after adding a ROM and before burning it. It should be set to 256Kbit after you add it and before you commit it to the flash (if there is a way to change it in the EZ3 client).
It lets me add a save patch, but none of the possible combinations will make a 64kbyte save. It always saves as 32kb and I lose my save.
Oh well, thanks anyway. If you don't have an EZ3 I will keep trying to figure it out myself.
Joined: Sun Apr 30, 2006 5:39 am Posts: 1560 Location: Canada, eh?
Jonny9797: good luck tracking down your problem. I know with the EZ4 patcher, it doesnt care what you set the save size to either.
markedsword: sorry it took so long, lost of stuff has been happening this last week. Most of it lousy param.h is from msys/mingw32
Code:
/* * param.h * * This file is part of the Mingw32 package. * * Contributors: * Created by Earnie Boyd <earnie@users.sf.net> * * THIS SOFTWARE IS NOT COPYRIGHTED * * This source code is offered for use in the public domain. You may * use, modify or distribute it freely. * * This code is distributed in the hope that it will be useful but * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY * DISCLAIMED. This includes but is not limited to warranties of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * * $Revision: 1.3 $ * $Author: earnie $ * $Date: 2003/05/03 13:48:47 $ * */
#ifndef _SYS_PARAM_H #define _SYS_PARAM_H
#include <sys/types.h> #include <limits.h>
#ifndef __STRICT_ANSI__ /* These are useful for cross-compiling */ #define BIG_ENDIAN 4321 #define LITTLE_ENDIAN 1234 #define BYTE_ORDER LITTLE_ENDIAN
#define MAXPATHLEN PATH_MAX
#endif
#endif
Doesn't change the first 3 bytes, and tries to correct the checksum. Everything I know says this should be generating a correct checksum, but as I said before I cant find any tool that agrees with me. EZ4-64-2.zip
Jonny9797, from what cory1492 has posted it seems the EZ4 patcher have overwritten a section of the so called reserved area (an area of the header typically 00 filled) and it appears to act as some sort of flag or something to tell the EZ4 to grab the SRAM contents and write them.
If you could write some roms (preferably large save size ones) to your EZ3 and then read them back off it may be possible to figure out a way for the EZ3 to do it as well, I would try but I only have an EZ4l and EZ2 with me right now (the rest are with friends and family all over the country and are likely to be for the next few months).
Users browsing this forum: Bing [Bot] and 2 guests
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum