logo
Jan-Mar 1997
Oct-Dec 1997
Jan-Mar 1998
Apr-Jun 1998
Jul-Sep 1998
Oct-Dec 1998
Jan-Mar 1999
Apr-Jun 1999
Jul-Sep 1999
Oct-Dec 1999
Jan-Mar 2000
Apr-Jun 2000
Jul-Sep 2000
Oct-Dec 2000
Jan-Mar 2001
Apr-Jun 2001
Jul-Sep 2001
Oct-Dec 2001
Jan-Mar 2002
Apr-Jun 2002
Jul-Sep 2002
Oct-Dec 2002
Jan-Mar 2003
Apr-Jun 2003
Jul-Sep 2003
Oct-Dec 2003
Jan-Mar 2004
Apr-Jun 2004
Jul-Sep 2004
Oct-Dec 2004
Jan-Mar 2005
Apr-Jun 2005
Jul-Sep 2005
Oct-Dec 2005
Jan-Mar 2006
Apr-Jun 2006
Jul-Sep 2006
Oct-Dec 2006
Jan-Mar 2007
Apr-Jun 2007
Jul-Sep 2007
Oct-Dec 2007
Jan-Mar 2008
Apr-Jun 2008

Recent Updates (newest-to-oldest)

27 Mar 2008 - Renderer creation and code reclamation

Game Progress I'm working on optimizing the "Get Ready" screen before each level. To get it running full speed I have written two new renderers for the sprite lib. One is a clear renderer that erases the screen and then adds stars. This will be used for the background and remove the need to draw 90 separate single-pixel sprites for the stars. The other is a dedicated box renderer so that boxes no longer need to be drawn using sprites.

I got the clear renderer mostly working and it shaved off almost 30ms per frame (used to be 75ms, now is around 45ms). The cool thing is I can go back and add this renderer to Decaying Orbit so that it no longer has static backgrounds. Huzzah!

The box renderer isn't debugged yet, but should provide a similar speed boost I would think.

Most recently, however, I dived back into the sprite library source. I want a couple small features and have hit the code size limit. The assembly has to fit in 4kB because that is the amount of iram on each MPE. I was pretty much hitting the limit, but now after some investigations I have reduced it somewhat. I shaved off about 100 bytes. This may not seem like much, but it provides more than enough room to do what I want.

One of my goals with the code reduction is to add performance monitoring as a permanent feature. In the past I could optionally include it using ifdefs. However, due to the code size hitting the limit I was no longer able to include it. Now that I've reclaimed some space I want to put it back permanently so that I can use it to tune the sprite library.

19 Mar 2008 - So far so good

Game Progress I have the title screen for Robot Ron running at full speed now. Well, technically the render time per frame oscillates above and below 20 ms so I may do a spot more of optimization to get it at a consistent 50 fps.

The next part is the "Get Ready" screen before each level. It is dog slow due two main things. First, the star background is drawn as single-pixel lines. Thankfully I added point plotting for Decaying Orbit and can easily reuse that here. The more difficult issues are the large rectangles. I pointed them out at about 1:56 of the Robot Ron video blog post. Writing a special case renderer that handles boxes will speed things up a bunch.

Is anyone interested in playing around with this? I could post a version that you can burn to a CD and try yourself.

Edit: I also added a link to the authentication tools to the left nav bar.

7 Mar 2008 - Case resolution

Even though I aborted my attempt to put the NUON dev system in an Atari 2600 shell I still wanted to move it out of the big honking ATX housing that it was in.

Given that the dev system motherboard is designed to align with ATX screw holes I figured a Micro ATX case might do the job nicely. It's surprisingly difficult to find desktop uATX cases, but I did end up locating a few options. I went with this one. Mostly because I like how the front cover flap could hide the DVD drive when not in use (which is like 100% of the time).

The bad part is that after getting it I found that the 5 1/4" bay is just a hair too short to fit the dev system's DVD drive. I'm talking another 1/8 inch and it would fit. I went so far as to remove plastic from the drive in an effort to make it fit. In the end I left it out, but I may try to mount it later by removing the bay housing and mounting the drive directly to the case.

The power button on the front of the case is wired to the reset on the dev system, which is handy for when my laptop loses connection. I don't know why it happens, but haven't found a way to get it working again without a hard reboot. Thankfully it doesn't happen too often.

I used the Mini-ITX power supply because the one that came with the case was too loud.

The only other thing I wish I could do is relocate the controller ports to the front - maybe even where the USB front panel connectors currently reside. Normally I don't need to plug/unplug controllers, but the last couple weeks I've been testing all of the ones that Riff's dad sent and it's quite a pain to need access to the back. The problem with moving the ports is that the NUON controller connector is proprietary and so finding a new set would be hard. One option is to remove the ones already on the dev system board, but I hesitate to go down that road. Another is to cannibalize a NUON DVD player to reclaim the ports, but that seems a waste. I'll probably just live with them where they are.

I'll post some pics when I get it all done.



This web page and all other pages on this site are © 1999-2007 Scott Cartier