Time |
Nickname |
Message |
00:02
🔗
|
naTmeg |
try http://www.219.dic.at/tmp/add.js |
00:03
🔗
|
naTmeg |
work from back to front for line-numbers |
00:03
🔗
|
db48x |
that won't work |
00:04
🔗
|
db48x |
I can configure a hook in SAERunner, but SAERunner isn't in the same scope as the splash, runner, or muted variables :) |
00:05
🔗
|
db48x |
this._cfg.hook.event.started = function () { |
00:05
🔗
|
db48x |
console.log("test hook called"); |
00:05
🔗
|
db48x |
} |
00:05
🔗
|
db48x |
|
00:05
🔗
|
db48x |
let's see if that gets called |
00:06
🔗
|
naTmeg |
ic the problem :) |
00:06
🔗
|
db48x |
yea, that got called |
00:07
🔗
|
db48x |
naTmeg: what do you see? |
00:08
🔗
|
naTmeg |
have you updated? |
00:08
🔗
|
db48x |
updated what? |
00:08
🔗
|
naTmeg |
ahm,i meant about the scope |
00:08
🔗
|
db48x |
ah |
00:09
🔗
|
db48x |
I added a simpler hook instead |
00:09
🔗
|
db48x |
and yes, it calls the hook if I add it to the config earlier |
00:09
🔗
|
naTmeg |
ok, thats the normal way |
00:11
🔗
|
naTmeg |
all hooks works like that. they need to be setup prior to start() |
00:12
🔗
|
db48x |
ok, I swapped it so that it calls onStarted before start |
00:14
🔗
|
db48x |
bah, still doesn't work |
00:15
🔗
|
naTmeg |
maybe making a Emulator.getRunnerSplash(), returning runner and splash pointers for hook.event.started() ? |
00:15
🔗
|
db48x |
eww, no |
00:16
🔗
|
naTmeg |
ugly :) |
00:19
🔗
|
naTmeg |
or call Emulator.started() from hook.event.started(), a little less ugly |
00:19
🔗
|
db48x |
also not doable, since it would have to be called on the Emulator instance, not the Emulator class or function |
00:20
🔗
|
naTmeg |
hmm |
00:21
🔗
|
db48x |
I don't see what it's not working |
00:21
🔗
|
db48x |
the hook _is_ being called, now that I'm calling onStarted before start, but the sound is still playing |
00:25
🔗
|
naTmeg |
call start() afer onStarted() ? |
00:25
🔗
|
db48x |
I am |
00:25
🔗
|
naTmeg |
is sae.mute() == 0 ? |
00:25
🔗
|
db48x |
runner.onStarted(function () { |
00:25
🔗
|
db48x |
if (muted) { |
00:25
🔗
|
db48x |
runner.mute(); |
00:25
🔗
|
db48x |
} |
00:26
🔗
|
db48x |
splash.finished_loading = true; |
00:26
🔗
|
db48x |
splash.hide(); |
00:26
🔗
|
db48x |
}); |
00:26
🔗
|
db48x |
runner.start(); |
00:26
🔗
|
db48x |
|
00:26
🔗
|
db48x |
dunno, lemme check |
00:26
🔗
|
naTmeg |
oh, you updated that :) |
00:28
🔗
|
naTmeg |
i reloaed, now it's below, ok |
00:29
🔗
|
naTmeg |
hmm, should work |
00:29
🔗
|
db48x |
yes, it returns 0 |
00:30
🔗
|
db48x |
0 is success, right? |
00:30
🔗
|
naTmeg |
yes |
00:31
🔗
|
naTmeg |
could also return 2 for not running |
00:32
🔗
|
db48x |
I've uploaded a new version; it prints out the error number if it isn't 0 |
00:41
🔗
|
naTmeg |
i think it get overwriten in audio.js:384, cos reset_sound() belongs to "reset", which will be called after the hook |
00:43
🔗
|
naTmeg |
muted = paused = false; |
00:44
🔗
|
db48x |
why does it reset at the start of emulation? |
00:44
🔗
|
naTmeg |
to clear and setup things |
00:45
🔗
|
db48x |
that's initialization :) |
00:45
🔗
|
naTmeg |
normaly :) |
00:45
🔗
|
naTmeg |
+l |
00:45
🔗
|
db48x |
:) |
00:46
🔗
|
naTmeg |
can you trick that line. it's hard for me to update now. |
00:56
🔗
|
naTmeg |
if i press the mute-button in chrome, i get an error-msg that the emul is not running, even if it's running |
00:56
🔗
|
db48x |
yes, that's a known bug |
00:56
🔗
|
naTmeg |
ah ok |
00:56
🔗
|
db48x |
the page bypasses the loader and just tries to call SDL_PauseAudio |
00:57
🔗
|
db48x |
since that doesn't exist, it just assumes that the emulator isn't loaded |
00:57
🔗
|
naTmeg |
would a wrapper help? |
00:58
🔗
|
db48x |
would a wrapper around what help with what? |
00:58
🔗
|
naTmeg |
SDL_PauseAudio -> sae.mute |
00:58
🔗
|
db48x |
heh, I guess that'd be one way to do it |
00:58
🔗
|
naTmeg |
:) |
00:58
🔗
|
db48x |
I'd rather just wait and fix the button |
01:01
🔗
|
db48x |
how does the reset function in audio.js get called? |
01:03
🔗
|
naTmeg |
on startup an so-called hardreset is called, means memeory is also cleared. also the cpu may call a softreset anytime. |
01:04
🔗
|
db48x |
can we call the hook after the hard reset? |
01:04
🔗
|
naTmeg |
it get call with many other in the soft/hardreset-routine |
01:05
🔗
|
naTmeg |
maybe hook.events.reseted but i'm not sure when this exaltely get called now |
01:06
🔗
|
naTmeg |
yes, try this. move the mute-stuff to reseted() and leave the rest in started() |
01:08
🔗
|
db48x |
done and uploaded |
01:11
🔗
|
db48x |
it worked :) |
01:12
🔗
|
naTmeg |
so? here not |
01:12
🔗
|
naTmeg |
reloading... |
01:12
🔗
|
db48x |
did you run AJS.emulator.muted() before starting the emulation? |
01:13
🔗
|
naTmeg |
ups |
01:15
🔗
|
naTmeg |
yes, does work also here :) |
01:15
🔗
|
db48x |
sweet |
01:16
🔗
|
db48x |
of course, the button is still broken |
01:17
🔗
|
naTmeg |
such a small button and such a troublemaker :p |
01:17
🔗
|
db48x |
yep |
01:17
🔗
|
db48x |
full-screen is worse though |
01:18
🔗
|
naTmeg |
that is, another chapter. requires many work |
01:18
🔗
|
db48x |
yes |
01:22
🔗
|
db48x |
so what about this: |
01:22
🔗
|
db48x |
diff --git a/sae/audio.js b/sae/audio.js |
01:22
🔗
|
db48x |
index 3989f09..305015b 100644 |
01:22
🔗
|
db48x |
--- a/sae/audio.js |
01:22
🔗
|
db48x |
+++ b/sae/audio.js |
01:22
🔗
|
db48x |
@@ -381,7 +381,7 @@ function SAEO_Audio() { |
01:22
🔗
|
db48x |
} |
01:22
🔗
|
db48x |
|
01:22
🔗
|
db48x |
function reset_sound() { //reset_sound() |
01:22
🔗
|
db48x |
- muted = paused = false; |
01:22
🔗
|
db48x |
+ paused = false; |
01:22
🔗
|
db48x |
|
01:22
🔗
|
db48x |
cache.readoffset = 0; |
01:22
🔗
|
db48x |
cache.writeoffset = 0; |
01:27
🔗
|
naTmeg |
please move muted = paused = false; to the first line of setup_sound() |
01:34
🔗
|
naTmeg |
ok merged. i was too slow, sorry for the abuse. |
01:34
🔗
|
db48x |
abuse? |
01:34
🔗
|
naTmeg |
:) |
01:35
🔗
|
db48x |
I hadn't noticed any |
01:35
🔗
|
db48x |
on the other hand, you do use tabs for indentation... |
01:37
🔗
|
naTmeg |
yes? |
01:37
🔗
|
db48x |
using tabs for indentation could be seen as a kind of abuse |
01:38
🔗
|
naTmeg |
hehe |
01:39
🔗
|
SketchCow |
Hey hey hey |
01:39
🔗
|
naTmeg |
SketchCow |
01:55
🔗
|
|
n00b125 has quit IRC (Ping timeout: 268 seconds) |
02:29
🔗
|
SketchCow |
Snapshotting at full bore |
02:32
🔗
|
SketchCow |
Converting everything to stream_only just to avoid annoying people. |
02:35
🔗
|
SketchCow |
Also, there should be no "orange errors" ones anymore. |
02:35
🔗
|
SketchCow |
All should have been murdered |
02:48
🔗
|
SketchCow |
OK! All stream_only now. |
02:48
🔗
|
SketchCow |
All with proper metadata names. |
02:48
🔗
|
SketchCow |
All with proper metadata dates, and authors, where that information was around. |
02:51
🔗
|
SketchCow |
Now it's just screenshotting. |
02:51
🔗
|
SketchCow |
There's a chance a couple of them finished a "first run" and then didn't regenerate, I'll double-check |
03:38
🔗
|
SketchCow |
OK, db48x |
03:38
🔗
|
SketchCow |
I now have it not working on both Chrome and Firefox on my home machine. |
03:38
🔗
|
SketchCow |
"Failed to download game data!" |
03:39
🔗
|
SketchCow |
I suspect when it was stream_only, it |
03:39
🔗
|
SketchCow |
"poisioned" it the way something else was "poisioned" |
03:39
🔗
|
SketchCow |
I wonder if there is a cookie or thing related to BrowserFS happening |
03:39
🔗
|
SketchCow |
Happy to find something for you if needed to diagnose |
03:42
🔗
|
db48x |
hrm |
03:44
🔗
|
naTmeg |
SketchCow: some titles can not be started anymore. is that on purpose? |
03:46
🔗
|
SketchCow |
It's a function of stream_only. I'm undoing stream_only |
03:46
🔗
|
naTmeg |
oh :) |
03:46
🔗
|
SketchCow |
Yeah |
03:47
🔗
|
SketchCow |
I dumped a LOT of stuff into the queue, I have to wait for it to finish |
03:47
🔗
|
SketchCow |
Might cause the poor screenshotters to fail on a lot. |
03:47
🔗
|
SketchCow |
I can re-run the orange killer though |
03:54
🔗
|
|
GLaDOS has quit IRC (Ping timeout: 260 seconds) |
04:15
🔗
|
|
naTmeg has quit IRC (Leaving) |
04:17
🔗
|
|
GLaDOS has joined #jsmess |
04:20
🔗
|
SketchCow |
OK, stream_only is out |
04:21
🔗
|
|
GLaDOS has quit IRC (Ping timeout: 260 seconds) |
04:22
🔗
|
|
GLaDOS has joined #jsmess |
04:33
🔗
|
db48x |
SketchCow: can you show me a screenshot of a broken one with the messages in the console? |
04:35
🔗
|
|
GLaDOS has quit IRC (Ping timeout: 260 seconds) |
04:37
🔗
|
SketchCow |
https://www.flickr.com/photos/textfiles/28225337143/in/dateposted/ |
04:37
🔗
|
SketchCow |
https://www.flickr.com/photos/textfiles/28735535702/in/dateposted/ |
04:38
🔗
|
db48x |
can you show the console instead of the debugger? |
04:40
🔗
|
SketchCow |
https://www.flickr.com/photos/textfiles/28809107556/in/dateposted/ |
04:40
🔗
|
db48x |
or go to the gear icon on the right-hand side there and set it to pause on exceptions, then reload |
04:40
🔗
|
db48x |
oh, UnknownError from BrowserFS |
04:47
🔗
|
db48x |
jvilk: I don't suppose you're lurking, are you? |
04:49
🔗
|
SketchCow |
It's 12:48 where we both live, so maybe he won't be here until tomorrow or something. |
04:49
🔗
|
SketchCow |
But it might be something baked in there. |
04:49
🔗
|
SketchCow |
We have persistence for DOSBOX, maybe it's screwing us here |
04:50
🔗
|
SketchCow |
(By the way, Hip Hop Mixtapes passed 8.3 million listeners as of end of July) |
04:53
🔗
|
* |
bai Likes this |
04:53
🔗
|
SketchCow |
Doing another pile of Orange screenshot murders, because I think they broke during all stream_only |
04:57
🔗
|
SketchCow |
(and a bunch of other stuff) |
07:02
🔗
|
|
GLaDOS has joined #jsmess |
10:35
🔗
|
SketchCow |
Oranges cleaned |
10:36
🔗
|
SketchCow |
PILE of brand new Apples added |
11:00
🔗
|
|
mavs has joined #jsmess |
11:58
🔗
|
|
naTmeg has joined #jsmess |
12:36
🔗
|
SketchCow |
Absolutely verified, Amiga screenshotters, all five, going at full bore |
12:39
🔗
|
naTmeg |
hi SketchCow, it's going viral now. +500 views on some titels in the last 6h :) |
12:41
🔗
|
SketchCow |
I saw |
12:41
🔗
|
SketchCow |
It's going to flare |
12:41
🔗
|
SketchCow |
It's too nice |
12:41
🔗
|
naTmeg |
was to lazy to work today, changed with thursday. too much action :) |
12:42
🔗
|
naTmeg |
or better too busy |
12:42
🔗
|
naTmeg |
so many news-articles |
12:43
🔗
|
SketchCow |
Ha |
12:43
🔗
|
SketchCow |
In germany |
12:46
🔗
|
SketchCow |
I can see referrers. |
12:46
🔗
|
SketchCow |
http://www.cdaction.pl/news-46193/10-tysiecy-gier-z-amigi-za-darmo-dzieki-archiveorg.html |
12:46
🔗
|
SketchCow |
http://www.heise.de/newsticker/meldung/Internet-Archive-10-000-Amiga-Spiele-online-spielen-3289718.html |
12:46
🔗
|
SketchCow |
https://tweakers.net/ |
12:46
🔗
|
SketchCow |
http://www.pcwelt.de/news/10.357-Amiga-Spiele-im-Browser-spielbar-10022956.html |
12:46
🔗
|
SketchCow |
http://www.sweclockers.com/forum/trad/1438137-amiga-spel-gratis |
12:46
🔗
|
SketchCow |
https://news.ycombinator.com/ |
12:46
🔗
|
SketchCow |
http://betanews.com/2016/08/08/play-amiga-games-in-your-browser/ |
12:46
🔗
|
SketchCow |
http://www.metafilter.com/ |
12:47
🔗
|
SketchCow |
http://www.pcwelt.de/news/10.357-Amiga-Spiele-im-Browser-spielbar-10022956.html |
12:47
🔗
|
SketchCow |
http://www.epicbundle.com/article/games-for-free-internet-archive-s-amiga-classics |
12:48
🔗
|
SketchCow |
So... yeah |
12:48
🔗
|
naTmeg |
people like it |
12:49
🔗
|
SketchCow |
Well, of course they do. |
12:49
🔗
|
SketchCow |
So yeah, I guess you're going to get more players this week than the entire length of your project. |
12:49
🔗
|
SketchCow |
But it's a big public stage. |
12:50
🔗
|
naTmeg |
yeah also some one sae.net now |
12:51
🔗
|
naTmeg |
i'm so happy that we bring amiga back to light, it's big days |
12:52
🔗
|
SketchCow |
Ans almost everybody is absolutely delighted! |
13:30
🔗
|
SketchCow |
https://twitter.com/gschmidl/status/762641937996345345 |
16:56
🔗
|
SketchCow |
db48x: When you're available, I'd like to track down possible solutions to the failing 4am collection boots. |
16:58
🔗
|
db48x |
SketchCow: I'm available |
17:01
🔗
|
SketchCow |
OK, one moment while I pretend I'm in a meeting |
17:02
🔗
|
db48x |
:) |
17:02
🔗
|
SketchCow |
Do you understand the situation with the 4am collection. |
17:02
🔗
|
db48x |
not specificially |
17:04
🔗
|
SketchCow |
OK. So, the main thing is that 4am really doesn't like avoiding using spaces in filenames. |
17:04
🔗
|
SketchCow |
Having things named like "Bank Street Cooking Love (4am Crack).dsk" |
17:04
🔗
|
db48x |
and somehow those are causing troubles |
17:04
🔗
|
SketchCow |
We originally had a solution of "make a second image called 00playable.dsk". That made it Just Work. |
17:05
🔗
|
SketchCow |
It would boot the thing up, off that. |
17:05
🔗
|
SketchCow |
Now, the new "load everything in when we start up" made that stop working again. |
17:05
🔗
|
SketchCow |
Hacky solution: Just load in alphabetical order, it will boot off the main disk. |
17:05
🔗
|
SketchCow |
Might do that just to push it down the road. |
17:07
🔗
|
SketchCow |
Let me experiment right now. |
17:08
🔗
|
SketchCow |
No. |
17:09
🔗
|
SketchCow |
jvilk: Your help needed, by the way. |
17:10
🔗
|
SketchCow |
So, the problem is that the thing will try to download all the .dsk images, and it will fail because they have spaces. |
17:10
🔗
|
db48x |
yea, I'm trying to figure out why it's failing |
17:11
🔗
|
SketchCow |
It's definitely choking on spaces in filenames. That's the source of the problem, flat out. |
17:11
🔗
|
SketchCow |
How we solve it is a different thing. |
17:11
🔗
|
SketchCow |
Also, it's quite obvious that something is "wrecked" with the firefox on my machine. |
17:11
🔗
|
SketchCow |
I will going to try clearing the cache and seeing if that "fixes" it |
17:12
🔗
|
db48x |
yea, but spaces in the filename shouldn't cause an error |
17:13
🔗
|
SketchCow |
Cleared cache and cookies in Firefox. |
17:13
🔗
|
SketchCow |
Restarting |
17:14
🔗
|
SketchCow |
No, it still fails. |
17:15
🔗
|
db48x |
did you get the sourcemap for browserfs installed on the server? |
17:15
🔗
|
SketchCow |
No. |
17:15
🔗
|
SketchCow |
I don't know how |
17:15
🔗
|
SketchCow |
I just uninstalled firefox. |
17:15
🔗
|
db48x |
it's in the loaderlab, just copy it along with browserfs.js |
17:24
🔗
|
SketchCow |
Complete re-install, problem is still there. |
17:24
🔗
|
db48x |
SketchCow: as far as I can see, the problem is with the cors_get.php script |
17:27
🔗
|
db48x |
downloading these files from the browser works because the request doesn't have to go through the php script |
18:21
🔗
|
SketchCow |
And they will never support spaces. |
18:21
🔗
|
SketchCow |
Not really. |
18:21
🔗
|
SketchCow |
And I can't get them to move on it. |
18:24
🔗
|
db48x |
is it because it's hard to fix, or because they don't want to sink time into something that's going to be replaced with an nginx configuration? |
18:35
🔗
|
db48x |
maybe we can help them get rid of the cors_get.php script entirely? |
18:42
🔗
|
db48x |
that would save a redirect and running the script on every request |
19:04
🔗
|
SketchCow |
Another screenshotter "went orange" |
19:06
🔗
|
db48x |
were you able to copy the sourcemap over? |
19:06
🔗
|
SketchCow |
I need to get someone to do that. |
19:06
🔗
|
SketchCow |
Let me see about that. What's the file? |
19:06
🔗
|
db48x |
https://archive.org/download/loaderlab/browserfs.min.js.map |
19:07
🔗
|
SketchCow |
Request made |
19:09
🔗
|
db48x |
thanks |
19:11
🔗
|
db48x |
back in a bit |
19:12
🔗
|
SketchCow |
I have to chase down and destroy an errant screenshotter. |
19:13
🔗
|
SketchCow |
Like a shitty version of Blade Runner |
19:29
🔗
|
SketchCow |
Found it. |
19:29
🔗
|
SketchCow |
Time..... to die |
20:26
🔗
|
db48x |
heh |
20:38
🔗
|
SketchCow |
https://archive.org/download/loaderlab/browserfs.min.js.map is going in |
20:43
🔗
|
db48x |
awesome |
20:43
🔗
|
db48x |
now when you stop at that exception in the debugger, it'll show you the real source |
20:44
🔗
|
db48x |
and maybe we can figure out what's going on |
20:51
🔗
|
SketchCow |
After I see why this screenshotter isn't working (might need to kill it, bringing us to just 4) |
20:51
🔗
|
SketchCow |
I'll try out the problem |
21:09
🔗
|
SketchCow |
OK, let's see. |
21:10
🔗
|
SketchCow |
if (!this._isInitialized) { |
21:10
🔗
|
SketchCow |
throw new ApiError(ErrorCode.EPERM, "OverlayFS is not initialized. Please initialize OverlayFS using its initialize() method before using it."); |
21:10
🔗
|
SketchCow |
} |
21:23
🔗
|
db48x |
hrm |
21:23
🔗
|
db48x |
what's the next thing up the call stack? |
21:34
🔗
|
SketchCow |
}private checkInitialized(): void { |
21:34
🔗
|
SketchCow |
if (!this._isInitialized) { |
21:34
🔗
|
SketchCow |
throw new ApiError(ErrorCode.EPERM, "OverlayFS is not initialized. Please initialize OverlayFS using its initialize() method before using it."); |
21:34
🔗
|
SketchCow |
} |
21:35
🔗
|
db48x |
see the call stack tab? |
21:35
🔗
|
db48x |
to the left of the source? |
21:35
🔗
|
db48x |
what's the next item up in the list? |
21:35
🔗
|
SketchCow |
MountableFileSystem.ts |
21:36
🔗
|
db48x |
next? |
21:37
🔗
|
db48x |
I'm looking for the first one that's part of the loader, as opposed to part of browserfs |
21:39
🔗
|
SketchCow |
https://www.flickr.com/photos/textfiles/28239409754/in/dateposted/ |
21:39
🔗
|
db48x |
saveat, line 831 |
21:40
🔗
|
db48x |
can you click on that and show me what line it is? |
21:41
🔗
|
db48x |
it must be game_data.fs.writeFileSync('/'+ filename, new Buffer(data), null, flag_w, 0x1a4); |
21:43
🔗
|
db48x |
which is weird |
21:44
🔗
|
db48x |
oh, I see |
21:45
🔗
|
SketchCow |
Verified, it is. |
21:45
🔗
|
db48x |
ok, having clicked on that item in the call stack, can you look on the right-hand side and see what value the variable 'e' has? |
21:48
🔗
|
SketchCow |
Where is that |
21:48
🔗
|
SketchCow |
(I never do anything like this.) |
21:48
🔗
|
db48x |
on the right, under variables |
21:48
🔗
|
SketchCow |
e (optimized away) |
21:48
🔗
|
db48x |
heh |
21:53
🔗
|
SketchCow |
Ready to answer any other questions |
21:53
🔗
|
db48x |
well, I don't quite know what's going wrong |
21:54
🔗
|
db48x |
but |
21:55
🔗
|
db48x |
ok, if you grab the new loader.js from the loaderlab, it should at least print out what e was |
21:55
🔗
|
db48x |
part of the problem here is that I was ignoring a previous error |
21:56
🔗
|
db48x |
we're initializing the OverlayFS, it has an error, we ignore the error and try to write to it anyway, we get a different error |
21:56
🔗
|
SketchCow |
When you say "grab" |
21:56
🔗
|
SketchCow |
You mean, make them shove it in? |
21:56
🔗
|
db48x |
yep |
21:56
🔗
|
SketchCow |
I could test it in the loaderlab with my thing |
21:56
🔗
|
SketchCow |
Right? |
21:57
🔗
|
db48x |
sure |
21:59
🔗
|
SketchCow |
Failed to initialize the OverlayFS: Object { syscall: "", errno: 0, code: "EPERM", path: null, stack: "f@https://archive.org/download/load.", message: "Error: EPERM: OverlayFS is not init." } |
22:00
🔗
|
db48x |
dwwell |
22:00
🔗
|
db48x |
that seems to be telling us that we can't initialize the overlayfs because the overlayfs isn't initialized :P |
22:14
🔗
|
db48x |
I sent him an email |
22:15
🔗
|
SketchCow |
Great |
22:17
🔗
|
db48x |
since he's such an inveterate lurker |
22:21
🔗
|
SketchCow |
If you want fun: |
22:21
🔗
|
SketchCow |
https://www-giovanni.archive.org/details/color-computer-magazine-1983-04 |
22:21
🔗
|
SketchCow |
Click on the magnifying glass next to book reader |
22:22
🔗
|
SketchCow |
Goes to full view |
22:22
🔗
|
SketchCow |
click on 'search inside' |
22:22
🔗
|
SketchCow |
book, search text in book |
22:22
🔗
|
db48x |
neat |
22:34
🔗
|
SketchCow |
db48x: So we're at "hey, jvilk" |
22:34
🔗
|
SketchCow |
Right? |
22:35
🔗
|
db48x |
yea |
23:17
🔗
|
|
naTmeg has quit IRC (Leaving) |
23:48
🔗
|
SketchCow |
MAN, THAT GUY |
23:49
🔗
|
db48x |
heh |
23:50
🔗
|
|
Coderjoe has quit IRC (Read error: Operation timed out) |
23:59
🔗
|
|
Coderjoe has joined #jsmess |