Homebrew Why does Team Twiizers block the HBC in Neek?

JoostinOnline

Certified Crash Test Dummy
OP
Member
Joined
Apr 2, 2011
Messages
11,005
Trophies
1
Location
The Twilight Zone
Website
www.hacksden.com
XP
4,339
Country
United States
I understand why they don't want it to be packed as a wad, because that would allow people to sell it as a scam. What I don't get is them not wanting people to use the INSTALLER in an emunand.

Ideally I would like a link to somewhere they have addressed it (I couldn't find anything), but if anybody has guesses on their reasons I'd like to hear them.
 

JoostinOnline

Certified Crash Test Dummy
OP
Member
Joined
Apr 2, 2011
Messages
11,005
Trophies
1
Location
The Twilight Zone
Website
www.hacksden.com
XP
4,339
Country
United States
Because of the same reason SNEEK was deleted from Wiibrew. For them SNEEK is a warez launcher and thus they are not supporting it.
So it's the same thing as with a patched IOS? They are just unable to see past the potential for loading (or installing in some cases) illegal backups?
 

JoostinOnline

Certified Crash Test Dummy
OP
Member
Joined
Apr 2, 2011
Messages
11,005
Trophies
1
Location
The Twilight Zone
Website
www.hacksden.com
XP
4,339
Country
United States
To protect against modifications by scammers to hide the fact that they're selling somebody else's product.
But if you run the installer you would see the scam screen, so they couldn't hide it. Preventing people from installing the HBC as a wad in a real NAND isn't the same thing as blocking the official installer in an emunand.
 

tueidj

I R Expert
Member
Joined
Jan 8, 2009
Messages
2,569
Trophies
0
Website
Visit site
XP
999
Country
"Each version"? All two of them?
What is the "new way" that you're talking about?

Edit: If you're going to use hindsight to edit your posts and manipulate the conversation, this is a waste of time.
 

JoostinOnline

Certified Crash Test Dummy
OP
Member
Joined
Apr 2, 2011
Messages
11,005
Trophies
1
Location
The Twilight Zone
Website
www.hacksden.com
XP
4,339
Country
United States
"Each version"? All two of them?
What is the "new way" that you're talking about?
See the edit I made.

We can't run v0.7+ installers (never tried v0.6 or below) in neek, and when it turned out you could dump v1.0.7 and the ticket from a real nand for an emunand (although there is still that annoying save issue), it just happened to get blocked in v1.0.8.
 

giantpune

Well-Known Member
Member
Joined
Apr 10, 2009
Messages
2,860
Trophies
0
XP
213
Country
United States
the installer wont work in sneek. its just the way it works. it wouldnt work in the first place, so they made it fail earlier on purpose.
 

obcd

Well-Known Member
Member
Joined
Apr 5, 2011
Messages
1,594
Trophies
0
XP
432
Country
Belgium
I understand that the installer contains some magic to get the homebrew channel on the nand.
I don't understand what is so special about the homebrew channel itself compared to any other channel application capable of launching homebrew?
The reason I ask is because I am thinking of using the homebrew filter on my emulated nands.
I am curious why people really want the HBC, specially now that the HBF became open source.
Postloader is a valid alternative as well, but the Homebrew Filter has more resemblance to the homebrew channel.
It also might fix the return to launcher feature when a Homebrew uses exit(0); I don't think postloader already has that feature.
 

obcd

Well-Known Member
Member
Joined
Apr 5, 2011
Messages
1,594
Trophies
0
XP
432
Country
Belgium
hbf and postloader are having wiiload support. Just not from the usbgecko.
I assume the majority of users isn't ever going to use that feature?
 

giantpune

Well-Known Member
Member
Joined
Apr 10, 2009
Messages
2,860
Trophies
0
XP
213
Country
United States
it would work very similarly to the network wiiload. replace the network reading with
Code:
int usb_recvbuffer_safe_ex(s32 chn,void *buffer,int size, int retries);

hbc is using 1 for the channel (chn), which is slot B, and 1000 for retries.
 

Excelsiior

Well-Known Member
Member
Joined
Sep 13, 2009
Messages
274
Trophies
0
Website
www.nanolx.org
XP
328
Country
Germany
Code:
diff --git a/source/Network/tcp.cpp b/source/Network/tcp.cpp
index efaecac..00eac47 100644
--- a/source/Network/tcp.cpp
+++ b/source/Network/tcp.cpp
@@ -49,15 +49,15 @@ int oport(unsigned short portnum)

// wait for a connection to occur on a socket created with oport()
int get_connection(int s, struct sockaddr_in *sa)
-{
+{
int t;				  /* socket of connection */
//  struct sockaddr_in sa;
sa->sin_len = 8;
sa->sin_family = AF_INET;
u32 buflen = 8;
t = net_accept(s,(struct sockaddr *)sa, &buflen);
-
-/*
+
+/*
debug("Incoming connection");
printf("Incoming connection from %d.%d.%d.%d\n",
(sa->sin_addr.s_addr >> 24) & 0xFF,
@@ -118,8 +118,8 @@ static void * tcp_callback(void *arg)
u8 *bfr[READ_SIZE];
bool compress = false;
struct sockaddr_in addr;
-
- redo:
+
+ redo:
s32 listen = oport(4299);
while(1)
{
@@ -137,10 +137,10 @@ static void * tcp_callback(void *arg)
if(client > 0)
{
//  client connected
-
+
GuiImage * progressImg = new GuiImage(new GuiImageData(Theme.progress));
progressImg->SetAlignment(ALIGN_CENTRE, ALIGN_MIDDLE);
-  
+
GXColor ImgColor[4];

ImgColor[0] = (GXColor){Theme.progressbar_color1_1, Theme.progressbar_color1_2, Theme.progressbar_color1_3, 200};  // oben links
@@ -148,19 +148,20 @@ static void * tcp_callback(void *arg)
ImgColor[2] = (GXColor){Theme.progressbar_color2_1, Theme.progressbar_color2_2, Theme.progressbar_color2_3, 200};  // unten rechts
ImgColor[3] = ImgColor[2];  // unten links

-  
+
GuiImage * progressbarImg = new GuiImage(0, 38, (GXColor *) &ImgColor);
progressbarImg->SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE);
progressbarImg->SetPosition((screenwidth - progressImg->GetWidth()) /2 +36, 2);
-  
+
GuiText * PercentTxt = new GuiText("0%", 20, (GXColor){Theme.text_1, Theme.text_2, Theme.text_3, 255});
PercentTxt->SetAlignment(ALIGN_RIGHT, ALIGN_MIDDLE);
PercentTxt->SetPosition(-((screenwidth - progressImg->GetWidth()) /2 +36), 38);
-  
+

float Percent = 0.0f;
int temp = read_data(client, (char *)&read, 4);
-	if(temp < 0)
+	int temp2 = usb_recvbuffer_safe_ex(1, (char *)&read, 4, 1);
+	if(temp < 0 && temp2 < 0)
{
//   printf("read_data() error while reading check\n");
net_close(client);
@@ -176,53 +177,86 @@ static void * tcp_callback(void *arg)
mainWindow->Append(PercentTxt);
ResumeGui();
}
-	
+
if(read == 1212242008) // 1212242008 -> 48415858 -> HAXX -> wiiload
{
compress = true;
//   printf("HAXX\n");
-	
-	 read_data(client, (char *)&read, 4);
+
//   int WIILOAD_VERSION_MAYOR = (u8)(((u16)(read >> 16)) >> 8);
//   int WIILOAD_VERSION_MINOR = (u8)(((u16)(read >> 16)) & 0xFF);
//   int a	  = (u8)(((u16)(read & 0xFFFF)) >> 8);
//   int b	  = (u8)(((u16)(read & 0xFFFF)) & 0xFF);
-	
+
//   printf("wiiload v%x.%x\n", WIILOAD_VERSION_MAYOR, WIILOAD_VERSION_MINOR);
//   printf("args %x08\n", read);
//   printf("args a=%x  b=%x\n", a, b);
-	
-	 read_data(client, (char *)&size, 4);
-	 read_data(client, (char *)&uncfilesize, 4);
+
+	 if(temp < 0)
+	 {
+	  usb_recvbuffer_safe_ex(1, (char *)&read, 4, 1);
+	  usb_recvbuffer_safe_ex(1, (char *)&size, 4, 1);
+	  usb_recvbuffer_safe_ex(1, (char *)&uncfilesize, 4, 1);
+	 }
+	 else
+	 {
+	  read_data(client, (char *)&read, 4);
+	  read_data(client, (char *)&size, 4);
+	  read_data(client, (char *)&uncfilesize, 4);
+	 }
+
}
else
size = read;
-	
+
offset = 0;
-	while(offset < size && (read = read_data(client, (char *)bfr, (size - offset) > READ_SIZE ? READ_SIZE : (size - offset))) > 0)
+
+	if(temp < 0)
{
-	 memcpy(data + offset, bfr, READ_SIZE);
-	 offset += read;
-	
-	 Percent = 100.0f * offset/size;
-	 progressbarImg->SetSize(Percent*3.27f, 38);
-	
-	 char buffer[6];
-	 sprintf(buffer, "%i %%", (int)Percent);
-	 PercentTxt->SetText(buffer);
+
+	 while(offset < size && (read = usb_recvbuffer_safe_ex(1, (char *)bfr, (size - offset) > READ_SIZE ? READ_SIZE : (size - offset), 1)) > 0)
+	 {
+	  memcpy(data + offset, bfr, READ_SIZE);
+	  offset += read;
+
+	  Percent = 100.0f * offset/size;
+	  progressbarImg->SetSize(Percent*3.27f, 38);
+
+	  char buffer[6];
+	  sprintf(buffer, "%i %%", (int)Percent);
+	  PercentTxt->SetText(buffer);
+	 }
+
+
}
+	else
+	{
+	 while(offset < size && (read = read_data(client, (char *)bfr, (size - offset) > READ_SIZE ? READ_SIZE : (size - offset))) > 0)
+	 {
+	  memcpy(data + offset, bfr, READ_SIZE);
+	  offset += read;
+
+	  Percent = 100.0f * offset/size;
+	  progressbarImg->SetSize(Percent*3.27f, 38);
+
+	  char buffer[6];
+	  sprintf(buffer, "%i %%", (int)Percent);
+	  PercentTxt->SetText(buffer);
+	 }
+	}
+
usleep(100000);
net_close(client);
net_close(listen);
-  
+
if(compress)
{
u8 *zdata = (u8 *) malloc(uncfilesize);
if(!zdata)
return NULL;
-	
+
uLongf zdatalen = uncfilesize;
-	
+
int res = uncompress (zdata, &zdatalen, data, (uLongf)size);

if (res != Z_OK)
@@ -238,13 +272,13 @@ static void * tcp_callback(void *arg)
// free(zdata);
}
}
-  
+
CopyHomebrewMemory(data, 0, size);
if(data)
free(data);
//  if(zdata)
//   free(zdata);
-	
+
mainWindow->Remove(PercentTxt);
mainWindow->Remove(progressbarImg);
mainWindow->Remove(progressImg);

quick'n'dirty™ -- try this patch against the latest GIT version...
(thanks to my editor settings it contains whitespace cleanups...)

//Edit: use spoiler
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
  • Xdqwerty @ Xdqwerty:
    also gonna install twilight menu in my r4 flashcard
  • Psionic Roshambo @ Psionic Roshambo:
    One thing that just occurred to me.... The sound on the 2600 sucked less back then the harsh sound we hear now is from infinitely better speakers we have now, back when the 2600 was new speakers produced a almost muffled sound, like CRTs made old graphics look slightly better.
  • Psionic Roshambo @ Psionic Roshambo:
    I wonder if I could recommend that to some emulation devs that perhaps the sound could use some smoothing out to simulate those old TVs
  • Psionic Roshambo @ Psionic Roshambo:
    I think a few of the early systems could benefit from that, at least up to the 8 bit generation, by the 16 bit generation I think TVs had gotten a lot better in almost every way
  • Xdqwerty @ Xdqwerty:
    i dont have an sd card adapter but I have an usb sd card adapter
  • K3Nv2 @ K3Nv2:
    Old people games
  • Xdqwerty @ Xdqwerty:
    its not the one that comes with the r4
  • Xdqwerty @ Xdqwerty:
    doesnt work (my flashcard is from r4isdhc.com)
  • Xdqwerty @ Xdqwerty:
    might install ysmenu first
  • Psionic Roshambo @ Psionic Roshambo:
    Try Wood firmware
  • Psionic Roshambo @ Psionic Roshambo:
    For your R4
  • Psionic Roshambo @ Psionic Roshambo:
    It's old but it's the best firmware out for DS stuff
  • Xdqwerty @ Xdqwerty:
    it says it only works for the original R4, R4i Gold (r4ids.cn), R4iDSN (r4idsn.com) and Acekard R.P.G.
  • Xdqwerty @ Xdqwerty:
    nvm it does support mine
  • Xdqwerty @ Xdqwerty:
    but why choose it over ysmenu @Psionic Roshambo?
  • Xdqwerty @ Xdqwerty:
    bc im stupid?
  • Xdqwerty @ Xdqwerty:
    yea ik im stupid
  • Xdqwerty @ Xdqwerty:
    good night
  • Psionic Roshambo @ Psionic Roshambo:
    Just give it a try, but honestly if you have a 3DS you can play DS games without a card just off the internal SD card
  • Psionic Roshambo @ Psionic Roshambo:
    Slightly slower loading but a bit more convenient
  • BakerMan @ BakerMan:
    guys, my fuckin headphones have an out of place speaker
  • K3Nv2 @ K3Nv2:
    Did you try wearing them?
    B @ btjunior: @Xdqwerty 16