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

Super Game Boy enhancement not working for Pokemon Yellow. #1104

Closed
bslenul opened this issue Jun 19, 2018 · 8 comments
Closed

Super Game Boy enhancement not working for Pokemon Yellow. #1104

bslenul opened this issue Jun 19, 2018 · 8 comments

Comments

@bslenul
Copy link

@bslenul bslenul commented Jun 19, 2018

Hey!

  • Pokemon Yellow seems to be the only Game Boy game with both Game Boy Color AND Super Game Boy enhancements.
  • GBC enhancement works fine as you can see on the screen below, SGB enhancement however doesnt work and that's the issue.
  • With Game Boy Color model set to Autodetect in the settings no problem, the game runs like a GBC game:

pokemon - yellow version - special pikachu edition usa europe gbc sgb enhanced -180619-000655

(same behavior with the option set to Game Boy Color or Game Boy Advance)

  • With the option set to Game Boy again no problem the game runs like a GB game:

pokemon - yellow version - special pikachu edition usa europe gbc sgb enhanced -180619-000729

  • But with the option set to Super Game Boy, instead of having colors and SGB borders like this, the game is in black and white and borders are white:

pokemon - yellow version - special pikachu edition usa europe gbc sgb enhanced -180619-000802

  • SGB enhancement works perfectly fine on other games like Pokemon Red/Blue. I guess this is because of the GBC enhancement of Yellow?

pokemon - red version usa europe sgb enhanced -180619-005305

Screens taken from RetroArch but results are the same with mGBA-build-2018-06-03-win32-5135-f8759a8760f4af6bd12188beeae82fb4e2ea5585 on Windows 10.

@endrift
Copy link
Member

@endrift endrift commented Jun 19, 2018

Hmm, seems to work fine with the SDL port. Looking into the Qt one now.

E] Can reproduce, Qt port is broken.

@endrift
Copy link
Member

@endrift endrift commented Jun 19, 2018

Seems like Pokémon Yellow asks for 2-controller mode, then increments which controller it's asking for 8 times (which goes back to the first controller) and since it sees it's the first controller again assumes it's not a SGB...

@endrift
Copy link
Member

@endrift endrift commented Jun 19, 2018

I think this might be a timing issue. I think it swaps the controller every frame, but it takes too many frames and winds up being an even number of frames (8) instead of an odd number (5 in BGB unless I miscounted).

@MapleStoryPSN
Copy link

@MapleStoryPSN MapleStoryPSN commented Sep 17, 2018

Bumping this up just to point out that the base Japanese rom (Pocket Monsters: Pikachu) has no trouble whatsoever with Super Game Boy enhancements. Borders and color work perfectly. It seems that every revision and regional release that followed is affected by the bug.

@CharlesCorrin
Copy link

@CharlesCorrin CharlesCorrin commented Sep 17, 2018

MapleStoryPSN, that could have something to do with the first Japanese version having no Game Boy Color support.

Pokemon Yellow was sold as a regular Game Boy game in all regions. But it had Game Boy Color features anyway. The first Japanese version was older, seemingly too early to get the GBC features. They added the GBC support in the 1.1 version. All other regional versions were based on the Japanese 1.1 or newer. This makes me think the problem might have SOMETHING to do with the GBC support. But I'm certainly no expert.

There's a byte/some bytes in the header that tells the GBC when the game has GBC support, but I don't remember where.

@endrift
Copy link
Member

@endrift endrift commented Sep 17, 2018

No, I don't think that's related. Though I'm not sure what the problem is yet.

@rodrigoomuller
Copy link

@rodrigoomuller rodrigoomuller commented Nov 29, 2018

Any new development on this issue? I noticed the same thing yesterday. Some Tetris game has the same problem, I believe Tetris 2.a

@ISSOtm
Copy link

@ISSOtm ISSOtm commented Jan 12, 2019

This is the relevant code, which is identical to the code in Pokémon Red except for the sending of the MLT_REQ packets, which are shielded by di in Red. (Yellow sets the variable that prevents joypad polling in the caller function instead.)

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

Successfully merging a pull request may close this issue.

None yet
7 participants
You can’t perform that action at this time.