Shounumi, I have a question. I have been reading up on GBATEK, and I was wondering how easily you could adapt your emulator to work as the BBA Adapter for the GC so that GBA and GB/GBC could be played through Dolphin?
Programming Discussion Thread
|
That's not what the BBA does...
11-10-2014, 01:23 PM
I think he meant the GameBoy Player :p
At any rate, I have only briefly looked at what the GB Player is actually trying to do in Dolphin. From what I understand, the GBP basically communicates with the GC via ARAM DMAs or some such. I guess the GC looks at ARAM to grab whatever data the GBP sends. Again, guessing, but I think it's just video/audio data. The GBP is really just a GBA strapped to the bottom of your GC; it handles all of the GB/GBC/GBA stuff then feeds it to the GC for playback. GBE+ is still too early to do anything worthwhile (only a handful of GBA games boot without blowing up), but the original GBE is quite stable, so technically I could start working on making that compatible with the GBP. The thing is, I have no idea how the GBP really works (have the stuff above is pieced together, idk how solid it is). What data is the GC software expecting and when? Does it verify it somehow? What format is this audio/video data? There are a lot of unknowns, but I'd be willing to work on it with the Dolphin devs. I'd just need more information and a place to start. 11-10-2014, 02:25 PM
shuffle2 looked into the GBP. IIRC, the hardware writes frames to external ARAM which the GBP disc software reads and writes to the GameCube framebuffer like a movie. Not very interesting from an emulation perspective.
(11-10-2014, 02:25 PM)skid Wrote: shuffle2 looked into the GBP. IIRC, the hardware writes frames to external ARAM which the GBP disc software reads and writes to the GameCube framebuffer like a movie. Not very interesting from an emulation perspective. I would disagree about it not being interesting, since it's part of the effort of making Dolphin a GC emulator. Just making something more complete is interesting in and of itself, for me at least. Getting two very different emulators to work in conjunction is also something that grabs my attention, so I'm looking at this area for future work. You guys are just too wrapped up in your JIT optimizations and techno-babble or whatever it is you guys do these days :p Besides, there's still the question of audio. I would assume that's written to ARAM as well, but the format? Mysterious. Regarding the framebuffer data, what format is it stored in ARAM? Or what would be a plausible format that the GC would expect? I'm guessing that if it's all 0s or some null value it would freak out (and show you the message it currently does in Dolphin) but I would like to see if I could get it to display an image of some sort.
I presume the GC would have to feed the controller input to the GBP too, right?
11-11-2014, 02:57 AM
@tueidj, I did mean GBP, but put BBA adapter cause it was also on my mind
I was thinking about all this because VBA GX doesn't work in Dolphin (it freaks out with errors), and I have a GBP that I could test, but I wouldn't know to go about doing that, or even how to make a game boy emulator. http://problemkaputt.de/gbatek.htm#gbagameboyplayer I was looking at that, but there isn't much info on how it passes info 11-16-2014, 11:33 AM
Another wonderful week of progress:
Megaman & Bass boots now. Almost makes it in-game until it enter Full Panic Mode and aborts the emulator. I can select Megaman or Bass, but after that it freaks out. I think the Program Counter might not be aligned in certain parts, haven't checked it out extensively. Riviera is practically fully playable now; there are just a handful of graphical issues to deal with. Yggdra Union boots, makes it in-game quite a bit, but graphical oddities make it so that I can't tell wtf is going on after a certain point. Advance Wars seems fully playable too. It's just missing proper sprite-to-BG priorities (all games are atm) and rotation + scaling (which I'm holding off for quite a while). FLASH and SRAM saving should be possible as well. 12-02-2014, 06:02 PM
So... updates. Lots of progress, mostly speed optimizations and graphical fixes, with a few additions to game compatibility (at least out of the games I've tested, I might have fixed more than I know). Megaman Battle Network 1 and 2 now run almost flawlessly (missing features of LCD emulation like Mosiac effects, various transparencies, etc). I played both games for hundreds of hours way back when. Kingdom Hearts: COM works pretty well, except the intro movie freezes and battles (the crux of the game) take advantage of BG Mode 2, which I've not implemented yet. I actually dug up an old, 10-year old game save from VBA on one of my old USB HDDs and it worked as-is in GBE+ (which is how I got around the movie freeze).
The big win for me over the weekend was EEPROM emulation. This was necessary to boot Super Mario Advance (and theoretically a ton of other Nintendo games). Some sprites are a little weird, since scaling and rotation is not finished by any means, but for the most part the game is completely playable (except the Mario Bros Classic mode, that crashes ) Also managed to fix a glaring address issue with 8-bit palettes for sprite rendering, which prevented the dialog portraits in Riviera from displaying (as well as special portraits used during Overdrive attacks). Both contribute a lot to the mood of the game, so I'm glad I'm one step closer to fully reliving this game. Also, built-in screenshot and pause functionality added. NSFW: |
« Next Oldest | Next Newest »
|
Users browsing this thread: 3 Guest(s)