Wince+CDDA

Moderators: pcwzrd13, deluxux, VasiliyRS

User avatar
pitito
dark night
Posts: 64

Wince+CDDA

Post by pitito »

As some of you may know, a long time ago I released a fix to correct certain WINCE games that caused problems when converted to CDI.
This fix only solved those games in which the first track was always played
This fix is made on the IP.BIN
Offset
0x61C0
25C7 for 0900
Later I repaired the Armada, another one that had problems with the CDDA summary when pausing the game or entering a base.
The CDDA always reset itself.
Armada.exe file
Offset
0x1A348 change to 0900
0x1A360 change to 0900
0x1A540 change to 7F70
And now it's Worms Pinball's turn
This game did not have any CDDA tracks working, so I spent weeks trying to find where the problem came from and I was finally able to solve it.
FIX in Pinball.exe file
Offset
0x6728E change 04E7 to 00E7.
Note:
When applying the FIX, you will only have to put a single dummy track before the CDDA tracks when creating the mds or cdi image, so that the cdda starts on track 2 of the cd.
In this way they will appear ordered as in the GDI.

Possibly Sega Rally 2 and Virtua Cop 2 can be repaired with this method...
But the functions must be different and change their values, since a search to hexadecimal has been of no use in both games.

User avatar
ateam
Animated Violence
Posts: 503

Re: Wince+CDDA

Post by ateam »

Great work, pitito!
Find me on...

DreamcastForever.com
GitHub
Reddit
SegaXtreme
Twitter
YouTube
• Discord: derek.ateam

Loloretro
chill
Posts: 305
Dreamcast Games you play Online: Nothings

Re: Wince+CDDA

Post by Loloretro »

Great, I wasn't able to offer a CDI when I released Worms Pinball :)

Thanks a lot for your work

User avatar
pitito
dark night
Posts: 64

Re: Wince+CDDA

Post by pitito »

It has been difficult but in the end it has been achieved :D

Now the only games that are missing for the CDDA to play in their CDI versions are Virtua COP 2 and Sega Rally 2 which have the same problem as Worms Pinball, although these are developed differently.
This type of wince has a type of protection called HDR (High Density Rom), which only looks for the CDDA in the High Density layer of the GDROM, for this reason it does not work in CDI versions.
In Worms Pinball, following the calls of Sound.dll I found ordinal function 179 of core.dll and overriding one of these calls made the CDDA play.
So when I investigated further, I found the value that determines the CDDA start track, all of this was done in the Pinball.exe executable.

In the case of Sega Rally 2 and Virtua COP 2 the function is the same.
The ordinal 179 of core.dll, but it is somewhat more complex, since in this case in addition to being found in the executable.EXE of the game there are also several .dlls such as MGAMEAUDIO.DLL, IECEUI.DLL and PLATUTIL.DLL that use that function .