After asking about a 317 client that has hardware acceleration, I was pointed to Senpai's client. Looks snazzy enough, and who knows, maybe it actually uses the GPU, unlike the refactored 317 client kicking about.
Trouble is, it doesn't like loading the cache, whether it's the cache it comes with, or the cache that the server package uses (2006Redone). With it's packaged cache, it throws this error:
Code:
java.io.FileNotFoundException: .\class\Cache\main_file_cache.dat (The system cannot find the path specified)
at java.io.RandomAccessFile.open0(Native Method)
at java.io.RandomAccessFile.open(Unknown Source)
at java.io.RandomAccessFile.<init>(Unknown Source)
at java.io.RandomAccessFile.<init>(Unknown Source)
at Signlink.run(Signlink.java:37)
at java.lang.Thread.run(Unknown Source)
java.io.FileNotFoundException: .\class\Cache\sprites.idx (The system cannot find the path specified)
at java.io.RandomAccessFile.open0(Native Method)
at java.io.RandomAccessFile.open(Unknown Source)
at java.io.RandomAccessFile.<init>(Unknown Source)
at java.io.RandomAccessFile.<init>(Unknown Source)
at DataUtils.readFile(DataUtils.java:98)
at SpriteLoader.loadSprites(SpriteLoader.java:16)
at Client.startUp(Client.java:7556)
at RSApplet.run(RSApplet.java:98)
at Client.run(Client.java:4847)
at java.lang.Thread.run(Unknown Source)
java.io.FileNotFoundException: .\class\Cache\sprites.dat (The system cannot find the path specified)
at java.io.RandomAccessFile.open0(Native Method)
at java.io.RandomAccessFile.open(Unknown Source)
at java.io.RandomAccessFile.<init>(Unknown Source)
at java.io.RandomAccessFile.<init>(Unknown Source)
at DataUtils.readFile(DataUtils.java:98)
at SpriteLoader.loadSprites(SpriteLoader.java:17)
at Client.startUp(Client.java:7556)
at RSApplet.run(RSApplet.java:98)
at Client.run(Client.java:4847)
at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException
at java.io.ByteArrayInputStream.<init>(Unknown Source)
at SpriteLoader.loadSprites(SpriteLoader.java:18)
at Client.startUp(Client.java:7556)
at RSApplet.run(RSApplet.java:98)
at Client.run(Client.java:4847)
at java.lang.Thread.run(Unknown Source)
Map Amount: 770
java.lang.ArrayIndexOutOfBoundsException: 7692
at Stream.readUnsignedByte(Stream.java:133)
at Sprite.<init>(Sprite.java:287)
at Client.startUp(Client.java:7580)
at RSApplet.run(RSApplet.java:98)
at Client.run(Client.java:4847)
at java.lang.Thread.run(Unknown Source)
Error: loaderror Unpacking media 80
With the 2006Redone cache, it throws the same:
Code:
java.io.FileNotFoundException: .\class\Cache\main_file_cache.dat (The system cannot find the path specified)
at java.io.RandomAccessFile.open0(Native Method)
at java.io.RandomAccessFile.open(Unknown Source)
at java.io.RandomAccessFile.<init>(Unknown Source)
at java.io.RandomAccessFile.<init>(Unknown Source)
at Signlink.run(Signlink.java:37)
at java.lang.Thread.run(Unknown Source)
java.io.FileNotFoundException: .\class\Cache\sprites.idx (The system cannot find the path specified)
at java.io.RandomAccessFile.open0(Native Method)
at java.io.RandomAccessFile.open(Unknown Source)
at java.io.RandomAccessFile.<init>(Unknown Source)
at java.io.RandomAccessFile.<init>(Unknown Source)
at DataUtils.readFile(DataUtils.java:98)
at SpriteLoader.loadSprites(SpriteLoader.java:16)
at Client.startUp(Client.java:7556)
at RSApplet.run(RSApplet.java:98)
at Client.run(Client.java:4847)
at java.lang.Thread.run(Unknown Source)
java.io.FileNotFoundException: .\class\Cache\sprites.dat (The system cannot find the path specified)
at java.io.RandomAccessFile.open0(Native Method)
at java.io.RandomAccessFile.open(Unknown Source)
at java.io.RandomAccessFile.<init>(Unknown Source)
at java.io.RandomAccessFile.<init>(Unknown Source)
at DataUtils.readFile(DataUtils.java:98)
at SpriteLoader.loadSprites(SpriteLoader.java:17)
at Client.startUp(Client.java:7556)
at RSApplet.run(RSApplet.java:98)
at Client.run(Client.java:4847)
at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException
at java.io.ByteArrayInputStream.<init>(Unknown Source)
at SpriteLoader.loadSprites(SpriteLoader.java:18)
at Client.startUp(Client.java:7556)
at RSApplet.run(RSApplet.java:98)
at Client.run(Client.java:4847)
at java.lang.Thread.run(Unknown Source)
Map Amount: 770
java.lang.ArrayIndexOutOfBoundsException: 7692
at Stream.readUnsignedByte(Stream.java:133)
at Sprite.<init>(Sprite.java:287)
at Client.startUp(Client.java:7580)
at RSApplet.run(RSApplet.java:98)
at Client.run(Client.java:4847)
at java.lang.Thread.run(Unknown Source)
Error: loaderror Unpacking media 80
The block of code that throws the first error, for main_cache_file.dat:
Code:
public void run() {
active = true;
uid = getuid(findcachedir());
try {
cache_dat = new RandomAccessFile(findcachedir() + "main_file_cache.dat", "rw");
for (int j = 0; j < 5; j++) {
cache_idx[j] = new RandomAccessFile(findcachedir() + "main_file_cache.idx" + j, "rw");
}
} catch (Exception exception) {
exception.printStackTrace();
}
Looks a bit bizarre to be honest. Uses some weird file searching loop, instead of just using a cache folder path variable + a string array for the filenames.
So. It's having trouble finding the cache. The client successfully creates a C:\Oldskool folder, which I think it mirrors the cache, judging from the findcachedir function:
Code:
public static String findcachedir() {
String as[] = { "C:/" };
if (storeid < 32 || storeid > 34)
storeid = 32;
String s = "OldSkool";
for (int i = 0; i < as.length; i++)
try {
String s1 = as[i];
if (s1.length() > 0) {
File file = new File(s1);
if (!file.exists())
continue;
}
File file1 = new File(s1 + s);
if (file1.exists() || file1.mkdir())
return "./class/Cache/";
} catch (Exception _ex) {
}
return null;
}
The client: [Only registered and activated users can see links. ]
Any ideas on how to get this thing to run? It does manage to get past the "Connecting..." load bar, but it then skips right to the wall of text on a black background, telling you to try resetting your browser's cache.
Edit: Slight bit of good news, the errors don't occur and I can see the "New User | Existing User" screen. Bad news, you can't interact with it; clicking the buttons doesn't do anything.
What I did, was insert a couple of variables after line 6 in SignLink.java, so it had the following:
Code:
public final class Signlink implements Runnable {
//MajinCry begin
public static String strCacheDir = "Z:\\AAA\\AAARunescape\\Clients\\317 Resizable & Fullscreen\\class\\Cache\\";
public static String[] strarrayCacheFiles = {
"main_file_cache.dat", "main_file_cache.idx0",
"main_file_cache.idx1", "main_file_cache.idx2",
"main_file_cache.idx3", "main_file_cache.idx4"
};
//MajinCry end
And then I replaced all calls to findcachedir() to strCacheDir, by looking through Eclipse's console, after I commented out the function.
The console shows no errors, and prints a single line:
Code:
Map Amount: 1226
Archive of the client with my edits: [Only registered and activated users can see links. ]