Jump to content

Patcher: TK Patcher


Tokei

Recommended Posts


  • Group:  Members
  • Topic Count:  16
  • Topics Per Day:  0.00
  • Content Count:  661
  • Reputation:   670
  • Joined:  11/12/12
  • Last Seen:  

index.php?app=downloads&module=display&section=screenshot&id=2785

File Name: TK Patcher

File Submitter: Tokei

File Submitted: 27 Jan 2013

File Category: Patchers

Content Author: Tokeiburu

I've seen many people having issues with the RSU patchers ("Failed to retrieve x file"), so this software attempts to fix these problems.

Here's what the appliction looks like :

sc002.png

Key features

  • Current downloads can be stopped at any time and resumed later on
  • Downloads can be refreshed by renewing the connection (sometimes, the FTP server doesn't send you as much data as it should, slowing you down a lot)
  • Each patch is applied right after it's been downloaded, so you don't need to start from the beginning everytime
  • The merging is done via GRF Editor's library
  • The GRFs are defragmented automatically (due to the library's speed, there's no need to specify a limit on when to defragment the GRF; it's done everytime the GRF is modified)
  • Sometimes, the FTP server sends the wrong stream offset (causing damaged gpf/rgz files); the software can detect those and ask for a new stream automatically
  • Embedded resources, so only one exe file is required
  • If there is a problem while downloading a file (ex : connection lost or the FTP server closed the stream for no apparent reason), the program will attempt to renew the connection

It uses a self-assembly editing "technique" to create new patchers. I've added this feature because of the different official patchers out there. By default, it uses :

http://webpatch.ragnarok.co.kr/ with patchRE.txt and ftp://ragnarok.nowcdn.co.kr:20021/Patch/

If you need to change patchRE.txt to patchRE3.txt (to be honest, I have absolutely no idea what the difference is between those two, now I do, thanks Ai4rei), you can generate a new assembly with the Properties icon at the bottom like this :

sc001d.png

General information

This application requires .Net 4.0. This is the major con, because players may not have this library installed by default (even though it's advised to install the .Net libraries for the renewal client). This application has been tested on Windows XP/Vista/7. This is not a replacement for the RSU patchers nor your own patcher (but I don't see why it wouldn't work?).

Due to its implementation, if you do not provide a .inf file, the patcher will start at the beginning of the patching list. This means that if you're using patchRE.txt (you should), make sure you have provided all the patches from patchRE3.txt first in your installer, otherwise they will just get skipped (because the patcher only deals with one list). It's also strongly recommended to include the .inf file with your installer, whatever patcher you use.

Leave a comment or suggestions ;o, thank you!

Click here to download this file

Edited by Tokei
  • Upvote 2
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  8
  • Topics Per Day:  0.00
  • Content Count:  417
  • Reputation:   354
  • Joined:  11/11/11
  • Last Seen:  

If you need to change patchRE.txt to patchRE3.txt (to be honest, I have absolutely no idea what the difference is between those two), ...

I consider this a bad thing not to know what the patcher is supposed to download to obtain the correct list of patches, but well. The difference is, one of them is being used with the old patch server (down in the mean while) and the other with the new patch server.

<rant>also, lemons</rant>

Also it fails if it cannot find the .inf file.

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  9
  • Topics Per Day:  0.00
  • Content Count:  141
  • Reputation:   15
  • Joined:  01/08/12
  • Last Seen:  

I like this TK Patcher as much I like those Neoncube, Triad, Thor, Jikari, KPatcher and RSU.

Thanks for sharing.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  16
  • Topics Per Day:  0.00
  • Content Count:  661
  • Reputation:   670
  • Joined:  11/12/12
  • Last Seen:  

If you need to change patchRE.txt to patchRE3.txt (to be honest, I have absolutely no idea what the difference is between those two), ...

I consider this a bad thing not to know what the patcher is supposed to download to obtain the correct list of patches, but well. The difference is, one of them is being used with the old patch server (down in the mean while) and the other with the new patch server.

<rant>also, lemons</rant>

Also it fails if it cannot find the .inf file.

Well first, thank you for the input!

Maybe a little background... this is a recycled FTP client project, which works really well. It was used to download patches manually from any FTP website and then run the RSU patcher. I've added the patching part only recently (two days ago basically), so I'm not very familiar with the patch lists used by official patchers. From what I've read :

patch2.txt | ragray | data.grf | patch.inf

patch3.txt | sakray | sdata.grf | spatch.inf

patchRE3.txt | renewal sakray | rdata.grf | patchRE.inf

However, I've checked on a few renewal servers with not much of a conclusion. Half of the servers I've tested used patchRE.txt and the other half used patchRE3.txt. So in the end... I've just decided to let people choose themselves and put patchRE.txt by default as this seemed like the logical choice.

As for the .inf file, it takes 3 seconds to change, but... I believe server owners should provide the .inf with their installer. Would anyone really start patching the 450 patches after you've just installed a client? It seems a bit ridiculous to me, but yeah, it might serve a purpose I'm not thinking of. With the same logic, I guess I should create the grf if it's not found instead of showing an error (should be added really soon).

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  8
  • Topics Per Day:  0.00
  • Content Count:  417
  • Reputation:   354
  • Joined:  11/11/11
  • Last Seen:  

If you provide a way to change all patch parameters, someone might come up with the idea of using this patcher for their own patches. Then the auto-default/auto-create logic no longer seems ridiculous, not? Also it's the official behavior to assume patch ID 0 if there is no INF present.

Maybe a little background... this is a recycled FTP client project, which works really well. It was used to download patches manually from any FTP website and then run the RSU patcher. I've added the patching part only recently (two days ago basically), so I'm not very familiar with the patch lists used by official patchers.

No comebacks at that...

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  24
  • Reputation:   2
  • Joined:  09/11/12
  • Last Seen:  

I honestly love this patcher!

Thanks for sharing.

Link to comment
Share on other sites

  • 4 months later...

  • Group:  Members
  • Topic Count:  0
  • Topics Per Day:  0
  • Content Count:  1
  • Reputation:   0
  • Joined:  04/10/13
  • Last Seen:  

I am aware this post may count as "necro posting" and honestly, I don't care, these are my thoughts on it and I love the patcher already.

 

As for people who wants to use this as a private patcher, I'd really suggest you to wait. I'm planning to make a patcher that would allow you full customization of the UI (effects and animations would be relatively easy to make) as well as support for HTTP, notice page, self-updating, grf file delete operations, etc... - a real private patcher.

 

 

I'd love to see these functions with it aswell, once it has those this would definitely be the perfect patcher for me :)

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  16
  • Topics Per Day:  0.00
  • Content Count:  661
  • Reputation:   670
  • Joined:  11/12/12
  • Last Seen:  

I am aware this post may count as "necro posting" and honestly, I don't care, these are my thoughts on it and I love the patcher already.

 

 

As for people who wants to use this as a private patcher, I'd really suggest you to wait. I'm planning to make a patcher that would allow you full customization of the UI (effects and animations would be relatively easy to make) as well as support for HTTP, notice page, self-updating, grf file delete operations, etc... - a real private patcher.

 

 

I'd love to see these functions with it aswell, once it has those this would definitely be the perfect patcher for me :)

 

Well, first thing first, thanks for the support! However I don't think you'll like the following answer. There's a reason why this patcher was never finished. It's still a good alternative way to patch the renewal client in case another patcher fails, but it will be really hard to make it as a private patcher.

 

This program was made specially for the official renewal FTP server (the code is bound to the server's characteristics) and that cannot be changed easily. I won't go into details, but I'd have to remake the entire download library. Anyway, I don't really mind doing that, but it's part of the reason why I didn't complete it.

 

As for the actual private patcher you're requesting, I had already started working on it. However the patcher still needs to be built on .NET 3.5 and this appears to be a problem for many users. This framework is only compatible with Windows SP2 and later. Sadly enough, people are still on Windows 98/ME/XP SP1. That would mean some players wouldn't be able to patch.

 

Then there's the problem of customization. It's possible to add animations and do everything else to the patcher, but you'd have to teach people how WPF works. It doesn't allow a WebBroswer item to be shown if the window is transparent (a transparent window is required for custom styling), and now that's a real problem that I just can't fix. The solution I had was to remove the window's borders, but you still couldn't have a transparent background (that means no rounded corners).

 

I've already got so many restrictions and annoyance that I simply concentrated on other projects instead. The other available patchers offer much better options and I didn't bother going further.

 

I digged up the project though and I can show you where I was at (I was testing features to see what was possible and what wasn't; I turned out to be rather disappointed) :

57486036.png

 

The XAML code is... relatively complex though (I'll spare you the styling resources details).

<Border BorderBrush="#FF676767" BorderThickness="1">
	<Grid Background="#1F1F1F">
		<Grid.RowDefinitions>
			<RowDefinition Height="auto" />
			<RowDefinition Height="auto" />
			<RowDefinition Height="auto" />
			<RowDefinition />
		</Grid.RowDefinitions>
		<TextBlock Association="Title" Text="TK Patcher" Grid.Row="1" FontSize="30" Foreground="White" Margin="10">
			<TextBlock.BitmapEffect>
				<OuterGlowBitmapEffect GlowColor="White" GlowSize="2" />
			</TextBlock.BitmapEffect>
		</TextBlock>
		<Button Association="Close" Content="X" FontSize="15" Width="25" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="10" />
		<Button Association="Minimize" Content="_" FontSize="15" Width="25" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="10 10 40 10" />
		<Grid Grid.Row="2">
			<StackPanel Margin="10">
				<WebBrowser Association="BrowserNotice" Height="240" Source="http://ratemyserver.net/" />
				<Label Association="Status" Content="Status" Foreground="#FF676767" />
				<ProgressBar Association="PartialProgress" Value="75" Height="25" Foreground="Blue" />
				<Label Association="PartialProgressInformation" Content="Download file 2013-10-10.grf..." Foreground="#FF676767" />
				<DockPanel HorizontalAlignment="Right">
					<Button Association="ClientStart" Arguments="-1sak1" Content="Start" Width="100" Margin="3" />
					<Button Association="Close" Content="Close" Width="100" Margin="3" />
				</DockPanel>
			</StackPanel>
		</Grid>
	</Grid>
</Border>

tl;dr : No, I won't be making a patcher soon and sorry about that. It would be too complex to make a patcher yourself using this, it isn't accessible to all users and it has too many restrictions. I don't want to make something that works only half of the time... If you've got solutions for these issues though, I wouldn't mind working back on it.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...