There's a lot of great hacked street fighter 2 arcade rom dumps that came from completely bootlegged arcade boards. Only a couple of these rom dumps were designed to be burned into eproms and used on a regular cps1 street fighter 2 champion edition pcb. The hacked / bootleg rom dumps that directly work on a regular CE board are:
ranbow set 3
red wave
possibly v004 / accellerator part 1 but these hacks suck so much I never bothered testing them out
I also found out that the accelerator part 2 hack works fine on a cps1 if you just pad the 21 rom to 512k
Now moving onto the far more complicated dumps are the m5 and m7 dumps. These dumps are Anything but ready to be copied and pasted into the champion edition zip to be played under the regular cps1 profile. The m5 / m7 dumps have the files split in an interlaced pattern:
The top hex is from the regular sf2 champion edition rom, the second / third hex boxes are from the m5 hack dumps
I did some web searching and wound up on this site:
http://www.darkfader.net/toolbox/
I downloaded the "interleave.zip" tool. It's a dos command based program so I wrote a batch file for it that takes files named 1, 2, and combines them back together in the regular interleaved pattern. Doing so made the hex look just like the champion edition rom dump
Then I split the file into the two 512 k separate files it needs. I split the roms at the proper spot and copied them into the sf2ce folder and it ran but unfortunately the sprite layer is flickering. The good news is that everything else works perfectly, audio is fine, controls are fine, even all the m5 hacks are running great even though the system is running it like it would be on a normal cps1. So I've managed to decrypt these roms on my own using tools I found on the net. I tested this M5 dump running as CE in multiple emulators and each emulator has the graphics flickering. I even did the same process on the m7 hack and got the same results, it ran but gave me flickering graphics in the emulator when loaded under the normal cps1 profile.
I also seem to have found the code that makes it run right.
This's taken from the latest release of cps1.c
1336 /* from here onwards the CPS-B board has suicide battery and multiply protection */
1262 /* name CPSB gfx mapper in2 in3 out2 kludge */
1359 {"sf2ce", CPS_B_21_DEF, mapper_S9263B, 0x36 },
1379 {"sf2m5", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
it seems to be calling kludge, found some kludge code
1840 /* Some of the sf2 hacks use only sprite port 0x9100 and the scroll layers are offset */
1841 if (state->m_game_config->bootleg_kludge == 1)
1842 {
1843 state->m_cps_a_regs[CPS1_OBJ_BASE] = 0x9100;
1844 state->m_obj = cps1_base(machine, CPS1_OBJ_BASE, state->m_obj_size);
1845 scroll1xoff = -0x0c;
1846 scroll2xoff = -0x0e;
1847 scroll3xoff = -0x10;
1848 }
1849 else
1850 {
1851 state->m_obj = cps1_base(machine, CPS1_OBJ_BASE, state->m_obj_size);
1852 scroll1xoff = 0;
1853 scroll2xoff = 0;
1854 scroll3xoff = 0;
1855 }
also I'm pretty certain this's what causes the sprite flickering issue.
2337 /* some sf2 hacks draw the sprites in reverse order */
2338 if (state->m_game_config->bootleg_kludge == 1)
2339 {
2340 base += state->m_last_sprite_offset;
2341 baseadd = -4;
2342 }
2343 else
2344 {
2345 baseadd = 4;
2346 }
2347
I'm going to assume that the graphic flickering is caused by it drawing the sprites in reverse order. The sprite offeset just makes sprites draw in the wrong areas in the menu
(more random code that might be relevant)
434 /* CPSB ID multiply protection unknown ctrl priority masks palctrl layer enable masks */
448 #define CPS_B_21_DEF 0x32, -1, 0x00,0x02,0x04,0x06, 0x08, -1, -1, 0x26,{0x28,0x2a,0x2c,0x2e},0x30, {0x02,0x04,0x08,0x30,0x30}
Link is here:
http://mamedev.org/source/src/mame/video/cps1.c.html
It looks like someone would need to hack the roms to not draw sprites in reverse order...don't know if I could do that...I have no idea how to hack the rom to draw sprites in the proper order. The sprite offset doesn't cause any real issues but the sprite reverse order thing causes flickering and that's no good