axl, on 04 June 2017 - 02:22 AM, said:
I can't remember if this was brought up before, but since everyone just wants to play Blood on modern hardware re-creating the codebase is a bad idea(remember my bad idea to do the same shit 15 years ago ). To me it seems the best approach is to hook in the original exe into eduke32. It would require a lot of patience but i think in the end it would require less fiddly fucking then m210 approach.
In theory if you put dosbox into its own thread and executed the blood.exe, then you hooked all build functions and created a wrapper around those hooks so the proper calls got routed to eduke32. From there its just audio and input and you should be able to continue to let dosbox handle all that for you. Basically the 30,000 foot view of this idea is, you have Blood running in a virtual machine, and all the engine commands are re-routed to eduke32. Then you would have to have a watcher system that copies the changes to sprites/sector/walls from the BloodVM to eduke32. This way you don't have to fiddly fuck with the game code to make everything 1:1 with the original game, and you get it play it on modern hardware. The only advantage I can see to m210 approach is having code that people can mod, but since his shit is closed source I can't see hes interested in that at all.
You could probably even find the addresses by using the build objs that shipped with Shadow Warrior and Duke3D as a reference to find everything in the blood exe that you need.