Interesting Neo 4 slot repair

tendril

Well-known member
Joined
Dec 30, 2015
Messages
993
Reaction score
330
Location
MERRITT ISLAND, Florida
I don't usually post repair logs here, but this one was quite unusual, I wonder if the original owner is out there as I got this from Ebay :)

It's the newer style 4 slot with the custom chips on the top board replacing lots of 74LS TTL chips. A previous owner had installed the Universe Bios onto it, but games would crash right after the NeoGeo startup logo screen or the 'Winners Don't use Drugs' screen (if the BIOS set to US region). Puzzle Bobble showed corruption then a crash and Super Sidekicks 2 would jump to an 'illegal instruction exception' screen. (Reinstalling the regular BIOS just led to a crash and watchdog reset at the same point). So this is quite interesting because for the startup screen to show up the CPU must be executing the program on the cartridge. So the data bus and all control signals must be working between the bottom board and the top board.

IMG_3966-300x265.jpg


IMG_3982-300x225.jpg


My best guess was that an address line was faulty - this would let the CPU execute code as long as it didn't jump to any areas of 'bad' address. A cool feature of the UniBios is that has a memory viewer - so I was able to look through the memory the 68000 on the main board can 'see' of the cartridge. And at 0x10000 the data was identical to that at 0x00000. So that means that address line A16 must be stuck low - whenever the CPU asks for data in the range 0x10000 to 0x1fffff the cartridge is actually returning 0 to 0xffff. So explanation for the illegal instruction found! The CPU would jump to somewhere in that range - but actually be given illegal instruction data from elsewhere in the ROM which causes the exception.

IMG_3971.jpg


IMG_3973.jpg


So, time to trace out where A16 goes from the main 68000 CPU on the bottom board, and also trace where cartridge A16 goes on the top board. (Technically it's A15 on the cartridge side because it's a 16 bit ROM rather than 8 bit, but I'll call it A16 to be clearer). Interestingly I found some marker pen marks at some of the A16 points on the lower board, so someone had clearly worked on this before and also suspected an address fault. The main paths for the address lines are to go to the BIOS rom on the main board and to the 245 latches in the lower right of the board. Now I was looking closer I could also see one of the original AS245 latches had been replaced with a LS245 version and A16 went through this chip. So someone had definitely spent some time on this before. The address lines then go from the 245's to the top board connector. On the top board I was hoping to find a broken trace to explain the fault, but continuity tested all the way from the bottom board to the NEO-244 custom chip (A16 goes to pin 1). Tracing from the cartridge connector back showed no breaks either - all address lines are shared between
all address lines are shared between slots 1 & 2 on the board, and A16 traces back to the same NEO-244 chip - pin 62 this time.

IMG_3998.jpg

IMG_3977.jpg

IMG_3976.jpg
 
So a logic probe showed that the input would pulse whenever the 68000 asked for A16, but the output to the cartridge slot was always stuck low. So the conclusion has to be that this custom chip has failed. Unfortunately it's a relatively rare custom chip as I believe it's only used on this revision of the 4 slot and the accompanying 2 slot (MV2F). I wasn't really sure why this chip was needed at all though... Yes, there are 4 slots but the 68000 is only going to be accessing one address at a time - so why can't the cartridges just be addressed straight from the 68000/AS245? So.. I lifted pin 62 of the NEO-244 and patched the pin 1 input directly onto the pin 62 output pad. Games in slots 1 & 2 now work 100%!

IMG_3992.jpg


IMG_3988.jpg



Slots 3 & 4 still gave the illegal instruction exception - all address lines are common between these slots, and A16 traced back to the same NEO-244 custom, pin 63. So it's now clear what NEO-244 does - it takes the address bus from the 68000 as input and drives either slots 1 & 2 or slots 3 & 4 depending on which is active. So again I lift pin 63 and patch pin 1 onto the pin 63 pad and now all slots work! I'm not really sure why an address bus selector is needed - there's no reason from a logical design point of view as program address lines in all slots can be driven simultaneously. The only reason I can think of is implementation side, maybe trying to manage the current associated with driving 4 things from the single AS245 output.

IMG_3996.jpg
 
Back
Top Bottom