Project Nested - NES emulator for SNES

Discuss emulation of the Nintendo Entertainment System and Famicom.

Moderator: Moderators

Myself086
Posts: 158
Joined: Sat Nov 10, 2018 2:49 pm

Re: Project Nested - NES emulator for SNES

Post by Myself086 »

soniccd123 wrote: Fri Oct 09, 2020 11:07 amAre you updating the compatibility list on your own? I've tested several games and found one or two that worked and aren't on the list, i would be happy to help if you want.
I contributed 15 or so entries on the compatibility list, everything else is Memblers.

If you want to add some game notes, you can PM me. If you're looking to update the list over a long period of time, you can "request edit access".

If you're interest, games listed as cyan need full play-through testers.
Quietust wrote: Fri Oct 09, 2020 12:32 pm Just tried version 1.1, and a lot more of my personal test ROMs are working now.

However, I noticed that the "Sprite limit per scanline" option seems to be off by one, at least when running in bsnes v115 - the 9th sprite (which triggers Sprite Overflow) is still being displayed, while the 10th one (and everything past it) properly gets hidden.
Looking at my code now, it looks like 8x8 and 8x16 can show 9 sprites but for 2 different reasons.

Thanks for the feedback!
Herzog Zwei
Posts: 2
Joined: Tue Feb 25, 2020 4:31 pm

Re: Project Nested - NES emulator for SNES

Post by Herzog Zwei »

We need to create a pack with patched working roms!
them9namedsypher
Posts: 1
Joined: Sat Oct 10, 2020 11:32 pm

Re: Project Nested - NES emulator for SNES

Post by them9namedsypher »

I'm currently working on that pack.
Released a video of me going Blind just testing V1.1 out.
https://youtu.be/dudLONwWv-M

I like this project and I look forward to future updates. Eventually ill release a pack of working games using Nested. I currently play on a Super Everdrive X5.
Herzog Zwei
Posts: 2
Joined: Tue Feb 25, 2020 4:31 pm

Re: Project Nested - NES emulator for SNES

Post by Herzog Zwei »

Please someone share profiles for different types of mappers and banks.
ZReport
Posts: 21
Joined: Thu May 31, 2018 11:57 pm

Re: Project Nested - NES emulator for SNES

Post by ZReport »

Project starting to get really good! :)

I will have to ask however -- is it possible to have the compiler automatically load in the settings for the games that require them before the .smc file is built? I personally don't have an issue reading the compatibility document and dialing in the required settings per game, but I definitely see a lot of people having issues doing the same.

Either way, keep up the good work my man!
Myself086
Posts: 158
Joined: Sat Nov 10, 2018 2:49 pm

Re: Project Nested - NES emulator for SNES

Post by Myself086 »

ZReport wrote: Tue Oct 27, 2020 9:18 amis it possible to have the compiler automatically load in the settings for the games that require them before the .smc file is built?
Yes, I eventually want to have a database that the exe loads from so settings and known calls are loaded immediately. Having a list of known calls boosts performance by a noticeable amount and will improve in later versions as well.

The compiler is located inside the smc file. The exe will only compile known calls by emulating the smc in advance. If there are no known calls, the exe simply combines the 2 ROMs and remaps banks to fit the emulator's logic.

I have no plan to start the database anytime soon but if someone wants to jump in and help, just let me know.
johannesmutlu
Posts: 31
Joined: Fri Mar 11, 2011 2:22 pm

Re: Project Nested - NES emulator for SNES

Post by johannesmutlu »

The nesterd emulator for the snes is just absolutely incredible , this is what nintendo should,ve done in the first place in 1989 during it’s development stage, it surely would,ve sold waaay more sneses then it eventually did,
Now I really don’t know exactly how exactly this emulator works but the nes graphics is getting getting some how lined up with the snes’s mode 1 graphics while the sound data is getting lined up with digitized psg sound wich were in turn beforehand converted into snes sound format but despites the snes 65816 cpu speaks the same 65x computer languange code as the nes 6502 cpu,they are sadly not straight compatible with eachother since those adress registers from those mentioned cpu’s are at different locations,HOWEVER by lining up those adress registers with each other,they become bridge compatible with each other that way,HOWEVER the nes cpu also contail undocumented opcodes wich the snes cpu most don’t support,only a few opcodes are supported,so that means that a few nes games wich does make use of it needs to be patched/moddified to make them work on the snes(wich also depends per region or revision of certain games such as aladdin or puzz nick etc,,,)
This can futher increase the compatibility of it in the near future,sadly the dpcm sound is not yet emulated (the opposide for what you actually would expect) since the snes soundchip is sample based,but still, even in current form,this is either way just absolutely fashinating and fantastic, it’s a wet dream that has become reality👍
Last edited by johannesmutlu on Wed Feb 16, 2022 5:36 pm, edited 1 time in total.
Stokes
Posts: 2
Joined: Tue Apr 07, 2020 4:34 am

Re: Project Nested - NES emulator for SNES

Post by Stokes »

Myself086 wrote: Sun Jul 26, 2020 1:20 pm Project Nested uses a JIT+AOT compiler to convert NES games into SNES games. It runs at roughly full speed depending on the game, 60 fps and mapper support.

Main github page: https://github.com/Myself086/Project-Nested
Download: https://github.com/Myself086/Project-Nested/releases

Specifications requirement for reproduction carts and flash carts:
- Up to 8mb of fast ROM, HiROM format.
- 16kb of SRAM.
- Battery if required by the game.
- No co-processor.

Target specs (planned future updates):
- Up to 8mb of slow/fast ROM, HiROM format.
- 0kb to 256kb of SRAM depending on the game and settings.
- Battery if required by the game.
- No co-processor.

Thank you Memblers for the SPC code!


Mappers: 0, 1, 2, 4

Compatiblity spreadsheet: https://docs.google.com/spreadsheets/d/ ... sp=sharing
If you wish to contribute to this spreadsheet, please let me know what notes to add.

Requests and feedback are welcome.

This top post will be edited over time to reflect the current version.



Smb1.png
Donkey Kong.png
Zelda.png
smb3.png
Hello there. I haven't been on this site for a while, but this is a good emulator, I just want to know if the NES game is normal or changed and where does the ROM start, $10000, $8000, or $4000.
Myself086
Posts: 158
Joined: Sat Nov 10, 2018 2:49 pm

Re: Project Nested - NES emulator for SNES

Post by Myself086 »

Stokes wrote: Sun Nov 08, 2020 11:18 amHello there. I haven't been on this site for a while, but this is a good emulator, I just want to know if the NES game is normal or changed and where does the ROM start, $10000, $8000, or $4000.
Short answer: NES ROM data starts at file address $040000. The NES ROM data itself isn't changed but NES banks are ordered differently and sometimes mirrored.

For more details...

This is HiROM and the file is mapped at $800000+. I never use file addresses in my notes. Converting SNES HiROM (not ExHiROM) address to file is: snes_addr & $3fffff

The first 4 64kb banks are reserved for the emulator ($80-$83 and $C0-C3).
In v1.1, PRG ROM starts in bank $84 while CHR ROM starts in bank $C4.

Each PRG bank will be mirrored if the mapper uses banks smaller than 32kb, this is because using DB and direct 16-bit address saves time. SNES can only change 32kb at a time. Mappers using 8kb banks will mirror in a "cascade" format because the disassembler can't cross bank boundaries. Crystalis had code crossing banks in sequential order. The data within each PRG bank remains unchanged.

Each CHR bank is added to the lower part of banks $C4+, using a different SNES bank for each 32kb of data. The CHR data is not transformed because it is compatible with SNES 4bpp layers and sprites, if you ignore the MSB of each VRAM word that is.

The iNES header is contained in a very different format for better access. This information, as well as settings, are stored at the very beginning of bank $C0.
6 lookup tables exist starting at $C00100, they are as follow:
$C00100 = PRG bank conversion for $8000-$9FFF
$C00200 = PRG bank conversion for $A000-$BFFF
$C00300 = PRG bank conversion for $C000-$DFFF
$C00400 = PRG bank conversion for $E000-$FFFF
$C00500 = CHR bank, starting SNES address page
$C00600 = CHR bank, starting SNES address bank
CHR bank size reflects the mapper's bank size rather than staying true to iNES format.

AOT compiled code start in the bank following the last CHR data and up to bank $FE. There's a bug in my assembly code that prevents using $FF for code. While AOT is done by the EXE, it is actually emulating my 65816 code so I don't have to rewrite the recompiler in 2 different languages. It is possible to trigger AOT compiler on a different emulator by simply allowing writes to ROM regions.

All addresses here are for v1.1 and are subject to change. The only static address is $80FF00 ($00FF00 file address) which is a 24-bit pointer to strings that define settings name, type, accessibility and address. These strings are used to show "advance settings" on the EXE.
User avatar
LucianoTheWindowsFan
Posts: 62
Joined: Mon Jun 22, 2020 9:39 am

Re: Project Nested - NES emulator for SNES

Post by LucianoTheWindowsFan »

There are several games that do not work properly:
Ufouria: The Saga (game crashes after starting)
Wagyan Land (game crashes after starting a level)
Kirby's Adventure (game crashes permanently)
Bomberman (game shows a miscolored title screen and freezes permanently)
Bomberman II (game crashes permanently on a blank blue screen)
2048 (homebrew, game crashes after starting)
The SNES is my favorite console, not only because it is an upgrade to the NES, but because it had some quality games as well (e.g. EarthBound and Kirby's Dream Land 3).
marcosmoutta
Posts: 18
Joined: Mon Aug 17, 2020 1:41 pm

Re: Project Nested - NES emulator for SNES

Post by marcosmoutta »

Herzog Zwei wrote: Sat Oct 10, 2020 10:49 pm We need to create a pack with patched working roms!
https://www.youtube.com/watch?v=GVXCr6upWUo
Unsure on the legality of this, will gladly delete.

[Replaced one mediafire.com link reported as probably infringing --MOD]
Myself086
Posts: 158
Joined: Sat Nov 10, 2018 2:49 pm

Re: Project Nested - NES emulator for SNES

Post by Myself086 »

marcosmoutta wrote: Wed Nov 18, 2020 11:36 am
Herzog Zwei wrote: Sat Oct 10, 2020 10:49 pm We need to create a pack with patched working roms!
<Removed link>
Unsure on the legality of this, will gladly delete.
Not legal.

You are allowed to share profiles generated by the EXE. They only contain descriptions of the ROM file without actual data.
marcosmoutta
Posts: 18
Joined: Mon Aug 17, 2020 1:41 pm

Re: Project Nested - NES emulator for SNES

Post by marcosmoutta »

Myself086 wrote: Wed Nov 18, 2020 12:10 pm
marcosmoutta wrote: Wed Nov 18, 2020 11:36 am
Herzog Zwei wrote: Sat Oct 10, 2020 10:49 pm We need to create a pack with patched working roms!
<Removed link>
Unsure on the legality of this, will gladly delete.
Not legal.

You are allowed to share profiles generated by the EXE. They only contain descriptions of the ROM file without actual data.
Hey, I sent you a second PM, I don't think you saw it? You didn't reply. I'm new to forums, not sure how they work. Just basic compatibility reports not yet listed, nothing much, feel free not to reply, just trying to help. Found a whole game that works without any problems, thought you'd like it. :mrgreen:
Myself086
Posts: 158
Joined: Sat Nov 10, 2018 2:49 pm

Re: Project Nested - NES emulator for SNES

Post by Myself086 »

marcosmoutta wrote: Wed Nov 18, 2020 3:13 pmHey, I sent you a second PM, I don't think you saw it? You didn't reply. I'm new to forums, not sure how they work. Just basic compatibility reports not yet listed, nothing much, feel free not to reply, just trying to help. Found a whole game that works without any problems, thought you'd like it. :mrgreen:
I replied to the first one, I read the second one but haven't had time to update the sheet. I should have more time tomorrow.

Feel free to send me more, I always appreciate the feedback.
User avatar
aquasnake
Posts: 515
Joined: Fri Sep 13, 2019 11:22 pm

Re: Project Nested - NES emulator for SNES

Post by aquasnake »

Soon after you released this tool, some smart merchants used your works to pack NES ROM and sell them as SNES multi-carts. Some of them crashed due to imperfect emulation. I wonder if the manufacturer of this kind of cartridge has contacted you? If we are using open source products to do business, I think it is necessary to display a blue screen error after the crash and display a "punishment" warning message such as "this cartridge is unauthorized, please refund it from the seller". :lol:

You did what Nintendo should have done 30 years ago, and has made a breakthrough.

Using the external bank address b0-b7 of SNES to emulate mappers. Using SPC to emulate APU. Very outstanding work
Post Reply