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).

Notice: Only Gecko based browsers prior to FF4 support the multipart/mixed "server push" method used by this log reader to auto-update. Since you do not appear to use such a browser, this page will simply show the current log, and not automatically update.

#rockbox log for 2005-02-18

00:00:00Digital007i just wondered how the sound progress for iriverbox is coming on
00:00:07hubbleoki.. great
00:00:14XShocKLinusN: where did you get that 54?
00:00:30LinusNdma0 is the 54th vector in system.c
00:00:32ashridahDigital007: we gave up because someone forgot to bring cookies
00:00:46Digital007why do u need cookiues for?
00:00:57Bagderto munch!
00:01:00hubbleDigital007: he was not answering your question with 54 =)
00:01:12Digital007i thhought u meant cookies as web code cookies
00:01:35ashridahwhat would http cookies have to do with embedded development/
00:01:46Digital007would be great to have MP3Pro as a codec as well
00:02:48LinusNgotta sleep, happy dma:ing
00:02:54Digital007MP3Pro sounds much better than WMA and almost as good as normal MP3
00:02:55HClwhats the dma for?
00:03:02LinusNfeeding the dac
00:03:09 Part LinusN
00:03:23 Join Nibbler [0] (
00:03:37HClamiconn: any progress?
00:03:37XShocKhubble: did you understand where this 54 came from? I don't see anything like that in system.c
00:03:52amiconnHCl: Currently rewriting makefile...
00:03:54Digital007i thought the sound was 54% doen
00:04:10preglowwhat does flac require 64 bit numbers for? 32x32 muls?
00:04:34Bagderpreglow: he mentioned something more in that forum thread, I closed that tab ;-)
00:05:16hubbleXShocK: if you count the index in irqname[] to DMA0 i guess that's 54
00:06:07 Quit skav (Read error: 54 (Connection reset by peer))
00:06:14hubbleXShocK: but i'm not sure where DMA0 is defined
00:06:43XShocKi guess this: default_interrupt (DMA0); /* DMA 0 */
00:06:57XShocKand then i think you shoud put you own implementation
00:07:34preglowwe probably should use the emac for as much as possible anyway, so we might not be affected by all the 64 bit stuff
00:07:44hubbleXShocK: aa.. default_interrupt macro expands it into a function definition
00:08:07 Join fubar [0] (
00:08:14hubbleXShocK: and then the .vectors array contains the function call
00:09:03XShocK.vectors array?
00:09:26preglowBagder: i can't imagine why they'd need 64 bit variables other than to do 32x32 muls
00:09:26preglowBagder: and the emac does that for us
00:10:20Bagderhe said this "FLAC supports up to 32-bits per sample losslessly which means there are a lot of 64-bit datapaths. and the seeking and metadata interfaces that work with 64-bit sample number are numerous."
00:10:35 Join mrmags [0] (
00:10:53Digital007support WMA Lossless!!!!!!
00:11:54 Quit Digital007 ("CGI:IRC (EOF)")
00:12:11HCloh, and get rockbox to make coffee!! ;p
00:12:15 Join Digital007 [0] (
00:12:18preglowBagder: the latter part shouldn't be that much of a problem, i think
00:12:23Digital007WMA Lossless - WAV quality at half the file size
00:12:34preglowDigital007: Flac - WAV quality at half the file size
00:12:49preglowDigital007: there's no way for us to support wma lossless, afaik ms has not released specs
00:16:43fubarI know xine supports wma, but I'm not sure if it uses the win32 codec
00:17:51preglowwma, yes, but does it support wma lossless?
00:18:08preglowffmpeg has a wma decoder, but there are quite a lot of wma versions around
00:21:04rasherit probably uses the win32 codec anyway
00:21:20rasheralso, there's not that much lost in not supporting lossless formats
00:21:25rasherpeople can always convert :)
00:21:33Bagdervery true
00:22:11Digital007Aren't there licencing issues to worry about if ur writing software codecs?
00:22:36Bagdernot worry, but we need to adhere
00:22:42coobffmpeg has a fpoint wma decoder
00:22:54Digital007I've noticed that the battery meter always flashes empty even on a fully charged iRiver
00:23:18amiconnBah, obviously I don't fully understand 'make' yet
00:23:32amiconnmake[3]: *** No rule to make target `/home/Administrator/rb-gameboy/build/recorder/rockboy/cpu.o', n
00:23:32amiconneeded by `/home/Administrator/rb-gameboy/build/recorder/rockboy/rockboy.elf'. Stop.
00:23:37rasherDigital007: that's "covered" in the wiki
00:24:00rasherbattery level detection isn't done yet
00:24:14amiconnThe rule should be covered by including ...
00:25:16 Quit ashridah (Read error: 60 (Operation timed out))
00:25:33Bagdercheck the depfile
00:26:00amiconnHmm. It didn't build one.
00:26:03Bagderbut I agree, it should be covered by that rule
00:26:36amiconnIn fact, this should be in builddir/rockboy/ or may this not work, i.e. the dir not yet created (??)
00:27:22amiconnHmm. Still not created... How is the depfile supposed to be created?
00:27:43BagderSOURCES must contain all C sources
00:27:56BagderC and asm actually
00:28:15amiconnThis variable must be called exactly SOURCES ?
00:28:18Bagderyes uses that
00:28:30amiconnAh, then this is the problem...
00:29:38Bagderthe include line makes make check the depfile dependency and thus rebuild
00:29:58amiconnNow the depfile is there, but I still get the same error...
00:30:08 Quit muesli_- (Read error: 110 (Connection timed out))
00:31:32amiconnHmm, the depfile lists cpu.o in the wrong dir
00:32:01amiconnIt wants it in builddir/ while I intend to have it in builddir/rockboy/
00:32:09amiconnIs that possible?
00:32:40Bagderit is, the recorder/ and driver/ etc are treated that way
00:33:06 Quit methangas (" HydraIRC -> <- IRC for those that like to be different")
00:33:29amiconnYeah... but in these directories there is no separate Makefile. These are handled in the Makefile of the parent dir
00:33:55Bagderthat's true
00:34:48Bagder... its not very easily done atm, I think
00:34:57 Quit CoCoLUS ()
00:36:30amiconnHmm. if I redefine $(OBJDIR) within the Makefile, would this work?
00:37:01Bagderyes, that should work
00:37:54BagderI've been planning to move all object files into subdirs better
00:38:19Bagderlike you do now
00:39:02HClyea, every plugin should have its own subdir, really.. imho..
00:39:06HClbut ok, i'm gonna go sleep..
00:39:32Bagderone subdir for each would be overkill
00:39:57Bagderhaving the ability to have one, yes
00:40:06HClyea, ok.
00:42:14 Join ashridah [0] (
00:47:14*HCl suddenly discovers the existence of a rockbox forum
00:47:26 Join bagawk [0] (~Lee@bagawk.user)
00:47:45coobheh you don't want to go near those things :X
00:47:53amiconnBagder: Redefining the variable doesn't work...
00:48:01coobnoob support city :<
00:48:59 Quit DMJC ("Leaving")
00:49:38rasherit's not that bad really
00:49:49rasherjust not of much use either
00:49:55BagderI need to sleep. If you don't get any further amiconn, I'll help you sort that out tomorrow
00:50:02coobheh maybe not on rockbox ones... don't look in the ipl ones :<
00:50:28amiconnBagder: Np, thanks for your help. Good night
00:50:46rasherWell these are people who bought ipods, what did you expect? :)
00:53:08 Join linuxstb [0] (
00:53:21coobare you saying all ipod users are thick?
00:54:02coobipod linux...
00:54:10HCl :p
00:54:12rashernope, but I'm rather guessing a lot are
00:54:18coobyeah well you'd be right :(
00:54:29 Quit bagawk ("Leaving")
00:55:50coob(about a lot.. not all heh)
00:56:51***Saving seen data "./dancer.seen"
00:57:56rasherWell it was a generalization - those rarely fit everyone :)
00:58:20 Join skav [0] (
00:58:28HClyea, you can't make a generalization without allowing room for exeptions
00:59:02 Join DrRick [0] (
01:03:37 Join Quelsaruk [0] (~kvirc@
01:03:42Quelsaruki'm back
01:13:32HClohno! :p
01:13:37HClhi :p
01:14:49*HCl goes to sleep :p
01:15:50 Quit DrRick ()
01:22:22 Part mrmags
01:25:12 Quit lolo-laptop ("Client exiting")
01:25:52 Quit _aLF ("Leaving")
01:26:22 Join kramerica [0] (
01:29:38 Quit preglow ("off")
01:32:36 Quit Patr3ck (Read error: 54 (Connection reset by peer))
01:36:59 Quit hubble ()
01:39:41 Quit Quelsaruk ("KVIrc 'Realia'")
01:52:04amiconnyay! Makefile is working!
01:52:04 Quit kramerica (Read error: 104 (Connection reset by peer))
01:57:51HCl :)
01:57:57HClbut i'm asleep *nods*
02:00:55 Quit Sucka ("( :: NoNameScript 3.81 :: )")
02:06:43*HCl tries amiconn 's lcd driver for iriver
02:06:51HClamiconn: do you have an iriver?
02:06:58HClamiconn: made any pics of rockboy on archos yet?
02:07:17amiconnI tried making pics, but my batteries died again :(
02:07:33amiconnDoes the lcd driver work?
02:10:22amiconnBtw, I renamed iriver.c to sys_rockbox.c
02:10:25HClit works
02:10:33HClit doesn't seem to be that much faster
02:10:37HClstill about 1 fps
02:10:48HClbut every bit helps, really
02:10:51 Join muz [0] (
02:11:13muzhey is it possible to play files from the tag database right now?
02:11:47 Quit Digital007 ("CGI:IRC (Ping timeout)")
02:14:23amiconnmuz: On ajb it is.
02:14:34muzarchos jukebox?
02:14:55muzit says on the wiki that u can only browse
02:15:10amiconnThen the wiki is out of date
02:15:22muzoh right
02:15:46muzis there any disadvantage in using the tag database (ie longer boot time as on iriver firmwar)
02:16:39amiconnI didn't test much, because my mp3 collection is well organised, but from the few tests I did I had the impresion it is slightly slower than file browsing
02:17:19muzbut it still does things like accelerated scrolling, so one can navigate through lists quickly
02:17:52muzthats so cool
02:19:11muzhow is linus getting along with the clock speed of the iriver?
02:19:45amiconnI have no idea.
02:20:11muzanyway thanks im gonna head off now
02:20:28 Quit muz ("CGI:IRC")
02:20:36HClwell. at least interrupts seem easyish on z80
02:20:59amiconnDid you have a look at the cpu core emu?
02:21:39HClwell, yea, but thats mostly gobbilygook, with gotos and too many defines, so i'm reading technical data
02:21:57HClapparently, there are only 5 interrupts
02:22:06HClvideo, lcd stat thingy, timer, serial and joypad
02:22:52HCland with dynarec, the biggest trouble is timing the interrupts right, really
02:22:59HClcause you get blocks of code
02:23:10HClthat can't really stop execution
02:23:14HClin the middle
02:23:17HClto allow for an interrupt
02:24:03amiconnHmm. I don't really know about how dynarec is implemented, and don't have the time to also deal with that, at least not atm.
02:24:10HClits fine :)
02:24:17HCli'm mostly waiting for linus to get it to 140mhz
02:24:19HClsee how it runs then
02:24:23HClthen start on dynarec
02:24:40amiconnDynarec might be helpful on archos.... but it's a different cpu
02:24:56HClbut dynarec is fairly easy to port
02:25:11HClyou just get things like void Z80_ADD_OPCODE() { }
02:25:25HCland you have to fill in the proper m68k assembly for it
02:25:46HCli'm not really gonna do any advanced optimalization.
02:25:54HCljust chaining them together should provide more than enough speed
02:26:08HClbut ok
02:26:14amiconnThe makefile seems to work properly now. The next things I'l do are
02:26:22HCli promised my gf i'd go to sleep early, and again i haven't yet :(
02:26:34 Join lostlogic [0] (
02:26:57coobheh gnuboy runs better on os x than the normal os x emulators
02:27:01coobwell, that's without sound
02:27:01amiconn(1) Write that loader plugin to allow rockboy for archos to run on unmodified rockbox (32 KB 'normal' plugin ram)
02:27:20amiconn(2) Trash those darn warnings
02:27:25amiconn(3) Commit to cvs
02:27:46amiconn..but all that has to wait due to sleep needed.
02:28:30 Part amiconn
02:28:31 Quit edx (Read error: 110 (Connection timed out))
02:42:00 Quit toolmanwv (Read error: 54 (Connection reset by peer))
02:42:18 Join toolmanwv [0] (
02:49:32 Quit coob (Read error: 60 (Operation timed out))
02:56:53***Saving seen data "./dancer.seen"
03:01:28 Quit toolmanwv ("—I-n-v-i-s-i-o-n— 2.0 Build 3515")
03:03:58 Join cYmen_ [0] (
03:05:08 Quit cYmen (Read error: 104 (Connection reset by peer))
03:30:26 Quit skav ()
03:36:46 Quit Aison (Read error: 104 (Connection reset by peer))
04:05:42 Join QT_ [0] (as@area51.users.madwifi)
04:07:45 Join edx [0] (
04:09:01 Quit QT (Read error: 60 (Operation timed out))
04:15:59 Join mrmags [0] (
04:21:48 Quit cYmen_ ("leaving")
04:30:00 Part mrmags
04:46:40 Quit XShocK (" HydraIRC -> <- Leading Edge IRC")
04:56:57***Saving seen data "./dancer.seen"
06:56:59***No seen item changed, no save performed.
07:23:33 Join pilled [0] (
07:30:03 Quit mecraw ()
07:39:35 Join kramerica [0] (
07:42:57 Quit pill (Read error: 110 (Connection timed out))
07:42:58 Nick pilled is now known as pill (
07:57:04 Join Patr3ck [0] (
07:57:05 Quit kramerica (Read error: 104 (Connection reset by peer))
08:02:22 Quit Hohoman ("( :: NoNameScript 3.81 :: )")
08:09:10 Join LinusN [0] (
08:47:27 Quit einhirn ("Miranda IM! Smaller, Faster, Easier.")
08:56:08 Quit Stryke` ("Friends don't let friends listen to Anti-Flag")
08:57:01***Saving seen data "./dancer.seen"
09:04:05 Join einhirn [0] (
09:04:38BagderLinusN: no M3 yet?
09:05:16Bagderstrange, its supposed to be in stores the 22nd
09:10:04 Nick Lynx_awy is now known as Lynx_ (HydraIRC@
09:13:01LinusNman, calculating all this clock timing is tedious...
09:13:44BagderI figure that
09:15:48ashridahm3? you mean the other coldfire based mp3/ogg/flac player?
09:15:58Bagderno, its a swedish magazine
09:16:01Bagderpaper version
09:16:28Bagderthere just might be something about Rockbox is this upcoming issue
09:18:59ashridahis it in english or swedish?
09:19:55Bagderwe were interviewed for the article before xmas
09:20:27dwihnowhat did you say?
09:21:05Bagderwe talked about Rockbox, what it is, how it started, what we do, who we are and what we are doing atm
09:21:11dwihnoWhat if, the JoS players would use rockbox? ;)
09:21:46Bagderthen of course, atm == late dec, which meant no working iRiver version
09:21:57 Join markun [0] (
09:22:05markungood morning
09:22:16Bagderashridah: "Jens of Sweden" I guess
09:22:26Bagdera brand of flash-based players
09:22:41markunI'm working on vorbis2wav but I have some problems..
09:23:29ashridahmarkun: such as?
09:23:43markunI want to use the vorbisfile interface to decode a file, but when I link the plugin to libTremor I get this:
09:23:46markun/usr/home/karl/tmp/src/rockbox/rockbox-commit/apps/codecs/Tremor/vorbisfile.c:772: undefined reference to `read'
09:25:14markunIs there a way libTremor can read the file?
09:25:59Zagoryou need to use the plugin api
09:27:43Bagdercheck Dave's plugins for the other codecs
09:28:02markunI got some inspiration from his code.
09:30:13 Quit ashridah (Nick collision from services.)
09:30:28 Join ashridah [0] (
09:30:40ashridah@#$%^@$%^@!@#$%@%^#%^&* ! damned power just flickered :/
09:34:16 Join bobTHC [0] (
09:35:20bobTHCmorning all!
09:38:06 Quit ashridah ("ircII EPIC4-2.0 -- Are we there yet?")
09:38:29 Join ashridah [0] (
09:42:11 Join webguest34 [0] (
09:44:38markunI tried to pass the plugin_api struct to the codec so it can user rb->open, when I include <plugin.h> in vorbisfile.c I get these errors:
09:44:49markunfirmware/export/system.h:161: error: parse error before "unsigned"
09:45:19markunThe plugins which also have <plugin.h> compile fine.
09:55:47LinusNi don't think the codecs will have the same plugin api as the regular plugins
09:56:22Zagorno, but it's a start
09:56:27LinusNand i also don't think they should need file access
09:59:17markunI agree, but I just wanted to do a quick test to see if decoding worked.
10:00:28LinusNisn't that supposed to be done by the xxx2wav.rock plugins?
10:00:54*LinusN hasn't been involved in the codec stuff
10:01:27Bagdermarkun is working on such a xxx2wav.rock
10:01:35Bagderxxx being vorbis
10:01:35markunyes, I'm working on vorbis2wav.rock
10:05:50LinusNbut then only the .rock file should include plugin.h, and the file i/o should be done there
10:06:47LinusNand then use memory buffers to pass data to and from the codec
10:07:14LinusNor am i out in the blue here?
10:07:35Bagderno, I agree with you
10:08:14*Bagder tries to build a h100 sim with gcc 3.3
10:08:19Bagderno work
10:08:25Bagdercc1: error: invalid parameter `large-function-insns'
10:08:56Bagdernot sure what the best approach to this is
10:11:36LinusNno sim-specific makefile defines?
10:12:00BagderI guess I could do that, but this isn't sim-specific
10:12:11Bagderthis is gcc 3.3 vs 3.4
10:12:26LinusNno, someone might use a 3.3 cross compiler as well
10:12:48BagderI'll do some magic in configure and set a variable
10:13:01LinusNgcc −−version
10:14:00 Nick QT_ is now known as QT (as@area51.users.madwifi)
10:14:15Bagderconfigure is changed a lot in my new build stuff anyway
10:15:03 Join amiconn [0] (
10:18:24 Quit ashridah ("Reconnecting")
10:18:40 Join ashridah [0] (
10:19:35ashridahi am so over these power flickers
10:22:47Bagderamiconn: any success with your build?
10:26:50amiconnI had to use 'override' to redefine the variable within the Makefile
10:27:43 Join Quelsaruk [0] (~kvirc@
10:27:48Quelsarukmorning to all
10:30:23 Join [IDC]Dragon [0] (
10:31:54amiconnHCl: there?
10:32:21Bagderamiconn: aha
10:34:58[IDC]Dragon2 days ago I saw the idea of treating the playback bitswap as a "codec", I like that
10:35:11Zagori don't
10:35:15BagderI like that
10:35:45Zagorit will cause more complex code and less battery life. for what?
10:35:46[IDC]Dragonmakes the bitswap indepent of the buffer handling
10:36:07BagderZagor: one playing system regardless of target
10:36:12[IDC]Dragonand opens the door to "trick modes"
10:36:31BagderI don't think it'll be more complex
10:36:49BagderI think it'll in fact be simpler
10:36:52[IDC]DragonI don't think it will affect battery life
10:37:07[IDC]Dragonwe have to bitswap anyway
10:37:49Zagorsplitting the buffer means we cannot load as big part of the file in ram
10:38:05[IDC]Dragonplus, with the new approach we bitswap on demand, just what's really played
10:38:33[IDC]Dragonthe swapped buffer can be very small
10:38:44[IDC]Dragonjust covering for our latencies
10:38:44amiconnZagor: I think that will be neglectible. Imho the hw format playback buffer should be <64 KB
10:39:07BagderI think the benefits outweighs the downsides
10:39:26Zagorthe only benefit is aesthetical, as far as i see
10:39:31amiconnLinusN: Regarding your concern that searching for mp3 frame headers on archos will affect battery life because of cpu usage: If done efficiently, it should be possible to search the whole buffer in less than 2 secs cpu time
10:39:46amiconnZagor: There are more benefits
10:40:09[IDC]Dragonwe don't have to track headers all the time, only when pausing/skipping
10:40:36Zagoramiconn: such as?
10:41:05 Quit MO-Pantsu (Read error: 110 (Connection timed out))
10:41:07Bagdergrr, there's no 'if > variable' in makefiles
10:42:02ashridahBagder: use the result from /bin/[ ?
10:42:05[IDC]Dragon1) uniform architecture 2) no swap thread 3) probably simpler code 4) trick modes feasible (FF/FR, etc.)
10:42:06LinusNcounting frames has the obvious benefit of displaying the correct playtime
10:42:17ashridahassuming you can test success/fail of a command
10:42:24LinusN"probably simpler code"?
10:42:46[IDC]DragonI don't consider the current mpeg code simple
10:42:49Bagderashridah: yes, possibly. I'll try...
10:42:51Zagor"no swap thread" no, because we call it "codec thread" instaed
10:43:06[IDC]Dragonbut that's negotiable ;-)
10:43:26 Quit markun ()
10:43:28[IDC]Dragoncurrently we have mpeg and swap thread
10:43:41BagderLinusN: simpler since it would be one way of playing instead of two, as we would need this system anyway for non-MAS players
10:43:49amiconn[IDC]Dragon: ??? Iirc the mpeg thread also handles swapping
10:43:51Zagorwhat are these "trick modes"?
10:44:01[IDC]Dragonit does? sorry then
10:44:02amiconnFF/FR with sound
10:44:12Zagorwhy would that be easier with unswapped data?
10:44:40[IDC]Dragonthere's no mixture of swapped and unswapped in the buffer
10:44:43amiconnNo because of being unswapped, but because of having those 2 buffers
10:44:45LinusNBagder: the iriver will not have swapping
10:44:55Bagderno, but codecs
10:45:00Zagoramiconn: why is that easier?
10:45:35[IDC]Dragoncurrently, trick modes would need to take swapped/unswapped into account
10:45:44amiconnMy idea was to always give whole frames to the codec on all architectures, with 'codec' on archos being the swap
10:46:05amiconnSo this allows for easy skipping of frames
10:46:16LinusNat least forward
10:46:19[IDC]DragonI don't think we need to go that far
10:46:25LinusNbackwards is another matter
10:46:30[IDC]Dragonbut it's an option
10:46:48*LinusN is switching between 40MHz and 140MHz on his iriver
10:46:51amiconnBackwards would need a bit more cpu power, because in needs to search by brute force
10:47:08BagderLinusN: cool!
10:47:33amiconnForward can use the calculated frame length, as long as there is no sync error
10:47:59[IDC]Dragonfor FF/FR in mp3, we need to modify the frames a bit, to strip the bit reservoir
10:48:55amiconnZagor: What's the problem with vbr? You read the farme header, and calculate the frame length from the bitrate & padding etc. Then you know where the next frame should start
10:48:59[IDC]Dragonthe Archos guys did that, with the SH
10:49:15[IDC]Dragonfor the Oskar
10:49:40[IDC]Dragon(anchestor of the the JBR)
10:49:50amiconn[IDC]Dragon: ??? Modify the frame? I can't imagine how this is supposed to work...
10:49:51dwihnothere were archoses before jbr?
10:50:09LinusNdwihno: oskar was a project for an electronics magazine iirc
10:50:32LinusNan mp3 player very similar to the jb
10:50:46[IDC]Dragoninsert a dummy frame which contains just the bit reservoir, iirc
10:50:47LinusNor rather, jb is very similar to oskar
10:51:18[IDC]DragonLinusN: almost, it appeared in a magazin (I have that issue), but existed before
10:51:38[IDC]Dragondo you want to hear the JBR history?
10:52:32[IDC]Dragonit started as a diploma thesis of 2 students at the TU Darmstadt
10:53:05[IDC]Dragonthey build a box with a CD rom drive, the SH CPU and the MAS decoder
10:53:37amiconn[IDC]Dragon: How? Iiuc the bit reservoir is backward refence, i.e. a frame that needs some more bits can use unused bits from the previous frame. Such a frame cannot be decoded properly without that previous frame.
10:54:21[IDC]Dragonamiconn: the idea is to insert an extra frame to resolve this
10:54:38[IDC]Dragonthen you have a clean cut point
10:55:10amiconnYou would have to insert a frame containing the reservoir bits *before* the first frame.
10:55:34LinusNwhy is this even necessary?
10:55:50[IDC]Dragonbecause else it sound bad
10:56:15LinusNwhen will it sound bad?
10:56:20[IDC]Dragonclicks from stream errors
10:56:29LinusNdropouts, yes
10:56:33amiconn[IDC]Dragon: The question is: where do you get the reservoir bits from? They are unknown as long as you don't have acces to the previous frame.
10:57:05***Saving seen data "./dancer.seen"
10:57:10[IDC]Dragonamiconn: yes, if you want to skip, you'll have to start paing attention to the bit reservoir
10:57:55amiconnYeah.. I mean, how?
10:58:04amiconnIirc mp3 is huffman coded...
10:58:29[IDC]DragonI forgot the details, but the bit reservoir info is right after the header
10:59:03amiconnPlus, I don't think the audio glitches would decrease significantly with the bit reservoir correction. The stream ends don't match anyway
10:59:19[IDC]Dragonwhy not?
10:59:47[IDC]Dragonthey used it even to accelerate/decelerate playback
10:59:55amiconnYou play a chunk to the end, skip some frames, and start a new chunk. How are these 2 chunks supposed to match?
11:00:19[IDC]Dragonyou make a new "seam"
11:00:24LinusNamiconn: the point is to make sure that the decoded frames are complete
11:00:38LinusNelse the mas inserts silence for the duration of the frame
11:00:51[IDC]DragonArchos used this even to modify playback speed
11:01:12[IDC]Dragonlike, drop/duplicate every n frames
11:01:22amiconnLinusN: Yes, but the most would be that the first frame of the new chunk is silenced. Something I wouldn't really care...
11:01:39LinusNamiconn: for voice playback, you do
11:01:57[IDC]Dragonaway now
11:02:25amiconnNope. I don't mean to throw away the synchronisation to frame boundaries.
11:02:47amiconnOtherwise the mas needs to resync, which takes several frames
11:03:13amiconnI only mean to not care about the bit reservoir
11:03:34LinusNi know
11:04:24amiconnThe current voice ui implementationdoes exactly that.
11:05:26BagderNEWGCC=$(shell expr $(GCCNUM) ">" 303)
11:05:39Bagderthen I can make a ifeq on that
11:05:50Bagderseems to work
11:07:55 Join ripnetuk [0] (
11:08:17Bagdernew sim build patch uploaded
11:08:19[IDC]Dragonamiconn: and that's why we need to insert the silence clip, right?
11:11:13amiconnNo, it isn't. We have to *append* the silence clip, because the mas obviously doesn't play a stream to its very end.
11:11:36amiconnWhen we switch clips (via shutup()), we do not insert it.
11:12:20[IDC]Dragonyes, ok
11:13:05[IDC]Dragonmabe one day I'll make a little test command line app to massage an mp3 stream
11:13:16[IDC]Dragonto test ff/fr
11:13:47 Join R3nTiL_ [0] (~zorroz@
11:13:47[IDC]Dragonwith bit reservoir resolving
11:14:21amiconnThe frame search would benefit from a fast memchr() (and something like memrchr() )
11:14:36amiconnShouldn't be hard with a little SH asm...
11:14:40[IDC]Dragonmemrchr(), haha
11:15:02amiconnFor the backwards search...
11:15:19[IDC]DragonI thought you did memchr already, or was that strlen?
11:15:39amiconnI did strlen, but memchr() would be similar
11:16:01amiconnWe don't use memchr() currently
11:17:24[IDC]Dragonyesterday I've tries rockboy a bit
11:17:52[IDC]Dragoncool, but sadly somehow hopeless
11:18:06[IDC]Dragonon the SH and the 112*64
11:18:37 Quit Cassandra_ (Read error: 110 (Connection timed out))
11:18:49[IDC]Dragonwe'd need the pseudo-grayscale if we want to have chance to recognize anything
11:19:15 Join Cassandra_ [0] (~christi@
11:19:17HClforget it
11:19:23HCland why? cause of the scaling?
11:19:26[IDC]Dragonlike antialiasing compensating for a lack of resolution
11:19:55amiconnNow _that_ would be a slowdown...
11:20:51[IDC]Dragondoes a gameboy have a ROM, OS, or such?
11:20:51 Quit webguest34 ("CGI:IRC (EOF)")
11:20:52amiconnPerhaps we could halve the update frequency to 33 Hz when using only few grayscales
11:21:40[IDC]Dragonif yes, that could be mapped to native SH code
11:21:43 Join cYmen [0] (
11:22:02amiconn[IDC]Dragon: HCl is thinking about a dynarec implementation...
11:22:26[IDC]Dragonabybody remembering the N64 emu with it's high level emulation?
11:22:26 Join Sando [0] (
11:22:35[IDC]Dragonwhat's dynarec?
11:22:43amiconndynamic recompilation
11:22:58[IDC]Dragonsounds good
11:23:00dwihno[IDC]Dragon: ultrahle?
11:23:12dwihnoI think it was the first
11:23:12[IDC]Dragonyes, that's the one
11:23:12ashridahif it can cache the recompiled stuff, that'd be awesome
11:23:47amiconnashridah: Iiuc thats the point of dynarec. Without it, it wouldn't make sense...
11:23:59[IDC]Dragonand we need the wav codec, sigh
11:24:19[IDC]Dragonno progress yet
11:24:29 Quit Quelsaruk ("rebooting")
11:25:11amiconnI already had a look at the pattern update function. That's one of the parts available in asm for i386
11:25:33[IDC]Dragonpattern update?
11:25:41[IDC]Dragonis that the screen update?
11:25:50amiconnThe C implementation is a real cpu sucker; 3 nested loops across a 4096x8x8 byte array...
11:25:54[IDC]Dragonor sprites?
11:26:20amiconnlcd.c: updatepatpix()
11:27:33HClnot ultrahle
11:27:39HClultrahle is an entirely different concept
11:27:44HClthan dynarec
11:27:44ripnetuki thought hle was not dynarec -
11:28:03ripnetukhle == catching api calls to nintendos library and re-implementing them (like wine)
11:28:12HClhle = recognising native library functions used to compile games and mapping them onto native library functions
11:28:48*HCl resumes sleeping, keeps getting nightmares u.u
11:28:51 Join Quelsaruk [0] (~kvirc@
11:29:08ripnetuki think it worked because nintendo had a standard dev library which almost all games linked into
11:29:26amiconn[IDC]Dragon: updatepatpix() should be easily made flying with SH1 asm...
11:29:45[IDC]Dragonis there a gameboy builtin library?
11:36:59[IDC]Dragonwhat about an offline dynarec, convering the gamebay roms to something native?
11:37:28*[IDC]Dragon is aware of his wild ideas
11:37:56[IDC]Dragonand wild spelling ;)
11:38:23dwihnoThat's a great idea!
11:38:43Quelsaruklike rvf? a rgr?
11:39:43dwihnoIf it wasn't you who said it, I would say that person was bonkers :)
11:40:58amiconn[IDC]Dragon: Dynarec (or offline recompilation) will only speed up cpu emulation. Other parts need more speed too, as e.g. the mentioned updatepatpix()
11:41:27[IDC]DragonI know, but the CPU emu doesn't come for free, too
11:41:49[IDC]DragonI've seen that switch-case from hell
11:42:00 Join |Quelsar| [0] (~kvirc@
11:42:07 Quit Quelsaruk (Read error: 104 (Connection reset by peer))
11:44:02 Quit R3nTiL_ ()
11:44:12 Nick |Quelsar| is now known as quelsaruk (~kvirc@
11:48:47dwihnoa switch for every instruction?
11:48:51dwihno(a case)
11:50:05ashridahdon't compilers attempt to reduce that to a simple indexed lookup table these days?
11:57:30[IDC]Dragonthey try to make a jump table, yes
11:57:52[IDC]Dragonif the values are not too sparse
11:58:15LinusNeasy on simple enums, but not when the case values are very large and very different
11:58:26LinusNlike for opcides
11:58:39[IDC]Dragonthe opcode is 8 bit
11:58:47[IDC]Dragonso it could work out
12:01:01[IDC]Dragonit could even multiply the opcode with the worst-case op handler size, and do a staight jump
12:01:14[IDC]Dragonsaving the table lookup
12:04:07LinusNmpa2wav.rock runs at 40% realtime in 140MHz :-(
12:04:28linuxstb:-( I was expecting something like that.
12:04:43LinusNand crashes after a while
12:04:48linuxstbWhat about FLAC?
12:05:01LinusNi have no flac files to try
12:05:23linuxstbmadplay -o wav:file.wav file.mp3 ; flac file.wav
12:05:53LinusNno madplay or flac here
12:07:21dwihnoLinusN: is disk writing CPU intensive?
12:07:29LinusNnot really
12:07:39dwihnoThen this is bad news.
12:08:02LinusNyes it is, it means that we have to work a little on the optimizations
12:08:05dwihnowasn't there a guy who did a 68k asm port?
12:08:39LinusNthere are quite a few optimizations to be done
12:09:06LinusNlike putting the major number crunching code in internal ram
12:09:15LinusNusing the EMAC
12:09:55LinusNstill, i'd like it to be like 200% real time, at least
12:10:12dwihnoyeah :(
12:10:29linuxstbLinusN: If you're interested, I've uploaded a small (3.5MB) test flac file here:">
12:11:08dwihnodo you know the stock firmware playback frequency?
12:13:21LinusNLinusN: hmmm, flac2wav just exits
12:13:47linuxstbLinusN: Does your firmware have the increased stack size I added to CVS?
12:15:54LinusNi have the latest cvs
12:16:09LinusNmaybe my inline commit yesterday broke it...
12:16:49linuxstbNo, I tried flac after your change (to see if the speed changed - it did't).
12:17:10*LinusN did make clean;make
12:21:20 Join methangas [0] (
12:27:17 Join Aison [0] (
12:27:36LinusNsomething is really odd with the flac decoder
12:28:53linuxstbWhat do you mean?
12:29:34LinusNthe speed calculations are wrong
12:29:42linuxstbThat's possible.
12:29:54linuxstbBut is it working?
12:30:23LinusNyes, it works when i play the file, but not with "open with"
12:30:43LinusN"samples decoded" stops at 9216
12:30:57LinusN"frames decoded" keeps running
12:31:59linuxstbIs that when you do "open with" ?
12:32:21 Join webguest01 [0] (
12:32:31LinusNit just exits when i try open with
12:32:47linuxstbYes, I've just tried open with, and it exits immediately.
12:33:10linuxstbHowever, just playing the file seems to work fine (correct speed displayed)
12:33:33LinusNwhat's the speed for you?
12:33:42linuxstbAbout 8%
12:34:03LinusN27% in 40MHz
12:34:53linuxstbNo, the speed seems to be dropping the more it decodes - now about 7.13%
12:35:24linuxstbnow a little higher...
12:35:48LinusNreally weird
12:35:49 Quit xen` (Read error: 60 (Operation timed out))
12:36:40linuxstbIt's now stabilised around 7.36%
12:38:00 Join Sucka [0] (
12:41:44webguest01I'm trying to build the bootloader, and have a error in "backlight.c". -> unrecognized architecture specification '5249'. what's wrong?
12:43:19LinusNyou have the wrong binutils
12:43:38webguest01ok, thanks, I'll check my installation
12:43:52LinusNdid you build it yourself?
12:47:37LinusNhmm, flac2wav doesn't behave in full speed
12:47:47LinusNi wonder if my clock settings are too aggressive...
12:50:24ripnetukhave you measured the speed the coldfire runs at with the original firmware? maybe using the bdm?
12:50:58ripnetukis is not possible to get the pll settings from that?
12:51:15LinusNwhy would i want that?
12:51:29ripnetuki thought you said it was tricky to get them right
12:51:43ripnetuk(maybe tricky == fun)
12:52:12LinusNpll is easy
12:52:21 Join jyp [0] (
12:52:36LinusNadjusting wait states is the hard part
12:53:07ripnetukis that basically a measure of how much 'dummy' time is needed for the rest of the circuit to catch up with the faster processor?
12:53:29LinusNsort of
12:57:03linuxstbI've fixed the flac2wav "open with" problem - I've added a call to rb->button_clear_queue() before the main decoding loop starts.
12:57:06***Saving seen data "./dancer.seen"
12:58:04Bagderand I fixed the gcc option when building flac with older gccs
12:59:09BagderI'm considering committing this build stuff without having it confirmed from any cygwin user
12:59:15Bagderand work out the flaws post-commit
13:00:02amiconnBagder: I really wanted to test yday...
13:00:12linuxstbIf it works for the automated builds, then why not?
13:01:06amiconnlinuxstb: The automated build all run on linux.
13:01:53Bagderand I haven't tested *all* those combos
13:02:59 Join DeadMan [0] (
13:05:33linuxstbLinusN: If you want to try a52towav, I've copied a short (1.3MB) AC-3 test file here:">
13:11:41ashridahi just accidentally nuked my firmware directory thinking it was my firmware's build directory :)
13:12:40 Join Patr3ck_ [0] (
13:21:46 Quit ripnetuk ("Leaving")
13:24:29 Join pappou [0] (
13:29:01 Quit Patr3ck (Read error: 110 (Connection timed out))
13:29:34 Part pappou
13:29:54ashridahshouldn't make zip depend on having an up to date rockbox.iriver ?
13:30:10ashridah(which, in turn, depends on having up to date .o/.a files or whatever
13:30:37Bagderit would need to depend on all files in the zip file
13:30:57ashridahwell, make expansions can handle that.
13:31:31Bagderor rather, yes if you write additional rules
13:31:57ashridahwell, at least, if make zip depended on the default make rule, then the point would be moot
13:32:00Bagderpersonally, I don't find that important
13:32:11ashridahwell, no. it's only one extra command
13:32:23ashridahso yeah, its not overly important
13:32:55ashridahthere we go
13:33:00ashridahadd 'all' after zip:
13:33:04ashridahand it builds all before zip
13:33:33Bagderthat's a fair addition, yes
13:34:11ashridahthen, if i touch snow.c
13:34:17ashridahand run make zip
13:34:27ashridahit rebuilds snow.c. if i touch something in the lib, it rebuilds the lib, then relinks everything against it
13:34:39Bagderyes, but if you update a font, it doesn't work
13:35:05ashridahthat's not impossible to fix tho
13:35:15Bagdernothing is impossible ;)
13:35:39ashridahif you add the fonts to an extra export using a make wildcard, then have make zip depend on them too.
13:36:15ashridahhang on. aren't the fonts solely the domain of
13:36:40ashridahyeah. zip just needs to depend on those files. then make will know if they get modified
13:36:55ashridah(although it tends to run commands it doesn't understand anyway)
13:37:32Bagderyes, the zip file should depend on all the bdf files
13:37:38BagderI guess
13:38:46ashridahi'm not so sure it'll matter
13:38:56ashridahmake'll run the command to rebuild the zipfile no matter what anyway
13:39:06ashridahso it should pick them up any time make zip gets run
13:39:39ashridah(since make doesn't know how to tell if is the file that needs to be up to date for it to not do anything)
13:41:24 Join DrRick [0] (
13:44:58Bagderdarn, broke my build... no commit yet
13:46:37 Quit lostlogic (Remote closed the connection)
13:47:03 Join lostlogic [0] (
13:50:06BagderZagor: you should fix the syntax colouring when browsing cvs files
13:52:28BagderLinusN: is the -g option wanted for iRiver builds?
13:52:35BagderI noticed it gets set by configure
13:52:51Bagderfor gcc
13:54:17LinusNBagder: it really doesn't matter much, but i'd like it that way for the time being
13:54:26LinusNmakes it easier for me
13:55:10LinusNlooks like i have to measure the ata timing with my logic analyzer
14:04:28Bagder/usr/local/m68k/lib/gcc/m68k-elf/3.4.3/../../../../m68k-elf/bin/ld: cannot find crt0.o
14:04:33Bagderis certainly annoying
14:05:49 Join CoCoLUS [0] (
14:07:08LinusNafter setting a lot more conservative ATA timing settings, the flac decoder finally works in 140MHz
14:07:24*Bagder scratches his head
14:08:12Suckareal time?
14:08:14 Quit jyp ("poof!")
14:08:23 Quit einhirn (Read error: 104 (Connection reset by peer))
14:09:09amiconnBagder: I wonder about the odd path specification to 'lcd'. Why does it descend first, the trace back up? (../../../../)
14:09:19amiconnErm, I mean 'ld'
14:09:30 Quit lostlogic ("Going to the moon")
14:09:48Bagderwell, it does that
14:09:53linuxstbLinusN:: at what speed?
14:09:58Bagderit does the same on sh etc
14:10:05LinusN93% something
14:10:51DeadManneeds tweaking to get realtime then
14:11:29linuxstbI think that looking at the int64 usage of FLAC will get us an easy improvement. I'll try and look into that. I'll leave libmad to others.
14:13:31DeadManlibmad is what I am waiting on anyhow
14:13:40DeadManMP3 is my most used format
14:14:03LinusNhmm, ata access is still shaky in 140MHz
14:14:24DeadMancrashing out?
14:15:12LinusNlooks like read errors
14:15:45ashridahjust got a server error out of google!
14:15:48ashridahmy world's come to an end
14:16:27amiconnLinusN: Does the iRiver have a hd activity led?
14:16:34ashridahamiconn: yeah
14:17:14LinusNmultisector reads fail
14:17:44amiconnI wonder whether there'll be rld on iRiver then...
14:18:09ashridahrld... red light death?
14:18:49amiconnred lead death, an (in)famous problem on archos with certain harddsik brands
14:19:00amiconn..namely the Hitach DK23DA.. series
14:21:39Bagderdiffing two diffs is tricky stuff :-)
14:21:58LinusNthe iriver hardware is neat, but they made a huge mistake when they didn't connect the IORDY signal
14:26:53Bagderblah, had to revert back to an older patch to get it working again
14:27:02BagderI'll commit this and continue from here
14:27:32Bagderor does anyone object?
14:27:44Bagderit may be some shaky builds
14:37:33 Join Lynx0 [0] (HydraIRC@
14:37:46ashridahLinusN: odd. can you tell if it was due to space constraints or just laziness?
14:38:28LinusNashridah: what?
14:38:43Patr3ck_regarding optimizing the codecs, is it possible to profile the libraries to find the places were optimizing would have greatest effect?
14:38:52LinusNashridah: i have no idea
14:39:13LinusNPatr3ck_: sure, using timers
14:41:15Patr3ck_timers would have to be added to the codecs library code?
14:41:28 Quit Lynx_ (Nick collision from services.)
14:41:43 Nick Lynx0 is now known as Lynx_ (HydraIRC@
14:41:46LinusNyeah, instrument the code with checkpoints, storing timestamps
14:42:14ashridahPatr3ck_: sadly, gprof doesn't exist for the target platform :)
14:42:25Patr3ck_Would profiling on the linux or win32 plattform using existing tools help?
14:42:35LinusNnot really
14:42:47ashridahPatr3ck_: i doubt it, since the code generated will be wildly different
14:42:56Patr3ck_I see, too bad :-(
14:43:15 Join ripnetuk [0] (
14:43:38ripnetukthere is a law that 99% of the time is spent in 1% of the code and its never the 1% you expected :)
14:43:50Patr3ck_exactly :-)
14:46:03Bagderok, stand by for impact, commit coming up
14:46:41Patr3ck_If timers would be added, where should the results be shown? A log file?
14:47:01ripnetuki would say build it in memory - we dont want to affect the results by wroiting to disk
14:47:35Patr3ck_After processing has finished, write it to a log file?
14:47:36ripnetukimho you need to build a tree of timings, like task a takes 10 ticks, and task a consists of task a1 and task a2 which take 1 and 9 ticks (etc) until you find the slow bit
14:47:48ripnetukthats how I do it on Windows
14:48:14Patr3ck_top down aproach...
14:48:30ripnetuki then wrote a util to show it graphically - makes it real easy to see where the time is going
14:49:17ripnetukand easier to demonstrate to boss :)
14:49:43Patr3ck_He gives you time to optimize? Lucky you ;-)
14:49:57ripnetukonly when the customers are jumping up and down
14:50:10 Join einhirn [0] (
14:50:20ripnetukwhat is Badger committing?
14:50:36ripnetuksorry, Bagder
14:50:47linuxstbNot sure how useful this information is, but if you encode a FLAC file with the "−−l 0" option (disabling the "linear predictive coding"), then you get a slightly larger filesize, but a quick test showed that 1000000 samples encoded with -l 0 took 237 seconds, compared with 286 seconds normally (almost a 20% increase in speed)
14:50:47 Join lolo-laptop [0] (~lostlogic@
14:52:11Bagderripnetuk: build system fix
14:52:33Bagderwell, fixES actually
14:53:29Bagdernow the sims are built more similar to the targets
14:53:33ashridahlinuxstb: that sounds about right. given that FLAC can't vary the content of the compressed audio, it stands to reason that it'd result in size VS time optimisation options
14:53:58ashridahit's along the lines of multi-pass video encoding
14:54:12ripnetukcool... this whole c build stuff seems very primitive to me (coming from compilers that have projects that handle all that)
14:54:31ripnetukaka. I dont understand build files very well :)
14:54:41Bagderthose things never work
14:54:44Bagderfor things like this
14:55:26ashridahripnetuk: you can get IDE's that'll build configure/makefiles for you under unixalikes. but that more or less commits you to using their version of the horror that is autoconf/automake :)
14:56:18ripnetukim sure its my lack of understanding thats putting meoff
14:57:09***Saving seen data "./dancer.seen"
14:57:12Bagderif you just think for a while how you'd do the build, for linux and cygwin and multiple targets
14:57:17ashridahin my case it's entirely likely that it'd be better than MY versions of the config of the horror that is autoconf/automake
14:58:11ashridahthats right
15:00:38Bagderactually, autoconf/automake wouldn't help us very much
15:08:13 Quit webguest01 ("CGI:IRC")
15:13:23Bagderthe build takes a long time now
15:14:08Bagder14 minutes now
15:17:28linuxstbBagder: I think I've got your first bug report. there is a CODECLIBS variable defined in apps/plugins/Makefile, but you are not using it for the X11 sim build. So the ???2wav plugins aren't being linked against the codec libs
15:17:54LinusNBagder: red player sim build
15:18:03Bagderyes, taking that one first
15:20:37Bagderquite a few warnings too, but they're not as harmful
15:22:27Bagderlinuxstb: you fix that?
15:23:30linuxstbBagder: I'm still looking at it. The obvioius fix didn't seem to work
15:24:30Bagderremember to re-configure
15:24:46Bagder(not directed to anyone specific but to everyone)
15:25:55amiconnBagder: Your new make system changes a lot. I hope I'll get my rockboy makefile working with that :-/
15:26:33Bagderwell, I think it is an improvement
15:26:51Bagderbut of course it causes troubles to those who have local changes
15:27:09amiconnI have, in apps/plugins/Makefile :-(
15:29:10BagderI also have a pending fix for putting object files in a dir tree as in the source dirs
15:29:48amiconnHow did you do that?
15:29:59Bagdermagic ;-) expects OBDIR, so I used the following construct:
15:30:18BagderI modified too
15:30:41amiconn(example: rockboy)
15:30:42amiconnoverride OBJDIR := $(OBJDIR)/rockboy
15:30:43amiconnPARENTDIR = $(dir $(OBJDIR))
15:31:20amiconnThen I can use PARENTDIR to access stuff above. This is slightly ugly, because PARENTDIR keeps the trailing slash
15:31:30BagderI think I'll use dir=$(strip, $(ROOTDIR),,$@)
15:31:40linuxstbBagder: I can't get my *2wav.rock files to compiler properly on the X11 sim. Adding $(CODECLIBS) to the X11 part of apps/plugins/Makefile doesn't seem to make a difference. The .rockx still don't appear to contain the library code. I then get an "invalid entry point" when trying to run them. All the other plugins work.
15:32:03Bagderok, I'll check too
15:32:34amiconnSome of the warnings look like they might cause problems
15:37:07Bagderamiconn: any particular you think of?
15:37:57 Join zioben [0] (
15:38:12Bagdersince the sims now build with the same -I setup as the targets, many standard include files are "shadowed" by the Rockbox versions
15:38:52amiconncommon/timefuncs.c:81: warning: return makes pointer from integer without a cast
15:39:19Bagderthat's just due to lack of prototype
15:40:27BagderI'll fix
15:41:58 Join jyp [0] (
15:42:42amiconnBagder: Did you include the cygwin LITTLE_ENDIAN workaround in a more central place?
15:42:56 Join R3nTiL [0] (~zorroz@
15:43:02 Part LinusN
15:45:06amiconnBagder: Doing that might be quite useful. Rockboy definitely needs endian info.
15:45:48Bagderit should probably be put in some header file like system.h or so
15:45:50Bagderor cpu.h
15:46:27amiconnHmm. The fix only applies to the simulators. I think a suitable place would be config.h
15:47:03Bagdermy thinking was that including "cpu.h" should get you info about the cpu
15:47:10Bagderincluding endianess
15:47:55*jyp seconds
15:47:56amiconnTheoretically yes, but so far cpu.h only includes info about target cpus
15:48:55Bagderwell, if you want to write code that does it right, for both sim and targets, wouldn't it still make sense?
15:49:18Bagderthen again, for cpu.h to do right, you need to include config.h as well
15:49:24amiconnChanging that will certainly break a number of places. Plus, currently we define id numbers per cpu.
15:49:50Bagderwhy would it break anything? you'd only add a definition, right?
15:50:03amiconnHow could that be done for the simulators? We cannot know in advance, the sims may run on virtually any cpu
15:50:36Bagderso let the configure figure it out
15:50:53ziobenHi! I am newbie to this IRC. A friend of mine tells me that HCL (if i remember right) realized a Gameboy Emulator. It is right?
15:51:10Bagderzioben: he works on that, yes
15:51:58ziobenRight!But i heard it is slow
15:52:13Bagderit is not complete
15:52:16Bagdernor is Rockbox
15:54:13amiconnBagder: Even if configure manages to find the cpu info, this wouldn't help much. As we don't know in advance whatever cpu we will run on, how could we set conditionals depending on it?
15:54:21ziobenIf it can be useful at there is a assembly source code of vary emulators (master system, gameboy, MSX) realized for Amiga which uses the same processor family (Rockbox uses coldfire isn't it?)...
15:54:36Bagderamiconn: then I'm lost. What is the problem?
15:54:52ashridahzioben: it might be useful, what're the licensing terms? do you know?
15:55:13linuxstbRegarding endianness, on Linux (and maybe elsewhere) there's /usr/include/endian.h which is part of the GNU C Library.
15:55:59Zagorlinuxstb: cygwin is the problem. it doesn't define it.
15:56:10linuxstbBut cygwin only runs on Intel.
15:56:45ziobenOriginally they are shareware, but two years go became freeware and source code should be free... on the web page there is the email of the author
15:57:47Zagorzioben: the problem is these are massive amounts of amiga-specific assembly code. not very fun porting to a new system.
15:59:09jypBagder, amiconn; you could go the autoconf way
15:59:31amiconnlinuxstb: I just checked, cygwin also provides that file (only it is /usr/include/machine/endian.h), but afaics LITTLE_ENDIAN and BIG_ENDIAN as defined there are different from the usage I know.
15:59:31Bagderyou mean for endian?
16:00:22HClunfortunately, that sourcecode is horrid - one big assembly file thats barely readable with no comments
16:00:29amiconnIt always defines both. BIG_ENDIAN = 4321 and LITTLE_ENDIAN = 1234. Then it sets BYTE_ORDER according to the machine
16:00:31linuxstbWhy don't we just have a simple C program that is compiled and run as part of configure? i.e. x=0x12345678 and see what the memory contains?
16:00:37jypyup, I mean running a little testing program at configure time, that sets a conditional
16:03:38Zagorlinuxstb: we can't run the code. it's cross-compiled...
16:04:04HClannoying that the top hits for "z80 dynarec" is rockbox irc log files ;/
16:04:13jyp... for the sim targets
16:04:34ziobenOh! i thinked it was a good idea...
16:04:38linuxstbZagor: I thought the only problem was the sims - we know the endianness of the targets
16:05:48jypQuestion, is there standalone program to test usb somewhere?
16:06:03ripnetukcant it just be a new configure option? like we have debug, target, sim, couldt we just have sim (LE) and sim (BE)?
16:06:38amiconnlinuxstb: Yes. The problem first occured with Zagor's id3 browser, which also needs to know endianess. Zagor uses a simple check to define a byte swap macro depending on LITTLE_ENDIAN being defined
16:06:44Zagorlinuxstb: right, but then we're back to custom makefiles for sims again
16:07:26amiconnUnfortunately cygwin doesn't define it, so id3 browsing didn't work on all cygwin built sims (both x11 and win32)
16:07:37linuxstbWe can just add an endian variable to configure - for the targets it's hard-coded, and for the sims, we run a little C program which is called from tools/configure
16:08:00amiconnI added a simple workaround for that to dbtree.c. Imho the easiest solution would be to add that to config.h
16:08:49amiconn#if !defined(LITTLE_ENDIAN) && !defined(BIG_ENDIAN) && defined(_X86_)
16:08:49amiconn#define LITTLE_ENDIAN
16:12:10 Join preglow [0] (
16:12:24preglowso, i see there are bad news afoot regarding the codecs and cpu usage :/
16:13:16linuxstbpreglow: Not unsurprising, given the performance at 11MHz.
16:13:44preglowlinuxstb: no, not surprising at all
16:13:58preglowit's more or less what i thought it'd be
16:14:17HCldoesnt not unsurprising actually mean surprising?
16:14:58preglow'not unsurprising' means that it is surprising, yes :)
16:15:14preglowbut i got his meaning, heh
16:15:51jypsemantics at work
16:15:52*linuxstb goes to study grammar...
16:16:28linuxstbpreglow: any progress with your emac activities?
16:16:52ripnetukim guessing that libmad is already quite well optimized, and we are looking for things that the coldfire does (badly|slowly) to replace with more efficient code?
16:17:15preglowlinuxstb: well, yes, i've got it working well
16:17:28preglowi've used it to make a linearly interpolated sine routine and an iir filter
16:17:31preglowso i think i've got it
16:18:12linuxstbMy thought about libmad is that it probably trades speed for accuracy. So if we compromised the accuracy (i.e. not maintaining the full 24-bit precision), then that may bring big speed improvements.
16:19:10linuxstbBut I'm assuming lots of people will be interested in libmad, so I'm going to try and concentrate on FLAC.
16:19:30ripnetukFLAC is 90 something percent yes?
16:19:53preglowlinuxstb: i'll try to have a look at libmad
16:20:13jyppreglow: I'm interested in your code
16:20:29preglowjyp: no problem, don't think you'll benefit much from it
16:20:32preglowgimme a sec
16:21:31 Quit R3nTiL ()
16:21:36jypMy goal is to get a better understanding of the emac...
16:21:41linuxstbpreglow: Do you know any good resources for info about the emac? Or are they already in the Wiki?
16:22:44ashridahlinuxstb: i think the programmers guide has a chapter on the emac doesn't it?
16:22:52ziobeni thank everybody for the attention. Bye!
16:23:01 Quit zioben ("CGI:IRC")
16:23:39preglowlinuxstb: all i've been able to find is the motorola manuals
16:24:09preglowlinuxstb: in particular the coldfire family programmer's reference manual
16:24:57Suckahehe, that gave me a rather entertaining mental image of "the family programmer"
16:25:23jyppreglow: thanks
16:25:28ashridahsucka: yeah. it's a little ambiguous.
16:25:47ashridahsucka: obviously, it means 'the [coldfire] family programmer reference'
16:26:40preglowjyp: all that code does is write a sawtooth filtered by a very resonant iir filter
16:26:47preglowjyp: but it's done using the emac :)
16:26:50Bagdercheck the daily build table now
16:27:18Bagderits not true, but it'll look like that from now on
16:27:31jyppreglow: I don't know what a iir filter is
16:28:40jypBagder: cool ;)
16:29:10BagderI'll try to add an estimated time of completion as well
16:29:14jyp"Build to in ..." ;)
16:29:19jypgreat :)
16:29:31amiconnBagder: Looks a bit ugly, imho
16:30:05Bagderany suggestions?
16:30:14amiconn"How many warnings do you get today?"
16:30:18DeadManOh this is wonderful. A small batch of Cross & Blackwell worcester sauce have cancer causing dye in them. I've been using that sauce for ages.
16:30:45jypmake "Build in progress" scroll as in markee :P
16:31:02Lynx_doesn't worcester sauce generally cause cancer? ;)
16:31:16HCldoesn't breathing air cause cancer ? :p
16:31:47bobTHCsmoke weed cause cancer ? ;)
16:32:01Lynx_HCl: only in places where large amounts of worcester sauce are used or consumed ;)
16:32:57Lynx_It's the worcester aerosols you have to worry about ;)
16:33:34ashridahpreglow: bah. where's sinetab.h? :)
16:33:46preglowashridah: hhaha, gimme a sec
16:33:52preglowashridah: that part isn't called anyway
16:34:07preglowashridah: it's there now
16:37:53ashridahpreglow: hmm. just exited immediately here
16:38:05preglowashridah: look in your root
16:38:09preglowthere should be a test.raw there
16:38:53ashridahaah, right
16:39:33preglowit's 32 bit, big endian, 44100hz samplerate and mono
16:39:35preglowif you want to load it
16:39:47preglowit's just a testing tool
16:40:44ashridahassuming i can even remember what i've got that'll play headerless files.
16:40:53preglowashridah: i use sound forge
16:40:54HClpasted by accident
16:41:22 Join XShocK [0] (
16:42:00ashridahso what's in cvs currently has 140MHz enabled?
16:42:05ashridahbecause it seemed a lot quicker
16:42:28preglowdon't think so
16:43:03preglowno commits from linus
16:43:08DeadManphoned the people who make the sauce and checked the expiry date against the batches and it's fine. but apparently other foodstuffs may also contain this illegal dye. how nice.
16:43:14HCli say, don't be so paranoid and just live.
16:43:19HClwe're all gonna die.
16:43:23HClits just a matter of when.
16:43:24DeadManheh. damned news
16:43:40 Quit XShocK (Client Quit)
16:44:02preglowDeadMan: you can rest assured that for every thing you eat you know there's dangerous shit in, there are twenty more you don't know of
16:44:04ashridahwell. i'm hitting the sack.
16:44:05 Quit ashridah ("sleep")
16:44:15ripnetuk"life is a sexually transmitted terminal disease"
16:44:23preglowripnetuk: ahahahahah
16:44:37*DeadMan lifes is full of risks
16:45:27preglowi've just got bought myself a couple of tasty beers for tonight, and i know they're not good for my health
16:45:33preglowhell, i even smoke occasionally :///
16:45:41DeadManSome dude on TV the other day pee'd on an electrified fence as a stunt. What an idiot.
16:46:00preglowi've seen that as well
16:46:10DeadManCompared it to being kicked in the nads with needled boots.
16:46:22preglowi've peed on an electrified fence myself
16:46:33DeadManpreglow for real?
16:46:34preglowi was very young, though
16:46:38preglowDeadMan: yes
16:46:43DeadManand look how you turned out :)
16:46:48preglowi used to live right by some horses
16:47:13DeadManwhat were you doing with your wizzer out around horses? nevermind. forget I asked. ;)
16:47:21ripnetukpreglow - is it true that it really burns your 'old man'?
16:47:26DeadManget back on-topic
16:47:41preglowripnetuk: nah, just hurts
16:47:48preglowripnetuk: can't remeber that well, thoguh
16:47:52HClnah, they did it on mythbusters the other day.
16:47:57HClhe just got shocked
16:48:56preglowwell, mine is in perfect condition, i don't think i permanently harmed it
16:49:16HCltoo much information.
16:49:40preglowglad to be of assistance
16:49:50preglowi even touched the very same electrical fence with an iron rod once
16:49:58preglowbut hey, i've never claimed i'm very smart :)
16:50:09preglowas a matter of fact, i've repeatedly stated the opposite
16:50:18DeadManstick your tongue on it
16:50:45preglowDeadMan: no electrical fences nearby anymore, hehe
16:53:53rasherProbably for the better.
16:54:59HCl :P
16:55:30jypWhoops my neighbor got a heart attack
16:55:42HCldid he die? :(
16:55:48HClor she
16:57:10***Saving seen data "./dancer.seen"
16:58:08jypMm fortunately it was the hospital bringing him back, not taking him
17:02:57Bagdernot that many warnings left now
17:03:14HCl :)
17:04:55Bagderbuild complete time estimation should show up next build, I think
17:05:28bobTHCless than 14 min i hope
17:05:57 Join mecraw [0] (~mecraw@
17:06:18Bagderthere haven't been any commits yet to trigger another build
17:07:59Bagdertime to go
17:08:50 Nick quelsaruk is now known as quel|out (~kvirc@
17:09:57preglowjyp: <- what dsptest.c sounds like, left channel is original signal, right is filtered
17:10:34preglowjyp: it's the process that's used for making equalizers
17:10:37 Join G [0] (
17:10:48 Nick G is now known as thegeek (
17:10:51thegeekjust reading the log
17:10:58thegeekhad to comment
17:11:14thegeekI've peed on an electrified fence too;)
17:11:20preglowhaven't we all, heh
17:11:31ripnetuki feel left out having never peed on a electric fence :)
17:11:37preglowripnetuk: not too late to remedy it
17:11:46*ripnetuk shudders
17:12:06DeadManMy neighbour died of a heart attacklast week
17:12:56bobTHCabad luck
17:13:30*DeadMan wonders how easy it would be to do ac3 passthru on optical out on the iRiver
17:14:15preglowi don't know
17:14:37rasherWasn't there something that made this impossible?
17:15:43DeadManmaybe the player can't pass raw
17:15:53DeadManall goes via the DAC
17:16:04preglowthe chip it self is capable of it
17:16:10preglowdepends on how it's hooked up
17:16:23preglowi don't see the point of having something already digital go through the codec
17:17:01DeadManeasier to make a straight path for all codecs I guess
17:17:09DeadManrather than re-route for raw
17:17:19DeadManwell anyhow I don't know Linus might know
17:19:19 Join muesli_ [0] (
17:21:04 Quit Cassandra_ (Read error: 110 (Connection timed out))
17:21:23 Join Cassandra_ [0] (~christi@
17:22:10*DeadMan drinks the tea of captains. Well bald captains of starships that is ;)
17:23:11preglowtea, earl grey, hot
17:23:40preglowgray, i mean
17:23:50*DeadMan pulls his tunic down
17:24:02DeadManMake it so
17:24:34preglowthink i'll brew myself a cuppa as well
17:25:10DeadManTea Hee
17:25:24DeadManyeah got it ;)
17:25:42DeadManDo you know the show Little Britain?
17:26:02DeadManwon't be relevant then
17:26:26 Quit thegeek (Read error: 113 (No route to host))
17:28:49 Join G [0] (
17:36:32 Join XShocK [0] (
17:38:11 Quit DrRick ()
17:38:36 Join AC [0] (
17:38:50ACis the iriver little endian?
17:40:21 Quit Patr3ck_ ("User pushed the X - because it's Xtra, baby")
17:40:42linuxstbAC: No.
17:41:51linuxstbIt's Motorola 68000 based.
17:41:56preglowmost things are big endian, i think
17:42:01preglowapart from intel and vax
17:42:09preglowsome correct me if they know of more
17:42:32ACLD /home/austriancoder/rockbox/build/wv2wav.elf/home/austriancoder/rockbox/build/libwavpack.a(bits.o): In function `little_endian_to_native':/home/austriancoder/rockbox/apps/codecs/libwavpack/bits.c:100: undefined reference to `_ctype_'/home/austriancoder/rockbox/build/libwavpack.a(bits.o): In function `native_to_little_endian':/home/austriancoder/rockbox/apps/codecs/libwavpack/bits.c:132: undefined reference to `_ctype_'/home/austriancoder/rockbox/build/l
17:43:21ACi dont know what i am doing wrong
17:44:29linuxstbAC: I'm happy to have a look at it if you want me to.
17:45:02ACi think it is the makefile
17:45:24ACi will upload it.. mom
17:45:50 Part fubar
17:47:07linuxstbAC: I think I know what the problem is.
17:48:03linuxstb_ctype_ is a variable defined in firmware/common/ctype.c, but the firmware library isn't linked against the plugins.
17:49:30linuxstbA quick fix would be to simply copy the _ctype_ variable from common/ctype.c into wv2wav.c
17:51:15*DeadMan listens to Moby's new album
17:52:00AClinuxstb: will try it
17:52:06AChere is my makefile:
17:53:44linuxstbAC: The "isdigit" function is a macro that makes use of _ctype_ - that's where the dependency is. I don't think you can fix it with the Makefile.
17:54:45AChow should i fix it?
17:55:03 Quit bobTHC ("( :: NoNameScript 3.81 :: )")
17:56:12preglowhow many bands do a portable mp3 player equalizer usually have?
17:56:26preglowthose that don't just have high cut and low cut, that is
17:56:36linuxstbAC: For now, just copy _ctype_ from firmware/common/ctype.c into wv2wav.c We can try and think of a better fix later.
17:57:28linuxstbAC: I think that native_to_little_endian function is only used by the metadata parser anyway, so we can probably strip it out (or rewrite it).
17:57:35DeadManusualy 5 or 5 bands
17:57:41DeadManor 6 rather
17:58:03 Quit ripnetuk ("Leaving")
17:58:05DeadManI'd like a parametric eq myself :)
17:58:58DeadManactually a basic player has low mid and top or just low and top
17:59:00preglowyes, i'll be trying to make one
17:59:09preglowfive bands'll be nice
17:59:29preglowthought i'd just get the boring math out of the way now
17:59:33AClinuxstb: why to wv2wav? the symbol is not found in the codec
17:59:45DeadManI usually only push the top right up. I like my music to cut through
18:00:08DeadManand I like to hear the hi-hats and understand the vocals
18:00:35DeadManI dislike too much midrange
18:00:55linuxstbAC: It's used by the codec, but not found in the plugin. I think that libwavpack.a is being generated OK, the error is only when it is being linked to wv2wav
18:01:10DeadManor bass end that is a dull thud or rumble rather than a solid kick in the chest ;)
18:01:28linuxstbAC: we also don't want to change the codec .c files if we can avoid it.
18:02:22ACin wv2wav i got errors
18:02:43ACCC wv2wav.cwv2wav.c:32: error: `_C' undeclared here (not in a function)wv2wav.c:32: error: initializer element is not constant
18:02:51ACso we must fix it in the codec, i think
18:03:01ACalso symbol abs is unkown in the codec
18:04:17ACctype stuff fixed
18:05:14ACadded const char _ctype_[257]={ to bits.c in the codec
18:05:51preglowDeadMan: i never use the equalizer, but i'd like making one
18:07:50AClinuxstb: compiles now fine
18:08:22linuxstbAC: Good news. Is your wv2wav program working?
18:09:22ACi must add the decoding loop and then i will try it
18:13:33 Join muesli- [0] (
18:16:21 Quit muesli- (Client Quit)
18:16:40 Join muesli- [0] (
18:17:43 Quit muesli_ (Read error: 113 (No route to host))
18:18:18DeadManpreglow the only thing I turn up is the treble boost and nothing else
18:18:24lolo-laptophmm, for gapless playback, is it not possible to do processing on the PCM audio buffer before sending it to the DAC at the track boundaries?
18:20:03preglowlolo-laptop: what processing?
18:20:28linuxstblolo-laptop: I think that part of the gapless playback belongs iin the codecs - i.e. the codec code will be responsible for stripping off any padding samples from the final frame.
18:20:40linuxstbSo they will never be copied into the PCM buffer
18:21:10lolo-laptoplinuxstb: that would work too −− my point was that the gapless howto on the wiki implies that it can _only_ be done at encode time... but if the PCM data is processed by either the PCM buffer or the codec...
18:21:53linuxstbThat howto only really applies to the Archos.
18:22:06preglowthat does not apply when we can code our own codecs
18:22:11lolo-laptopbecause there isn't a codec in the archos.
18:22:23preglowwe might do some stripping code for mp3s that don't support accurate track length
18:22:52linuxstbIt is still a good idea to follow that advice and make gapless MP3s in the first place. It's just that with software decoding, we have the opportunity to repair broken encodings.
18:23:56lolo-laptoplinuxstb: well vorbis is by it's nature not as gap inducing as mp3 right?
18:24:05preglowlolo-laptop: vorbis supports no gaps at all
18:24:15preglowlolo-laptop: vorbis store the exact tract length
18:24:18linuxstbI don't know vorbis at all, but I assume it has a "track length" field in the header.
18:24:24lolo-laptoppreglow: cool.
18:24:27preglowtrack length, not tract...
18:24:29DeadManbut the player needs to be able to playback with 0 gaps :)
18:24:35preglowno problem
18:24:46DeadMancoz at present it still puts gaps between Ogg tracks
18:25:04preglowyes, but that's the iriver firmware
18:25:45linuxstbThere's two different issues for gapless playback - 1) (only applicable to stupid codecs like MP3) remove padding from final frame and 2) Ensure the PCM buffer is never empty.
18:26:44linuxstb(actually, it's not MP3's fault, it's just that there is no container format used).
18:27:02 Quit G (Read error: 54 (Connection reset by peer))
18:27:20preglowso it's ogg that stores the track length for vorbis?
18:27:30lolo-laptopthe iRiver firmware is just stupid about loading oggs −− it doesn't start loading the next one _at all_ until the prior one is completely decoded and sent to the DAC... −− all it would have to do is pre-read the header of the next song to be played and it owuldn't gap (at least not so much)
18:27:37lolo-laptoppreglow: yes.
18:28:03preglowlolo-laptop: it's really stupid, yes, the firmware is able to preload, it does it for mp3s that are bigger than the buffer
18:28:10preglowlolo-laptop: they just don't utilize it the right way
18:28:51preglowunless the track is too long to fit the whole buffer at once, the firmware just loads whole tracks, it seems
18:28:55preglowthat's a real waste of mp3 buffer
18:29:13preglowi've never seen it buffer in the middle of a short track
18:29:14preglownot once
18:29:19preglowit always buffers at the start of the next one
18:29:40lolo-laptopyeah, they do only -very- basic battery saving buffering, nothing smart.
18:29:40 Quit AC ("CGI:IRC (EOF)")
18:30:05lolo-laptopactually what's funny is that my iRiver slimx350 I think did prebuffering of the next track and but the H340 doesn't.
18:34:11 Join Hohoman [0] (
18:36:41preglowthe h1x0 series is discontuned, yes?
18:36:41 Quit muesli- (Read error: 104 (Connection reset by peer))
18:37:37 Join AC [0] (
18:38:29AClinuxtb: who must i use the codec on a wv file?
18:39:36ACbut how do i start the codec?
18:39:46ACi want to test, if it works or not
18:40:22ACin "open with" there are now codecs listed
18:40:29linuxstbYou need to modify "viewers.config" in the plugins directory to add a line to link ".wv" files to wv2wav, then you can simply "play" the wv file whilst browsing in Rockbox.
18:40:47ACah ok
18:41:21linuxstbYou need to do a full install on your iRiver - i.e. "make zip" and then unzip the on your iRiver. Remember to reboot to make Rockbox re-read viewers.config
18:42:23ACmake zip i have done... restarting rockbox
18:43:12ACrebooting to linux
18:43:52 Quit AC ("CGI:IRC (EOF)")
18:44:23 Join LinusN [0] (
18:45:47*LinusN has a theory why 140MHz screws up the ATA timing
18:46:05LinusNand i'm afraid it's bad news
18:46:42preglowthe suspense!
18:46:46preglowpray tell
18:46:55linuxstbYou're supposed to tell us good news at the same time.
18:47:10LinusNif i'm right about this, there are no good news
18:47:37LinusNthe ata signal buffering is not designed correctly in the hardware
18:48:37preglowwell, what does it do apart from buffering that's screwing up the timing?
18:48:46preglowand: is it modable? :)
18:49:25LinusNso it violates the ata specification regarding the DIOR setup time
18:49:48LinusNi'll have to hook up the logic analyzer to verify
18:50:08LinusNthis may mean that we have to reduce the cpu frequency when doing disk operation
18:50:11preglowooohh, you've got one of those
18:50:23amiconnLinusN: I thought your conclusions were from doing logic analysis
18:50:30LinusN(which could explain the horrible disk performance in the original firmware)
18:50:42LinusNno, from reading my schematics
18:50:50linuxstbAnd I'm assuming that changing cpu frequency would interrupt audio playback?
18:51:09LinusNthe audio clocks are separate
18:51:33[IDC]Dragonthe CPU has no means for different timing on different address ranges?
18:51:44LinusNoh yes
18:51:49linuxstbSo could we work around it and only slow down the CPIU for disk accesses?
18:51:52LinusNbut it's not a matter of waitstates
18:52:03LinusNlinuxstb: yes
18:52:47LinusNit's too early to say how bad it is, i'll have to analyze it
18:53:15linuxstbSounds like a mess.
18:53:26LinusNso far it's just a theory
18:53:53linuxstbDo you think it's different in H120/H140 or in different revisions (were there different revisions?)
18:54:00preglowi was hoping the horrible disk performance in the iriver firmware was due to bad programming
18:54:06LinusNme too
18:54:21LinusNi don't know about more than one revision
18:54:33LinusNhaven't seen many open irivers yet
18:54:44LinusN(well, the H110 is different)
18:54:48preglowi haven't seen a rev number on mine, at least
18:54:55preglow_in_ mine
18:54:59LinusNanyway, i have to go, maybe i'll pop in here later
18:55:04preglowait, have fun
18:55:05amiconnIf your theory is correct, I wonder whether there are mp3 player hw designs that don't need ugly workarounds...
18:55:17preglowamiconn: lots of them in the archos?
18:55:28LinusNcu guys!
18:55:30 Part LinusN
18:55:38amiconnpreglow: Quite a number
18:56:04amiconn(1) Necessity for bitswap, because SPI bit order of the MAS doesn't match that of the CPU
18:56:21 Join acathla [0] (
18:56:26amiconnSame on Ondio, only worse. MAS bitswap plus MMC bitswap
18:57:11***Saving seen data "./dancer.seen"
18:57:23preglowhave we even checked that the coldfire in the original firmware runs at 140 mhz?
18:59:00amiconn(2) Shortcoming in the player that was fixed later for the recorder: The MAS has a demand pin. It is useful to get an interrupt for both start & stop demand, however, the SH interrupt only triggers on hogh->low. So you need to invert the signal and put it on 2 different port pins.
18:59:19amiconnThe player doesn't have that, so start_demand has to be polled...
18:59:50amiconnThere are more...
19:00:25preglowwhat endianess is the sh?
19:00:34amiconnBig endian, as the coldfire
19:02:07 Join sox [0] (
19:04:20jypNote for linus when he'll read the logs ...
19:04:53jypReversing the Archos' firmware shows a cpu-frequency reduce as well
19:05:03jypupon some disk accesses
19:05:17jyp(or something that looks very much like it)
19:05:33[IDC]Dragondown to how much?
19:05:49jypLet me have a look
19:05:59[IDC]Dragonthey must still be able to play while doing so
19:06:26[IDC]Dragonthis hardware quirk tightens the codec requirements
19:06:36amiconnpreglow: Speaking about ata: (3) 16 bit ATA data is little endian, so it has to be swapped on a big endian machine. There could have been a buffer that does this...
19:06:47preglowamiconn: ahahahha
19:06:57preglowthere are simple parts for doing that
19:07:05rasheramiconn: sounds like a bucket of fun
19:07:10[IDC]Dragonamiconn: or just crossing the wires
19:07:24preglowwhich would be even simpler, yes
19:07:31jyp[IDC]Dragon: it's very difficult to tell by reading the code, because the frequency depends on a global
19:07:32preglowit's REMARKABLE they didn't think of that
19:07:34amiconnYou must still be able to read byte data..
19:07:58[IDC]Dragonyes, but this is less
19:08:08amiconnAm, hum, of course, simple
19:08:26amiconnYou just need to read the other half of the 16 bit port...
19:08:49amiconnSO crossing the wires would have done the trick....
19:11:20amiconnBagder: r u there?
19:11:50preglowcrossing the wires would be everything required, yes
19:11:55preglowit's amazing they didn't think of that
19:11:55soxhoy all, just ran cvs update and tried to build, got this weird error
19:11:56soxc-813ee255:~/rockbox/build svante$ make -nw
19:11:56soxmake: Entering directory `/Users/svante/rockbox/build'
19:11:58soxmake -C /Users/svante/rockbox/firmware
19:11:58soxmake[1]: Entering directory `/Users/svante/rockbox/firmware'
19:11:58soxmake[1]: *** No rule to make target `#pragma', needed by `/Users/svante/rockbox/build/dep-firmware'. Stop.
19:11:58DBUGEnqueued KICK sox
19:11:58soxmake[1]: Leaving directory `/Users/svante/rockbox/firmware'
19:12:00soxmake: *** [all] Error 2
19:12:02soxmake: Leaving directory `/Users/svante/rockbox/build'
19:12:04soxwhats this about?
19:12:05preglow'cause that's data you have when you design the hardware as well
19:12:11soxsorry for floodin'...
19:12:16preglowi've heard pastebins are nice
19:12:36preglowwhy -nw ?
19:12:41soxto get more info
19:12:45amiconnsox: YOu'll probably need to reconfigure
19:12:49linuxstbsox: Bagder committed some big build changes today - did you update everything, and also re-run configure?
19:12:50soxi did that...
19:13:06linuxstbAre you on cygwin?
19:13:10soxill wipe the whole build dir again
19:13:18soxnope, mac os x-darwin
19:13:29amiconnNo sims build on cygwin now... the build bails out really early:
19:13:37preglowahh, darwin
19:13:50preglowas long as it uses gnu tools, it should really be ok, but i don't think very many have tried that
19:13:51linuxstbWhat are you trying to build?
19:14:12amiconnCC common/disk.c
19:14:13amiconnIn file included from /home/Administrator/rb-patched/uisimulator/common/file.h:62,
19:14:13amiconn from common/disk.c:26:
19:14:13DBUGEnqueued KICK amiconn
19:14:13amiconn/home/Administrator/rb-patched/firmware/include/file.h:49: error: conflicting types for `ssize_t'
19:14:13amiconn/usr/include/sys/types.h:170: error: previous declaration of `ssize_t'
19:14:13***Alert Mode level 1
19:14:13amiconnmake[1]: *** [/home/Administrator/rb-patched/simulator-build/w11-ondiofm/common/disk.o] Error 1
19:14:17amiconnmake[1]: Leaving directory `/home/Administrator/rb-patched/firmware'
19:14:17amiconnmake: *** [all] Error 2
19:15:13 Join R3nTiL [0] (~zorroz@
19:20:43amiconnHmm. I don't have an idea how this can be solved easily. The problem is jyp's long policy.
19:21:13amiconnsys/types.h defines ssize_t as int for 32 bit machines, and as long for 16 bit machines.
19:21:34preglowthat can't be right
19:21:41amiconnRockbox' file.h now unconditionally defines it as long
19:21:42preglowunless it's got a 32 bit address space
19:21:55 Part acathla ("Byebye") there is a conflict on a 32 bit platform :(
19:22:25amiconn#if defined(__INT_MAX__) && __INT_MAX__ == 2147483647
19:22:25amiconntypedef int _ssize_t;
19:22:25***Alert Mode level 2
19:22:25amiconntypedef long _ssize_t;
19:22:25***Alert Mode level 3
19:22:51amiconnThis is actually in _types.h, which gets included by types.h
19:25:10[IDC]Dragongotta go
19:25:13 Quit [IDC]Dragon ("CGI:IRC")
19:32:26***Alert Mode OFF
19:38:21 Join Stryke` [0] (
19:40:06 Quit R3nTiL ()
19:48:55CtcpIgnored 2 channel CTCP requests in 2 minutes and 15 seconds at the last flood
19:48:55*jyp is back
19:49:45jypamiconn, preglow
19:49:58jypSomething I need to do ?
19:57:18amiconnI don't think so. The problem now occurs because the definition of ssize_t in rockbox and in the system are different for 32 bit machines, and with the new build system both definitions are included.
19:57:53amiconnWe need a way to disable the definition in file.h for the simulator builds.
19:58:11jypShouldn't file.h include the sys
19:58:16preglowwhy ssize_t? isn't size_t good enough?
19:58:29jyptem include instead of defining size_t by itself ?
19:59:43amiconnYes. uisimulator/common/file.h does that, but with the new build system firmware/file.h gets included too
20:01:39amiconnAh no, uisimulator/common/file.h does *not* include the system include, but firmware/file.h instead
20:02:40jypI mean, can't firmware/file.h behave like uisimulator/common/file.h ?
20:02:43amiconnHmm. There is a check in include/file.h that should prevent duplicate definition
20:03:04amiconnHowever, this doesn't seem to work on cygwin. Gah!
20:03:32*amiconn digs in cygwin's system includes
20:04:30 Nick Lynx_ is now known as Lynx_awy (HydraIRC@
20:06:21 Join bg_ [0] (
20:21:04DeadManany uk folk here?
20:21:28DeadManif so you may enjoy this
20:24:57amiconnGrr, I am still unable to compile a simulator on cygwin :(
20:29:44HClhi hi
20:29:52HClany luck with the makefile for rockboy ami?
20:30:20amiconnIt works... for the target, but needs afjustment for the new build system.
20:30:56amiconnSince I cannot test simulator builds, I have to hold this back until the cygwin sim build issues are fixed.
20:31:42amiconnI have no idea how to fix that yet.... maybe I need Bagder's help
20:45:27amiconnBtw, did you check the .map file?
20:46:05amiconnAdding .code, .data and .rodata gives only ~65 KB, the rest is .bss space.
20:46:54amiconnThe biggest part (256KB) is the patpix array
20:48:41HCli haven't seen the patpix array, i'll take a look at it
20:48:55bg_are there any other GB emulators released under GPL?
20:49:04bg_besides gnuboy that is
20:49:19HClbg_: one... don't remember what it was called.
20:49:23HClit was windows only
20:49:28HCldidn't seem very portable
20:49:30amiconnAnother interesting fact: The routine that updates the patpix array is a real CPU hog - in C.
20:49:49HClamiconn: kay, do you happen to know what patpix is used for?
20:50:05amiconnIt is one of the routines that gnuboy provides i386 asm routines for.
20:50:25amiconnI think I can speed it up by at least factor 5 on SH1
20:50:33HClwe should probably write asm versions for it using asm of course
20:51:16amiconnI don't know exactly what this array is used for, but it certainly has to do with gfx output.
20:52:35amiconnupdatepatpix() looks like it puts 8x8 pixel tiles into the array, in various orientations
20:53:28amiconnI *guess* this is why pokemon is so slow when the background changes a lot
20:53:39HCltile pattern cache
20:53:47HClaccording to the HACKING doc
20:53:56HClupdatepatpix() - updates tile pattern cache.
20:55:40HClit sounds as if its supposed to be a speed optimization
20:57:03HClthere's a bit of a description to why they do what they do at the beginning of the lcd section
20:57:15***Saving seen data "./dancer.seen"
21:10:56XShocKi spotted the link to a MPEG decoder at page
21:11:30XShocKdid someone looked at it? it says at 90 MHZ on 5307 it is close to real-time
21:12:53XShocKsupport all three layers, 1,2, and 3
21:13:29XShocKthis one is a bit old though.. year 1999
21:18:39 Join necrogl [0] (
21:19:14 Join DrRick [0] (
21:19:46 Join LinusN [0] (
21:19:52 Quit necrogl (Client Quit)
21:20:02LinusNamiconn: the iriver hardware swaps the ata bytes
21:20:10amiconnNice :)
21:20:30LinusNat least they tried to do it right :-)
21:20:46amiconnDid you read about the cygwin build issues?
21:21:03amiconnI can't build *any* simulator :(
21:22:27linuxstbXShock: That decoder definitely looks like it's worth investigating. I've had a quick look, but don't have time to try to get it running on the iRiver at the moment.
21:22:39XShocK the new version of
21:23:28preglowno emac :/
21:24:36preglow5307 has mac only, seems
21:24:40amiconnpreglow: So adding emac support would lower the cpu requirements further (?)
21:24:43preglowbut i couldn't see the code using it
21:24:45preglowamiconn: it should
21:24:50XShocKI found out that it was discussed before on Jan 6 2005, and decided that MAD as being full C implementation will e better, but since it is working only 40% of realtime on 140mhz, why not use this for m68k, and MAD for other players
21:25:49LinusNXShocK: is there a coldfire version of it?
21:25:53XShocKI would say "50Mhz recommended for realtime " is pretty cool
21:26:37XShocKit works on 5307
21:27:01preglowLinusN: 5307 is a coldfire version
21:27:06XShocKso, i guess it will work on 5249 with minimum(if at all) changes.
21:28:12preglowcoldfire model, whatever
21:28:16LinusNah, was looking at that mac download page...
21:29:38preglowbut hell, if we actually need to clock down the cpu while reading from the disk, requirements are starting to get hairy indeed
21:29:49 Join G [0] (
21:30:07preglowmight as well just not clock it at 140mhz at all
21:30:14XShocKLinus: sorry, put wrong link. :)
21:30:43 Nick G is now known as thegeek (
21:34:08LinusNpreglow: we'll see about that...
21:34:11 Quit thegeek (Read error: 104 (Connection reset by peer))
21:34:21preglowlots of lovely assembler
21:35:40 Join hubble [0] (
21:39:37 Join skav [0] (
21:42:17 Join arogan [0] (
21:42:56aroganhello, I've got a quick question on bookmarks
21:43:01 Part LinusN
21:43:05aroganthis is jukebox recorder 20
21:43:21aroganI have it to automatically create a bookmark on stop
21:43:40aroganis there a way to NOT create a bookmark when stopping on the one off case that I don't want a book mark
21:44:34aroganlike maybe some sort of key combination to stop without bookmarking?
21:44:59aroganok. didn't think so since I couldn't find it int he docs
21:45:09amiconnYou would have to set "create bookmark", to "ask", but then it would ask every time
21:45:27aroganyeah which I don't want since 90% I want to to go ahead and create a bookmark
21:47:31 Join necrogl [0] (
21:47:48necroglanyone home?
21:48:31necrogl all these people online
21:48:39necrogland no one wants to speak :(
21:49:00preglowif you'd not jump to conclusion after being here a mere minute, you'd find that we do indeed speak
21:49:04preglowwhen we have something to say
21:49:11preglowif you want to ask something, just ask it
21:49:25necrogli will
21:49:34necroglthat is better :D
21:49:59necroglyou lot make firmware for the archo jukebox righjt
21:50:16necrogli had a Archod JMB20
21:50:21necrogluntil is broke :(
21:50:32necroglis that supported ?
21:51:41preglowwouldn't know, i'm in for the iriver players
21:51:56necrogli played with a irirver once
21:51:59preglowgive the guys a sec and someone'll answer
21:52:02necroglthey are weak
21:52:11aroganjust curious what is the status of the bleeding edge builds for iriver (my brother has one)?
21:52:18aroganare they more or less functional?
21:52:32amiconnnecrogl: No. See and
21:52:40 Quit Aison (Read error: 104 (Connection reset by peer))
21:53:03bg_ive messed around with a few different HD players, iriver was by far the best
21:53:04preglowarogan: if you don't want sound, then yes, they do function
21:53:06bg_ihp series
21:53:18necrogli will admit
21:53:22preglowarogan: more or less only usable by developers right now, but it does function
21:53:27necroglthe iriver player have bad firmware
21:53:34aroganheh ok
21:53:49necrogli am interested in getting a ipod photto
21:53:55necroglwhat firmware is there for that
21:54:04 Join Aison [0] (
21:54:11preglowwell, apple's firmware, obviously
21:54:14preglowand that's that
21:54:25necroglis apple firmware any good?
21:54:30preglowi wouldn't know
21:54:37necrogldoes anyone?
21:54:38bg_ive played with one, its simple
21:54:42bg_easy to learn
21:54:45bg_like most apple stuff
21:54:51bg_even had some games
21:54:59bg_dont know about its advanced functionality
21:55:05bg_but i still prefer i 140
21:55:16necroglthat is the iriver one right
21:55:17aroganmy guess I don't think you'll find any other mp3 player with the breadth of functionality that rockbox provides
21:55:42necrogli jsut found this on your site
21:55:50bg_im patiently waiting for rockbox to work in my 140
21:56:02necrogldo they stilll sell the irives anyone
21:56:09bg_one day out of curiosity i googled "opensource iriver firmware" and came up with this site
21:56:15bg_only to find it was in early development
21:56:18rasherpreglow: there's ipodlinux surely
21:56:27rasheroh, photo
21:56:30necroglis ipodlinux like thsi
21:57:03preglowthis really isn't the best channel to be asking ipod questions, most of us have rockbox supported players
21:57:18necrogli just looked on the ipodlinux site
21:57:24necroglthey ipod photo is not supported
21:57:26preglowipod linux is more or less at a stand still
21:58:03necroglthey are working on it
21:58:29bg_any plans to port rockbox to the ipod?
21:58:42bg_or is the ipod looked down upon here...
21:59:11preglowwell, no, but there exists no info on the ipod hardware, more or less
21:59:45rasherWouldn't ipl be a good starting point for hardware info?
22:00:23necroglboth ipodlinux and you are open soruc
22:00:27bg_you'd think it would be pretty widely know, as it is the most popular portable mp3 player by far
22:00:40preglownot many are interested in it
22:00:49HClit can't do radio, says enough for me :p
22:00:52preglowbut some docs probably exist, just not comprehinsive official ones
22:01:03preglowbut i don't care anyway
22:01:07bg_a lot of people get the ipod almost as a fashion statement it seems
22:01:10preglowi like my h120
22:01:18preglowbg_: no shit
22:01:34necroglbut wouldnt i make more sense to make rockbox for the ipod?
22:01:35bg_and bono endorses it.....
22:02:31HCli meant the fashion statement bit >.o
22:02:47necroglbut ipods are quiet cool
22:03:26necroglwouldnt more people be interested in ipod rockbox?
22:03:40Zagornecrogl: we do this because it's fun. that's all.
22:03:41*HCl doesn't really think that matters o.o;
22:03:45bg_most people with ipods are technically challenged
22:04:04necrogla lot of my mates have ipods
22:04:10necroglthey aitn dumb
22:04:18preglowhe said 'a lot', not 'all'
22:04:21HClpersonally, i'm not really enthusiastic about ipod
22:04:23Zagorthe ipod would be a good target if there was documentation available
22:04:47necroglipod linux is just about as tech savvy as your porject
22:04:52aroganshould make rockbox for the ishuffle (5000 blinking light combinations to tell what the player is doing)
22:05:04Zagornecrogl: "tech savvy"?
22:05:04 Part hubble
22:05:06bg_yeah, im kinda confused by the shuffle concept
22:05:10jypHow bout rockbox for the gmini ? :P
22:05:14bg_can you like, not choose what song you want to listen to?
22:05:18rasherjyp: no way!
22:05:19HClohh! gmini is a great idea!
22:05:21HCl :D
22:05:21HCl :P
22:05:24rasherjyp: that can't be done :D
22:05:25necrogli used a shuffle
22:05:34necroglit aint my thing
22:05:39necroglit weight nothing
22:05:42bg_can you pick the song you listen to?
22:05:55jypI think we can still lower the signal noise ratio on this channel, huh ?
22:05:56bg_it is flash based isnt it...
22:06:03necroglyou can press a button to go the the first song of the playlist
22:06:05preglowjyp: would be great, yes
22:06:13necroglwhat you could do
22:06:18necroglis make morse code
22:06:25necroglto say what song it is playing
22:06:25jyppreglow: Thanks for the support ;)
22:06:59necroglwhat do you lot thing about morse code?
22:07:19rasherNot much.
22:07:23necrogli mean
22:07:31necroglsee the shuffle has those light
22:07:38jypWould apple zealots commit the heresy to use non-apple software ?
22:07:39necroglyou use use morse code to say the song is it playing
22:07:59preglowwe're not porting to the shuffle, this is pretty irrelevant
22:08:03necroglthere is 10 millionm ipods users
22:08:11necroglmost of them dont even know what a mac is
22:08:39Zagorbut all of them know morse?
22:09:01necrogli dont even know morse
22:09:03linuxstbI've been looking at the ipodlinux optimisations to libFLAC - the only thing I can find that they've done to achieve real-time decoding on a 64MHz ipod is this asm function:"> Does anyone fancy doing the same for the coldfire?
22:09:20rasherIt'd be fine if this ipod lobby could either a) take their discussion elsewhere or b) do the work to start a port
22:09:43Zagorrasher: amen
22:09:54necroglthis is a rockbox lobby
22:09:56aroganany chance of having bookmark capabilities when viewing text files?
22:10:00 Join [IDC]Dragon [0] (
22:10:09necrogldont the ipdo already do that
22:10:20amiconnhi Jörg
22:10:26[IDC]Dragonhi again
22:10:41Zagorarogan: anything is possible
22:10:51[IDC]Dragonbelieve it or not, I have a liitle time for rockbox
22:10:53amiconn[IDC]Dragon: Did you try building a sim on cygwin? It is badly broken :(
22:11:00preglowlinuxstb: i'll have a look
22:11:02necrogldid those guys get the ipod to play flac?
22:11:07preglownecrogl: go ask them
22:11:15necrogldo they have irc?
22:11:19[IDC]DragonI rarely ever did
22:11:32preglowi don't know, as i said, i gave a rats ass about the ipod
22:11:32rashernecrogl: I suggest you look at their webpage:
22:11:45Zagornecrogl: #ipodlinux
22:11:56rasherAnd now kindly stop all this talk about the iPod. Clearly none of the devs are interested in it.
22:11:58necrogliit is on the same server as you lot
22:12:30Zagormany projects have channels on freenode
22:12:30HCli should start getting into m86k assembly
22:12:46necroglyou lot wont be making rockbox for ipod
22:12:59HCli think its safe to say that, yes.
22:13:10necrogli will look into the linux thing
22:13:12Zagornecrogl: "we" is not a group. if someone wants to port rockbox to ipod, he is free to do it.
22:13:15[IDC]Dragonanybody is free to do so
22:13:22necroglthey seen to have it working on the mini
22:13:25necrogland the 4g
22:13:30Zagorjust because none of us here want to do it now doesn't mean it can't ever happen
22:13:33HClits just that nobody here seems to be interested in porting it
22:13:34necroglnice talking
22:13:49necrogldoes that mean
22:13:53linuxstbpreglow: Thanks. An alternative (also optimised from the standard libFLAC) C version of that function is here:"> - look at the FLAC__lpc_restore_signal() function.
22:13:54necroglit could be done?
22:14:24Zagoryes, with hard work
22:14:39necroglthe linix porjct look good
22:14:57necroglno point of having tow different alternative firmware is there
22:16:13amiconnGrr, I don't get it. My Makefile changes for rockboy suddenly don't work anymore as they should.
22:16:16Zagornecrogl: you are not a programmer, are you?
22:16:43necrogli have played with interface builder
22:16:55necrogland a few lines of cocoa
22:17:31necroglit is not real porgramming
22:18:42preglowlinuxstb: this just might be a good test to see how good the emac unit is as well
22:19:19linuxstbYep, it looks a relatively simple function to write.
22:19:44necroglemacs is such a lame text editor
22:19:52preglowthe major hurdle is that i don't know arm or m68k assembly very well, but i've got to start somewhere
22:19:55preglownecrogl: don't mention it
22:20:33jypemacs rulz!!!!!!11
22:21:03necrogli have nothing aginst it
22:21:25necroglbut it is painful using terminal for text editing
22:21:39jypI might also add that it's the only program deserving the name of an editor
22:22:03preglowprefer vim myself
22:22:26jypbesides, what's a non-programmer opinion on editors ?!!!111
22:22:28preglowhaha, went to see richard stallman the other day
22:22:38preglowhe donned his church of emacs saint costume at the end of the talk :P
22:22:50jypHe always does ;)
22:23:20*jyp switches to rational mode
22:23:31jypThat was refreshing. :P
22:23:48necrogli use xocde
22:23:59[IDC]Dragonsh-elf-ranlib: Command not found
22:24:02preglowbut i'll go eat some
22:24:08[IDC]Dragonwhat does that tell me?
22:24:28amiconn[IDC]Dragon: Doing what?
22:24:33jypPath correct ?
22:24:59[IDC]DragonI'm plain trying to compile fresh
22:25:01necrogli am going nice
22:25:09necroglfora bit
22:25:15necrogli might be back later
22:25:21[IDC]Dragoncompiling works, so the path is there
22:25:24necroglwhy is irc is dam slow
22:25:46amiconn[IDC]Dragon: Seems you don't have that command. Cygwin, I guess?
22:26:04XShocKhaha... DMA works... almost. :)
22:26:15amiconn[IDC]Dragon: It is working perfectly here for the target
22:26:23 Quit necrogl ()
22:26:28[IDC]DragonI tried cygwin, for the target
22:26:33jypXShocK: what are you working on?
22:26:40XShocKDMA sound.
22:26:42*[IDC]Dragon moves over to the notebook
22:27:07XShocKthe sound is coming out, i would try to load some normal WAV PCM file to see how it would do
22:27:07amiconn[IDC]Dragon: Maybe your sh-binutils are too old, and don't include ranlib
22:27:25[IDC]Dragonthe notebook has it
22:27:35jypXShocK: What are you playing ?
22:27:38preglowi can feel the snr going down already
22:27:40[IDC]Dragonis this new, using ranlib?
22:27:42jypright now ?
22:28:07amiconn[IDC]Dragon: yes, seems so from looking at the new make stuff
22:28:19rasherpreglow: totally.. what a guy..
22:28:20amiconnHowever, ranlib isn't strictly required
22:28:32amiconn$ sh-elf-ranlib
22:28:33amiconnUsage: sh-elf-ranlib [options] archive
22:28:33amiconn Generate an index to speed access to archives
22:29:15[IDC]Dragonarchives, strange
22:29:32XShocKtried to load RAW wav, but i guess i should change little-endian to big-endian first, since there is a noise....
22:29:44amiconnIt's not strange. This means the .a archives, i.e. libraries
22:29:55*[IDC]Dragon switches machine, cu
22:30:02 Quit [IDC]Dragon ()
22:30:23 Join [IDC]Dragon2 [0] (
22:30:23 Quit [IDC]Dragon2 (Remote closed the connection)
22:31:52 Join [IDC]Dragon [0] (
22:32:08[IDC]Dragonhi again
22:33:46jypXShocK: be sure to notify me when your work goes in CVS, so I can integrate gmini support
22:33:52jypas seamlessly as possible
22:34:18jyp... please ;)
22:35:27XShocKI will flood this channel if I get good sound from this DMA, don't worry. :)
22:35:42bg_on iriver?
22:35:58HCl :P
22:36:08*rasher cheers XShocK on
22:37:04jypPersonnaly I used a simpler method than load from file
22:37:18jypin order to test sound from the gmini
22:37:29jyp... hardcoded buffer ;)
22:38:07jypMaybe test this before ?
22:46:35XShocKis it sine wave?
22:46:42XShocKthat 256 element array
22:47:35[IDC]Dragonhooray, the newer cygwin compiles
22:47:54[IDC]Dragonbut "make zip" didn't work
22:47:59Bagderwhat happened?
22:48:22[IDC]Dragonit tried to build the failing rombox again, but no more
22:48:31preglowdoes the m68k/coldfire have a hardware tick counter than anyone is aware of?
22:48:58XShocKit makes sound, but i am not sure if it is a perfect sine however
22:49:05[IDC]Dragon(I'm compiling Ondio FM target)
22:50:22*amiconn notices Bagder around
22:50:30BagderI missed a piece of my patch in the zip parts
22:50:48Bagderor did I...
22:51:10amiconnI can't build any sim on cygwin :(
22:51:23amiconnThere are multiple problems I don't know how to solve
22:51:46Bagdermail me some outputs
22:52:29amiconnThe first one is rather early, and short.
22:56:30Bagderamiconn: does the cygwin header contain some kind of protection mechanism against multiple typedefs of those types?
22:56:50Bagderlike checking for a magic define or something
22:57:00amiconnI already checked, it doesn't, but this problem _only_ occurs with ssize_t
22:57:19***Saving seen data "./dancer.seen"
22:57:51amiconnI found that there are safety mechanisms in firmware/include/file.h, but none of these work for cygwin.
22:58:22Bagderok, I think we can #ifndef SIMULATOR that typedef
22:58:34amiconnI could try a kludge (checking for __CYGWIN__ as well), but I don't know if this would be good...
22:59:55amiconnIf I use #ifndef SIMULATOR, should the magic defines stay there?
23:00:09Bagderhang on, checking the win32 cross-compile
23:00:47Bagderhehe, it errors if removed
23:01:48amiconnI'll add && !defined(__CYGWIN__) for now and retry...
23:01:53Bagderyes, do that
23:01:59[IDC]Dragonexcuse a dumb question, it's been a while, do I select Win32 or X11 for cygwin sim?
23:02:10amiconnYou can build both
23:02:23amiconnI'm currently trying win32
23:02:26Bagderor should at least ;-)
23:02:30[IDC]Dragonwith the difference being what?
23:02:57Bagderwin32 is the fancy one with images and things, the x11 one uses X windows and requires you to run X
23:03:14[IDC]Dragonwin32 then
23:04:29 Join Tang [0] (
23:04:30amiconnBagder: Now it goes somewhat further, gives numerous warnings about file function, then errors at plugin.c
23:04:46Tanghello :)
23:04:56Bagderok, let's ignore warnings for now
23:05:07Bagderwhat's the error?
23:06:47Bagderok, you miss the read() prototype
23:07:21amiconnNot only read(), but also write(), fprintf(), lseek()
23:07:36Bagderin the bottom of include/file.h
23:07:47Bagdertry removing the #ifndef SIMULATOR
23:07:56Bagderfor that list of protos
23:09:20amiconn... "conflicting types" :(
23:09:41amiconn...and a warning about printf()
23:10:05Bagderwhat's the conflicting one?
23:10:26amiconnread() and write()
23:10:42 Quit Cassandra_ (Read error: 60 (Operation timed out))
23:10:46BagderI think we might need a set of protos for the cygwin sim there
23:11:01TangI'm reading the "GaplessHowtoWiki"
23:11:16Bagderthe win32 cross-compile failed too
23:11:19Bagdervery similar
23:11:25*HCl doesn't understand whats so important about gapless music
23:11:41rasherWell if music is made gapless, I want to listen to it without gaps
23:11:54rasherI get UPSET when things have gaps, that shouldn't be there
23:11:59HClokay o.o
23:12:11rasherThen I get ANGRY
23:12:14amiconnBagder: I wonder why/ how it worked before the new build system...
23:12:17rasherand we all know what anger leads to
23:12:22HClthat means you need to control your anger :P
23:12:35Tangtry listnening "pink floyd" album
23:12:36Bagderamiconn: because previously the sim did not use the Rockbox headers as aggressively as now
23:12:49HCli don't like pink floyd. the only live album i have is nirvana
23:12:54HCland i couldn't care less about gaps in it
23:12:57TangYou'll undertsand what's cool with gapless playback
23:13:05amiconnAh. So what if the rockbox headers include the system headers for sim builds?
23:13:08HCli know the difference, one has pauses, the other doesn't
23:13:16TangOkay was just for exemple
23:13:44Bagderamiconn: that can only be done if the system header has a different name, since <stdio.h> etc will find the Rockbox one
23:14:03amiconnUmm, of course
23:14:20Bagderthat's why we need to add some info from the system headers into the Rockbox ones for sim use
23:14:48TangI wonder about the gapless howto
23:15:08Tangis this the only way to get gapless playback for even Rbx future?
23:15:28BagderTang: no
23:15:30Tangcause the "foobar" method is much cooler
23:15:38TangAh ok badger thanks
23:15:53rasherNo, when doing decoding in software, there are easier (for the user) ways
23:16:02amiconnHmm. That doesn't sound like a clean solution to me. We can only select one (or some) particular variants. What if someone tries to build the simulator on a system with different headers?
23:16:09BagderTang: you should know that Rockbox isn't done for iriver yet
23:16:21TangOkay was wondering cause i didn't see nothing about these on the section
23:16:31preglowwhich 68k registers can one clobber in a function?
23:16:32Tangi know no mistake
23:16:38preglowa0, a1, d0 and d1?
23:16:41Bagderamiconn: why would that break anything?
23:16:53Tangit's just that i saw the GaplessHowto was edited recently
23:16:59Bagderthe problem we have now is because cygwin/win32 use different protos than Rockbox
23:17:05Tangso i thought it was about iRiverport
23:17:14Tangthat's why i was surprised
23:17:29BagderTang: don't be until someone claims Rockbox works for iRiver
23:17:43Bagderthat'll be several months ahead
23:17:47amiconnBagder: Possibly it would not build for the same reason cygwin fails when using the rockbox definitions: conflicting types.
23:17:59TangOkay no matter Badger
23:18:19Bagderamiconn: if I could, I would prevent the compiler to find the "original" protos in the system headers, but that's hard
23:18:21Tangwasn't thinking about working iriverport before some months personnaly
23:18:45amiconnThe sim (well, at least the X11 version) could be built on Linux, *bsd, Solaris, MacOS, HPUX....
23:19:06Bagderbut I don't think they will cause problems
23:19:12Bagderthey are all posix
23:19:16Bagderwin32 is not
23:19:30Bagderand Rockbox is, partly at least
23:19:44Tang(but i think it's a good thing to make some publicity about the rockbox iriverport project that's why i relay the informations on some boards)
23:20:07 Join Cassandra_ [0] (~christi@
23:20:51Bagderamiconn: system functions are generally not different between OSes
23:20:58amiconnBagder: The problem is often long vs. int, since jyp long-policed a number of places
23:21:08Bagderlike where?
23:21:21Bagderthen they're not posix
23:21:23Bagderlike win32
23:21:44amiconnRockbox: typedef ssize_t long;
23:22:09Bagderwhy is that bad?
23:22:13amiconn#if defined(__INT_MAX__) && __INT_MAX__ == 2147483647
23:22:13amiconntypedef int _ssize_t;
23:22:13amiconntypedef long _ssize_t;
23:22:13***Alert Mode level 1
23:22:13*HCl scratches his head
23:22:43 Join [IDC]Dragon2 [0] (
23:22:46amiconn..and the rockbox one is of course typedef long ssize_t;
23:22:47Bagderamiconn: that's a Rockbox bug then, not a sim build problem
23:22:48HCli must say the documentation of mips was a lot more straightforward than the documentation of the coldfire...
23:23:26amiconnBagder: The same probably applies to the read() etc prototypes
23:23:44Bagderno, since read() should return a ssize_t
23:24:01Bagderit would adapt to the tpe
23:24:02HClanyone around experienced with mips assembly who could explain what they mean?
23:24:05*amiconn checks rockbox vs. cygwin prototype for read...
23:25:08 Nick gromit` is now known as gromitovitch (~gromit`
23:25:15preglowwhat what means?
23:25:50preglowi think cfrpm.pdf is pretty straightforward
23:25:50HCli'm looking at
23:25:53HClchapter 9
23:26:11HCli don't understand what they mean with the bits since some have multiple lines
23:26:19HCltake btst
23:26:28HClwhat do mode/register do?
23:26:28 Nick gromitovitch is now known as gromit`` (~gromit`
23:26:46preglowyou really should look up the individual instruction docs
23:26:55preglowchapter three
23:27:05 Quit DrRick ()
23:27:06Bagderm68k is actually rather easy-to-read assembler in my view
23:27:09preglowevery one of them is described in detail
23:27:14preglowm68k assembler is very nice
23:27:17HClchapter 3 doesn't enlist bit encodings.
23:27:22preglowyes it does
23:27:27preglowfour, i mean
23:27:30preglowchapter four
23:27:39HClinteger user instructions? O.o
23:27:54preglowthose are the one's you'll need, pretty much
23:27:54HClit doesn't have any subsections
23:28:00preglowbah, who cares :P
23:28:00HClthats what i was looking for
23:28:41HCl :)
23:29:38preglowwhy does gas _never_ conform to the asm syntax that's most common?
23:30:01pregloweven 68k assembly is slightly tweaked
23:30:12Bagderbecause they are evil? ;-)
23:30:48preglowespecially addressing modes are never the same
23:31:09 Join rjamorim [0] (me@
23:31:59amiconnBagder: cygwin (iiuc): int read(int, void*, unsigned int)
23:32:14***Alert Mode OFF
23:32:15amiconnrockbox: ssize_t read(int, void*, size_t)
23:32:22 Quit sox ("Snak 4.13 IRC For Mac -")
23:32:36Bagderyes, and that is the problem in a nutshell
23:32:45Bagderhow do you suggest we deal with it?
23:33:05Bagderrockbox uses the posix protos in these cases
23:33:47BagderI've tried to prevent the compiler to find the system's native protos
23:33:53amiconnWell, in this particular case using the system include may work, because these fns are defined in io.h
23:34:16amiconnHow do you prevent that?
23:34:26Bagderin linux there is no io.h
23:34:37 Quit bg_ ("Chatzilla 0.9.67 [Firefox 1.0+/20050201]")
23:34:47Bagderrockbox shadows pretty much all the headers with that info
23:35:52amiconnI dont understand I'm afraid.
23:35:53*Bagder tests
23:36:16Bagdertry removing the inclusion of io.h
23:36:23Bagderin include/dir.h
23:38:10Bagderit seems to include it anyway somehow
23:38:27amiconnExactly the same error.
23:39:14 Quit [IDC]Dragon (Read error: 110 (Connection timed out))
23:39:25XShocKmmmmm.... sound if coming. it is sine.. but i also hear a gap. I guess it is when DMA restarts the copy progress.
23:39:35XShocK*sound is coming
23:40:44Bagderamiconn: try creating an empty file uisimulator/common/io.h
23:41:04Bagderas an experiment, its not a complete fix
23:41:07XShocKi can't really understand why it is som since when interrupt is fired when DMA copy is finished, so FIFO shouldn't be empty by then
23:41:09amiconnI'll try asap.
23:41:40amiconnAnother observation: Trying to build the X11 sim on cygwin now gives a heapload of warnings, then fails to link.
23:42:04Bagderamiconn: I might've failed to setup the proper set of libs to link with or something
23:42:33preglowXShocK: not bad anyway
23:43:32amiconnBagder: Now the error is different.
23:43:54Bagderamiconn: does it reach further?
23:44:17amiconnNo, errors in the same file:
23:44:28amiconn(hmm, better not paste that)
23:45:38Bagderthat is further
23:45:44Bagdereven if just slightly
23:46:04Bagderthis prevented it from including the system's io.h for the rockbox parts
23:46:25Bagdernow, when the simulator parts are to be built, it must find the real io.h...
23:49:03 Part rjamorim
23:49:56 Join [IDC]Dragon [0] (
23:50:52HCli think i'm kind of gonna need a proper malloc/free implementation for a dynarec...
23:53:38[IDC]Dragonmany people need such nowadays
23:53:59HClwell, i might be able to do without by simply not providing an implementation for free.
23:54:10HClbut it'll be extremely memory leaky and eventually it might run out of ram..
23:54:11DeadManM$ teaches you l33t sp34k
23:54:18[IDC]Dragonyou can't just continue walking th buffer?
23:54:25HCl[IDC]Dragon: i might run out of memory
23:54:42preglowlinuxstb: i think i'll be able to translate the asm optimized function, just give me some time :P
23:55:09linuxstbpreglow: Have fun!
23:55:29HClthe good news is that the gameboy only has a 16 bit program counter
23:56:39preglowlinuxstb: no problem, i've got beer!
23:57:11preglowHCl: isn't most things in z80 sixteen bit?
23:58:23HClapparently, i don't know much about m68k / z80 yet
23:58:24preglowHCl: or eigth bit, even
23:58:26HClbut i'm about to.
23:58:27 Join amiconn_ [0] (
23:58:36preglowHCl: but registers are eight bit, right?
23:58:52 Quit amiconn (Nick collision from services.)
23:58:53 Nick amiconn_ is now known as amiconn (
23:58:54HCltheres actually 6 registers
23:58:57HClof 16 bits

Previous day | Next day