-
-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # 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: