Hi I’m new to the forum!
I bought a Flashboy from someone on ebay about 2 months go. New packaging well put together overall I was very pleased with the quality.
Then, I tried flashing it. It kept hanging at various parts of the flash and never got it to work with the flashboy software. I then dug around found some comments saying that “it never works the first time”. I tried it with 6 or so cables I had laying around the house not much different results. I assumed it was somewhat buggy software. I put it back in the box and figured I’d get to it later.
Turns out today is the day! 😀
I’m a software engineer, so I figured I would be proactive and try to write my own flasher program. I reverse engineered the usb protocol, which is pretty simple.
My Findings:
Everything is in 64byte packets.
To erase the cart:
Packet1: 0xA2 , 0x00 , ……….. 0x0
Packet2: 0xA2 , 0x01 , ……….. 0x0
…
Packet16: 0xA2 , 0x0F , ……….. 0x0
So 0xA2 as the erase command and 16 erasable blocks.
The cartridge echos the commands + a few 0x0 + some gibberish (other parts of memory i suppose)
To write a rom:
Write Command:
Packet1 : 0xB0, ………… 0x0
Packet2 : 0xB4, …………. 0x0
then proceed with sending 64byte chunks of the rom until finished.
This is all find and dandy except I was hoping that there was maybe a timing or threading bug with the flashboy.exe because it would hang if there was an issue. I wrote a program to erase and flash, but the cart simply becomes unresponsive at various times. Which isn’t really a problem for erasing because you can just continue to erase with the blocks that where known to be erased since they are addressable. Writing to the cart however isn’t addressable. So once it hangs its basically dead.
With the flashboy.exe various roms tend to hang at certain percentages which tend to be repeatable which leads me to believe it maybe a firmware issue, maybe hardware I’m not sure. With my program it tends to be more random. I cracked open the case and checked for any soldering flaws but the board is pretty clean, no visible issues. Actually I was impressed with how clean it is inside! nice job. Just a pic and a eprom really, and what looks to be a jtag for firmware flashing.
Somewhere in the middle of all of this today I did manage to flash the device twice, but it wasn’t reproducible so it’s not solved unfortunatly.
So if the king of the protocol will tell me any other protocol commands which might be present. That would be awesome, cause then I may be able to write a more fully featured flasher, and something that can even pad the roms while writing them. If there are no more commands then I think I’m stuck, and maybe I got a defective unit? Can I flash the firmware from usb? BTW I think I have a jtag somewhere here.
ps. just to rule out funky machine/cable issues I tested the device with 6 different cables on 3 different machines.
Apparently different versions of the FlashBoy loader only work properly with certain FlashBoy batches. Maybe yours is an older FlashBoy, have you tried using an older version of the loader with it?
For more info, I suggest getting in touch with Richard Hutchinson, aka MineStorm, the designer:
http://www.vr32.de/modules/usercenter/index.php?section=profile&uid=545
If you do write your own loader, a command line version would be useful for running from within Visual C++, etc.
dasi
OK thanks for the tip.
Slightly better results. It flashed it twice, but still errors out a great deal of the time. I’ve tried a few other versions so far, no luck.
Also, the erase command is different this time only one packet of 0xA1,0x0…0x0
then wait for about 10.1 seconds.
I pm’d MineStorm he hasn’t got back with me yet.
So I looked at the board again and it looks like the flash chip does actually have a funky pin that looks like it might be a bad solder.
It’s pin 15 which is the RY/BY ‘ready/busy’ pin. So perhaps thats why I’m having funky timeout periods.
http://pdf1.alldatasheet.com/datasheet-pdf/view/92584/AMD/AM29F160DB75EI.html
I’m gonna heat it up and try to resolder that pin
my quest continues.
After fixing pin 15 it was clear it wasnt actually hooked up to a contact, and wasn’t met to be. I need my jeweler loupe to see things clearer
So I resoldered all connections on both chips and it still behaving the same way.
I’m not happy.
So either there is a fault in the pic chip or the firmware.
Yackom wrote:
I pm’d MineStorm he hasn’t got back with me yet.
Try contacting him via his site: http://www.vectrex.biz/
- This reply was modified 14 years, 12 months ago by dasi.
Protoman85 schrieb:
My issue: Nester’s Funky Bowling doesn’t work…
There’s a bad dump of this floating around, try finding a good one, that should work.
I agree for me it all worked exept Nester’s Funky Bowling no matter what rom I found
All the other games and homebrew work thought
Works perfectly fine here on my Flashboy. So I agree with KRE155 and think it is a bad ROM issue.
Yackom wrote:
I pm’d MineStorm he hasn’t got back with me yet.So I looked at the board again and it looks like the flash chip does actually have a funky pin that looks like it might be a bad solder.
It’s pin 15 which is the RY/BY ‘ready/busy’ pin. So perhaps thats why I’m having funky timeout periods.
http://pdf1.alldatasheet.com/datasheet-pdf/view/92584/AMD/AM29F160DB75EI.html
I’m gonna heat it up and try to resolder that pin
my quest continues.
Did Richard write the flasher program? I forget if it was him or DogP. Anyway, DogP is another guy that can probably help you, he’s the unofficial VB guru. 😀