What's new
It's like my Ketsui cart! Crashes on one version but fine on the other. With multiple program ROMs, other carts, etc. Even other motherboards.

DDP works fine for me though on both versions.
 
Yep likewise my Espgaluda.

No idea what's causing it but it's very frustrating.
 
I didn't realize it was happening to the other games. I thought it was the dual boot ddp3 as that was hack/modified by someone else
 
No, there are several of us having this issue across different games with no common link between them :(
 
I am sure I've seen the DDP3 boot problems in the long PGM conversion thread, but the Espgaluda/Ketsui problems are something we need to track down... I think someone was only able to boot DDP3 after running another game before.

There is a known crash in DDP3 white version in one level, I think in the second loop? It should definitely boot, though.

I had a little dig, and the biggest off-the-shelf 5V-compatible memory part I can find is AS29CF160B-55TIN. This would be enough for the program code (only half of the 27c322 is used), though would need an adapter, and I don't know if common programmers can write them...

I guess something like this would be possible:
Flash160.jpg


Though I have no good plan how to program them... two of the AS29CF160 could be used in 8 bit mode to replace a 27C322, though routing this will be tight. Maybe I'll get a few made when I make my next order, or is anyone already making something similar?
 
Last edited:
And here is the Digikey parts list.


EDIT: Something is wrong with this cart at Digikey. Doesn't show up correctly. You might not be able to order it correctly.





One part says it can be programmed by digikey. But does it need programming? SOrry total noob this my project of this type:

ATF16V8B-15PU-ND‎


‎ATF16V8B-15PU‎

Microchip Technology

IC PLD 8MC 15NS 20DIP
 
Last edited:
I guess something like this would be possible:
why not install 2 of them on that PCB?
IIRC they made something like that for Neo Geo since it has 32Mbit 8-bit MaskROMs

alternatively you could use a 3.3V chip there and integrate a regulator and level shifters into the PCB as well.

EDIT here:
https://oshpark.com/shared_projects/2b7muPMc
https://oshpark.com/shared_projects/ep5d2RrF
I thought about that, but the 3.3V chips are only available as surface mount, which make programming and soldering more difficult for the average user. Though I don't mind if anyone develops a surface mount/3.3V version, all PCBs I sold contain all required information to replicate them.

It could look similar to the Lydz board, just with level shifters like the NGDevTeam NeoGeo carts.

Looks like the 29F032 from that project is obsolete as well?
 
Last edited:
@16bitgium those chips are for the jed files included in the first post. You do need to have them programmed. Other instructions may refer to them as GAL or PAL since on an original board it’s a PAL chip I think, and most people are used to using GAL16V8 chips as replacements.

Nice find actually, I drive myself crazy sometimes trying to get a GAL to behave, as they are obsolete chips usually sourced from overseas. These are new and fast, and in stock (at mouser last time I checked). I bought like 20 of them.
 
Finally got around to looking at these again.

Recap:

DOJ runs fine in both modes.
Espgaluda crashes 30-90 seconds in.
Ketsui works in Trap mode, but not in normal mode (crashes 30-90 seconds in)



Swapped Espgaluda and DOJ prog boards to see what happened.

As expected, Espgaluda crashed after 30-90 seconds, and DOJ played on (albeit with corrupt graphics and one HELL of a remixed OST). So the issue is 100% with the prog board.

RN1 and RN2 on all three boards read 0.840 all the way across. So they're definitely all good.


blue is the M68k program ROM and the PAL controlling the mapping. Any problems here mean the game doesn't run or crashes.

yellow is the music ROM, two 74ls257 breaking the 16 bit ROM value into two 8 bit halves, and one half of 74ls139 selecting between the motherboard ROM and the cartridge ROM. Problems here mean no or wrong sound is played.
So my guess here is that either 74ls257 are an issue if it selects between the halves of the ROM? That's why Ketsui works fine on Trap mode, but not on normal?

For Espgaluda it /has/ to be either the program rom or the pal? There's nothing else involved, right?


As a funny side note: completely missed installing C1 on DOJ and that's the only prog board I have that works :rolleyes:


Edit: socketed P1 on Espgaluda, tried FOUR different eproms in there (using the known-working files posted earlier) and it still hangs. It has to be the GAL, doesn't it?
 
Last edited:
FSo my guess here is that either 74ls257 are an issue if it selects between the halves of the ROM? That's why Ketsui works fine on Trap mode, but not on normal?
The 74ls257 is 4x 2-to-1 multiplexers, so you can put two values in and then select which one to output. The two 24ls257 on the board take the 16 bit value as it comes from the EPROM and produce 8 bit values. The lowest address line A0 selects which half to output.
The effect is that it turns the 16 bit EPROM into an "8 bit" EPROM with the same capacity. This was suggested by twistedsymphony, as you can't get large size 8 bit EPROMs any more, and this was used by at least one official cartridge. You can actually get 16 bit EPROMs with a byte mode so you don't need these extra chips, for example AS29CF160T-55TIN. That seems to be the largest 5V-compatible type that is still available. Though they are not cheap (Digikey has them for £7.84 each), you need special adapters to program them, and soldering them is tricky.
Larger sizes are only available as 3.3V types which opens another can of worms. At that point it'll almost be easier to make a multi, and I'll leave that to the professionals. :)

This is only used to store sound sample data, and always active on all games.
For Espgaluda it /has/ to be either the program rom or the pal? There's nothing else involved, right?


As a funny side note: completely missed installing C1 on DOJ and that's the only prog board I have that works :rolleyes:


Edit: socketed P1 on Espgaluda, tried FOUR different eproms in there (using the known-working files posted earlier) and it still hangs. It has to be the GAL, doesn't it?
Sounds likely that it can be the GAL. As I said, I've got a bunch of mine programmed that I plan to send to you, I just need to get around to clearing a table and setting up my equipment to test them. If there is a problem we either need to update the instructions, or I need to fix the boards.

Katsui is an interesting problem, as it should pass almost all address lines through unchanged, and just generate the chip select for the cartridge ROM in the right range. All that is different between the normal and trap mode is the highest address line passed through from the Jumper. If you feel like experimenting you change the script to swap the position of the original and the trap version in the EPROM.

I attached the schematic for the Prog board: Most of the program ROM goes directly to the connector, the banking/mapping is done in the GAL. Labels that start with "U*" are unknown, either because they are not connected to anything, or because they go directly to the ASIC. I assume some of them are for interrupts or DMA modes, but they shouldn't be required for conversions.

Hmm.. now that I think about it: The design relies on the GAL having an internal pull-up resistor on inputs, if for whatever reason this is something that not all GAL types have you could try a 10k resistor from the page select input of the GAL to +5V, with the jumper open. If you play the trap version of Ketsui the jumper is closed, which grounds the input no matter what.
 

Attachments

  • PgmProgSchematic.pdf
    267.9 KB · Views: 295
Last edited:
Nice find actually, I drive myself crazy sometimes trying to get a GAL to behave, as they are obsolete chips usually sourced from overseas. These are new and fast, and in stock (at mouser last time I checked). I bought like 20 of them.
I use the device selection tool in those stores a lot. I used to use the one from Farnell, but some website redesign seems to have it rendered completely useless. Currently I use the one in Digitkey a lot, but the Mouser one is fine as well.
I usually start with selecting the "active" and "in stock" options, then limit the selection by voltage input and package type. So for PAL/GAL this limits the selection to ATF16V8* and ATF22V10*. Apparently the ATF22V10 uses a slightly uncommon algorithm, so not every programmer can write to them. Both are designed to replace a whole set of older PAL and GAL types.
There are some variants of both, as far as I can tell this is often just speed and temperature range, but sometimes extra features like low-power modes.
The danger with these new type is that sometimes the timing is different to the original types, and some designs rely on the correct delay. For example replacing the PAL in a C64 is tricky for that reason, and some cartridges that do some dodgy stuff that relies on the original behaviour fail.
 
It could be a speed issue.


Are you using -25 or -15 GALs? Also you can try swapping out the 74LS chips for 74F chips. On Hammy's NA multi during testing we ran into issues wirth some LS chips not running fast enough and had to swap to the Fs

ROMs too... Probably best to use -100 or better and avoid any -120s
 
One quick test would be this alternative for u5 esp:

Code:
PartNo PAL_CE;
Date 03/23/2019;
Revision 01;
Designer Fluffy;
Company None;
Assembly None;
Location None;
Device g16v8;
Name PGM_RG_U5_ESP;

/* Inputs */
Pin 2 = PA20;
Pin 3 = PA21;
Pin 4 = PA22;
Pin 5 = PA23;
Pin 1 = AS;
Pin 8 = PAGE_SELECT;

/* Outputs */
Pin 19 = PA20_I;
Pin 18 = PA21_I;
Pin 13 = P_ROM_OE;
Pin 12 = INT_P_ROM_OE;

/* Logic */
PA20_I = PA20;
PA21_I = 'b'0;
P_ROM_OE = AS # PA21 # PA22 # PA23;
INT_P_ROM_OE = 'b'1;
This disables the page selection and always accesses the lower page. If this fixes the non-trap Ketsui and Espgaluda then it is definitely jumper-related.
 
@Fluffy thanks for taking the time to explain to me how those work. I'd definitely taken a different understanding from what I'd quoted.

TONS of info since I went to bed. Let's see.

@twistedsymphony the GALs are all 15, aside from one on DOJ next to the T1/T2 roms: that one's 25.

Per @acblunden2 's cart, this is the GAL I'm using everywhere (again except for that DOJ one).
https://www.digikey.com/product-detail/en/ATF16V8B-15PU/ATF16V8B-15PU-ND/1118926/?itemSeq=330026708

Between that and the 74LS I wonder why @xodaraP and I are the oddballs out. Others have used the same parts from the same digikey cart and had no issues/

Maybe they didn't actually play their games, just booted, saw it turned on and decided they were successful? I believe @theoddtech has Ketsui non-working as well if memory serves.

DOJ is laying on my desk, so I checked and the roms are all 100 aside from two that are scratched up so bad you can't tell. I'll peel the stickers back on Ketsui/Espgaluda after breakfast and report back.

I'm not sure what I have on hand for resistors, and unless I get lucky in a drawer I don't have any GALs on hand (just ordered 40 a few days ago after realizing I didn't have them for another project).
 
Per @acblunden2 's cart, this is the GAL I'm using everywhere (again except for that DOJ one).
https://www.digikey.com/product-detail/en/ATF16V8B-15PU/ATF16V8B-15PU-ND/1118926/?itemSeq=330026708

Between that and the 74LS I wonder why @xodaraP and I are the oddballs out. Others have used the same parts from the same digikey cart and had no issues/

Maybe they didn't actually play their games, just booted, saw it turned on and decided they were successful? I believe @theoddtech has Ketsui non-working as well if memory serves.
I am using those GAL as well, which makes it weird.

I've got an arcade cabinet in my office (closed at the moment), and I regularly played all 3 games. Before that I coin-fed through all games to see the ending.
I'm not sure what I have on hand for resistors, and unless I get lucky in a drawer I don't have any GALs on hand (just ordered 40 a few days ago after realizing I didn't have them for another project).
If you don't have resistors try the alternate script. That should give an indication if that is the problem without soldering extra bits. GALs are flash based, I think the data sheet said that it should allow a few 100 rewrites.

About the speed: IIRC the M68k is clocked at 20 Mhz, which should be a 50ns period, and I think it takes 4 bus cycles on the M68k to do a read. Unless the CPU in the PGM is some variant with faster bus timing the 15ns GAL should be more than enough.

Apparently EPROMs do get slower with age, but if you tried 4 different chips I don't expect they are the problem.
 
Last edited:
If you don't have resistors try the alternate script. That should give an indication if that is the problem without soldering extra bits. GALs are flash based, I think the data sheet said that it should allow a few 100 rewrites.
I'd missed this line first round.

No issues making a .pld from your script, but I'm unsure how to make it into the .jed file that my programmer expects.
 
Back
Top