EDIT: Latest downloads here: http://kkfos.aspekt.fi/projects/nes/save-state-mappers/
Old info for version 1.0:
So, here's a little something I've been working on the last couple of days: http://removed
These mappers allow players to save/load the game state in real time using Select+A/Select+B buttons. So far I've implemented NROM and UNROM (Castlevania, Mega Man, Duck Tales and so on) support.
The save state can also be saved to SAV files on the CF card. Note that the SAV file has to be 16KB for this to work. (Actually, for NROM games it should probably work with just 8KB, but I didn't test it.)
Currently saved:
- CPU 2KB memory + registers
- PPU palette + nametables + CHR-RAM + $2000 + $2001
- mapper state
"TODO":
- more mappers
- more complete save state (include APU etc)
- configurable buttons
- more save state slots (not really that useful because state can be saved to CF)
- hex editor
- the possibilities are endless
EDIT 2011-01-30: removed old link
I haven't tried yet (haven't had time for playing), but this is definitely a great idea! I didn't even know the PowerPak could do this.
I haven't had time to try it yet either but it sounds awesome if it's anything like the Game Doctor SF's instant game save feature.
great feature! Thanks a lot!
i wish it was for all the mappers
deksar wrote:
great feature! Thanks a lot!
i wish it was for all the mappers
More mappers will come later. The problem is I can't simply add this functionality in to the existing mappers, I have to implement everything from scratch. I will probably do AxROM and CNROM next, then go for MMC1.
Just tried it, works great thanks for the 16kb sav file. great work.
I've now implemented AxROM, CNROM and MMC1, just need to polish them a bit before releasing. MMC3 is also partially working but the scanline counter is giving me some trouble.
Hello,
I've tried the save states and it seems to work. However when I do a reset on the game instead of going back to start screen, it goes back to PowerPak main menu. Can you check/fix this?
thewizdawg wrote:
Hello,
I've tried the save states and it seems to work. However when I do a reset on the game instead of going back to start screen, it goes back to PowerPak main menu. Can you check/fix this?
Yeah I'm aware of this. It's because the example mapper schematics don't have that functionality in them. But I'll look into it at some point.
This sounds great! Gonna give it a try soon!
Hey, I just tried out these mappers on my Famicom (Titler) and although the game saving/restarting works great, the palettes get all screwed up on restarting. Also, 3rd-party controllers are unusable. Has anyone else had palette glitching with these mappers?
ccovell wrote:
Hey, I just tried out these mappers on my Famicom (Titler) and although the game saving/restarting works great, the palettes get all screwed up on restarting. Also, 3rd-party controllers are unusable. Has anyone else had palette glitching with these mappers?
Hmm that's strange, I've never had any problems with palette. I've seen some other problems, like the status bar doesn't work right in Castlevania for a brief moment after loading and sometimes CHR-RAM wouldn't load correctly in Darkwing Duck. Also in Dragon's Lair sprites would get corrupted. I haven't looked further in to these problems yet.
And yeah, I forgot to OR the Famicom external controller bit in, thanks for reminding me.
Another possible problem is with games that use DPCM as it doesn't correctly handle multiple reads per frame so if a bit gets corrupted it might save/load automatically in some rare cases.
...
In other news I've been also trying to add support for TURBOing the buttons (disabling/enabling through a menu). In concept it seems to be working although it's complicated by some games reading the controller multiple times per frame.
Still haven't been able to figure out what's the best way to implement the MMC3 scanline counter because of my limited Verilog skills. If anybody has any tips I'd appreciate it.
I'm talking hardware side here, the "abstract" functioning is well explained in the wiki.
thefox wrote:
In other news I've been also trying to add support for TURBOing the buttons (disabling/enabling through a menu). In concept it seems to be working although it's complicated by some games reading the controller multiple times per frame.
You're overpowering the input buffers? To me that doesn't sound like a good idea.
kyuusaku wrote:
thefox wrote:
In other news I've been also trying to add support for TURBOing the buttons (disabling/enabling through a menu). In concept it seems to be working although it's complicated by some games reading the controller multiple times per frame.
You're overpowering the input buffers? To me that doesn't sound like a good idea.
No. I do it like this (simplified):
- watch $4016 strobes and $4016/$4017 reads to get the pad state
- I (attempt to) detect when CPU is executing instructions like LDA $4016 and patch the hibyte on every 2nd time redirecting it to a FPGA register I have set up, like $4816 (this will only work when game is executing code in the ROM since I can't patch RAM code)
- the FPGA reg returns the pad state that was read the previous time with some of the buttons forced to 0, so when player holds a a button down on every 2nd frame game will read 1 and every 2nd frame 0
Of course this solution is not completely transparent as it will halve the times the controller is actually read (from 60Hz to 30Hz on most if not all games), but I think it should be usable.
I haven't gotten to try this yet, but it sounds awesome and thanks very much in advance!
Just a thought - NTRQ requires button commands that involve holding down select, and it'd sure be a pain to have to swap the save state mapper on and off the CF card each time you wanted to play a game or use NTRQ. There are also some games with soundtests that require holding down select. Possibly some games that require a select + a /b command for gameplay as well.
Would it make more sense to move such a save / load command over to the 2nd controller port to reduce the likelihood of such an issue?
bucky o'hare wrote:
I haven't gotten to try this yet, but it sounds awesome and thanks very much in advance!
Just a thought - NTRQ requires button commands that involve holding down select, and it'd sure be a pain to have to swap the save state mapper on and off the CF card each time you wanted to play a game or use NTRQ. There are also some games with soundtests that require holding down select. Possibly some games that require a select + a /b command for gameplay as well.
Would it make more sense to move such a save / load command over to the 2nd controller port to reduce the likelihood of such an issue?
Yeah I've been thinking about this. I might make the keycombo configurable.
Can't really move it to 2nd controller though because not all games read the 2nd controller and it's required for this method to work.
I've been pretty busy lately with other stuff but I'll try to release the rest of the mappers (AxROM, MMC1, etc) ASAP. Thanks to loopy+bunnyboy I should be able to add MMC3 support too.
Ah, gotcha! Well for the time being it sounds like you've picked the best keycombo possible.
edit:
Would it be possible to make it so that maybe it works from both controller ports? That way if the game doesn't read the 2nd controller, you can still just use the first, but if it can, have it work on the 2nd as well as a back up / just-in-case sort of thing...
bucky o'hare wrote:
Ah, gotcha! Well for the time being it sounds like you've picked the best keycombo possible.
edit:
Would it be possible to make it so that maybe it works from both controller ports? That way if the game doesn't read the 2nd controller, you can still just use the first, but if it can, have it work on the 2nd as well as a back up / just-in-case sort of thing...
Yeah that would work. And it'd also allow player 2 to save in multi player games. But as said I'll probably make this stuff configurable.
thefox wrote:
ccovell wrote:
Hey, I just tried out these mappers on my Famicom (Titler) and although the game saving/restarting works great, the palettes get all screwed up on restarting. Also, 3rd-party controllers are unusable. Has anyone else had palette glitching with these mappers?
Hmm that's strange, I've never had any problems with palette. I've seen some other problems, like the status bar doesn't work right in Castlevania for a brief moment after loading and sometimes CHR-RAM wouldn't load correctly in Darkwing Duck. Also in Dragon's Lair sprites would get corrupted. I haven't looked further in to these problems yet.
Hmm could it be that reading the palette doesn't work at all in Famicoms? I think blargg said somewhere that OAM reading through $2003/$2004 doesn't work so maybe it's the same for palette. If this is the case I would need to catch all $2006/$2007 writes to keep track of palette state.
Still haven't found the time to put together a release of the other mappers... sorry everybody. My PowerPak is currently not working and I need to fix it before I can do anything about this.
I finally found the willpower to do something about this again. So the following mappers (seemingly) work now: NROM, CNROM, UxROM, AxROM, MMC1, MMC3. I'll put together a beta release soon.
MMC1 and MMC3 are still missing some features, like WRAM protection, but it's not a big deal for most games. I'll also move the save state data to the upper 16K of the 32K total so games can use the lower bank without interference.
Hi, has anyone tried using this new save states feature on an RGB modded NES using this NES Powerpak (I assume that we are talking about the NES version Powerpak here) ?
An RGB modded NES uses the RP2C03B PPU which is in a socket in the PCB of the Playchoice 10 arcade board from Nintendo. Or an RC2C03x from Vs. Tennis or Vs. Duck Hunt chip set.
The Famicom titler uses the RC2C05-99 PPU.
The NTSC NES uses RP2C02x, the PAL NES uses the RP2C07x. These two are composite only PPU's.
The RGB palette is different from the composite palette, which may explain the palette corruption?
Appologies if I can't spell palet...
I have the PC10 PPU and the USA NES is in the mail (I am in England) so I will be doing the conversion shortly as quite a few others have done ;-
http://nfggames.com/forum2/index.php?topic=1592.0
Cheers,
Alistair G.
Live_Steam_Mad wrote:
The RGB palette is different from the composite palette, which may explain the palette corruption?
Nope, that doesn't explain it. The palette is read from PPU just like they game wrote it there. So it doesn't matter what order the palette is in. And as I understand it, the differences between the normal and RGB palette are pretty minor.
Has TSROM been implemented yet? As then Super Mario Bros 2 and Super Mario Bros 3 would work. So far I assume that Super Mario Bros 1 works since you have implemented NROM.
How about SNROM (Legend of Zelda 1) ?
Cheers,
Alistair G.
Well it probably works as there's 95% compatibility or something like that. And MMC3 works okay (Not 100% yet I guess) but well enough to run most games so yes it's probably implemented. Pretty much every iconic game is.
Sounds encouraging!
Can some kind soul please tell me if they have actually tested saving state in SMB1, SMB2, and SMB3 and Zelda 1, on the NES Powerpak ?
Cheers,
Alistair G.
If it didn't run all those games, I'd be suprised, since those are the games most played I guess.
SOOOOO....
Here's a list of incompatibles:
http://www.nintendoage.com/forum/messag ... adid=28507
Err I think we have our wires crossed 65024U, I do not mean what games work on the NES Powerpak.
Instead I meant what games have SAVE STATE working on the NES Powerpak due to thefox (a Tamiya fan?! LOL) implementing their mappers.
I do not mean what games work that have a save feature in them already (like Zelda).
I meant that in order to enable save states on games that DO NOT have native support for save games normally, the game mapper for that game has to be individually implemented starting from scratch, which is what thefox is doing.
Otherwise I would have to buy a Game Action Replay for NES... and I'd rather just use the Powerpak and have save states working for most games.
Saved States is NOT an advertised feature of the NES Powerpak and is not supported by the NES Powerpak out of the box without this "mod".
At least that's my understanding so far.
BTW I have now got the RGB PPU and both types (precision and normal) of sockets for the RGB mod to my USA NES, next up is getting a desoldering iron to remove the composite PPU. Can't wait to see RGB on it via RGB to VGA converter on a nice crisp 20" monitor and use the Powerpak and have a ton of games on it and be able to use the original hardware and original controllers. So cool.
Cheers,
Alistair G.
Playchoice down!
But anyway, I don't know what the compatibility of save states is.....-waits for answer- Sorry I misunderstood the question.
Live_Steam_Mad wrote:
Has TSROM been implemented yet? As then Super Mario Bros 2 and Super Mario Bros 3 would work. So far I assume that Super Mario Bros 1 works since you have implemented NROM.
How about SNROM (Legend of Zelda 1) ?
Yes, MMC3 and MMC1 are both implemented currently.
Live_Steam_Mad wrote:
Can some kind soul please tell me if they have actually tested saving state in SMB1, SMB2, and SMB3 and Zelda 1, on the NES Powerpak ?
Yes, I have and they work. But haven't released the missing mappers yet, so only SMB1 works with the released mappers. I will release a beta of the rest of the mappers probably next week.
Thanks thefox for the save state mappers. I've been playing around with them and they are working great!
Do you take feature requests?
Sometimes I press the wrong button, yes I'm dumb, and load a state when I actually wanted to save. Do you think you can implement a feature where a message box pops up and asks you do you really want to load or save a state? Maybe this message box can be turned on or off at the menu where you select turbo buttons. Just a thought.
Thanks!
Mike
thewizdawg wrote:
Thanks thefox for the save state mappers. I've been playing around with them and they are working great!
I'm glad, they haven't been tested very thoroughly.
If you encounter problems in any games, like saving/loading crashing the game or stuff like that, please report them and I'll probably try to fix them at some point.
thewizdawg wrote:
Do you take feature requests?
Sometimes I press the wrong button, yes I'm dumb, and load a state when I actually wanted to save. Do you think you can implement a feature where a message box pops up and asks you do you really want to load or save a state? Maybe this message box can be turned on or off at the menu where you select turbo buttons. Just a thought.
Yes this (or a similar feature) is planned for a future version. Probably a possibility to change/disable the saving buttons altogether, and another button combo (SELECT+START or something) for accessing an in-game menu that can be used to 1) save 2) load 3) change settings 4) reset to PowerPak menu (it sucks having to reach for the RESET button when testing a lot of games
).
Btw IMO it's a good idea to pause the game before saving. Makes it less hectic.
thefox wrote:
IMO it's a good idea to pause the game before saving. Makes it less hectic.
Agreed. I always do that, it gives me more time to think about what I want to do and reduces the chances of me using the wrong bottom combination and screwing up a good save or throwing away progress.
New version will be released soon. It should fix palette problems on Famicom and makes it possible to reset to PowerPak menu by pressing START+A+B (may be changed). Also Famicom external controllers work in the pre-game menu.
I should also look into moving most of the code from FPGA blockram to WRAM to be able to use the blockram for 4 screen mirroring again.
Version 1.3 has been released. See
http://kkfos.aspekt.fi/2011/07/17/miscellaneous-stuff/ for changes/additions.
v1.3.1 released, should fix WRAM corruption problem which only occured with NTSC NES.
I had no idea this existed! Awesome! I can't wait to try them out at home.
v1.3.2 is out, fixes a palette loading problem (it wasn't loading the palette at all because of leftover code from Famicom compatibility testing). Direct download link:
http://kkfos.aspekt.fi/downloads/save-s ... -1.3.2.zip
Thanks so much for your hard work with this. I really love the PowerPak but you made it infinitely cooler!
Yet another NTSC only problem fixed, nametable reads were getting corrupted in games that used DPCM samples (Kirby, Contra, ...).
New version here:
http://kkfos.aspekt.fi/downloads/save-s ... -1.3.3.zip
DaddyLongLegs wrote:
Thanks so much for your hard work with this. I really love the PowerPak but you made it infinitely cooler!
Thanks!
v1.4 released:
http://kkfos.aspekt.fi/downloads/save-s ... rs-1.4.zip
Fixes the following games:
- Cybernoid - The Fighting Machine
- Karnov
- Any game that relies on controller read bus capacitance (Dirty Harry, Captain Planet and the Planeteers, Paperboy, etc)
Awesome.
Would you consider making a version of these mappers without the menu/savestate features, or provide a way to quickly bypass the menu (hold a button while booting)? I really like the improved compatibility of your mappers, but don't have any plans to use the savestate features, so the startup menu is just a minor annoyance.
BMF54123 wrote:
Awesome.
Would you consider making a version of these mappers without the menu/savestate features, or provide a way to quickly bypass the menu (hold a button while booting)? I really like the improved compatibility of your mappers, but don't have any plans to use the savestate features, so the startup menu is just a minor annoyance.
Thanks! I'll consider it. Meanwhile you can hone your SELECT-SELECT-SELECT-A-SELECT-A pressing skills.
v1.4.2 released. There will not be any new releases in the near future, unless some critical bug surfaces.
Download:
http://kkfos.aspekt.fi/downloads/save-s ... -1.4.2.zip
Changes:
* MMC3 IRQ fixed (hopefully once and for all).
* Fixed saving in games with 16K PRG (Excitebike, etc).
* A lot of bugs fixed from saving/loading in general.
* Added an option to skip the menu by holding down A before it is shown.
Special thanks to Travis Miniard for extensive beta testing and bug reports!
v1.5 is out. Download from
here.
* Minor sound register initialization issue fixed (affected Megaman 1 and 2).
* Added SUROM support to MMC1 (fixes Dragon Warrior 3 and 4).
* Changed soft reset behavior (Start+A+B) so that if the buttons are held down for less than a couple of seconds, it resets the game (i.e. goes to the Save State Mappers menu) instead of going to the PowerPak menu. Screen turns red to indicate when the buttons have been held down long enough.
* Fixed the DPCM controller corruption problem which affected the NTSC NES (and Famicom), so turbo can be used in games that use DPCM samples, such as Contra, Batman, etc.
thefox wrote:
I've now implemented AxROM, CNROM and MMC1, just need to polish them a bit before releasing. MMC3 is also partially working but the scanline counter is giving me some trouble.
the savestate mapper for the powerpak is really nice cuzz now i can start at any point i want,however my miner complain about it is when i created a save file,will i reached world 4,okey i can start the game next time at that point,my big point is that when i contineu play till world 5 will using save sate,i can not go back to world 4 from the point when i created a save file by pushing power,no instead my save file gets unwantedly updated with world 5,but since i never wanted that and thus not going back to the ssavestate menu the savefile sudenly gets useless and crashed the game when i tryed to go back to my savestate and crashes the game when i tryed to go back to world with world5 but i dit,nt had invide them to save world 5.
i short i played adventure island1 i savestated it tilll word 4 and went back to the savestate menu to create a savefile,once i contineud on playing till world 8 level 3,i played again,but when i dit get defenceless in the last level wich i savestated it(without going back to the savestate menu)but,i wanted to go back to world 7 level 3 by pushing power since i had already created the savefile during world 7,so i tout i just could do that by simply pushing the power button,but instead the game crashed when i dit wanted to go back to my savestate,how was i ever suppose to know that the save state mapper even updates created savefiles with savestates when i dit,nt go back to the save menu???but you have no choice you have to go to the savestate menu for saving it,even if you do,nt want that,you,re forced to do, or your saved data will crash the game,this is really annoying man i was mad after pllaying 6 hours and lot of frustrations and end up with crashed save data becouse of this.
It does NOT update the save files automatically, only in the PowerPak menu that asks where you want to save.
johannesmutlu wrote:
the savestate mapper for the powerpak is really nice cuzz now i can start at any point i want,however my miner complain about it is when i created a save file,will i reached world 4,okey i can...
...
...annoying man i was mad after pllaying 6 hours and lot of frustrations and end up with crashed save data becouse of this.
Urgh, my eyes feel like they've been raped.
ccovell wrote:
Urgh, my eyes feel like they've been raped.
BTW, have you had a chance to test if there are any problems with Famicom when using the latest version?
i finaly know how to get save state to work but the way to do that is pretty weird.
after unzipping the mapper in the cd flashcard directory,you got to go to the savestate mapper and then copy those maps map00 mapp01 map02 etc,, to the powerpak mappers,and you must replace the map00,map01 etc,,,inside the powerpak map,so once you copy those map01 map02 from the savestate mapper to the powerpak mapper,it supposedly will ask you to copy and replace it,click yes on everything,once done,it should work,with supported games.
the same i had to do was the newer powerpak loopy mapper wich makes games like supermarioworld ,mortal combat,etc,, also work on powerpak.
you need to copy and replace those maps like map47 map 48 etc,, witth the maps from the powerpak loopy mapper to get those games to work.
but let me tell you all i dit got really SCREWED UP untill i finaly dit found the richt mapper and how and what to copy and replace it,not mention i had to guess alot sonce it was,nt that clearly described or the mapper went incorrect,oh man it,s so easy to get confused
johannesmutlu wrote:
i dit got really SCREWED UP,oh man it,s so easy to get confused
Indeed
In addition to Rad Racer 2, the other four screen MMC3 game, Gauntlet, has similar issues.
Great Hierophant wrote:
In addition to Rad Racer 2, the other four screen MMC3 game, Gauntlet, has similar issues.
Yes, my mappers don't support 4 screen mirroring at all.
deksar wrote:
Hehe trust me, TheFox wouldn't need my help to figure out a faulty header Xp
So, to bring up the issue of the elusive kirby's adventure freeze:
http://www.youtube.com/watch?v=AukSOJas ... tube_gdataI have 5 NES's, 2 top loaders and 3 Old style toasters. The top loaders and 2 of the toasters play kirby's adventure just fine. The one that doesn't does the exact same glitch as shown above in the youtube video. I've taken the time to open a working toaster and the non-working one to see if maybe this would help thefox pinpoint what exactly is causing it since they are 2 different revisions. Both have the expansion audio resistor modification done to them, so it's a non-issue (at least I hope so).
6 images of the Non-Working NES PCB CPU-10 (front and back):http://imgur.com/enPTIMw,43s9vX4,3t8Fbn ... kE,qoy0TaB6 images of the Working NES PCB CPU-06(front and back):http://imgur.com/q0so4oI,shmG89M,ZdwToG ... 0Q,dAOMQjCHope this helps.
Version 16 with FME-7 support (no sound) has been released, get it from the usual place:
http://kkfos.aspekt.fi/projects/nes/pow ... e-mappers/
First of all: Thanks for doing this! It really makes it more fun to play the NES again. Yesterday I hooked my PAL and NTSC NES up and played some. Once you start to play you almost can't quit.
Then I realised I probably didn't have the latest "thefox mappers". So now it's time to download the latest and try them out.
First I didn't find this thread. But finally I found it!
Great work as always. I was playing Rainbow Islands the other day using the save state to continue (not to cheat
) between plays.
I tried Jogging Race, and is still doesn't work. Were you still working on that solution?
cubeboy wrote:
Great work as always. I was playing Rainbow Islands the other day using the save state to continue (not to cheat
) between plays.
I tried Jogging Race, and is still doesn't work. Were you still working on that solution?
New mappers (a complete rewrite) will be released soon. Jogging Race will work on the new version.
One other request. Can you modify your splash screen so that it tells you what key combos do what? I always seem to forget which button saves the state, and which one loads.
cubeboy wrote:
One other request. Can you modify your splash screen so that it tells you what key combos do what? I always seem to forget which button saves the state, and which one loads.
Write them down on a paper.
...
In other news, the new mapper set is now out, so this project is obsoleted and will not be worked on anymore.
New thread at
viewtopic.php?f=9&t=11945