GithubHelp home page GithubHelp logo

ares-emulator / ares Goto Github PK

View Code? Open in Web Editor NEW
841.0 44.0 103.0 168.5 MB

ares is a cross-platform, open source, multi-system emulator, focusing on accuracy and preservation.

Home Page: https://ares-emu.net

License: Other

Makefile 0.38% GLSL 0.11% C++ 95.72% C 3.71% Objective-C 0.03% Shell 0.02% Metal 0.02%
emulator near higan console game emulation hacktoberfest

ares's People

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  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  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

ares's Issues

Option to individual controller setting (per system)

It's annoying every time when I choose a system to play (p.g colecovision that has some different button layout wich I like to put the numbers in the keyboard's num pad) and change the system (p.g. Nintendo 64) and all the buttons has changed.
Would be nice to have both general controls but the system itself doesn't change the key from each system individually,

macOS Mojave support

What about people who prefer to stay with Mojave because of 32bit and 64bit ?

And

The entire Neo Geo Pocket/Color library is now thought to be playable, with minor graphical issues in four titles.

Which four titles ?

By the way, keep up the good work!

Failing to compile

I'm receiving collect2.exe: error: ld returned 1 exit status mingw32-make: *** [GNUmakefile:69: all] Error 1 in the code of the version 7adfece.

Windows 10 x64
gcc (MinGW) 8.1.0

[Request] CHD support

Would be nice if the CD based systems had CHD file support. It's one of the best format for preservation and are used alredy in emulators such MAME, Duckstation, Redream, etc.

[GBA] Color pallete: too redish?

It seems that the GBA color pallette is too reddish. Principally where it would be pure white color. Take a look at some examples:

image
image
image
image
image

This happens in every video driver.
Tested in the cb4a79e version.
SO: Windows 10 x64

[NES] Let's talk about the missing iNES mappers (and maybe even NES 2.0)

Ok, this is one of those issues created to discuss more the topic (and of course, every new info everyone can bring on this topic is welcome). This issue isn't intended to be close soon, as it demands a lot of work to be done.
I made extensive research and tests about different mappers to verify how well they are implemented and I'm compiling everything in a list that I hope to be useful in this journey. Every entry has the iNES mapper number, a link for a list of every official game that uses this mapper (non-official mappers of course will have his entry empty), a link for the NesDev Wiki about the mapper, a name of a known dump that uses the mapper (that was the most difficult task, as I had to research deeply about some very obscure carts and, of course, I also tested every one of them manually in the latest dev version of ares). Note that for a very few of them, I didn't have a proper dump to test - the ones which I haven't the proper dump are marked as red in the "example" column.

About the dumps I used to test, I'm also providing a log of them being used in Mesen: roms_used_for_mappers_testing.txt
I have also made the same tests on Mesen for comparison as it is the most accurate NES emulator at the moment. You can also take a look at the Mesen source code, as most of the iNES mappers are very well documented too: https://github.com/SourMesen/Mesen
I tried to use common names for the dumps used as examples. Also, some of them are PD made by homebrew projects. Eg:

Note: these are links to the creators' webpage where they share their own work. Just please be warned that we can't share links in any place about copyrighted material without owner permission (this is always a good reminder). But of course, you can always dump your obscure carts at home and help with the tests. Just be assured you're using a proper dump.
Those PD also have somehow made in physical version too, that's why they uses valid mappers.

There's also very useful information about the mappers in no$nes documentation: https://problemkaputt.de/everynes.htm
If you want access to help to collaborate in this spreadsheet or more information about the dumps used for tests, you can send me a PM.
Every bit of help is welcome, as we can see, it may take some work (and the mappers must be implemented mostly one by one).
After more iNES mappers are supported in ares, I surely will be glad to reunite all the information possible about the NES 2.0 too.
The idea, of course, is to update the list frequently as more mappers start being supported or more information is gathered.

[GBC] Graphical errors in multiple games

Shantae: Game runs and sound playback is ok. But most of the cutscene screens are black. In the game itself, just background, but invisible character sprites
image
image
Donkey Kong Country: Glitched graphics in most screens
image
image
image
Alice in Wonderland: Messed graphics in cutscenes
image
The Simpsons - Night of the living treehouse terror: The gameplay screen has no image.
image
Just to name a few examples.

And most Game Boy Color exclusive games have any kind of graphical errors.
I suspect that maybe this is caused by incorrect tileset indexing.

Version: cb4a79e
Windows 10 x64

gamepads conflicts

Hello good afternoon.

I would like to report: When configuring gamepads from different consoles, the settings conflicts, not being separate one setting for each console.

Thank you.

Big slowdowns in Ocarina of Time

been playing through OOT and getting some pretty serious slowdowns in certain spots. The actual hardware would drop a little occasionally but nothing as severe as this.

A couple examples are in Jabu Jabu's Belly the central room that branches off into 3 halls, once the 3 electric worms that come out to fly in the middle the framerate nearly cuts in half

and in the Shadow Temple once you board the ship, once the second Stalfos drops down the framerate drops significantly, and you can find a save state for that one right here:
https://drive.google.com/file/d/1Alj-EQ5t6uklBjK2bybA5ihP8Idvt2xT/view?usp=sharing

I'm using the NoIntro v1.0 ROM

[N64] - General - Framerate drops for no discernible reason on Linux

After testing on both a Lenovo t14 with a ryzen 7 pro 4750u, and a desktop computer with a RX 580 and a 5900X, on both Linux (Linux Mint and Arch were tested) and Windows 10, on ares V120, V122, and V123-dev, N64 games in ares seem to experience framerate drops for no discernible reason- meaning that no CPU cores/threads were at any point at 100% load, and neither was the GPU, but Ares was dropping frames regardless. When I say that it's dropping frames, I mean that the framerate counter in the bottom left displayed lower than 60fps on NTSC games, and had the accompanying audio crackle. The easiest I found to experience frame drops was in the intro of Conker, but the drops happen in most if not all n64 games and could easily be experienced elsewhere.

Just in case memory speed/bandwidth was an issue, I tested both computers using https://zsmith.co/bandwidth.php, specifically https://zsmith.co/archives/bandwidth-1.9.4.tar.gz, and attached the results of both.
bandwidth1
bandwidth2

Rename lucia to "ares" for releases.

For historical reasons, ares' user-interface is called "lucia", and is built as lucia.exe (on Windows). However, the public name of the project is "ares", and since the default build only produces a single executable, it might as well be named ares.exe.

It's probably not globally replacing lucia with ares across the source-code and filenames (not least because there's already an ares directory in the repo), but it should be easy to rename the executable in the GitHub release scripts and in the make install script.

[N64] Majora's Mask save file duplicates itself

When you create a new save, the save file immediately duplicates to the second slot as well. It doesn't matter if you delete it or not, the file always comes back when you return to the file select screen. You can even try to erase it and start a new file in the second slot, but when you start the new file it will just load the original one.

EDIT: If you save at an owl statue it seemingly uses the duplicate save file for that too, as the owl icon appears near the second file after you quit, not the original

I hesitated to put this here because it seemed like it must be something other than the emulator that's causing this, but it doesn't happen with any other emulator.

Here is my save file and a save state from right after the duplicate has been deleted;
https://drive.google.com/file/d/19BhGZkFrLaxc-MfEQt5p8zCB4kV_187K/view?usp=sharing

To replicate all you have to do is back out to the title screen and then proceed back to the file select. You'll see the original save file duplicated to the second slot on its own.

I'm using the NoIntro ROM
MD5: 2a0a8acb61538235bc1094d297fb6556

[SG-1000] Public Domain homebrew issues

Arno Dash - Stuck at level load.
Arno Dash (PD) v1 00 under4mhz 2020-07-23 2021-08-11 10-29-34

Bacachase - Green screen.
Bacachase (PD) nitrofurano 2016-10-25 2045 2021-08-11 10-29-53

CMJN - Works, with glitches throughout.
CMJN (PD) nitrofurano 2014-06-22 2021-08-11 10-35-43

H7N9 - Works, but idk if it's graphics corruption.
H7N9 (PD) nitrofurano 2016-10-24 2021-08-11 10-32-15

Jet Paco & Jet Puri - White screen for both NTSC and PAL versions.
Jet Paco   Jet Puri NTSC (PD) v1 00 Mojon Twins 2019-01-08 2021-08-11 10-31-54

Nyan Cat Demo - Blue screen with a white square.
Nyan Cat Demo (PD) v0 01 nitrofurano 2021-08-11 10-37-29

Omikuji - White screen with a black rectangle.
Omikuji (PD) v1 Maechio 2021-08-11 10-37-42

Pole Position Remake - Works, but idk if it's graphics corruption.
Pole Position Remake (PD) nitrofurano 2016-04-10 1925 2021-08-11 10-38-03

S_Sniper - Stuck at title screen with high hz buzzing sound.
S_Sniper (PD) v1 Maechiko 2021-08-11 10-38-20

Suepr UWOL - White screen.
Suepr UWOL (PD) Mojon Twins 2016-11-19 1411 2021-08-11 10-38-50

Include ParaLLEl-RDP as a git subtree

ares' N64 core depends on https://github.com/Themaister/parallel-rdp-standalone for RDP emulation. Currently, ares includes a script to download the latest version of that code in the right place in ares' source tree, but now that ares itself is stored in git, we can do better.

  • git submodule is the official tool for putting git repos inside other git repos. The upside is that there is a standard "update all submodules" command people are already likely to know; the downside is that submodules aren't checked out by default and the failure modes of not-quite-right submodules can be confusing.
  • git subtree is an alternative tool. The upside is that the included repository's files are stored directly in the ares repo so that they can't get lost or misplaced; the downside is that there's no way to automatically update all subtrees.

For example, higan uses git subtree for both the external libco repository, and for hunterk's shader repository. I put an update-subtrees.sh script in the root of the repository to make it easy to update subtrees in future, but since that's a project-specific convention it would need to be documented somewhere.

Of course, we could also just keep the status quo, and require people to run the script to obtain ParaLLEl-RDP before building the N64 core.

Analog deadzone/sensitivity is busted

I'm using an XBOX one gamepad and assigned the right analog to the c-buttons.

version 121.a has the right analog deadzone disabled so it presses the buttons by itself, it's impossible to control.

[Request] BSNES enhancement features in SNES driver

Would be certainly nice to integrate all the specific SNES improvements which has in bsnes, such:

  • HD Mode 7
  • Personalize how many frames beyond in run-ahead mode
  • Overclocking of each system/cartridge CPU
  • Audio improvements
  • Game enhancement
  • Cheat support
  • Widescreen support for modified games
  • Compatibility options
  • Game hotfixes

I'm thinking even in port myself some these things directly from bsnes code. There is any kind of restriction for this?

sg: support 8 KiB RAM adapters

Some Taiwanese ports of MSX games required a special adapter containing extra RAM to be played on an SG-1000. See here for details.

Games known to require these adapters are documented in the MAME software list.

Type A adapter:

<rom name="bomberman special [dahjee] (tw).bin" size="49152" crc="ce5648c3" sha1="455838571dd8287d491431e03269b0ccd292c8b8" offset="000000" />
<rom name="yie ar kung-fu ii [dahjee] (tw).bin" size="49152" crc="fc87463c" sha1="44fb2dca3774f859f0ae0ad4d809a67f760cf9ae" offset="000000" />
<rom name="king's valley (tw).bin" size="32768" crc="223397a1" sha1="922d23895c12707b2fc382ea5cb769c5cb9b5755" offset="000000" />
<rom name="knightmare [jumbo] (tw).bin" size="49152" crc="281d2888" sha1="babdb6b109b20e81c28cd892c2042723e9cbff49" offset="000000" />
<rom name="pippols [jumbo] (tw).sg" size="32768" crc="df7cbfa5" sha1="4a95b98e127fb0c6428d6debcfc92152069ac531" offset="000000" />
<rom name="rally-x [dahjee] (tw).bin" size="32768" crc="306d5f78" sha1="21770691191b62bafec9099bbe0f9942f5480f83" offset="000000" />
<rom name="road fighter [jumbo] (tw).bin" size="32768" crc="29e047cc" sha1="4f1a139974e3db27af5973bc9572ed68acd6ea68" offset="000000" />
<rom name="twinbee [jumbo] (tw).bin" size="49152" crc="c550b4f0" sha1="a8c30043c145e63f79a3265dde167529f0e08d49" offset="000000" />
<rom name="tank battalion [dahjee] (tw).bin" size="32768" crc="5cbd1163" sha1="0ca3b740b28266a2a606127ed8967c684b67cb44" offset="000000" />
<rom name="legend of kage, the [dahjee] (tw).bin" size="49152" crc="2e7166d5" sha1="902dbb122bf0efc76604a876c3fae51c074bdc6a" offset="000000" />
<rom name="star soldier [dahjee] (tw).sg" size="49152" crc="e0816bb7" sha1="c1984257809ec5bce80a65d22b9b32561e04922c" offset="000000" />

Type B adapter:

<rom name="bomberman special (tw).bin" size="49152" crc="69fc1494" sha1="d1d56bcd996df94458f5901dc537a5e30021256b" offset="000000" />
<rom name="castle, the [msx] (tw).bin" size="49152" crc="2e366ccf" sha1="5a81d5103487695cabd811aabd9e71f48b9e7996" offset="000000" />
<rom name="magical kid wiz (tw).bin" size="49152" crc="ffc4ee3f" sha1="fd24b501046cf811b04386129be0362a1eabf6b3" offset="000000" />
<rom name="rally-x (tw).bin" size="32768" crc="aaac12cf" sha1="0c1957a5faae5254c69f3331e79d87499dd7cf48" offset="000000" />
<rom name="road fighter (tw).bin" size="32768" crc="d2edd329" sha1="2755f74019dc94559fd0c2248e2ecb7f48879b90" offset="000000" />

Using throught command line

Hi, thanks for your work in this emulator, it's awesome.

I would like to know if it's possible to use emulator throught command line. I tried with ngp color rom and the emulators open, but run in directly as monocrome game.

C:\<emu_path>\lucia.exe game.ngp

Thanks

v121 fails to build with GCC

Since v121 was... rushed, it turned out Near had made some changes that depended on Clang-specific extensions, preventing it from building with GCC.

@cglmrfreeman has published patches that fix the problem:

https://github.com/cglmrfreeman/Ares-v121-Patch

...but according to the README in that repository:

Near was obviously trying to tinker with the TLCS900H processor, leaving "still imperfect" in the release notes and what I have done is revert changes to successfully compile. This is a regression of code, and I would like to believe Near was always moving forward to improve their code, and there might have been a reason they wanted to change their code this way, however, I just couldn't figure out how to get it to work in a way Near probably could have.

We'll have to figure out what to do about this.

BIOS setup is tedious

Problem:
-manually setting up bios filepaths for this many systems takes a long time
-has to be repeated if the cfg is wiped
-requires GUI code

Proposed behavior:
Include "Firmware" folder in release packages. On rom load, check if that system's cfg bios filepath is empty or invalid. If so, scan ares/firmware/ for that system's bios (by hash, not filename).

Users can drag bios files en masse into that folder.

Attempt to remember and re-test issues from previous github

This issue will be fairly disorganized, as I try and remember as much as possible that went wrong originally. As I re-test, things will be split into individual issues
Mega Drive:

  • Every Treasure game has issues with the 3d aspects #176
  • Music in adventures of batman in Robin cuts out at the stage one boss #114
  • Unable to start new game in Japanese version of Super Hydlide
  • Text and some other issues in Landstalker #117
  • Something is still wrong with musha, possibly only on regular profile?
  • Magical Hat no Buttobi Turbo! Daibouken had a weird issue where your quickly turning around animation would make a row of tiles invisible, possibly only on regular profile?

Mega CD

  • A lot of different issues with After Armageddon Gaiden on both profiles
  • Some discs aren't recognized, don't remember which
    Unsure how to test this
  • Battletech Grey Death Legion has issues #438
  • Load times and track switches take too long on all games, CD music doesn't seem to loop either
    Unsure of the best way to test this, will try another time
  • Arcus 1.2.3 might still have issues, don't remember if everything was fixed
  • AX-101 only works on some BIOSes. #441
  • Something is still wrong with Robo Aleste

32x

  • That golfing game flashes during the intro

Pc Engine

  • Valkryie no Densetsu has an issue where the camera doesn't follow you, and the HUD follows your character
  • HUD issues with strip fighter 2
  • Issues during curtain scene in Wonder Momo #442

Pc Engine CD

  • Asuka 120% has a multitude of issues on both profiles #443
  • Currently no support for games express cards, and by extension their CD games #444
  • A huge amount of games with visual scenes/sequences are misaligned, have garbage, etc, depending on the profile
    Unsure how to test this atm

Playstation

  • Pingu doesn't work

Other

  • Shin Megami Tensei dungeons are really broken on either the pc engine cd or mega cd version, don't remember which, possibly both
  • Support for more bootleg mega drive games?
  • MSX needs support for actual BIOSes and floppy disks, maybe tapes too

[N64] Factor 5 games doesn't work properly

All 3 Factor 5 games aren't booting properly.
Probably it's due Factor 5 microcode implementation in such games.

  • Indiana Jones and the Infernal Machine: Black screen
  • Star Wars: Battle for Naboo: Black screen
  • Star Wars: Rogue Squadron: Crashes just after the first cutscene

There is other games that uses Factor 5 microcode sound compression technology which also don't work properly, but i'm unsure if it is microcode related:

  • Resident Evil 2 (uses Factor 5 sound compression technology): Black screen after starts a new game
  • San Francisco Rush 2049 (uses Factor 5 sound compression technology): Freezes just after the first screen

But Pokémon Stadium 1 and Elmo's Letter Adventure which are at least said in internet that uses Factor 5 sound compression techlonogy (but I'm not sure about this claim) don't seem to have any issues (regard performance).

Version tested: Ares 1.22 (official)
SO: Windows 10 x64

[Request] blargg's NTSC filter support

Some old games, in the most different systems, were designed to run on TVs with composite signal input, generating artifacts that in the hands of many skilled developers meant effects that often gave a sensation of volume, different visual effects, and even new colors through some tricks based on the output of the CRT.
Developer Blargg has created an NTSC filter that perfectly simulates this composite cable output.
https://emulation.gametechwiki.com/index.php/NTSC_Filters
It would be nice if we could support these types of filters in Ares.
Take a look at some examples before and after blargg filter:

Little Sansom:
No filter:
image

With blargg filter:
image
Personal note: I like how little samsom seems to have angry eyebrows in composite output. This was surely intended by the developer. Unfortunately, this is lost in direct the "modern" output.

Ninja Gaiden II:
No filter:
image

With blarrg filter:
image

Boy and his Blob:
No filter:
image

With blargg filter:
image

Also, most of the artifacts created by the NTSC output are dynamic, as you can see in the comparison of the following gif:
imageimage
And something like that is supported by the blarrg's filter

Official Star Fox 2 SNES Mini dump doesn't boot in ares

Hi

Every game in my Super Famicom/Super Nintendo collection boots properly except Star Fox 2 (USA)

ares doesn't generate an error message but instead refuses to boot the ROM and changes back to unloaded state.

It was a long time I used the stand alone version of higan but I remember the game used to work fine there, at least the game works with the Libretro port of higan as of today.

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.