Rally Chase CD to Cartridge Conversion

Burning Fight!!

NIS America fan & Rent Free tenant
10 Year Member
Joined
Jan 12, 2014
Posts
4,367
Yeah, it worked for me without byteswapping it back first. I use romwak from Jeff Kurtz. Just use the /f option.

It seems like it's hitting something in the PLAYER_START routine that doesn't work. I've been referring to freem's documentation here to try to get some insight:

The cart-to-CD conversion process is documented online, but there is no CD-to-cart that I'm aware of. There's probably something simple I'm just not accounting for. I'll bet folks who have written dev environment's like freem's that automatically output a NGCD version of the rom could find the problem pretty fast.

The game crashes at the end of the demo and during coin-up by calling https://wiki.neogeodev.org/index.php?title=BIOSF_VIDEOEN which is only available in the CD bios (for turning spr/bg display on/off -- weird that they go out of their way to use this if the original game didn't?). Doesn't seem impossible to patch out but not as trivial as running some conversion guide online either.

Would be easier if the MAME debugger didn't piss me off...
 

Neo Alec

Warrior of the Innanet
20 Year Member
Joined
Dec 7, 2000
Posts
12,026
The game crashes at the end of the demo and during coin-up by calling https://wiki.neogeodev.org/index.php?title=BIOSF_VIDEOEN which is only available in the CD bios (for turning spr/bg display on/off -- weird that they go out of their way to use this if the original game didn't?). Doesn't seem impossible to patch out but not as trivial as running some conversion guide online either.

Would be easier if the MAME debugger didn't piss me off...
Oh crap. Now I see why no one has bothered doing this. If they're using those kinds of functions more than a few times it's probably going to take a lot more work to fix it.

The easiest way to patch out might be just splicing the cart binary code back in in places, if we knew which parts the they are.
 

Burning Fight!!

NIS America fan & Rent Free tenant
10 Year Member
Joined
Jan 12, 2014
Posts
4,367
Oh crap. Now I see why no one has bothered doing this. If they're using those kinds of functions more than a few times it's probably going to take a lot more work to fix it.

The easiest way to patch out might be just splicing the cart binary code back in in places, if we knew which parts the they are.
Actually it might be easier than it looks:
0006.png0008.png0009.png

ehehe.
 

Neo Alec

Warrior of the Innanet
20 Year Member
Joined
Dec 7, 2000
Posts
12,026
Okay, now I'm curious what you removed.

My guess is that function is used to make the transition to and from a black screen smoother (if you've ever watched a Neo Geo video in slow motion you've seen how the sprite layers normally don't all draw in at the same time).
 

Burning Fight!!

NIS America fan & Rent Free tenant
10 Year Member
Joined
Jan 12, 2014
Posts
4,367
I just NOP'd the call to biosf_videoen (714e714e714e written on 0xA8DE and subsequent bytes on the P1 rom) which is the only time the game calls it.


It's technically playable in mame now although it has that darn wait in between screens for the audio to catch up, and it doesn't play music during the demo. The only thing left to do is to remove the wait for CD hardware (I assume), but there's no way of being 100% sure this will run on real hardware afterwards without actually making a MVS cart for it (or NeoSD? too poor for it :p)

edit: the file as it is for those who want to play with it: https://anonfiles.com/Ncx1FeY7y0/038_p1_p1

Interesting little tidbit: the game calls itself "Thrash Rally CD" internally, apparently.

0012.png
 
Last edited:

Burning Fight!!

NIS America fan & Rent Free tenant
10 Year Member
Joined
Jan 12, 2014
Posts
4,367
Nice. This is at least playable, but those waits are bad. I also noticed it has unlimited continues in AES mode.

I wonder if the wait is BIOSF_CDDACMD or something like it.
I think the secret's here: https://wiki.neogeodev.org/index.php?title=CDDA

I'm still not much familiar with how the 68000 communicates with the z80 but it seems like another doable fix. Looks like the main program waits for something the Z80 never writes then the loop times out anticipating CD playback error. I'll look into it.

EDIT: I think the CD version also had unlimited continues so I'm not sure that's something I'd bother changing. MVS mode seems "operable", lol.
 
Last edited:

Neo Alec

Warrior of the Innanet
20 Year Member
Joined
Dec 7, 2000
Posts
12,026
I think the secret's here: https://wiki.neogeodev.org/index.php?title=CDDA

I'm still not much familiar with how the 68000 communicates with the z80 but it seems like another doable fix. Looks like the main program waits for something the Z80 never writes then the loop times out anticipating CD playback error. I'll look into it.

EDIT: I think the CD version also had unlimited continues so I'm not sure that's something I'd bother changing. MVS mode seems "operable", lol.
I did check that the byte at $107 was 0. The cartridge music plays. There must be some other crap added causing it to wait.

It's normal for CD games to have unlimited continues, but when porting games like Crossed Swords 2 to AES, it seems AES conventions were respected. I thought there were flag(s) in the header data for this somewhere too.
 

Burning Fight!!

NIS America fan & Rent Free tenant
10 Year Member
Joined
Jan 12, 2014
Posts
4,367
I did check that the byte at $107 was 0. The cartridge music plays. There must be some other crap added causing it to wait.

It's normal for CD games to have unlimited continues, but when porting games like Crossed Swords 2 to AES, it seems AES conventions were respected. I thought there were flag(s) in the header data for this somewhere too.
Well I'm not even close to being a Razoola though, I'm just an asshole messing with the ROM :D
That would be a "nice to have" so I'll have to look at it later.

Meanwhile: I think this is it, can you please test this on real hardware for any crashes/oddities?

There was a loop checking $10f6d9 for a non-zero value immediately after calling sound routines, I just blanked out the counter/conditional, which did remove the timing issues for BGM playback but you never know what other function that loop served. If there's no bug, our mission here's complete.

I'll probably upload a proper patch file on romhacking.net later (and definitely make my alternative MVS cart later, too bad about the original MVS cart being expensive nowadays, I wanted to check if link play still exists on my original cart). Thanks for the help!

(btw I'm not going to mess with the C roms because I find the screwed up title screen funny but if you want to see if you can convert the SPR files from the CD to the MVS C roms, that would be nice).
 
Last edited:

Neo Alec

Warrior of the Innanet
20 Year Member
Joined
Dec 7, 2000
Posts
12,026
Okay, wow nice! I'll give it a try.

Yeah, I'd like to fix the title screen, call this version Rally Chase and put up a .neo for people, etc. I will try, but you obviously deserve all the credit here. The only problem is again, I have trouble following the CD to cart instructions here for the C rom:

1. Read two bytes from your C1
2. Byteswap the bytes from part 1
3. Read two bytes from your C2
4. Byteswap the bytes from part 3
5. Repeat steps 1-4 until your new rom is 4 Megabytes in size
A. Your output file may be smaller if your roms are tiny
6. Save the ouput file as SPR.SPR (Can be different)
 
Last edited:

Burning Fight!!

NIS America fan & Rent Free tenant
10 Year Member
Joined
Jan 12, 2014
Posts
4,367
Okay, wow nice! I'll give it a try.

Yeah, I'd like to fix the title screen, call this version Rally Chase and put up a .neo for people, etc. I will try, but you obviously deserve all the credit here. The only problem is again, I have trouble following the CD to cart instructions here for the C rom:

1. Read two bytes from your C1
2. Byteswap the bytes from part 1
3. Read two bytes from your C2
4. Byteswap the bytes from part 3
5. Repeat steps 1-4 until your new rom is 4 Megabytes in size
A. Your output file may be smaller if your roms are tiny
6. Save the ouput file as SPR.SPR (Can be different)
I think romwak can do it, maybe using "Split File Two, Alternating Words (/w)" then on each split file do /f. It's worth a try.
 

Neo Alec

Warrior of the Innanet
20 Year Member
Joined
Dec 7, 2000
Posts
12,026
I loaded up your final version of the rom on real hardware. I played through the entirety of both modes with manual transmission on MVS difficulty and it went without a hitch. You nailed it!

I think romwak can do it, maybe using "Split File Two, Alternating Words (/w)" then on each split file do /f. It's worth a try.
Thanks. I will look at the C roms later on tonight.
 

wyo

King of Spammers
10 Year Member
Joined
May 22, 2013
Posts
10,174
I really need to hook up 4 player Thrash Rally some time.
 

Neo Alec

Warrior of the Innanet
20 Year Member
Joined
Dec 7, 2000
Posts
12,026
I got it. I didn't have to do any of that romwak stuff you mentioned because NGFX GraphicsEditor allows you to open cart or CD C roms and then save them as cart or CD. It was actually two C roms that needed to be replaced. Here they are for your downloading convenience:

(See first post for files.)

0003.png

At first I only had the first C rom replaced and that looks like this:

0001.png
 
Last edited:

Burning Fight!!

NIS America fan & Rent Free tenant
10 Year Member
Joined
Jan 12, 2014
Posts
4,367
I got it. I didn't have to do any of that romwak stuff you mentioned because NGFX GraphicsEditor allows you to open cart or CD C roms and then save them as cart or CD. It was actually two C roms that needed to be replaced. Here they are for your downloading convenience:


View attachment 63103

At first I only had the first C rom replaced and that looks like this:

View attachment 63104
Great job!

It's good that you actually went and did it because the corrupted title screen got old surprisingly fast :p
 

Burning Fight!!

NIS America fan & Rent Free tenant
10 Year Member
Joined
Jan 12, 2014
Posts
4,367
Fucking never.

How about Burning Fight Soft? He did everything.
I'm only doing a hyper ultra rare limited run of 1 mvs cartridge for me to play. Maybe wait for the french (ng.com is 2000% _______ ...) or the chinese on aliexpress, though I suspect really only me and Alec care about playing Thrash Rally :lolz:
 

Neo Alec

Warrior of the Innanet
20 Year Member
Joined
Dec 7, 2000
Posts
12,026
I also wanted future generations to know they are playing the CD exclusive Rally Chase on cart systems, rather than the mysterious hack, Rally Thras.

I'm only doing a hyper ultra rare limited run of 1 mvs cartridge for me to play. Maybe wait for the french (ng.com is 2000% _______ ...) or the chinese on aliexpress, though I suspect really only me and Alec care about playing Thrash Rally :lolz:
I'm really interested to see how your cart works. I guess I had assumed link play wouldn't work, just like how they removed the option from the menus for Riding Hero and League Bowling, but you're right that it might work.
 

Burning Fight!!

NIS America fan & Rent Free tenant
10 Year Member
Joined
Jan 12, 2014
Posts
4,367
I also wanted future generations to know they are playing the CD exclusive Rally Chase on cart systems, rather than the mysterious hack, Rally Thras.


I'm really interested to see how your cart works. I guess I had assumed link play wouldn't work, just like how they removed the option from the menus for Riding Hero and League Bowling, but you're right that it might work.
It's like a 50/50 chance of the link function being intact or not. Problem is:

1. not emulatable
2. no dump of link microcontroller
3. actual thrash rally cartridges aren't cheap for a while now

No chance of me trying it out :(
 

Neo Alec

Warrior of the Innanet
20 Year Member
Joined
Dec 7, 2000
Posts
12,026
It's like a 50/50 chance of the link function being intact or not. Problem is:

1. not emulatable
2. no dump of link microcontroller
3. actual thrash rally cartridges aren't cheap for a while now

No chance of me trying it out :(
Oh sorry, I missed that part when I first read your post. Sounds like you're making a cart without the link function.

Another reason why link cable functionality on the NeoSD would have been great.
 
Last edited:
Top