00:00:04 | | Quit lebellium (Quit: ChatZilla 0.9.90.1 [Firefox 32.0/20140807212602]) |
00:00:54 | | Quit lleeloo (Ping timeout: 250 seconds) |
00:05:06 | | Nick krabador is now known as krabaRIPRWilliam (~krabador@unaffiliated/krabador) |
00:05:19 | | Nick krabaRIPRWilliam is now known as krabRIPRWilliams (~krabador@unaffiliated/krabador) |
00:06:45 | | Join GodEater [0] (~whoknows@207.207.22.62) |
00:06:45 | | Quit GodEater (Changing host) |
00:06:45 | | Join GodEater [0] (~whoknows@rockbox/staff/GodEater) |
00:13:02 | | Quit bertrik (Remote host closed the connection) |
00:25:19 | *** | Saving seen data "./dancer.seen" |
00:59:01 | | Quit franklin (Read error: Connection reset by peer) |
00:59:30 | | Join franklin [0] (~franklin@cpe-071-071-071-105.triad.res.rr.com) |
01:00 |
01:16:44 | | Quit franklin (Ping timeout: 264 seconds) |
01:17:33 | | Quit GeekShadow (Ping timeout: 244 seconds) |
01:18:31 | | Join franklin [0] (~franklin@cpe-071-071-071-105.triad.res.rr.com) |
01:22:43 | | Join GeekShadow [0] (~antoine@nzf.turmel.info) |
01:22:43 | | Quit GeekShadow (Changing host) |
01:22:43 | | Join GeekShadow [0] (~antoine@reactos/tester/GeekShadow) |
01:31:30 | | Quit franklin (Ping timeout: 244 seconds) |
02:00 |
02:12:09 | | Quit ZincAlloy (Quit: Leaving.) |
02:25:21 | *** | Saving seen data "./dancer.seen" |
02:44:39 | | Join ikeboy [0] (~ikeboy@ool-435622d3.dyn.optonline.net) |
02:59:54 | | Join franklin [0] (~franklin@cpe-071-071-071-105.triad.res.rr.com) |
03:00 |
03:00:02 | | Quit AlexP (Remote host closed the connection) |
03:00:08 | franklin | saratoga, do you think a TinyCC port is possible? |
03:00:44 | franklin | I know it has about 0% chance of getting merged, but maybe someone might find it somewhat useful (me, maybe?)... ;) |
03:02:34 | [Saint] | WHy the fuck would you even want that? |
03:02:48 | franklin | As you say, for grins :D |
03:02:58 | [Saint] | As I say? |
03:03:08 | franklin | You said that some time ago |
03:03:14 | franklin | "for grins" |
03:03:24 | [Saint] | I most certainly did not. |
03:03:31 | JdGordon | yeah, that doesnt sound like [Saint] |
03:03:40 | franklin | You used that phrase some time ago, I remember it quite clearly |
03:03:43 | JdGordon | he'd have said something like "for fucks" |
03:03:48 | franklin | lol |
03:04:02 | franklin | But still, for grins :D |
03:04:48 | franklin | But hey, who doesn't need a C compiler on their MP3 player? :p |
03:05:01 | [Saint] | I just grepped my logs, and, totally unsurprisingly, the only one who's every said that was you. |
03:05:07 | [Saint] | multiple times, in fact. |
03:05:15 | [Saint] | *ever |
03:05:19 | JdGordon | haha |
03:05:41 | franklin | Oh wait that was someone over at ##programming or ##linux |
03:05:47 | franklin | lol |
03:05:59 | franklin | Or ##hacking |
03:06:17 | franklin | Yeah, some guy at ##programming |
03:09:43 | franklin | But why not have a C compiler on your mp3 player? ;) |
03:10:01 | [Saint] | Because its a stupid idea? |
03:10:15 | alexbobp | depends on the mp3 player! |
03:10:33 | [Saint] | To get the source files on the device, you're going to need to use a device that is _much_ more capable to do so... |
03:10:38 | alexbobp | I mean it's a stupid idea for all of the rockbox targets except android though, so there's that |
03:10:49 | [Saint] | So, you're kicking yourself in the ass. |
03:10:53 | [Saint] | For literally no reason. |
03:10:55 | alexbobp | and on android it would make no sense for the compiler to be part of rockbox |
03:11:05 | [Saint] | Exactly. |
03:11:34 | [Saint] | It only even vaguely makes sense on hosted targets, and hosted targets ALL have a much better native solution. |
03:11:51 | [Saint] | Fuck programming with the virtual keyboard. |
03:12:02 | [Saint] | I'd rather stab myself in the eyes. |
03:12:51 | | Quit franklin (Quit: Leaving) |
03:13:06 | | Join franklin [0] (~franklin@cpe-071-071-071-105.triad.res.rr.com) |
03:14:16 | franklin | Wow my connection is bad today... |
03:14:27 | Galois | I don't see the point of an editor, but a compiler is somewhat useful. |
03:14:35 | [Saint] | Err...that was a client quit. |
03:14:39 | [Saint] | We can all see it. |
03:14:43 | franklin | Exactly! |
03:14:57 | Galois | on my iPad, for example, the "normal" way to compile programs requires a Mac. I don't have a Mac, but I do have an iPad. |
03:15:33 | Galois | with a jailbroken iPad you can install a C compiler and even a rudimentary SDK on the device itself. This is the only reasonable way for me to build code on the device given that I don't have a Mac. |
03:16:06 | franklin | But now to more... serious.. discussion: why doesn't DOOM run on the Classic!? That's the killer app of Rockbox! :D |
03:16:06 | franklin | (literally-"killer" app lol) |
03:16:31 | [Saint] | It used to at some point. |
03:16:39 | [Saint] | Realistically, no one cares about it. |
03:16:42 | Galois | I don't actually write code literally on the device, I ssh into it from a real computer. But all the compiling is done on the device. |
03:17:44 | Galois | for non-Android rockbox, it probably doesn't make sense (you can't ssh into such a device). But in principle it is conceivably useful on some platforms. |
03:17:56 | [Saint] | This is really offtopic, but the only thing stopping you from compiling for iOS et all on a non-MAc is dedication. |
03:18:16 | [Saint] | Its most certainly possible. |
03:18:24 | Galois | ok, yeah, there's other really hackish solutions. But the on-device route is the least hackish non-Mac approach. |
03:18:46 | [Saint] | subjective |
03:18:58 | [Saint] | I'd argue its very hackish. |
03:18:59 | Galois | yes, sure. Subjective. |
03:19:15 | Galois | in general native compilation avoids a whole host of problems that cross compilers encounter |
03:19:32 | Galois | a much more uniform OS environment, just for one |
03:20:06 | | Join franklin_ [0] (~franklin@cpe-071-071-071-105.triad.res.rr.com) |
03:20:13 | franklin_ | just crashed again... |
03:20:24 | * | franklin_ suspects something is wrong with his modem |
03:21:09 | alexbobp | Galois: how come these weird ipad hacking folks can hack a C build environment onto the ipad itself, but can't hack it onto a reasonable linux system? |
03:21:22 | franklin_ | lol |
03:21:31 | franklin_ | You probably could... just no one wants to |
03:21:40 | Galois | because on the iPad you don't have to deal with cross compilation, and it's legally easier since you don't have to copy code that's already on the iPad |
03:21:51 | franklin_ | No wait... you can now: install a VM :P |
03:21:56 | alexbobp | jailbreakers are so concerned with the law I'm sure |
03:22:01 | franklin_ | lol |
03:22:04 | Galois | jailbreaking iPhones is totally legal |
03:22:15 | Galois | copying major parts of iOS into a rogue Linux SDK is not |
03:22:18 | | Quit franklin (Ping timeout: 255 seconds) |
03:22:18 | [Saint] | *as of a few days ago* |
03:22:30 | Galois | it was totally legal from 2009 to 2012, and yes, as of a few days ago, in the USA |
03:22:48 | [Saint] | fun fact: not everyone lives in your locale |
03:23:01 | Galois | well, I live in my locale |
03:23:06 | Galois | these laws affect me. |
03:23:08 | franklin_ | Why until a few days ago? |
03:23:18 | | Quit Cinos (Excess Flood) |
03:23:56 | franklin_ | [Saint], I believe it's legal in NZ, right? |
03:24:15 | franklin_ | As long as you do it for legal purposes |
03:24:18 | [Saint] | I believe there's a /topic here |
03:24:36 | | Join Cinos [0] (Cinos@cinos.biz) |
03:29:04 | | Quit krabRIPRWilliams (Quit: Take the time.) |
03:29:16 | | Nick franklin_ is now known as franklin (~franklin@cpe-071-071-071-105.triad.res.rr.com) |
03:29:18 | franklin | Ah lost connection again |
03:29:46 | | Join franklin_ [0] (~franklin@cpe-071-071-071-105.triad.res.rr.com) |
03:33:51 | | Quit franklin (Ping timeout: 272 seconds) |
03:33:51 | | Quit franklin_ (Read error: Connection reset by peer) |
03:34:24 | | Join franklin [0] (~franklin@cpe-071-071-071-105.triad.res.rr.com) |
03:37:34 | | Quit franklin (Read error: Connection reset by peer) |
03:38:06 | | Join franklin [0] (~franklin@cpe-071-071-071-105.triad.res.rr.com) |
03:41:47 | | Join ender^ [0] (krneki@2a01:260:4094:1:42:42:42:42) |
03:41:53 | | Quit amiconn (Read error: Connection reset by peer) |
03:42:24 | | Quit ender` (Remote host closed the connection) |
03:43:58 | | Quit Synergist (Ping timeout: 250 seconds) |
03:44:02 | | Join amiconn [0] (quassel@rockbox/developer/amiconn) |
03:46:02 | | Join Synergist [0] (~synfn@node1.customhost.org.uk) |
03:46:05 | | Quit Synergist (Changing host) |
03:46:05 | | Join Synergist [0] (~synfn@unaffiliated/synergist) |
03:50:05 | | Quit ikeboy (Quit: Leaving) |
03:59:06 | | Quit franklin (Quit: Leaving) |
03:59:22 | | Join franklin [0] (~franklin@cpe-071-071-071-105.triad.res.rr.com) |
04:00 |
04:08:16 | | Quit franklin (Read error: Connection reset by peer) |
04:08:45 | | Join franklin [0] (~franklin@cpe-071-071-071-105.triad.res.rr.com) |
04:09:20 | | Quit franklin (Client Quit) |
04:09:38 | | Join franklin [0] (~franklin@cpe-071-071-071-105.triad.res.rr.com) |
04:14:40 | [Saint] | JdGordon: is the "arbitrary tag to bar" tag supposed to have a touch area? |
04:15:16 | JdGordon | the which? |
04:19:31 | | Join ikeboy [0] (~ikeboy@ool-435622d3.dyn.optonline.net) |
04:20:41 | [Saint] | Argh. Fuck. Documentation. |
04:21:01 | [Saint] | A while back you added, I believe, a way to turn any arbitrary tag into a bar. |
04:21:17 | [Saint] | Unsurprisingly I can't find it in the docs. |
04:23:28 | * | [Saint] bloody well hopes he didn't invent this |
04:23:55 | [Saint] | ...if I did, I'll be pissed, because I've backed myself into a corner. |
04:25:13 | | Quit amiconn (Disconnected by services) |
04:25:14 | | Join amiconn_ [0] (amiconn@rockbox/developer/amiconn) |
04:25:14 | | Quit pixelma (Disconnected by services) |
04:25:14 | | Join pixelma_ [0] (pixelma@rockbox/staff/pixelma) |
04:25:17 | | Nick pixelma_ is now known as pixelma (pixelma@rockbox/staff/pixelma) |
04:25:17 | | Nick amiconn_ is now known as amiconn (amiconn@rockbox/developer/amiconn) |
04:25:22 | *** | Saving seen data "./dancer.seen" |
04:26:51 | | Quit franklin (Ping timeout: 245 seconds) |
04:27:13 | [Saint] | Oh, no, Firefox's PDF search is just fucking braindead. I see. |
04:27:48 | [Saint] | JdGordon: %St(...) |
04:28:08 | [Saint] | (that's the wonderful syntax example the manual gives :)) |
04:28:35 | | Join franklin [0] (~franklin@cpe-071-071-071-105.triad.res.rr.com) |
04:29:11 | * | [Saint] has no idea of the accepted syntax or if touch regions are supported. |
04:30:54 | franklin | Anyone know a bit about the wiki? |
04:37:02 | franklin | Strange... 2048 is listed, but not a link' |
04:37:06 | | Quit franklin (Quit: Leaving) |
04:37:37 | | Join franklin [0] (~franklin@cpe-071-071-071-105.triad.res.rr.com) |
04:38:38 | [Saint] | JdGordon: am I perhaps misinterpreting "%St(...) Draw a bar using from the setting."? |
04:39:14 | [Saint] | its gramatically vague enough to have me doubting myself. |
04:39:57 | franklin | Mr. Someone needs to write better docs... |
04:42:27 | franklin | But seriously −− why doesn't doom work?! |
04:43:18 | [Saint] | Because it stopped working at some point, and NO ONE cares. |
04:43:32 | franklin | I guess I'll fix it tomorrow... good night! |
04:43:36 | [Saint] | No one gives a shit about a plugin no one uses on an unreleased uninstallable target. |
04:43:45 | | Quit franklin (Quit: Leaving) |
04:43:58 | | Join cmhobbs_ [0] (~cmhobbs@ip98-186-66-92.fv.ks.cox.net) |
04:51:49 | | Join ygrek [0] (~user@108.59.6.97) |
05:00 |
05:21:58 | | Quit steffengy (Disconnected by services) |
05:21:59 | | Join steffengy1 [0] (~quassel@p5088F53D.dip0.t-ipconnect.de) |
05:33:52 | JdGordon | [Saint]: St is for settings only, not arbitrry tags |
05:34:05 | JdGordon | thats one thing i'd like to add but never can be bothered |
05:34:36 | [Saint] | well, yeah, ok, granted...but ~90% of those settings are accessible as tags. |
05:34:39 | [Saint] | semantics |
05:35:04 | [Saint] | anyway - what I'm actually interested in is: a - syntax, b: touch capable? |
05:35:23 | JdGordon | and no, %St cant be used as a bar |
05:35:50 | [Saint] | The manual entry you added directly contradicts that. |
05:35:53 | [Saint] | Are you sure? |
05:36:01 | JdGordon | link? |
05:36:34 | [Saint] | "%St(...) Draw a bar using from the setting. |
05:36:47 | [Saint] | (I can't supply a link because the web manuals are broken) |
05:37:04 | JdGordon | link to git.rockbox.org? |
05:37:52 | [Saint] | Uuuuugh. Its fucking impossible to search gerrit. |
05:38:00 | [Saint] | s/gerrit/git/ ... actually, both. |
05:38:34 | [Saint] | ha :) |
05:38:34 | [Saint] | http://git.rockbox.org/?p=rockbox.git;a=commit;h=65f9df3083623484efccf502c33ecc959555d247 |
05:38:35 | JdGordon | hmm, apparenlty there is code for it |
05:39:52 | [Saint] | aha - woo, %St(<bar tags>, setting, <setting name>) was what I wanted. |
05:39:52 | [Saint] | but, no touch region. Fuck. |
05:40:05 | JdGordon | touch should work |
05:40:32 | * | [Saint] hops it also accepts 'invert' then. |
05:40:53 | JdGordon | it should accept all the bar tags |
05:40:58 | JdGordon | its all the same parse function |
05:44:23 | | Join ungali [0] (~ungali@S010600226b6da694.cg.shawcable.net) |
05:44:23 | | Quit ungali (Changing host) |
05:44:23 | | Join ungali [0] (~ungali@unaffiliated/ungali) |
05:45:33 | * | [Saint] thinks about adding a "noinvert" param and making LTR/RTL direction sensitive touch regions flip automagically with RTL locales |
05:45:41 | [Saint] | ...is that a thing we would want? |
05:45:47 | [Saint] | Or just something *I* want? |
05:45:51 | | Quit TheSeven (Ping timeout: 260 seconds) |
05:46:05 | JdGordon | rtl is just broken |
05:46:20 | [Saint] | (I know its definitely the latter, but, if its actually going to be useful...I'll do it) |
05:47:27 | | Join TheSeven [0] (~quassel@rockbox/developer/TheSeven) |
05:47:29 | [Saint] | making an actual locale agnostic theme is /possible/. |
05:47:38 | [Saint] | But, its sure as shit not easy. |
06:00 |
06:25:23 | *** | Saving seen data "./dancer.seen" |
06:31:45 | | Quit ungali (Remote host closed the connection) |
06:35:25 | | Join kugel [0] (~kugel@91-66-52-228-dynip.superkabel.de) |
06:35:34 | | Quit kugel (Changing host) |
06:35:34 | | Join kugel [0] (~kugel@rockbox/developer/kugel) |
06:40:31 | | Quit kugel (Ping timeout: 272 seconds) |
06:54:19 | | Quit jhMikeS (Read error: Connection reset by peer) |
06:56:43 | | Quit ikeboy (Quit: Leaving) |
06:57:54 | | Join jhMikeS [0] (~jethead71@rockbox/developer/jhMikeS) |
07:00 |
07:01:10 | | Quit dfkt_ (Read error: Connection reset by peer) |
07:01:52 | | Join dfkt [0] (dfkt@chello084112032026.1.11.vie.surfer.at) |
07:01:52 | | Quit dfkt (Changing host) |
07:01:52 | | Join dfkt [0] (dfkt@unaffiliated/dfkt) |
08:00 |
08:15:33 | | Join kugel [0] (~kugel@avm-guido.avm.de) |
08:15:35 | | Quit kugel (Changing host) |
08:15:35 | | Join kugel [0] (~kugel@rockbox/developer/kugel) |
08:25:24 | *** | Saving seen data "./dancer.seen" |
08:32:01 | | Join kugel_ [0] (~kugel@rockbox/developer/kugel) |
08:38:46 | | Quit copper (Quit: ZNC - http://znc.in) |
08:42:36 | | Join ender` [0] (krneki@foo.eternallybored.org) |
08:58:31 | | Nick SuperBrainAK is now known as DormantBrain (~andy@2001:470:8:a61::5f92:59a1) |
08:58:43 | | Join einhirn [0] (~Miranda@bsod.rz.tu-clausthal.de) |
09:00 |
09:00:58 | | Join petur [0] (~petur@rockbox/developer/petur) |
09:05:40 | | Quit ygrek (Ping timeout: 255 seconds) |
09:17:04 | | Quit kugel_ (Quit: leaving) |
09:25:19 | | Join Zagor [0] (~bjst@80.239.169.202) |
09:25:34 | | Quit Zagor (Changing host) |
09:25:34 | | Join Zagor [242] (~bjst@rockbox/developer/Zagor) |
10:00 |
10:09:18 | | Quit the-kyle (Remote host closed the connection) |
10:11:19 | | Join the-kyle [0] (~kyle@kyle.tk) |
10:25:27 | *** | Saving seen data "./dancer.seen" |
10:37:55 | | Quit the-kyle (Ping timeout: 240 seconds) |
10:42:12 | | Join pamaury [0] (~quassel@rockbox/developer/pamaury) |
10:47:05 | | Join AlexP [0] (~alex@rockbox/staff/AlexP) |
10:57:39 | | Join ygrek [0] (~user@108.59.6.97) |
10:59:02 | | Join wodz [0] (~wodz@iwl138.internetdsl.tpnet.pl) |
10:59:39 | wodz | pamaury: You pinged me a few days ago about some change made during devcon. Could you elaborate what it was? |
11:00 |
11:04:16 | pamaury | wodz: improvements to the xml parser error messages |
11:07:08 | wodz | I thought it went in |
11:11:42 | wodz | pamaury: I have a question about hwpatcher. I need to update crc of patched rkw. I can calc crc in lua or in C. What is the most straight forward solution as I can't see simple way to access firmware image in lua to calc crc (make_addr and friends needs to be employed) |
11:12:41 | | Join the-kyle [0] (~kyle@cpe-075-177-188-248.nc.res.rr.com) |
11:13:44 | | Quit the-kyle (Remote host closed the connection) |
11:13:50 | pamaury | wodz: do it in C |
11:13:59 | pamaury | in lua it will be very slow |
11:14:17 | pamaury | and the lua interface doesn't provide full access to the firmware images internals anyway |
11:14:54 | pamaury | if you feel uncomfortable for the C/lua interface, I can write a prototype and upload it in one hour |
11:15:12 | wodz | pamaury: Would be great. |
11:15:44 | pamaury | I guess you only want that for raw binary images ? |
11:16:57 | wodz | yes |
11:20:25 | wodz | pamaury: basically I need to calc crc of firmware without header (header is 44bytes) and last 4 bytes which store crc. |
11:20:54 | wodz | but I guess this is minor detail |
11:21:37 | pamaury | wodz: ok, hum, the lua interface allows one to retrieve all bytes of a raw images iirc, so my guess is that it should be possible to just implement a crc function for a byte array, and then call it on some byte array, I'll provide an example |
11:29:03 | | Join the-kyle [0] (~kyle@cpe-075-177-188-248.nc.res.rr.com) |
11:29:04 | | Quit the-kyle (Remote host closed the connection) |
11:31:03 | | Join ZincAlloy [0] (~Adium@pD9EEA3F1.dip0.t-ipconnect.de) |
11:31:39 | | Join the-kyle [0] (~kyle@kyle.tk) |
12:00 |
12:00:04 | | Quit bcobco (*.net *.split) |
12:00:04 | | Quit Scall (*.net *.split) |
12:00:05 | | Quit [Saint] (*.net *.split) |
12:00:05 | | Quit Galois (*.net *.split) |
12:00:11 | pamaury | wodz: one more question, since there are many kinds of CRCs, do you mind if I give an extra parameter to the function to describe which CRC to use ? there would be a list of defined CRCs, so that it is easy to add one |
12:01:30 | wodz | sure, go ahead |
12:02:31 | pamaury | I think I'm going to add more functions to access firmware structure too, because at the moment it's very poor |
12:07:15 | | Join bcobco [0] (~bcobco@77.228.124.149) |
12:07:15 | | Join [Saint] [0] (~saint@rockbox/staff/saint) |
12:07:15 | | Join Galois [0] (djao@efnet.math.uwaterloo.ca) |
12:09:55 | | Join Scall [0] (~chat@unaffiliated/scall) |
12:17:15 | pamaury | wodz: what do you think is better: return CRC as a number or a byte array ? |
12:20:41 | | Join sfate [0] (~sfate@195.26.17.74) |
12:23:47 | | Quit olspookishmagus (Quit: All for nothing) |
12:23:55 | | Quit bcobco (*.net *.split) |
12:23:55 | | Quit [Saint] (*.net *.split) |
12:23:56 | | Quit Galois (*.net *.split) |
12:24:08 | | Join olspookishmagus [0] (~pookie@snf-137798.vm.okeanos.grnet.gr) |
12:24:16 | wodz | I was thinking about number |
12:25:28 | *** | Saving seen data "./dancer.seen" |
12:25:48 | | Quit sfate (Ping timeout: 250 seconds) |
12:28:51 | pamaury | ok |
12:30:37 | | Join bcobco [0] (~bcobco@77.228.124.149) |
12:30:37 | | Join [Saint] [0] (~saint@rockbox/staff/saint) |
12:30:37 | | Join Galois [0] (djao@efnet.math.uwaterloo.ca) |
12:37:17 | | Join sfate [0] (~sfate@195.26.17.74) |
12:37:24 | pamaury | wodz: weird, does hwpatcher compiles for you ? it seems the makefile is broken |
12:38:29 | wodz | it did last time I checked |
12:41:10 | pamaury | weird, there is a typo, an extra "$" in a rule |
12:45:11 | | Quit Provel (Ping timeout: 245 seconds) |
12:45:32 | fs-bluebot | Build Server message: New build round started. Revision 278e866, 253 builds, 30 clients. |
12:46:03 | | Join Provel [0] (Provel@75-132-25-180.dhcp.stls.mo.charter.com) |
12:46:13 | pamaury | damn, I can't seem to be able to push to gerrit ?! |
12:47:06 | pamaury | wodz: g#911 |
12:47:09 | fs-bluebot | Gerrit review #911 at http://gerrit.rockbox.org/r/911 : hwpatcher: add framework for CRC computation by Amaury Pouly |
12:48:00 | wodz | pamaury: great, thanks will look later |
12:48:18 | pamaury | I will upload an example |
12:50:30 | fs-bluebot | Build Server message: Build round completed after 297 seconds. |
12:50:41 | pamaury | wodz: untested example: http://pastebin.com/Tcn1bkH2 |
13:00 |
13:17:48 | | Quit sfate (Ping timeout: 250 seconds) |
13:34:34 | [Saint] | Ohhhhhhh....shit. |
13:35:38 | [Saint] | JdGordon: I guess I was an idiot to think that the Setting/Bar touch area would actually ajust the config.cfg? |
13:36:01 | [Saint] | for example: |
13:36:59 | [Saint] | %St(10,4,460,52,GENERIC_BAR,backdrop,GENERIC_BAR_BACKDROP,slider,SCRUBBER_FOCUSED,setting,treble) "works", and I can drag the slider around, and the postition will even "stick" for runtime duration. |
13:37:46 | [Saint] | But config.cfg never actually gets adjusted, from the looks of the patch, unless I'm blind, its not supposed to is it? :-/ |
13:40:20 | [Saint] | it'd be awesome if it did, because, lets be honest with ourselves here...how frickin' cool does http://i.imgur.com/gny5fME.png look? ;) |
13:41:03 | JdGordon | [Saint]: yeah, you need magic which isnt implemented |
13:41:25 | [Saint] | yeah - sadly, I answered my own question when I actually looked. |
13:41:38 | [Saint] | I /assumed/ it was possible. |
13:41:44 | [Saint] | And, made a cock of myself. |
13:41:48 | JdGordon | but yes, it looks sweet |
13:51:49 | | Join Rower [0] (~husvagn@h176n2-aeg-a11.ias.bredband.telia.com) |
13:59:32 | | Quit Guinness (Ping timeout: 240 seconds) |
14:00 |
14:11:49 | [Saint] | I mst say I do find it bloody interesting that the magic to remember the position of the bar is in place. |
14:13:13 | | Join krabador [0] (~krabador@unaffiliated/krabador) |
14:17:18 | | Quit jhMikeS (Ping timeout: 260 seconds) |
14:25:32 | *** | Saving seen data "./dancer.seen" |
14:25:44 | | Quit pamaury (Ping timeout: 250 seconds) |
14:38:23 | | Quit ZincAlloy (Ping timeout: 260 seconds) |
14:39:19 | | Quit ygrek (Ping timeout: 272 seconds) |
14:43:57 | | Join pamaury [0] (~quassel@rockbox/developer/pamaury) |
14:48:08 | | Quit the-kyle (Remote host closed the connection) |
14:58:56 | | Join the-kyle [0] (~kyle@kyle.tk) |
14:59:33 | | Quit the-kyle (Remote host closed the connection) |
15:00 |
15:00:18 | | Join Misanthropos [0] (~Misanthro@frnk-4d01fd47.pool.mediaWays.net) |
15:00:56 | | Join amayer [0] (~amayer@mail.weberadvertising.com) |
15:02:57 | | Quit cmhobbs_ (Ping timeout: 264 seconds) |
15:04:11 | | Join megal0maniac [0] (~megal0man@unaffiliated/megal0maniac) |
15:29:26 | | Quit Misanthropos (Ping timeout: 245 seconds) |
15:36:38 | | Join copper [0] (~copper@unaffiliated/copper) |
15:38:14 | | Join ZincAlloy [0] (~Adium@pD9EEA3F1.dip0.t-ipconnect.de) |
15:39:43 | | Quit wodz (Quit: Leaving) |
15:43:19 | | Join Strife89 [0] (~Strife89@adsl-98-80-207-199.mcn.bellsouth.net) |
15:52:51 | | Quit Strife89 (Ping timeout: 240 seconds) |
15:53:09 | | Quit user890104 (Quit: .) |
15:53:29 | | Join user890104 [0] (Venci@unaffiliated/user890104) |
16:00 |
16:11:34 | | Quit Marex__ (Ping timeout: 250 seconds) |
16:17:19 | | Join franklin [0] (~franklin@cpe-071-071-071-105.triad.res.rr.com) |
16:22:30 | | Join Marex [0] (~Marex@195.140.253.167) |
16:23:23 | | Quit franklin (Read error: Connection reset by peer) |
16:23:49 | | Join franklin [0] (~franklin@cpe-071-071-071-105.triad.res.rr.com) |
16:25:36 | *** | Saving seen data "./dancer.seen" |
16:26:40 | | Join ygrek [0] (~user@108.59.6.97) |
16:31:14 | | Quit franklin (Ping timeout: 260 seconds) |
16:41:04 | | Join franklin [0] (~franklin@cpe-071-071-071-105.triad.res.rr.com) |
16:50:05 | | Quit Zagor (Quit: Clint excited) |
16:53:16 | | Join the-kyle [0] (~kyle@kyle.tk) |
16:58:51 | | Quit franklin (Ping timeout: 260 seconds) |
16:59:46 | | Join franklin [0] (~franklin@cpe-071-071-071-105.triad.res.rr.com) |
17:00 |
17:02:27 | | Quit pamaury (Ping timeout: 272 seconds) |
17:06:41 | | Quit franklin (Ping timeout: 244 seconds) |
17:07:12 | | Join franklin [0] (~franklin@cpe-071-071-071-105.triad.res.rr.com) |
17:07:24 | * | franklin has fixed the doom bug on iPod classic!!! :D |
17:10:17 | | Join ikeboy [0] (~ikeboy@ool-435622d3.dyn.optonline.net) |
17:13:08 | bcobco | can you play doom succesful in your ipod? |
17:13:25 | franklin | yes!!! |
17:13:29 | franklin | :D |
17:13:37 | bcobco | poor battery |
17:13:44 | franklin | Gerrit #912 |
17:13:46 | fs-bluebot | Gerrit review #912 at http://gerrit.rockbox.org/r/912 : Fixed DOOM bug on iPod Classic by Franklin Wei |
17:14:06 | franklin | It has 24 hour battery life idling... |
17:14:55 | | Quit ikeboy (Remote host closed the connection) |
17:16:39 | bcobco | good workª |
17:16:41 | bcobco | ! |
17:16:51 | franklin | Do you have an ipod classic? |
17:16:59 | bcobco | yes |
17:17:06 | bcobco | thanks to freemyipod |
17:17:11 | franklin | Then try it! |
17:17:34 | bcobco | i will try it! for sure. not now because of time |
17:18:15 | franklin | The controls aren't the best... but still... DOOM on a MP3 player!? |
17:18:29 | bcobco | hmm i dont remember where is the Doom data file |
17:19:43 | bcobco | little question there (not about Doom): |
17:19:56 | franklin | yeah |
17:19:58 | bcobco | does rockbox have any pink/white noise generator? |
17:20:10 | franklin | No |
17:20:29 | franklin | Just download a file with pink/white noise |
17:20:31 | franklin | and play it |
17:20:54 | bcobco | thats what i actually do. gnerate them by myself |
17:20:59 | bcobco | and play |
17:21:25 | bcobco | just wondering if there was any noise generator |
17:21:29 | bcobco | thanks! |
17:21:51 | bcobco | noise/sine/square/saw/... |
17:30:42 | | Join rasferret [0] (~yaaic@p54ACD165.dip0.t-ipconnect.de) |
17:31:46 | gevaerts | franklin: you changed things for all targets, not just the classic |
17:31:59 | gevaerts | i.e. you might have broken doom on everything *but* the classic |
17:32:43 | rasferret | hello all |
17:33:55 | rasferret | is there any chance that anybody could look into FS #12851 ? |
17:33:56 | fs-bluebot | http://www.rockbox.org/tracker/task/12851 loading bookmark referencing opus file fails (bugs, unconfirmed) |
17:34:16 | | Quit petur (Quit: *plop*) |
17:34:25 | bcobco | now doom is doomed |
17:38:12 | franklin | uh oh |
17:39:16 | franklin | gevaerts, it should work |
17:39:21 | | Quit krabador (Quit: Take the time.) |
17:39:48 | franklin | but hey, doom works! |
17:39:59 | franklin | at least for me |
17:40:42 | gevaerts | franklin: at least make it "&& !defined IPOD_6G" |
17:40:44 | franklin | The rb->current_tick/20... should be universal, right? |
17:41:25 | franklin | And yes, there is also some redundant code for the timer |
17:41:42 | franklin | So I'll take that out if I find that this version works for a different target (c200) |
17:41:59 | gevaerts | Seriously though, there's an underlying bug that makes the timer not work |
17:42:06 | franklin | There is |
17:42:10 | gevaerts | *that*'s the one that needs to be fixed |
17:42:30 | * | franklin agrees |
17:43:36 | franklin | So... Mr. Someone needs to fix that... |
17:43:44 | franklin | 'cause I don't know how |
17:43:49 | franklin | (at least not now) |
17:44:14 | | Join ikeboy [0] (~ikeboy@ool-435622d3.dyn.optonline.net) |
17:46:19 | franklin | gevaerts, it works on c200 |
17:47:01 | franklin | gevaerts, something IS very wrong with the timer: it stayed at zero the whole time |
17:47:37 | franklin | bet hey, DOOM WORKS!!! :D |
17:47:40 | franklin | *but* |
17:49:30 | gevaerts | That's the real bug! |
17:50:37 | * | franklin just beat the first level of Freedoom |
17:51:13 | franklin | Seriously though, something is wrong |
17:51:25 | franklin | gevaerts, could you help me hunt it down? |
17:51:47 | gevaerts | No. I don't know enough about that sort of thing |
17:51:57 | franklin | So it's up to me? |
17:51:57 | gevaerts | Try to get TheSeven interested :) |
17:52:01 | franklin | :D |
17:52:07 | * | franklin summons TheSeven |
17:52:29 | franklin | gevaerts, do you think it's specific to ipod6g? |
17:52:44 | gevaerts | It's specific to the SoC |
17:52:52 | franklin | ah |
17:53:02 | franklin | So the timer is written in ARM assembler? |
17:53:21 | * | franklin believes that the ipod6g is the only one with the sl58702 |
17:54:17 | | Join rela [0] (~x@pdpc/supporter/active/rela) |
18:00 |
18:06:24 | | Quit franklin (Quit: Leaving) |
18:06:44 | | Join franklin [0] (~franklin@cpe-071-071-071-105.triad.res.rr.com) |
18:06:56 | * | franklin thinks he just lost connection |
18:17:37 | franklin | gevaerts, do you know if the nano 2g is affected by the timer bug also? the SoCs are very similar |
18:18:43 | | Quit kugel (Ping timeout: 255 seconds) |
18:19:18 | | Quit rela (Read error: Connection reset by peer) |
18:23:00 | user890104 | franklin: doom runs fine on n2g the last time i checked |
18:23:10 | franklin | which was when? |
18:23:20 | franklin | because something might have changed |
18:23:26 | user890104 | well, i can recheck when i get home |
18:23:59 | franklin | try the latest dev build (with 2048 :D) and see |
18:24:20 | franklin | Probably something has changed in the timer system |
18:25:37 | user890104 | n2g is using s5l8701, ipod6g is using s5l8702 |
18:25:39 | *** | Saving seen data "./dancer.seen" |
18:26:11 | user890104 | http://www.freemyipod.org/wiki/Hardware |
18:26:20 | franklin | Yeah |
18:26:30 | franklin | So they should be *very* similar... |
18:26:40 | user890104 | IIRC the piezo code worked out of the box |
18:27:01 | user890104 | the speaker is directly wired to a CPU pin (timer output) |
18:27:03 | franklin | Like Gerrit #909? |
18:27:05 | fs-bluebot | Gerrit review #909 at http://gerrit.rockbox.org/r/909 : Added piezo functions to plugin API, as well as some demo plugins by Franklin Wei |
18:27:14 | franklin | That piezo code? |
18:27:27 | franklin | Or the other piezo code? |
18:27:53 | user890104 | i mean the underlying driver |
18:28:11 | franklin | Yeah... it should :) |
18:28:18 | user890104 | compare both piezo-*.c files, they are the same |
18:28:26 | | Join bertrik [0] (~quassel@rockbox/developer/bertrik) |
18:28:38 | franklin | Because the chips are almost exactly the same |
18:28:39 | user890104 | ah, i just spotted the difference |
18:28:39 | gevaerts | Wait, the piezo uses the timer? |
18:28:45 | franklin | I think so |
18:28:54 | gevaerts | So maybe the timer's just not available? |
18:29:07 | user890104 | yes, TIMER A on ipod 6g and TIMER D on ipod nano 2g |
18:29:10 | franklin | I uses seems to use the timer... yes |
18:29:41 | franklin | piezo code was added circa 2007... maybe that's it? |
18:29:49 | gevaerts | No |
18:30:07 | gevaerts | It's entirely irrelevant when the first target with piezo was added |
18:30:16 | franklin | gevaerts, so do you think it will run on n2g? |
18:30:17 | gevaerts | What's relevant is how it's hooked up on the classic |
18:30:42 | | Quit bcobco (Remote host closed the connection) |
18:31:01 | | Quit [Saint] (Remote host closed the connection) |
18:31:06 | | Nick franklin is now known as [Sait] (~franklin@cpe-071-071-071-105.triad.res.rr.com) |
18:31:07 | | Join bcobco [0] (~bcobco@77.228.124.149) |
18:31:09 | gevaerts | franklin: as far as I know, doom has been broken forever on the classic, so I see no good reason to suspect that it being broken on the classic would somehow imply that it suddenly stopped working on nano2g |
18:31:12 | | Nick [Sait] is now known as [Saint] (~franklin@cpe-071-071-071-105.triad.res.rr.com) |
18:31:14 | [Saint] | lol |
18:31:16 | | Nick [Saint] is now known as franklin (~franklin@cpe-071-071-071-105.triad.res.rr.com) |
18:31:35 | franklin | So it has worked on the nano2g? |
18:31:47 | gevaerts | 18:23:02 <user890104> franklin: doom runs fine on n2g the last time i checked |
18:31:55 | * | gevaerts has this rare skill called "reading" |
18:31:59 | franklin | But maybe something has changed? |
18:33:43 | | Join [Saint] [0] (~saint@rockbox/staff/saint) |
18:34:07 | | Quit Galois (Ping timeout: 246 seconds) |
18:34:13 | franklin | The time it says I took to complete level 1 is completely wrong, though |
18:34:16 | franklin | (7 minutes) |
18:34:23 | user890104 | franklin: what makes the doom plugin exit with a "plugin returned error" message? did you find where exactly it fails? |
18:34:34 | franklin | no, that's not the bug |
18:34:51 | franklin | the bug is in i_system.c, in the I_GetTime() functions |
18:35:08 | franklin | *function* |
18:36:24 | user890104 | does rb->timer_register fail? |
18:36:30 | franklin | I guess |
18:36:44 | franklin | Because the gettime always returned 9 |
18:36:45 | franklin | 0 |
18:37:22 | user890104 | ok, then we need to fix it, not make a workaround that breaks other stuff |
18:37:33 | user890104 | i can have a look at that when i get home |
18:37:42 | franklin | lol ok |
18:43:29 | | Quit einhirn (Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org) |
18:47:04 | | Join wodz [0] (~wodz@89-67-6-182.dynamic.chello.pl) |
18:48:48 | wodz | franklin: judging from what grep returns I'd expect mpegplayer and metronome to have problems as well |
18:48:56 | wodz | on ipod6 |
18:49:54 | franklin | nope, they're all fine |
18:50:18 | wodz | that means the problem is more complicated |
18:51:09 | franklin | wait... how does metronome work? |
18:51:36 | franklin | yep... metronome doesn't work |
18:52:09 | franklin | but i'm not sure how it should work :D |
18:54:13 | wodz | hell, where is TICKRATE defined? |
18:54:45 | wodz | haha, it is TICRATE actually |
18:55:28 | franklin | lol |
18:59:34 | franklin | nope, metronome DOES NOT work on ipod6g, but mpegplayer does |
19:00 |
19:00:25 | wodz | interesting |
19:00:52 | franklin | At least partially |
19:01:05 | franklin | It plays video and sound correctly |
19:01:19 | franklin | When metronome starts, there is nothing to hear |
19:01:32 | wodz | anyway kernel-s5l8702.c unmasks/sets timer interrupt source in interrupt controller which timer-s5l8702.c does not |
19:01:59 | franklin | which means... :) |
19:04:07 | wodz | which means I don't know architecture of this SoC |
19:04:15 | wodz | TheSeven: ping |
19:04:36 | * | franklin summons the-kyle |
19:04:41 | franklin | sorry, TheSeven |
19:04:41 | franklin | lol |
19:06:12 | wodz | looking at n2g code this could be the culprit |
19:06:37 | franklin | nano2g? don't you mean classic? |
19:07:12 | * | franklin hates bug-hunting |
19:07:30 | | Join lleeloo [0] (~lleeloo@37.215.18.148) |
19:08:26 | | Join lebellium [0] (~chatzilla@89-93-178-161.hfc.dyn.abo.bbox.fr) |
19:10:22 | wodz | No. I compared timer_set() from s5l8700 and s5l8702 and former unmasks interrupt and the letter does not |
19:11:56 | * | TheSeven reads the backlog |
19:12:38 | wodz | TheSeven: basically it looks like timer-s5l8702.c doesn't unmask interrupt or something |
19:15:05 | TheSeven | franklin: which timer is broken on the classic? |
19:15:42 | TheSeven | (btw, on the classic you have a microsecond-accurate system timer, not just 10ms ticks, if you need them. I wouldn't really use those from plugin code though.) |
19:17:03 | wodz | TheSeven: user timer which is TIMERD according to source |
19:19:33 | TheSeven | wodz: huh? looks liker timer C to me |
19:20:46 | TheSeven | franklin: can you verify if the timer is actually ticking, just not generating interrupts? |
19:20:59 | TheSeven | the IRQ-related code looks good at the first glance |
19:21:30 | wodz | void INT_TIMERC(void) suggests something different |
19:22:04 | TheSeven | hm? |
19:23:09 | * | wodz double checks |
19:23:31 | TheSeven | that function looks identical to the nano2g, where it supposedly works |
19:24:22 | wodz | timer-s5l8702.c user timer interrupt seems to be INT_TIMERC, timer_set() also uses TC* registers |
19:24:59 | wodz | TheSeven: n2g function unmasks/set interrupt source at the very end, classic version doesn't do that |
19:25:10 | TheSeven | yes, because the IRQ is shared |
19:25:26 | TheSeven | and the tick timer will have unmasked it anyway |
19:25:34 | TheSeven | (8702 has one IRQ for all timers, unlike 8701) |
19:25:46 | wodz | hmm, so something is botched |
19:25:57 | TheSeven | the IRQ handler checks the individual timer IRQ bits to figure out which handlers to call |
19:26:17 | TheSeven | http://git.rockbox.org/?p=rockbox.git;a=blob;f=firmware/target/arm/s5l8702/system-s5l8702.c;h=c3f20c506b047c59164fefb4c6c6a337545f48d4;hb=refs/heads/master#l125 |
19:27:07 | TheSeven | I'm wondering if it might have a separate clock gate that we're not enabling or something |
19:27:29 | TheSeven | so the very first thing to check would be whether the problem is on the timer or IRQ side |
19:27:59 | * | franklin reads the backlog |
19:28:38 | franklin | TheSeven, the plugin timer |
19:29:48 | franklin | That's why DOOM didn't work |
19:29:52 | franklin | until Gerrit #912 |
19:29:54 | fs-bluebot | Gerrit review #912 at http://gerrit.rockbox.org/r/912 : Fixed DOOM bug on iPod Classic by Franklin Wei |
19:30:09 | franklin | But that just exposes more issues: why doesn't the timer work as expected? |
19:30:23 | franklin | (in apps/plugins/doom/i_system.c) |
19:31:07 | franklin | And I believe that it's why the metronome doesn't work |
19:35:09 | | Quit ikeboy (Quit: Leaving) |
19:35:40 | | Join n1s [0] (~n1s@rockbox/developer/n1s) |
19:41:08 | TheSeven | franklin: it surely is |
19:41:12 | TheSeven | but why is that? |
19:41:31 | TheSeven | <TheSeven> I'm wondering if it might have a separate clock gate that we're not enabling or something |
19:41:31 | TheSeven | <TheSeven> so the very first thing to check would be whether the problem is on the timer or IRQ side |
19:43:11 | franklin | Which I have 0 experience in :) |
19:43:30 | franklin | TheSeven, the doom timer stays at zero the whole time |
19:43:41 | | Join bluebrother [0] (~dom@rockbox/developer/bluebrother) |
19:44:03 | TheSeven | IIUC that's just counting the interrupts though |
19:44:13 | TheSeven | so take a look at the TIMERC registers |
19:44:15 | franklin | the plugin timer? |
19:46:18 | | Quit fs-bluebot (Ping timeout: 260 seconds) |
19:47:00 | | Quit bluebrother^ (Ping timeout: 260 seconds) |
19:49:56 | | Join fs-bluebot [0] (~fs-bluebo@g225255138.adsl.alicedsl.de) |
20:00 |
20:03:19 | | Join einhirn [0] (~Miranda@p5B0C5C83.dip0.t-ipconnect.de) |
20:14:28 | | Join y4n [0] (~y4n@unaffiliated/y4ndexx) |
20:17:22 | | Quit einhirn (Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org) |
20:25:13 | | Join krabador [0] (~krabador@unaffiliated/krabador) |
20:25:40 | *** | Saving seen data "./dancer.seen" |
20:27:01 | saratoga | jhMikeS: were you going to push the new filesystem code soon? |
20:28:32 | | Quit ygrek (Ping timeout: 260 seconds) |
20:30:22 | | Join Galois [0] (djao@efnet.math.uwaterloo.ca) |
20:31:32 | saratoga | TheSeven: were you going to push that ipod classic ATA patch or did it need more work? |
20:31:40 | franklin | Hey saratoga, I /think/ I fixed the doom bug on ipod classic, but it just revealed more bugs... |
20:31:49 | franklin | Bugs in the timer subsystem |
20:33:24 | | Join Zambezi_ [0] (Zulu@bnc.from.hostbay.nu) |
20:35:33 | | Join megal0ma1iac [0] (~megal0man@ti-226-128-235.telkomadsl.co.za) |
20:35:34 | | Join derf_ [0] (~derf@static-108-18-126-14.washdc.fios.verizon.net) |
20:35:35 | | Quit megal0maniac (Killed (kornbluth.freenode.net (Nickname regained by services))) |
20:35:35 | | Nick megal0ma1iac is now known as megal0maniac (~megal0man@ti-226-128-235.telkomadsl.co.za) |
20:37:17 | | Join JdGordon_ [0] (~jonno@rockbox/developer/JdGordon) |
20:40:22 | | Join ZincAlloy1 [0] (~Adium@pD9EEA3F1.dip0.t-ipconnect.de) |
20:40:55 | user890104 | TheSeven: did you have time to rework your usb driver for ipod6g? if not, i can fix the bitfields |
20:41:26 | | Quit derf (*.net *.split) |
20:41:27 | | Quit Zambezi (*.net *.split) |
20:41:27 | | Quit Galois (*.net *.split) |
20:41:28 | | Quit ZincAlloy (*.net *.split) |
20:41:29 | | Quit JdGordon (*.net *.split) |
20:41:30 | | Quit efyx_ (*.net *.split) |
20:41:31 | | Nick derf_ is now known as derf (~derf@static-108-18-126-14.washdc.fios.verizon.net) |
20:44:10 | TheSeven | user890104: didn't get around to that yet |
20:44:26 | franklin | Why does it need reworking? |
20:45:06 | TheSeven | to make it comply with rockbox's guidelines |
20:45:16 | TheSeven | and make it actually compile with that old gcc ;) |
20:46:16 | franklin | Time to upgrade gccs? |
20:46:22 | franklin | 4.7.2 seems standard |
20:46:57 | wodz | that is partially true - I made it compile with rb compiler with fairly minor changes. The point is bitfields are rather bad idea in the first place |
20:47:31 | | Join efyx_ [0] (~efyx@107.110-67-87.adsl-dyn.isp.belgacom.be) |
20:47:39 | wodz | franklin: feel free to test *all* targets to assure no regression |
20:47:46 | franklin | lol |
20:47:56 | TheSeven | franklin: including performance regressions of codecs, battery runtime tests, etc. |
20:48:17 | franklin | shure... lol |
20:48:29 | TheSeven | well, that's what it would take... |
20:48:42 | wodz | basically don't touch if it ain't broken |
20:49:15 | franklin | yep |
20:49:59 | | Join Galois [0] (djao@efnet.math.uwaterloo.ca) |
20:51:30 | | Quit Marex (Ping timeout: 250 seconds) |
20:51:39 | | Join lleeloo_ [0] (~lleeloo@37.215.160.183) |
20:51:55 | | Quit lleeloo (Read error: Connection reset by peer) |
20:58:36 | | Join Marex [0] (~Marex@195.140.253.167) |
20:59:07 | saratoga | upgrading gcc is not a great idea since it has few improvements for many of the older arm cpus, and because most of the codecs are pretty well tuned for the current version |
21:00 |
21:01:41 | franklin | yeah, it was just an idea ;) |
21:02:13 | franklin | the post vs pre - increment doesn't matter, I don't think, right? |
21:02:43 | franklin | (for G#912) |
21:02:46 | fs-bluebot | Gerrit review #912 at http://gerrit.rockbox.org/r/912 : Fixed DOOM bug on iPod Classic by Franklin Wei |
21:03:03 | franklin | And... doom works! |
21:04:03 | wodz | franklin: I was thinking about your tinyCC idea. First it doesn't make much sense (but you know this already). The more problematic part is how to interface compiled code with running rockbox image. This is not so straight forward as on regular system. |
21:04:19 | franklin | Again, just another stupid idea :) |
21:05:42 | wodz | franklin: the point of saratoga in g912 comment was that changing x++ to ++x is stupid |
21:05:44 | fs-bluebot | Gerrit review #912 at http://gerrit.rockbox.org/r/912 : Fixed DOOM bug on iPod Classic by Franklin Wei |
21:06:03 | franklin | I prefer preincrement... |
21:06:09 | saratoga | franklin: other people have to read your code, if you make a change they will assume there is a reason |
21:06:17 | franklin | but sure... I'll make it postincrement |
21:06:18 | saratoga | if there is no reason that is really obnoxious |
21:06:30 | gevaerts | franklin: the *very* first rule of fixing bugs is: no unrelated changes |
21:06:44 | saratoga | doing random things is fine if you are the only one reading a program, but if you have to work with other people it is a very bad idea |
21:06:58 | wodz | well, I would call this g bugfix, workaround rather |
21:07:03 | franklin | How about indenting the file |
21:07:05 | franklin | ? |
21:07:08 | franklin | ls |
21:07:11 | franklin | sorry |
21:07:14 | franklin | wrong window :) |
21:08:52 | franklin | wodz, I agree, but the timer code is *way* above my head... so I'm leaving it to TheSeven |
21:09:05 | franklin | and the fixed postincrement patch is uploaded |
21:12:56 | gevaerts | franklin: you're going to be in trouble with your linux port if you consider this too hard to even look at |
21:13:34 | franklin | lol yeah... just where would the code be? |
21:13:41 | franklin | in the firmware tree, apps tree, or where? |
21:14:12 | franklin | I'm guessing firmware tree, right? targets/arm/s5l8702? |
21:22:36 | franklin | Where's the interrupt table? |
21:23:47 | | Quit amayer (Quit: Leaving) |
21:24:35 | franklin | ah system-s... .c |
21:25:03 | | Join amayer [0] (~amayer@mail.weberadvertising.com) |
21:25:20 | franklin | ok, there's 8 irqs for timers... |
21:26:01 | franklin | It would be great if there was actually some documentation for the chip... |
21:32:37 | TheSeven | franklin: and you want to port linux to these things? if that rather trivial timer code is *way* above your head? even though you don't even need much knowledge about the actual hardware to diagnose where the problem is? |
21:33:18 | franklin | Just that I haven't read the code means it's above my head... but now that I read it, I get most of it now... |
21:34:17 | franklin | I haven't written any bare-metal ARM code in forever... |
21:37:04 | franklin | So INT_TIMERC is used for the plugin timer, correct? |
21:38:20 | wodz | yes |
21:38:23 | franklin | where is the defintion of timer_register? |
21:40:02 | | Quit Rower (Ping timeout: 250 seconds) |
21:40:41 | franklin | is the main referenced in firmware/target/arm/s5l8702/crt0.S the main in apps? |
21:41:22 | wodz | there is only one main() you know, THE main() |
21:41:30 | franklin | so in apps/main.c |
21:41:31 | franklin | > |
21:41:32 | franklin | ? |
21:42:04 | franklin | so execution starts in the start function in crt0.S? |
21:42:15 | wodz | yes |
21:42:29 | franklin | except it branches to _newstart immediately |
21:42:38 | franklin | So that's the first code that is run? |
21:43:02 | franklin | emCORE loads the code into RAM, and it jumps to start, right? |
21:43:56 | franklin | and then from _newstart it goes to newstart2 by loading an absolute value into pc? can't a branch instruction be used there? |
21:44:31 | * | franklin is most familiar with x86 asm |
21:45:36 | wodz | Could be too far away for branch. Check linker script how are mapped .intvect and .init.text |
21:46:29 | franklin | they are right next to each other in the .text section, that is, if NEEDS_INTVECT_COPYING is defined |
21:46:47 | franklin | so I'm assuming that it isn't defined, making a long jump neccesary? |
21:47:00 | * | franklin obviously needs to learn more arm asm |
21:47:18 | * | franklin suggests that crt0.S be renamed to boot.S |
21:47:45 | wodz | franklin: go f*** yourself with your suggestions really |
21:48:38 | franklin | If a label is called 1, what is a branch to 1b supposed to do? |
21:49:30 | wodz | franklin: stop be a dick, use google, arm reference, and brain |
21:49:42 | wodz | *being |
21:50:04 | franklin | what to google? b suffix on label? |
21:51:51 | * | franklin finds wodz'z second suggestion very helpful :) |
22:00 |
22:00:12 | franklin | Where is the definition of VIC*? |
22:00:14 | TheSeven | <franklin> and then from _newstart it goes to newstart2 by loading an absolute value into pc? can't a branch instruction be used there? << point of that is to ensure that you're running from the right base address |
22:00:27 | TheSeven | branches are relative |
22:00:42 | TheSeven | and during boot, you have the same memory mapped to multiple addresses |
22:01:01 | franklin | So two addresses point to the same byte? |
22:01:11 | TheSeven | or actually, on MMU targets like this, we remap a 4KB chunk to address 0 to contain the interrupt handler springboard |
22:01:19 | TheSeven | but the actual code is in another section |
22:01:24 | TheSeven | yes |
22:01:37 | franklin | So a branch wouldn't work |
22:02:22 | TheSeven | "1b" is "next occurrence of label 1, searching backwards" |
22:02:31 | franklin | Ah thank you |
22:02:49 | * | franklin is not used to numbers as the first character in identifiers ;) |
22:03:00 | franklin | And what is VIC*? |
22:03:17 | | Join jhMikeS [0] (~jethead71@rockbox/developer/jhMikeS) |
22:03:54 | TheSeven | vectored interrupt controller |
22:04:05 | franklin | But where are they defined? |
22:04:20 | TheSeven | we aren't actually using the vectoring |
22:04:38 | franklin | In the irq handler they are used to get the irq number |
22:04:50 | TheSeven | so all IRQs go through the handler springboard at 0x18 or something like that |
22:05:04 | copper | franklin: if you're still looking for ideas, you could try to implement playback and volume control with "Made for iPod" headphones with inline remotes |
22:05:20 | TheSeven | and then the interrupt controller is queried to figure out which interrupts are pending |
22:05:26 | TheSeven | looking those up in our own vector table |
22:06:19 | franklin | So it's like the x86? there's ISRs and IRQs? |
22:08:54 | TheSeven | it's like just about anything that has interrupts |
22:09:41 | * | franklin is reading his old x86 kernel code |
22:10:08 | franklin | But where is the definition of VIC0IRQSTATUS? |
22:10:23 | TheSeven | in the technical reference manual of the VIC |
22:10:27 | TheSeven | which is an ARM PL192 |
22:10:33 | franklin | But in the source tree? |
22:10:42 | TheSeven | in s5l8702.h |
22:11:18 | franklin | ah I was searching in target/arm/s5l8702 |
22:11:58 | franklin | So the addresses around 0x3000000 are mapped to the interrupt controller? |
22:13:22 | franklin | ooh pointer arithmetic... fun |
22:16:08 | franklin | Where's the definition of timer_register then? |
22:16:27 | franklin | I can't find it in apps/ |
22:16:29 | franklin | cd ..l |
22:16:33 | franklin | sorry... |
22:16:37 | franklin | wrong window :) |
22:16:59 | franklin | ah in firmware/timer.c |
22:18:51 | | Quit y4n (Quit: PANTS OFF!) |
22:21:07 | | Quit wodz (Quit: Leaving) |
22:21:21 | franklin | Ok I understand the timer now: plugin calls timer_register, which calls timer_set to set up the timer and then timer_start to set the timer active bit which causes interrupts to be generated at the desired frequency |
22:21:49 | franklin | and the interrupt handler for that interrupt (TIMERC) calls the callback if it is non-null |
22:22:00 | * | franklin has been enlightened |
22:22:29 | TheSeven | yeah, that's the rockbox side of things |
22:22:42 | TheSeven | on the hardware side of things, you should see TCCNT or whatever it's called changing |
22:23:09 | TheSeven | and maybe the IRQ bit in TCCTL go high (which bits between 16 and 19 are set?) |
22:25:42 | *** | Saving seen data "./dancer.seen" |
22:26:45 | | Join kugel [0] (~kugel@91-66-52-228-dynip.superkabel.de) |
22:26:45 | | Quit kugel (Changing host) |
22:26:45 | | Join kugel [0] (~kugel@rockbox/developer/kugel) |
22:28:44 | | Quit n1s (Quit: Ex-Chat) |
22:33:50 | | Quit krabador (Quit: Take the time.) |
22:33:59 | lleeloo_ | <franklin> If a label is called 1, what is a branch to 1b: thats right |
22:34:37 | TheSeven | no idea why ARM went for that weird kind of local labels in their assembly language... |
22:34:50 | lleeloo_ | sorry, my connection ugly |
22:35:55 | franklin | So, any idea why timer_register isn't working? |
22:36:06 | franklin | Maybe another part of RB is using it already? |
22:50:30 | | Join krabador [0] (~krabador@host175-93-dynamic.55-82-r.retail.telecomitalia.it) |
22:50:34 | | Quit krabador (Changing host) |
22:50:34 | | Join krabador [0] (~krabador@unaffiliated/krabador) |
22:52:30 | TheSeven | franklin: are you sure that it's in fact timer_register that's not working? |
22:52:59 | franklin | Sorry, just why the timer doesn't work |
22:53:20 | franklin | timer_register should be fine... maybe it's something with the interrupts |
22:53:40 | franklin | So I'm guessing something in timer_set |
22:57:12 | TheSeven | go check if the timer actually moves then |
22:57:30 | TheSeven | sleep for a few ticks after setting it up, then logf or splashf the TCCNT value |
23:00 |
23:00:00 | user890104 | looks like timer_register works in mpegplayer... |
23:00:06 | | Quit lleeloo_ (Ping timeout: 250 seconds) |
23:00:27 | franklin | The dereferenced TCCNT value? |
23:02:05 | franklin | wait no you can't dereference void* |
23:05:18 | franklin | But duh... it's uint32_t* |
23:05:23 | franklin | stupid me... |
23:05:31 | franklin | So how should I test it? |
23:07:20 | user890104 | [23:57:32] <TheSeven> sleep for a few ticks after setting it up, then logf or splashf the TCCNT value |
23:07:45 | franklin | Setting what up? The timer? And from where? A plugin? |
23:08:10 | | Quit ender^ (Read error: Connection reset by peer) |
23:09:09 | user890104 | either from a plugin, or from the main firmware |
23:09:16 | user890104 | you should be able to use timer_set() |
23:09:25 | franklin | So is putting it in the interrupt handler fine? |
23:10:19 | TheSeven | franklin: no, put e.g. sleep(5); logf("TCCNT 5 ticks after setup: %d", TCCNT); into the timer_set code |
23:10:24 | TheSeven | after enabling the timer |
23:10:27 | franklin | ah |
23:10:31 | | Quit amayer (Quit: Leaving) |
23:10:32 | TheSeven | i.e. at the very end of that function |
23:10:43 | TheSeven | because if that is 0, you don't even have to look at the IRQ handling |
23:12:42 | | Quit steffengy1 (Read error: Connection reset by peer) |
23:12:43 | | Quit GeekShadow (Ping timeout: 260 seconds) |
23:13:31 | | Join ender| [0] (krneki@2a01:260:4094:1:42:42:42:42) |
23:13:34 | | Join steffengy [0] (~quassel@p5088F53D.dip0.t-ipconnect.de) |
23:14:24 | | Join GeekShadow [0] (~antoine@reactos/tester/GeekShadow) |
23:17:33 | franklin | TheSeven, after 10 ticks, TCCNT is 0x00 |
23:17:36 | franklin | (zero!) |
23:18:01 | | Quit Marex (Ping timeout: 240 seconds) |
23:18:43 | franklin | What does TCCNT do? |
23:20:15 | | Join Marex [0] (~Marex@195.140.253.167) |
23:21:04 | TheSeven | read the current timer counter value |
23:21:19 | franklin | That's what it does? |
23:21:27 | TheSeven | this supports my theory that there's a problem with the timer itself, not so much with the IRQ stuff |
23:21:32 | franklin | Or are you telling me to do that? |
23:21:42 | TheSeven | that's what it does |
23:21:47 | franklin | Well, that's somewhat of a relief :) |
23:21:50 | TheSeven | what's the value of TCCTL at that point? |
23:22:01 | TheSeven | or whatever the config/control register is called |
23:22:01 | franklin | I'll do that now... |
23:22:15 | TheSeven | the one that the clock select bits are written into |
23:22:29 | franklin | So print TCCTL, too? |
23:22:37 | TheSeven | yes |
23:22:57 | franklin | Except there is no TCCTL ;_ |
23:22:59 | franklin | ;) |
23:23:09 | franklin | Do you mean TCCMD? |
23:23:14 | franklin | Or TCCON? |
23:23:22 | TheSeven | tccon |
23:23:26 | franklin | ok |
23:25:39 | franklin | TheSeven, TCCON is also zero 10 ticks after |
23:26:01 | TheSeven | but we're writing a nonzero value to that before? |
23:26:18 | TheSeven | this also supports the theory that we have a clock gate problem |
23:26:49 | TheSeven | try adding this at the very top of the timer setup function: PWRCON(0)=0; PWRCON(1)=0; |
23:27:35 | franklin | ok |
23:27:58 | franklin | still both zero |
23:28:10 | TheSeven | hm, fishy |
23:28:47 | TheSeven | try using timer A |
23:28:58 | | Quit kugel (Remote host closed the connection) |
23:29:04 | franklin | How do I do that? |
23:29:06 | TheSeven | that will conflict with the piezo, having the nice side effect that you can actually hear if it's working ;) |
23:29:16 | franklin | lol |
23:29:22 | TheSeven | replace all TCsomething register accesses with TAsomething |
23:29:32 | TheSeven | change the IRQ handler function name to TIMERA_IRQ |
23:29:41 | TheSeven | and comment the TIMERA_IRQ handler in the piezo driver |
23:29:53 | franklin | You mean INT_TIMERA? |
23:29:55 | TheSeven | yes |
23:30:10 | TheSeven | (and make sure that nothing tries to use the piezo, or comment the whole contents of the piezo setup function as well) |
23:30:57 | | Quit lebellium (Quit: ChatZilla 0.9.90.1 [Firefox 32.0/20140807212602]) |
23:31:45 | franklin | ok, installing |
23:32:23 | franklin | I can hear the piezo now :) |
23:32:33 | franklin | Nice, low 100Hz or so tone :) |
23:33:19 | franklin | lol it works |
23:34:21 | | Quit rasferret (Quit: Yaaic - Yet another Android IRC client - http://www.yaaic.org) |
23:36:31 | franklin | This tone is somewhat pleasant :D |
23:37:38 | TheSeven | so it also fires IRQs now? |
23:37:48 | TheSeven | i.e. doom works without your patch? |
23:38:24 | | Join robert__ [0] (ba593ff9@gateway/web/freenode/ip.186.89.63.249) |
23:40:15 | robert__ | good afternoon |
23:46:43 | robert__ | Good afternoon. Im having problems in registering to the forum. The second question 8+5 wombat is not working |
23:48:53 | franklin | just type wombat |
23:49:04 | franklin | so not 13 wombat |
23:49:26 | franklin | TheSeven, no, the timer_set function hangs now |
23:49:34 | franklin | It makes the beep, but it hangs forever |
23:49:44 | robert__ | thank you for your answers |
23:50:20 | franklin | no prob :) |
23:53:03 | robert__ | Just registered. Thanks again! |
23:53:11 | franklin | have fun! |
23:53:20 | franklin | And play 2048 :D |
23:54:39 | franklin | doom does not work (hangs) but it generates a very low-frequency sound (clicks actually) |