MrFlibble wrote: ↑Mon May 18, 2020 1:49 pmHello luciusDXL, glad to hear you're well and continue your work. I'm a fan of Dark Forces and I hope all the cool stuff envisioned back in 2016 (like playing the DOS version with hi-res Mac interface and HUD) will come to be.luciusDXL wrote: ↑Tue May 05, 2020 8:01 am Fast forward to today - things are going well and for a variety of reasons, I have a lot more time available again. So I have "returned" in a sense and have been working on a new project, though I have yet to publically announce it. However, I have decided to make the main GitHub repository for the project public so it will be discovered soon enough (yes its Dark Forces/Outlaws related as already guessed).
Just out of curiosity, if you don't mind: how far had you progressed with reverse-engineering Daggerfall for DaggerXL? Was it in any way ready to be made at least into a rough "source port-accurate" engine reconstruction before you had to pause development?
As for progress there, I had something called "Daggerfall DOS" which was based purely on the reverse-engineered code (and some Windows glue code to make it work on my OS) that was to be refactored into the main engine; basically so you get functionally equivalent code that is different enough to avoid potential legal issues - similar to what I am currently doing for the Force Engine.
"Daggerfall DOS" basically had working menus and some of the 3D rendering complete. Unfortunately, it was far from playable. I had high hopes that progress would accelerate as I learned more about the structure of the code and that I was reasonably close to getting gameplay in. But after stepping away for a while that momentum was lost and I was probably being overly optimistic in my timeframes anyway. Lessons learned for current and future projects, such as the Force Engine (which has been announced on Doomworld).
Each of these engines has there own quirks that add "spice" to the reverse-engineering process. For Daggerfall, it was self-modifying code to accelerate scanline drawing (i.e. drawing code modified in memory). For the Jedi Engine (Dark Forces), there are giant unrolled column loops where the jump is dynamically calculated based on the length of your column (imagine manually unrolling a 198 iteration loop).