NES game save system

Includes Atari 2600, Nintendo 8-bit, Sega Master System, MSX and more!

Moderator: Moderators

MM007
Moderator
Posts: 1175
Joined: Mon Apr 05, 2004 6:01 pm
Location: In the wilds of suburbia...

NES game save system

Post by MM007 »

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?
Last edited by MM007 on Tue Dec 21, 2004 8:46 pm, edited 1 time in total.
Warranty-Voiding fun!

Image
Sparkfist
Forum Administrator
Posts: 6754
Joined: Tue Apr 20, 2004 7:12 am
Location: Michigan

Post by Sparkfist »

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:

Post by gannon »

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)
MM007
Moderator
Posts: 1175
Joined: Mon Apr 05, 2004 6:01 pm
Location: In the wilds of suburbia...

Post by MM007 »

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.
Would it have to use any software at all, or could we just directly load it into the EEPROM?
Last edited by MM007 on Tue Dec 21, 2004 8:48 pm, edited 1 time in total.
Warranty-Voiding fun!

Image
MM007
Moderator
Posts: 1175
Joined: Mon Apr 05, 2004 6:01 pm
Location: In the wilds of suburbia...

Post by MM007 »

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)
Does the NES cart have direct access lines to read the NES RAM? It probably does, but we'd need to know for sure.

BTW, we'd probably need a third button: "ERASE".
Warranty-Voiding fun!

Image
gannon
Moderator
Posts: 6974
Joined: Sun Apr 04, 2004 4:48 pm
Location: Near that one big lake
Contact:

Post by gannon »

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
Last edited by gannon on Tue Dec 21, 2004 10:01 pm, edited 1 time in total.
Epicenter
Posts: 99
Joined: Fri Dec 03, 2004 7:07 pm
Location: USA
Contact:

Post by Epicenter »

Hm, a company did this once, a product for the Genesis/SNES. It didn't work 90% of the time. It couldn't read the CPU state or the VRAM, so even if, by sheer luck, the instruction the CPU was working on being lost did NOT cause a crash, the video was totally corrupted until the next VRAM refresh ..
JackFrost22
Sir Posts-alot
Posts: 4186
Joined: Fri Jun 04, 2004 4:10 pm

Post by JackFrost22 »

I think I understand its not as hard as I tohught good luck
gannon
Moderator
Posts: 6974
Joined: Sun Apr 04, 2004 4:48 pm
Location: Near that one big lake
Contact:

Post by gannon »

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.
MM007
Moderator
Posts: 1175
Joined: Mon Apr 05, 2004 6:01 pm
Location: In the wilds of suburbia...

Post by MM007 »

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?
Last edited by MM007 on Tue Dec 21, 2004 9:21 pm, edited 1 time in total.
Warranty-Voiding fun!

Image
JackFrost22
Sir Posts-alot
Posts: 4186
Joined: Fri Jun 04, 2004 4:10 pm

Post by JackFrost22 »

Couldnt you write some code that pauses the cpu like if it was paused in a game
Sparkfist
Forum Administrator
Posts: 6754
Joined: Tue Apr 20, 2004 7:12 am
Location: Michigan

Post by Sparkfist »

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.
Epicenter
Posts: 99
Joined: Fri Dec 03, 2004 7:07 pm
Location: USA
Contact:

Post by Epicenter »

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.
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.

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.
Couldnt you write some code that pauses the cpu like if it was paused in a game
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.

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

Post by SgtBowhack »

Can't you tell it to send NOPs for a certain amount of time and then halt the system? It'd cause the processor to be empty...
Epicenter
Posts: 99
Joined: Fri Dec 03, 2004 7:07 pm
Location: USA
Contact:

Post by Epicenter »

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.
Post Reply