Can hacking open up the other 400 pixels?

Discussion in '3DS - Homebrew Development and Emulators' started by spyro3dsguy, Nov 29, 2013.

  1. spyro3dsguy
    OP

    spyro3dsguy GBAtemp Fan

    Member
    304
    62
    Nov 28, 2011
    Canada
    I hear quite frequently that the 3DS horizontal screen pixels are 800 rectangular pixels, doubled together by standard software for the 400x240 resolution in 2D mode. But it seems to be under debate weather it might be possible to address the these individual sub-pixels 1:1 to up the resolution. Do you guys think that's possible with hacking or homebrew? what would 800 rectangular pixels even look like on a screen?
     
    Margen67 likes this.
  2. frogboy

    frogboy lacking both style and grace

    Member
    2,381
    1,426
    Dec 6, 2011
    United States
    I'm pretty sure the purpose of the other 400 pixels is only to make 3D possible, and they don't truly increase the "resolution" in any way.
     
  3. DinohScene

    DinohScene Feed Dino to the Sharks

    Member
    GBAtemp Patron
    DinohScene is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    16,526
    13,150
    Oct 11, 2011
    Antarctica
    В небо
    Sub pixels are the pixels which make up one actual pixel.
    And the actual pixels is what make up an image.
    subpixels are just 3 or 4 basic colours.
     
  4. spyro3dsguy
    OP

    spyro3dsguy GBAtemp Fan

    Member
    304
    62
    Nov 28, 2011
    Canada
    But if an image was specifically designed so that each colour only cover each sub pixel instead of two, wouldn't it make images clearer even in the slightest?
     
  5. Cyan

    Cyan GBATemp's lurking knight

    Global Moderator
    18,696
    8,991
    Oct 27, 2002
    France
    Engine room, learning
    I'm pretty sure you can increase the image resolution by addressing all 800 pixels in 2D mode.
    Street fighter game hasn't an option do disable 3D to increase resolution?

    It must be programmed in the game so the game can provide more data to the screen, you can't just disable the 3D using the slider or a hack.
    The game must output 800 pixels wide, or else you'll see each vertical lined doubled. You can't display more details on a screen if the game doesn't even have the details.

    It's like playing a NES game on WiiU, it's still pixelized, it doesn't create a 1080p game, only the display is 1080 not the streamed image from the game.


    Edit:
    I was wrong.
    Street fighter option is to disable 3D to increase frame rate, but still render in 400*240 (a single screen buffer of 400*240 is used, the second screen use the same pixels)
     
    filfat, mrolive and Margen67 like this.
  6. spyro3dsguy
    OP

    spyro3dsguy GBAtemp Fan

    Member
    304
    62
    Nov 28, 2011
    Canada
    Hmmm, but the key thing is that it IS possible. I mostly meant homebrew and videos from a flashcart or CFW.
     
  7. Arras

    Arras GBAtemp Guru

    Member
    5,880
    2,713
    Sep 14, 2010
    Netherlands
    Why would 800x240 videos be useful though? The resolution is probably too weird to be actually useful for something. That said I'm guessing it would be possible, but how hard it is is another matter entirely.
     
  8. spyro3dsguy
    OP

    spyro3dsguy GBAtemp Fan

    Member
    304
    62
    Nov 28, 2011
    Canada
    800x240 may make the screen more crisp. 800 horizontal pixels seems like a pretty big jump when consider the screen size; would result in higher pixel density. Also the bold is another reason I asked. Would the resolution be lopsided or something since it's usually 800x480 for most screens? it can't be that bad.
     
  9. techboy

    techboy GBAtemp Advanced Maniac

    Member
    1,720
    21
    Mar 15, 2009
    United States
    Pennsylvania
    800x480 has an odd/non-standard 5:3 aspect ratio (is there a monitor that actually supports this without black bars?).

    Do you mean 800x600 (4:3 ratio), which used to be a common PC monitor resolution?

    As for usefulness, I can't imagine 800x240 being good for many applications.
     
  10. Yamagushi

    Yamagushi GBAtemp Regular

    Member
    276
    115
    May 2, 2013
    United States
    No. You can't view both sets with a single eye. This conversation is utter nonsense.
     
    Lucifer666 likes this.
  11. IMRAN_PETER

    IMRAN_PETER GBAtemp Regular

    Member
    147
    10
    Jul 17, 2013
    Bulgaria
    Meadow
    I think, 3DS display is layered LCD. Upper display contains 400x240 & lower contains 400x240. this is a tech which used in creating glassless 3D. So, its may not be like what you people thinking.
     
  12. profi200

    profi200 Banned

    Banned
    330
    216
    Sep 3, 2011
    Gambia, The
    Have not got it to display 800x240 pixels in 2D mode so far. The 3DS displays some strange shit, but not my black and white pixel rows.

    It seems, it doesn't work. Only got shit displayed:

    [​IMG]

    Code:
    .global _start
    .section .boot
    .arm
    _start:
     
      ldr r0, =0xFFFD6A04
      ldr r1, =0x01000000
      str r1, [r0]
     
      ldr r0, =0xFFFCE45C
      ldr r1, =0xF0002003  @ width = 800, hight = 240
      str r1, [r0]
     
      ldr r0, =0xFFFCE470
      ldr r1, =0x00002042  @ 01000010001000000000000000000000
      str r1, [r0]
     
      ldr r0, =0xFFFCE478
      ldr r1, =0x00000000  @ display first framebuffer
      str r1, [r0]
     
      ldr r0, =0xFFFCE490
      ldr r1, =0x60090000  @ 2400
      str r1, [r0]
     
      ldr r3, =0xFFFCE468
      ldr r3, [r3]
      ldr r0, =0xD0000000
      add r3, r0          @ adress
     
      mov r0, #0
      mov r1, #0x00        @ black
      mov r2, #0xFF        @ white
      mov r4, #0x2D0      @ size of 1 pixel row
      mov r5, #0
     
     
    loop1:
      strb r1, [r3, r0]
      add r0, #1
      cmp r0, r4
      bne loop1
      add r3, r4
      mov r0, #0
    loop2:
      strb r2, [r3, r0]
      add r0, #1
      cmp r0, r4
      bne loop2
      add r3, r4
      mov r0, #0
      add r5, #1
      cmp r5, #400
      bne loop1
     
      b .
     
  13. M[u]ddy

    M[u]ddy GBAtemp Advanced Fan

    Member
    511
    47
    Sep 4, 2009
    Germany
    NRW
    Yes you can in 2D mode.
    Warning: Spoilers inside!
     
    SuzieJoeBob and mmn like this.
  14. spyro3dsguy
    OP

    spyro3dsguy GBAtemp Fan

    Member
    304
    62
    Nov 28, 2011
    Canada
    Yeah, my bad, 800x600. Would the aspect ratio of 800x240 be too off, or would the sub pixels being twice as tall as they are wide fix this problem? Also in practicality (horizontally crisp, but vertically full of jaggies)?
     
  15. spyro3dsguy
    OP

    spyro3dsguy GBAtemp Fan

    Member
    304
    62
    Nov 28, 2011
    Canada
    This.
     
  16. Foxi4

    Foxi4 On the hunt...

    pip Reporter
    23,677
    21,718
    Sep 13, 2009
    Poland
    Gaming Grotto
    To my knowlege, there are three ways of setting up the screen available to developers:
    • 2x400x240 in 3D Mode (default)
    • 800x240 in 2D Mode (default)
    • 400x240 in 2D Mode with a faster framerate (optional) as seen in "Super Street Fighter IV 3D"
    The 3D effect is not achieved using sub-pixels - the screen is physically 800x240, there's nothing there to "unlock" so to speak.
     
    Margen67 likes this.
  17. profi200

    profi200 Banned

    Banned
    330
    216
    Sep 3, 2011
    Gambia, The
    See my post above.
     
  18. Foxi4

    Foxi4 On the hunt...

    pip Reporter
    23,677
    21,718
    Sep 13, 2009
    Poland
    Gaming Grotto
    You can't display 800x240 in 3D mode - your 3D diode is lit up, so I'm assuming you forgot about that.

    EDIT: Consider this - the 3DS creates 3D images using two interlaced 400x240 frames and displaying a paralax barrier on the black and white LCD which is stuck on-top. If you divide the image you want to display into two frames (Frame 1 being rows divisible by 2 and row 0, Frame 2 being rows not divisible by 2) and pass them into the two frame buffers without enabling the barrier, you will effectively display a 800x240 image using said two frames. It's "exploiting the system" a bit, but it does the job.
     
    TerryG likes this.
  19. profi200

    profi200 Banned

    Banned
    330
    216
    Sep 3, 2011
    Gambia, The
    No, that's not a problem. The entire system is freezed and i can set all manually (i can disable the 3D diode, but for that i need to fight with I2C :D)

    According to yellows8 there is currently no way to display 800x240 pixels in 2D mode.

    €:
    Have not tried to disable parallax (I2C again...), but on a running system the GSP module disables 3D mode, if i disable the parallax barrier.
     
  20. Foxi4

    Foxi4 On the hunt...

    pip Reporter
    23,677
    21,718
    Sep 13, 2009
    Poland
    Gaming Grotto
    Look at your code. You set the frame buffer to 800x240 - that's not possible, a single frame is up to 400x240. Why not try setting up two frame buffers at 400x240 and then trying to display stuff? ;)

    Just an idea. Mind you, I know f***-all about ASM or the 3DS's infrastructure, I'm just using common sense based on the 3DS's screen's built.