(Topic ID: 303598)

Restoring/writing own highscores to NVRAM

By harig

2 years ago



Topic Stats

  • 6 posts
  • 4 Pinsiders participating
  • Latest reply 2 years ago by Pbpins
  • Topic is favorited by 9 Pinsiders

You

Linked Games

No games have been linked to this topic.

    Topic Gallery

    View topic image gallery

    ft scores (resized).JPG
    ft gc and hs (resized).jpg
    calc (resized).JPG
    ft gc (resized).jpg
    ram (resized).png
    #1 2 years ago

    initially posted the same question in the NVRAM thread but started a dedicated topic here

    I have successfully installed FM1608 DIP chips in my WPC games

    I was messing around with my GQ-4x4 programmer to read/write those chips and tried to restore my previous highscores from before installing them (would be nice to somehow keep them)
    Was not very successful so far. I managed to change the name and the highscores but I could only modify them such that the checksum is not changed-otherwise the default names get restored from the EPROM.
    screenshot from the BSD code with the highscores and names is attached

    I did also do a file compare after entering the grand champion score but there were so many differences that I can not figure out where that checksum is located nor would I know how to calculate a correct checksum

    dumped my BSD RAM files there:
    https://drive.google.com/drive/folders/1zenDT35G-a03-qtLoSGPwVrBEXCerT73?usp=sharing
    one is the original and the other is the one after achieving the Grand champion with a score of 448.970.080 and entering the name `HGR´

    Would be interesting where the correct checksum has to be entered in?
    How is that checksum calculated?

    Did anyone else successfully mess around and managed to restore their personal highscores via writing them to the NVRAM?
    Any ideas/hints welcome-I do not have much knowledge on those kind of things but keen to mess around and lern...

    the only related info I found was that but was not very helpful to me: https://github.com/mattvenn/ds2604-sram-driver

    my initial post with some ideas is here: https://pinside.com/pinball/forum/topic/nvram-experience/page/14#post-6588833

    I would prefer not to have to mess around with installation of PinMAME...in the worst case I try to redo my highscores with the glass off

    ram (resized).pngram (resized).png
    #2 2 years ago

    I believe it has been discussed before that you could piggy back the new nvram on top of the existing chip and this would copy the data to the new nvram when you powered up the game. I do not know if its ever been tried and I was not willing to try it myself to save my old high scores.

    #3 2 years ago
    Quoted from Asmig:

    I believe it has been discussed before that you could piggy back the new nvram on top of the existing chip and this would copy the data to the new nvram when you powered up the game. I do not know if its ever been tried and I was not willing to try it myself to save my old high scores.

    sounds like a wild hack-but too late as the battery buffered RAM is already unsoldered and has lost its memory

    2 weeks later
    #4 2 years ago

    Finally I found a way how to restore the highscores on my WPC games after installing NVRAM
    I´m not an expert in those things but as I figured out how it works I thought I will do a quick summary-don´t blaim me for any badly explained/described details

    quick writeup:

    !!! Do this at your own risk! Don´t mess around with changing random parameters in the RAM file-might mess up or destroy your game !!!

    -used the GQ-4x4 programmer with the DS1225Y profile together with the FM1608 DIP NVRAM chips
    -take pictures/note down your highscores before removing batteries or your SRAM chip
    -install FM1608 in the (optionally temporary installed ZIF) socket in your WPC MPU board
    -power up the game. It will show "factory settings restored". Set date and time. You can also set your preferred other adjustments now or later on-does not matter
    -pull the FM1608 and read the data with the GQ-4x4 programmer. Save that file and keep it to be able to mess around with the data
    -you will get something like that (default RAM file from my FT)
    ft gc (resized).jpgft gc (resized).jpg
    lets start with the grand champion:
    Grand champion here is "CRL" (yellow) with a score of 300.000.000 (red). Just modifying those numbers will not work as they are ´protected´ by a checksum (blue) which is located just after the score. After entering your own Grand campion initials and highscore one has to recalculate this specific "GC"checksum (there is plenty of checksums for various adjustments-see github reference)
    - how to recalculate (here GC) checksum:
    - open a hex calculator (here the one that comes with windows) and set "hex" and "word" accordingly
    calc (resized).JPGcalc (resized).JPG
    start with "FFFF" and subtract the hex numbers for the initials and score (here it is: FFFF - 43 - 52 - 4C - 03 - 00 - 00 - 00 - 00) which results in FF 1B.
    Put the recalculated checksum (here FF1B) at the corresponding address

    -similar procedure for the other 4 highscores.
    they are located just before the GC
    ft gc and hs (resized).jpgft gc and hs (resized).jpg
    It is starting with 1.place "MDR" followed by "MAX", "JWS" and "CG " with scores from "250.000.000" down to "175.000.000"
    Enter your own 3 digit initials and your highscores accordingly. Afterwards one has to recalculate the "HS"checksum.
    Procedure as above except that the string is longer: FFFF - 4D - 44 - 52 - 02 - 50 - (00 - 00 - 00) - 4D - 41 - 58 - 02 - 25 - (00-00...) - 4A - 57 - 53 - 02 - (00...) - 43 - 47 - 20 - 01 - 75 - (00..)- The result is "FBA7" which has to be entered right after the last highscore (in pink) and before the initials of the GC

    -some example after the GC and highscore #3 are restored (my initials are "HAR" followed by my personal highscores). Note the recalculated checksums:
    ft scores (resized).JPGft scores (resized).JPG

    -write the modified file to your FM1608 DIP NVRAM chip and install it in your game
    -power up and see if you have successfully restored your personal highscores. If you did a mistake with the checksums the factory settings and default scores (read from ROM) get restored

    !!! Do this at your own risk! Don´t mess around with changing random parameters in the RAM file-might mess up or destroy your game !!!

    some hints:
    -the location (addresses) of the array for the highscores and GC might differ from game to game but they seem to be always close to the end of the file.

    -for some additional champion like "biggest liar" or "rock boat champion"on fish tales we could not clearly figure out the structure (although it looked obvious-seems the initials are not part of the checksum there) . I restored them by playing a game with the glass off
    For TZ for the LOTZ champion I was able to restore it-can´t remember the details-think it was a 8bit checksum

    references: found some details about the structure of the RAMfile here: https://github.com/tomlogic/pinmame-nvram-maps
    Also the guy sharing that info was very helpful and pointed me in the right direction to get it done

    #5 2 years ago

    Interesting read and glad you got it sorted out.

    Personally I don't really care about mine and friends scores so if they get lost when changing ROMs or batteries we just get a good reason to set new ones

    #6 2 years ago

    Good job!!!

    Reply

    Wanna join the discussion? Please sign in to reply to this topic.

    Hey there! Welcome to Pinside!

    Donate to Pinside

    Great to see you're enjoying Pinside! Did you know Pinside is able to run without any 3rd-party banners or ads, thanks to the support from our visitors? Please consider a donation to Pinside and get anext to your username to show for it! Or better yet, subscribe to Pinside+!


    This page was printed from https://pinside.com/pinball/forum/topic/restoring-writing-own-highscores-to-nvram and we tried optimising it for printing. Some page elements may have been deliberately hidden.

    Scan the QR code on the left to jump to the URL this document was printed from.