Specific reasons why ARM11 can not emulate ARM7?

Discussion in '3DS - Homebrew Development and Emulators' started by Ron, Jan 17, 2016.

  1. Ron
    OP

    Ron somehow a weeb now.

    Member
    2,840
    388
    Dec 10, 2009
    Canada
    here
    The 3DS uses an onboard ARM7 core to run ARM7 code in TWL-mode and AGB-mode. 3dbrew has this to say about it

    What I'm interested in is a more in-depth explanation.

    Nintendo obviously took the easy way out and just slapped an ARM7 on there, but I'm looking for clarification on the "hardware is not physically hooked up to ARM11" part. The 3DS hardware is basically the same as the DS hardware (at least, things like the the WiFi module, screens, microphone, etc). I don't know enough about the architecture of the 3DS to say which cores handle which pieces of hardware, but if *hax and homebrew can run solely on the ARM11, doesn't that mean the ARM11 has hardware access to the 3DS hardware regardless? So, why isn't it possible to directly execute ARM7 instructions from GBA roms or even DS roms on the ARM11, provided my assumption that the ARM11 has backwards compatibility with whatever instruction set the ARM7 runs (ARMv4T? ARMv3?) is correct.

    (virtualise might be a better word than emulate)
     
    Last edited by Ron, Jan 17, 2016
  2. dpad_5678

    dpad_5678 GBAtemp's Memelord

    Member
    1,625
    1,171
    Nov 19, 2015
    United States
    I'm sure it can emulate it. Very shittely. With some coding, but it wont simply load the NDS files onto the TWL_NAND like it does when you boot an NDS cartridge. It will lag terribly nad will be pretty much unplayable.

    3DBrew probably means emulation as in full speed which is impossible.

    No one will try it though. I won't. You certainly won't. And since NDS flashcards are usually under $15 (at the most $35 for a SC DSTWO), I doubt it's worth anyone else's time.
     
  3. Ron
    OP

    Ron somehow a weeb now.

    Member
    2,840
    388
    Dec 10, 2009
    Canada
    here
    It says pretty specifically that ARM11 can not act as an ARM7 because some hardware isn't hooked up. AFAIK, the instruction set its backwards compatible, that is you should be able to directly execute ARM7 instructions on the ARM11. What I want to know is specifically what hardware the ARM11 doesn't have access to that prevents it from acting as a substitute ARM7. Even if I probably won't manage to write a VM for it myself, I'm curious as to why it's impractical, besides the fact that it's a lot of work for little payoff.
     
    clank likes this.
  4. ~Poke~

    ~Poke~ GBAtemp Regular

    Member
    260
    55
    Aug 18, 2015
    I'm not an expert on this, but I do know that the ARM11 cpu doesn't have direct access to a lot of hardware (even things like reading from the SD card), and has to request it via the ARM9 kernel. That would interfere with any ARM9/7 code (at least, GBA/DS code) running directly on the ARM11 cpu since it would try to access things directly rather than request it.
    That said, I wonder if this can be adjusted for, and if that would allow ARM7 code to run? Perhaps if they're very heavily patched, things like GBA games could run? (Fair warning, I don't know too much about this so I'm basically talking out of my ass here.)
     
  5. nIxx

    nIxx GBAtemp Advanced Maniac

    Member
    1,528
    78
    Sep 30, 2007
    Gambia, The
    Germany
    I think you should better ask this kind of questions in #3dsdev ;)
     
  6. tony_2018

    tony_2018 GBAtemp Psycho!

    Member
    3,106
    1,050
    Jan 3, 2014
    United States
    for realz.
     
  7. the assaf

    the assaf GBAtemp Fan

    Member
    480
    154
    Jun 2, 2013
    Same reason potato can't emulate ARN7.
     
    davidlc likes this.