Asm Rendering [theory]

Discussion in 'NDS - ROM Hacking and Translations' started by gudenau, Aug 13, 2012.

  1. gudenau
    OP

    gudenau Never a unique idea

    Member
    3,203
    1,208
    Jul 7, 2010
    United States
    /dev/random
    So if I look for addresses in the asm of a ds game, I could render my own stuff on the screen?
     
  2. Luigi2012SM64DS

    Luigi2012SM64DS G-old member

    Banned
    2,060
    309
    Aug 27, 2011
    Canada
    Minecrapt
    what would be the point?
    Moonshell. if your just wanting to watch videos.
     
  3. Foxi4

    Foxi4 On the hunt...

    pip Reporter
    23,508
    21,424
    Sep 13, 2009
    Poland
    Gaming Grotto
    There's always libnds, why browse through some decompiled code? if you want to "render your own stuff", you may just as well "program it from scratch".
     
  4. Rydian

    Rydian Resident Furvertâ„¢

    Member
    27,883
    8,105
    Feb 4, 2010
    United States
    Cave Entrance, Watching Cyan Write Letters
    If you're talking about modding a retail ROM... unlike older ROMs (NES, SNES, etc.) that lumped all the data into one chunk, NDS ROMs actually use a filesystem of sorts, and there's tools out there that can extract the ROM into all the various parts, which include the ARM9 and ARM7 binaries and also all the resource files for the game. This means all the text in the games and stuff like that can be edited without modifying the program itself (assuming you're just doing simple resource swapping).
     
  5. gudenau
    OP

    gudenau Never a unique idea

    Member
    3,203
    1,208
    Jul 7, 2010
    United States
    /dev/random
    Well I don't want animations, and my base for mods is mkds, so that means that I want to render my stuff above the map and players for mods, I always wanted a mod that had controlls on the touch screen, I know it will be hard, but I think it will be neat at the end, I do understand c and asm, I just need a push in the right direction.
     
  6. FAST6191

    FAST6191 Techromancer

    pip Reporter
    23,038
    8,744
    Nov 21, 2005
    Ahh it becomes clearer- the phrasing was enough to attract my attention but not convey quite what you were going for

    Graphics wise- if you have seen subtitles on a video within a game that has been translated then chances are the subs you see are floating on top of the video itself (there are no encoders, public or otherwise, available for any of the DS codecs/video standards that I am aware of). Bonus for you is MKDS is largely 3d so you might have less of a hard time fiddling with priorities (3d is rendered outside the normal VRAM and kicked to a BG layer for the most part).

    Your main problems as I see it will be
    1) Trying to get your code in there. Personally I would look at hooking the 2d display routine and adding it there.
    2) Trying to find the space in VRAM. The DS graphics system can do a lot but it is far from effectively unlimited* and certainly no stranger to having to be optimised to get things to work.
    *It is for the GBA but http://pineight.com/gba/managing-sprite-vram.txt is worth a read and http://gbatemp.net/topic/295053-resize-sprites/ has a tiny bit (mainly a lack of VRAM issue). If you nuke the map and such it will probably be a bit easier.

    2a) would be that there might not be enough space in the vblank timeframe to get things done but cross that bridge when you come to it.

    As for controls what you probably want to be looking at is the Arkanoid paddle for MKDS hack http://gbatemp.net/topic/75311-control-mario-kart-ds-with-arkanoid-paddle/ and http://crackerscrap.com/docs/sfchacktut.html but in reverse.
    Personally I would ignore graphics for now and do the controls as that would be the harder thing and also a good proof of concept to see if it is worth pushing forward.
     
  7. gudenau
    OP

    gudenau Never a unique idea

    Member
    3,203
    1,208
    Jul 7, 2010
    United States
    /dev/random
    I am fine with nuking the map, I could try mapping some of the stuff to odd key presses, thanks for the intrest.