Actually we did investigate using
cheats and other simple methods to swap screens way back when for a few games (theoretically it is small enough for one cheat although in practice two would probably be necessary) as the hardware technically has the option but the fallout was if not extensive then unpleasant to have when playing (I believe it was a pokemon game but that might be the first person hacking work I am thinking of).
http://nocash.emubase.de/gbatek.htm#dspowermanagement has what needs doing (you want to fiddle with bit 15)
Theoretically it would be something like
DB000000 04000304 #read the register
023FE424 E0033004 #set to add mode
D4000000 00000080 #add 80 (1000 0000 binary) to the value which should flip the top bit and send engine A which does 3d to the top screen)- not sure if I have to account for endianness in
cheats but that would be 00800000 instead if it is.
D8000000 04000304 #writes it back
#Any cheat makers in the audience feel free to correct that as I very likely screwed it up.
#Better yet if your cheat device supports boolean operations just OR it with 80
#If you want to go the other way you get to set bit 15 to 0 instead.
As was mentioned though this method is not ideal and can have fallout.