Question about resolution and redraw area.
barisusakli opened this issue · 3 comments
Hello,
I am interested in modifying beasts.exe in a hex editor to increase the resolution of the game from the original 640 x 480
I was able to modify it and increase the resolution by searching for 80020000E001 and replace the entire thing with 000500000004 to increase the resolution to 1280x1024.
This makes the play area bigger like this picture
I also moved the unit portraits with these
At offset 29714 replace 1C 02 with 9C 04
At offset 2972D replace 7C 01 with 9C 03.
The only problems I have left are the unit thought bubble (not critical) and sprites like houses and monsters sometimes disappear if they are outside the viewport and they come back. I am guessing there is some kind of clipping or frustum culling going on to increase performance. It looks like the below picture. It fixes itself if I open and close the main menu or if peasants move over these areas causing a redraw. So it feels like the engine isn't redrawing everything everywhere and only redrawing areas that needs to be updated.
Since you have disassembled the exe do you have any idea where this might be? Maybe there are other values of 640 x 480 that needs to be changed to increase the clipping area.
Thanks for the great tools 👍🏼
Hello!
Sorry for the long reply, somehow the notification got lost in my mail. When I changed the resolution, I encountered this problem too. To be honest, I didn't find a solution and then this project got sidetracked. I only disassembled a small part of the game. It takes a lot of time when analyzing statically and even more time when analyzing dynamically with DynamoRIO. I should also mention @Trass3r's work, his work saved me a lot of time. But time is still short, sad.
@JonMagon no worries, I managed to finish the game with what I had, clearing the screen if things got too bad by opening the main menu 😆
I wonder if someone still has the source code to this game so it can be open sourced that would help fix all these issues.
I even got in touch with the developer at some point. He shared some details, I think about how reflect.dat was used for the water reflections. But even he didn't remember all the stuff.
The source code is lost inside the catacombs of EA.
I still have some OOAnalyzer result file that can help with disassembling.

