Giter Site home page Giter Site logo

fake86's People

Contributors

bit-hack avatar pixelmineblog avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

fake86's Issues

Reimplement video emulation routines.

The original video emulation routines could be cleaner in design and have better compatibility.
Re-write these and target the widest range of support we can.

Use nanoseconds for emulator timing

Use nanoseconds in main loop to keep all elements synchronized.
Main loop publishes how many nanoseconds have elapsed to each peripheral.
Convert nanosecond slice to cycles for cpu emulation call.

Enhance VBlank and HBlank polling

Currently every 15 cycles the CPU emulator invokes a timing routine to update port 03DAh (bits 3 and 0). This gives poor granularity of updates, and pro-active updates can be wasted.
Re-calculate these fields only when the register is read, using the current cycle number as a guide.
This would give cycle exact granularity and reduce the computational cost overall.
This can be integrated into the new video system, but can be back ported into the old one too.
At the same time we can update the screen buffer when we enter the vblank period, for better synchronization with our emulation and avoid tearing.

Update PIT timer tick code

We should be able to query the PIT for the number of cycles before it next triggers and IRQ.
Then we can tick the cpu for that number without having to explicitly update the PIT.

This will let us remove the 15 cycle timing update in the CPU as well as increase the accuracy of the emulation.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.