-
-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug/Feature Request] N163 Sound RAM initialisation + RAM initialisation settings #276
Comments
I will implement it, thanks for the idea. |
It's possible to choose between three values: 1) 0x00 2) 0xFF (default) 3) Randomize.
Try with the last WIP. |
Additionally, some N163 games use the Sound RAM as WRAM or SRAM. Mesen-X, which I've also reported the Sound RAM init issue to, has had to conditionally skip the RAM init option when the battery flag is enabled. |
BizHawk's QuickNes core does the same thing.
The current wiki page on the power up state has since replaced the section with:
https://www.nesdev.org/wiki/CPU_power_up_state It may be best to remove the code responsible for setting those values. |
You can test the last WIP? |
Looking past the misplaced brackets in the sizeof statements, it seems like using the Sound RAM as SRAM isn't implemented at all so I can't test/verify that yet. I think this might be a sign of what's to come, considering that every mapper's initialisation was implemented on the assumption that RAM is filled with static values... |
You're right the implementation of the mapper assumed that the initial values were 0 and also when I wrote it, the information in the wiki wasn't as complete as it is now. In version 0.110 I rewrote a lot of mappers updating them but this one had escaped me. I completely rewrote the mapper but before committing the changes and I'd like you to test it, what version are you using? D3D9 or OpenGL? win32 or win64? |
OpenGL, x86_64 on EndeavourOS (basically Arch Linux). |
Have you had a chance to try the n163 branch? |
Sorry, I've been preparing for a vacation. I won't be able to test the branch until around 3 weeks from now. |
Have a nice vacation, enjoy. |
The rewrite made old saves incompatible.
Since there have been no other updates, I consider this issue closed. |
I apologise for the delay. The Sound RAM initialisation works properly now. The part about the Sound RAM being used as WRAM or SRAM is a lower priority and will be discussed in a separate issue. |
After discovering that "Erika to Satoru no Yume Bouken" uses uninitialised N163 Sound RAM as wavetable data, I have been testing the Sound RAM initialisation in various emulators. The test ROM I am using and the spreadsheet of the results can be found in this NESdev forum thread: https://forums.nesdev.org/viewtopic.php?t=24349
puNES appears to initialise the Sound RAM with zeroes, despite the fact that every other section of RAM seems to be initialised with $FF. This should be fixed so that the Sound RAM initialisation matches what is used everywhere else. Additionally, an option to switch the RAM initialisation between $00, $FF, and random values would at least give users the ability to choose between compatibility and accuracy.
Current puNES behaviour (ignores $FF initialisation used everywhere else):
Correct behaviour in FCEUX (follows the RAM initialisation setting, random values in this case):
The text was updated successfully, but these errors were encountered: