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.
Project Nested - NES emulator for SNES
Moderator: Moderators
Re: Project Nested - NES emulator for SNES
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:
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.
-
- Posts: 18
- Joined: Mon Aug 17, 2020 1:41 pm
Re: Project Nested - NES emulator for SNES
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!
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!
Re: Project Nested - NES emulator for SNES
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.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.
Thank you for the report
Re: Project Nested - NES emulator for SNES
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.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.
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
-
- Posts: 18
- Joined: Mon Aug 17, 2020 1:41 pm
Re: Project Nested - NES emulator for SNES
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.
Re: Project Nested - NES emulator for SNES
Please please tell me how hello kitty world japanese works?
Re: Project Nested - NES emulator for SNES
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?
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?
Re: Project Nested - NES emulator for SNES
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.
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.
-
- Posts: 1
- Joined: Mon Jun 28, 2021 1:05 am
Re: Project Nested - NES emulator for SNES
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.
Re: Project Nested - NES emulator for SNES
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?
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?
Re: Project Nested - NES emulator for SNES
Please please tell me how super mario bros 2 (WARNING; After bad title, VramQ 1000) and hvc controller test works?
Re: Project Nested - NES emulator for SNES
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.
Re: Project Nested - NES emulator for SNES
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.
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.
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.
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.
-
- Posts: 18
- Joined: Mon Aug 17, 2020 1:41 pm
Re: Project Nested - NES emulator for SNES
1.5 HYPE!!! can't wait to play through the games I couldn't bring myself to because of slowdown