Homebrew HzMod - old3DS screen streaming

  • Thread starter Sono
  • Start date
  • Views 247,404
  • Replies 573
  • Likes 102

What should be HorizonModule renamed to?

  • HzMod

    Votes: 11 50.0%
  • HzModule

    Votes: 8 36.4%
  • HzProc

    Votes: 2 9.1%
  • HzDbg

    Votes: 1 4.5%
  • HzDebug

    Votes: 0 0.0%

  • Total voters
    22
  • Poll closed .

Sono

cripple piss
OP
Developer
Joined
Oct 16, 2015
Messages
2,823
Trophies
2
Location
home
XP
9,328
Country
Hungary
Why this project is dead? It is better that NTR (not by perfomance, but open-source is ALWAYS better)

it's not 100% dead, I just don't have time to work on it... I have proposed 2 new streaming formats (png and a custom), but I just don't have the time to add it :/

i have *hax

I wrote that wrong, that means you can record *hax, you still need CFW to use this, because you're installing an unsigned Title to NAND
 
  • Like
Reactions: E1ite007 and Keizel

ThoD

GBATemp Addict (apparently), but more like "bored"
Member
Joined
Sep 8, 2017
Messages
3,631
Trophies
1
Age
27
XP
3,049
Country
Greece
I'm more dead than this project then...

it's not 100% dead, just development is insanely slow... it's actually in the middle of rewrite
Any estimate as to when it will be finished and we can have a release? Even a vague one is fine just to give a general idea...
 

SoslanVanWieren

Banned!
Banned
Joined
Feb 6, 2017
Messages
1,809
Trophies
0
XP
857
Country
Australia
Ntrs now open source so its possible to add your own features to it now so i don't think is is necessary but yeah i want want a cheat menu. for the 3ds thats easy to add cheats to instead of having to make a plugin
 
Last edited by SoslanVanWieren,

Sono

cripple piss
OP
Developer
Joined
Oct 16, 2015
Messages
2,823
Trophies
2
Location
home
XP
9,328
Country
Hungary
Ntrs now open source so its possible to add your own features to it now so i don't think is is necessary but yeah i want want a cheat menu. for the 3ds thats easy to add cheats to instead of having to make a plugin

sadly NTR consumes way too much memory for it to be able to do streaming on old3DS... so yeah, I need to completely rewrite HzMod and reduce the code size
 

ThoD

GBATemp Addict (apparently), but more like "bored"
Member
Joined
Sep 8, 2017
Messages
3,631
Trophies
1
Age
27
XP
3,049
Country
Greece
Its already a side show on the old 3ds so i don't think its worth it anyways.
Assuming you meant slide show, that's not really the case. If you can get as much as 20-24FPS, it will be more than good enough for streaming games that aren't that fast paced (eg: gen 6 Pokemon, turn based strategy ones, visual novels, point and click and so on).
 

thekarter104

Well-Known Member
Member
Joined
Mar 28, 2013
Messages
1,987
Trophies
1
XP
3,015
Country
United States
sadly NTR consumes way too much memory for it to be able to do streaming on old3DS... so yeah, I need to completely rewrite HzMod and reduce the code size

Oh ok. How is the development progress?
Is it possible to output a slightly worse quality to gain FPS? Maybe that's an idea to code it like that way too, ofcourse the video must be watchable.
It's just an idea in an attempt to get more FPS needed for games like Mario. But even a tiny bit helps.
 

Sono

cripple piss
OP
Developer
Joined
Oct 16, 2015
Messages
2,823
Trophies
2
Location
home
XP
9,328
Country
Hungary
Oh ok. How is the development progress?
Is it possible to output a slightly worse quality to gain FPS? Maybe that's an idea to code it like that way too, ofcourse the video must be watchable.
It's just an idea in an attempt to get more FPS needed for games like Mario. But even a tiny bit helps.

I'm working on the HzMod rewrite atm... oh also, I'm already reducing the resolution to half of its size (which means that it's 4x pixels less sent each frame) in order to optimize as much as I can... there will be two modes, one permanently reduces the resolution to 200x120 without any flicker, whereas there will be a 2x2 interlaced mode where the pixels which get sent get alternated in a rotational pattern (which is - to be fair - much better than sending four stripes of image every frame ;P )

anyways, I'm currently heavily working on the HzMod rewrite (named HzModEx) which will be a lot closer to NTR yet it won't make a thousand million copies of itself in every process it wants to poke

anyways, I don't want to blow all the surprises HzModEx is going to have... :tpi:
 

ThoD

GBATemp Addict (apparently), but more like "bored"
Member
Joined
Sep 8, 2017
Messages
3,631
Trophies
1
Age
27
XP
3,049
Country
Greece
@MarcusD I have two little questions about this rewrite. One, will it be able to output native resolution video for non-extended memory games with at least 14-16 FPS? Games of interest for me are RE:R and MH3U... Two, if the output is dumped down, about how many more FPS is it estimated to get compared to native?
 

Sono

cripple piss
OP
Developer
Joined
Oct 16, 2015
Messages
2,823
Trophies
2
Location
home
XP
9,328
Country
Hungary
will it be able to output native resolution video for non-extended memory games with at least 14-16 FPS? Games of interest for me are RE:R and MH3U...

sadly I can't do estimates as I didn't finish hand-crafting all the required assembly yet, but if you have understood my previous post correcly then you should already know that HzModEx will ALWAYS output 200x120 images, no matter what, but there will be two modes to compensate for that; one averages the pixels for true downscale, and one will rotate the pixels, so you'd get a full frame every 4th frame, this way it'll give the illusion of 4x FPS even though in reality it can't put out this much due to CPU and wifi speed limitations

as for extended and non-extended, it shouldn't make a rat's ass difference, the only thing matters is how much RAM the game requires on startup (softlock on Nintendo 3DS logo screen or not)

if the output is dumbed down, about how many more FPS is it estimated to get compared to native?

sadly I can't calculate an estimate (as I stated in my previous answer), but the best possible FPS can be approximated using the FPS = (268111856 * max possible CPU usage of network thread) / (const amount of CPU cycles + (200 * 120 * clock cycles needed per pixel)) formula once I finish hand-crafting the assembly code for all the screen modes. this means that in the worst case (15% max possible CPU time and *very* unoptimized code) it equates to FPS = (268111856 * 0.15) / (50000 + (200 * 120 * 120)) ~= 13.72FPS if not counting the slow wifi card speed. again, don't count this as a response, count this as the worst possible scenario

though if you were really only asking about the difference between 400x240 and 200x120, it's almost 4th processing and/or wifi power required than with 400x240... I said almost, because the downscaling/memory copying requires CPU cycles, so in reality it might only be a 2x gain at worst... but it's *not* possible to reach 4x performance due to the mentioned CPU downscaling algorhythms

...as for new3DS, it's a simple 3x multiplier because the CPU is clocked at 3x, and that surprisingly also makes wifi 3x faster meaning the nwm sysmodule itself is limiting the wifi speed due to how awfully written it is
 
Last edited by Sono, , Reason: I'm a paranoid retard

Sono

cripple piss
OP
Developer
Joined
Oct 16, 2015
Messages
2,823
Trophies
2
Location
home
XP
9,328
Country
Hungary
Just a half-assed update:
  • halved memory usage (Mario Maker 3DS works now)
  • reorgznized code flow for extra FPS (up to 2.5FPS increase)
  • reverted HorizonScreen version (yay for entering the IP address from console!)
  • optimized screen tearing on old3DS (in some low-CPU games screen tearing is almost nonexistant)
  • removed motion sickness on old3DS (if screen tearing is bad then it will only update the dispay when all stripes in a frame are received)
  • added autoreconnect (it will autoreconnect as long as your 3DS or your network doesn't die)
  • hardcoded top screen for optimized code flow (multiscreen support increases binary size, RAM usage, and decreases performance JUST BY EXISTING)
Please note that some of these "perks" are only available when using Luma9 due to Luma9 reimplementing things and thus reducing the overall system memory usage.
Please note that the halved memory usage is only noticable when using NTR or InputRedirection is by using Rosalina to launch HzMod due to HzLoad taking up too much memory to launch HzMod. Halved memory usage applies to most if not all extended memory games regardless of the launcher used.

Usage:
  1. install HorizonM.cia (base module, not launchable from Home Menu due to not showing up)
  2. install HzLoad.cia (launcher, this is not the main executalbe, this is just for bootstrapping the module)
  3. install HzLoad_HIMEM.cia on old3DS/2DS if you plan on using extended memory (80M) games
  4. open HzLoad of your choice
  5. open a console (SHIFT-RIGHTCLICK in the directory where HorizonScreen is extracted)
  6. HorizonScreen-PC <ipaddress>
    • on my home network I run HorizonScreen-PC 192.168.1.65
  7. set JPEG quality with UP/DOWN keyboard buttons in HorizonScreen
  8. press L on the keyboard to connect (or START if you have a PS2 controller plugged into the system)
If you don't want to go back to the first post to find the download link then take this: https://puu.sh/zgjTU/3acfc28fa5.zip
 
Last edited by Sono,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Xdqwerty @ Xdqwerty: see ya