Can ADPCM-A and ADPCM-B files be used with NEO-PCM

bustedstr8

Trollbox Trade Federation,
Joined
Oct 15, 2007
Posts
943
I was wondering if it was possible to merge something like V11,V21,V22 and V23 onto a single 16Mb chip and use that with a NEO-PCM board like a PROG-4096.
 

smkdan

Galford's Armourer
Joined
Dec 30, 2009
Posts
452
The sample addresses in the M1 ROM would need to be patched for one of the channel types. There isn't an easy automated way to do this.

The pre-PCM boards have both channel types in their own separate address space while it's a single combined address space for NEO-PCM boards. If you tried this merge and put the ADPCM-A data before the B data, then ADPCM-A will sound fine but B will be distorted and vice versa.
 

bustedstr8

Trollbox Trade Federation,
Joined
Oct 15, 2007
Posts
943
Thanks for the info Dan...I was hoping it would be some thing simple like some chunk swaps or odd/even bytes :(
 

shadowkn55

Genbu's Turtle Keeper
Joined
Dec 9, 2006
Posts
2,386
It might be possible. I recently came into possession of a Blue Journey's boot that was made on a BK1 board. It had just a single rom for V1. An original Blue's Journey cart is pre-pcm so that adpcm-a and adpcm-b samples are on separate mask roms. Before I blanked out the V1 rom on the boot, I dumped it cause I was curious to how they merged the files. I split the 16mbit V1 rom in half and the CRCs match exactly for V11 and V22. V11 was the lower half and V22 was the upper half.

The following is conjecture but it may be that the PCM chip multiplexes adpcm-a and adpcm-b every 8mbits. You can try merging the roms in that fashion and see if it works. I'd try it myself but I'm fresh out of bootleg carts to use as test subjects.
 

smkdan

Galford's Armourer
Joined
Dec 30, 2009
Posts
452
It might be possible. I recently came into possession of a Blue Journey's boot that was made on a BK1 board. It had just a single rom for V1. An original Blue's Journey cart is pre-pcm so that adpcm-a and adpcm-b samples are on separate mask roms. Before I blanked out the V1 rom on the boot, I dumped it cause I was curious to how they merged the files. I split the 16mbit V1 rom in half and the CRCs match exactly for V11 and V22. V11 was the lower half and V22 was the upper half.

The following is conjecture but it may be that the PCM chip multiplexes adpcm-a and adpcm-b every 8mbits. You can try merging the roms in that fashion and see if it works. I'd try it myself but I'm fresh out of bootleg carts to use as test subjects.

Blue's Journey looks interesting in that they left v21 empty on the original board. That makes it work with the PCM since the v22 wouldn't overlap with the v11 ROM. If it used v21 + v11 (like Puzzled does) then I expect you'd have the address overlap issue.
 

shadowkn55

Genbu's Turtle Keeper
Joined
Dec 9, 2006
Posts
2,386
Blue's Journey looks interesting in that they left v21 empty on the original board. That makes it work with the PCM since the v22 wouldn't overlap with the v11 ROM. If it used v21 + v11 (like Puzzled does) then I expect you'd have the address overlap issue.

Interesting. Didn't notice that until you pointed it out. Do you know the how multiplexing scheme works on the neo-pcm?
 

smkdan

Galford's Armourer
Joined
Dec 30, 2009
Posts
452
Interesting. Didn't notice that until you pointed it out. Do you know the how multiplexing scheme works on the neo-pcm?

I vaguely remember seeing a bootleg board with a PCM based game and it was implemented using just discrete logic. I think it was on this forum but I'm not sure what the game was.

I don't know if there's an open implementation for the PCM publicly available but there are 2610 bus timings up on the wiki. Looks like there was a lot of slack time to work with even with slower ROMs.
 

Pedrobear

Cheng's Errand Boy
Joined
Mar 1, 2012
Posts
113
It's very possible and fairly simple, locate sample data table into the M rom and patch the addresses to match the new setup.

That's a one hour job for someone half competent.
 

shadowkn55

Genbu's Turtle Keeper
Joined
Dec 9, 2006
Posts
2,386
It's very possible and fairly simple, locate sample data table into the M rom and patch the addresses to match the new setup.

That's a one hour job for someone half competent.

That's really not the problem at hand here. Modifying pointer tables would be moot if the basic understanding of the pcm multiplexing scheme is unknown.
 

Pedrobear

Cheng's Errand Boy
Joined
Mar 1, 2012
Posts
113
That's really not the problem at hand here. Modifying pointer tables would be moot if the basic understanding of the pcm multiplexing scheme is unknown.

Well this topic is about using a PCM-fitted board :confused:


Anyway Strikers 1945+ boot use discrete logic to replace PCM, and it was traced last year.

140805082604143953.png

Now if someone would make a verilog out of it that would be quite nice :)
 

shadowkn55

Genbu's Turtle Keeper
Joined
Dec 9, 2006
Posts
2,386
Very nice. That should be very helpful. I should be able to determine the multiplexing scheme from this.
 

Kyuusaku

B. Jenet's Firstmate
Joined
Mar 26, 2003
Posts
419
The "creative" bootleg implementation is functionally close to the real thing--the PCM literally just multiplexes access.
 

shadowkn55

Genbu's Turtle Keeper
Joined
Dec 9, 2006
Posts
2,386
The "creative" bootleg implementation is functionally close to the real thing--the PCM literally just multiplexes access.

It looks like that's exactly what's going on. It doesn't appear that there is any specific region that belongs to adpcm-a or adpcm-b which is probably why the blue's journey pcm rom file is setup the way it is. With V21 empty, there is no address conflicts like smkdan said. M1 will mostly likely to be rewritten to change pointers for games that don't have as generous a rom layout as blue's journey.
 

Pedrobear

Cheng's Errand Boy
Joined
Mar 1, 2012
Posts
113
Well there's really nothing to know on how it works from a software point of view, place data anywhere you see fit as long as it doesn't ovelap and "it just works". There's no bank constraints or w/e, you can place data anywhere you want.
 
Last edited:
Top