Try as I might, I cannot get Ys 3 to save/load properly on my Powerpak. I have tried two SNESs, two CF cards and the US and Japanese versions of the game.
The game will start up fine and work just fine until you try to load a game. If you never save, there is apparently no issue, but if you load a game or die and the game reloads, all you get is a blank or garbled screen with music (wrong or random) playing. Nothing further can be done other than resetting the machine. Also, the save is designated by the area, but using the save feature will not change the area name.
I haven't heard of this issue. I'll try it on my PowerPAK today and let you know if I have the same problem.
It's most likely a SRAM mapping issue with the Powerpak. Early Mode 20 pcbs mapped SRAM from 0000-FFFF of bank 70-77 while MAD-1 pcbs map SRAM from 0000-7FFF. Y's 3 is the only game I can remember that writes in the upper region. Hacking the ROM is the only way you'll get it to work
I had the same issue. If it's SRAM related, the game only has 8kb of it and depending how it's accessed I suppose it wouldn't be that hard to modify if you had a proper debugger.
Overload wrote:
It's most likely a SRAM mapping issue with the Powerpak. Early Mode 20 pcbs mapped SRAM from 0000-FFFF of bank 70-77 while MAD-1 pcbs map SRAM from 0000-7FFF. Y's 3 is the only game I can remember that writes in the upper region. Hacking the ROM is the only way you'll get it to work
Wouldn't the Powerpak have the capabilities to remap the SRAM, needing only an adjustment to the appropriate file in the POWERPAK folder? There are lots of games that use the pre-MAD-1 method for SRAM mapping.
If there were other known games that had this problem maybe it'd be more likely a proper mapping file for the PowerPAK would be released. But this is the only game I know of that has this issue.
Secret of Evermore has a similar issue, though it might not be exactly the same. It will load emulator/ripped saves, but it will not save correctly itself - all attempts to save result in file corruption.
Ah yes I recall someone bringing up Secret of Evermore. It must have to do with how PowerPAK maps SRAM.
Eyedunno wrote:
Secret of Evermore has a similar issue, though it might not be exactly the same. It will load emulator/ripped saves, but it will not save correctly itself - all attempts to save result in file corruption.
I did not try using a save file from an emulator, I may do that.
While Ys3 is a SlowROM/LoROM game using a 74LS139 decoder, Secret of Evermore is a FastROM/HiROM game using a MAD-1 decoder.
MottZilla wrote:
Ah yes I recall someone bringing up Secret of Evermore. It must have to do with how PowerPAK maps SRAM.
I remember an issue with Secret of Evermore. I believe SRAM is corrupted if mapped from bank 0 instead of 20-3F.
I remember people saying all saving on hi-rom is broken and has been.
Has anyone tried older versions of the PowerPak mappers then? I can't vouch for HiROM saving since the only game I've played recently that saves is LoROM. Except for my BS Zelda hack that uses my own saving code.
3gengames wrote:
I remember people saying all saving on hi-rom is broken and has been.
That would include Chrono Trigger, Final Fantasy III, all three Donkey Kong Countrys, Super Mario Kart, Suzuka 8 Hours, Breath of Fire II, Brandish, Civilization, Earthbound, Secret of Mana and lots of other games.
Ah well I DID play through Secret of Mana not very long ago and had no problems saving. And I'm pretty certain that was with the same PowerPAK mapper files I have on it now. I think this issue is isolated to a few games that expect the memory to be accessible (or not accessible) at some non-standard range that most games don't use.
Update:
I just ran Ys-3 in a debugger and it accessed SRAM through bank 70 which I believe is standard but at $8000 within the bank which I believe is not standard. I believe generally it is at $6000 to $7FFF which may be the cause of the problems. The Powerpak is responding with open bus or ROM I guess.
If you found every instance of SRAM access and change it you could probably fix it. The only problem is atleast the debugger I have can't do range trapping. =(
One example:
Code:
$17/B46B BF 20 80 70 LDA $708020,x($70:8021)
$17/B484 9F 00 80 70 STA $708000,x($70:8000)