Skip to content
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

Konami Wai Wai World glitches (VRC2 Mapper 23 related) #9

Closed
ghost opened this issue Mar 27, 2016 · 4 comments
Closed

Konami Wai Wai World glitches (VRC2 Mapper 23 related) #9

ghost opened this issue Mar 27, 2016 · 4 comments

Comments

@ghost
Copy link

@ghost ghost commented Mar 27, 2016

There seems to be some glitches during the vertically-scrolling part of the game as seen here:

punes error

This is easy to re-produce and all you have to do is to wait for this particular demo to start unless you don't want to play through the game.

There is a topic on nesdev.com about this but for NestopiaUE:
http://forums.nesdev.com/viewtopic.php?f=3&t=13473

There might also be a chance that the ending screen + sound select is glitched to like in NestopiaUE and it's related to this other glitch.

I do own a Famicom and a copy of this game and everything is correct there.

@ghost
Copy link
Author

@ghost ghost commented Mar 28, 2016

I have been investigating further and the ending + sound select is glitched too:
punes error 3

Also this shot here shows what's wrong with the flying shooter stage:
punes error 2

As you can see the ship is about to fly out in space but the remnants from the ground is still present in the top of the screen.

FHorse I have attached a zip for you containing 3 save states:

  1. (.p00) This is the demo from the flying shooter part
  2. (.p01) Konami man stands in the hangar ready to take off which means you can control the flying shooter part yourself (press A to get in a ship) and get a sense of what's wrong.
  3. (.p02) The game is complete and you can select music etc.

Wai Wai World (Japan).zip

EDIT:

Also for reference, here is a long play from YouTube that shows the correct behavior:
https://www.youtube.com/watch?v=nxhwIPPCQeY

Now the times in that long play you want to look at is following:
1:30:57 Vic Viper shooting stage
1:45:29 Final screen (ending + sound select)

EDIT 2:

Also as mentioned in the nesdev.com thread FCEUX manages to get the behavior right probably by these lines:
case 0x9000:
case 0x9001: if (V != 0xFF) mirr = V; Sync(); break;

Might be worth checking it out here:
https://github.com/asfdfdfd/fceux/blob/master/src/boards/vrc2and4.cpp

Loading

@lidnariq
Copy link

@lidnariq lidnariq commented Mar 30, 2016

A recent hardware test seems to indicate that prior emulator documentation for the VRC2 was wrong, and that the VRC2 only supports H/V mirroring control.

It was wrong, of course, because of the historical conflation of the VRC4 and VRC2. But Konami's original VRC2 documentation attests only H/V mirroring.

Normally the VRC2 is upwards-compatible with the VRC4 because all games just write 0 or 1. However, Wai Wai World has a hidden mistake where it writes $FF instead. This value $FF is clearly nonsense: the VRC2 doesn't even connect to the upper 3 data lines. So the hack in FCEUX here is just a way to handle this single instance where a VRC2-using game incorrectly writes with the upper bits set.

The "correct" fix, pretending you can somehow detect which games are VRC2 vs VRC4, is to only use the 1s bit for the VRC2, and to use both the 1s and 2s bit for the VRC4.

Loading

@punesemu
Copy link
Owner

@punesemu punesemu commented Mar 30, 2016

Fixed
Thx to Sigma and Lidnariq

Loading

@punesemu punesemu closed this Mar 30, 2016
@ghost
Copy link
Author

@ghost ghost commented Mar 30, 2016

You're welcome FHorse!

Any chance of a WIP build to try it out?

Loading

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants