Super Game Boy system extensions

Discussion of programming and development for the original Game Boy and Game Boy Color.
User avatar
Marscaleb
Posts: 240
Joined: Fri Sep 11, 2015 10:39 am
Contact:

Re: Super Game Boy system extensions

Post by Marscaleb »

Well I'm not talking about running the game exclusively on the SNES, like Space Invaders does. I mean to run a program while still running a (nearly) typical game boy game. So the game Boy could be running its normal program (sans sprites), the SGB is is displaying the GB screen and its other effects, and the SNES is drawing sprites over the GB screen render.

Granted, it gets pretty pointless by that point. If you're running most of the game code on the SNES just to keep the sprites lined up with the background on the Game Boy, why not have it draw the backgrounds too? At which point you're really just running a SNES game, in which case, why not just make an actual SNES game?
Originally I was just thinking of slightly accenting the Game Boy game by colorizing the sprites, like how the GBC does when running a classic GB game. The only reason I'm still pursuing this rabbit hole is because I'm wondering just what it would take to accomplish that goal, and just how feasible it is or isn't.
I guess I have an answer though. It would need to run a duplicate copy of the game on the SNES, sufficient to the point where any developer is going to just have it run a whole game on there making the Game Boy version pointless.
Technically: possible. Practically: irrelevant.
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Super Game Boy system extensions

Post by tepples »

1. Game Boy PCB/plastics are cheaper than Super NES PCB/plastics
2. You don't have to write the game logic (including enemy AI) twice: once for Game Boy and once for Super NES
3. GB APU use
lidnariq
Posts: 11429
Joined: Sun Apr 13, 2008 11:12 am

Re: Super Game Boy system extensions

Post by lidnariq »

It's almost certainly possible to reimplement enough of the SGB control system while the SNES is operating in a letterboxed mode. Either the plain 144-scanline mode from the SGB itself (DAR of 2), or Tepples's occasional suggestion of using a 164-scanline mode to make something that would be zoomed to full-screen on a 16:9 TV. In the former case, there's enough vertical blanking time to upload almost 20kB/vsync, three times the default on NTSC. In the latter case, there's still 16kB. On PAL, there's enough time without any modifications at all, but there's always frame dropping from the 60Hz that the SGB runs at to the 50Hz that the S-PPU in PAL mode runs at.
User avatar
ISSOtm
Posts: 58
Joined: Fri Jan 04, 2019 5:31 pm
Location: France, right of a pile of consoles
Contact:

Re: Super Game Boy system extensions

Post by ISSOtm »

Marscaleb wrote: Sat Nov 16, 2019 8:42 am Well I'm not talking about running the game exclusively on the SNES, like Space Invaders does. I mean to run a program while still running a (nearly) typical game boy game. So the game Boy could be running its normal program (sans sprites), the SGB is is displaying the GB screen and its other effects, and the SNES is drawing sprites over the GB screen render.
The SGB firmware has sort of "hooks" that can be used to run code when certain events occur. The two known ones, afaik, are once every frame (except in menus?) and when any command packet is recieved.
That said, there is a problem in how you'd transfer additional info to the SNES? The only two available channels are the framebuffer (ex: OBJ_TRN) or the command packets. The former requires sacrificing some screen output, the latter is very slow, and has an additional Nintendo-issued recommendation of only sending packets every 4 frames or so; no research has gone into what the cause of it is, the SGB firmware's required processing time, or the ICD2 chip itself?
Marscaleb wrote: Sat Nov 16, 2019 8:42 am Originally I was just thinking of slightly accenting the Game Boy game by colorizing the sprites, like how the GBC does when running a classic GB game. The only reason I'm still pursuing this rabbit hole is because I'm wondering just what it would take to accomplish that goal, and just how feasible it is or isn't.
One of the biggest problems is that for the SNES to render the sprites, it has to have the tiles loaded in its VRAM, I believe. That's pretty hard in terms of bandwidth.
The French Lord of Laziness (and a huge Legend of Zelda fan)
https://github.com/ISSOtm
ASMu is laifu <3
Post Reply