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

Comments

@bslenul
Copy link

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

This comment has been minimized.

Copy link
Member

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

This comment has been minimized.

Copy link
Member

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

This comment has been minimized.

Copy link
Member

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

This comment has been minimized.

Copy link

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

This comment has been minimized.

Copy link

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

This comment has been minimized.

Copy link
Member

commented Sep 17, 2018

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

@rodrigoomuller

This comment has been minimized.

Copy link

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

This comment has been minimized.

Copy link

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
7 participants
You can’t perform that action at this time.