SRL Archive - S.M.A.R.T.

SMARTv7.0


BenLand100

2012-03-20 12:22:59

This version implements something I put into Simba a long time ago called the Extensible Input/Output System (EIOS). EIOS basically lets you define a target window in a plugin and set it as the target in a script so you can use all of Simba's native methods for color finding, mouse movement, and keyboard interaction. Some of you might say "But, SMART already works this way." to which I would say, yes, it does, however the implementation is a hack that was developed because SCAR was closed source and involves overriding methods (a very pascalscript specific thing) and other dirty. Using EIOS all of this is built into Simba, and makes it easy (well, easier) to implement custom sandboxes (like SMART) for other applications. As an added side effect, this makes core SMART functionality available for lape and thus both 32 and 64 bit versions of linux and windows. In addition, the EIOS method works with pascalscript and any other interpreter you would want to write wrappers for. It's also completely backwards compatible.

It is, as far as I can tell, completely stable, however I'm leaving it as beta and it won't go mainstream until SRL devs have implemented the new SMART loading routine with EIOS (not difficult, see below) and until a version of Simba with some (required) modifications to EIOS is officially released.

[23-03-12]Waiting only for Simba 0.99 to be released before v7.0 is added to the plugin updater. It's fully backwards compatible, but needs that minimum Simba version for the EIOS updates (the only real reason to update) to be usable, at which point SRL devs should switch to the EIOS loading scheme.

If you want to beta test, grab the SMART binaries below (or compile from source in the git repository). MAKE SURE YOU DELETE THE OLD LIBSMART! The new libraries have the arch bit size in their name to prevent ambiguity. You'll need to grab a Simba binary with the modifications I made from (Wizzup's builds) http://nala.villavu.com/downloads/master/2e2062318666e0230a36b24562acddb10b9aa41f/ (or compile it from Wizzup's git repository, master branch). You'll also need to know a bit about the EIOS targeting scheme, which is basically:Note that you don't technically have to load the SMART library, you only have to set the target. IF you want to use other SMART methods, you will still need to load the library in the usual way, but you will

program EIOSTest;
[LEFT][LEFT][LEFT][LEFT][LEFT][LEFT][LEFT]
procedure InitSmart();
var
version: integer; //version of this record
root, params: string; //Passed to SmartSetup
width, height: integer; //Passed to SmartSetup
initseq: string; //Passed to SmartSetup
maxmem: integer; //Max JVM mem in MB, -1 is default
jvmpath, useragent: string; //'' is the old defaults
begin
version:= 0;
root:= 'http://world15.runescape.com/';
params:= 'plugin.js?param=o0,a1,m0';
width:= 765;
height:= 503;
initseq:= 's';
maxmem:= -1; //use SMART's default
jvmpath:= ''; //use SMART's default
useragent:= ''; //use SMART's default
SetEIOSTarget('libsmart',IntToStr(version)+',"'+root+'","'+params+'",'+IntToStr(width)+','+IntToStr(height)+',"'+initseq+'",'+IntToStr(maxmem)+',"'+jvmpath+'","'+useragent+'"');
end;


begin
InitSmart();
//Now, all of Simba's functions use SMART as the target, no hacks.
while true do
begin
MoveMouse(Random(765),Random(503));
Wait(1000);
end;
end.[/LEFT]
[/LEFT]
[/LEFT]
[/LEFT]
[/LEFT]
[/LEFT]
[/LEFT]
NOT have to call SmartSetup or include Smart.simba (which is the part that overrides methods to intercept I/O). SetEIOSTarget replaces the call to SmartSetup. Granted, you will have to call SetEIOSTarget before you interact with SMART just as you had to call SmartSetup before interacting with SMART.

tl;dr
New SMART requires a new Simba to take advantage of new functionality allowing SMART to run in lape and on new architectures.

Zipped Binaries (Hosted by GITHub):
https://github.com/downloads/BenLand100/SMART/SMARTv7.0.zip

Source (GIT Repos):
https://github.com/BenLand100/SMART

Changelog v7.0:
[19/03/12]
+ Implemented EIOS
+ Added 64bit build targets
+ Renamed library names to libsmart32.so, libsmart64.so, libsmart32.dll, libsmart64.dll
+ Modified source for full 64bit compatibility
[20/03/12]
+ Added IsMouseButtonDown functionality
+ Tried to fix tab key thing a bit more
[22/03/12]
+ Changed long->int where appropriate for 64bit targets
[23/03/12]
+ Downstream devs confirm stable v7.0beta -> v7.0
[27/03/12]
+ Export bug in windows targets fixed (redownload if you were experiencing problems)

Wyn

2012-03-20 12:25:47

Sweet gonna test when I get home.

hoopla

2012-03-20 12:33:33

So very much impressed!! THank you kindly ;)

begginer

2012-03-20 18:35:38

Impressive, indeed. Won't be the first tester cause if i fu*k Idk how to get the working smart

Sin

2012-03-20 18:36:51

You're still alive?!
:p
But thanks for the tl;dr, it summed it up perfectly xD

BenLand100

2012-03-20 19:52:27

Turns out there was a bit of a bug in EIOS related to mouse buttons not being communicated correctly. I fixed that in Simba so you will need a newer version to test (I updated the dl link in the first post). I also extended EIOS to include middle button functionality.

mormonman

2012-03-20 20:15:10

Scrollwheel yet?

BenLand100

2012-03-20 22:39:29

From: mormonman
Scrollwheel yet?

Actually, I just saw it in the Simba source yesterday. Not sure if I'll get to it while I'm on break, mostly because it will involve significant additions to the EventNazi, and I really don't like to mess with that. Also, I don't really know anything about scrolling in java so it would require research and I'm lazy ;)

EIOS supports it, though. It's just not implemented in SMART

Wizzup?

2012-03-21 08:14:59

This is really quite amazing, we've had EIOS for so long but hardly ever used it. This support will be in Simba 0.99-rc4 for anyone who's interested.

Also note that this should make switching to different targets a lot prettier. I also hope we can eventually move SMART out of Simba's process, because that would make debugging so much easier. The JVM is always messing with gdb.

BenLand100

2012-03-23 12:53:53

Confirmed stable, v7.0beta -> v7.0

You all can start using this on any Simba version (it's backwards compatible), but 0.99 minimum required for the EIOS loading.

Wizzup?

2012-03-23 14:31:55

From: BenLand100
Confirmed stable, v7.0beta -> v7.0

You all can start using this on any Simba version (it's backwards compatible), but 0.99 minimum required for the EIOS loading.


Actually, they need 0.99-rc4 (or the very latest build), and since 0.99-rc4 is not yet released, it won't work. :p

And by ``it'' I mean the EIOS stuff, right now SRL still overrides the built-in commands with the SMART commands, so they won't notice either way. It's really only interesting for Linux users. ;)

nielsie95

2012-03-23 15:20:07

Linux x64:

Awesome, Ben! =D

Wizzup?

2012-03-23 19:50:17

From: nielsie95
Linux x64:

Awesome, Ben! =D


Let the fun begin!

i3egoHan

2012-03-24 20:02:03

Great job ben.

kunzy

2012-03-25 06:51:08

thanks for all the great updates bro :)

BenLand100

2012-03-25 18:25:58

From: Wizzup?
Actually, they need 0.99-rc4 (or the very latest build), and since 0.99-rc4 is not yet released, it won't work. :p

And by ``it'' I mean the EIOS stuff, right now SRL still overrides the built-in commands with the SMART commands, so they won't notice either way. It's really only interesting for Linux users. ;)

I'm of the impression that 0.99 isn't available at all yet, since 0.99-rc4 isn't even available, but once 0.99 is released officially it'll have the EIOS stuff ;) Though, that's really just splitting hairs over semantics.

Sex

2012-03-25 18:36:25

From: BenLand100
I'm of the impression that 0.99 isn't available at all yet, since 0.99-rc4 isn't even available, but once 0.99 is released officially it'll have the EIOS stuff ;) Though, that's really just splitting hairs over semantics.


Could they not just download the buildbot build?

BenLand100

2012-03-27 19:19:06

There was an export bug in windows targets; it is now fixed.

[XoL]

2012-03-27 20:39:22

Oh too amazing, great job ben!

repps :)

Sloth Frenzy

2012-03-28 00:48:44

How do you install for the 64x version to work?

LemonHaze

2012-03-28 01:27:16

nice work benland!

Shatterhand

2012-03-28 07:45:38

My question is: which is better, 32 or 64 bit java? I have 64 bit Windows 7.

Wizzup?

2012-03-28 08:09:32

From: Sloth Frenzy
How do you install for the 64x version to work?


From: hunt3rx3
My question is: which is better, 32 or 64 bit java? I have 64 bit Windows 7.


This requires some clarification.

First, right now the only ``stable'' Simba is Simba on Windows, x86 (32 bit).

Secondly, Simba requires plugins that have the same architecture as Simba itself. So a 32 bit simba requires a 32 bit smart and a 32 bit java. A 64 bit Simba requires a 64 bit smart and a 64 bit java.

You can download Simba for 64 bit (x64) from http://l0.lt/builders/master (Download latest build), but I can't guarantee that it'll work properly with most scripts. It most likely won't. We need more time to integrate some support in SRL and Simba to make everything work nicely with platforms other than 32 bit windows.

NCDS

2012-03-28 09:09:31

From: Wizzup?
This requires some clarification.

First, right now the only ``stable'' Simba is Simba on Windows, x86 (32 bit).

Secondly, Simba requires plugins that have the same architecture as Simba itself. So a 32 bit simba requires a 32 bit smart and a 32 bit java. A 64 bit Simba requires a 64 bit smart and a 64 bit java.

You can download Simba for 64 bit (x64) from http://l0.lt/builders/master (Download latest build), but I can't guarantee that it'll work properly with most scripts. It most likely won't. We need more time to integrate some support in SRL and Simba to make everything work nicely with platforms other than 32 bit windows.


My girlfriend had MSI running on our x64 laptop a couple weeks ago, and I don't recall her complaining about anything. She probably didn't test it very extensively though..

Home

2012-03-28 09:15:44

If we get Simba 64-Bit. What kind of improvements we would see / get?


~Home

Sex

2012-03-28 15:05:14

From: NCDS
My girlfriend had MSI running on our x64 laptop a couple weeks ago, and I don't recall her complaining about anything. She probably didn't test it very extensively though..


Did you specifically download the 64-bit build from the link Wizzup provided? If not, you were running 32-bit Simba.

Shatterhand

2012-03-28 15:47:52

I tried installing 64bit simba (with 64bit java and 64bit smart) but I had lot of errors…

Fadedd

2012-03-31 15:33:54

Exception in Script: Plugin(irokiplugin32) has not been found

getting this errorrrrr. can someone help?

Sex

2012-03-31 15:45:13

From: Fadedd
Exception in Script: Plugin(irokiplugin32) has not been found

getting this errorrrrr. can someone help?


This is not the thread to ask that in.

PhaseCode

2012-04-07 15:09:09

Will there be any support of crashSmart?

Home

2012-04-08 03:01:40

From: PhaseCode
Will there be any support of crashSmart?


You really don't need CrashSmart. You can use Smart manager or my method.


~Home

Shatterhand

2012-04-25 04:55:48

Any chances for working 64 bit version of Simba?

xtrapsp

2012-05-12 10:38:26

Hunter read the previous posts please.

BenLand100

2012-05-15 02:01:23

From: PhaseCode
Will there be any support of crashSmart?

Simple, terminate the current client and spawn a new one. Supported feature already.

Shatterhand

2012-05-15 02:06:07

From: BenLand100
Simple, terminate the current client and spawn a new one. Supported feature already.

Oh, wait, is there a function to close smart and restart in v7.0-7.1? I have bad internet, it keeps disconnecting, i get that client token error all the time.
Is it something like TerminateClient; ?

BenLand100

2012-05-15 02:08:10

It'll be in v7.1, check that thread.

illuminatiswag

2012-05-15 20:27:57

Sorry for asking this been looking around for a tutorial how to add a new version of SMART and i cant find it can anyone write a Tut or a video on what to do after downloading the zip file of smart please and thank you in ahead of time