Open Megabusterretro opened 1 year ago
Wow, thanks a lot. Hopefully some of the crashes will be resolved with the fixes that I already created for the upcoming 1.0.3. I will go through these before release and then add them to the compatibility list.
About the ghosting: Is this the frame blending feature? If you press the mode button (next to the LEDs) twice (switches to green and back) it should be gone. (I will add an on-screen display to make this button clearer and I will probably default to "off" as it seems to confuse more often than it helps, but it improves games that have fast flicker effects which do not translate well to the lower frame rate of the Interceptor video.)
Glad to help! I'll knock out another 30 games tonight. Do you still need video of the issues?
No, if it is clear what happens I should be able to reproduce it with a flash cart. Also, I will probably get 1.0.3 ready this evening or tomorrow, which has a few fixes that hopefully also fix some of the problems you have found so far.
I just tried if some of the problems have been fixed with v1.0.3 and it seems like "Bart Simpson Escape from Camp Deadly" and "The Rescue of Princess Blobette" are fine now. Not sure about the latter, though. Can you confirm, because maybe I did not play far enough.
I still think that the two ghosting entries are the frame blending feature. The new version starts with it disabled and gives feedback on screen if you toggle it with the mode button.
About Zoop: Is GB-I the Game Boy Player? Does the problem only occur there?
The GB-I is the GB Interceptor, sorry for the confusion!
The OSD is great! You are right, I was tweaking with the button on the back break up some of the filament because it was snug so I must have accidentally turned blending on. Spot worked a lot better!
Updated the firmware, and Blobette is working. Still having issues with Camp Deadly right at the beginning. It seems a frame updates only when something makes the screen pause. Here is the video link:
https://youtu.be/BTohWmj9F2M (apologies for the low volume).
Zoop is no longer crashing but it has similar issues like the Simpsons. If I pause the game the screen updates, once I unpause it freezes again.
The GB-I is the GB Interceptor, sorry for the confusion!
Ah, lol, why didn't I figure it out myself...
The OSD is great! You are right, I was tweaking with the button on the back break up some of the filament because it was snug so I must have accidentally turned blending on. Spot worked a lot better!
No, it was on by default, but you were not the only one who disliked it in some games, so I changed it to off by default in v1.0.3. Unfortunately, it is necessary in some games. If you look at this short recording of Zelda (https://twitter.com/diconx/status/1613308004136263681), have a close look at the dog chain. On the device it looks semi-transparent because each link of the chain is only drawn on every second frame. Without frame blending you only see every second link (they seem to alternate) because the 29fps of the Interceptor only show every other frame of the (almost) 60fps Game Boy. With frame blending it still is not perfect, but all links are visible at the same time.
Updated the firmware, and Blobette is working. Still having issues with Camp Deadly right at the beginning. It seems a frame updates only when something makes the screen pause. Here is the video link:
https://youtu.be/BTohWmj9F2M (apologies for the low volume).
Zoop is no longer crashing but it has similar issues like the Simpsons. If I pause the game the screen updates, once I unpause it freezes again.
ok, I have to check both again. I am very sure that I did not see this issue, but I am not sure anymore if I tried it on the DMG or a GBC.
...and of course I have to check all the others, too. This issue will be open for a while :)
For now, all my testing will be on my DMG so there is no confusion. If you need me to test some specific games on other handhelds I will gladly do it. I currently have a DMG, SP, and GBC.
Here is a few games I was able to test today. I was on a PC without OBS so I decided to test the Win 10 Camera app..it worked like a champ to do some testing! That is why you see another column annotating what application I tested with.
That the stock camera app works is good news indeed.
But now it gets weird: I just tried "Bart Simpson Escape from Camp Deadly", "Zoop", "Mole Mania", "Deadalian Opus" and "Bases Loaded" on my DMG and all of them work without problems (except for some garbled font in a menu somewhere). I am really confused now. I am testing on a simple flash cartridge but that should make no difference.
Looking at your video I am wondering if it really updates when you pause the game or if it is more a USB video glitch than an emulation glitch. After all, the frames that are shown look alright - they are just updated at an extremely slow rate. But in that case I would expect this to happen with all games, because the video format used by the Interceptor requires the same bandwidth for every image.
Is this reproducible for these particular games or could it be a random hickup (= still a bug) that just coincidentally occurred when you tried these games?
I just swapped USB C cables and tested: Escape from Camp Deadly (Works) Zoop (works) Bases Loaded (Works) Deadalian Opus (works) Caesars Palace (Works)
Well crap....I was using a Nintendo USB Cable...I figured that was the best one I had. New cable seems to be working well.
I think I am going to widen the hold in the 3d printed cases to make room for some bigger sized USBC Cables. I wonder if the cable wasn't fully inserted during some of these tests.
I am sorry for these false positives!
At least the Windows camera worked!
Damn, those cable dependent problems really worry me. I do not understand these at all.
I agree, there are so many variables do doing this stuff. I hope that doing this at least helps a little bit. I definitely do not want to hinder the process you have going on here!
I still have more games to test, hopefully this revelation will yield some more positive results. Going to stream/test games tonight with it!
Here is a list of 22 games that been tested with the NEW USBC Cable! Good results, just a few issues that I think you are already aware of on previous games.
I agree, there are so many variables do doing this stuff. I hope that doing this at least helps a little bit. I definitely do not want to hinder the process you have going on here!
Don't worry, it really helps a lot. Even if I went through all those games myself I would miss system specific stuff like the cable issue or Windows-related things.
About the cable problem: Could you test this firmware with the old cable? https://cloud.tankwar.de/index.php/s/8qEMYjzMcHJEibx
This firmware is meant to fix issues with boards where the oscillator takes a bit too long to settle after turning on. This affects individual board because of manufacturing tolerances for some components and the symptoms are that the Interceptor would work after uploading a new firmware, but stops working once it has been unplugged and connected again (that's when the original firmware would not wait long enough).
I am now wondering if there might even be an edge case where the oscillator has just settled enough to be able to start, but the PLL or VCO would not be set up correctly for stable USB communication. I have to admit that my knowledge here is very limited (and the little knowledge I have says that this is not possible) and this is a rather long shot, but different combinations of cables and games (which have different PCBs and chips) might influence the capacity enough to tip it over the edge.
Thanks for all the new tested games. I will update the list and eventually start looking into which can be fixed easily before getting into game specific fixes...
@Megabusterretro Want to combine efforts? https://docs.google.com/spreadsheets/d/1t-xKYgYn_4Pzesktp5r916mh_z9X_GMTLp_1bZnPkp0/edit?usp=sharing
@Megabusterretro Want to combine efforts? https://docs.google.com/spreadsheets/d/1t-xKYgYn_4Pzesktp5r916mh_z9X_GMTLp_1bZnPkp0/edit?usp=sharing
Sure thing! I will migrate things over to that list!
I tired The Simpsons Escape from Camp Deadly with the "bad" USB C cable and it worked with 1.0.4-alpha1.
@catrenelle Am I correctly thinking that you are "CatHouse Games" from Twitter?
I mention and thank you, "Joe Ray Six" and @Megabusterretro on the game compatibility list. Let me know if you prefer a different name or a different link target.
Sure thing! I will migrate things over to that list!
ok, then I will merge your last list to the Wiki and then work from Google Docs to add new titles and see what still needs to be fixed.
I tired The Simpsons Escape from Camp Deadly with the "bad" USB C cable and it worked with 1.0.4-alpha1.
That's good to hear. I am not sure if these cable issues are 100% reproducible, but it makes some sense to me. I guess I will only know if I see no more issues that are resolved by changing the cable in the future.
Correct! "Joe Ray Six" is a friend of mine as well and has been helping to test a lot. I'm trying to get fabrication costs of the unit down as much as I can so I can make and sell them for cheap in small batch quantities. But we're also testing the games and welcome anyone who wants to contribute to the game list. Just submit an editor request and we'll review/grant as appropriate.
Just a little info as my current findings do not result in new fixes at the moment. It seems like I found most generic bugs by now and start to stumble upon problems that need to be fixed for individual games. For example:
Alien vs. Predator does not return from a wait function after a DMA transfer, but keeps doing a few things while executing from RAM. The problem is not that the Interceptor does not know which commands are in RAM, but that it cannot see their execution during DMA and cannot know which of the addresses is a command and which just data. I cannot think of a generic fix for this, but a game-specific one would be super easy as the Interceptor can just look for a specific hardcoded address to be read.
Bonk's Adventure is one of those cases where data from an I/O register is directly used for graphics. The input from the gamepad is bitmasked and shifted and becomes the bit that flips sprites when you turn in a different direction (probably the same for fighting sim). Definitely no generic fix here, but since changing directions also changes the tiles which seems to work on the Interceptor, a game-specific fix seems possible.
So, I think that at this point I will stop looking into glitches for a moment and look into detecting which game is running. This is a bit tricky, but individual fixes are only possible if the Interceptor knows the current game.
@Staacks I am glad you pointed out the Bonk's issue! The same thing is happening on Fighting Simulator. The sprite gets very strange when moving left to right, but looks normal when moving right to left.
If we find more individual game glitches, do you just want me to update the spreadsheet with the notes or create a new thread with the glitch?
I think at the moment while there still is so much to do, the list works better.
My mail notification shows the unedited version of your comment: Has this been resolved? Sounds worrying if it's not just a loose contact...
I think at the moment while there still is so much to do, the list works better.
My mail notification shows the unedited version of your comment: Has this been resolved? Sounds worrying if it's not just a loose contact...
It is for sure still an issue but I didn't want to bring it up until I had the proper method on how you wanted it reported. I took some video of the issue and I can post a youtube link in the spreadsheet.
Yeah, a video might be helpful, but also any thoughts on what might be different here. If I understood correctly it is an issue on the actual Game Boy and not the output from the Interceptor? Since the cartridge has a direct connection to the Game Boy through the Interceptor and the bus transceivers are hardwired to only output in direction of the rp2040 that should not happen. So, I am a bit of a loss here. I also do not expect to be able to reproduce it with a flash cartridge, but I will try later...
Same here! I will test on all the consoles I have. Right now, it seems to only be happening on the DMG Game Boy. I tested on my SP and it works. I also have a GBC I will test on.
The game fires up with no issues without the Interceptor as well. I will post a video in a few.
I do not have access to update that list yet, so here is the video of the Ultima issue.
You should be able to request editor access to the list when you have it open.
I do not have access to update that list yet, so here is the video of the Ultima issue.
Please tell me that this sound is coming from the speaker (i.e. you can control it with the volume dial). It is terrifying...
As expected, I am not able to reproduce it with a flash cart, but since it happens even before the Nintendo logo, I did not expect that this has anything to do with the ROM code. This is some kind of hardware issue.
One interesting thing to note is that the Interceptor does not even detect that the Game Boy is turned on. Not sure what that means, but since I am at a total loss I am just collecting information at this point.
A few things to try to maybe get more infos to narrow it down a bit:
Oh, a few more thoughts and tests about the BA6129 hypothesis:
This is such crazy randomness....I never would have thought batteries could cause an issue like this.
Quick Edit: The Interceptor works in Discord as well
I lied, I do have Top Rank Tennis and it is doing the exact same thing Ultima was doing. I put the new batteries in and it fires up just fine!
Perfect. It begins to make a bit of sense. So, this seems indeed related to the BA6129. Unfortunately, I could only find datasheets for newer models, but I think that your batteries are just at the threshold of the BA6129. A little lower and it would keep the reset line for the Game Boy active, not allowing it to turn on anymore, and a bit higher and it would properly switch on. Somehow it is oscillating between both states and I am wondering if it might be ripple from AC that is pushing it over the edge (although the noise is not 50Hz or 60Hz for the US, but something around 79Hz).
In the end, it will probably be filed away as "cannot be helped" (at least not without a hardware revision that adds a filter), but could you try the following just for a more complete picture:
Hm... Not sure what to make of this. I expected that ground plays a role here. Anyhow, at least it seems to be narrowed down enough to not be a major problem. I will add it to the trouble shooting guide.
Title || Model || Working? || Console tested || Notes || Application tested
Dr. Mario || DMG-VU-ESP || Almost working || DMG || Objects on playfield at the start of game not showing correctly. Majority of objects appear after first 4-line cleared, but not necessarily all || OBS and Kamera
SolarStriker || DMG-SS-SCN || Yes || DMG || - || Kamera
Chase H.Q || DMG-HQ-SCN || Sort of || DMG || Road and grass not uniform as should be, but otherwise game is playable || Kamera
Tom & Jerry, Frantic Antics! || DMG-J8-USA || Yes || DMG || - || Kamera
Also seems that Bust-A-Move 2 works great, and is actually even a lot better when played on big screen (it's easier to identify the game objects)
Damn, fixing the remaining games get's more and more tedious.
The bad news: I spend several evenings thinking about the Dr. Mario problem and I think it is the first game I give up on - at least for now. Unless I figure out an exact emulation for the div register, it seems to be unsolvable with the available resources. The problem is that it generates the level and writes plenty of random (= div register) data directly to VRAM and RAM without conditional branching.
The good news: I fixed Bonk's Adventure (see https://mastodon.social/@DiConX/109757439865554681 and https://mastodon.social/@DiConX/109757442170688549). This one creatively rearranges the bits of the gamepad input to set the mirror flag of the player tiles. So, I implemented an option to set an address specific to a game that the Interceptor tries to reconstruct by observing conditional jumps that are based on this address.
A few more fixes will be in 1.1.0:
I think I will soon be through with the games posted here and then move on to the Google Docs list. (Well, soon depends on the games. Battletoads cost me an entire evening digging through the game to eventually find a bug in my implementation that is fixed by replacing a single character in the code...)
That's great news! I have been building my own list of games I've tested and will add to the sheet soon. I am also getting some Japanese games in next week I look forward to testing!
Updated the spreadsheet with my game collection (Minus the ones listed in this thread). Is there a Discord server to collaborate on or is Github the main source?
Not sure how you testers want to work. I eventually place everything in the Wiki here, because that's where others will look for information, but my list is a bit simpler and does not track testing progress across different systems.
I have now merged everything from Google Docs to this list and am working on the remaining issues. Some games have been fixed with other fixes and I aim to fix all known issues except for really difficult ones (Dr. Mario) for the release of version 1.1.0.
I had difficulties to reproduces two problems, though: Balloon Kid: Player sprites look fine on GBC. Does this occur in a specific situation or part of the level? Bust-A-Move 2: The bonus scores looked fine to me. I think I have seen five of them. Is it particularly rare?
I figured I'll add my issue here as it seems relevant? Feel free to tell me otherwise.
I'm unable to get "Yoshi" working properly, in particular the PAL version which is called "Mario & Yoshi". Basically the same thing, except the model is "DMG-YO-AUS" as opposed to "DMG-YO-USA".
It works normally in the Gameboy, but when going through the inteceptor I get a slightly garbled Nintendo logo on boot, and the game doesn't load, and it only does it to this one game. I can play Tetris no problem, I can play Donkey Kong Land no problem. Just for some reason it corrupts Mario & Yoshi. My other games are also PAL (ie; DMG-YT-AUS) so I don't think it's a PAL compatability thing.
Is there anyone else out there with the PAL version of Yoshi that can confirm?
If the Nintendo logo is scrambled it's not a software issue of the Interceptor - the Interceptor does not do anything at this point and the pins of the cartridge are supposed to be directly wired to the Game Boy anyways. If the logo is scrambled the Game Boy is not able to properly read the cartridge.
If it only happens in the combination of the Interceptor and that particular game I suspect that it is pretty much the same as any scrambled Nintendo logo, but in an unlucky pattern that it only shows with the Interceptor. Think of the typical dirty (or maybe even corroded) contacts of a cartridge and a slightly different alignment/tolerance of the contacts on the Interceptor. The Game Boy may have proper contact as it touches a clean part of a pin while the connector of the Interceptor touches the same pin a bit further down or slightly to the side or with slightly less pressure - and you have a game that works with the Game Boy but not with the Interceptor. If other games work with the Interceptor I am quite sure that it is the connection between the game and the Interceptor. So, try to clean the contacts (if you have not yet done so) and check if the game can be wiggled around a bit inside the slot (careful, if you do so with bad connections while the Game Boy is turned on - that could corrupt your save games on that cartridge).
Hello I have some tested game glitch or don't work.
Pokémon Silver: Black & White mode on GBC GBA GBASP. Pokémon Pinball: Black & White mode & glitch on GBC GBA GBASP. Everdrive GB X7, Tokimeki Memorial Pocket Culture/Sport versions, Heroes Might & Magic II: Error.
GB Interceptor: 1.1.0 and 1.0.4. Software: OBS 29.1.2. Platform: Windows 10 22H2.
Thanks for reporting issues. However, those are all Game Boy Color games which are not expected to work with the GB Interceptor. Even if some of them are hybrids that work on a classical Game Boy, they will only run in classical mode if they are played on a classical Game Boy (DMG, Pocket or Light) and are still expected to crash on a GBC. Setting a black and white palette on the GBC also does not make a difference here.
But I am wondering if I am missing something from your report as you say "Black & White mode"... Is there a trick to set a color palette on color games like when playing classical games on GBC? Even then I doubt that the games are running in any different way (in particular in double speed mode which the Interceptor cannot handle).
The Everdrive GB X7 is an interesting detail here. I suppose it also has a color mode for the menus? Does it start working when you select a classical game from the menu? i.e. the Interceptor shows an error while you select a ROM on the GBC screen and when the Everdrive starts the ROM (a classical one!), the Interceptor starts working?
But I am wondering if I am missing something from your report as you say "Black & White mode"... Is there a trick to set a color palette on color games like when playing classical games on GBC? Even then I doubt that the games are running in any different way (in particular in double speed mode which the Interceptor cannot handle).
They are all forced output in DMG mode, even in GBC GBA GBASP.
i.e. the Interceptor shows an error while you select a ROM on the GBC screen and when the Everdrive starts the ROM (a classical one!), the Interceptor starts working?
Yes but only DMG games will work on X7. All color games are forced output in DMG mode and have glitch / error.
How are they forced to run in DMG mode?
How are they forced to run in DMG mode?
By default.
Sorry, I do not understand what you are doing. You put a regular Pokemon Silver cartridge into a regular GBC and it does not show any colors? That does not seem like "default" behavior to me.
Sorry, I do not understand what you are doing. You put a regular Pokemon Silver cartridge into a regular GBC and it does not show any colors? That does not seem like "default" behavior to me.
But I do receive this result. I can't find any instruction to change it.
And this happens without the Interceptor with Pokemon Silver and Pokemon Pinball on GBC, GBA and GBA SP?
And this happens without the Interceptor with Pokemon Silver and Pokemon Pinball on GBC, GBA and GBA SP?
All my GBC compatible & GBC only softwares are either forced running in DMG mode then glitch, or crash then error, in every console I own.
I don't own DMG, Pocket, Light now.
Here is a list of the games I have currently tested and what games I tested it on. Let me know if there is a better way for me to share this spreadsheet. I will also upload video of each of the games with issues tomorrow and then post a link to my private youtube channel for you to view.