Previous day | Jump to hour: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | Next day

Seconds: Show Hide | Joins: Show Hide | View raw
Font: Serif Sans-Serif Monospace | Size: Small Medium Large

Click in the nick column to highlight everything a person has said.
The Logo icon identifies that the person is a core developer (has commit access).

#rockbox log for 2013-07-02

00:11:16 Quit wodz (Quit: Leaving)
00:30:28 Quit bertrik (Ping timeout: 248 seconds)
00:31:39 Quit lebellium (Quit: ChatZilla 0.9.90 [Firefox 23.0/20130625125232])
00:34:13 Quit prof_wolfff (Read error: Operation timed out)
00:38:39 Join tjb0607 [0] (~tjb0607@
00:44:25 Quit tjb0607 (Quit: Segmentation fault)
00:57:16 Quit Hadaka (Ping timeout: 268 seconds)
00:58:05 Quit pamaury (Ping timeout: 264 seconds)
00:58:21 Join Hadaka [0] (
01:03:33 Quit saratoga (Ping timeout: 250 seconds)
01:48:36***Saving seen data "./dancer.seen"
02:11:58 Quit TeruFSX2 (Ping timeout: 256 seconds)
02:45:31 Join krabador [0] (~krabador@unaffiliated/krabador)
03:06:50 Quit TheSeven (Quit: No Ping reply in 180 seconds.)
03:07:42 Join TheSeven [0] (~quassel@rockbox/developer/TheSeven)
03:38:38 Quit krabador (Quit: Leaving)
03:48:38***Saving seen data "./dancer.seen"
04:02:27 Quit pixelma (Disconnected by services)
04:02:27 Join pixelma_ [0] (pixelma@rockbox/staff/pixelma)
04:02:30 Nick pixelma_ is now known as pixelma (pixelma@rockbox/staff/pixelma)
04:02:32 Quit amiconn (Disconnected by services)
04:02:33 Join amiconn_ [0] (quassel@rockbox/developer/amiconn)
04:02:37 Nick amiconn_ is now known as amiconn (quassel@rockbox/developer/amiconn)
04:36:55 Quit mrtux (Quit: nope.avi)
04:41:03 Join mrtux [0] (~mrtux@unaffiliated/mrtux)
04:56:16 Join TeruFSX [0] (
05:02:23 Quit TheSeven (Disconnected by services)
05:02:32 Join [7] [0] (~quassel@rockbox/developer/TheSeven)
05:05:13 Join Rower [0] (
05:10:57 Quit shamus (Read error: Connection reset by peer)
05:11:21 Join shamus [0] (
05:46:16 Quit belak (Quit: belak)
05:48:42***Saving seen data "./dancer.seen"
06:03:24 Quit Raptors (Read error: Connection reset by peer)
06:04:00 Join Raptors [0] (
06:04:53 Join kevku [0] (~kevku@2001:470:27:773:0:feed:c0f:fee)
06:52:54TeruFSXwhere's a more complete font pack?
06:54:32 Quit mrtux (Ping timeout: 246 seconds)
07:08:54 Join olspookishmagus [0] (
07:12:02 Join polemon [0] (
07:19:27 Nick Unhelpful_ is now known as Unhelpful (~quassel@rockbox/developer/Unhelpful)
07:19:47 Join LinusN [0] (
07:20:54 Part LinusN
07:21:21 Join pamaury [0] (~quassel@rockbox/developer/pamaury)
07:24:12 Join LinusN [0] (
07:31:56 Join TeruFSX2 [0] (
07:34:09 Quit TeruFSX (Ping timeout: 256 seconds)
07:44:43 Join belak [0] (~belak@facebook/engineering/belak)
07:48:17 Join mortalis [0] (~kvirc@
07:48:43***Saving seen data "./dancer.seen"
08:06:18 Join melmothX [0] (~melmoth@unaffiliated/melmothx)
08:13:52 Quit pamaury (Ping timeout: 245 seconds)
08:28:01 Quit bluebrother (Ping timeout: 246 seconds)
08:30:09 Join bluebrother [0] (~dom@rockbox/developer/bluebrother)
08:43:34 Join ender` [0] (
08:47:37 Join bertrik [0] (~quassel@rockbox/developer/bertrik)
08:49:29 Join TeruFSX [0] (
08:50:39 Quit TeruFSX2 (Ping timeout: 256 seconds)
08:59:58 Quit melmothX (Quit: #)
09:21:56 Join einhirn [0] (
09:24:04 Join petur [0] (~petur@rockbox/developer/petur)
09:27:53 Quit bertrik (Ping timeout: 268 seconds)
09:40:15 Quit petur (Quit: Nettalk6 -
09:44:07 Join petur [0] (~petur@rockbox/developer/petur)
09:48:46***Saving seen data "./dancer.seen"
10:10:45 Nick SuperBrainAK is now known as DormantBrain (~andy@
10:29:17 Quit kevku (Ping timeout: 245 seconds)
10:36:43 Join liar [0] (
11:13:18 Quit liar (Read error: Connection reset by peer)
11:14:33 Join liar [0] (
11:15:31 Quit belak (Quit: belak)
11:19:58 Quit scorche (Disconnected by services)
11:20:02 Join scorche` [0] (~scorche@rockbox/administrator/scorche)
11:22:38 Quit Scall (Ping timeout: 246 seconds)
11:23:23 Quit jhMikeS (Ping timeout: 252 seconds)
11:25:48 Join Scall [0] (~chat@unaffiliated/scall)
11:30:41 Quit Scall (Ping timeout: 246 seconds)
11:33:47 Join Scall [0] (~chat@unaffiliated/scall)
11:35:57 Join lebellium [0] (
11:48:50***Saving seen data "./dancer.seen"
11:51:22 Join melmothX [0] (~melmoth@unaffiliated/melmothx)
12:04:09 Join krabador [0] (~krabador@unaffiliated/krabador)
12:14:10 Quit Scall (Ping timeout: 240 seconds)
12:17:16 Join Scall [0] (~chat@unaffiliated/scall)
12:54:34 Join scorche [0] (~scorche@rockbox/administrator/scorche)
12:57:10 Quit scorche` (Ping timeout: 246 seconds)
13:05:39 Quit Scall (Ping timeout: 256 seconds)
13:13:47 Join Scall [0] (~chat@unaffiliated/scall)
13:48:54***Saving seen data "./dancer.seen"
13:51:05 Quit thegeek_ (Read error: Connection reset by peer)
13:52:55 Join thegeek [0] (
14:00:03 Quit penth (Read error: Connection reset by peer)
14:00:53 Join penth [0] (
14:17:18 Quit froggyman (Ping timeout: 264 seconds)
14:32:34 Quit mortalis (Read error: Connection reset by peer)
14:33:01 Join mortalis [0] (~kvirc@
14:37:08 Join froggymana [0] (
14:37:08 Quit froggymana (Changing host)
14:37:08 Join froggymana [0] (~froggyman@unaffiliated/froggyman)
14:42:32 Nick froggymana is now known as froggyman (~froggyman@unaffiliated/froggyman)
14:53:03 Quit krabador (Ping timeout: 260 seconds)
14:53:28 Quit olspookishmagus (Quit: free() the malloc())
15:05:24 Join krabador [0] (~krabador@unaffiliated/krabador)
15:25:15 Quit krabador (Ping timeout: 260 seconds)
15:36:52 Join krabador [0] (~krabador@unaffiliated/krabador)
15:37:41 Join amayer [0] (
15:40:14 Join darkham_ [0] (
15:40:18 Quit darkham_ (Read error: Connection reset by peer)
15:40:26 Join darkham_ [0] (
15:40:35 Quit darkham_ (Read error: Connection reset by peer)
15:40:49 Join darkham_ [0] (
15:41:05 Quit darkham_ (Read error: Connection reset by peer)
15:41:35 Quit krabador (Ping timeout: 260 seconds)
15:44:47 Join krabador [0] (~krabador@unaffiliated/krabador)
15:47:19 Quit Scall (Ping timeout: 252 seconds)
15:48:28polemonhello, did anybody had any eureka moments about the USB issues on iPod Nano 2nd Gen?
15:48:55***Saving seen data "./dancer.seen"
15:51:17 Join Scall [0] (~chat@unaffiliated/scall)
15:59:26 Join kevku [0] (~kevku@2001:470:27:773:0:feed:c0f:fee)
16:00:21 Join wodz [0] (
16:14:54 Quit Rower (Ping timeout: 264 seconds)
16:15:45 Join Rower [0] (
16:31:02 Part LinusN
16:58:59 Join mrtux [0] (~mrtux@unaffiliated/mrtux)
17:00:31 Quit wodz (Ping timeout: 256 seconds)
17:05:09 Join wodz [0] (
17:11:43 Quit mortalis (Quit: KVIrc 4.3.1 Aria
17:14:19 Join [Saint_] [0] (~saint@rockbox/user/saint)
17:14:19 Quit [Saint] (Disconnected by services)
17:28:06 Quit michaelni (Quit: Leaving)
17:28:17 Quit petur (Quit: Nettalk6 -
17:34:38 Quit dfkt (Ping timeout: 252 seconds)
17:35:54 Join pamaury [0] (~quassel@rockbox/developer/pamaury)
17:38:59 Join michaelni [0] (
17:40:36wodzpamaury: I looked at your nand page0 dump and I can't see anything strange
17:41:27wodzpamaury: BTW. are you going to inspect rk27xx usb with analyzer anytime soon?
17:43:02pamaurywodz: maybe, but last I tried I didn't spot anything strange and I have a lot of work this week and next week
17:43:27pamauryso probably not before 2 or 3 weeks
17:43:59wodzpamaury: no problem
17:45:42wodzpamaury: I was looking at your change to sdmmc. I guess ALL our drivers are buggy then
17:46:00wodzexcept the fixed imx233
17:48:46 Join Epicanis [0] (
17:48:58***Saving seen data "./dancer.seen"
17:50:44wodzpamaury: Is this 64bytes read a dummy one or the data are meaningful?
18:03:12pamaurywodz: data is meaningless but if the crc fails it is supposed to be an error
18:03:19 Quit krabador (Remote host closed the connection)
18:03:21pamaurythat's what the specification says
18:04:23wodzthats the first time I see something like this and I read lots of sd code examples during rk27xx sd driver write
18:04:42wodz64bytes is strange as well
18:06:40pamauryyeah, that's unusual for the spec, go figure out why it was done this way. Admitedly this is easy to overlook
18:07:37 Quit einhirn (Quit: Miranda IM! Smaller, Faster, Easier.
18:08:28wodzAnd you say that not reading this 64bytes can block the card, right?
18:08:47 Quit polemon (Read error: Operation timed out)
18:12:32wodzhell, our sd drivers are mess
18:14:28wodzamsv2 does not send CMD6 during init at all
18:17:34pamaurymost cards work fine without but some very picky one require this (or at least a 100ms delay)
18:18:03wodzI see 100ms delay in every driver sending CMD6
18:18:30pamauryyeah, because the spec says the card has 100ms after the response to send the data
18:19:39pamaurybut stricly speaking just waiting for 100ms is invalid, first because of the potential delay between command and response and because sending the data takes time too. Also the spec says the card HAS to receive the clock up to 8 clocks after end of data transfer
18:21:46wodzpamaury: I don't understand last sentence
18:22:35pamaurysome SD host only provide the card with the clock when doing the actual command and stop as soon as possible. If you don't say to the controller to expect data then the card will get stuck in the middle of the command because it doesn't have a clock anymore
18:25:38wodzI'll try this on rk27xx
18:26:44wodzanyway we seriously need to abstract SD interface
18:30:12pamauryyeah agreed
18:30:52pamauryyou should have a look at the linux code, it's quite clear and nice. I'm confident we can handle all the gory details with proper interface/quirks
18:33:58 Join pretty_function [0] (~sigBART@
18:34:00wodzpamaury: PP sd driver reads 512bytes after SD_SWITCH_FUNC
18:34:18 Join n1s [0] (
18:34:18 Quit n1s (Changing host)
18:34:18 Join n1s [0] (~n1s@rockbox/developer/n1s)
18:34:50pamauryhum, that's not correct either, it's really 64 bytes, but reading more is not risky anyway, you will just get a crc error but I guess the driver doesn't even check
18:35:13wodzpamaury: the comment says that first 512bits contain status information which we discard so yeah
18:35:42pamauryah wait, 512 bits = 64 bytes :)
18:38:21wodzyes, but it seems the driver reads more
18:38:31wodzanyway it discards this data
18:40:03 Join belak [0] (~belak@facebook/engineering/belak)
18:40:08 Quit belak (Max SendQ exceeded)
18:41:06 Join belak [0] (~belak@facebook/engineering/belak)
18:42:02wodzpamaury: what is this 0x80fffff1 parameter to SD_SWITCH_FUNC ? pp driver sets it to 0x80ffffef
18:45:48pamaurydon't remember, need to lookup in the spec
18:46:03pamaury(we should have proper define for these too)
18:46:21 Join bertrik [0] (~quassel@rockbox/developer/bertrik)
18:47:20pamauryit switches to high speed mode
18:47:36pamaurythe pp ones seems strange: setting the second groupe to 0xe is vendor specific I think
18:48:27pamauryactually I was wrong, the 64 bytes have a meaning: they give the actual result of the switch.
18:49:24 Join y4n [0] (~y4n@unaffiliated/y4ndexx)
18:53:51wodzHow many sd low level drivers do we have? pp, imx233, amsv1, amsv2, tms320dm320, ingenic, tcc780x, s3c2440, rk27xx thats 9 if I count correct. Rewriting this would be a HUGE task not speaking about testing...
18:54:57pamaurytesting is probably the terrible part
18:55:22pamauryI think we should first write a generic one and slowly move the drivers to the generic interface
18:56:01pamaurybut we need to think ahead all the details, like how to handle crazy things like amsv2 where you have "bank switching"
18:57:05wodzrk27xx have internal buffer switching which is equally weird :-)
18:57:06 Join dfkt [0] (OxO29A@unaffiliated/dfkt)
18:57:58pamauryurg, what is this ?
18:59:47wodzThere is double buffer between SD controller and MCU. You issue the transfer and SD controller fills one buffer while you are free to mangle the second one. Then you switch the buffers.
19:00:26wodzthis allows for some time overlaping
19:01:23pamauryhum, but doesn't it have dma ?
19:01:45wodzit has (probably) but is 100% undocumented
19:02:01wodzOF doesn't use DMA for SD transfers also
19:02:28wodzI made and attempt to figure it out but failed
19:03:12wodzwhat is this amsv2 bank switching?
19:04:08pamauryok, I guess that's not a critical issue, that's just a detail on how you handle a command, you can abstract this easily. Bank switching is more problematic: you need to switch a bank to access the full storage, otherwise you can only access the firmware partition (or something like this)
19:04:10copperpamaury: do you know of a way to reliably reproduce the Fuze+ crashing during USB transfers?
19:04:33pamauryit hardly happens on my fuze+
19:04:38coppermine hasn't had any problem since I changed a few things
19:04:46copperbut I don't know what fixed it
19:06:22copper1) I modified my skin
19:06:35copper2) I put my USB DAC on a USB3 port
19:06:50copper3) I bought a new sdxc card
19:06:57pamaurysome skin are known to corrupt USB
19:07:03copper4) I use a script to copy files onto the sdxc card using direct I/O
19:07:12pamaurymaybe some skin related changes (fixes)
19:08:11copperI sort of have this layman idea that huge filesystem buffers could overwhelm the card, or the DAP's controller, or something
19:08:22copperdunno if there's anything to it
19:09:04coppermostly the upside of direct I/O is that I know how fast it goes, and I can compute a reliable ETA
19:09:45copperand I can unmount immediately after the transfer is completed
19:10:01copperinstead of having it sync for gawd knows how long
19:11:18wodzpamaury: If I see correctly amsv2 would require small ifdefing to support OF part offsets.
19:11:40pamauryNo, the only thing which could possibly crash USB are memory corruption (mostly likely due to buflib users) or that the code somehow manage to trigger the bug/errata of the usb controller (but I think our code is safe in this regarde)
19:11:57pamaurywodz: yes, maybe we could have a target specific init function, or something of this kind
19:12:11pamauryor ifdefing if the amount of code is small
19:12:25 Nick DormantBrain is now known as SuperBrainAK (~andy@
19:15:36wodzpamaury: I am thinking of what lowlevel stuff is needed: 1) sd_cmd() which sends command to the controller with proper expected response 2) some transfer prepare function (like DMA setup, buffers etc.) 3) actual data transfer function
19:15:50wodzpamaury: Can you think of anything else?
19:16:10wodzpamaury: ah sd_controller_init() of course
19:18:39pamaurywouldn't it be better to have a single function which does everything (command, response, data transfer) ?
19:19:52pamauryyou could make it very general: command, kind of response, whether to crc the response, kind of data, whether to crc the data
19:21:43 Join mortalis [0] (~mortalis@
19:21:58wodzThats basicaly the 3-in-1. For some targets it is possible probably to handle all in one step but for some it is not.
19:23:26wodzI don't see a way to genericaly code sd transfers in rk27xx :-)
19:24:24pamaurywhat do you mean ?
19:24:39pamaurydata transfer can be decoupled from the command in many cases
19:25:24pamaurygiven all the relevant parameters, why couldn't you write a generic code to transfer data ?
19:28:23wodzin case of rk27xx the transfer flow is as follows 1) reset exchange buffer, prepare controller for data transfers (this is different for the last block moved) 2) Issue cmd to SD 3) ack transfer to the controller, switch exchange buffers, copy data
19:29:01wodzgetting data is very separated from the command
19:29:09wodz*very much
19:29:11pamauryI don't see the issue, if you know all the parameters, you can write a generic one
19:29:17pamauryif i'm corrupt the parameters would be: command, argument, response kind, crc resp?, data transfer direction, data buffer, block size, block count, crc data?, timeout (possibly different for response)
19:29:38 Join polemon [0] (
19:30:08wodzfor such number of params we would need to introduce configure struct and pass pointer only
19:30:13 Quit polemon (Remote host closed the connection)
19:31:24pamauryI guess so
19:31:31wodzhow would you call such a beast sd_swiss_knife_do_all_in_one() :-)
19:32:44pamauryhehe ^^ well sd_command ?
19:33:04pamauryactually while we are at it, we could handle mmc
19:34:25wodzOk, it is possible for sure. I'll try to write one for rk27xx to see what problems I'll step in
19:34:47pamauryon the imx233, it is already written ;)
19:35:16 Join polemon [0] (
19:37:37 Quit melmothX (Read error: Connection reset by peer)
19:38:01wodzsend_cmd(int drive, uint8_t cmd, uint32_t arg, uint32_t flags, uint32_t *resp) is pretty inefficient (parameter passed on the stack)
19:40:23pamaurythe actual one is more imx233_ssp_sd_mmc_transfer, it has even more parameters ;)
19:40:24bertrikstack? hah! just use global variables
19:40:48pamaurystack is not worse than memory if you think about it, but anyway a structure is nicer
19:41:11*bertrik was kidding and hopes nobody took that seriously
19:44:30 Join shanttu [0] (
19:45:41 Quit wodz (Quit: Leaving)
19:45:48copperpamaury: what's buflib?
19:48:17pamauryhaha, some could say it's the cloest thing to evil in rockbox ;)
19:48:32pamauryit's a memory allocator
19:48:38shanttuHi. I've used rockbox succesfully on my Clip+. Today I got some "panic" error. Now I get the device on USB bootloader mode, but Rockbox utility or file manager doesn't detect the device. OF boots ok. What to do? I'm on linux PC.
19:49:02***Saving seen data "./dancer.seen"
19:49:24copperpamaury: and what makes Rockbox users "buflib" users?
19:49:28copperam I one?
19:49:29shanttuReinstall the bootloader, but how?
19:49:55pamaurycopper: buflib is used to allocate memory, it's heavily used for skins for example
19:50:48pamauryshanttu: have you tried to reboot the device normally ?
19:54:25shanttupamaury, yes. After very long time I get some error about bootloader not found afaik. Still waiting for the exact error
19:59:27 Join jlbiasini [0] (~metaphysi@
19:59:39shanttu"plug usb cable"
20:00:19pamauryshanttu: can you copy the exact error message please ?
20:00:31 Join gapan [0] (
20:00:32 Quit belak (Quit: belak)
20:01:27shanttupamaury, sure, it just passed. takes minutes to give the message and then goes to suggesting plugging. will not let it go now
20:02:03jlbiasinipamaury: thanks for your comment on my patch. Player doesn't have radio, but recorder and ondio have radio and for what I check, the keylock key aren't mapped to anything else in radio context. Should I make a patch to activate the softlock for FM on those target?
20:03:02 Quit DexterLB (Quit: So long and thanks for all the fish)
20:03:37 Join belak [0] (~belak@facebook/engineering/belak)
20:05:24pamauryjlbiasini: sure, but then you'll have to find people to poke at to test it
20:06:02jlbiasinipamaury: is there any possible problem if this isn't map to anything?
20:07:40pamauryyes, for example with complex combination with release actions and so on, it's unlikely but it's really better to test it
20:11:47pamauryshanttu: i'm not expert for the clip+, maybe bertrik knows
20:11:49pamauryor funman
20:12:16jlbiasinipamaury: so testing in the simulator isn't enough?
20:12:41jlbiasiniI'll write on the mailing list then...
20:13:11shanttupamaury, "loading firware file not found"
20:13:17pamauryjlbiasini: simulator should be good enough but i always feel that's it's better on target
20:20:49 Join melmothX [0] (~melmoth@unaffiliated/melmothx)
20:24:55 Join saratoga [0] (d8507479@gateway/web/freenode/ip.
20:32:50saratogadoes SD storage work in the AMS bootloaders?
20:35:10 Quit jlbiasini (Quit: jlbiasini)
20:41:12funmannope, it's not activated in the config
20:41:26funman(the microSD slot, that is)
20:42:27saratogai was thinking about adding a key push that let you boot off the SD card
20:42:33saratogato recover from a scrambled internal memory
20:42:49funmanwell that could work
20:43:01funmansaratoga: just remove the ifdef BOOTLOADER in config/sansa*.h
20:43:19saratogai'll try it out when i get home
20:44:30saratogaactually maybe i can try it now
20:48:53bertriksaratoga: scrambled how, with the bootloader intact, but the OF corrupted?
20:49:18saratogabertrik: yeah, sometimes the internal memory seems to get corrupted enough that nothing can boot but the bootloader still works
20:49:48funmanwell the USB mode should solve that no ?
20:49:54bertrikweird, the bootloader storage and internal storage are the same physical device
20:49:59funmanor does USB still not work 100% of the time on some configs?
20:50:39 Join wodz [0] (
20:53:03saratogadoes bootloader USB mode actually work on AMSv2?
20:53:16funmanshould, yes
20:53:33saratogaare you sure SD isn't enabled in the bootloader? looking at the clipv2 config it seems like STORAGE_SD is defined
20:55:43funmansaratoga: press center and plug usb to get to USB mode
20:55:48funmanworks with fuzev2
20:56:27funmanhmm it seems to be enabled for clipv2 indeed, but not for the zip
20:56:32saratogafunman: maybe it would help this guy:,43228.0.html
20:57:08funmantell him to try bootloader USB first i think
20:59:21 Quit belak (Quit: belak)
21:01:24wodzpamaury: you seem to use SD response types: MCI_NO_RESP, MCI_RESP and MCI_LONG_RESP but possible responses for SD are R1, R1b, R2, R3 and R6. rk27xx handle this in hardware
21:02:08pamaurythe only really difference between those is the response size and the busy bit
21:03:15 Join belak [0] (~belak@facebook/engineering/belak)
21:03:37pamaury(and the interpretation of course but the hardware doesn't interpret them)
21:03:56bertrikIIRC a few commands don't have a response, like the sd deselect command
21:05:42pamauryyes, that's why there mni_no_resp
21:06:35wodzI guess rk27xx can check the response in hardware, otherwise why would it have such field in SD_CMDREST regsiter?
21:07:29wodzIt sets flag in SD status register
21:10:39 Quit pretty_function (Remote host closed the connection)
21:19:47 Quit mortalis (Quit: KVIrc 4.3.1 Aria
21:47:23 Quit Xerion (Read error: No route to host)
21:49:03***Saving seen data "./dancer.seen"
22:03:39 Quit y4n (Quit: MOTHER EUROPA CALLING ME!)
22:13:14 Join Xerion [0] (
22:29:10 Quit n1s (Quit: Ex-Chat)
22:35:51 Quit melmothX (Quit: #)
22:56:32 Quit shanttu (Remote host closed the connection)
22:59:41 Quit Rower (Quit: Hmmm...)
23:08:04 Join jhMikeS [0] (
23:08:08 Quit jhMikeS (Changing host)
23:08:09 Join jhMikeS [0] (~jethead71@rockbox/developer/jhMikeS)
23:32:43 Quit dfkt (Ping timeout: 246 seconds)
23:49:04***Saving seen data "./dancer.seen"
23:54:16 Quit kevku (Ping timeout: 245 seconds)

Previous day | Next day