this was posted on another forum and then followed up and simpified by me...
Sounds like it won't work right? Well it does and it can be done easier....This uses the real bios and firmware files. It may work without them but I didn't test that. It's a messy fix for those who need to play the game now....Enjoy!I will write everything about my method here.
In emu folder I have two bioses(biosnds7.ROM-16kB & biosnds9.ROM- 4 kB) I don' t know what is firmware and I think it is not important but I changed name of file that no$gba "produced"(from NO$GBA.INP to firmware.bin) I know it is stupid but I'm writting everything as I said before
Now- run no$gba and choose enscrypted pokemon diamond game. Go to Options->emulation setup, choose 128K macronix in GBA cartridge backup media and flash 512 Kbytes in NDS cartridge backup media. Now make sure you have 16.78 realtime auto emulation speed checked, digital stereo in sound output mode and high 44hz sound sample rate.
It is important now to go to options and save options
Play game and save in game from game menu. Exit emulator. Run emulator and choose pokemon diamond game. Just after first letters in game shows- go to options->emulation options and choose in emulation speed, LCD refresh Unlimited MHZ disaster 10 %.
Now you can load your in game save.
1. Make a backup of your "firmware.bin" file or rename it for now (firmware2.bin for example)
2. Make a copy of "NO$GBA.INP" and rename it to "firmware.bin"
3. Start no$gba and change the startup setting to "Start Cartridge Directly" and the save type to "FLASH 256kb"
4. Click Options and choose "Save Options." Close the emulator.
5. Restart the emulator and open the game and saving should now work...
credit goes to Grzeslav from emuforums...