Valhalla Legends Forums Archive | Diablo | Diablo 1 in Private Channels

AuthorMessageTime
RealityRipple
For shits and giggles, I created a client proxy for Diablo 1 that turns its packets into W2BN (really easy since they're identical except for SID_CDKEY2).

[img]http://uploads.realityripple.com/Pictures/D1.jpg[/img]

Currently, it can enter private channels, host and join D1 games seamlessly, and all that jazz.

[img]http://realityripple.com/Software/Battle.net/D1toW2/main.png[/img]
April 27, 2012, 1:15 PM
Myndfyr
Dude.... really?  lol :)
April 27, 2012, 4:10 PM
RealityRipple
Yeah... I even threw in the ol d1 bypass legit char check hack so d1 users can join d1 games through the w2 game list. I'm still working on getting UDP to function accurately, but all SID communication is perfect. D1 even makes operators white-named.

If anyone's interested in messing around with it, you can grab it at http://uploads.realityripple.com/Projects/D1toW2.zip . Be warned, it has bugs and I don't think UDP works right at all right now.
April 27, 2012, 11:04 PM
MysT_DooM
woulda been cooler if d1 icon showed up on chanlist.  probably not since you went through war2, and I cant think of any hacky way to make it happen atm; cool though
ktbpa
April 27, 2012, 11:59 PM
RealityRipple
[quote author=MysT_DooM link=topic=18365.msg185723#msg185723 date=1335571185]
woulda been cooler if d1 icon showed up on chanlist.  not since you went through war2, and I cant think of any hacky way to make it happen atm; cool though
ktbpa
[/quote]It'd be locally possible, and your D1 char icon shows up for games you create to other D1onW2'ers... But the only clients that can edit their statstrings and possibly spoof d1 chars are non-cdkey'd clients that would defeat the purpose of this experiment. @.@
April 28, 2012, 12:08 AM
Invert
I don't mean to diverge from the topic...but I remember my dad buying Diablo for me in 1996. I have no idea what I did with the original but I would like to play it again before D3 is out. Anyone know where from I can "borrow" the game?  :)
April 28, 2012, 5:59 AM
Sixen
Haha, cool stuff RR. This was basically how l2k-Shadow got the SC Beta to work over Battle.net, IIRC.

[quote author=Invert link=topic=18365.msg185725#msg185725 date=1335592791]
I don't mean to diverge from the topic...but I remember my dad buying Diablo for me in 1996. I have no idea what I did with the original but I would like to play it again before D3 is out. Anyone know where from I can "borrow" the game?  :)
[/quote]
I dunno about the full game, but I know you can download DSHR for free right from the Blizz FTP: http://ftp.blizzard.com/pub/demos/diablosw.exe
April 28, 2012, 8:04 PM
RealityRipple
I sent Invert a link to a DRTL iso.

I've also successfully completed this project's goal, and learned some fun things about the way the client works.


April 28, 2012, 9:13 PM
Invert
[quote author=RealityRipple link=topic=18365.msg185727#msg185727 date=1335647581]
I sent Invert a link to a DRTL iso.

I've also successfully completed this project's goal, and learned some fun things about the way the client works.
[/quote]

Thanks, much appreciated.
April 30, 2012, 12:32 AM
MysT_DooM
[quote author=RealityRipple link=topic=18365.msg185727#msg185727 date=1335647581]
I sent Invert a link to a DRTL iso.

I've also successfully completed this project's goal, and learned some fun things about the way the client works.



[/quote]

what did you learn
April 30, 2012, 1:13 AM
RealityRipple
[quote author=MysT_DooM link=topic=18365.msg185731#msg185731 date=1335748383]
[quote author=RealityRipple link=topic=18365.msg185727#msg185727 date=1335647581]
I sent Invert a link to a DRTL iso.

I've also successfully completed this project's goal, and learned some fun things about the way the client works.



[/quote]

what did you learn
[/quote]
Let's see...

The client is intelligent enough to know what device the bnet server it's connecting to is on, and only listens for peer UDP connections over that device. The result of this being that using localhost for a server renders UDP useless unless proxied. However, Storm seems to not like localhost communications, so the only thing that gets proxied is SID_CLIENTREQ. This does have the upshot of my allowing to choose a device by local IP address and d1 will follow.

The client id (statstring) sent from the server in SID_ENTERCHAT is stored in the client and compared to game lists to determine if the game is for the client. I had to read D1's sent statstring, store it, and replace BNet's response statstring with the one D1 supplied in order to join D1 games without using the ol D1 ignore invalid character hack. The rest of the statstring is used to determine which product-specific channels it can enter, for example Rogues Gallery.

Warcraft II won't show any details about D1 games, but D1 will show the W2 map name as the char name for W2 games. It's sort of amusing.
April 30, 2012, 2:47 AM
RealityRipple
Alright, I've just updated this to add backward compatibility with classic D1 players using a second D1 connection. Works pretty well, I must say.
June 3, 2012, 5:17 AM

Search