Project Nested - NES emulator for SNES

Discuss emulation of the Nintendo Entertainment System and Famicom.

Moderator: Moderators

niuus
Posts: 8
Joined: Wed May 05, 2021 1:30 am

Re: Project Nested - NES emulator for SNES

Post by niuus »

Myself086 wrote: Wed May 12, 2021 4:25 amThere's no database for profiles yet, we simply describe what settings to change compared to default settings.
Okey. The reason i ask is because profiles can include SRM data, which makes them much more useful for problem games like Super Mario Bros. 3. :beer:
Myself086
Posts: 158
Joined: Sat Nov 10, 2018 2:49 pm

Re: Project Nested - NES emulator for SNES

Post by Myself086 »

I'll look into making a database after redoing how I use the SRM (or if anybody else wants to start a database, let me know). I'm not sure how to verify the game's version. Mixing SRM feedback from 2 different versions is not a great idea but shouldn't break games. I can hash the file but what about randomizers and ROM hacks?

SRM feedback only records where code starts for each sub-routine but I eventually want to record links which would open the possibility to inline code AOT. This optimization can be done without links but links make it safer. It would save a lot of time for games with sensitive stack (aka: disabling native return address).

I'm in the middle of optimizing some code right now but it's already so tight that I'm not saving much. Mapper 1 took the most significant time save at around 5% faster than v1.3 from what I tested with Zelda. A major optimization remaining is letting the exe optimize code (unroll loops, inline, solve constants, etc) which would benefit from a profile database.

SMB3 leaks memory to arbitrary code in 2 different ways, one of them can be fixed and I'm looking into it for v1.4.
Here's an example:

Code: Select all

	lda	#0
	beq	-		; Branch always taken
	; Arbitrary code - either data or code for a different sub-routine.
marcosmoutta
Posts: 18
Joined: Mon Aug 17, 2020 1:41 pm

Re: Project Nested - NES emulator for SNES

Post by marcosmoutta »

Hi "Myself"! This project is as awesome as ever. I just found out about your patreon, and I really wish I could become a patron, but for many reasons I can't. Maybe someday!

I've tested out some games for fun and got some weird results not yet documented to my knowledge. Also, the load SRM feature creates a very scary error message that I think can be ignored, but well, who knows what might be going on.

Here's a mildly inconvenient zip with a document I produced. I hope it's of use. And I also hope the download works.

https://www.mediafire.com/file/an7hts4o ... t.rar/file

Hope the progress never stops; still waiting on that custom palette option; best regards! :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen:
Myself086
Posts: 158
Joined: Sat Nov 10, 2018 2:49 pm

Re: Project Nested - NES emulator for SNES

Post by Myself086 »

marcosmoutta wrote: Sat Jun 19, 2021 6:51 pm Also, the load SRM feature creates a very scary error message that I think can be ignored, but well, who knows what might be going on.
I was able to find it and will be fixed for next release. This error was caused by trying to import SRM to an unsaved profile. For the time being, make sure you save the profile before importing SRM.

Thank you for the report :D
User avatar
Memblers
Site Admin
Posts: 4044
Joined: Mon Sep 20, 2004 6:04 am
Location: Indianapolis
Contact:

Re: Project Nested - NES emulator for SNES

Post by Memblers »

marcosmoutta wrote: Sat Jun 19, 2021 6:51 pm I've tested out some games for fun and got some weird results not yet documented to my knowledge.
I added those to the spreadsheet, but I found some discrepancies. Defender 2 doesn't look like that when I run it, but if I give it a really high "sprite zero hit offset" it does start to look like that. Could that have happened accidentally? When I use an offset of 8 it looks normal. I'm using Mesen-S v0.4.0.

Dig Dug 2, I haven't seen the player sprite glitch like that. But I only played a few levels of the game, because yeah it kinda sucks compared to the original.

That's amusing that the "flatwoods monster" is the final boss in Amagon, what a strange game.

Project Nested v1.3 was a great update, it really stepped up the compatibility rate. Just recently I beat Megaman 2, I'm attaching the profile if anyone wants it (without it you'll run out of memory before the end).
Attachments
Megaman II (U) [!].txt
(5.73 KiB) Downloaded 140 times
marcosmoutta
Posts: 18
Joined: Mon Aug 17, 2020 1:41 pm

Re: Project Nested - NES emulator for SNES

Post by marcosmoutta »

I am 100% sure I didn't mess with any of the settings on the rom maker. I am running mesen S 0.4.0. If you'd like any help, such as PMming you any files, let me know.
qamic59
Posts: 4
Joined: Fri Jun 25, 2021 11:58 pm

Re: Project Nested - NES emulator for SNES

Post by qamic59 »

Please please tell me how hello kitty world japanese works? :?:
qamic59
Posts: 4
Joined: Fri Jun 25, 2021 11:58 pm

Re: Project Nested - NES emulator for SNES

Post by qamic59 »

Pinball + ★☆☆☆☆ = Starting a Game resets to title, The game starts better on my PC? (FCEUX only)
Hello Kitty World + unknown = Untested
Pac-Man + Unknown = Untested
Adventure Island 1 + ★☆☆☆☆ = No Mapper 3 support :(
HVC Controller Test + ★★★★☆ = Tested by Qamichelemassa59emu. Loads good with no errors. It Begins Less often on Snes9xGX?
Action 52 + ★☆☆☆☆ = Not Working
Wild Gunman + ★★★☆☆ = Needs lightgun, Minor gfx issues
Super Mario Bros. 2 + ★☆☆☆☆ = During Title Screen, VramQ - 0x1000, Graphic glitches, disable "native return address", disable NMI mode "At vblank", US version Resets when showing the first shyguy, PAL version Couldn't reset..
Super Mario Bros. 1 + ★★★★★ = Playable
Puyo Puyo + unknown = Untested
Can you create Spreadsheets Compatibility lists for Project nested?
Please please tell me how adventure island 1-2 and HVC controller test works?
Myself086
Posts: 158
Joined: Sat Nov 10, 2018 2:49 pm

Re: Project Nested - NES emulator for SNES

Post by Myself086 »

Yesterday, I investigated SMB2 USA reset when the shyguy shows on screen. I also tested Pinball and Hello Kitty World just now, they both reset for the same reason as SMB2 USA.

This happens when a byte is understood as both an opcode and operand during the same sub-routine. It can happen either intentionally or by arbitrary code branching before the sub-routine's entry point and using the entry byte as operand. An unknown destination defaults to $0000 of the same bank instead of triggering an error (oops) and freshly tested games have their reset code compiled at $7F0000.

I already know how I want to fix it and hopefully all goes well.
sharopolis
Posts: 1
Joined: Mon Jun 28, 2021 1:05 am

Re: Project Nested - NES emulator for SNES

Post by sharopolis »

I've got to say I'm really impressed with this. I'm amazed you've got games running so well. I'm currently making a video about this, I've sent you a PM Myself086, if you could answer some questions that would be great.
qamic59
Posts: 4
Joined: Fri Jun 25, 2021 11:58 pm

Re: Project Nested - NES emulator for SNES

Post by qamic59 »

Super Mario Bros. 2 + ★☆☆☆☆ = After Bad Title Screen, VramQ - 0x1000, Major gfx glitches, USA version resets when showing the first shyguy, PAL Version isn't reset
HVC Controller Test + ★★★★☆ = Rice started up, That it begins on Snes9xGX?, Still runs on Snes9x2010-Libretro?
Super Maruo + Unknown = Untested
Can you create compatibility spreadsheets for Project Nested Compatibility by Myself086?
qamic59
Posts: 4
Joined: Fri Jun 25, 2021 11:58 pm

Re: Project Nested - NES emulator for SNES

Post by qamic59 »

Please please tell me how super mario bros 2 (WARNING; After bad title, VramQ 1000) and hvc controller test works?
Myself086
Posts: 158
Joined: Sat Nov 10, 2018 2:49 pm

Re: Project Nested - NES emulator for SNES

Post by Myself086 »

qamic59 wrote: Wed Jun 30, 2021 11:07 am Super Mario Bros. 2 + ★☆☆☆☆ = After Bad Title Screen, VramQ - 0x1000, Major gfx glitches, USA version resets when showing the first shyguy, PAL Version isn't reset
Bad graphics on title screen are partly caused by "NMI mode, at vblank" being turned on, the other part being a mistake I made in the code (fixed for upcoming update). "Native return address" must also be disabled to enter the door at the bottom of the first section of 1-1. VramQ 0x1000 is the default value and default values don't need to be reported.

SMB2 is the game I'm currently focused on.

I haven't tested "HVC Controller Test" either which is why it isn't on the list.
Myself086
Posts: 158
Joined: Sat Nov 10, 2018 2:49 pm

Re: Project Nested - NES emulator for SNES

Post by Myself086 »

Good job on fixing the forums!

I released v1.4.2 since last time.

I am focusing on improving performance for v1.5 and started AOT optimization which is something I had been looking forward to for a long time. Here's an example of SMB1's code being optimized.
AotOptimization.png
On top of this, the exe will be able to guess where some of the code is.

The performance gain can then be traded for better accuracy later on.
marcosmoutta
Posts: 18
Joined: Mon Aug 17, 2020 1:41 pm

Re: Project Nested - NES emulator for SNES

Post by marcosmoutta »

1.5 HYPE!!! :mrgreen: :mrgreen: can't wait to play through the games I couldn't bring myself to because of slowdown :D
Post Reply