You can edit almost every page by Creating an account. Otherwise, see the FAQ.

Beanulator

From EverybodyWiki Bios & Wiki



Beanulator
File:Beanulator banner.jpg
Just a placement banner for Beanulator until a real one is made.
Developer(s)Beannaich
Initial releaseNovember 1, 2013; 11 years ago (2013-11-01)
Written inC#
Engine
    Operating systemCross-platform
    TypeEmulator
    LicenseBeanulator License
    WebsiteBeanulator Website

    Search Beanulator on Amazon.

    Beanulator[edit]

    Beanulater is an emulator that originally started as Nintemulator. It had been defunked and rebranded and moved to a new repository. The original Nintemulation website is still functional as well. See reference 1.[1]

    About Beanulator[edit]

    This project is designed from the ground up for cycle accuracy, flexibility, and modularity. It adopts the "isolated chip" design that has been employed to much success by other notable emulators. For years the cycle accuracy movement has been growing, and as processors have gotten faster and compilers have gotten smarter, this movement has gained a lot of support. But lets face facts, not all hardware can rationally be emulated in this fashion. Some systems are still, and will likely remain too fast to be emulated on a cycle level at playable speeds. This is where beanulator comes in.

    We need an emulation platform that allows for both approaches to thrive. HLE and LLE are both viable options for emulating most systems. Beanulator has been designed from the ground up to support both approaches, with the beginnings of an API that fully embraces LLE and cycle accuracy. This approach is also fully compatible with HLE and JIT cores. Don't think the LLE software rasterizer is getting the job done fast enough? Switch over to the HLE implementation! The ability to plug and play every component of a certain emulated system is a very desirable trait, and it is with this philosophy that beanulator will move forward.

    The above will be accomplished by isolating every component away from the others. This way, other components can be swapped in at a later time if necessary. This offers an amazing amount of flexibility, and it happens to be the way these systems are designed in the real world.

    "What about synchronization?", you may ask. Synchronization is the cause of most emulator woes, and it is the reason why after literal years of development, some emulators still have problems with some games. In beanulator, synchronization will be handled explicitly by "motherboard" and "clock generator" classes. This solves many problems, not the least of which is something coined as "bus hold delays". In reality, signals don't propagate instantaneously, they take a short while to stabilize or be sampled. Imagine the following example of the NES (Famicom):

    In the NES, there are 2 chips that communicate with each other, the PPU (Picture Processing Unit) and the CPU (Central Processing Unit). The PPU will assert the CPU's NMI line near the end of each frame, but this isn't instant, it takes a few cycles to happen. In an emulator you might say "just have it happen a few cycles later", and while this may work I consider it a hack. In beanulator the processors have no concept of the other, and the NMI signal will have to be sent from the PPU to the CPU by the motherboard class, effectively emulating the delay!

    This project is still in it's infancy, and needs experienced emulator developers and hardware aficionado's alike. To help craft the absolute best platform for both HLE and LLE implementations to thrive.[2]

    Contributors[edit]

    Beannaich Original Author

    Jegqamas[3]

    License[edit]

    Beanulator's code is licensed under the 4 clause BSD license:

    Copyright (c) 2013, beannaich All rights reserved.

    Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

    • Redistributions of source code must retain the above copyright

    notice, this list of conditions and the following disclaimer.

    • Redistributions in binary form must reproduce the above copyright

    notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

    • All advertising materials mentioning features or use of this software

    must display the following acknowledgement: This product includes software developed by beannaich.

    • Neither the name of beanulator nor the

    names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.[4]

    References[edit]

    1. "Nintemulator Website". Retrieved 2013-12-10.
    2. "Beanulator's ReadMe/AboutMe". Retrieved 2013-12-10.
    3. "Beanulator Contributors". Retrieved 2013-12-10.
    4. "Beanulator's License". Retrieved 2013-12-10.

    External Links[edit]

    Beanulator Development Page

    Nintemulator Development Page


    This article "Beanulator" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:Beanulator. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.