Windows CE/CDDA: Need some testers

Discussion in 'Sega Dreamcast Development and Research' started by SiZiOUS, Feb 10, 2018.

  1. SiZiOUS

    SiZiOUS Rapidly Rising Member

    Joined:
    Mar 27, 2009
    Messages:
    82
    Likes Received:
    57
    Hello there,

    So after successfully repairing my Set 5 with the help here, I finally achieved a first version of a project I started back in 2014: Finding a solution for making Windows CE games with working CDDA ...

    This is my attempt to create a working CDDA patch for Puzzle Bobble 4, 18 years after its original release. This patch is for the following release: Puzzle Bobble 4 v1.000 (2000)(Cyberfront - Taito)(NTSC)(JP)[!]. I choose this one because it was the only one GDI I had when I started the project. This is a nice game by the way.

    If you have some time and courage, please be my guest to test that patch for me. It's better to test with the real hardware but it can be useful to test it in emulators too, just to know. I only tested throught my Set 5 and everything seems to be fine, at least for a public alpha.

    At this time, the patch is only compatible with Puzzle Bobble 4 v1.000 (2000)(Cyberfront - Taito)(NTSC)(JP)[!]. So please test it only with that release, thanks.

    Instructions:
    1. Download the patch here or directly attached to this post.
    2. Grab the full GDI of Puzzle Bobble 4 v1.000 (2000)(Cyberfront - Taito)(NTSC)(JP)[!] and extract its content somewhere.
    3. Retrieve the ./GD_ROOT/WINCE/PB4.EXE file and copy it into the patch directory.
    4. Grab xdelta3 binary here and copy it into the patch directory. Rename the xdelta3 binary to xdelta3.exe.
    5. Execute the patch.cmd and move the modified PB4.EXE into the ./GD_ROOT/WINCE/ folder and overwrite the existing one.
    6. Copy track04.raw until track25.raw files where is located the gddaconv.cmd file.
    7. Grab the sox binary here. Extract it at the same location of the gddaconv.cmd file.
    8. Double-click on the gddaconv.cmd file. You'll get track04.wav until track25.wav. Move all these *.wav files into ./GD_ROOT/GDDA/ folder.
    9. Make a selfboot disc with the modified content. You don't need to add the original CDDA tracks.
    10. Test the game, ideally with the real hardware.
    Oh and by the way, please be sure to extract the GDDAHOOK.DLL file into the ./GD_ROOT/WINCE/ folder...

    The expected result is... just working music like the real GD-ROM. Don't hesitate to post your results here!

    Speaking about technic, I used IAT hook technics to make this patch. This would be useful for this project and maybe that one too. I plan to release the source code too, but not now.

    Thank you very much in advance for your tests and for your interest!

    BR,
    SiZ!
     

    Attached Files:

    zouzzz, Woofmute, Anthony817 and 4 others like this.
  2. Mrneo240

    Mrneo240 Spirited Member

    Joined:
    Sep 15, 2017
    Messages:
    121
    Likes Received:
    52
    Excellent news!

    Also good choice on a first game to make the patch for, the binary was really easy to dig around in.

    Any chance of posting the technique you used for this?
     
  3. SiZiOUS

    SiZiOUS Rapidly Rising Member

    Joined:
    Mar 27, 2009
    Messages:
    82
    Likes Received:
    57
    Yeah, that's a second reason I choose this game first, because the game was "small".

    I made a hook on the DeviceIoControl API to intercept GDDA calls, and I redirect these to my custom code. I made a "GDDA Emulator" which instead of playing GDDA tracks, play WAVEs files instead. Don't worry, in few weeks, I'll post the source code on GitHub. But I need to cleanup it before release because currently it's a real mess. :)

    And by the way, my attempt was also to publish some code to show how to hack Windows CE games, because we have almost nothing on this, and it always can be useful.
     
    PrOfUnD Darkness likes this.
  4. darcagn

    darcagn Site Supporter 2013, Site Supporter 2014

    Joined:
    May 13, 2007
    Messages:
    441
    Likes Received:
    69
    Well the GDDA audio does play! However, after I beat the first level I played, the game froze. I rebooted the console and it froze again after I beat the second level I played.

    Selfboot methodology:
    1- Extracted GDI/IP.BIN/sortfile using gditools by FamilyGuy.
    2- Burned audio padding up to LBA 45000 using cdrecord.
    3- Followed your steps.
    4- Used bincon.exe by Dopefish to bincon 0WINCEOS.BIN.
    5- Used binhack32 by FamilyGuy to hack IP.BIN and set SegaOS.
    6- Modified sortfile to add GDDA files directly after the dummy file and before the rest of the GD-ROM contents.
    7- Made data ISO using mkisofs.
    8- Burned last session with cdrecord.

    Boots right up, everything seems fine, with the exception of freezing when completing a level.
     
    SiZiOUS and -=FamilyGuy=- like this.
  5. SiZiOUS

    SiZiOUS Rapidly Rising Member

    Joined:
    Mar 27, 2009
    Messages:
    82
    Likes Received:
    57
    Hello darc,

    First of all, thanks for your test and sorry for the waste of a CD-R. :(
    So there is differences of behaviour between retail Dreamcast and the Set 5. Indeed, I don't have this problem when I test the patch throught the Set 5, with GD Workshop in Emulator mode.

    May you test something else for me? Can you launch a game session and press the Start button to set the game in pause, this should stop the music. Press the Start button again and the music should continue at the same point.

    This afternoon I think I'll be able to test the game with my retail Dreamcast modified with GDEMU, because I'm going to retrive it (as I lent it).

    Thank you in advance for your tests! :)
     
  6. yzb37859365

    yzb37859365 Spirited Member

    Joined:
    Jul 14, 2013
    Messages:
    148
    Likes Received:
    98
    I use the demul simulator test is music, but the music occasionally Zizi Zizi's voice came out,
    If you don't put the wav file into it without music, but also will not have the voice of Zizi
     
    SiZiOUS likes this.
  7. PrOfUnD Darkness

    PrOfUnD Darkness Familiar Face

    Joined:
    Mar 13, 2004
    Messages:
    1,075
    Likes Received:
    28
    Wow this sounds really interesting!
     
  8. fafadou

    fafadou Robust Member

    Joined:
    Aug 3, 2016
    Messages:
    265
    Likes Received:
    64
    Very nice sizious as all of your project.

    I hope it works with sega rally 2 and its particular code for cdda.

    Tell us again if you have a lack of testers. I can do some with demul but my dreamcast is still broken for now.
     
  9. pitito

    pitito Member

    Joined:
    Mar 8, 2015
    Messages:
    15
    Likes Received:
    1
    This is great news, thank you very much Sizious for the advances. Soon we can enjoy 0winceos + CDDA :)
     
  10. SiZiOUS

    SiZiOUS Rapidly Rising Member

    Joined:
    Mar 27, 2009
    Messages:
    82
    Likes Received:
    57
    Hello to all and thank you about your interest for this project.

    I have a little progress. I found this old thread on Dreamcast-Talk speaking about this big project. A thing I didn't know is there is some Windows CE games that works well like Worms Armaggeddon. I've wrongly supposed that no WinCE game worked at all but this isn't the case.

    So I took Worms and analyzed the game. I hijacked the DeviceIoControl API like I've done for Puzzle Bobble 4 and guess what? The API calls are identical. What I've found too is Worms Armaggeddon was compiled under an older WinCE version (1.0 I guess) so its ROM image (0WINCEOS.BIN) is very different from Puzzle Bobble 4.

    So my guess about the issue of the API call fail is maybe located in the ROM image (0WINCEOS.BIN) but I don't know what's wrong at least for now...

    The question is... do you know another WinCE game where the CDDA works, like Worms Armaggeddon?
     
    fafadou likes this.
  11. darcagn

    darcagn Site Supporter 2013, Site Supporter 2014

    Joined:
    May 13, 2007
    Messages:
    441
    Likes Received:
    69
    fafadou likes this.
  12. fafadou

    fafadou Robust Member

    Joined:
    Aug 3, 2016
    Messages:
    265
    Likes Received:
    64
    Maybe worms world party is the same call as worms armagedon ?
     

Share This Page