Half-Life for Dreamcast has some functional multiplayer components

Discussion in 'Sega Dreamcast Development and Research' started by TerdFerguson, Jul 13, 2015.

  1. TerdFerguson

    TerdFerguson ls ~/

    Joined:
    Apr 27, 2015
    Messages:
    758
    Likes Received:
    469
    Last edited: Oct 4, 2016
  2. megavolt85

    megavolt85 Peppy Member

    Joined:
    Jan 8, 2015
    Messages:
    334
    Likes Received:
    483
    Source code of what? Half-Life or DreamShell?
     
  3. truemaster1

    truemaster1 Intrepid Member

    Joined:
    Nov 10, 2015
    Messages:
    654
    Likes Received:
    325
    half life the source code, if im not mistaken the source code is one. and later is compiled for each console
     
  4. Trident6

    Trident6 Spirited Member

    Joined:
    Oct 17, 2015
    Messages:
    119
    Likes Received:
    55
    I'm not sure if Valve even has the HLDC source anymore. It was mostly developed by Gearbox IIRC under contract, and given that it was never moved to production I'm not sure that it ended up on Valve's source control server.

    It is worthwhile to remember that GoldSrc was at heart a port of the Quake engine (which is open source...) and from what I saw a lot of the network code is unchanged. Your best best is to start looking at id's GitHub repos if you want to correlate the networking stack in HLDC with the disassembly.
     
    Anthony817 and TerdFerguson like this.
  5. TerdFerguson

    TerdFerguson ls ~/

    Joined:
    Apr 27, 2015
    Messages:
    758
    Likes Received:
    469
    No the source code of the GoldSRC engine is not even in question. The source for client.dll and hl.dll is in the publicly available Half-Life SDK and every mod ever compiles their own new client and game dlls for their new functions like Counter-Strike and Team Fortress. The source for Counter-Strike 1.6's client.dll is closed source, but some people in the Xash3D Android team reverse engineered it, then ported to android

    Someone just needs to port it to Windows CE cleanly. It has never been done. If HLDC can load the client.dll based on what I said on the prior page, then we don't need the source code

    Here is some definitions from cdll_int.h. You can add new commands and cvars in client.dll, which I assumed already but it seems to be built to do that
    Code:
    #define RecEnghudRegisterVariable(a, b, c)    (g_engdstAddrs.pfnRegisterVariable(&a, &b, &c))
    #define RecEnghudGetCvarFloat(a)            (g_engdstAddrs.pfnGetCvarFloat(&a))
    #define RecEnghudGetCvarString(a)            (g_engdstAddrs.pfnGetCvarString(&a))
    #define RecEnghudAddCommand(a, b)            (g_engdstAddrs.pfnAddCommand(&a, &b))
    #define RecEnghudHookUserMsg(a, b)            (g_engdstAddrs.pfnHookUserMsg(&a, &b))
    #define RecEnghudServerCmd(a)                (g_engdstAddrs.pfnServerCmd(&a))
    #define RecEnghudClientCmd(a)                (g_engdstAddrs.pfnClientCmd(&a))
     
  6. Trident6

    Trident6 Spirited Member

    Joined:
    Oct 17, 2015
    Messages:
    119
    Likes Received:
    55
    It might be a good idea to start a new thread and explicitly stating what you are trying to build at this point. This thread has gone in a number of different directions and its not entirely clear to me who is trying to do what anymore.

    It is good to explore different avenues of investigation when you are are trying to learn how something works, but transitioning into the development phase requires a clear vision and understanding of the requirements you are trying to meet.

    If the goal is still to get prolific networking, that code is almost assuredly in the engine and not part of the mod .dll extensions. I could be wrong, but I don't think I have ever seen networking code there. The header file in question is just aliasing some macros to function pointers in the extension interface so they can be called easier, and the linker can export them correctly.
     
  7. TerdFerguson

    TerdFerguson ls ~/

    Joined:
    Apr 27, 2015
    Messages:
    758
    Likes Received:
    469
    I agree

    Well the testing of client.dll is still falls in the research category imo, but I agree

    It doesn't look like there is external networking calls to WinSock like HL32 judging by the strings. But the goal at this point is to test if a cleanly ported/compiled client.dll will load in the Dreamcast GoldSRC port based on what I said on the prior page(s)

    If it works, like you said the Quake engine is very similar, considering people can add new renderers to beef up the graphical capabilities of GoldSRC on PC, it's probably possible to implement new networking tailored for the Dreamcast using the Quake sources

    I mentioned that because I assumed you can add new commands and vars in previous posts, but that makes it pretty clear new cmds was an intended feature or possibility of the new mod dlls

    I just want to test if it works or not simply to prove the concept, if it works, it's out of my hands if other people want to enter the "developmental phase" to port mods, implement networking, add support for mic/bba etc etc. If it works, the potential of full GoldSRC mods on Dreamcast is too large to articulate, hence why I've spent so much time researching and documenting
     
  8. TerdFerguson

    TerdFerguson ls ~/

    Joined:
    Apr 27, 2015
    Messages:
    758
    Likes Received:
    469
    @Trident6 to clarify, the endgame goal is to have the ability to play Counter-Strike, Team Fortress, etc, online with mic/modem/bba support on Dreamcast. But what needs to be done is test the loading of the client.dll library. Because there are a few references to client.dll, and the process of loading it. But not hl.dll, which is what was tested before, there are zero references to that.

    So the goal at least for what I'm talking about now is testing client.dll. A successful test means the reason I'm doing this is entirely possible and many times more feasible than porting Xash3D
     
  9. truemaster1

    truemaster1 Intrepid Member

    Joined:
    Nov 10, 2015
    Messages:
    654
    Likes Received:
    325
    after a lot of years i want to play half life but this time in dc instead of my ps2. i searched and found a lot of builds some are modded and vary from the original game. can someone gime a link for a good build?? doesn't matter if is gdi or cdi.
     
  10. TerdFerguson

    TerdFerguson ls ~/

    Joined:
    Apr 27, 2015
    Messages:
    758
    Likes Received:
    469
    Look for the DCRES build. PS2 doesn't support any kind of texture filtering or AA, which dc version does. DC version imo is superior in every way except models (which you can probably mod the game with PS2 models to make it superior)
     
  11. -=FamilyGuy=-

    -=FamilyGuy=- Site Supporter 2049

    Joined:
    Mar 3, 2007
    Messages:
    3,097
    Likes Received:
    1,046
    Weren't the high def models of half-life developed for DC?
     
    TerdFerguson likes this.
  12. truemaster1

    truemaster1 Intrepid Member

    Joined:
    Nov 10, 2015
    Messages:
    654
    Likes Received:
    325
    thanks i found this and its look good.
    its half life repack and discription says
    It's a repack version of the leaked game. It has slightly faster loading times and is a bit more playable. It is the full game (I played it through) plus Blue Shift (I also played it through). It might crash occasionally but is overall playable and (in my idea) the best game on Dreamcast even though it was never officially released.
    https://firedrop.com/e96cdb74649ca1ce
     
  13. TerdFerguson

    TerdFerguson ls ~/

    Joined:
    Apr 27, 2015
    Messages:
    758
    Likes Received:
    469
  14. truemaster1

    truemaster1 Intrepid Member

    Joined:
    Nov 10, 2015
    Messages:
    654
    Likes Received:
    325
    i will try that for sure.
    ok your build is more stable more quick loadings. and nicer menu.
    the repack one in the link i give it has better models, ps2 like. i was trying to extract your cdi but i cant. protection?? anyway you can salvage the models from repack version and build the final one. also a good idea is to hex edit ip.bin and change the name from crazy taxi to HALF-LIFE
     
    Last edited: Nov 15, 2016
  15. TerdFerguson

    TerdFerguson ls ~/

    Joined:
    Apr 27, 2015
    Messages:
    758
    Likes Received:
    469
    That is good the files work. Cool to know there is actually positive load time effects, and not just a placebo effect

    You can use CDIRIP.EXE and ISOFIX.EXE to rip the CDI or FamilyGuy's new auto-rip script exclusively for Half-Life and the dreamcast sdk, i'll attach everything but FG's script doesn't have a readme yet. If you use the two EXEs just run CDIRIP on HALF-LIFE+.CDI, then run ISOFIX on the larger output ISO/BIN on LBA 11702

    If client.dll was ported and could be tested this could be only a few percent of the modding potential

    Edit: Also if someone wants to upload a mirror of HL+ on TheISOZone or other place I'd prefer it being hosted there
     

    Attached Files:

  16. truemaster1

    truemaster1 Intrepid Member

    Joined:
    Nov 10, 2015
    Messages:
    654
    Likes Received:
    325
    ok i get a fixed.iso what to do now to extract the files?? from iso
     
  17. -=FamilyGuy=-

    -=FamilyGuy=- Site Supporter 2049

    Joined:
    Mar 3, 2007
    Messages:
    3,097
    Likes Received:
    1,046
    Yeah the iso should be mountable and extractable easily.

    If you use my script, it circumvents all those superfluous steps.
     
  18. truemaster1

    truemaster1 Intrepid Member

    Joined:
    Nov 10, 2015
    Messages:
    654
    Likes Received:
    325
    ive done both but the iso when mounted it dosent open. to extract the files. same goes if i try it as virgin cdi
     
  19. TerdFerguson

    TerdFerguson ls ~/

    Joined:
    Apr 27, 2015
    Messages:
    758
    Likes Received:
    469
    You open fixed.iso with isobuster

    Also that build is meant to be as close to the PC version as possible, or at least in-game it is. I might've even used the maps from PC. If you want to add the PS2 models go ahead but release it with a different name, but with the menu's it'd be almost 1:1 with PS2 version

    Also be aware that the PS2 version used a special encryption for the PAK files, so it may not be easy extracting the models from the PAK as long as they're not in the one or two encrypted PAKs
     
  20. truemaster1

    truemaster1 Intrepid Member

    Joined:
    Nov 10, 2015
    Messages:
    654
    Likes Received:
    325
    isobuster aha thats my mistake.
     

Share This Page