Release Diablo


Grabbed the shareware version for the time being. Really excited to get around to setting up the full version - it works excellently and the touch screen support is a nice touch!
 
I don't like Diablo, but I'm always impressed by static recompilations. Congratulations, notaz!
 
This is why I love my Pandora and this community.

Here's a device that is x years old, by todays standards is totally underpowered & yet it still has people coming out with software that knocks your socks off.

Anyone that feels the Pandora/Pyra are underpowered or out of date needs to hang around here for a few weeks.

Awesome work.

If the Pandora had been made by a large corporation support would have dried up years ago.
 
The game run really well now.  I don't see any menu issues notaz mentioned.  Everything works perfectly so far.  And yes, touch support for this game is really a great addition and makes the game much  more easy to play and enjoyable.  This one deserves another Pandoralive article.
 
Last edited by a moderator:
@notaz What is your current strategy for working on this; more specifically: you have taken the x86 binary, and ultimately reversed it into C code. You then are making some tweaks to the C code to fix issues. Is it the case that sometimes you are making improvements/fixes to the x86 binary -> C phase, and when that happens do you have to keep reapplying your fixes to the C code? Or is the x86 binary -> C phase stable, and it is purely C code changes you are currently making? I half imagine that as you look at the C code and identify what things do, perhaps you are renaming some functions/variables/etc. and losing that if the x86 binary -> C phase changes would be quite annoying.

Related to the above, are the C files (I am guessing there are multiple files, split per DLL/exe? or perhaps split further based on some logic?) something that could ultimately be shared on GitHub? Or do you feel this would cause too many problems with Blizzard?

And last but not least, if we wanted to make any tweaks to the game, how 'possible' would that be given access to the C code? For example, I often found that it was almost impossible to find rings that had dropped onto the floor. In the end I had to just slowly move my cursor across the entire screen to find it. I was wondering whether with an afternoon/day looking over the code, a competent programmer would be able to identify where rings are being drawn, and find a way to get a label to be printed next to it.

Please treat all of the above as curiosity more than anything else; I am not suggesting you, I or anyone else should attempt to make any improvements to the game like this, but I am curious as to the possibility.
 
@notaz What is your current strategy for working on this; more specifically: you have taken the x86 binary, and ultimately reversed it into C code. You then are making some tweaks to the C code to fix issues. Is it the case that sometimes you are making improvements/fixes to the x86 binary -> C phase, and when that happens do you have to keep reapplying your fixes to the C code? Or is the x86 binary -> C phase stable, and it is purely C code changes you are currently making? I half imagine that as you look at the C code and identify what things do, perhaps you are renaming some functions/variables/etc. and losing that if the x86 binary -> C phase changes would be quite annoying.
I have a few ways to deal with this, one is annotating the disassembly to give hints for the translator, which also allows limited form of patching. The other thing is copying some functions away to another .c file for more extensive changes and annotating the same function in disassembly so that the translator skips it. As for renaming things, I do that in the disassembly itself, which may make the "manual" functions out of date, yeah, so I leave those for final stages of the project.
Related to the above, are the C files (I am guessing there are multiple files, split per DLL/exe? or perhaps split further based on some logic?) something that could ultimately be shared on GitHub? Or do you feel this would cause too many problems with Blizzard?
I don't want to do that, it's still their code after all. And yes functions are in huge .c files, one file for each exe/dll that takes upto several minutes to compile. Each "huge .c" is regenerated when I build the project, and "manual" functions (which are not many) sit in their own .c file.
And last but not least, if we wanted to make any tweaks to the game, how 'possible' would that be given access to the C code? For example, I often found that it was almost impossible to find rings that had dropped onto the floor. In the end I had to just slowly move my cursor across the entire screen to find it. I was wondering whether with an afternoon/day looking over the code, a competent programmer would be able to identify where rings are being drawn, and find a way to get a label to be printed next to it.
Yes that could be done, if you can think of a good way to identify the offending code. With the mouse/touchscreen problem it wasn't too hard, just a matter of finding the window procedure (found through RegisterClass() call), and then reading the x86 disassembly and sprinkling some printfs in translated code and doing some trial-and-error runs to help identify the exact code responsible for handling clicks in various situations.
^ and make the game fill/stretch the entire Pandora screen :)
It's more problematic that it looks, I'd need to rework wine to use the scaler layers (or scale manually) and redo input for touchscreen scaling too. Maybe the hd mod (linked earlier in this thread) will release their source someday, then you can have it.
 
Last edited by a moderator:
in the meantime, to look for items you can use the "Z" touch to zoom... it's not great but definately better for rings...

edit: I forgot the most important... It plays great, it's wonderful! The touchscreen works well, I still prefer an external mouse but it's pretty great to be able to play without. Many thanks for that, you once more achieved something great!
 
Last edited by a moderator:
@notaz: I was just joking about the fullscreen thing as I know it was asked before in Starcraft port. That would be nice if the author of the HD release the code.
 
Quick play with Diablo and i'm impressed... what a port, a really good work.

Playing with touchscreen is really great, sound and general speed is very good also on my CC pandora..impressive :)

One minor bug i found...on main menu selecting replay intro... the video is played fine but out of the border is visible parts of main menu graphics....but it's not very important.

Big thank notaz!!
 
Looks like it reallyy plays better than the PSX version I tried on the Pandora (direct controls, ery slow in dungeons...). Nice, good work notaz! :)
 
One minor bug i found...on main menu selecting replay intro... the video is played fine but out of the border is visible parts of main menu graphics....but it's not very important.
Yeah that's one of several menu problems I mentioned.


I think I also forgot to mention that tapping the screen while holding left shoulder button acts as rightclick (like in StarCraft).

Many thanks for that, you once more achieved something great!
Big thank notaz!!
You're all welcome, I'm also happy to finally have it working.
 
Last edited by a moderator:
Back
Top