Windows CE/CDDA: Need some testers

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

  1. SiZiOUS

    SiZiOUS Spirited Member

    Joined:
    Mar 27, 2009
    Messages:
    111
    Likes Received:
    138
    The project I posted on GitHub can be considered as a template program, as the iathook static library is an external project. The gddahook project is the project using all the static libraries but this will show you how to deal with the iathook library to do advanced hooking under Windows CE.

    But you're right maybe I should create just a template project on the GitHub.
     
    fafadou, pool7, pitito and 3 others like this.
  2. yzb37859365

    yzb37859365 Spirited Member

    Joined:
    Jul 14, 2013
    Messages:
    182
    Likes Received:
    122
    Super_Robot_Taisen_α_for_Dreamcast
    HGL.DLL

    I found the original game decompression program, I want to add a custom decompression method, but I can't find the insertion method and space. Wince game is different from KATANA game.
     
    Last edited: Mar 27, 2018
    Mrneo240 likes this.
  3. yzb37859365

    yzb37859365 Spirited Member

    Joined:
    Jul 14, 2013
    Messages:
    182
    Likes Received:
    122
    It looks more troublesome
     
  4. fafadou

    fafadou Gutsy Member

    Joined:
    Aug 3, 2016
    Messages:
    424
    Likes Received:
    148
    a template will be appreciate.
    Create .cdi with cdda we games will be great; i'm thinking about sega rally 2 and it's particular format for cdda tracks.

    Your work is amazing like always.
     
  5. SiZiOUS

    SiZiOUS Spirited Member

    Joined:
    Mar 27, 2009
    Messages:
    111
    Likes Received:
    138
    Yes you are right. Katana executable are just raw binaries file where Windows CE binaries are executed through a complete/complex kernel.
    So if I understand well, for Super Robot Taisen α for Dreamcast, you want to hijack a function in the HGL.DLL file? If yes, I think the method I gave here should work. You'll need to patch the HGL.DLL reference in the game's EXE binary, by using a proxy DLL. In clear:

    Before:
    GAME.EXE --> HGL.DLL

    After:
    GAME.EXE --> PROXY.DLL (your DLL) --> HGL.DLL

    By the way, I was using the same method in my wcegdda project, but more complex because I was hijacking API from differents DLL.

    Before:
    PB4.EXE
    |--> MAPLEDEV.DLL (MapleCreateDevice/MapleEnumerateDevices)
    |--> COREDLL.DLL(DeviceIoControl)
    |--> DSOUND.DLL (DirectSoundCreate)


    After:
    PB4.EXE
    |--> GDDAHOOK.DLL (MapleCreateDevice/MapleEnumerateDevices)
    |------> MAPLEDEV.DLL (MapleCreateDevice/MapleEnumerateDevices)
    |------> Custom DeviceIoControl for IOCTL_SEGACD_CD_PLAYTRACK/IOCTL_CDROM_PAUSE_AUDIO/... [COREDLL.DLL for other dwIoControlCodes]
    |------> DSOUND.DLL (DirectSoundCreate)
    Note: DirectSoundCreate and DeviceIoControl hijacked with "iathook" library at runtime, where MapleCreateDevice/MapleEnumerateDevices were physically hijacked by replacing MAPLEDEV.DLL in PB4.EXE with GDDAHOOK.DLL.


    My wcegdda project will be generic, but for now, I must debug it and I will be unavailable for 15 days at least. Plus my Set 5 is currently out-of-order for changing that battery.
     
    Last edited: Mar 28, 2018
    pitito, fafadou and yzb37859365 like this.
  6. yzb37859365

    yzb37859365 Spirited Member

    Joined:
    Jul 14, 2013
    Messages:
    182
    Likes Received:
    122
    Yes
    But I just want to insert a JMP or JSR into my unzip program in an unzipping program in the HGL.DLL file
     
  7. pitito

    pitito Rising Member

    Joined:
    Mar 8, 2015
    Messages:
    50
    Likes Received:
    23
    Hi Sizious, have you been able to debug the problem with Winceos?
     

Share This Page