Release Diablo


when you click on the spell icon (not the "spells" button, the square button on the lower right corner) it display all spells, scrolls and staff you can use, as it should. but nothing happens when you click on the spell, all the icons just close but the spell isn't selected. you can select spell manually if you go through the "spells" menu but it do not work with the quick selection.
This is actually a lot harder problem than it looks. The game wasn't really designed for use on touchscreens.

It seems when you move the mouse, the event is not processed, it only saves the cursor coordinates somewhere for later, however when you "click", it handles it instantly, but doesn't really check where the click was. The mouse moves are processed in 50ms periodic updates instead (the game is locked at 20fps), which kind of makes sense as they probably wanted to avoid slowdowns when user moves the mouse wildly on old Pentium 60Mhz machines the game was designed to run on.

So when you tap on the touchscreen, the game reacts as if you clicked on the old cursor position, which pretty much makes the game unplayable on a touchscreen. With real mouse it's fine because you first drag the cursor on whatever you want to click on and periodic update kicks in before you click, most of the time at least. I was able to find a function responsible for selecting enemies and NPCs, so calling it manually on click events takes care of enemies and NPCs at least. I've also found the function for the spell bar, but calling that from event handler corrupts memory and crashes the game. Calling "full" periodic update is not an option and it's open coded into main game loop and there's no dedicated function that could be called.
ho, if that's just a touchscreen issue that's not a big deal I would think, I was just reporting as it might have been something bugged in the static recompilation that could have much worst impact than just selecting the spell...
 
Cool !! I missed this thread !! :D

Unluckily I can't try this for now, I really need to find the time to send my failing pandas...

One question, wasn't the game code been released open years ago ? o_O

I had even a look at it, but C++ was too much for me... and I suppose I lost it with some failing HD...
 
Cool !! I missed this thread !! :D


Unluckily I can't try this for now, I really need to find the time to send my failing pandas...


One question, wasn't the game code been released open years ago ? o_O


I had even a look at it, but C++ was too much for me... and I suppose I lost it with some failing HD...
I don't recall Blizzard ever releasing source code.
 
I'm pretty sure it always was closed source. and I'd be surprised a leak happened or we'll see ports by now, no?
 
Cool !! I missed this thread !! :D

Unluckily I can't try this for now, I really need to find the time to send my failing pandas...

One question, wasn't the game code been released open years ago ? o_O

I had even a look at it, but C++ was too much for me... and I suppose I lost it with some failing HD...
I don't recall Blizzard ever releasing source code.
Yeah, googling around seems like so... now I wonder where I got it from o_O it was more than 10 years ago...
 
Yeah, googling around seems like so... now I wonder where I got it from o_O it was more than 10 years ago...
 Probably you got it wrong at the time and took it for something else :) it happens.
I remember it was referencing to file names and graphic files present in the real installation, there was only the main engine anyway, I didn't find quest scripts or AI implementations, but just something that I suppose was made to interpreting them...
 
If Diablo 1 works here, can Diablo 2 work on Pandora as well?  Diablo 2 minimum specs  seem pretty low... :)
It took him 4-5 months to do this process with Starcraft, much of Diablo he said had shared libraries with Starcraft. Diablo 2 is considerable more complex with much more supporting libraries. Not sure if he wants to invest such time into doing it. He did address this in the Starcraft thread. 
 
Last edited by a moderator:
I understand.  I'm just interested in the technical ability of the Pandora if it can run Diablo 2.  That's all :)
yeah it's almost playable now through x86 emulation and wine. So It most likely would work fine if it was done.
 
^Show me a video with sound working properly and full speed.
 
Last edited by a moderator:
^Show me a video with sound working properly and full speed.
Oh you mean this?

Work good on the Pandora but to get it run with Sound was compilicated.

https://www.youtube.com/embed/UpxPVIGlYEk?feature=oembed


btw:

my DiabloCDRom arrived and i am copying the Data Files now :)

Edit:

Damn that Ebay CDrom have too many scratches for copying that Gamesfile :unsure:

seem it was too cheap for 1 Euro on Ebay :wacko:   
 
Last edited by a moderator:
This is actually a lot harder problem than it looks. The game wasn't really designed for use on touchscreens.

It seems when you move the mouse, the event is not processed, it only saves the cursor coordinates somewhere for later, however when you "click", it handles it instantly, but doesn't really check where the click was. The mouse moves are processed in 50ms periodic updates instead (the game is locked at 20fps), which kind of makes sense as they probably wanted to avoid slowdowns when user moves the mouse wildly on old Pentium 60Mhz machines the game was designed to run on.
How does it feel if you immediately issue the mouse movement, but delay the mouse click until after the main update runs?
 
Last edited by a moderator:
I had the same behavour with SheepShaver. I had to send a fake "mouse move" before click to make it compatible with TouchScreen, with some delay between both command to let the emulated cpu cope with the change.
 
@Ingoreis I don't know what wizardry you have done to get sound working properly, I tried everything you suggested in the Exagear post.

I do notice some minor slow downs, but that IS playable. Maybe less ideal than a Native port would be. At least I know the Pyra can handle it smoothly at 800x600 with all graphic features enabled.
 
Last edited by a moderator:
How does it feel if you immediately issue the mouse movement, but delay the mouse click until after the main update runs?
It's all on the same thread, so trying to delay events delays periodic update too.


Anyway I took a simpler approach to trigger it on mouse up event (only when spell bar is active), so by the time pen is lifted the periodic update is already done and all is well.

Anyway I've uploaded it on the repo now:

http://repo.openpandora.org/?page=detail&app=package.diablo1

And here is a ready-to-play shareware version as a bonus:

http://repo.openpandora.org/?page=detail&app=package.diablo1s

The main menu (not the ingame one) is still misbehaving, but I've decided fixing it is not worth the effort. There are some nasty race conditions there and other problems wine has with it (at least something works, vanilla wine only shows black screen there). It doesn't look great but it's functional at least.
 
Last edited by a moderator:
wow, that's great, I will get it this evening and test it.

you are great!

(and yes, I did "like" your your release post)
 
Back
Top