#30252 - leonard_ - Mon Nov 29, 2004 9:28 pm
Hi all,
Reverse the wi-fi is going well. On the other hand, I read on that forum the GBA flash card is working on DS and you can run "home made" GBA code.
Did anyone have an idea on how running ARM9 code when booting a GBA code from a flash-card ?
#30346 - leonard_ - Tue Nov 30, 2004 6:23 pm
nobody answer to that thread ? Could be an easyer way to run our own DS code than wi-fi hacking ?
wi-fi seems more exiting for people ? :-) Remember the initial goal: run private code on DS. If hackers attack on several sides, they may reach the goal faster, no ?
#30352 - josath - Tue Nov 30, 2004 6:32 pm
it doesn't seem very probable that you can do this, first of all the gba carts and ds carts have different interfaces, so the code probably accesses them differently, so you couldn't just run DS code on a GBA cart, secondly, when running from a GBA cart, to the game, it should look EXACTLY like a gba, that is, it shouldn't be able to tell it's running on a DS. If it wasn't like this, it would be possible that some old GBA games wouldn't work on the DS.
So, I don't think it is possible to run any DS code from a GBA cart directly, though it may be possible to do it indirectly, once we get our own code running on the DS (through wifi perhaps), to then use that to load code from the GBA flash cart.
#30353 - RiZeUp - Tue Nov 30, 2004 6:32 pm
The way i see it, Wifi has alot more potential since you wont need to buy a flash cart to program the DS and I think it's an easier solution considering that we do know the DS can run code sent to it. We just need to figure out a way to emulate the DS so the PC can send the rom.
_________________
~RiZeUp
#30355 - leonard_ - Tue Nov 30, 2004 6:38 pm
I agree it seems "impossible" to run DS code from GBA card, but that's exactly what "hackers" love, no ? Running ARM9 without anything in DS cartridge port is possible ( wi-fi games does). Running ARM9 code from GBA runnning context is another story, I agree.
I agree the wi-fi technic will be more efficient if working, because you don't need any hardware exept a cheap pc wifi card.
Again, even if it seems more difficult and have more contrainst ( you need a gba flash card), has anyone start hacking in that direction ?
#30356 - ampz - Tue Nov 30, 2004 6:42 pm
Well, the problem with wifi is that you can't bring the software with you.
You need access to your computer each time you want to run your code.
Wifi would be good for development, but near-useless for actually using the software developed.
Only way to take the software with you would be to load the software to your DS before you leave home, and then put the DS in sleep mode.
But the software will be lost if you need to reboot, or wanna play a game from the DS or GBA card for a while.
#30359 - tepples - Tue Nov 30, 2004 7:18 pm
josath wrote: |
when running from a GBA cart, to the game, it should look EXACTLY like a gba, that is, it shouldn't be able to tell it's running on a DS. |
"when running from a GB cart in a Super Game Boy, to the game, it should look EXACTLY like a Game Boy, that is, it shouldn't be able to tell it's running on a Super Game Boy."
No, a lot of GB games had SGB enhancements.
"when running from a GBA cart in a Game Boy Player, to the game, it should look EXACTLY like a gba, that is, it shouldn't be able to tell it's running on a Game Boy Player."
No, a few GBA titles support rumble, and the GBA Video titles crash on GB Player to prevent somebody from running the Cube into a VCR.
Quote: |
If it wasn't like this, it would be possible that some old GBA games wouldn't work on the DS. |
Nintendo could have designed it such that a predefined sequence of writes to the I/O area could unlock the DS, and that such sequence doesn't occur accidentally, right?
Quote: |
it may be possible to do it indirectly, once we get our own code running on the DS (through wifi perhaps), to then use that to load code from the GBA flash cart. |
That's another possibility, but I agree with ampz that it's not a long-term solution, as it'd still require a PC present to boot the machine, which isn't much good for people who want to play hypothetical TOD DS on the bus. If people want to bring a laptop just to boot the DS, then they might as well just play TOD for PC, Drunken Linetris for PC (for those people who think TOD for PC "sucks balls"), or some other PC game.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#30384 - Joat - Tue Nov 30, 2004 9:02 pm
The SGB *isn't* exactly like a GB, it uses two bits in the keypad register to implement a serial communication protocol with the SNES side firmware, and it also sticks different values in the CPU registers on bootup, so a GB game *can* tell if its on a SGB, quite easily. It can then upload the border graphics, extra sound, or even SNES side code (the firmware was designed to support this).
The GB player for the cube is not nearly so nice, it's bios and boot-up state are identical to a regular GBA, and the only way to tell if running on one is when the GB player pushes left+right at the same time to say 'hello' (it might have been up-down, I haven't tested this myself, just going on memory). It doesn't allow any sort of code upload to the cube or expose any extra functionality other than rumble control.
The GBA mode of the DS appears to be more like the GB player than the SGB, the functional environment is virtually identical, with no new/removed i/o registers (with one exception), identical boot up values in registers, and identical memory mirroring. They did change a single bit in the bios, which makes detecting a DS possible via an undocumented SWI or using midikey2freq to dump that byte of the bios, but that is something that no existing games do, so it won't affect compatibility. It is also detectable by looking for the undocumented system control register at 0x04000800, which is now gone, another clue that the GBA mode isn't just a GBA chip stuck right on there, but implemented at least partially with DS hardware. Whatever process that the DS BIOS does to remap memory and hardware into a GBA-esuqe environment is almost certainly permenant until power-down, just like the GBC mode switch bit was on the GBA.
Sure, it's quite possible that they expose extra DS functionality after you unlock it, but there are far too many potential unlock sequences they could have chosen to test them all, from something as simple as writing data to a specific address to extremely complex such as displaying a specific screen and checksumming the colors on screen. The only reasonable way to find out is to wait for a game to come out with DS enhanced features, and it will be relatively trivial to find what it did that no current GBA games do.
I suspect that there *isn't* any unlock sequence, and they only modified that bit to allow future games to automatically select a suitable palette, so games callibrated for the insanely-dark GBA screen don't look too bright and washed out on a DS. Even if there is one, it will only unlock things like the touch screen and X/Y, no chance at all that they will expose the 3D or wifi hardware to GBA side code.
_________________
Joat
http://www.bottledlight.com
#30406 - dagamer34 - Tue Nov 30, 2004 11:47 pm
Joat wrote: |
The SGB *isn't* exactly like a GB, it uses two bits in the keypad register to implement a serial communication protocol with the SNES side firmware, and it also sticks different values in the CPU registers on bootup, so a GB game *can* tell if its on a SGB, quite easily. It can then upload the border graphics, extra sound, or even SNES side code (the firmware was designed to support this).
The GB player for the cube is not nearly so nice, it's bios and boot-up state are identical to a regular GBA, and the only way to tell if running on one is when the GB player pushes left+right at the same time to say 'hello' (it might have been up-down, I haven't tested this myself, just going on memory). It doesn't allow any sort of code upload to the cube or expose any extra functionality other than rumble control.
The GBA mode of the DS appears to be more like the GB player than the SGB, the functional environment is virtually identical, with no new/removed i/o registers (with one exception), identical boot up values in registers, and identical memory mirroring. They did change a single bit in the bios, which makes detecting a DS possible via an undocumented SWI or using midikey2freq to dump that byte of the bios, but that is something that no existing games do, so it won't affect compatibility. It is also detectable by looking for the undocumented system control register at 0x04000800, which is now gone, another clue that the GBA mode isn't just a GBA chip stuck right on there, but implemented at least partially with DS hardware. Whatever process that the DS BIOS does to remap memory and hardware into a GBA-esuqe environment is almost certainly permenant until power-down, just like the GBC mode switch bit was on the GBA.
Sure, it's quite possible that they expose extra DS functionality after you unlock it, but there are far too many potential unlock sequences they could have chosen to test them all, from something as simple as writing data to a specific address to extremely complex such as displaying a specific screen and checksumming the colors on screen. The only reasonable way to find out is to wait for a game to come out with DS enhanced features, and it will be relatively trivial to find what it did that no current GBA games do.
I suspect that there *isn't* any unlock sequence, and they only modified that bit to allow future games to automatically select a suitable palette, so games callibrated for the insanely-dark GBA screen don't look too bright and washed out on a DS. Even if there is one, it will only unlock things like the touch screen and X/Y, no chance at all that they will expose the 3D or wifi hardware to GBA side code. |
Allowing GBA software to use the special features of the DS will mess up the intricate balance between the two systems. Nintendo wants the DS to create a new market whereas the GBA will continue to reign in it's current one. Adding DS functionality to GBA games would reduce the compelling reasons to get a GBA, but instead get a DS, and that would make Nintendo somewhat of a lier, as they said that the DS is a "third pillar", not a replacement of the GBA.
_________________
Little kids and Playstation 2's don't mix. :(
#30410 - abilyk - Wed Dec 01, 2004 1:04 am
Joat wrote: |
Even if there is one, it will only unlock things like the touch screen and X/Y, no chance at all that they will expose the 3D or wifi hardware to GBA side code. |
Hmm... it sure would be nice to use those X/Y buttons. If they did make it possible for GBA software to access them, I wonder if the feature would have to be unlocked somehow by writing to some new register. When I get home from the office I'll have to run a test program on my DS to see if any of the unused bits of REG_KEYINPUT are by default mapped to X and Y.
#30413 - abilyk - Wed Dec 01, 2004 1:09 am
dagamer34 wrote: |
Allowing GBA software to use the special features of the DS will mess up the intricate balance between the two systems. Nintendo wants the DS to create a new market whereas the GBA will continue to reign in it's current one. Adding DS functionality to GBA games would reduce the compelling reasons to get a GBA, but instead get a DS, and that would make Nintendo somewhat of a lier, as they said that the DS is a "third pillar", not a replacement of the GBA. |
I can play a GBA game on my import GBA which I installed an Afterburner into, a non-modded GBA, a GBA SP, on my TV using the Cube's Game Boy Player, and now on my DS. The positioning of the Start and Select buttons greatly varies among the different systems. Me, I see no intricate balance. Of course, any GBA game you develop, you need to ensure that it works on all versions of the GBA. However, if I'm able to give the user the ability to customize their control scheme to use the DS' extra buttons, then I'm all for it.
#30421 - abilyk - Wed Dec 01, 2004 2:02 am
abilyk wrote: |
When I get home from the office I'll have to run a test program on my DS to see if any of the unused bits of REG_KEYINPUT are by default mapped to X and Y. |
I tested it, and no, the X/Y buttons have no effect on the REG_KEYINPUT (0x4000130) register. I would guess we're looking at one of three scenarios:
* GBA programs cannot access X/Y button states.
* X/Y button states are stored in a register other than REG_KEYINPUT.
* X/Y button states will be stored in REG_KEYINPUT after somehow unlocking that functionality.
I consider the first two to be more likely than the third.
#30434 - dagamer34 - Wed Dec 01, 2004 4:20 am
abilyk wrote: |
dagamer34 wrote: | Allowing GBA software to use the special features of the DS will mess up the intricate balance between the two systems. Nintendo wants the DS to create a new market whereas the GBA will continue to reign in it's current one. Adding DS functionality to GBA games would reduce the compelling reasons to get a GBA, but instead get a DS, and that would make Nintendo somewhat of a lier, as they said that the DS is a "third pillar", not a replacement of the GBA. |
I can play a GBA game on my import GBA which I installed an Afterburner into, a non-modded GBA, a GBA SP, on my TV using the Cube's Game Boy Player, and now on my DS. The positioning of the Start and Select buttons greatly varies among the different systems. Me, I see no intricate balance. Of course, any GBA game you develop, you need to ensure that it works on all versions of the GBA. However, if I'm able to give the user the ability to customize their control scheme to use the DS' extra buttons, then I'm all for it. |
Meh, I guess...
_________________
Little kids and Playstation 2's don't mix. :(
#30439 - tepples - Wed Dec 01, 2004 5:05 am
abilyk wrote: |
I would guess we're looking at one of three scenarios:
* GBA programs cannot access X/Y button states.
* X/Y button states are stored in a register other than REG_KEYINPUT.
* X/Y button states will be stored in REG_KEYINPUT after somehow unlocking that functionality.
I consider the first two to be more likely than the third. |
I listed some speculation about the third in another thread.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.