Last Ninja 2 Browser: Frame editor coming along nicely

This video is about the frame editor of my LN2 Sprite/Frame/Animation Browser:


The interesting thing about this is that I am using a simplified version of the tool to create my own animation for the C64. I can’t reveal the details of the subject, but I can say that it will be about one of the most wanted characters on the Commodore 64!

Posted in Retrocomputing, Technical | Tagged , , , | Leave a comment

Last Ninja 2 Sprite/Frame/Animation Browser: sprite saving ready

After changing my LN2 sprite/frame/animation browser to remove duplicate sprites I added an option to save the resulting sprite catalogue:

LN2 sprite/frame/animation browser: save sprites

LN2 sprite/frame/animation browser: save sprites

The interesting bit of code here is the data packer, which is used to compress sprite bitmap to save RAM on the C64. Oddly enough by opening the original data and saving it, I noticed my file was 3 bytes shorter. I started comparing the original packed data and the one saved through my tool: it appears a few sprites were compressed in a non-optimal way when compared to the rest of the data. In my case all the data is compressed optimally with the escape range used in LN2.
At some point I might add the code to brute-force the optimal escape range too, which might save a few more bytes, assuming that the original escape range used in LN2 is not already optimal :)

Posted in Retrocomputing, Technical | Tagged , , , , , | Leave a comment

Last Ninja 2 Sprite/Frame/Animation Browser: clean-up ready

I had some time this morning to finish the first editing feature I had planned for my LN2 sprite/frame/animation browser: deleting duplicate sprites.

Editing code merged to main project stream!

Editing code merged into main project stream!

LN2 sprite/frame/animation browser: remove duplicates

LN2 sprite/frame/animation browser: remove duplicates

LN2 sprite/frame/animation browser: remove duplicates

LN2 sprite/frame/animation browser: remove duplicates

The idea is that once a sprite is deleted, all subsequent indexes shift by one position so all references in frame data need adjusting too.

The next editing feature I feel like adding is about the ability to move each individual sprite around in a frame, using the mouse of course.

Posted in Retrocomputing, Technical | Tagged , , , , | Leave a comment

Last Ninja 2: working with sprites again

Over the course of yesterday and today I made a few changes to the sprite/frame/animation browser for LN2. The idea is to introduce a number of editing and clean-up capabilities to this tool. For a start, I can now look up all references to a sprite:

LN2 sprite/frame/animation browser: reference lookup

LN2 sprite/frame/animation browser: reference lookup

LN2 sprite/frame/animation browser: reference lookup

LN2 sprite/frame/animation browser: reference lookup

LN2 sprite/frame/animation browser: reference verification

LN2 sprite/frame/animation browser: reference verification

The idea is that if a sprite is not referenced in any frame, it will be possible to delete it for some clean-up and memory saving. The other change I made allows me to look for duplicates:

LN2 sprite/frame/animation browser: duplicate lookup

LN2 sprite/frame/animation browser: duplicate lookup

LN2 sprite/frame/animation browser: duplicate lookup

LN2 sprite/frame/animation browser: duplicate lookup

The idea is that duplicates can be removed so that only one of the identical sprites is used in all cases: again this will enable clean-up and memory saving. There’s also a more subtle duplication that will almost surely require manual intervention and that’s for those sprites that are identical but for a translation, in which case only one can be used with the caveat of translating it where it was not originally used. The subsequent step is to do a similar thing for frames, so that these can be cleaned up too. I am not too sure how much time I will be able to dedicate to these changes, but that’s something I am finding enjoyable :)

Memory savings might allow me to e.g. put back in the sprites/frames/animation for Armakuni to kneel at temples, which is something that was not present in LN2!

Posted in Retrocomputing, Technical | Tagged , , , , , | Leave a comment

Last Ninja 2 C64: changing the responsiveness of enemies

I thought I’d publish a single little POKE for the C64 version of LN2 in order to affect enemies at level 1:

POKE 41926,S

where S is the slowness with which they react to Armakuni’s movements. The default is 4 so for an appreciably easier life you can set S to 9, or if you really want enemies rather slow to react to changes you can push it to e.g. 20.

The only thing to bear in mind is that the less reactive they get, the easier it will be for Armakuni to perform an evasive action, however enemies will use shurikens a lot more if Armakuni flees all the time: in other words, keep them close while you fool them :)

Posted in Retrocomputing, Technical | Tagged , , , | Leave a comment

USBhost-64 requests

A few more people keep asking about the USBhost-64 project on a regular basis. However, the density of requests does not make me comfortable that whoever requested a device early on is still interested. Obviously I can’t poll their interest on a monthly, or so, basis either.
At this rate, it’s not likely I will ever get the device manufactured and distributed. I would not be able to allocate the time in order to sell large batches over a medium-long term: I’d be looking for a fast turnover, and open sourcing the code should do the rest. Unfortunately people are looking for low prices so I am unable to get to a critical volume of orders quickly enough to make everybody happy at the same time.

If anybody were interested in acquiring the rights to further develop this project and/or embed it in their product offering then I’d be available to discuss.

Posted in Retrocomputing, Technical | Tagged , | 2 Comments

VirtualBox Guest Additions under Debian 7 (wheezy) on 32-bit systems

Today I was trying to get the Guest Additions service to start properly in my Virtual Box VMs running 32-bit versions of Debian 7 (wheezy). In fact I was getting the following error message at start-up:

Starting VirtualBox AdditionsVboxService: error: VbglR3Init failed with rc=VERR_FILE_NOT_FOUND

What fixed the issue for me was quite simple. I tried to run:

/usr/lib/dkms/dkms_autoinstaller start

However, it prompted me to install Linux headers first, which I did. As part of the post-install process I noticed that dkms changes were being made. After logging out and back in, I noticed that window resizing was now causing the guest desktop to resize accordingly and after a reboot I saw the above error did not show up any longer.

Posted in Technical | Tagged | Leave a comment