2009-04-30 - Official site announcement

Abandoned Super Gameboy support

For the past two weeks, I've tried my best to add support for the Super Gameboy, but I have ultimately failed to reverse engineer the protocol. It has a method of keeping the video from the DMG in sync with the SGB that I just cannot understand. Hopefully someone else can figure it out in the future. If they do, I can attempt re-adding support at that time. Very sorry to anyone who was looking forward to that.

I've reverted my source tree to v045 official, and I've written up technical notes on my findings, available here in the hopes someone can make something of them.


Message posted on http://board.byuu.org

Author: byuu
Post subject: Reverted to v045 official
PostPosted: 2009-04-30 at 02:43 PM (Thursday)
Message
Sorry, but I've given up on Super Gameboy support. If you want the last WIP of it, I suggest you get it right now: http://byuu.org...bsnes_v045_wip09.tar.bz2

This was an exceptionally painful decision, and it cost me not only SGB support, but a ton of code restructuring as well, such as the S-SMP rewrite and SNES namespace encapsulation. I'm going to have to re-do all of that, as I have no intentions of trying to blend two codebases together.

I've deleted wip01-wip09 on my side, and reverted to v045 official.

Seriously, pay attention to this part before responding. I don't want to hear about this, good or bad. It's done, not changing. I don't want condolences, complaints, "that sucks" or any of that. Doesn't help. This whole situation sucks. I posted news the other day because I really thought I had it.

No, I'm not going to take a small break and go at it again. No, I'm not going to go back to a later WIP and try and blend the code together to save work. No, I'm not going to leave the current broken DMG support in for future releases. It requires a heavily modified version of libgambatte (that is 2/3rds the size of bsnes itself), and I have no intentions of distributing all that and adding all that extra compilation work for something that's broken. If and when libgambatte gets SGB support, we can work on building a partially working interface, where bsnes will link against -lgambatte but not include its source code.

Starting this weekend, I'll go back again and start at v045.50. Made up just to give it some distance from the other WIPs to avoid confusion. My plan is to re-port S-SMP to the new pre-processor, get the core back to reading from RAM, get the compression libraries back out of the core, and put the entire core back into the SNES namespace again. Need to re-fix sound mute on pause and trailing backslashes on folder paths for Windows as well. Once I have all that done, I'm going to make an official release again. It was foolish of me to blend such a large change as merging an entire other emulator into a codebase with so much other work already done, but lesson learned. I'd rather waste another week re-doing things than half-ass tear apart two codebases from a 4 1/2 year project.

Lastly, my sincerest apologies to those wanting this, and especially to Nach and sinamas. We'll probably get it cracked some day. There's just too much I don't know about the Gameboy right now to fully understand how things work.

Here's the technical information I was able to reverse engineer:
http://byuu.org...supergameboy.txt

Here's to hoping someone else can get somewhere I wasn't able to.