libretro / nestopia Goto Github PK
View Code? Open in Web Editor NEWNestopia emulator with libretro interface
License: GNU General Public License v2.0
Nestopia emulator with libretro interface
License: GNU General Public License v2.0
nestopia-libretro ----------------- Nestopia is a cycle accurate emulator for the NES/Famicom. This is the libretro port of the Nestopia emulator, based on the de facto upstream Nestopia JG fork, which lives at: https://gitlab.com/jgemu/nestopia The libretro port contains an additional overclocking feature. Famicom Disk System ------------------- FDS support requires the FDS BIOS to be placed in the "system" directory: system/disksys.rom ADPCM Samples ------------- Some games have ADPCM audio samples on the cartridge, which are not included in the ROM data. In order to use such samples with Nestopia, you must extract the samples into the correct location under the System directory. They are required to be in the "nestopia/samples" subdirectory named after the .zip file in MAME format: moepro.zip system/nestopia/samples/moepro/ moepro88.zip system/nestopia/samples/moepro88/ mptennis.zip system/nestopia/samples/mptennis/ terao.zip system/nestopia/samples/terao/ ftaerobi.zip system/nestopia/samples/ftaerobi/ The location of the System directory depends on the frontend and platform in use. Refer to the frontend documentation. Contributing ------------ Changes to the libretro port should be contributed in this repository. Please contribute any changes to the emulator core to the upstream repository. Copyright --------- Nestopia JG (GPL-2.0-or-later) Copyright (c) 2003-2008 Martin Freij Copyright (c) 2008-2018 Nestopia UE Contributors Copyright (c) 2020-2024 Rupert Carmichael nes_ntsc (LGPL-2.1-or-later) Copyright (c) 2006-2007 Shay Green
the overclock logic is incorrect.
nestopia/source/core/NstApu.cpp
Lines 2382 to 2390 in c24ffe8
overclockingIsSafe will always be true because regs.address is guaranteed to be at least have a value of 0xC000
nestopia/source/core/NstApu.cpp
Lines 2392 to 2400 in c24ffe8
same here. regs.lengthCounter will always be at least 1.
this is an annoying behavior Nestopia has compared to other emus like fceumm: if a ROM is missing in the NstDatabase.xml
it won't load at all.
I know the correct way to "fix" this is by adding a new entry in the db, however this is still an annoying process to repeat everytime you want to try a new patch.
As alternative, NES ROMs carry infos like the mapper inside the iNes header, so maybe we can fallback to that if there is no match with the db?
@crashGG
Test branch created here, which appears to work
https://github.com/tacoschip/nestopia-libretro/tree/overscan
Note to repo handlers:
See libretro/libretro-fceumm#532 as to why it's useful
When attempting to launch Alfombra Magica, La (Spain) (Rev 1) (Gluk Video) (Unl) from the No-Intro set it simply fails to load content. Wondering if this can be remedied?
It may sound a bit picky but Nestopia standalone emulator has this little option to switch between mono and stereo, and would like to get it into RetroArch for full portability coming from the standalone.
Thanks for any reply !
https://www.nesdev.org/wiki/NES_2.0_Mapper_474
I've created a mapper that maps 0x4020 to 0xFFFF to PRG ROM.
I called it Akerasoft Mapper 474. This is NROM-383.
It maps more than NROM-368. But an NROM-368 is also planned.
My prototype uses FLASH memory but is designed to be programmed before soldering and is not reflashable.
https://www.nesdev.org/wiki/NROM-368
My design however is this 64KB of ROM space:
Bank 0:
Memory 0x0000 - 0x3FFF (empty or ignored, all zeros?)
Bank 1:
Memory 0x4000 - 0x041F (empty or ignored, all zeros?)
Memory 0x4020 - 0x7FFF (PRG)
Bank 2:
Memory 0x8000 - 0xBFFF (PRG)
Bank 3:
Memory 0xC000 - 0xFFFF (PRG)
Mapper 474 submapper 0 - 0x4020 - 0xFFFF (NROM-383)
Mapper 474 submapper 1 - 0x4800 - 0xFFFF (NROM-368)
With gl video driver, blargg ntsc filter doesn't crash nestopia libretro core.
I couldn't find anything useful in the log.
GPU // AMD HD6450
export MESA_GL_VERSION_OVERRIDE=4.5CORE
export MESA_GLSL_VERSION_OVERRIDE=450
When using Game Genie Sound Distortion with a savestate it will stay on even if you turn it off. try on Mage Man 2
Upon loading the core on a Playstation Vita, it crashes. Tested with latest git revision and 1.9.0.
Attached dump.
Presently quicknes is the only core able to play Arkanoid as it is the only core accepting directional pad inputs in place of the bundled controller.
Before replying please read the explanation for this request.
I know that on a PC, or any regular controller with 4 buttons or more, it's easy to assign the swap disk sides to a couple of unused keys. But the purpose of this request is because Nestopia also works with the NES Classic through Retroarch, and the original NES controller only has 2 buttons. Assigning the disk side change option to the A/B/Start/Select buttons cause problems because if you press any of those buttons during gameplay, it will unwillingly change or eject the disk, and that will cause many games to error-out when trying to load a new segment that's supposed to be on the disk-side you were using. This is specially true for RPGs that are constantly reading from the disk when entering battle scenes or houses.
This wouldn't a problem if Retroarch allowed for user-set double binds or button combinations, but it doesn't. It has a few pre-set button combinations that are being used for other things, but a user cannot set their own. So the only option left is for Nestopia to have a button combination of its own (Down+Start / Up+ Start should work fine to swap disk sides) or to have an option to auto swap sides like how the native NES Classic emulator does for FDS games.
is this an option that can be added for NES Classic users using the original 2-button controller?
Minor improvement, but the way nestopia is currently handling the fake stereo effect is a bit too intense to the right side making it sound more like right side mono. Compare the stereo separation of mesen and fceumm that's more left-right balanced.
Love the sound of this emulator, especially with the volume sliders you get.
Policeman (Spain) (En) (Gluk Video) (Unl) does not run correctly
here it is in another emulator
'Policeman (Spain) (En) (Gluk Video) (Unl).nes': Done.
CRC32: e0384f53
MD5: 5b6e7645d345619205c6781f8ecaceff
SHA1: ae61b5c5b2f42cbb97fcbb8b2abc311012dc63da
SHA256: 42453fd1efb2af9698bdb90f60d6c1fa127f9c6af443ea07c22a4861d74485b5
Policeman (Spain) (En) (Gluk Video) (Unl).nesHello,
I seems that nestopia libretro core doesn't save or load values at input_libretro_device_*
in retroarch.cfg
.
e.g If I want to use the zapper as emulated device, it works when I select it in the menu, but the next time when I run retroarch with nestopia, it always revert back to auto.
All others settings are saved, but not those related to inputs.
I use retroarch 1.10.3 Windows 64bit with the latest build of nestopia_libretro available on the buildbot.
Super Gun (USA) (Unl) will only work in Mesen
MD5: 16D8999C8B35C509FC6DD3568C0CEF93
The problem is best shown in the video I posted on YT:
https://www.youtube.com/watch?v=l_e4k2wftY0
The crosshair automatically appears in the upper left corner when it goes out of the screen. Changing the screen aspect ratio to full does nothing. I also tried with other input drivers.
Retroarch 1.15
Win 11, I7 8700k, Rtx 3070ti
Since there have been a fair number of romhacks, including one for Maniac Mansion, that add support for the SNES mouse to NES games it would be nice to have that supported. While Mesen already has such support it would be nice to have support in Nestopia as well.
Hello.
Thanks for reading my topic.
Currently Nestopia only allow change the mask overscan using values 0 4 8 12 16 20 24.
For some games being 4 digits is much high.
Please allow using any number value from 0 to 20 so for example is possible select 6 or 10.
Have an nice week.
@rdanbrook its been awhile! Hope all is well. You previously added "THIS" commit. But, it was kind of lost when the "hack" occurred on libretro awhile back. I was personally trying to get it up and running on my end, as far as running the samples. Not sure if it is fresh enough in your memory to remember anything about it? So far, I attempted to have etc/libretro/system/nestopia/samples/samples here in zip and in folder format, and load of the games that SHOULD trigger the samples, to no avail. Any input on this?
https://notabug.org/0ldsk00l/nestopia/commit/441a13a7544ec8807f3ede550f6db2326c2566dc
This video shows the before and after, WITH how the samples would usually be. I am hoping to be able to have success in running them, as well!
Well could you start to use versions like Major.Minor.Patch
for your releases?
Previously taken screenshots and save-state thumbnails fail to load on Steam OS on Steam Deck. This issue does not occur for other cores in RetroArch and does not occur on Windows. Screenshots and save-state thumbnails are still being saved in the correct directories under the correct filenames and are viewable outside of RetroArch, but fail to load in RetroArch's user interface.
I have Super Mario Bros/Duck Hunt/World Class Track Meet and the Zapper doesn't work for Duck Hunt. I've tracked down the problem in the NstDatabase.xml file (with an older version of the core, before NstDatabase.xml got baked-in):
<peripherals>
<device type="zapper"/>
<device type="powerpad"/>
</peripherals>
The second device overrides the first, so the Zapper doesn't work. However, if I delete the powerpad device (logical, as I don't have a USB PowerPad) or invert the order, the Zapper works fine.
However, Nestopia should support both (and other peripherals, if they exist) simultaneously.
Hello.
The option System Region only change the refresh rate FPS settings between models or does other actions ?
Thanks for reading.
This would be nice because games like Jackal has this popping sounds in the music there are other games that has it to Mesen has these options.
Mute ultrasonic frequencies on the triangle channel: This option mutes the triangle channel under certain conditions, which prevents it from causing popping sounds.
Reduce popping sounds on the DMC channel: Similar to the previous option, but for the DMC channel – this option prevents games from changing the output of the DMC channel too abruptly, which often causes popping sounds.
Nestopia core need NstDatabase.xml in "system firmware" path.
In Core \ Manage Cores not have information about NstDatabase.xml.
The user need understand NstDatabase.xml is required for load games.
That information need to be added in core.
The latest Wii RetroArch Nestopia UE core has audio crackling, I've tested with Super Mario Bros. 2 for example, audio crackling in the title screen. The previous version of the core works perfectly. The latest Wii RetroArch works if you take the Nestopia UE core file from the previous RetroArch version. The problem occurs with default Wii RetroArch settings.
Hello.
Using Nestopia UE core 1.52 dd78611.
If Audio Output is Mono the sound output is only for left speaker.
If selecting Stereo both left and right speaker have sound output.
The correct is Mono being for both left and right speaker ? or Stereo not split sounds fx for each speaker side and does sound output with exact same sound in both left and right speaker ?
Thanks for reading.
Have an nice week.
This option exists in standalone, and now that things like the sniden lightgun exist, being able to hide the crosshair would be great.
I tried to set my Zapper to be used as pointer instead of mouse to avoid changing the mouse sensitivity each time. I have a monitor with 1920x1080 resolution and because of the 4:3 aspect ratio when the cursor moves out of horizontal bounds of the rendered video, it resets to the center of the screen. If I change following option from: Video -> Scaling -> Core Provided to Video -> Scaling -> 16:9 then I don't have this issue but the video is streched. Also using mouse instead of pointer doesn't have this behavior, but I really prefer the pointer option.
Hey!
If the disksys.rom
file is in a path that contains a special character, FDS games will fail to boot on Windows.
As a test I moved the BIOS in a "é" folder on my desktop and changed Settings > Directory > System/BIOS
path in RetroArch:
[INFO] [Environ]: SYSTEM_DIRECTORY: "C:\Users\B-S\Desktop\é".
[libretro INFO] Custom palette path: C:\Users\B-S\Desktop\é\custom.pal
[libretro INFO] custom.pal not found in system directory.
[INFO] [Environ]: SET_PIXEL_FORMAT: XRGB8888.
[libretro INFO] FDS BIOS path: C:\Users\B-S\Desktop\é\disksys.rom
[INFO] [CONTENT LOAD]: Removing temporary content file: D:\programmes\RetroArch\cache\Zelda no Densetsu - The Hyrule Fantasy (Japan).fds.
[ERROR] [CONTENT LOAD]: Failed to load content
Full log: retroarch_nestopia.log
It works fine on my Linux Mint VM however.
An automatic disk switching feature would be amazing to have on top of fixing the issue mentioned here #46 where you can't go from disk B back to disk A.
As stated in here:
https://forums.libretro.com/t/kid-dracula-english-translation-doesnt-work-in-nestopia-core/29395
Would love to see this fixed as nestopia's audio adjustments are excellent.
I have played a game (Green Beret) and in begin is displayed message to change disk side to B being automatically changed to side B thus the game start, but after some stages the game need change to side A.
Is displayed message to change to side A, but the emulation core not change the disk side.
I'm not sure the best way to do this:
As said above, the emulator hard-locks the system on the first launch. I tried generating a custom.pal file and putting it in the system directory as described here:
https://docs.libretro.com/library/nestopia_ue/
Also tried to mess with the .cfg file through a text editor to try other palettes options with no results. The image below is not mine but rather from someone that I found to have the exact same problem on a N3DS as well.
When loading a ROM on the 3DS, the core will usually crash with an ARM11 exception. It looks like this is related to loading NstDatabase: it fails with 354fa2f, and earlier commits will fail in the same way if NstDatabase.xml is in the system directory.
Here's the dump:
Processor: ARM11 (core 0)
Exception type: prefetch abort (kernel panic)
Fault status: Debug event
Current process: 3dsx_app (0004001000021100)
Register dump:
r0 00000000 r1 00000000
r2 e6a83000 r3 00000000
r4 00000000 r5 ff539d88
r6 00000000 r7 00000001
r8 e6a81000 r9 08800000
r10 00000100 r11 fff2f2b4
r12 ee147460 sp ff539d18
lr fff1c76c pc fff1c7c0
cpsr 60000113 dfsr 000008ff
ifsr 00000002 far 7affffee
fpexc 40000700 fpinst eefd7bc7
fpinst2 eefd7bc7
Code dump:
fff1c794: e12fff1e bx lr
fff1c798: e3510000 cmp r1, #0, 0
fff1c79c: 0a000005 beq 0xfff1c7b8
fff1c7a0: e1902f9f ldrex r2, [r0]
fff1c7a4: e5812000 str r2, [r1]
fff1c7a8: e180cf91 strex r12, r1, [r0]
fff1c7ac: e35c0000 cmp r12, #0, 0
fff1c7b0: 1afffffa bne 0xfff1c7a0
fff1c7b4: e12fff1e bx lr
fff1c7b8: e320f000 nop {0}
fff1c7bc: e1a00000 nop ; (mov r0, r0)
fff1c7c0: e12fff7e bkpt 0xfffe
Stack dump:
ff539d18: 00 00 00 00 1c a5 f1 ff 00 00 00 00 00 80 81 08 |................|
ff539d28: 5c bb f7 ff 51 00 00 00 00 74 14 ee 38 4d f2 ff |\...Q....t..8M..|
ff539d38: 00 10 a8 26 00 10 00 00 00 00 10 00 87 00 00 00 |...&............|
ff539d48: 24 e2 13 ee 64 74 14 ee c0 9d 53 ff 5c bb f7 ff |$...dt....S.\...|
ff539d58: 00 50 57 08 f4 02 00 00 88 9d 53 ff 5c bb f7 ff |.PW.......S.\...|
ff539d68: f4 02 00 00 00 50 57 08 00 00 00 00 00 00 00 00 |.....PW.........|
ff539d78: 00 90 86 08 30 00 00 00 7c 9e 53 ff 44 00 f2 ff |....0...|.S.D...|
ff539d88: b0 01 00 00 e0 8f f9 ff 1c ea f9 ff 5c bb f7 ff |............\...|
ff539d98: 5c bb f7 ff f5 1b e0 e0 00 01 00 00 00 00 00 00 |\...............|
ff539da8: 00 00 00 00 00 90 86 08 30 00 00 00 24 d0 f1 ff |........0...$...|
ff539db8: 1b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
ff539dc8: 00 80 86 08 00 80 39 07 5c bb f7 ff 2c 9e 53 ff |......9.\...,.S.|
ff539dd8: 00 50 57 08 5c bb f7 ff 00 50 57 08 f4 02 00 00 |.PW.\....PW.....|
ff539de8: 00 00 00 00 00 90 86 08 00 50 57 08 f4 02 00 00 |.........PW.....|
ff539df8: 00 00 00 00 00 00 00 00 01 01 00 00 05 bb 00 00 |................|
ff539e08: 7c 9e 53 ff c0 0d f1 ff 00 00 00 00 00 00 00 00 ||.S.............|
ff539e18: 00 00 00 00 00 01 00 00 00 00 00 00 1b 00 00 00 |................|
ff539e28: 00 00 00 00 00 00 00 08 00 90 86 00 1b 00 00 00 |................|
ff539e38: 05 bb 00 00 5c bb f7 ff 7c 9e 53 ff 00 50 57 08 |....\...|.S..PW.|
ff539e48: 00 00 00 00 00 50 57 08 00 40 2f 00 00 00 00 00 |.....PW..@/.....|
ff539e58: 01 01 00 00 01 00 00 00 40 bb f7 ff 5c bb f7 ff |........@...\...|
ff539e68: 00 90 86 08 bc 85 f0 ff 00 40 2f 00 01 01 00 00 |.........@/.....|
ff539e78: 03 00 00 00 00 00 00 00 00 90 ff ff e8 9e 53 ff |..............S.|
ff539e88: 00 50 57 08 00 00 00 00 00 40 2f 00 03 00 00 00 |.PW......@/.....|
ff539e98: 94 82 f0 ff 00 a1 5e 00 ec a6 5e 00 f8 06 00 40 |......^...^....@|
ff539ea8: 01 00 00 00 01 00 00 00 00 00 00 00 c8 3b 00 40 |.............;.@|
ff539eb8: 01 00 00 00 03 00 00 00 00 00 00 00 00 40 2f 00 |.............@/.|
ff539ec8: 03 00 00 00 03 00 00 00 48 41 2f 00 00 a1 5e 00 |........HA/...^.|
ff539ed8: ec a6 5e 00 0c 07 00 40 01 00 00 00 03 00 00 00 |..^....@........|
ff539ee8: 00 00 00 00 fc 00 00 40 01 00 00 00 00 50 57 08 |[email protected].|
ff539ef8: 00 00 00 00 00 40 2f 00 03 00 00 00 48 41 2f 00 |.....@/.....HA/.|
ff539f08: 00 a1 5e 00 ec a6 5e 00 80 34 2f 00 00 00 00 00 |..^...^..4/.....|
ff539f18: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
ff539f28: 00 ed ff 0f 44 0f 10 00 48 24 3f 00 10 00 07 a0 |....D...H$?.....|
ff539f38: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
ff539f48: 00 01 00 01 00 00 00 00 c8 10 fd ff 13 01 00 60 |...............`|
ff539f58: 00 00 00 00 20 9d 53 ff 00 78 14 ee 00 00 70 08 |.... .S..x....p.|
ff539f68: 00 01 00 00 b4 f2 f2 ff f8 9c 53 ff 70 dd f1 ff |..........S.p...|
ff539f78: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
ff539f88: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
ff539f98: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
ff539fa8: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
ff539fb8: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
ff539fc8: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
ff539fd8: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
ff539fe8: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
ff539ff8: 00 07 00 40 00 00 c0 03 |...@....|
I've attached the raw file, too.
crash_dump_00000014.dmp.zip
This is beyond stupid, and I just wasted hours of my time trying to get Micro Mages added to the database so that a few of my friends and I could play 4 players over netplay.
DO NOT DO THIS, configuration files are meant to be configured. RetroArch warns that the file is missing, and the docs prompt you to download it yourself. This is incredibly misleading and infuriating. The decision to do this is incredibly misguided, since it assumes the set of NES games is fixed, which it definitely isn't as homebrew and commercial games are still developed.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.