DSTwo programming tips

Discussion in 'Supercard SDK' started by asiekierka, Jan 2, 2011.

  1. asiekierka
    OP

    asiekierka Advanced Member

    Newcomer
    99
    69
    Sep 26, 2007
    Poland
    .
     
    Last edited by asiekierka, May 11, 2017
    Margen67 likes this.
  2. spinal_cord

    spinal_cord Knows his stuff

    Member
    3,010
    580
    Jul 21, 2007
    somewhere
    Don't forget the CPU speed settings as calculated by BassAceGold -

    speed 0 - 120 mhz
    speed 1 - 120 mhz
    speed 2 - freezes, couldn't get a clock speed
    speed 3 - 144 mhz
    speed 4 - 192 mhz
    speed 5 - 204 mhz -unstable, freezes in actual use but somehow survived my loop to get a reading
    speed 6 - 240 mhz
    speed 7 - 264 mhz -unstable, really low performance
    speed 8 - 288 mhz
    speed 9 - 300 mhz
    speed 10 - 336 mhz
    speed 11 - 360 mhz
    speed 12 - 384 mhz
    speed 13 - 396 mhz

    Quite handy to know.
     
    Margen67 likes this.
  3. Jaylen

    Jaylen Member

    Newcomer
    41
    1
    Mar 14, 2009
    United States
    Michigan, USA
    if speeds 2, 5, and 7 are problematic speeds, does the performance actually lower as you go up?
    it says that speed 7 has low performance, so does that get inherited as you go up, or by some weird anomaly it actually works again as you go up?

    i thought 360Mhz was the official clock speed...can you overclock it?
     
  4. BassAceGold

    BassAceGold Testicles

    Member
    495
    124
    Aug 14, 2006
    Canada
    It is just some weird issue with the clock speeds, they do not affect the other speeds. However results could vary on hardware.

    360mhz is the most widely used clock speed in the Supercard plugins but 396 is the highest it can go with no issues.
     
    Margen67 likes this.
  5. Rydian

    Rydian Resident Furvert™

    Member
    27,883
    8,108
    Feb 4, 2010
    United States
    Cave Entrance, Watching Cyan Write Letters
    Margen67 likes this.
  6. Pate

    Pate GBAtemp Regular

    Member
    108
    22
    Dec 23, 2010
    Finland
    Sorry about my blog being so disorganized regarding the DSTwo SDK info..

    About the CPU speeds, the first level 0 seems to work somewhat strangely. In the SDK demo program (and in BAG's list) the speed is 120MHz, however in my DS2x86 the speed gets set to 60MHz when using speed level 0. I also hacked together a small ASM code to return the current CPU speed as an integer, using the same method as the stupid printf_clock() function uses.

    Code:
    ÂÂÂÂ//------
    ÂÂÂÂ// Called from the C code. Get the current CPU speed in MHz.
    ÂÂÂÂ//------
    ÂÂÂÂ.globalÂÂÂÂGetCPUSpeed
    ÂÂÂÂ.typeÂÂÂÂGetCPUSpeed,@function
    GetCPUSpeed:
    ÂÂÂÂlaÂÂÂÂa0, printf_clockÂÂÂÂÂÂÂÂ// Get address of the function
    ÂÂÂÂlhuÂÂÂÂa1, 0(a0)ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ// High halfword of the "_pllout" variable address
    ÂÂÂÂlhÂÂÂÂa0, 4(a0)ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ// a0 = signed low halfword of the "_pllout" address
    ÂÂÂÂsllÂÂÂÂa1, 16
    ÂÂÂÂadduÂÂÂÂa1, a0
    ÂÂÂÂlwÂÂÂÂa1, 4(a1)ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ// a1 = _pllout value
    ÂÂÂÂluiÂÂÂÂv0, 0x431b
    ÂÂÂÂoriÂÂÂÂv0, v0, 0xde83
    ÂÂÂÂmultuÂÂÂÂa1, v0ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ
    ÂÂÂÂmfhiÂÂÂÂv0
    ÂÂÂÂsrlÂÂÂÂv0, v0, 0x12
    ÂÂÂÂjrÂÂÂÂra
    Pate
     
    Margen67 likes this.