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 2005-02-25

00:01:21 Join amiconn_ [0] (
00:02:06 Quit methangas (" Want to be different? HydraIRC -> <-")
00:02:34 Quit amiconn (Nick collision from services.)
00:02:34 Nick amiconn_ is now known as amiconn (
00:03:45preglowgood rule: pay attention to your clobber list
00:04:51amiconnGood rule; I know what happens if you don't...
00:04:57preglowyes, so do i
00:05:03preglowlike the lockup i jjust described
00:05:14preglowi clobbered a5, my clobber list said a6
00:06:13 Join BoD[] [0] (
00:06:18BoD[]wouhouyouhou !
00:09:08BoD[]what's up ?
00:11:43HClmeh, watching jerks on this chat, pondering on leaving it, you?
00:12:11preglowjerk, am i? :P
00:12:24HClnot *this* chat
00:12:28HClthis as in, this other chat
00:12:41HCljerks on this other chat*
00:12:52BoD[]SO ANYWAY
00:12:57BoD[]what about iRiver ? :)
00:13:12HCli have trouble getting it to not crash on dynarec.
00:13:20dwihnoby which temperature does intel cpus start throttling?
00:13:50HCldynamic recompilation - for gameboy
00:14:32BoD[]this recompiles ?
00:14:50HClit writes coldfire code on the fly, yea
00:14:55BoD[]I didn't know emulators did that
00:15:03BoD[]coldfire ? :) (sorry)
00:15:07HClthe iriver cpu
00:15:22BoD[]ok now the big question
00:15:31HCland yea, its mostly used since.. n64 emulators got around
00:15:37BoD[]what model should I buy
00:15:55HClh140 ?
00:16:12BoD[]have you seen the pmp models ?
00:16:17HClyea, i have
00:16:22HClno experience with them
00:16:37HClread on a review that it doesn't have much battery run time
00:16:44BoD[]yeah me too
00:16:56BoD[]but I mean they're only a bit more expensive
00:17:00BoD[]but they can play video
00:17:17BoD[]=> dilemna
00:17:23HClits certainly an interesting thing
00:17:40HCli'm mostly waiting on something like that, but having a pda integrated
00:17:48BoD[]ah yeah
00:17:54HClsomething like the zaurus sl c3000, but with more diskspace and more cpu
00:17:57BoD[]well Archos have a thing
00:18:10BoD[]linux based, IIRC
00:18:29amiconnpreglow: Your remark concerning clobber lists reminded me of something... thanks :)
00:18:56preglowamiconn: my pleasure
00:19:16BoD[]HCl: will rockbox work on a H140
00:19:29preglowBoD[]: it already does
00:19:45preglowno need to apologize
00:20:03BoD[]oh nono
00:20:09BoD[]I mean the H300
00:20:17preglowprobably, yes
00:20:24preglowh1x0 and h3x0 are very alike
00:20:34BoD[]that's a good news
00:20:37HClbut as far as i know
00:20:54HClthe h3x0 has DRM, and no digital in or/and out (it was either one, don't know which)
00:21:03preglowit has no s/pdif, no
00:21:12BoD[]oh :(
00:21:19BoD[]but it has usb host
00:21:24HCland drm is something you don't really want either
00:21:35preglowHCl: well, it's 100% firmware based
00:21:40HClpreglow: it is?
00:21:42preglowHCl: afaik
00:21:46amiconnHmm, and H3xx has colour display, not good for battery life...
00:21:47HCldidn't know that
00:21:49BoD[]I think I need usb host
00:21:51preglowHCl: you even loose it if you flash a korean firmware
00:21:56preglowHCl: it seems to have a key in the eeprom
00:22:06HClpreglow: i thought it said you just can't play drm files anymore if you flash with korean
00:22:23HClbut ok
00:22:30preglowHCl: yes, but if you flash back to us, you can't play either
00:22:36preglowyou'll never get the key back
00:22:43BoD[]what does the DRM do ?
00:22:53preglowlet you play protected music files
00:23:11BoD[]but for "regular" mp3 files ?
00:23:16HClcan't the h1x0 play drm files?
00:24:08rasherI don't think so
00:24:12BoD[]cause ... who has these files anyway ? :)
00:24:40amiconnpreglow: If you want to know of what you did remind me, see my commit. It's a minor thing though.
00:24:51BoD[]if I had a drm wma, I'd just reencode it in mp3
00:26:12BoD[]is there a feature comparison chart like the one for archos, but for iRiver ?
00:26:50 Quit jyp ("poof!")
00:29:07rasherBoD[]: the comparison chart includes iRiver
00:29:19BoD[]oops :)
00:29:32BoD[]and do you have the url?
00:29:59BoD[]ok I found it
00:30:07rasheralright :)
00:30:09preglowamiconn: i can't see how clobber list made you think of that, but whatever ;)
00:30:31amiconnI don't mean io.c, but the second commit
00:30:37amiconn(in apps/plugins/lib
00:31:19preglowahh, there are more
00:31:32preglowa bit more related, yes
00:42:06 Quit lolo-laptop ("Client exiting")
00:44:34BoD[]the Automatic Volume Control works with iRiver ?
00:45:36preglownothing much sound related is done yet
00:45:44preglowjust codec work and sound output
00:46:26BoD[]I guess the chart should be re-done
00:46:55BoD[]with a column "iriver with rockbox" and "iriver without rockbox"
00:48:30BoD[]and also a column for each archos model
00:49:12preglowwhat, you mean like this?
00:50:05preglowit'll get a thorough update when we're closer to release
00:50:48BoD[]yeah I mean this one, but updated
00:51:09rasherwell right now "Rockbox" just means "on any model"
00:51:11BoD[]is there a database in rockbox now ?
00:52:05BoD[]like browse by artist / track / album / year / any id3
00:52:28BoD[]cause I guess that's possible on iriver (right?)
00:54:04BoD[]hmm? :)
00:54:05preglowmy short frame imdct create funny noises
00:54:12preglowyes, i think that's possible
00:55:47amiconnBoD[]: There is a database now, also uable on archos models. Allow browse by/ search for artist/ album/ track. No year, genre or other tag yet.
00:56:45amiconnWhy the **** xxx2wav gets linked to alpine_cdc.rock in the sim ???
00:56:50preglowamiconn: did you know 68k assembly, again?
00:57:03amiconnHmm, not really
00:57:17amiconnI have an Amiga, and looked into it a bit.
00:58:03amiconnI don't know all those special features. I guess SH1 asm won't help you ;)
00:58:09preglownot much
00:58:10 Quit Sucka ("( :: NoNameScript 3.81 :: )")
00:58:20preglowi've got most of it
00:58:28preglowno, the addressing probably isn't what's wrong anyway
00:58:31BoD[]amiconn : that's great :)
00:59:15 Join mecraw [0] (~mecraw@
00:59:52 Quit Renko ("Leaving")
01:00:21***Saving seen data "./dancer.seen"
01:02:04amiconnpreglow: I'm currently investigating the odd behaviour of plugins (esp. the codec plugins) in the cygwin simulator builds. I wonder what a .wav header has to do in all (!) plugins...
01:02:44amiconnAnyone here who does simulator builds on Linux, and could check whether there is a .wav header in them too?
01:03:27preglowi'm yet to build a simulator at all, actually
01:03:42preglowi guess that unintended
01:04:12amiconnYeah, I guess so, too. The old builds (last week's cvs) don't have that.
01:04:30amiconnThere is a .wav header defined in xxx2wav.c
01:04:55amiconnIt seems this gets omehow linked to all plugins. It shouldn't....
01:05:02preglowsmall wonder everything sounds bad, i've forgotten to dereference a pointer
01:05:20preglowand asm blocks aren't very good at complaining
01:06:28amiconnEven helloworld.rock contains a .wav header now....
01:07:41Patr3ckhm, shouldn't the timer event registers on iriver...
01:07:46Patr3ckTER0 and TER1 be defined as MBAR+0x151 and MBAR+0x191 instead of MBAR+0x150 and MBAR+0x190?
01:08:18Patr3ckMCF54249UM.pdf page 178
01:08:49Patr3ckarg MCF5249UM.pdf
01:09:50preglowi never thought i'd think 15 registers would be too little
01:14:00preglowi wish the libmad makefile would pick up changes
01:15:15BoD[]anyway thanks guys!
01:15:18BoD[]i go to sleep :)
01:15:31 Quit BoD[] ("mblelop !")
01:17:43 Quit cYmen_ (Read error: 113 (No route to host))
01:19:25 Quit Aison (Connection refused)
01:20:20 Quit markun ()
01:21:34amiconnThe memmove() implementation in xxx2wav is wrong....
01:22:33amiconnIt only works correctly if moving backward, i.e. dest addr < source addr
01:23:37amiconnThe declaration is also wrong. The destination pointer obviously doesn't point to constand data
01:23:59preglowlinuxstb: defend yourself!
01:24:01amiconnmemmove() is used by libmad and tremor
01:24:14amiconnerr, by libmad and flac
01:24:50amiconnmemchr() is unimplemented & does nothing. This is used by flac & tremor
01:25:17amiconn(although for metadata resp. framing only)
01:28:48preglowprobably would have noticed it otherwise, yes
01:30:02 Join lostlogic [0] (
01:35:10 Quit XShocK (" HydraIRC -> <- IRC has never been so good")
01:41:40Patr3cknewby question: ICR0 is defined at address 0x04c, I want to change ICR2 at address 0x04e
01:41:45Patr3ckthen I would do for example ICR0 = (ICR0 & 0xff00ffff) | 0x008c0000; /* Interrupt on level 3.0 */
01:41:57Patr3ckis this correct?
01:48:14Patr3ckor would I do ICR0 = (ICR0 & 0xffff00ff) | 0x00008c00; /* Interrupt on level 3.0 */
01:49:06amiconnThe coldfire is big endian
01:52:59Patr3ckso from left to right the first 0xff is stored at ICR0, second 0xff at ICR1, 00 at ICR2 and last 0xff at ICR3?
02:06:22linuxstbamiconn: Good evening :-) Firstly, the xxx2wav.o is part of the plugin lib - so it's linked against every plugin in the same way the grayscale lib is. Does your HelloWorld.rock contain the grayscale lib as well?
02:06:38amiconnNo, it doesn't
02:07:29amiconnThat's how a library works - an object from it is only selected for linking if the binary the lib is linked to requires a symbol that is defined by the library object
02:08:01amiconnOtherwise almost all plugins would become too big to load on the archos
02:08:29linuxstbI understand that - so why does your helloworld.rock contain xxx2wav.o, but not the rest of libplugin.a ? It doesn't on my setup.
02:08:46amiconnI don't know, but I want to find out.
02:09:14amiconnPossibly this is related to the odd behaviour of the plugins here
02:09:50linuxstbSounds possible - the linker must be linking it for a reason - presumably I've reused a symbol I shouldn't have done.
02:10:21amiconnYes, but that would also mean all the plugins contain an unresolved symbol they shouldn't
02:11:14amiconnUnfortunately the plugins on Win32 are dlls and no final binary, so no .map file is generated
02:11:38linuxstbThe strange thing is that the X11 sim helloworld.rock doesn't contain xxx2wav when compiled under Linux.
02:12:05preglowi give up
02:13:38amiconnYes, that's what I wanted to know. The X11 sim plugins on cygwin also don't contain that .wav header, but the Win32 sim plugins do.
02:14:46amiconnThey didn't contain that before the new build system (but then there was no xxx2wav either), and they also don't contain it when I don't link against the plugin library
02:15:11amiconn(but the the codec test plugins don't link successfully for obvious reasons)
02:15:16amiconn*then the
02:15:34linuxstbGoing back to memchr and memmove. memchr is only used by functions in libFLAC and Tremor that we don't use - which is why there was no need to implement it. I apologise for my memmove (it was late, I wrote it very quickly just to get libFLAC to compile, and it never caused a problem, so I forgot about it).
02:16:33amiconnI didn't do anything about memmove() yet - first wanted to solve the odd simulator problems.
02:17:07amiconnA correct memmove implementation isn't hard though
02:18:13linuxstbI agree - as I said, I just wrote it very quickly without thinking.
02:21:11amiconnHmm, I just looked at the symbol tables of xxx2wav.o and helloworld.o. I can't imagine which symbol causes the linker to link xxx2wav.o to all win32 plugins
02:21:40amiconnI need to hide each single function and retry until I find the offending one.
02:22:48preglowtime for bed, later
02:22:57 Quit preglow ("yep")
02:25:11amiconnlinuxstb: Your check of CONFIG_HWCODEC at the top of xxx2wav.c cannot work.
02:27:11linuxstbWhy not?
02:27:55amiconnBoth symbols are defined in config.c and includes of it, which in turn get included by plugin.h You check before that...
02:29:02amiconnerr, config.h I mean
02:29:11linuxstbOK. But that check is also part of the plugins/lib/SOURCES file - so the check in xxx2wav.c is redundant.
02:29:14 Quit Patr3ck ()
02:29:31amiconnYes, it's only a safety measure.
02:38:37 Quit mecraw ()
02:39:10DMJCwill rockbox read pda documents? text only?
02:39:14DMJCI mean pdf
02:39:25 Join telliott [0] (
02:39:46amiconnIf someone writes a pdf plugin, then yes
02:40:58amiconnlinuxstb: It is definitely one of the system function equivalents in xxx2wav.c that causes this odd behaviour on windows. I 'just' need to find out which one...
02:41:16telliottHi. Anyone else notice a bug with playlist creation in the latest daily builds? With recursively insert turned on, rockbox only adds the first folder under the current one.
02:41:38telliottI have a V1 recorder.
02:41:55amiconntelliott: Which build did you test? Iirc Linus fixed this recently
02:44:27amiconnThe fix should be in 2005-02-22
02:44:34 Quit telliott (Read error: 54 (Connection reset by peer))
02:45:33 Join telliott [0] (
02:46:09telliottGot disconnected. I'm using Monday's build, 2/21
02:46:29amiconn[02:44:17] <amiconn> The fix should be in 2005-02-22
02:46:41linuxstbAs amiconn said, it was fixed on the 21st so the 22nd daily build should be OK.
02:47:35telliottI love the id3 database brower for finding stuff. Now I need to fix all my tags.
02:51:54 Quit DMJC ("Leaving")
02:52:50 Join DMJC [0] (
02:59:32 Part telliott
03:00:23***Saving seen data "./dancer.seen"
03:00:34amiconnlinuxstb: Now I know which functions in xxx2wav.c fool the win32 linker - malloc() and free()
03:01:22amiconnIt seems the linker wants to use these implementations instead of the system native ones for the dll init or similar. Of course this cannot work...
03:01:43linuxstbThat explains it then.
03:02:29amiconnSo if this shall work on all simulators, we need a workaround. Obviously these functions must be called differently, at least for simulator builds
03:03:19amiconnThat implies a (small) change to all codecs. They need to have a header which is included by all source files (I think all codecs have one)
03:03:38linuxstbI think we can live with that.
03:03:39amiconnThen we need a #define similar to the ones in file.h
03:03:51amiconn#ifdef SIMULATOR
03:04:13linuxstbWhy #ifdef SIMULATOR? Can't we just rename them for all builds?
03:04:23amiconn#define malloc(blurb) sim_malloc(blurb)
03:04:40amiconnof course we could them rename in general
03:05:09amiconnSomething like my_malloc() or codec_malloc() or such
03:06:59linuxstbWhat do you think about adding a .h file in apps/codecs, and then including that from all the plugin files (via the "all.h" or whatever they use).
03:09:19amiconnSounds reasonable. However, the question remains where this should be placed. apps/codecs would be first choice, but this header is also needed in xxx2wav.h, i.e. in apps/plugins/lib
03:10:17linuxstbWhy is it needed by xxx2wav.h? Don't we just need define codec_mallocd() etc in xxx2wav.[ch] ?
03:11:54amiconnYes, I mean xxx2wav.c. This is where codec_malloc() and friends are defined. If we declare them in xxx2wav.h (which would be the canonical place), this declaration needs to be duplicated in apps/codecs/<ournewheader>.h
03:13:21amiconnIn fact, I wouldn't call these functions codec_*. They are placed in the plugin lib after all, and may also be useful for other plugins. One such plugin is rockboy...
03:13:47amiconn...which may in fact be the cause why HCl didn't get it to run on the simulator
03:14:11amiconnThere is also a private malloc() implementation in it...
03:14:37linuxstbI think rockboy failed in the simulator before I added xxx2wav, but of course that doesn't stop it being a problem.
03:15:08amiconnYeah - xxx2wav causes problems because it defines malloc(). Rockboy defines malloc() itself...
03:15:28linuxstbBut I think codec_malloc is the best name - the implementation is good enough to be used generally. They will only work if the "local_init()" function has been called - which also loads a Wav file.
03:15:38linuxstb^not good enough
03:16:30amiconnYes, I saw that. Of course this can be remedied. Split xxx2wav in two - the general malloc() part and the .wav handling part
03:17:19linuxstbI wasn't thinking that xxx2wav and the codec plugins would be permanent parts of rockbox - they are just there so people can test and optimise the codec libraries.
03:17:20amiconnThe malloc() function would need some more work though. Somehow it needs to be initialised
03:17:50amiconnYes of course. Still, the malloc() part may be useful in general - one more reason to split it apart
03:18:13linuxstbI think Bagder has said that he's got a malloc implementation he can use in Rockbox - which I am assuming is better than my 6 lines of C.
03:18:19amiconnAnyway, that doesn't need to be done right now, and we should name these functions codec_*
03:20:48amiconnIf you want to give it a shot, feel free to do so. Otherwise I'll try to do that tomorrow. I need to sleep now. At least I know what is going wrong.
03:21:48linuxstbI probably won't have time - I have real work to do whuch is why I'm up at 2.18am. Maybe tomorrow.
03:22:10amiconnAlready 3:22 am here...
03:22:26 Part amiconn
03:31:25 Join ashridah [0] (
04:05:23 Join QT_ [0] (as@area51.users.madwifi)
04:21:17 Quit shx (Nick collision from services.)
04:22:29 Quit QT (Read error: 110 (Connection timed out))
05:00:25***Saving seen data "./dancer.seen"
05:19:07 Join ze__ [0] (
05:27:40 Quit linuxstb (Read error: 60 (Operation timed out))
05:29:27 Quit ze (Read error: 104 (Connection reset by peer))
05:29:27 Nick ze__ is now known as ze (
07:00:27***Saving seen data "./dancer.seen"
07:13:49 Join StrathAFK [0] (
07:17:48einhirnCan anyone tell me how the Battery Chain is connected? Please take a look at this Image and imagine it was a recorder. It is mainly for orientation
07:18:17 Join LinusN [0] (
07:18:31einhirnHey Linus...
07:20:22einhirnSo, in the Upper right Edge of the Picture there is the "GND", Battery Minus to Metal casing and to Archos mainboard (Upper Right Middle Solder Joint)...
07:21:47einhirnIn the Upper left edge there is Battery Plus to lower Battery Minus, and Upper Metal Casing to lower Metal Casing.
07:23:50einhirnIn the lower right edge there is A contact made with Battery Plus, and from there to Archos Mainboard. Problem here is that somehow the Metal casing (which still is connected to Battery Minus on the other side) is also connected to Battery Plus - Voila my Short Circuit.
07:24:25 Join midk [0] (
07:25:23einhirnNow I removed the lower Metal casing and the left side PCB, but still the Minus Pole gets somehow connected up to Plus pole in the lower Right edge...
07:25:47einhirnCan somebody Point me in the Right direction where I've got to search?
07:26:45einhirnI have to admit that I tinned the Lower-Right-Contact and the upper left one, too. I hope that that doesn't cause the Problem...
07:27:10*einhirn sighs -
07:29:03*einhirn makes sad face - "I just want my Recorder back"
07:29:29LinusNpoor you
07:30:13LinusNwhich model?
07:30:40einhirnRecorder - Well, I have to man myself, someone out there had to go through about 6 Month without his device...
07:31:35LinusNi haven't followed your case, could you brief me?
07:31:56LinusNshort cut to the casing?
07:32:28 Quit Strath (Read error: 110 (Connection timed out))
07:32:35LinusNwhich picture are you referring to?
07:32:45einhirnsomewhere it seems like that. I entered a Picture link for orientation (before you got online)
07:32:45einhirn- just imagine it to be a recorder...
07:35:05LinusNso when did the short happen?
07:36:05einhirnErr... I thought to be a smart guy. And soldered in the lower batteries using three pieces of wire...
07:36:33einhirnI connected the wire to the Pads where the Batteries would have been seated...
07:37:05einhirnI did that because my batteries are longer than the original ones and were bending the PCB away...
07:37:51LinusNand you removed the end pcb?
07:37:56einhirn(And I removed the lower left spring to release the tension - so I had to solder the Battery...
07:38:05einhirnYes, for "Diagnostics"...
07:38:38LinusNas far as i can tell, the pcb needs to be there for grounding purposes
07:38:53einhirnThere I saw that the both Metal casings are connected together...
07:39:44einhirnOk, then there is just the Problem why both, the Plus pole and the Minus Pole of the Battery Chain are connected to it...
07:40:16LinusNto the left pcb?
07:40:57einhirnOn the Upper Right edge it seems to be designed to be so (Wire through the Spring, soldered to the metal casing)
07:41:09LinusNthe ground, yes
07:41:53einhirnBut somehow I get connection from Metal casing to Battery contact on the Lower right side too...
07:42:19 Quit ashridah ("out")
07:42:24einhirnI think I shorted some PCB Layers or something... (don't hope so because that would seem to be fatal?)
07:42:38LinusNtake a look at this:
07:42:57einhirnJupp... Did so before...
07:43:21einhirnThe connections to the Metal casings were stretched out of solder on all four corners...
07:43:33einhirnSo I resoldered them...
07:43:40LinusNare you sure that you haven't accidentally enlarged the solder blob to the left?
07:44:17LinusNnext to the digi i/o connector
07:45:48einhirnHave done so while resoldering the metal casing... but by now I removed the Solder because I removed the Metal casing (for diagnostiscs)
07:46:04einhirnIs that where the both layers are shorted?
07:46:13LinusNcould be
07:46:32LinusNif the solder blob extended to the vias next to it
07:46:53einhirnThere are three contacts on the left side, each one of them was Seperate...
07:46:57LinusNhow did you discover the short?
07:47:41einhirnPlugging in Batteries and them getting warm... The Blobs never (to my knowledge) extended to another via or something...
07:48:29LinusNsee how the early models didn't suffer from this? :-)
07:48:53einhirnthey used Solder sparingly but twisted the Metal casing in...
07:49:38LinusNanyway, i think it will get hot if you connect to the via right next to the blob at "94V-0"
07:50:37einhirnThat I didn't do... Well, as I said I have to admit that I tinned the Plus pole just left above the 0127
07:50:40LinusNalso, you might have blown a circuit or two
07:50:51einhirnOh... That would be bad...
07:51:14LinusNbut you measure a short with a mutlimeter?
07:51:31einhirnAnyway, thanks so far - Will get back online when I am at my workplace...
07:51:37dwihnoGood morning everyone!
07:51:43LinusNdwihno: morning
07:51:45einhirnYup. Multimeter: Plus to Metal casing short
07:52:09LinusNi think you want to replace the 7416 above the lcd
07:53:21einhirnHmm... I don't see anything tagged like that...
07:53:35LinusN8 pins
07:53:58einhirnTwo 8Pin SMDs, both tagged 4463
07:54:40*einhirn has to go - can't afford being late...
07:54:52 Quit einhirn ("Miranda IM! Smaller, Faster, Easier.")
08:07:26 Join methangas [0] (
08:50:51 Join einhirn [0] (
08:51:48einhirnHello... I'm back...
08:52:44einhirnLinusN: My agenda now is to unsolder the HDD-Connector PCB from the Device and check if the Short is located on it...
08:54:23einhirnIf the short is not located on that board, I'll take a look at the 8pin-SMDs, they seem to/should be the Transistors that control Main Power and HDD Power - right?
08:55:04einhirnPerhaps Google will come up with a way to test these - hopefully without needing to unsolder them...
08:58:42einhirnI am afraid of blowing something else if I just plug in my Multimeter (at least it works with 9V - so if it injects that somewhere it doesn't belong to, it'll blow; right?)
08:59:23einhirnWell, I'll come back to you when I have results of the tests...
09:00:30***Saving seen data "./dancer.seen"
09:02:00 Join Sando [0] (
09:05:22LinusNeinhirn: what kind of multimeter do you have that uses 9V to measure conductance???
09:17:57 Join ashridah [0] (
09:37:18 Quit einhirn ("Miranda IM! Smaller, Faster, Easier.")
09:40:26 Join jyp [0] (
09:54:08jypWhat's the semantic of struct fat_cache_entry, field secnum ?
10:02:52LinusNit's the sector number of the cached sector
10:09:22jypAs usual I like being sure ;)
10:10:00 Join R3nTiL_ [0] (~zorroz@
10:18:24 Join Patr3ck [0] (
10:24:43Patr3ckLinusN: I tried yesterday to get the free timer on iriver to work
10:25:02Patr3ckLinusN: I only managed to freeze it ;-)
10:25:14Patr3ckI cross checked everything and spotted
10:25:22Patr3ckthat TER0 and TER1 are defined as
10:25:44Patr3ckMBAR+150 and MBAR+190
10:26:03Patr3ckshouldn't that be MBAR+151 and MBAR+191?
10:26:34LinusNnot if you access them as a word
10:26:40Patr3ckmcf5249um.pdf page 178
10:28:07Patr3ckso that was not the problem...
10:28:17LinusNwhen i designed the mcf5249.h file, i was misled by the manual that said that the internal registers weren't byte accessible
10:28:36LinusNi'll change that some day
10:29:07Patr3ckno problem, I only thought this could be the problem why my iriver froze.
10:29:11ashridahhrm. odd
10:29:36ashridahrockbox took a few minutes to recalc fsinfo just after i'd been using the iriver stock firmware to record something.
10:30:03Patr3ckanyway, I got some reaction from my programming ;-)
10:30:11Patr3ckI will try again this evening
10:31:44LinusNashridah: seems like iriver invalidates the fsinfo once in a while
10:32:17ashridahyeah. i think i've noticed it doing that once before.
10:32:29ashridahafter plugging the device into a usb port on a pc
10:39:15 Quit R3nTiL_ ()
10:41:26 Quit jyp ("poof!")
10:56:12 Join Aison [0] (
11:00:32***Saving seen data "./dancer.seen"
11:12:22 Join webguest63 [0] (
11:39:09 Join muesli- [0] (
11:40:44muesli-hi linus
11:41:04LinusNhey ho
11:44:19muesli-how's goin in sweden? rode a reendeer today?
11:49:32 Join amiconn [0] (
11:50:08LinusNmuesli-: of course
12:00:55muesli-people got very excited about the news of playing wavs
12:04:21ashridahif it's just a standalone bit of code streaming a wav file to the audio output, bfd. if it's a built in thread that's feeding data from a refillable buffer... :)
12:07:27ashridahthe hardest part is going to be determining the size of the output buffer that's going to be able to handle the worst-case scenario of codecs, AND codec swapping.
12:16:14muesli-uff, dunno too much about this..2 b honest..nothing...
12:17:34ashridahwell. okay. it's not as simple as just writing data to the headphone's output. if you don't have enough buffered data already ready to go, then it's possible that the device won't have enough time to read and decode more from the disk to fill up the buffer before you run out.
12:17:39ashridahif that happens, you get a skip
12:18:10muesli-makes sense
12:18:36ashridahif we want to provide seamless playback between songs, we need the buffer to be big enough to handle the changeover from one codec to another, as well as reading new data from the next file.
12:19:46LinusNmost of the time, we will have several songs already loaded in memory
12:20:22LinusNso the pcm output buffer doesn't have to take disk loading time into account
12:20:31 Nick QT_ is now known as QT (as@area51.users.madwifi)
12:20:34ashridahLinusN: that's true.
12:20:40muesli-how many songs can you buffer in one turn?
12:20:44ashridahbut you have to make some allowances for potential worstcase scenarios
12:20:50ashridahlike having to load a new codec plugin
12:21:08LinusNmuesli-: the mp3 buffer is about 30MBytes today
12:21:13ashridahwhich could co-incide with the near depletion of the buffer, so you need watermarks and other fun stuff ;)
12:22:03muesli-so theoretically there are 32mb / ~5mb for each file possible?
12:22:44LinusNrockbox tries to fit as much data in the buffer as possible
12:23:23muesli-i wonder why there are only 32mb of buffer..rams arent expensive in these days..
12:23:56LinusNanother 32mb won't affect the battery time that much
12:24:26LinusNmaybe for wav playback, but not for mp3
12:24:48LinusNthe archos jukebox has only 2mb :-)
12:24:57muesli-yepp...i wonder if the next hardware mod would be exchanging that 32mb ram module with a bigger one ;)
12:25:23muesli-theroretically it shouldnt be hard...
12:27:59LinusNnot in theory
12:28:52muesli-when the archos box has only has spin the harddrive for buffering every 2minutes!?
12:29:51LinusNroughly, we have only about 1.6Mb left for buffering
12:30:15LinusNso every 1.5 mins
12:30:18ashridahmuesli-: the archos would be buffering mp3 data, not pcm data (if i understand the hardware)
12:30:26*ashridah smacks head
12:32:26*LinusN goes to lunch
12:32:54muesli-i guess if you would increase the buffer you could increase playing time by factor 1,5
12:36:13muesli-me too
12:36:17muesli-cya l8er
12:38:11 Quit midk ("Leaving")
12:38:19 Join preglow [0] (
12:39:00preglowLinusN: when i do addressing with a base register and a scaled index register, is the index register signed?
12:40:13 Join shx [0] (
12:41:08 Quit muesli- (Read error: 104 (Connection reset by peer))
12:55:13LinusNpreglow: yes
13:00:35***Saving seen data "./dancer.seen"
13:07:40preglowi do a array[11 - i] access, which i code like neg %d7, move randomdata, 44(%a0, %d7*4). everything involved is long or long*, and %d7 contains i
13:07:56preglowis that wrong? :V
13:08:31LinusNshould work
13:08:49preglowwell, shoot
13:09:05preglowi've tried optimizing imdct for short blocks, just to brace myself for the bigger boys
13:09:11preglowbut i do something wrong somewhere
13:12:02LinusNcan i see the code?
13:13:26preglowgimme a sec
13:14:08preglowgrep for III_imdct_s
13:14:20 Join Patr3ck_ [0] (
13:14:35preglowi'm not done optimizing, but it should work as it is
13:14:38*preglow braces for stupid bugs
13:15:10*HCl yawns
13:15:38preglowbeware that imdct_s is a two dimensional array, but they should be stored sequantially
13:15:41preglowHCl: elo
13:19:58LinusNpreglow: i need emac.h
13:23:00preglowit should be there as well
13:24:28preglowi probably won't end up using those macros anyway, so i should stop using it ;)
13:26:12 Join Renko [0] (
13:26:56preglowalso, the shifting of the result might be wrong
13:27:14preglowbut that should just yield a volume change, not a different waveform altogether
13:27:31 Join jyp [0] (
13:29:40 Quit Patr3ck (Read error: 110 (Connection timed out))
13:30:24LinusNi don't see anything wrong...
13:32:35preglowyou mean in the output or in the code?
13:32:35 Quit webguest63 ("CGI:IRC (EOF)")
13:32:42LinusNin the code
13:32:45preglownor do i
13:33:20preglowthe only thing i can imagine is wrong, is using mac in the first place
13:33:28preglowbut that should only yield gain errors
13:34:00preglowMAD_F_MLZ does nothing but shift a 64 bit result four bits up and then return the 32 top bits
13:34:10preglowthe emac unit always works on the top bits in fractional mode
13:34:14preglowso i'm stumped
13:35:28LinusNMLO is a load, right?
13:36:29preglowa simple 32x32 bit multiply
13:36:35LinusNsaw that
13:36:42preglowit's used to overwrite the accumulator, i do a movclr instead
13:38:07ashridahso what's the EMAC's basic aim?
13:38:33preglowashridah: it's used to multiply numbers and accumulate them as it goes
13:38:45preglowashridah: which sounds simple, but it's a fundamental dsp operation
13:38:57ashridahi guess i don't know DSP well enough :)
13:39:14preglowit's also good for 3d calculations
13:39:19preglowie. dot product
13:41:41 Join muesli- [0] (
13:45:17 Quit muesli- (Read error: 104 (Connection reset by peer))
13:47:12LinusNpreglow: i'm no emac expert, but is %acc and %acc0 really the same register?
13:47:30 Quit jyp (Read error: 110 (Connection timed out))
13:47:43preglowLinusN: i think so
13:47:53preglowLinusN: am i using both?
13:48:07LinusNyou clear %acc before the loop
13:48:24preglowno, i clear acc0 before the loop
13:48:41LinusNmovel #0,%acc
13:48:43preglowat least i certainly hope so
13:48:56preglowobjdump seems to equate the two, at least
13:49:41preglowbut try hard coding it, then, asm("move.l #0, %acc0"); instead of the SET_MAC
13:49:54preglowthat is what should be happening already, though
14:00:48 Join jyp [0] (
14:06:18LinusNpreglow: i don't see anything wrong, and i guess i'll have to run the debugger to spot the error...
14:07:05 Quit Renko (Remote closed the connection)
14:08:18LinusNwait a sec
14:08:27preglowdebug facilities would be great
14:09:30 Quit lostlogic ("Going to the moon")
14:09:57preglowmaybe i should try making some quick emac functions i can run on the computer, just to verify results
14:10:54LinusNi'm a little curious about the first "move.l(%[s]+, %%a5"
14:12:14preglowwhat about it? i'm planning on moving that outside the for i loop and using all mac fetches inside, just haven't gotten around to making asm version of the loop
14:14:07preglowthe mac fetches happen in parallel, so the result won't be in %a5 until after the instruction is done
14:14:13preglowthat instruction is to provide data for the first mac
14:16:09LinusNwas a little unsure about the number of increments of %a3
14:16:30preglowthat's a valid concern
14:16:41preglowbut it should be right
14:16:55preglowtwelve per loop iter
14:19:15HCli have a problem with movem in my dynarec.. who can help me with that?
14:19:28preglowHCl: depends, elaborate
14:19:57HClpreglow: i have two movem instructions that swap into gameboy context, and one that saves the gameboy context
14:20:06HClwith them, rockboy crashes, without, it works.
14:20:17HClbut ofcourse, without, the results don't get stored so its useless
14:20:28preglowHCl: well, what do they look like?
14:20:39HCl asm volatile (//"movem.l (%0),%%d0-%%d6/%%a0-%%a1\n\t"
14:20:39HCl "jsr (%1)\n\t"
14:20:39HCl //"movem.l %%d0-%%d6/%%a0-%%a1,(%0)\n\t"
14:20:46HCl "a" (cpu.a)
14:20:50HClmaybe my cpu.a is wrong?
14:20:54HClshould it be &cpu.a ?
14:21:31preglowif a is a pointer, then no, () does dereferencing
14:21:40HClits not a pointer.
14:21:54preglowit's where you want to save the state?
14:22:10preglowwell, an array is a pointer
14:22:15preglowso it's still right
14:22:45HClits not an array :x
14:22:51HCli'll make it &cpu.a
14:22:51preglowstruct? :P
14:23:04HClits an union thing in a struct
14:23:18preglowif so, yes, use &
14:26:57HClthat did something..
14:28:43 Quit ashridah ("sleep")
14:28:47preglowsomething good? ;)
14:29:46HClit didn't crash.
14:29:54HCland it did change the gameboy's program counter.
14:30:03HClbut not to the correct value.
14:30:30preglowwell, is %0 preserved in the call?
14:31:19preglowlet me see the lists after the asm statements
14:32:37HClwhat do you mean?
14:32:41preglowthe constraint strings
14:32:52preglowwhere you declare what variables you use in the asm block
14:32:56preglowthere it is
14:33:04preglowyou do know that %0 is an actual register, yes?
14:33:21preglowhow do you know it isn't clobbered in the place you're jumping to?
14:33:33HClbecause i control the code thats written in the place that its jumping to.
14:33:44preglowyou don't even know what register %0 is
14:33:50preglowhow do you know you're not overwriting it?
14:33:52HClits a3/a4
14:33:54HCli mean
14:33:56HCl :P
14:34:05HClbecause this is my register clobber list for the block :P
14:34:10HCl: "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "a0","a1", "a2", "a3", "a4" );
14:38:46*HCl continues to work on it
14:39:35 Nick Lynx_awy is now known as Lynx_ (HydraIRC@
14:47:54LinusNpreglow: i think i see a problem
14:49:23preglowLinusN: please, explain
14:50:59LinusNit seems the compiler doesn't see that %d0 is clobbered
14:51:42LinusNthe outer loop is bounded by %d0
14:51:57preglowhow can it not see that? it's right there in the list. i thought it complained if i exhausted the registers
14:52:47preglowwhy, indeed
14:56:22 Join elinenbe [0] (~elinenbe_@
14:56:34preglowif i clobber too many registers, the register allocator does complain
14:56:40preglowso i can't even begin to guess why it's doing this
14:57:18LinusNweird indeed
14:57:32LinusNlooks like it looses track in the nested loops
14:57:38preglowwell ok
14:57:51preglowi'll try merging the inner loop into the asm
14:58:00LinusNor both
14:58:07preglowprobably clever
14:58:30preglowthe movem is loop invariant, so it needs to go outside the inner loop
14:59:16 Join edx__ [0] (
14:59:19LinusNnow it would be nice with hardware loops...
14:59:42jypI'd like to compile a codec as a standalone application... (preferably mad or tremor)
14:59:51jypAdvices on how to do that ?
15:00:37***Saving seen data "./dancer.seen"
15:00:53*HCl scratches his head.
15:01:15HClwell.. at least its working correctly.. aside from doing something utterly odd to make it into 0x20390000
15:02:43LinusNjyp: i believe there are examples on their respective home pages
15:03:22preglowLinusN: what platforms have hardware loops?
15:03:52jypLinusN: i mean complie for the target
15:03:53 Join lolo-laptop [0] (~lostlogic@
15:04:02LinusNpreglow: most dsp's i guess
15:05:22*HCl sig.s
15:05:23LinusNjyp: you'll have to link the libmad.a into the apps code directly
15:05:42HClcan someone tell me whats wrong with this code?:
15:05:49HCl2278 0150 4e75
15:05:51HCl :x
15:05:51preglowjyp: my god, you'll have a good time porting libmad
15:06:12preglowit assumes 32 bit ints pretty much the entire way
15:06:48CoCoLUSisn't there an alternative library?
15:06:50jypToo bad
15:07:08LinusNHCl: you expect us to disassemble for you?
15:07:15jyp... C specs never said ints were 32bits wide ;)
15:07:31preglowHCl: objdump is your friend
15:07:33amiconnpreglow, LinusN: The MAS has hardware loops...
15:07:46preglowamiconn: i thought you guys didn't know how the mas worked
15:07:48 Join newnick [0] (
15:07:55LinusNas i said, "most dsp's"
15:07:56HClthe problem is.
15:08:01HClif i feed it through objdump
15:08:02LinusNpreglow: we can program it
15:08:03HClits supposed to be fine
15:08:09HCl20: 2278 0150 moveal 150 <main+0x142>,%a1
15:08:16HCl26: 4e75 rts
15:08:39preglowwell, then the error is probably not here
15:09:02HCl :(
15:09:11HClpreglow: think you can help me a bit? :/
15:09:13LinusNpreglow: we have documentation on the DSP in the MAS, but not on the rest of the chip
15:09:20HClcause i don't understand whats going wrong..
15:09:35preglowLinusN: ahh
15:09:51preglowHCl: i'm not much of a 68k expert
15:09:55HCl :/
15:10:00 Quit edx (Read error: 110 (Connection timed out))
15:10:00 Join muesli- [0] (
15:10:16*HCl sighs.
15:10:22LinusNHCl: what's the problem?
15:10:27preglowand right now i need to finish this optimization i'm working on, i should have been doing other things for a lot of hours now
15:10:40HClLinusN: i'm writing a code block consisting of 2278 0150 4e75
15:10:44HClwhich according to objdump
15:10:46LinusNpreglow: i know the feeling :-)
15:11:00HClis moveal 0x150, %a1 , rts
15:11:16HCland i'm calling it using this:
15:11:30HCl"movem.l (%0),%%d0-%%d6/%%a0-%%a1\n\t"
15:11:30HCl "jsr (%1)\n\t"
15:11:30HCl "movem.l %%d0-%%d6/%%a0-%%a1,(%0)\n\t"
15:11:30DBUGEnqueued KICK HCl
15:11:30HCl :
15:11:30HCl : "a" (&cpu.a),
15:11:32HCl "a" (b->block)
15:11:35HCl : "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "a0","a1", "a2", "a3", "a4" );
15:12:13HCli made it dump all the registers before the movems and after calling the block and the movems...
15:12:23HCland it seems to work fine, aside from completely messing up the value of %a1
15:12:42HClfor some reason it turns into 0x20398000
15:12:49HClrather than 0x150
15:12:53LinusNis %a1 supposed to be included in the movem?
15:13:06HClit needs to be stored in memory
15:13:11HCland fetched
15:13:15HClbefore calling the block
15:13:27LinusNand cpu.a is which register?
15:13:51LinusNcan't be
15:14:12LinusNmovem.l needs an address register
15:14:15HClit starts with d0 then it traverses it o.o
15:14:23HCloh. you mean
15:14:24HClin the code
15:14:26***Alert Mode level 1
15:14:26HCllet me look.
15:14:31preglowdoes anyone know how gcc prefers labels in asm statements to look like?
15:14:37HClits supposed to be %a5 or %a6
15:14:44LinusNpreglow: .label:
15:14:48preglowLinusN: thanks
15:14:49HCllet me check
15:14:59LinusNpreglow: oh, you mean global ones?
15:15:19LinusNthen it's just the plain name
15:15:30HCl 880: 4bf9 0000 0000 lea 0 <cpu_reset>,%a5
15:15:30HCl 886: 2c6f 0078 moveal %sp@(120),%fp
15:15:30HCl 88a: 4cd5 037f moveml %a5@,%d0-%d6/%a0-%a1
15:15:30***Alert Mode level 2
15:15:30HCl 88e: 4e96 jsr %fp@
15:15:30***Alert Mode level 3
15:15:30HCl 890: 48d5 037f moveml %d0-%d6/%a0-%a1,%a5@
15:15:48HClwhats %fp, by the way?
15:16:00amiconnLinusN: Really? I think if you want to define function foobar() in asm, you need to use _foobar:
15:16:00LinusNframe pointer
15:16:09LinusNamiconn: not for the 68k
15:16:22LinusN(or is it the other way around?)
15:16:39amiconnThe underscore is definitely necessary for SH1
15:16:40LinusNHCl: yes
15:16:49LinusNamiconn: then it isn't for the 68k
15:17:18CtcpIgnored 1 channel CTCP requests in 0 seconds at the last flood
15:17:18*HCl sighs
15:17:34amiconnStrange. I thought this C -> asm label translation is independent of cpu architecture. Iirc x86 also needs this.
15:17:40*HCl goes to doublecheck the encoding of movea
15:17:49LinusNamiconn: i was surprised too
15:17:50preglowLinusN: no, i meant a local one
15:17:58LinusNthen it is .label:
15:18:54 Join webguest33 [0] (
15:19:02LinusNHCl: i don't see anything wrong with that code
15:19:07HClme neither :(
15:19:26 Quit muesli- (Read error: 104 (Connection reset by peer))
15:20:15LinusNbut then i didn't see any problem with preglow's code either :-)
15:20:50*HCl sighs, needs an assembly-level trace/debugger
15:21:19*LinusN caresses his bdm emulator
15:21:23 Quit newnick ("CGI:IRC (EOF)")
15:21:34HClheh, i don't suppose you'd be willing to debug part of rockboy? :X
15:21:35 Quit webguest33 (Client Quit)
15:21:46HCl*has no idea how easy it is to debug with a bdm*
15:22:04LinusNit's easy
15:22:11LinusNbut my time is extremely limited
15:22:16HClyea. its ok.
15:22:32jypIs the code you're talking about somewhere ?
15:22:40HCllet me put it on my ftp
15:22:45HClbinaries are on my ftp either way
15:22:49HClhold on..
15:23:17jypI don't have an iRiver, so the binaries are not so useful :P
15:23:34HClhold on, let me just get the code
15:23:46jyptake your time ;)
15:23:54preglowLinusN: how would a gdb stub for serial port function in comparison to the bdm?
15:24:15LinusNit would work great
15:25:16jypwhere's the offending code ?
15:25:31***Alert Mode OFF
15:25:36HClcpu.c and dynarec.c
15:25:44elinenbeHCl: how is rockboy running? (well, with they dynarec, not with the bugs!)
15:26:12HClelinenbe: not, cause dynarec is malfunctioning so far, but making a little progress in that calling a dynarec block doesn't crash the iriver anymore
15:26:26elinenbehey, that's a step!
15:26:35HClyea, but now its delivering the wrong results
15:26:44HClfor unknown reasons
15:27:01elinenbewhat's the deal with #ipodlinux, it seems like there is so little interest in that project...
15:27:24preglowhaving to look up the instruction reference to see what instructions support what register types all the time is extremely annoying
15:28:52jypHCl: Is the assembler code conforming to your expectations ?
15:29:02LinusNpreglow: yeah, the standard 68k is a little nicer than the coldfire
15:29:25HCljyp: what do you mean..?
15:29:50jypAre you ok with the way gcc allocates registers ?
15:29:56HCli don't see why not.
15:30:05jypI just ask ;)
15:30:15HClif you browse up in the chat a bit, i pasted a dump of the assembly that gcc generates
15:30:52jypbtw, the purpose of the movem is to save the registers right ?
15:31:00HClyea, and load
15:31:16LinusNa terrible waste to save all regs every time
15:31:22HClcpu.h has a gameboy register -> m68k reg map
15:31:34jypI don't understand why you have to save those AND mark them as clobbered
15:31:49HClbecause they are.. clobbered..?
15:31:56HClthe first movem doesn't save them, but load them
15:32:00HCland the second movem writes them
15:32:04HClnot the other way around
15:32:31HClLinusN: i'm not going for speed yet.
15:32:43HCltrying to get it to work first.
15:32:53LinusNwhat a unique approach! :-)
15:33:05HCl o.o
15:35:59 Quit Marco (Read error: 110 (Connection timed out))
15:37:32*HCl scratches his head
15:37:39 Quit Sando (Read error: 54 (Connection reset by peer))
15:40:06 Nick edx__ is now known as edx (
15:42:09LinusNtime to go home
15:42:11LinusNcu aroune
15:42:17LinusNcu around
15:42:20 Part LinusN
15:45:46 Nick Lynx_ is now known as Lynx_awy (HydraIRC@
15:51:15*HCl sighs again.
15:51:23*HCl throws stuff at gcc
15:52:35*preglow bitchslaps gcc
15:55:11jypI can't see how gcc is involved in your problem
15:56:28HClits compiling my code.
15:56:33HCland its doing it wrongly.
15:56:49jypHa, now we're getting into it ;)
15:56:57HCland now it even crashes rockboy
15:57:05jypI asked you just above and you seemed happy :P
15:57:39preglowyes, i'm sitting here with a screenfull of asm code thanks to gcc not doing its stuff properly
15:58:26CoCoLUSfile a bug report :)
15:59:35HCljyp: not really.
16:03:13jyppreglow: is it because it doesn't understand clobbered registers properly ?
16:04:36HClhere it actually assigned the same register (a4) to two arguments.
16:06:00preglowjyp: don't know
16:06:11preglowand now it actually just generates invalid assembly
16:12:35jypHCl: it can assign both an input and output to the same argument if the input is not marked as clobbered, iirc
16:12:47preglow-rwxr-xr-x 1 thomj users 838219936 Feb 25 16:12 mpa2wav.rock
16:12:49preglowwhat the hell
16:13:16 Join bg_ [0] (
16:13:19preglowi think a plugin the size of an iso is a bit much
16:14:07jypthere probably is something in a supposedly empty section
16:14:37preglowthe .o file is correctly sized
16:14:45preglowi wonder how this happened
16:14:57preglowi haven't done anything but modify some asm
16:15:46jypmaybe you put something around address 0x31f638a0 ?
16:17:58 Join AC [0] (
16:19:34*AC runs the last wv tests
16:20:24preglowcould anyone skilled in the ways of Makefiles have a look and determine why libmad's makefile doesn't pick up when changes are made?
16:20:34preglowhaving to do a make clean each time i change something is very annoying
16:22:44*HCl sighs.
16:23:06 Join Chamois [0] (
16:26:34*HCl blames the movem instruction.
16:33:32 Join zezayer [0] (
16:38:38preglowi can't take this
16:38:41preglowi need to be able to debug
16:45:35jypamiconn: what'd you say if panic.h looked like this:
16:45:40jyp#include "sprintf.h"
16:45:40jypvoid panicf( const char *fmt, ... ) ATTRIBUTE_PRINTF(1, 2);
16:46:27jyp(ignoring header&trailer of course)
16:48:05*HCl sighs.
16:48:09*HCl whacks things.
16:48:09 Join cYmen [0] (
16:48:56*HCl takes the pc calculation out...
16:51:53*HCl sighs and stares.
16:54:06*HCl goes.
16:54:39 Join muesli- [0] (
16:55:15 Join mecraw [0] (~mecraw@
16:59:37 Quit AC ("CGI:IRC (EOF)")
17:00:41***Saving seen data "./dancer.seen"
17:02:44 Join ze__ [0] (
17:03:24 Quit ze (Nick collision from services.)
17:03:29 Nick ze__ is now known as ze (
17:10:38 Join skav [0] (
17:12:05 Quit muesli- (Read error: 60 (Operation timed out))
17:27:47HClis 0x150 a valid memory address?
17:29:12HClon iriver?
17:29:19HClwhere's linus when you need him..
17:32:00 Quit Aison ("( :: NoNameScript 3.72 :: )")
17:33:33 Join XShocK [0] (
17:34:41HClmy dynarec is doing (0x150), %a1
17:34:46HClinstead of 0x150, %a1
17:37:01HClnow i just need to fix that.
17:45:50bg_is dynarec just another way of saying HLE
17:48:29 Quit Patr3ck_ ()
17:50:27jypstate what HLE means ;)
17:50:55jypIt's even more crytic than dynarec :p
17:51:30elinenbeHLE is High level Emulation
17:52:04elinenbethat is instead of emulating the processor... you emulate system calls.
17:55:46jypNo; it's not the same
17:56:08jypand it cannot be done in this case since there's no hardware support for Z80 in the Coldfire
17:56:31jyp, bg_
17:59:07 Join Renko [0] (
17:59:27bg_i see
18:02:10HClbg_: not at all.
18:02:19HClwhat they said :P
18:02:24*HCl hadn't read up yet
18:02:41 Quit zezayer (Read error: 110 (Connection timed out))
18:02:44HClelinenbe: not just system calls, library calls
18:05:41*HCl goes to doublecheck...
18:22:19 Join muesli- [0] (
18:23:32 Join zezayer [0] (
18:24:40 Quit muesli- (Client Quit)
18:26:06 Join hubble [0] (
18:28:53jypSomeone knowledgeable with the fat driver reading?
18:28:54hubbleXShocK: ok i've got the DMA working, i think the problem is that i had a old bootloader with the rambar1 bug
18:29:39hubbleXShocK: but i don't get why the frequency is messed up
18:29:52hubbleXShocK: if I use DMACONFIG = 0x4300 that is
18:30:42hubbleXShocK: doh. i was still using the sdram buffer =(
18:31:13preglowwhy shouldn't you use the sdram buffer?
18:32:44hubblepreglow: because the audio FIFO of the coldfire is only 6 samples, so we need to use a special mode of the DMA controller called "Cycle steal" (CS) which basicly means that the dma only transfer 32-bits for each request from the audio interface (I2S)
18:33:40preglowsix samples
18:33:47hubblepreglow: so the request must be completed before the FIFO is empty
18:34:12hubblepreglow: i guess the problem with sdram is that (at the current CPU frequency) it is too slow
18:34:34preglowwell, sdram is probably ok, as long as not too much is used
18:35:06hubblepreglow: i think we only need 1k or even less than that
18:35:20preglowyes, we'll see anyway
18:37:09XShocKjust came...
18:39:17XShocKi used SRAM and needed 0x6300 for it to play nicely. maybe it is because it was stereo.
18:39:52XShocKor... i shouldn't be such
18:40:26XShocKon 4300 it works without any glitches whatsoever, but just twice as slow.
18:40:50XShocKso there is no problem related to the speed of SRAM.
18:41:04hubbleok, that is great
18:41:22 Quit cYmen ("leaving")
18:41:23hubblelittle wierd since the iriver firmware uses 4300
18:41:26preglowthe sram is single cycle access, so small wonder
18:41:30XShocKi yes
18:42:50hubbleXShocK: try to set AUDIOCLK in PLLCR
18:43:02hubbleXShocK: that way 4300 should work
18:43:35XShocKyes, i remeber deleting the PLLCR config.
18:43:39XShocKwill try now
18:45:00HClrambar1 bug?
18:45:09HClwhats a rambar1 bug?
18:45:24 Join AC [0] (
18:45:28hubbleHCl: linus initialized SRAM wrong
18:45:31XShocKhubble, did you "make clean" after changing the crt0.s file?
18:45:39HClhubble: ah.
18:45:52ACfirst part of libwavpack is in cvs
18:45:59hubbleXShocK: not sure, but i'm pretty sure I saw that it compiled crt0.s
18:46:04ACis is realy slow.. about 3% in the worst case
18:46:24preglowAC: yes, we'll fix that some time ;)
18:46:26XShocKbecause i didn't do that, and had a hard time understand what was the bug, :)
18:46:59XShocKnop.. PLLCR didn't help
18:47:10XShocKaa yes, helped
18:47:28XShocKok, then that is the thing... :)
18:47:33ACpreglow: :)
18:47:51preglowthat is, if i don't commit suicide over failing to optimize libmad some time soon
18:50:28HCloh. the good news is that my dynarec is working, by the way
18:50:41Chamoisabout codecs do you have news about the mp3 codec here
18:50:42preglowit is?
18:50:44preglowwhat was wrong?
18:51:12HClthe bad news is, its generating the wrong results
18:51:25HClpreglow: the opcode its compiling is actually movea.l (0x150), %a1
18:51:26HClrather than
18:51:32HClmovea.l 0x150,%a1
18:52:06HCli modified hello world to give me the value at memory address 0x150
18:52:07preglowis this in an asm statement?
18:52:14HCland it was the value the PC was getting set to
18:52:18preglowor code you generate?
18:52:43HClvoid DYNA_MOVEA_w_i_to_r(un16 imm, un8 dest) {
18:52:43HCl DWRITEW(0x2078|(dest&0x7)<<9); // unsure if correct
18:52:43HCl DWRITEW(imm);
18:52:50HClnow, it does have an unsure if correct comment.
18:52:53HCli'll look into that.
18:53:50 Join linuxstb [0] (
18:54:09preglowit is incorrect
18:54:18HClyea, i think i understand what i did wrong
18:54:35HClthe odd thing is, when i put asm("movea.l 0x150 %%a1"); in gcc
18:54:42HClit seems to generate the same wrong code as me
18:54:47HCl(add a ,
18:55:07preglowi think it should be
18:55:15preglowHCl: you lack a #
18:55:25preglowHCl: all constants that aren't prefixed # are taken as addresses
18:55:42HClwell, i happen to have an MOVEA_l_i_to_r
18:55:44 Quit Chamois ("CGI:IRC")
18:55:47HClwhich is indeed 0x207c
18:55:50 Quit linuxstb (Client Quit)
18:55:53HCli'll look into it
18:56:08HClas i was saying, the dynarec is working
18:56:12HClnow i just gotta get my encoding right :)
18:56:18preglowgimme a sec here
18:56:26 Join linuxstb [0] (
18:56:26 Quit linuxstb (Client Quit)
18:56:34preglowwell, i think that's just plain wrong, in that case
18:57:02preglowwhat does w_i and l_i stand for?
18:57:06preglowword int? long int?
18:57:13HClword/long immediate
18:57:19 Join linuxstb [0] (
18:57:31HCl 20: 227c 0000 0150 moveal #336,%a1
18:57:35HClthats what gcc generates now.
18:57:40HClwith the #
18:57:42HCllooks much better
18:57:44preglowlooks right?
18:57:56HClso i'll just delete my subroutine and use my _l variant instead
18:58:21preglowfor word, it should be 0x307c
18:58:38HClyea. its a bit confusing.
18:58:52preglowunless it turns out i can't do hex in my head any more
18:58:54HCli'll get it right :)
18:58:56HClhehe :P
18:59:16HCli just gotta get used to the coldfire programmers manual
18:59:59AClinuxstb: wv2wav works for me
19:00:20linuxstbIs it in CVS yet?
19:00:34ACadded it a minute ago
19:00:44***Saving seen data "./dancer.seen"
19:01:00HClc = 1100 ...
19:01:05linuxstbI'll give it a go now. Does it work with hybrid (i.e. lossless) files?
19:01:38preglowHCl: indeed, and the lower mode bit needs to be 1
19:01:44preglowHCl: and the top register bit needs to be 1
19:01:49HClyea, its still downloading the document
19:01:50preglowHCl: the rest 0, which gives you c
19:01:53HCli'm on this hacked wireless network
19:02:10HClour city seriously has too many wireless networks
19:02:35preglowmost cities have, heh
19:02:38HClthis is indeed the opcode for #<data>
19:02:51HClseems like i need to rewrite my move immediate instructions since i got them wrong
19:03:09AClinuxstb: here is a wv to test:
19:03:36linuxstbThanks, but I've already made myself some .wv files.
19:04:12linuxstbBut I'll download it anyway....
19:04:35AClinuxstb: atm rockbox supports wv files in version 4.x
19:05:07AC3.x support i will add later
19:06:58linuxstbWhat speed are you getting with your test file(s)?
19:07:03elinenbeHCl: dynarec is working... great!
19:07:47AClinuxstb: it depends on how the file was encoded.. worst 3% best 7%
19:09:42linuxstbAC: my file gave about 3.4%
19:10:04linuxstbHow much work is it to support wv 3.x files? What's the difference between 3.x and 4.x?
19:11:44AClinuxstb: it shouldn't be hard to support version 3.x - but i dont know the exact difference
19:12:05AClinuxstb: i think en/decoding has ben improved in version 4.x
19:13:35linuxstbAre you planning on looking at any more codecs? libmusepack is about the only one I can think of that we haven't incorporated yet.
19:13:38elinenbeHCl: where do you live?
19:14:07AClinuxstb: Sure.. it quite fun to get a codec working :)
19:15:03linuxstbDo you know how libwavpack deals with the hybird compression (.wv and .wvc files)? It seems that it would be quite hard to fit that into Rockbox.
19:16:03AClinuxstb: at the moment not, but i will check it.. i have also contact to the wavpack developer
19:16:50HClelinenbe: netherlands
19:20:56CoCoLUSwhats .wv? :)
19:22:08HClit works it works it works
19:22:28*HCl just successfully executed his first dynarec block
19:22:38*HCl gets the debug crap out a bit.
19:23:08elinenbeI have a question... all the numbers that are thrown out are so low.... 3%, 7%, 5%, etc.
19:23:21 Join Stryke` [0] (~Chairman8@resnet-241-86.resnet.UMBC.EDU)
19:23:32 Part elinenbe
19:23:44 Join elinenbe [0] (~elinenbe_@
19:24:31elinenbeso, when will they be moving closer to 100% (realtime, or faster)?
19:26:38ACmust go now.. see you
19:27:06HCldon't look at me :X
19:27:07 Quit AC ("CGI:IRC")
19:27:44elinenbeI mean... what is holding the speed back −− are you still working with an 11mhz cpu?
19:30:51rasherThat, and little to no optimisation
19:35:03preglowlinuxstb: have you got any idea how to fix the libmad makefile?
19:38:12preglowokok, i've got an array address i want to use in an asm statement, how do i go about doing this? right now i just use "movea.l #label, %a1", but this doesn't work at all
19:38:26preglow#label evaluates to #0, and that's the address of a function
19:45:40HClrecompiling block 0x150
19:45:43HClunimplemented opcode :)
19:45:47*HCl goes for food now, dynarec is working
19:46:07rasherOh boy
19:50:29hubblepreglow: try pea #label ?
19:50:44linuxstbpreglow: I haven't looked in detail, but I think the problem is that the apps/plugins/Makefile doesn't specify that libmad is a requirement to build mpa2wav.
19:51:07 Part hubble
19:51:08preglowhubble: why would i want to push it?
19:51:49preglowi'm going to use it as an array, and the label is the start of the array
19:52:36jyppreglow: why don't you do it in C & look what the compiler outputs ?
19:53:07preglowi was planning to do that, but wanted to avoid having to put in the c code again
19:53:13preglowbut ok
19:53:32jypOr look for another array :)
19:53:50jyp...access, that already exists
19:55:33preglowit just does lea imdct_s, %a1
19:55:39preglowi tried that, then it fails completely
19:55:46jypin what way ?
19:55:55preglowplayer locks up
19:56:35jypIf I were to give my opinion, is has nothing to do with the use of "lea"
19:56:38preglowwhat the hell?
19:56:56preglowthe compiler ends up resolving the address to be 0 as well
19:57:16preglowhow can that be? that's most definitely not where the array is
19:57:18jypI guess you are disassembling the code before relocation
19:57:43preglowthat's very true
19:58:26preglowi didn't think of that at all
20:16:16jypStill no fat guru around?
20:16:32jypfat as in File Allocation Table, of course
20:16:47preglowi think that would be zagor
20:16:59preglowyou could try doing a summoning ritual
20:17:07jypheh ;)
20:21:32*HCl scratches his head as his dynarec isn't too efficient yet
20:23:06preglowdid you try moving the interpreter core to sram, btw?
20:27:12HCli wouldn't know how.
20:28:26HClthe biggest trouble i'm having is gameboy memory accesses, really.
20:28:45preglowin what way?
20:31:09elinenbeHCl: is the dynarec more efficient than the static emulation?
20:31:26HClwell, memory read/writes in gameboy go through rather complex functions
20:31:48HCland before each call to them, i have to store all the gameboy registers, and fetch them again afterwards
20:32:30preglowyou mean like indexing and shit?
20:32:33HClelinenbe: it should be faster when talking about calculation, but i'm worried about memory accesses
20:32:44HCli even spotted some recursion
20:32:45preglowhow complexing indexing does it do?
20:32:48HClwhich is just really icky
20:32:50preglowthe coldfire does some of that as well
20:33:15preglowyou got any docs on the cpu?
20:33:21preglowthat i can sneak a peek at
20:33:53HClthe code for memory accesses is more relevant, really
20:34:12preglowi want to have a look at what addressing modes it has
20:34:26HClkay.. hold on.
20:38:04preglowpretty small instruction set
20:38:42preglowbut what complex functions are you talking about?
20:41:04 Join cYmen [0] (
20:58:21 Join midk [0] (
21:00:47***Saving seen data "./dancer.seen"
21:11:36 Nick StrathAFK is now known as Strath (
21:26:33 Quit Renko (Remote closed the connection)
21:29:46 Quit edx ()
21:30:33 Quit zezayer ("ChatZilla 0.9.61 [Mozilla rv:1.7.2/20040804]")
21:32:58 Join edx [0] (
21:47:45XShocKif i have a i2c bus, and i want to connect one additional device to it, what are my actions? if i understand right i only need to change the resistor on the bus line.
21:49:07pilltmobile got owned again..
22:27:13 Quit lolo-laptop (Remote closed the connection)
22:27:40 Join [IDC]Dragon [0] (
22:28:25 Join lolo-laptop [0] (~lostlogic@
22:28:52[IDC]Dragonjyp: what do you want to know about the FAT?
22:30:40jypMy question was if a short int was enough for #entries in a directory
22:30:54jypAlso, side questions are...
22:31:17jypcan I trust fsck for fat, and;
22:31:21*[IDC]Dragon digs for the spec
22:31:52jypwhat tool should I use to check the fat structure
22:33:02jypfsck 1.35 (28-Feb-2004)
22:33:03jypdosfsck 2.10, 22 Sep 2003, FAT32, LFN
22:34:38[IDC]Dragondo you know that paper?
22:34:52[IDC]Dragonit's the FAT bible
22:37:19[IDC]Dragonthe # of dir entries are 16 bit for the root
22:38:12[IDC]Dragonsorry, that was FAT16
22:40:35[IDC]Dragonbetter use 32 bit
22:40:58[IDC]Dragonfor which variable?
22:44:08[IDC]Dragonthe case might be a bit esotheric, but I vote for 32 bit
22:44:21[IDC]Dragonwhy so pinchy?
22:45:41jypActually I don't think it is the problem I'm facing
22:45:52 Quit linuxstb (Read error: 110 (Connection timed out))
22:47:12jyphere a couple debug messages I get ...
22:47:25jypdrivers/fat.c:1957 next_write_cluster(0,0)
22:47:29jypdrivers/fat.c:773 find_free_cluster(4D380) == 4D380
22:47:34jypdrivers/fat.c:837 update_fat_entry(4D380,FFFFFF8)
22:48:01 Quit skav (Read error: 110 (Connection timed out))
22:48:20jypit this normal ?
22:48:50jypnot what I wanted to paste
22:50:09*HCl can't stand his parents..
22:50:20HClpreglow: memory.
22:50:56HClpreglow: memory mapped io puts a lot of overhead on memory accesses and complicate memory read/write functions in an emulator.
22:51:12jypAnyways... I guess FFFFFF8 a fake entry for free space
22:51:56[IDC]Dragonit's a special marker, end of chain or so
22:52:16[IDC]DragonEOF, yes
22:52:56[IDC]Dragonnext_write_cluster(0,0) looks no good
22:53:20*preglow loves his parents
22:53:51HClmy dad is fine, its mostly my mom.
22:53:55preglowdon't see enough of them these days
22:54:04HClshe always stresses the living crap out of me.
22:54:12HClwhile i can't stand stress and its really unhealthy for me.
22:54:24preglowstress is bad, yes
22:55:06CoCoLUSjust tell her "keep quiet, i got to work on the dynarec", and when she asks wtf that is, tell her, it's the only thing keeping your house from exploding :)
22:55:15HClshe doesn't listen.
22:55:17HClto anything.
22:55:26HCleven when she's making me really stressed and pissed off
22:55:30HClshe just continues
22:55:32HClmaking it even worse
22:55:39HClat the end it got so bad that i had to resist hitting her
22:55:44HClthen i just grabbed my stuff and left.
22:56:01HClfirst time i got my car up to 6000 rpm.
22:56:21HClthe gear / gas thing in need for speed really works.
22:56:43CoCoLUSnot with a cold engine i hope? :)
22:56:43HClofcourse there were boring people that followed the speedlimit so i couldn't race all the way.
22:56:45preglowmy father's good at stressing me up as well, but i've learnt how to handle him
22:57:32rasherHCl: which gear/gas thing in need for speed?
22:57:56HClrasher: accelerating from 3000 rpm - about right in front of the red, then changing gears for acceleration.
22:58:13rasheryes, yes that is indeed correct
22:58:53HClsecond gear can still go pretty fast
22:59:08rasher(unrelated to anything, but awesome )
23:00:50***Saving seen data "./dancer.seen"
23:16:18jyp[IDC]Dragon: any chance there's a tool to browse the FAT structures ?
23:21:11 Join zezayer [0] (
23:25:18 Quit courtc (Read error: 60 (Operation timed out))
23:26:21preglowrasher: damn, my firefox looks good now
23:27:49preglowfur and gold
23:28:51preglowbut i still can't get my damned simple imdct_s optimisation to work :////
23:31:17 Quit zezayer ("ChatZilla 0.9.61 [Mozilla rv:1.7.2/20040804]")
23:32:01preglowjyp: do you know if objcopy translates _all_ references, or do i need to do something fancy?
23:32:13jypreferences ?
23:32:30 Quit lolo-laptop ("Client exiting")
23:32:33jypto labels ?
23:32:41preglowwell, it obviously generates position independent code
23:33:04jypI don't really know
23:33:58jypbut *local* labels have no relocation entry, so you won't see the symbol
23:34:02 Join courtc [0] (
23:34:07jypyet I'm not sure this is your question
23:34:08preglowi'm starting to suspect my label reference isn't getting relocated
23:34:36preglowwell, the label i reference is static...
23:35:03preglowbah, i'll just let it be and ask linus when i see him again
23:35:06jypstatic is still relocated
23:35:40jypit's only when the label is accessed by a relative jump for example
23:36:03jypYou can disassemble the code after relocation to be certain
23:36:54preglowhow do i do that? i would have to objdump the .rock file?
23:37:30jypI think so
23:37:48jypI don't have looked into plugins yes
23:37:49preglow-r prints reloc entries
23:38:07preglowmy lea does have a reloc entry
23:38:11jypIf .rock is the ld output then yes
23:38:30preglowobjdump doesn't understand .rock
23:38:42preglowwhich comes as no surprise
23:39:25jyplemme have a look at the makefile
23:40:17preglowspotted one error right there
23:40:31jypmm call to ld is wrapped in a script
23:41:23preglowlet's hope this helps
23:42:05 Join skav [0] (
23:50:05preglowi got it!
23:50:55preglowthe error was, as usual, in the constraint list
23:51:43preglowthink i found a bug as well, if you list only input and output constraints, gcc doesn't think the asm block is used

Previous day | Next day