My mistake, I thought you were talking about B-Board since that's what Pascal's comment was about.I'm talking about A-board.
Can you get a good picture of the Mitchel A-Board for comparison purposes?
My mistake, I thought you were talking about B-Board since that's what Pascal's comment was about.I'm talking about A-board.
that's what i figured when you started talking about Mitchell A boardsNot sure what the heck I was high on last night
post that routine please.Well I have 4 Pang3 board sets, 2 of the A boards are 10Mhz, 1 long and 1 short. The other 2 A boards are 12Mhz. It doesn't matter which boards I pair, they all work fine.
I agree with Apocalypse's previous posts about the games basically being controlled by the display refresh speed. I have used Varth with both 10Mhz & 12Mhz boards, on the 10Mhz boards the slow downs were slightly more frequent than the 12Mhz board when there was lots of action on the screen. In my examination of the code on CPS 1 games there would appear to be no way for the game code to determine the CPU speed unless they use a dedicated loop and count vblanks's.
BTW I have developed a dynamic patch routine for C boards. So once a rom set is patched you can swap and change C boards (B01-B21) and the game still runs correctly. So far I have applied it to all versions of 9 of the CPS1 games.
Finally someone understanding my pain!post that routine please.Well I have 4 Pang3 board sets, 2 of the A boards are 10Mhz, 1 long and 1 short. The other 2 A boards are 12Mhz. It doesn't matter which boards I pair, they all work fine.
I agree with Apocalypse's previous posts about the games basically being controlled by the display refresh speed. I have used Varth with both 10Mhz & 12Mhz boards, on the 10Mhz boards the slow downs were slightly more frequent than the 12Mhz board when there was lots of action on the screen. In my examination of the code on CPS 1 games there would appear to be no way for the game code to determine the CPU speed unless they use a dedicated loop and count vblanks's.
BTW I have developed a dynamic patch routine for C boards. So once a rom set is patched you can swap and change C boards (B01-B21) and the game still runs correctly. So far I have applied it to all versions of 9 of the CPS1 games.
Yes just as expected.Not a programmer or anything so i don't know the code behind it, but as a 'gamer' I experienced the same with Final Fight compared on 10 and 12MHz boards.
Less apparent slow downs on the 12MHz board
You just have to replace then 10Mhz crystal by a 12Mhz. The 68k supports quite well overclocking.Also there are many wrong beliefs regarding the CPU speed. The 12Mhz just gives extra CPU "power" when needed.
In other terms:
- playing a 10Mhz game on a 12Mhz motherboard won't make the game faster. However it may suppress eventual slowdows.
- playing a 12Mhz game on a 10Mhz motherboard can cause slowdowns.
Possibly, I started out by just patching the code for a specific C board but found there were so many places the Layer Enable Mask bits were set that this became a pain. So I did some more digging and found that the main register updates were done in one block in the interrupt, so I decided to do a dynamic patch that sets up a ram based routine on startup which is modified for the detected C board. I had to do lots of testing with different C boards to fill in the holes in the Mame CPS 1 tables, mainly for layer enable flags. I have some ID, register & flag updates that I need to pass onto the Mame team really.I guess that's what aje_fr multi did? I remember you could use any C Board, just had to set it in the menu and the games would work (patched on the fly?).
Yes you can select your B board type with the OLED screen included in the kit. Then C-board accesses are patched on the fly.Possibly, I started out by just patching the code for a specific C board but found there were so many places the Layer Enable Mask bits were set that this became a pain. So I did some more digging and found that the main register updates were done in one block in the interrupt, so I decided to do a dynamic patch that sets up a ram based routine on startup which is modified for the detected C board. I had to do lots of testing with different C boards to fill in the holes in the Mame CPS 1 tables, mainly for layer enable flags. I have some ID, register & flag updates that I need to pass onto the Mame team really.I guess that's what aje_fr multi did? I remember you could use any C Board, just had to set it in the menu and the games would work (patched on the fly?).
10MHz and 12MHz A-BOARD are the same (same ICs used and same board layout), no differences apart the oscillator, I can confirm it.I have a Pang! 3 set and can confirm that the A Board is slightly different from a Capcom 12mhz one. For example, the ICs don't have "Capcom" on them and I *think* but I'm not 100% sure that the placement of some of the components are slightly different.
Can someone try using a Mitchell A board with other B-Boards and see if they work correctly? They should by all means, but who knows...
Thanks Caius, finally someone to support me!10MHz and 12MHz A-BOARD are the same (same ICs used and same board layout), no differences apart the oscillator, I can confirm it.I have a Pang! 3 set and can confirm that the A Board is slightly different from a Capcom 12mhz one. For example, the ICs don't have "Capcom" on them and I *think* but I'm not 100% sure that the placement of some of the components are slightly different.
Can someone try using a Mitchell A board with other B-Boards and see if they work correctly? They should by all means, but who knows...
We are not talking about different brand of the ICs (it's normal to find ICs of different manufacturer on a same PCB, this depend from their availability at time of manufacturing) but about design difference.Then, no Mitchell A-BOARD exists, simply you found this A-BOARD coupled with Mitchell B-BOARD of your Pang3.I suggest you take a good sleep and reviewNot sure what the heck I was high on last night, but today I checked the A board and besides some ICs which are missing on other boards (socketed but unpopulated), the different brand of the Motorola68k (mine is Hitachi), different power amp+heatsink and other minor brand differences, the A-Board is exactly the same as a standard Capcom short 12Mhz A-board.
Even the code 89626A-4 is the same.
Anyway, here it goes:
![]()
I did think about doing it a similar way but after seeing that they just update a block in ram with register changes, then copy them in one place in the interrupt, I came up with a translation routine. Then I thought how it would be easier still to put this in ram and make it dynamically detect the C board on startup. Regarding board ID's, in my testing B2-5 & B11-18 do all have unique ID's and several games actually specifically look for them and fail to boot if they are wrong. Mame only mimics bits used for specific games on their original C boards, so if the game always sets 2 layers on at the same time Mame doesn't identify which bit is which, it just sets both. The star layer bits are not defined for many C boards, but remapping Strider requires them to look correct.Regarding games conversion I simply converted at least one version of each game (32 or 34 titles), then having identified addresses to be modified in the code ROMs I use a kind of dynamic IPS file: I select the C-board to use and values are patched accordingly (register addresses, layer mask values including bit XORing or ANDing).
Last thing is MAME is really not accurate regarding registers, for instance MAME drops unused bits for a specific B-chip but on real hardware, although normally not used by the game, they do have an impact. To sum up real hardware is more "strict" regarding bit setting.
Oh and B-chip IDs aren't consistent, some chips don't return anything (0xFFFF), some return different values for the same reference (different production batches?).
Yep, that's included in my patches.several games actually specifically look for them and fail to boot if they are wrong