Wednesday, February 11, 2009

New Release

The beta release is done! In this release I've worked only on basic navigability and rendering; I've got a lot to do in terms of PDF support and the like but I haven't had a ton of time to work on the project.

Here is what we got:
  • (Limited) Zooming in/out
  • Previous Page / Next Page
  • Support for vertical layout  or horizontal layout
  • Improved rendering
So far the zoom only aligns the PDF width with the width of the screen. Arbitrary zooming isn't difficult, but I'd rather solidify the GUI before I add features that should be part of the GUI. 

Funny things occasionally happen when flipping horizontal or vertical. You might have to scroll a bit to find the page. If you don't see it immediatly, zoom out to look :). 

The controls:
- Right shoulder: Next page
- Left shoulder: Prev page
- A: Zoom in
- B: Zoom out
- X: Rotate the page
- Select: Toggle rendering modes. The default one is bug free, but the secondary is quicker.   As soon as I figure out a few artifacting bugs, the secondary will be the only mode available. 
- You can still move around with the stylus. 

If you find a PDF that does NOT render, please leave a link in the comments to it. If the thing is massive or has a large image, that is probably the culprit, but leave it anyway. I hope to go through and vastly improve the percentage of PDF's this thing reads in the next release. 

Actually, if you find any bugs (and I'm sure there are plenty) or, better yet, have any ideas you think would work well, by all means comment!


  1. Nice work, I'm just downloading it now and looking for a few PDFs to transfer to my DS. I assume it works on an R4?

    I'll be back later with some feedback.

  2. doesn't seem to work. I've scrolled around the document but can't find anything :-(

  3. It worked well for some of the PDFs I tried. For others, the screen was just blank. :-(

    Some suggestions for the next version:

    Scroll bars so I know where I am in the document. Can be switched on/off as necessary.

    Also the ability to use the d-pad to move around the document and select files.

    The ability to load another PDF without having to restart the DS.

    Show 100% of the document (fit to screen) when it first loads. Also, a fit to width option would be nice :-)

    I'm sure these are already on your to-do list.

    The PDFs which displayed looked fine. I like the option to rotate the document.



  4. @Impomatic: There are still some font issues outstanding. I'm looking into that problem right now across a variety of documents; thanks for the test case.

    @dshacker: I do need to do something like scrollbars; sooner rather than later. Unfortunately I've never worked with tiled graphics before or anything, so I'm playing catchup.

    If you rotate the document, then do the zoom, and rotate it again, it effectively does fit to width :) Not intuitive, and you are right; its on my to-do list. It is good to know that my to-do list meshes with what people want though.

  5. for larger pdfs(30mgb's 400pgs) it gives me the error that it runs out of memory and then it just freezes and i have to turn off the acekard

    if you fill a folder with pdfs and run pdf ds and go to the folder while you are scrolling through the folder they flash and dissapear while you are scrolling and if you have the selector on a pdf its name gets cut it half untill you move it to the next pdf the folder had about 10 pdfs

  6. The iTouch(iPhone) does a very good job of rendering pdf, and has good touchscreen controls. Then again, it has a hell of a lot more juice, and still has a delayed redraw time. I look forward to trying this (I don't have an iTouch) but realize the ds hardware presents a real challenge. Perhaps the only solution is to cache as much as possible to the flash device to reduce redraw time when revisiting a page. Trying it now...

  7. It is impressive to see pdf rendered on the ds. Any chance of rendering figures?

    My suggestion for controls is that the bottom screen be used for control. And the top for rendering. Top screen would be used for reading. Bottom screen would have a a view of two pages side by side. Text would be rendered as lines. Drawing a rectangle on the bottom screen would select the zoom area for the top screen. The d-pad would be used to pan the zoom rectangle about the page. There would be two settings for panning, smooth and block. Block panning would not smoothly scroll, but "jump" to the next full rectangle, with a small amount of overlap. At the the right page edge, it would jump down and back to the left of the page and vice versa. Something similar for top and bottom of pages. There would be two touch controls on the bottom screen corners, for page forward and back. L and R shoulder buttons would also still page forward and back.

    Anyhow, long winded, and hard to describe in words...

  8. Quirky has started porting bunjalloo to woopsi
    ( for its gui components. Check out his blog. No reason to reinvent the wheel, unless you want to.