Jaleco Mega System 32 cart conversions??

FYI literally a month after my last post in the thread I decided to look into the MS32 security and built a tool to decrypt and re-incript the ROMs and published it on GitHub: https://github.com/twistedsymphony/ms32_recrypt

The result is that you can convert any Cart to any other game., just re-encrpt the ROMs to match the chip on your donor board.
thanks, if converting from same security chip group e.g Idol Janshi Suchie-Pai II TO P47-ACES then there is not need to patch any roms, burn mame roms and put the chips at the right place ?
 
thanks, if converting from same security chip group e.g Idol Janshi Suchie-Pai II TO P47-ACES then there is not need to patch any roms, burn mame roms and put the chips at the right place ?
correct.
for Janshi Suchie-Pai II to P47 Aces it's just removing the old ROMs and installing the new ROMs.
if you're lucky your Janshi board has the ROMs already socketed (sometimes they are).

Also note that these games are sensitive to the speed of the program ROMs (use 100ns or better)
 
can you please provide links to these eproms, programmer to use and sockets to get ? First time trying to do anything like this.
 
I use a t56, but the t76 is the latest. I've abused it and its held up great. T48 is somewhat depreciated now.
Sockets are on Digikey or mouser. 42 pin or less depending on eprom.
I order my eproms used from china off ebay. Failure rate of 10% is expected. They are much cheaper if you buy extra, test them though to make sure you aren't getting junk.
So for example 27c322-10 is 100ns
27c322-85 is 85ns
27c322-15 is 150ns
They never get faster than 45 or 50 ns and 100ns is universally usually fine.
 
can you please provide links to these eproms, programmer to use and sockets to get ? First time trying to do anything like this.
Here are some generic instructions for how to investigate simple ROM swap conversions for any game.

1. Find ROM definition both the donor and the target game in the MAME source code.
mame source code is on GitHub here: https://github.com/mamedev/mame/tree/master/src/mame
you'll want to find a folder for the manufacturer, then the .cpp file for the specific hardware driver.
in this case you're looking for the "jaleco" folder and the "ms32.cpp" file,
https://github.com/mamedev/mame/blob/master/src/mame/jaleco/ms32.cpp
file naming isn't super consistent, sometimes you've got to poke around to find it.

once you're in the driver file, scroll all the way to the bottom to see the game definitions for the hardware, looks like this:
Code:
GAME( 1994, hayaosi2,  0,        ms32,              hayaosi2, ms32_state,               init_ss92046_01, ROT0,   "Jaleco",        "Hayaoshi Quiz Grand Champion Taikai", MACHINE_IMPERFECT_GRAPHICS )
GAME( 1994, hayaosi3,  0,        ms32,              hayaosi3, ms32_state,               init_ss92046_01, ROT0,   "Jaleco",        "Hayaoshi Quiz Nettou Namahousou (ver 1.5)", MACHINE_IMPERFECT_GRAPHICS )
GAME( 1994, hayaosi3a, hayaosi3, ms32,              hayaosi3, ms32_state,               init_ss92046_01, ROT0,   "Jaleco",        "Hayaoshi Quiz Nettou Namahousou (ver 1.2)", MACHINE_IMPERFECT_GRAPHICS )
GAME( 1994, bbbxing,   0,        ms32,              bbbxing,  ms32_state,               init_ss92046_01, ROT0,   "Jaleco",        "Best Bout Boxing (ver 1.3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL )
GAME( 1994, suchie2,   0,        ms32,              suchie2,  ms32_state,               init_suchie2,    ROT0,   "Jaleco",        "Idol Janshi Suchie-Pai II (ver 1.1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
GAME( 1994, suchie2o,  suchie2,  ms32,              suchie2,  ms32_state,               init_suchie2,    ROT0,   "Jaleco",        "Idol Janshi Suchie-Pai II (ver 1.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
GAME( 1995, desertwr,  0,        ms32,              desertwr, ms32_state,               init_ss91022_10, ROT270, "Jaleco",        "Desert War / Wangan Sensou (ver 1.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
GAME( 1995, gametngk,  0,        ms32,              gametngk, ms32_state,               init_ss91022_10, ROT270, "Jaleco",        "The Game Paradise - Master of Shooting! / Game Tengoku - The Game Paradise (ver 1.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
GAME( 1995, tetrisp,   0,        ms32,              tetrisp,  ms32_state,               init_ss92046_01, ROT0,   "Jaleco / BPS",  "Tetris Plus (ver 1.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
GAME( 1995, p47aces,   0,        ms32,              p47aces,  ms32_state,               init_ss92048_01, ROT0,   "Jaleco",        "P-47 Aces (ver 1.1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
GAME( 1995, p47acesa,  p47aces,  ms32,              p47aces,  ms32_state,               init_ss92048_01, ROT0,   "Jaleco",        "P-47 Aces (ver 1.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
GAME( 1995, akiss,     0,        ms32,              suchie2,  ms32_state,               init_kirarast,   ROT0,   "Jaleco",        "Mahjong Angel Kiss (ver 1.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
GAME( 1996, gratia,    0,        ms32,              gratia,   ms32_state,               init_ss92047_01, ROT0,   "Jaleco",        "Gratia - Second Earth (ver 1.0, 92047-01 version)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
GAME( 1996, gratiaa,   gratia,   ms32,              gratia,   ms32_state,               init_ss91022_10, ROT0,   "Jaleco",        "Gratia - Second Earth (ver 1.0, 91022-10 version)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
GAME( 1996, kirarast,  0,        ms32,              kirarast, ms32_state,               init_kirarast,   ROT0,   "Jaleco",        "Ryuusei Janshi Kirara Star", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
GAME( 1997, tp2m32,    tetrisp2, ms32_invert_lines, tp2m32,   ms32_state,               init_ss91022_10, ROT0,   "Jaleco",        "Tetris Plus 2 (ver 1.0, MegaSystem 32 Version)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
GAME( 1997, bnstars,   bnstars1, ms32,              suchie2,  ms32_state,               init_bnstars,    ROT0,   "Jaleco",        "Vs. Janshi Brandnew Stars (Ver 1.1, MegaSystem 32 Version)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
GAME( 1996, wpksocv2,  0,        ms32_invert_lines, wpksocv2, ms32_state,               init_ss92046_01, ROT0,   "Jaleco",        "World PK Soccer V2 (ver 1.1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
you'll see for each "GAME(" you'll have the year, and the "mame ROM" name followed by other stuff, and the full game name at the end of each line.
for MS 32 you can see here the "init_" sections also tell you which security chip they're using.
find the "mame ROM" name for the donor and target games then scroll up, and find the ROM defintion for the games which will be the "ROM_START(" areas and looks like this:
Code:
ROM_START( suchie2 )
	ROM_REGION( 0x200000, "maincpu", 0 ) /* V70 code */
	ROM_LOAD32_BYTE( "mb-93166-26_ver1.1.26", 0x000003, 0x80000, CRC(e4e62134) SHA1(224b3e8dba56009bf2af6eceb7495e60302a6360) ) /* uses MB-94166 EB91022-20101 rom board */
	ROM_LOAD32_BYTE( "mb-93166-27_ver1.1.27", 0x000002, 0x80000, CRC(7bd00919) SHA1(60565b5e1da5fee00ac4a7fb1202d7150dab49ee) )
	ROM_LOAD32_BYTE( "mb-93166-28_ver1.1.28", 0x000001, 0x80000, CRC(aa49eec2) SHA1(173afc596caa1c464fc3247cb64d36c1d97a1520) )
	ROM_LOAD32_BYTE( "mb-93166-29_ver1.1.29", 0x000000, 0x80000, CRC(92763e41) SHA1(eb593bbb586661c4c4e8728d845b146974d0bdf8) )

	ROM_REGION( 0x1000000, "sprite", 0 ) /* sprites */
	ROM_LOAD32_WORD( "mb94019-02.1",  0x000002, 0x200000, CRC(f9d692f2) SHA1(666df55d26e00be39073173fa3616ac9dafbe615) )
	ROM_LOAD32_WORD( "mb94019-01.13", 0x000000, 0x200000, CRC(1ddfe825) SHA1(27fbf492fdb4f0b4b8db18330e840c130213e15e) )
	ROM_LOAD32_WORD( "mb94019-04.2",  0x400002, 0x200000, CRC(24ca77ec) SHA1(a5c575224ab276cbed5785f40fc0d35dd2748e74) )
	ROM_LOAD32_WORD( "mb94019-03.14", 0x400000, 0x200000, CRC(b26426c4) SHA1(2d95137edea7d0c380dd8fd99852254ad3e4c837) )
	ROM_LOAD32_WORD( "mb94019-06.3",  0x800002, 0x200000, CRC(c8aa4b57) SHA1(55da6a43ba6f0cb32f5d024f67cae21d04019d2a) )
	ROM_LOAD32_WORD( "mb94019-05.15", 0x800000, 0x200000, CRC(1da63eb4) SHA1(8193ad27ddfe6ba242b73082d1b4a400e88401ba) )
	ROM_LOAD32_WORD( "mb94019-08.4",  0xc00002, 0x200000, CRC(4b07edc9) SHA1(22aaa923a94a7bec997d2adabc8ec2c7696c33a5) )
	ROM_LOAD32_WORD( "mb94019-07.16", 0xc00000, 0x200000, CRC(34f471a8) SHA1(4c9c358a9bfdb436a211caa14d085e631609681d) )

	ROM_REGION( 0x200000, "roztiles", 0 ) /* roz tiles */
	ROM_LOAD( "94019-09.11", 0x000000, 0x200000, CRC(cde7bb6f) SHA1(47454dac4ce67ce8d7e0c5ef3a732477ac8170a7) )

	ROM_REGION( 0x100000, "bgtiles", 0 ) /* bg tiles */
	ROM_LOAD( "mb94019-12.10", 0x000000, 0x100000, CRC(15ae05d9) SHA1(ac00d3766c42ccba4585b9acfacc81bcb940ac26) )

	ROM_REGION( 0x080000, "txtiles", 0 ) /* tx tiles */
	ROM_LOAD( "mb-93166-30_ver1.0.30", 0x000000, 0x080000, CRC(0c738883) SHA1(e552c1842d759e5e617eb9c6cc178620a461b4dd) )

	ROM_REGION( 0x40000, "audiocpu", 0 ) /* z80 program */
	ROM_LOAD( "mb-93166-21_ver1.0.21", 0x000000, 0x040000, CRC(e7fd1bf4) SHA1(74567530364bfd93bffddb588758d8498e197668) )

	ROM_REGION( 0x400000, "ymf", 0 ) /* samples */
	ROM_LOAD( "mb94019-10.22", 0x000000, 0x200000, CRC(745d41ec) SHA1(9118d0f27b65c9d37970326ccf86fdccb81d32f5) )
	ROM_LOAD( "mb94019-11.23", 0x200000, 0x200000, CRC(021dc350) SHA1(c71936091f86440201fdbdc94b0d1d22c4018188) )

	ROM_REGION( 0x000001, "motherbrd_pals", 0) /* Motherboard PAL */
	ROM_LOAD( "91022-01.ic83", 0x00000, 0x00001, NO_DUMP ) /* AMI 18CV8-15. */
ROM_END

and

Code:
ROM_START( p47aces )
	ROM_REGION( 0x200000, "maincpu", 0 ) /* V70 code */
	ROM_LOAD32_BYTE( "p-47_aces_3-31_rom_26_ver1.1.26", 0x000003, 0x80000, CRC(99c0e211) SHA1(6fc3b1e5ddadda85934145a2e62b55ccb2011fb5) ) /* Labeled "P-47 ACES 3/31  ROM 26 Ver1.1" */
	ROM_LOAD32_BYTE( "p-47_aces_3-31_rom_27_ver1.1.27", 0x000002, 0x80000, CRC(2a0c107a) SHA1(1d83bd55acaad62a5823f09b1683f846631fdeca) ) /* Labeled "P-47 ACES 3/31  ROM 27 Ver1.1" */
	ROM_LOAD32_BYTE( "p-47_aces_3-31_rom_28_ver1.1.28", 0x000001, 0x80000, CRC(53509d28) SHA1(44e6388ade514bb747a84bfef17f852393b44a37) ) /* Labeled "P-47 ACES 3/31  ROM 28 Ver1.1" */
	ROM_LOAD32_BYTE( "p-47_aces_3-31_rom_29_ver1.1.29", 0x000000, 0x80000, CRC(91e7b7da) SHA1(f3a0e193c59e285d97a7ea9bc92a7b3c5c009532) ) /* Labeled "P-47 ACES 3/31  ROM 29 Ver1.1" */

	ROM_REGION( 0xe00000, "sprite", 0 ) /* sprites */
	ROM_LOAD32_WORD( "mr94020-02.1",  0x000002, 0x200000, CRC(28732d3c) SHA1(15b2687bcad31793fc7d6a9dc3eccb7ad9b5f659) )
	ROM_LOAD32_WORD( "mr94020-01.13", 0x000000, 0x200000, CRC(a6ccf999) SHA1(5d32fb6f6987ede6c125bec9581da4695ad64dff) )
	ROM_LOAD32_WORD( "mr94020-04.2",  0x400002, 0x200000, CRC(128db576) SHA1(f6561f54f6b95842a5f14d29682449bf0d837a85) )
	ROM_LOAD32_WORD( "mr94020-03.14", 0x400000, 0x200000, CRC(efc52b38) SHA1(589caaaba4e3ddaf41e05f0f12b8d4bc6d63fa5c) )
	ROM_LOAD32_WORD( "mr94020-06.3",  0x800002, 0x200000, CRC(324cd504) SHA1(79b3ef3ae0aa14d903113ccf5b57d459c329cf12) )
	ROM_LOAD32_WORD( "mr94020-05.15", 0x800000, 0x200000, CRC(ca164b17) SHA1(ea1cb0894632442f40d321b5843125f874768aae) )
	ROM_LOAD32_WORD( "mr94020-08.4",  0xc00002, 0x100000, CRC(4b3372be) SHA1(cdc7d7615b6b5d45ca071b2967980dc6c6294ac0) )
	ROM_LOAD32_WORD( "mr94020-07.16", 0xc00000, 0x100000, CRC(c23c5467) SHA1(5ff51ecb86ccbae2af160599890e13a7cc70072d) )

	ROM_REGION( 0x400000, "roztiles", 0 ) /* roz tiles */
	ROM_LOAD( "mr94020-11.11", 0x000000, 0x200000, CRC(c1fe16b3) SHA1(8b9d2483ba06ab8072676e73d949c696535b3d26) )
	ROM_LOAD( "mr94020-12.12", 0x200000, 0x200000, CRC(75871325) SHA1(9191263a52ec6ac325cf6130b35be7cdd1ec2f50) )

	ROM_REGION( 0x400000, "bgtiles", 0 ) /* bg tiles */
	ROM_LOAD( "mr94020-10.10", 0x000000, 0x200000, CRC(a44e9e06) SHA1(ff51796e160d996e931b92049e6214982f270caa) ) /* unlike other sets, the ROM number & socket number match - it's correct */
	ROM_LOAD( "mr94020-09.9",  0x200000, 0x200000, CRC(226014a6) SHA1(090bdc1f6d2b9d33b431dbb49a457a4bb36cd3ad) )

	ROM_REGION( 0x080000, "txtiles", 0 ) /* tx tiles */
	ROM_LOAD( "p-47_ver1.0-30.30", 0x000000, 0x080000, CRC(7ba90fad) SHA1(c0a3d4458816f00b8f5eb4b6d4531d1abeaccbe5) ) /* Labeled "P-47 Ver1.0 -30" */

	ROM_REGION( 0x40000, "audiocpu", 0 ) /* z80 program */
	ROM_LOAD( "p-47_ver1.0-21.21", 0x000000, 0x040000, CRC(f2d43927) SHA1(69ac20f339a515d58cafbcd6f7d7982ca5cda681) ) /* Labeled "P-47 Ver1.0 -21" */

	ROM_REGION( 0x400000, "ymf", 0 ) /* samples - 8-bit signed PCM */
	ROM_LOAD( "mr92042-01.22", 0x000000, 0x200000, CRC(0fa26f65) SHA1(e92b14862fbce33ea4ab4567ec48199bfcbbdd84) ) // common samples
	ROM_LOAD( "mr94020-13.23", 0x200000, 0x200000, CRC(547fa4d4) SHA1(8a5ecb3300646762f63d37a27e643e1f6ce5e775) )

	ROM_REGION( 0x000001, "motherbrd_pals", 0) /* Motherboard PAL */
	ROM_LOAD( "91022-01.ic83", 0x00000, 0x00001, NO_DUMP ) /* AMI 18CV8-15. */
ROM_END

So this will tell you all of the ROMs used by both games. sometimes PALs/PLDs are included here but for the most part MAME doesn't use PLDs and rarely has dumps, in short just ignore PALS/PLDS if MAME mentions them here. The "ROM_REGION" sections breaks down the individual ROMs into groups so here you have the maincpu (program ROMs), sprite ROMs etc.

2. Reading the ROM definitions to understand what ROMs you need
So how do you read all of this?
Well, you'll have 1 ROM_LOAD line per physical ROM chip, there are a few different ROM_LOAD, so you might see ROM_LOAD16 for 16-bit ROM configurations or ROM_LOAD32 here for 32-bit ROM configuration. I won't get too far into detail here as it's not super relevant for your case but the first parameter is the ROM file name that you'll find inside the "mame ROM" zip file. usually the text before the "." is what is written on the ROM label, and after the "." is the position on the physical PCB. I say USUALLY because it's not always the case but most people maintaining mame try to use this convention.
the next number "0x0000000" or similar is the location of the ROM data within the ROM region in hexidecmial so a 0x000000 means it's the first ROM in the region. the 3rd number is also a hexidicmal number and this is the SIZE of the ROM data in that ROM, so the starting position plus the size should equal the position of the next ROM in the region.

So you can look at your donor game and the target game and compare them side by side, so you can find the ROM on your donor board and that should tell you where the new ROM from the target game gets installed.

that 3rd number (the size) helps tell you which ROM chip to use. I made a chart for this:
ts-eprom-xref_v1.1.png

so see the "in MAME" column, that number will match the size you see in that 3rd parameter of ROM_LOAD, then the last column of that chart is the model number of the ROM you use. the "on disk" column will tell you the size of the file as it appears in your computer once you unzip it.
you may notice some overlap, in those instance check the first column for the number of pins on the chip. Even then there are still a few common duplicates, namely "27c4098" vs "27c400" and "27c301" vs "27c010" for these, you're going to have to look at your donor board to see if what the original board has the type silk-screened on it or if you can read the number off the original donor ROM itself. If you STILL can't tell after that then you either have to start checking ROM pin-outs and use a multi-meter to figure it out, or "phone a friend" to see if they know. For MS32 you should be able to tell easily from the information I've posted above and a quick peek at your PCB.

3. Programming the ROMs
once you've got the files and the ROMs in hand you need to get the data from the files onto the ROMS. you'll need a programmer that supports your chips.
Personally I use a Xeltek 580U, it's an obsolete programmer but I love it and use it almost daily. they don't make that model anymore and it's been superseded by the Xeltek 610P. Programmers can be expensive, I think my model runs about $500-$600 new, I bought mine used for half that. There are a number of cheaper sub "$150" Chinese programmers. I've used a number of the popular ones and honestly they're so unreliable and flaky, slow operation, failed writes, clunky adapters that cause it to take literally 8x longer to burn larger ROMs. I personally feel the higher price for a nicer brand like Xeltek is worth every penny if you plan to do this kind of work for more than a few boards. and if you plan to do less than that, then use a service like https://buyicnow.com/ you send them the files and specify the ROM models and they ship you pre-programmed ROMs. The price is pretty good it's basically a few cents over the ROM cost to get them programmed. IMO this is the better option over buying a cheap programmer if you're only doing one or two games. Otherwise buy a good programmer, and if you end up not using it, then resell it, the good ones hold their value.

The actual process of programming in software is going to be different for each programmer. Each programmer has it's own unique software so the screens and buttons and menu names are going to be different but in general the process is:
1. select the model of the chip you're programming (often called the "device")
2. load your ROM file into the buffer of the programming software
3. blank check the ROM to make sure it's empty before you begin
4. program the ROM (writes the data from the buffer into the chip)
5. verify the ROM (reads the data off of the chip and ensures it matches the file loaded into the buffer)
6. repeat for each chip (though you can skip step 1 if it's the same model)

Where to Buy
EPROMS: I get all of my EPROMs on eBay, they don't make new EPROMs and if you find New/Old stock expect to pay $8-$15 per chip, Nearly every ebay vendor is out of China and they're pulling ROMs out of old junk electronics, cleaning and erasing them and reselling them. This is the norm and the only way if you want to pay $1-$4 per chip (depending on quantity and size). Read reviews as some shady vendors will sell junk ROMs or repaint the labels to look like faster models or more popular brands. As mentioned before if you use buyicnow.com they'll sell you the ROMs and can pre-program them for you. Their price is fair but tends to be in the upper range of what you'd pay on eBay.

Sockets: you can get most sockets on Digikey or Mouser, but Ebay and Amazon sell them from chinese sellers too. AVOID "Machine pin" sockets, these have round holes for the pins and are TERRIBLE to work with, you want the CHEAPER "double-wipe" style which has an inner and outer spring loaded contact for each pin. Make sure they're "2.54mm" spacing as they do make smaller pin spacing sockets that look identical in pictures but will be way too small once you receive them. Also if you're buying sockets in the 28-pin or smaller range make sure you check the width as they can come in both narrow or wide varieties in that pin-count range.

I will say that most major vendors like Digikey and Mouser don't seem to carry 42-pin sockets, and you'll need a lot of those, I tend to just order these on Ebay out of China.

Programmers and Erasers: I talked about this a bit above, in general for any equipment like this I like to find older high-end industrial equipment rather than buying "new". The old stuff is super well built with that said I usually shop for this stuff on ebay. I paid $10 for my chip eraser and it's really nice industrial one that works way better than the $15-$20 "gray box" eraser that you can usually find "new". Similarly programmers as long as the software can run on your modern operating system a 20-year-old name brand industrial model programmer will run circles around "new" budget equipment.
 
Last edited:
yeah I've considered it.
2 paths, one is to make a multi that plugs into the ROM sockets of an existing cart. The other is to decrypt all the games and make a replacement cart without any encryption, similar to Taito F3.

1st path is nice because it preserves the original encryption hardware
2nd path is nice because you don't need to sack a cart.

Issue is the security chip. I'd need to find a way to implement the cart without it, but at least I've already got the decryption part done :D

I will say I'm a bit lazy on this one because I own a full set of original carts already and there are other projects that have my eye :P
 
Does the security chip on this platform also implement pcb logic.
I know on carts like mlc, you can remove the chip if converting. Hypothetically considered trying the same thing on a beat up stv decathelete cart to see if conversion is possible.
Obviously this semi permanently alters original hardware.
Another fine point is many multis lack encryption. As nice as the feature is, original is sporadically implemented.
My opinion is whatever saves the most og hardware and gets it to the goal line and then leave room to add features later.
Decryption saves many pcbs, and nobody can argue its original, which is fine.
I know there's been pushback at times on releasing pals & how tos due to the concern of faking originals.
That being said, I feel like the difference between a mint original & something for a donor multi is fairly obvious.
Curious on others thoughts.
 
AFAIK the chips are only used to encrypt the graphics. However those graphics ROM that are encrypted pass through the chip on the ROM board before reaching the mobo, so if you remove the chip you've also effectively disconnected those ROMs.

also the encryption is implemented in such a a way that if it doesn't match it causes a full-screen black tile to take priority over all other graphics effectively making the game play blind.
 
Ah. Jaleco really went to the nines on their security during that era.
Guessing there's no way to do a simple jumper if the chip is removed based on how many lines would be disconnected.
I suppose a flex is possible but that's beyond most peoples comfortable soldering level by a lot.
It is excellent we can use practically any cart now though which is a massive step towards a multi.
 
also the encryption is implemented in such a a way that if it doesn't match it causes a full-screen black tile to take priority over all other graphics effectively making the game play blind.

That sounds like a really cool / effective security measure... also super annoying, but... respect..
 
FYI literally a month after my last post in the thread I decided to look into the MS32 security and built a tool to decrypt and re-incript the ROMs and published it on GitHub: https://github.com/twistedsymphony/ms32_recrypt

The result is that you can convert any Cart to any other game., just re-encrpt the ROMs to match the chip on your donor board.

Absolutely outstanding job. Thanks truly for your time!

You guys rock!
 
Last edited:
correct.
for Janshi Suchie-Pai II to P47 Aces it's just removing the old ROMs and installing the new ROMs.
if you're lucky your Janshi board has the ROMs already socketed (sometimes they are).

Also note that these games are sensitive to the speed of the program ROMs (use 100ns or better)
how many 27C322s and sockets would be needed? I am thinking of taking this one.
Thanks
 
Hi guys.
Thanks for the detailed info on how to do conversions on this system @twistedsymphony!
I'm a newbie and love digging and learning so I step up and try to convert an Idol Janshi Suchie-Pai II to a P47 Aces... first time ever trying to do such thing... but hey, what if achieve it?!
So far, so good: I desoldered all needed chips (thanks for the detailed pics @AlxUnderBase), installed sockets but here comes my doubt due to lack of experience: I'm ready to program all eproms and my concern is that i can't tell the difference whether i have to use roms from this website http://daifukkat.su/hacks/p47aces_sfx/ (have no idea how to patch yet) or this one https://mdk.cab/game/p47aces ...Also, i don't really know how to do what @rtw mentioned on how to make the game work: Or use the latest version dumped by @Derick2k which fixes the issue 😃 it's in MAME
Can some one point me in the right direction? I know that majong games need a daughter board (i don't have it) and would like to play the game just in "normal" without the daughterboard.

Thanks in advance!
 
Back
Top