(Topic ID: 195771)

Lyonsden Not-So-Guide to EPROM programming

By lyonsden

4 years ago

Topic Heartbeat

Topic Stats

  • 29 posts
  • 10 Pinsiders participating
  • Latest reply 1 year ago by lyonsden
  • Topic is favorited by 16 Pinsiders


Linked Games

No games have been linked to this topic.

    Topic Gallery

    View topic image gallery

    Screen Shot 2017-08-14 at 9.48.38 AM (resized).png
    Screen Shot 2017-08-01 at 9.53.41 AM (resized).png

    You're currently viewing posts by Pinsider lyonsden.
    Click here to go back to viewing the entire thread.

    #1 4 years ago

    This is inspired by Vid's guides to document my experience programming EPROMs. However, unlike Vid's guides, I didn't know what I was doing going down this path and had a hard time finding good material to help me get started. I'm just starting and there is a lot I don't know, but hopefully this helps the next person who goes goes down this path. Also, I hope that other's with more experience can add their know-how!

    #2 4 years ago

    First was buying a programmer. I went with the Minipro TL-866CS for two reasons. It is cheap (as little as $30) and there was linux/mac OS software.

    Rather than going super cheap and buying direct from China, I purchased the programmer and eraser from Amazon so I could get them quicker:

    * TL-866CS: amazon.com link » : $50
    * Eraser: amazon.com link » : $20

    #3 4 years ago

    I wanted to use this software: https://github.com/vdudouyt/minipro (linux and mac)

    But ended up having a lot of problems getting it to compile on Mac OS (thank you Apple for locking the system even more!)

    So I ended up using VirtualBox to run Windows10 and run the TL-866CS software: http://www.autoelectric.cn/en/download.html

    #4 4 years ago

    To get everything set up, i had to install Virtual Box. To get the USB port mapped to the virtual machine instance (VM) running windows to, I had to install the Virtual Box Extension Pack and then configure the VM: In VirtualBox, select the image, then select Settings->Ports->USB and select the MiniPro TL-866

    Screen Shot 2017-08-01 at 9.53.41 AM (resized).png

    #5 4 years ago

    Since I wanted to pull ROMs (and read and write) from the host operating system, I needed to set up a folder that that was accessible from inside the VM instance:

    * To share a folder from the host OS with the VB Guest OS:
    * Select image, then selection settings->shard folders->press “+” to add folder
    * While the guest OS is running, from the top menu, select Devices->Insert Guest Additions CD image. . .

    #6 4 years ago

    Now I could start testing. First, I took an old ROM with BoP L-5. I use the programmer to read it the image, save it, and the compare it to one I downloaded from IPDB. The files matched (success!)

    #7 4 years ago

    Next I wanted to write a NGG Rom (V1.3). This is where I started to realize that the ROM chips not only had different sizes, but different manufactures and pinouts. It was important to get things matched.

    Screen Shot 2017-08-14 at 9.48.38 AM (resized).png

    #8 4 years ago

    For figuring out which chip is which, google and searching for datasheets really helps determine the correct manufacturer.

    #9 4 years ago

    I was able to successfully program (and use) NGG 1.3 using a 27C040

    #10 4 years ago

    Next was Funhouse and to update to the 9.05H ROMs. First I had a problem with the files at IPDB. Eventually found the ROMs through PinMame. https://www.dropbox.com/sh/jd85os8e9qmtsrc/AAAliLyJmTdDpMOdGLJmPfkba?dl=0

    The set of files included L-9, which I could use to try to apply the non-ghosting patch (worked): http://www.edcheung.com/album/album07/Pinball/WPC_Ghost_Busting.pdf

    From there, I ran into the fun of figuring out the right chips to use:
    * MPU required a 27C020 (changed jumper on MPU)
    * Sound required 27C010

    #11 4 years ago

    That is as far as I've gone, and will continue to post updates as I make my way through other systems.

    #14 4 years ago
    Quoted from Coyote:

    Re - EPROM pinouts; Games use 8-bit EPROMs.
    So 4Mb is 512k x 8. Any EPROM (UV eraseable, OTP, EEPROM) with this data format will work, as the pinouts are standardized. (Flash based EPROMs, not so much.) The most common are 27C040 and 27C4001 for 4Mb, 27C020 or 27C2001 for 2Mb. (Yeah, there's a pattern here!)
    Figuring out which chip to use is not difficult either - take the size of the file on your hard-drive, multiply by 8. (So, a 4Mb ROM will accept a 512kb file. 2Mb will be 256k.) To find the size of the file, take the EPROM size, divide by 8. (It's that whole 8-bits thing, see. )

    Thanks Coyote, your insight is always appreciated!

    One problem I seemed to have was that 27C040/27C4001 wouldn't work in FH, while the 27C020/27C2001 would (the 9.05H ROM needed at least 2Mb). Same with the sound ROMs -- 27C010/27C1001 would work, but anything larger would not. Not sure if there was a jumper that needed to be switched. Should the larger EPROMs work?

    #18 4 years ago
    Quoted from snakesnsparklers:

    When using an EPROM that is twice as large as required, no jumper is required, however, you should copy the image to both halves of the EPROM. If the unused address line is floating and you have garbage data on the other half of the chip, it could try to be switching back and forth and breaking the program. If you have the data copied onto both halves of the EPROM then it doesn't matter if the extra line floats, it would find identical data either way.

    Thanks for the info -- I'll try this with my FH ROM.

    #19 4 years ago
    Quoted from Coyote:

    Yup, what they said.
    Because of how chips are addressed, and the circuits are designed, the game could get garbage back. Or the checksum not match right.
    Also, pinouts BETWEEN the different versions are usually NOT the same. I.e. A 27C020 does NOT match a 27C040. May be *close*, but not exact. (Usually because of the added address lines, needed to access higher chip memory!)
    If you use a bigger chip, and the board can support it (WPC can..), then you must double the image. (Run the command copy /b file1 + file1 outfile)

    For those in unix, that is the same as cat <file.rom> > <new.rom>; cat <file.rom> >> <new.rom>

    #21 4 years ago
    Quoted from Coyote:

    Yup, what they said.
    If you use a bigger chip, and the board can support it (WPC can..), then you must double the image.

    Just tried this out tonight -- doubled up a 2Mb program for a 4Mb chip and it worked like a charm! Thanks all for the pointers.

    2 months later
    #24 3 years ago
    Quoted from T7:

    I'm looking to get the non-ghosting patch tool (utility).
    Please PM me if anyone has it and is willing to share. Thanks.

    Here you go: https://www.dropbox.com/s/ljjrhszv5kvz458/wpclp-master.zip?dl=0

    #26 3 years ago
    Quoted from Syco54645:

    never had luck with the antighosting thing working...

    I've put it on a couple of games and have been happy with the results -- do you recall which one didn't work for you?

    2 years later
    #29 1 year ago

    Wanted to post an update to this thread as it had been a couple of years since I started it. I recently checked the Mac support for the Minipro program. The code has been branched and the new maintainer has made it very easy to install using homebrew: https://gitlab.com/DavidGriffith/minipro/

    While it does not have a graphical user interface, the command line interface worked without a hitch (and is so much easier than running a windows VM to use TL-866CS).

    You're currently viewing posts by Pinsider lyonsden.
    Click here to go back to viewing the entire thread.

    Hey there! Got a moment?

    Great to see you're enjoying Pinside! Did you know Pinside is able to run thanks to donations from our visitors? Please donate to Pinside, support the site and get anext to your username to show for it! Donate to Pinside