Code Monkey home page Code Monkey logo

helios's Introduction

Java CI CodeQL

Helios

A Java-based multi-system emulator mainly focused on Sega 16-bit systems.

Initially created as a Sega Megadrive/Genesis emulator and then evolved to emulate the following systems:

  • Sega Megadrive/32X
  • Sega Master System/Game Gear
  • Sega Sg-1000
  • Colecovision
  • MSX v1
  • NES

Performance

Sega 32x: The target is a modern mobile cpu capable of boosting ~4Ghz (ie. AMD Ryzen 5 PRO 5650U),
this should allow perf close to 60fps for most titles, YMMV.

How to Run

Requires java 17+ installed.

Get the most recent zip file from the download section,
for example helios-19.1108.zip and extract to a folder.

Windows

Double click on launcher.bat

Linux

Open a terminal and run:
chmod +x launcher.sh
./lanucher.sh

Gallery

MD Bad Apple Demo

SG-1000 Super Uwol
MSX Caos Begins
SMS Astro Force
NES Böbl

Credits

Initially based on the Genefusto emulator by DarkMoe.

Tony Headford, m68k core: m68k

J. Sanchez, Z80 core: Z80

Alexey Khokholov, Ym2612 core: Nuked-OPN2

Chris White, JavaGear project and in particular:

Tjitze Rienstra, TMSX project and in particular:

notaz, SVP core: Picodrive svp

Digital Sound Antiques, Ym2413 core: emu2413

Andrew Hoffman, NES emulator: halfnes

Hitachi SH2 cpu emulator adapted from esoteric_emu's SH4 implementation

Tomek Rekawek, GameBoy emulator: coffee-gb

C-BIOS Association for their open source MSX bios

Hitachi SH2 cpu emulator adapted from esoteric_emu's SH4 implementation

License

Released under GPL v3.0

helios's People

Contributors

dependabot[bot] avatar fedex81 avatar krlvm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

helios's Issues

Md: known issues

  • Bubba n Stix: in-game graphic corruption, let the demo run
    • probably VDP related, data read/writes are not accurate wrt vdp mem slots and fifo interaction
  • Puggsy copy protection (SRAM check)
  • Asterix and the great rescue, power of gods
    • controller doesn't work
    • add the following line to helios.properties
      helios.md.pad.asterix.hack=true

fixed as of release 22.1205

  • Lemmings: in-game action bar corrupted (hint vs vint issue?)
  • ISS deluxe: intro screen graphic corruption, in-game flickering
  • Dashing desperadoes (Proto): in-game flickering

ym3438 emu copyright

Hi,
Nice to see you're using my core for ym3438, but i wonder why did you remove original copyright from it. It is derived work from my original implementation, so it should not be removed

PSG vs FM desync

There's a PSG sound distortion with Mega Drive emulator (it actually sounds Sega Master System-ish), it very noticeable on player jump in Sonic games, for example. I also noticed it slightly out of sync with FM synthesizer.
I tried to port SN76489 implementation from some other emulators written in C/C++, but this gave no effect. Experiments with mixer from SoundUtil did not give result too.

Cycle synchronization hang

Hello, I'm experiencing problems with hanging of the game cycle thread: the thread is paused with a regularity of a couple of seconds (CPU utilization grows on resume and becomes 0 on freeze) making emulator impossible to use.

vm

I figured out the cause of the problem is a bottleneck in the cycle synchronization algorithm: the park method of Util class. The thread should be suspended for a 5-6 milliseconds, but it's actually led to a significant freeze and takes a half of a second at least.

I rewrote the parking algorithm and game runs smoothly without any freezes, but I have doubts about thread-safety:

public static void park(long intervalNs) {
    long resume = System.nanoTime() + intervalNs;
    while(System.nanoTime() < resume) {
    }
}

Can it fix the rendering freezes, or this problem is related to my CPU clock speed?

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.