Giter VIP home page Giter VIP logo

Comments (16)

Lectem avatar Lectem commented on August 10, 2024

Did you copy the .xml ? It should be added to the readme..

from 3ds-examples.

thedevleon avatar thedevleon commented on August 10, 2024

I did that, but it didn't seem to work.

So i've gotten as far as to build a CIA with the necessary mvd stuff and getting a successfull mvd init - and while mvd_colorconvert works just fine now - I'm having issues with mvd_video, in particular mvdstdProcessVideoFrame() returning 0xC920181A.

I've added some debug statements, and I can tell mvdstdProcessVideoFrame doesn't get called up until video_pos is counted up to 0x1e - and at video_pos being 0x1e (and nalcount is 0x01, cur_nalunit_pos is 0x1c and prev_nalunit_pos is 0x00) mvdstdProcessVideoFrame get's called and returns with a 0xc920181a. (which means "The session was closed by the other process." according to 3dsbrew).

Full message is: "mvdstdProcessVideoFrame() at NAL-unit offset 0x00000000 size 0x0000001b returned: 0xc920181a. remaining_size=0x00000000".

Running either color-format-conversion or video after this just freezes the 3DS.

from 3ds-examples.

yellows8 avatar yellows8 commented on August 10, 2024

Can you upload your video.h264, if it's not copyrighted?(You might have crashed the sysmodule)

from 3ds-examples.

thedevleon avatar thedevleon commented on August 10, 2024

Sure, I used Big Buck Bunny.

video1.h264 is generated from big_buck_bunny_480p_h264.mov with avconv -i big_buck_bunny_480p_h264.mov -ss 00:00:20 -t 00:00:30 -s 240x400 -vf transpose=1 video1.h264

video2.h264 is generated from big_buck_bunny_480p_h264.mov with avconv -i big_buck_bunny_480p_stereo.avi -ss 00:00:20 -t 00:00:30 -s 240x400 -vf transpose=1 video2.h264

I should also add that I'm loading from the sd card instead of the romfs - since I had trouble building it.

I just changed it to f = fopen("sdmc:/video.h264", "r");

Archive.zip

from 3ds-examples.

yellows8 avatar yellows8 commented on August 10, 2024

Those play fine here.

from 3ds-examples.

thedevleon avatar thedevleon commented on August 10, 2024

How are you running the example?
Could you tell me a bit more about your setup?

Right now I'm using makerom with the following rsf file attached below to make a cia and installing it via FBI. I'm also running the latest stable Luma and A9LH. Running the dev Luma gives me another error (LumaTeam/Luma3DS#200 (comment)).

BasicInfo:
  Title                   : "Moonlight Client"
  ProductCode             : "CTR-P-MOON" # You can make this whatever you want, it doesn't have to follow the Nintendo standard
  Logo                    : Nintendo # Nintendo / Licensed / Distributed / iQue / iQueForSystem

#RomFs:
  # Specifies the root path of the read only file system to include in the ROM.
#  RootPath                : $(APP_ROMFS)

TitleInfo:
  Category                : Application
  UniqueId                : 0xF3F3 #Something like 0x1337, but you can make it whatever you want, as long as it's a hexadecimal number (probably best to make it something actually unique though!)

Option:
  UseOnSD                 : true # true if App is to be installed to SD
  FreeProductCode         : true # Removes limitations on ProductCode
  MediaFootPadding        : false # If true CCI files are created with padding
  EnableCrypt             : false # Enables encryption for NCCH and CIA
  EnableCompress          : true # Compresses where applicable (currently only exefs:/.code)
AccessControlInfo:
  CoreVersion                   : 2

  # Exheader Format Version
  DescVersion                   : 2
  # Minimum Required Kernel Version (below is for 4.5.0)
  ReleaseKernelMajor            : "02"
  ReleaseKernelMinor            : "33"

  # ExtData
  UseExtSaveData                : false # enables ExtData
  #ExtSaveDataId                : 0x300 # only set this when the ID is different to the UniqueId

  # FS:USER Archive Access Permissions
  # Uncomment as required
  FileSystemAccess:
   - CategorySystemApplication
   - CategoryHardwareCheck
   - CategoryFileSystemTool
   - Debug
   - TwlCardBackup
   - TwlNandData
   - Boss
   - DirectSdmc
   - Core
   - CtrNandRo
   - CtrNandRw
   - CtrNandRoWrite
   - CategorySystemSettings
   - CardBoard
   - ExportImportIvs
   - DirectSdmcWrite
   - SwitchCleanup
   - SaveDataMove
   - Shop
   - Shell
   - CategoryHomeMenu
   - SeedDB

  IoAccessControl:
   - FsMountNand
   - FsMountNandRoWrite
   - FsMountTwln
   - FsMountWnand
   - FsMountCardSpi
   - UseSdif3
   - CreateSeed
   - UseCardSpi

  # Process Settings
  MemoryType                    : Application # Application/System/Base
  SystemMode                    : 64MB # 64MB(Default)/96MB/80MB/72MB/32MB
  IdealProcessor                : 0
  AffinityMask                  : 1
  Priority                      : 16
  MaxCpu                        : 0x9E # Default
  HandleTableSize               : 0x200
  DisableDebug                  : false
  EnableForceDebug              : false
  CanWriteSharedPage            : true
  CanUsePrivilegedPriority      : false
  CanUseNonAlphabetAndNumber    : true
  PermitMainFunctionArgument    : true
  CanShareDeviceMemory          : true
  RunnableOnSleep               : false
  SpecialMemoryArrange          : true

  # New3DS Exclusive Process Settings
  SystemModeExt                 : Legacy # Legacy(Default)/124MB/178MB  Legacy:Use Old3DS SystemMode
  CpuSpeed                      : 804MHz # 256MHz(Default)/804MHz
  EnableL2Cache                 : true # false(default)/true
  CanAccessCore2                : true

  # Virtual Address Mappings
  IORegisterMapping:
   - 1ff00000-1ff7ffff   # DSP memory
  MemoryMapping:
   - 1f000000-1f5fffff:r # VRAM

  # Accessible SVCs, <Name>:<ID>
  SystemCallAccess:
    ControlMemory: 1
    QueryMemory: 2
    ExitProcess: 3
    GetProcessAffinityMask: 4
    SetProcessAffinityMask: 5
    GetProcessIdealProcessor: 6
    SetProcessIdealProcessor: 7
    CreateThread: 8
    ExitThread: 9
    SleepThread: 10
    GetThreadPriority: 11
    SetThreadPriority: 12
    GetThreadAffinityMask: 13
    SetThreadAffinityMask: 14
    GetThreadIdealProcessor: 15
    SetThreadIdealProcessor: 16
    GetCurrentProcessorNumber: 17
    Run: 18
    CreateMutex: 19
    ReleaseMutex: 20
    CreateSemaphore: 21
    ReleaseSemaphore: 22
    CreateEvent: 23
    SignalEvent: 24
    ClearEvent: 25
    CreateTimer: 26
    SetTimer: 27
    CancelTimer: 28
    ClearTimer: 29
    CreateMemoryBlock: 30
    MapMemoryBlock: 31
    UnmapMemoryBlock: 32
    CreateAddressArbiter: 33
    ArbitrateAddress: 34
    CloseHandle: 35
    WaitSynchronization1: 36
    WaitSynchronizationN: 37
    SignalAndWait: 38
    DuplicateHandle: 39
    GetSystemTick: 40
    GetHandleInfo: 41
    GetSystemInfo: 42
    GetProcessInfo: 43
    GetThreadInfo: 44
    ConnectToPort: 45
    SendSyncRequest1: 46
    SendSyncRequest2: 47
    SendSyncRequest3: 48
    SendSyncRequest4: 49
    SendSyncRequest: 50
    OpenProcess: 51
    OpenThread: 52
    GetProcessId: 53
    GetProcessIdOfThread: 54
    GetThreadId: 55
    GetResourceLimit: 56
    GetResourceLimitLimitValues: 57
    GetResourceLimitCurrentValues: 58
    GetThreadContext: 59
    Break: 60
    OutputDebugString: 61
    ControlPerformanceCounter: 62
    CreatePort: 71
    CreateSessionToPort: 72
    CreateSession: 73
    AcceptSession: 74
    ReplyAndReceive1: 75
    ReplyAndReceive2: 76
    ReplyAndReceive3: 77
    ReplyAndReceive4: 78
    ReplyAndReceive: 79
    BindInterrupt: 80
    UnbindInterrupt: 81
    InvalidateProcessDataCache: 82
    StoreProcessDataCache: 83
    FlushProcessDataCache: 84
    StartInterProcessDma: 85
    StopDma: 86
    GetDmaState: 87
    RestartDma: 88
    DebugActiveProcess: 96
    BreakDebugProcess: 97
    TerminateDebugProcess: 98
    GetProcessDebugEvent: 99
    ContinueDebugEvent: 100
    GetProcessList: 101
    GetThreadList: 102
    GetDebugThreadContext: 103
    SetDebugThreadContext: 104
    QueryDebugProcessMemory: 105
    ReadProcessMemory: 106
    WriteProcessMemory: 107
    SetHardwareBreakPoint: 108
    GetDebugThreadParam: 109
    ControlProcessMemory: 112
    MapProcessMemory: 113
    UnmapProcessMemory: 114
    CreateCodeSet: 115
    CreateProcess: 117
    TerminateProcess: 118
    SetProcessResourceLimits: 119
    CreateResourceLimit: 120
    SetResourceLimitValues: 121
    AddCodeSegment: 122
    Backdoor: 123
    KernelSetState: 124
    QueryProcessMemory: 125

  # Service List
  # Maximum 34 services (32 if firmware is prior to 9.6.0)
  ServiceAccessControl:
   - APT:U
   - ac:u
   - am:net
   - boss:U
   - cam:u
   - cecd:u
   - cfg:nor
   - cfg:u
   - csnd:SND
   - dsp::DSP
   - frd:u
   - fs:USER
   - gsp::Gpu
   - gsp::Lcd
   - hid:USER
   - http:C
   - ir:rst
   - ir:u
   - ir:USER
   - mic:u
   - ndm:u
   - news:s
   - nwm::EXT
   - nwm::UDS
   - ptm:sysm
   - ptm:u
   - pxi:dev
   - soc:U
   - ssl:C
   - y2r:u
   - mvd:STD


SystemControlInfo:
  SaveDataSize: 0KB # Change if the app uses savedata
  RemasterVersion: 2
  StackSize: 0x40000

  # Modules that run services listed above should be included below
  # Maximum 48 dependencies
  # <module name>:<module titleid>
  Dependency:
    ac: 0x0004013000002402
    #act: 0x0004013000003802
    am: 0x0004013000001502
    boss: 0x0004013000003402
    camera: 0x0004013000001602
    cecd: 0x0004013000002602
    cfg: 0x0004013000001702
    codec: 0x0004013000001802
    csnd: 0x0004013000002702
    dlp: 0x0004013000002802
    dsp: 0x0004013000001a02
    friends: 0x0004013000003202
    gpio: 0x0004013000001b02
    gsp: 0x0004013000001c02
    hid: 0x0004013000001d02
    http: 0x0004013000002902
    i2c: 0x0004013000001e02
    ir: 0x0004013000003302
    mcu: 0x0004013000001f02
    mic: 0x0004013000002002
    ndm: 0x0004013000002b02
    news: 0x0004013000003502
    #nfc: 0x0004013000004002
    nim: 0x0004013000002c02
    nwm: 0x0004013000002d02
    pdn: 0x0004013000002102
    ps: 0x0004013000003102
    ptm: 0x0004013000002202
    #qtm: 0x0004013020004202
    ro: 0x0004013000003702
    socket: 0x0004013000002e02
    spi: 0x0004013000002302
    ssl: 0x0004013000002f02
    mvd: 0x0004013020004102

from 3ds-examples.

yellows8 avatar yellows8 commented on August 10, 2024

Title-takeover with system-settings + patched exheader.

from 3ds-examples.

thedevleon avatar thedevleon commented on August 10, 2024

I've edited the xml accordingly to takeover System Settings.
However, now the first time calling either color-format-conversion or the video one gives me a 0xd8e06406 at mvdstdInit().

Calling either for a couple times still gives me a 0xd8e06406, but eventually I get a successful init but a 0xfffffffd for mvdstdProcessVideoFrame or mvdstdConvertImage.

from 3ds-examples.

yellows8 avatar yellows8 commented on August 10, 2024

"patched exheader" cough

"I've edited the xml accordingly" The one in the repo was fine already.....

from 3ds-examples.

thedevleon avatar thedevleon commented on August 10, 2024

Thanks.
I setup corbenik with svcBackoor fixup as well as svc_permission_chk_dis, however I'm still only getting as far as 0xc920181a.

Can you elaborate on how you are patching the exheader?

from 3ds-examples.

yellows8 avatar yellows8 commented on August 10, 2024

It's just with mvd added to the sysmodule TID list + serv-access-control....

from 3ds-examples.

thedevleon avatar thedevleon commented on August 10, 2024

Yeah that's what I did in the above rsf file as well. Hmm.

EDIT: Also just confirmed by extracting the exheader just to make sure.

from 3ds-examples.

thedevleon avatar thedevleon commented on August 10, 2024

I think you're right, something is crashing the mvd module. I'm able to initialize, so this shouldn't be an issue of access to the mvd service anymore.

Any idea what might be crashing it?

EDIT: Btw, on which firmware are you running this?

EDIT2: Mind sharing your rsf, 3dsx or CIA to see if it works with that on my system?

from 3ds-examples.

TuxSH avatar TuxSH commented on August 10, 2024

Doesn't the N3DS web browser use mvd? You could test to see if it works...

from 3ds-examples.

WinterMute avatar WinterMute commented on August 10, 2024

Is this still relevant now rosalina is a thing?

from 3ds-examples.

fincs avatar fincs commented on August 10, 2024

Rosalina already gives you mvd access by default, and the mvd examples work. On the other hand, hax 2.x does not have mvd access; fixing that would kind of be outside the scope of hax 2.x as it would require either using a kernel exploit or doing a (messy) spider takeover which may conflict with other things such as APT.

from 3ds-examples.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.