NES game save system
Moderator: Moderators
NES game save system
For a while, in the wrong forum, BTW, we have been discussing game save concepts. I believe I have one that may work with many a system. Basically the idea is this:
make an EEPROM chip equal in size the the system's RAM and find a way to connect the EPROM burner to the RAM. Make a Memory Card out of the EEPROM and put it in the burner.
Have 2 buttons on the burner module-- "Read" and "Write", Read loading the contents of the EEPROM into the RAM after the game has booted, and Write copying the contents of the RAM directly into the EPROM.
This would not only work with all existing games(probably), but allow you to save at any moment, like an emulator savestate.
What do you guys think?
make an EEPROM chip equal in size the the system's RAM and find a way to connect the EPROM burner to the RAM. Make a Memory Card out of the EEPROM and put it in the burner.
Have 2 buttons on the burner module-- "Read" and "Write", Read loading the contents of the EEPROM into the RAM after the game has booted, and Write copying the contents of the RAM directly into the EPROM.
This would not only work with all existing games(probably), but allow you to save at any moment, like an emulator savestate.
What do you guys think?
Last edited by MM007 on Tue Dec 21, 2004 8:46 pm, edited 1 time in total.
Warranty-Voiding fun!


Its an interensting idea, if its possible it sure would be great when/if I get mobbed by people wanting to look at the system.
vskid wrote:Nerd = likes school, does all their homework, dies if they don't get 100% on every assignment
Geek = likes technology, dies if the power goes out and his UPS dies too
I am a geek.
-
gannon
- Moderator
- Posts: 6974
- Joined: Sun Apr 04, 2004 4:48 pm
- Location: Near that one big lake
- Contact:
hmm.. good idea. You could even load emulator save states onto games then too 
I would suggest that the memory card device sit between the nes and game cart (like a gamegenie). Then you could load to and from the cartridge without any modding of the nes or nes cart. (If I remeber the layout right that is, incase I don't please say so)
I would suggest that the memory card device sit between the nes and game cart (like a gamegenie). Then you could load to and from the cartridge without any modding of the nes or nes cart. (If I remeber the layout right that is, incase I don't please say so)
Would it have to use any software at all, or could we just directly load it into the EEPROM?Sparkfist wrote:Its an interensting idea, if its possible it sure would be great when/if I get mobbed by people wanting to look at the system.
Last edited by MM007 on Tue Dec 21, 2004 8:48 pm, edited 1 time in total.
Warranty-Voiding fun!


Does the NES cart have direct access lines to read the NES RAM? It probably does, but we'd need to know for sure.gannon wrote:hmm.. good idea. You could even load emulator save states onto games then too
I would suggest that the memory card device sit between the nes and game cart (like a gamegenie). Then you could load to and from the cartridge without any modding of the nes or nes cart. (If I remeber the layout right that is, incase I don't please say so)
BTW, we'd probably need a third button: "ERASE".
Warranty-Voiding fun!


-
gannon
- Moderator
- Posts: 6974
- Joined: Sun Apr 04, 2004 4:48 pm
- Location: Near that one big lake
- Contact:
pin 57 on the nes cart port is (CIRAM /CE) I'm not sure if this is a ram r/w line, but it might be.
Edit: NVM, that's the cart's extra video ram pin
Edit: NVM, that's the cart's extra video ram pin
Last edited by gannon on Tue Dec 21, 2004 10:01 pm, edited 1 time in total.
-
JackFrost22
- Sir Posts-alot
- Posts: 4186
- Joined: Fri Jun 04, 2004 4:10 pm
-
gannon
- Moderator
- Posts: 6974
- Joined: Sun Apr 04, 2004 4:48 pm
- Location: Near that one big lake
- Contact:
I think if you put in a microcontroller and some asm code you could halt the cpu when loading from the rom into the ram, then do a soft reset of the cpu/ppu when that's finished to reset the state of the processors. Then after the soft-reset the rom would go into "read only" mode so it can't write to the ram, but it can read it and back it up.
I talked to epicenter and was told, in summary, that there is no way to get it to work reliably without freezing the CPU on the NES.
Unless someone finds a way to freeze the CPU, this idea is scrapped.
EDIT:.....hmm...can this work Epicenter?
Unless someone finds a way to freeze the CPU, this idea is scrapped.
EDIT:.....hmm...can this work Epicenter?
Last edited by MM007 on Tue Dec 21, 2004 9:21 pm, edited 1 time in total.
Warranty-Voiding fun!


-
JackFrost22
- Sir Posts-alot
- Posts: 4186
- Joined: Fri Jun 04, 2004 4:10 pm
You cant do something simalar like halting the CPU, I know thats what you did when demonstrating the OverClocked Genesis on TSS. Would it really be that much more difficalt to do the same to something a how genreation older?
vskid wrote:Nerd = likes school, does all their homework, dies if they don't get 100% on every assignment
Geek = likes technology, dies if the power goes out and his UPS dies too
I am a geek.
The problem here is that when the game is running, it has instructions flowing through the CPU all the time. Only for instants at a time is it not. If you save the RAM, VRAM, etc. contents and then try to restore them, you lose the instruction the CPU was working on. This is like driving down the road with a car and then removing a chunk of the road all of a sudden. The odds of falling into that hole and crashing are extremely high. You could bounce over it but the odds are very low.gannon wrote:I think if you put in a microcontroller and some asm code you could halt the cpu when loading from the rom into the ram, then do a soft reset of the cpu/ppu when that's finished to reset the state of the processors. Then after the soft-reset the rom would go into "read only" mode so it can't write to the ram, but it can read it and back it up.
Halting the CPU would keep it from executing an instruction as you were saving but odds are, you're still going to lose one. Plus, the NES' custom processor has NO halt function..
I don't know of ANY means to read out the state of the CPU itself. This is only doable in emulators because the CPU is an emulated piece of software in RAM which anything can access, which is far from the case in a console.
No. Pausing in a game is not a hardware function, it's the game loop which is constantly executing, being stopped from WITHIN the program, only to be restarted later, also by the program. You couldn't do that externally, and even when paused the game is still running instructions that, if lost, will almost definitely crash the machine.Couldnt you write some code that pauses the cpu like if it was paused in a game
In the best case scenario where the machine doesn't crash, you're almost certain to lose sound and for VRAM to be corrupted, the palette messed up, et cetera.
-
SgtBowhack
- Posts: 831
- Joined: Wed Dec 08, 2004 5:16 am
- Location: Chicago, USA
Could work, but sending your own instructions could also be interfering too much with the original program ... at any rate, the probability for SO MANY failure points seems like it would make the project worthwhile. It might be extraordinarily aggravating. But if someone wants to try it, it could be interesting.