What's new

Mrhide

Enlightened
Joined
Aug 17, 2016
Messages
2,232
Reaction score
3,837
Location
Montréal, Canada
So I got this 5$ board that I tried and the daughter rom board is missing...

thanks to LukeMorse (
) I see he gets the exact same results as me when his daughter board is installed "backwards".

I see other boards without that daughter boards working and I see that ROM1 to ROM4 are filled with 4 x "nec 8831xd" instead of 16x 8k1 (?) on the daughter board (http://www.ym2149.com/arcadepcb/pcb/snk/pow_a7008-sub_pcb_partside.jpg)

I figure I can join 4x4 and get this board working but I can't quite understand which rom I need ...

Help?

a working board without the daughter board:
pow.jpg


the NEC chips on the left
s-l1600.jpg



my board with these 4 sockets unpopulated.
IMG_1985.jpg



Thanks!
 
Interesting... looking at the MAME driver: https://github.com/mamedev/mame/blob/master/src/mame/drivers/snk68.cpp

it seems that the version without the daughterboard is not dumped!

we could probably make it though.

it looks like that section are the "880" "gfx2" ROMs given the rom sizes on the daughterboard and the fact that those 4 16-bit ROM locations are 40 pin I'd guess that those are either 27c4096 or 27c400, there are two different pinouts there and you'll want to use a multimeter to determine which pinout that location matches.

For ccombining the ROMs there are 16 8bit/1Mbit ROMs. but they're pairs of 8-bit ROMs being used as 16-Bit ROMs so you'll need to interleave those pairs to make 8 16bit/2Mbit images, and then concatenate every 2 to make the 4 16bit/4Mbit images to burn.

assuming that the logic/PLDs aren't different between the two versions of the game I see no reason it shouldn't work. Definitely socket those locations though. the most time consuming part will be pulling all the solder out of those IC locations.
 
For combining the ROMs there are 16 8bit/1Mbit ROMs. but they're pairs of 8-bit ROMs being used as 16-Bit ROMs so you'll need to interleave those pairs to make 8 16bit/2Mbit images, and then concatenate every 2 to make the 4 16bit/4Mbit images to burn.
27c4096 I've got so I will try these.

16 x 8/1
pairs of 8 used as 16
Interleave those pairs to make 8 16/2
concatenate every 2 to make 4 16/4

:huh: X/ :S <X

err... could you please say that in english ? :P
I am understanding that I need to join each 2 roms to create 8 then every 2 to create 4 but the "interleave" part I don't understand how to do?

Thanks!
 
27c4096 I've got so I will try these.
don't just "try" them. verify the pinout first given how these two line up you'd probably be safe attempting to use the wrong one, but on some other scenarios that could lead to burning up chips and/or traces.

just take a multimeter and check if the Vcc and GND pins go to Vcc and GND. altnatively the Address and Data pins should all be routed together between the EPROMs with the OE and CE not routed together.

JEDEC27c4096.png

eprom_27C400_pinout.jpg


err... could you please say that in english ?
so when you have an 8-bit EPROM it has 8 output pins (8 bits of data for a given address).
when you have a 16-bit EPROM it has 16 output pins (16 bits of data for a given address).

so when you're using 2 8-bit EPROMs to act like a single 16-bit EPROM you basically enable both chips at the same time, give them the same address, and simply have the 8 output pins of one chip be the lower 8-bits and the 8 output pins of the other chip be the upper 8-bits.

when trying to "join" that data for use on a single 16-bit chip you have to "interleave" it. meaning you take 1 byte from the lower chip, then one byte from the upper chip, then one byte from the lower chip, then one byte from the upper chip and so on... imagine joining two stacks of paper except you need to alternate pages from each stack when making the new stack.

There are some hex editors and other ROM tools that will perform this for you. Alternatively MAME interleaves the data when it's loaded into memory so you could also load the game in MAME debugger and dump out that memory region.
 
Last edited:
7cd0bedf95e1090c0684d2f39c195b30.png



Arigato Sensei!

After beeping, it is indeed 27c400 and not 27c4096 ... which of course I don't have.

Will find some and see how to interleave! ... or if anyone has 27c400 and wants to help, I'm all hears! :thumbup:


Thanks again twistedsymphony. much appreciated.
 
Not sure if you've made any progress on this but earlier tonight I had a Konami Super Contra with graphics issues and discovered that, like POW, the ROM expansion board could be completely eliminated. Since my problem was likely on the expansion board I took the opportunity to try it out and I documented the process: http://solid-orange.com/1738
 
Not sure if you've made any progress on this but earlier tonight I had a Konami Super Contra with graphics issues and discovered that, like POW, the ROM expansion board could be completely eliminated. Since my problem was likely on the expansion board I took the opportunity to try it out and I documented the process: http://solid-orange.com/1738
Ah !! nice work !!
I was still looking for the interleave tool ! thanks for that ! I shall try it ASAP!!
 
so based on the mame code
Code:
ROM_REGION( 0x200000, "gfx2", 0 )   /* sprites */
    ROM_LOAD16_BYTE( "snk880.11a", 0x000000, 0x20000, CRC(e70fd906) SHA1(b9e734c074ee1c8ae73e6041d739ab30d2df7d62) )
    ROM_LOAD16_BYTE( "snk880.15a", 0x000001, 0x20000, CRC(7a90e957) SHA1(9650d7cdbcbbbcdd7f75a1c3c08a195aa456e169) )
    ROM_LOAD16_BYTE( "snk880.12a", 0x040000, 0x20000, CRC(628b1aed) SHA1(1065ef835da03f7d9776e81c225c3ecdd2affae2) )
    ROM_LOAD16_BYTE( "snk880.16a", 0x040001, 0x20000, CRC(e40a6c13) SHA1(7ad9dfc65f8c8b316933f0fdd3bc7a243d6eff65) )
    ROM_LOAD16_BYTE( "snk880.13a", 0x080000, 0x20000, CRC(19dc8868) SHA1(82aaf93fc8f4b3bf947d373d0f41cc0044207c34) ) 
    ROM_LOAD16_BYTE( "snk880.17a", 0x080001, 0x20000, CRC(c7931cc2) SHA1(908313d9b7fa4395b5fb79925d068e4f5d354b21) )
    ROM_LOAD16_BYTE( "snk880.14a", 0x0c0000, 0x20000, CRC(47cd498b) SHA1(7fbc007f2d817c26af02fef233f5e0681a17052a) )
    ROM_LOAD16_BYTE( "snk880.18a", 0x0c0001, 0x20000, CRC(eed72232) SHA1(ad614e752cf1d3eac9a04cbc90435f988e90ace7) )
    ROM_LOAD16_BYTE( "snk880.19a", 0x100000, 0x20000, CRC(1775b8dd) SHA1(c01154749379be6e18baa99f4d94d97942f3dd85) )
    ROM_LOAD16_BYTE( "snk880.23a", 0x100001, 0x20000, CRC(adb6ad68) SHA1(ed4323d2dfa3efaa496b17f4719f9566d56725e5) )
    ROM_LOAD16_BYTE( "snk880.20a", 0x140000, 0x20000, CRC(f8e752ec) SHA1(1e1e178303f9af84cbb15249c49a870193ef805f) )
    ROM_LOAD16_BYTE( "snk880.24a", 0x140001, 0x20000, CRC(dd41865a) SHA1(c86f14342beca896784b88920d9e0879af4179ab) )
    ROM_LOAD16_BYTE( "snk880.21a", 0x180000, 0x20000, CRC(27e9fffe) SHA1(e8058db40832b986c5addd22dd69b0308d10ec71) )
    ROM_LOAD16_BYTE( "snk880.25a", 0x180001, 0x20000, CRC(055759ad) SHA1(f9b12320f142075d49d447fb107af99272567d58) )
    ROM_LOAD16_BYTE( "snk880.22a", 0x1c0000, 0x20000, CRC(aa9c00d8) SHA1(1017ed1cc036c6084b71204a998fd05557a6e59f) )
    ROM_LOAD16_BYTE( "snk880.26a", 0x1c0001, 0x20000, CRC(9bc261c5) SHA1(f07fef465191d48ccc149d1a62e6382d3fc0ef9f) )
I thought : 11 +15, 12+16, etc and the resulting 8 to 4:

md out
REM POW tiles
python ts_rom_tool.py -interleave snk880.11a snk880.15a 01a.bin
python ts_rom_tool.py -interleave snk880.12a snk880.16a 02b.bin
python ts_rom_tool.py -interleave snk880.13a snk880.17a 03d.bin
python ts_rom_tool.py -interleave snk880.14a snk880.18a 04e.bin
python ts_rom_tool.py -interleave snk880.19a snk880.23a 05f.bin
python ts_rom_tool.py -interleave snk880.20a snk880.24a 06g.bin
python ts_rom_tool.py -interleave snk880.21a snk880.25a 07h.bin
python ts_rom_tool.py -interleave snk880.22a snk880.26a 08i.bin
type 01a.bin 02b.bin > out/01.bin
type 03d.bin 04e.bin > out/02.bin
type 05f.bin 06g.bin > out/03.bin
type 07h.bin 08i.bin > out/04.bin


and placed them in position 3,4,5 and 6.

and nope. no go.

tried different position (The board list each ROM spot twice: "4" as "ROM 1", "3" as "ROM3", "5" as "ROM 4" and "6" as "ROM 2") no go.

erased ( insert Hammy comment here) roms

tried something different:

python ts_rom_tool.py -interleave snk880.11a snk880.12a 01a.bin
python ts_rom_tool.py -interleave snk880.13a snk880.14a 02b.bin
python ts_rom_tool.py -interleave snk880.15a snk880.16a 03d.bin
python ts_rom_tool.py -interleave snk880.17a snk880.18a 04e.bin
python ts_rom_tool.py -interleave snk880.19a snk880.20a 05f.bin
python ts_rom_tool.py -interleave snk880.21a snk880.22a 06g.bin
python ts_rom_tool.py -interleave snk880.23a snk880.24a 07h.bin
python ts_rom_tool.py -interleave snk880.25a snk880.26a 08i.bin
type 01a.bin 02b.bin > out/01.bin
type 03d.bin 04e.bin > out/02.bin
type 05f.bin 06g.bin > out/03.bin
type 07h.bin 08i.bin > out/04.bin


tried the same permutation, still get big (insert another Hammy comments here) blocks :
IMG_2131.jpg



Time for bed ...
 
I thought : 11 +15, 12+16, etc and the resulting 8 to 4:

md out
REM POW tiles
python ts_rom_tool.py -interleave snk880.11a snk880.15a 01a.bin
python ts_rom_tool.py -interleave snk880.12a snk880.16a 02b.bin
python ts_rom_tool.py -interleave snk880.13a snk880.17a 03d.bin
python ts_rom_tool.py -interleave snk880.14a snk880.18a 04e.bin
python ts_rom_tool.py -interleave snk880.19a snk880.23a 05f.bin
python ts_rom_tool.py -interleave snk880.20a snk880.24a 06g.bin
python ts_rom_tool.py -interleave snk880.21a snk880.25a 07h.bin
python ts_rom_tool.py -interleave snk880.22a snk880.26a 08i.bin
type 01a.bin 02b.bin > out/01.bin
type 03d.bin 04e.bin > out/02.bin
type 05f.bin 06g.bin > out/03.bin
type 07h.bin 08i.bin > out/04.bin
your initial thought here was the correct one, I think maybe you just need to work out which of the new roms belong in which socket.
 
You called?! LOL
I actually have the single layer board and was going to dump it for someone else with the same problem.
It's very low job on ye olde priory list but it will get done sometime :)
 
I thought : 11 +15, 12+16, etc and the resulting 8 to 4:

md out
REM POW tiles
python ts_rom_tool.py -interleave snk880.11a snk880.15a 01a.bin
python ts_rom_tool.py -interleave snk880.12a snk880.16a 02b.bin
python ts_rom_tool.py -interleave snk880.13a snk880.17a 03d.bin
python ts_rom_tool.py -interleave snk880.14a snk880.18a 04e.bin
python ts_rom_tool.py -interleave snk880.19a snk880.23a 05f.bin
python ts_rom_tool.py -interleave snk880.20a snk880.24a 06g.bin
python ts_rom_tool.py -interleave snk880.21a snk880.25a 07h.bin
python ts_rom_tool.py -interleave snk880.22a snk880.26a 08i.bin
type 01a.bin 02b.bin > out/01.bin
type 03d.bin 04e.bin > out/02.bin
type 05f.bin 06g.bin > out/03.bin
type 07h.bin 08i.bin > out/04.bin
your initial thought here was the correct one, I think maybe you just need to work out which of the new roms belong in which socket.
I have burned these again and tried all 24 permutations.
IMG_2141.jpg



Still no go X/
 
You don't need to try every combination, I would have just installed the first chip and see if any graphics look right, and if not tried it in each of the other positions.

There could be a couple of things here
1. the chips are being used in 8-bit mode instead of 16-bit mode, would be kind of a dumb design IMO but not out of the question.
2. the chips are meant to be byte swapped (meaning when interleaving you reverse the files), again would be kind of silly design since the data doesn't appear to be byte swapped once loaded into MAME, but again not out of the question.
3. some other piece of hardware might need to enable these sockets in lieu of the sub-board, would be another silly design choice but not out of the question.

some of these can be answered with the following:
1. is pin 31 tied to 5V or Ground?
2. are the address and data pins of all 4 chips tied together, if not, which ones are separate? (these are the "A#" and "Q#" pins in the pinout a few posts up.
3. the Enable pins (Pin10 and Pin12) are there any tied together between any of the chips? (note that usually one of them will be tied to ground)
4. if the Enable pins aren't tied to ground, can you trace where they go?

you might also consider confirming that your chips are programmed correctly.
-read one, then split it and de-interleave it and then compare against mame to make sure it still matches.
 
Last edited:
I think you can get your 4 roms from MAME, after launching your game and selecting each rom in RAM with an hex editor such as Winhex.
 
I think you can get your 4 roms from MAME, after launching your game and selecting each rom in RAM with an hex editor such as Winhex.
this sounds useful, please explain a little more :)
 
So I got this 5$ board that I tried and the daughter rom board is missing...
Maybe the game developped a problem, it was identified motherboard was at fault and romboard was pulled and kept aside.

I would be curious what result you get by mixing ROMs in MAME but I wouldn't be surprised it's far from the garbage picture you sent.
 
You can simply replace the missing daughterboard with four 27C400 burned with MAME files but you have to interleave them.
 
Maybe the game developped a problem, it was identified motherboard was at fault and romboard was pulled and kept aside.
that's a very good point.

@Mrhide does your game play and have correct sounds without the graphics ROMs installed? it should.
 
I think you can get your 4 roms from MAME, after launching your game and selecting each rom in RAM with an hex editor such as Winhex.
this sounds useful, please explain a little more :)
I launch the game with MAME, I let the game playing a bit then I pause (letter p).
I open Winhex, then I go to Tools/File Tools/Unify Bytewise (8 bit) then I select snk880.11a and snk880.15a (first ones read in snk68 MAME driver), and I save the file as part1.bin (256 kB).
I open part1.bin with Winhex and I check in Tools/Open RAM : MAME (I use MAMEUI) if I find the beginning of the same block of 256 kB in Search/Find Hex Values.
I redo the same process with the other blocks.
 
Last edited:
The game plays *exactly* like the video in the first post (~ 1:50 ). the text is fine, the sound is fine, the controls are working but graphics are big blocks.

When I put the 4x27C400 burned with the interlaced MAME roms, the blocks simply have more colors (see above) but they are still not ok.

@Layer33: send me the 4 files @ mrhide at yahoo dot com and I'll compare them with what I have burned?

I'll try and answer TwistedSymphony pin questions today.

Thanks everyone for the efforts to help!
 
Back
Top