Re: Wow
Sat Feb 24, 2018 11:04

Hi Enjo,

I made an old disassembly back in the late 90's. I used it to reverse-engineer the code. In my current work I use the binary only and let it interpret with the CPU emulation. I found the point in the binary where the game waits for buffer swapping, so at this point I stop the emulation and do the rendering with the buffer and color as specified in the current copper list. Then I trigger VBL interrupt to let buffer-swapping/sound/timer/joystick/benson... be executed by CPU emulation.

Next step will be to swap buffer by my own, instead of using IRQ. This way I can make the IRQ run at 50 Hz, but render the game independently with full video refresh rate. Since the game clocks player-movement/taxis/buses/beacon-blinking... from rendering interval, I need to figure out how to slow that down. (find and change their increment steps...)

  • WowEnjo, Sat Feb 24 10:07
    Nice one. How did you do it in a nutshell? Did you dissasemble the binary?
    • Re: Wow — Andreas Eversberg, Sat Feb 24 11:04
      • Re: WowEnjo, Sun Feb 25 01:40
        Interesting. Aren't there any noticeable slowdowns due to emulation?
        • Re: WowAndreas Eversberg, Sun Feb 25 12:15
          A few thousand emulated instructions per frame is not much for a modern CPU. Paul did the rendering very efficient. planar2chunky with 320x200 and sound re-sampling is not a big deal also.
Click here to receive daily updates