0 Members and 6 Guests are viewing this topic.
I think you didn't quite have enough RAM free; if the program file & the data file are both located in Archive mem, you need about 22KB of free RAM. This includes the program file being copied to RAM, the data file being copied to RAM, plus 3.2KB for decompression of the levels. So you want to avoid having unneccessary files in RAM, such as the Ion install files, etc.I'd say maybe that's why it worked on the 83+, perhaps you had a little more free RAM?Glad you got it working somehow though
I've been working on an update for AB5, which I hope to have out soon. The update will have the following improvements:Flash app version available for TI-83+/84+ calculators.New enemy AI.Levels automatically start loading during view of mission objectives to save time.Miscellaneous bits of code optimisation.Enemies are no longer deactivated as soon as they are off screen - they now stay active within a certain distance of the screen edge.Here's a short screenshot, which shows the new flash app version loading, and how levels automatically start loading during the mission objectives.
Also have you considered moving levels into appvars so that they don't fill up the program list ?
Nice.BTW I'm feeling that the scrolling is much too slow, this eventually gets boring hence I don't play this game too much though it's awesome.
Quote from: Streetwalker on April 28, 2013, 12:26:56 pmNice.BTW I'm feeling that the scrolling is much too slow, this eventually gets boring hence I don't play this game too much though it's awesome. Thanks for the feedback! I'll add this to my to-do list and see what I can do
Also multi buffering is a good idea instead of redrawing every frame. There are efficient ways of scrolling without redrawing the whole screen.
Hey, James, I think that your ABIV game was awesome! One idea though: can the sprite for the main character be changed? I gave the program to some of the kids at school, and, no offense, but for the longest time, they thought the avatar was a giant butt. I am not joking. I think that the Omnimaga community should try to create a better sprite...
Currently the screen is buffered. The background is only drawn once (when the level is first loaded). This is saved to the video buffer. Then the sprites are drawn on top of that and the result is copied to the lcd. After that, the buffer is restored (the background with no sprites over the top). The next frame, if the player has moved towards a screen edge, the background is scrolled 1 pixel and saved to the buffer again, before drawing the sprites. So the background isn't being fully re-rendered each frame.The scrolling itself is actually quite fast. What's slow is the drawing of the sprites, as they are all masked and also clipped if they hang off the screen. Because of this, the game runs substantially faster when there is just the player sprite on screen, but then slows down noticably when more enemies, bullets & animations are all on screen at once. To combat this speed change, the game is currently throttled back so that it runs at a maximum frame rate of around 29fps (according to WabbitEmu). That way, the speed reduction is less when there are lots of enemies, bullets & animations to draw (I'll have to do some testing when I get a chance to get exact figures on the speed changes).EDIT: I just ran a few quick tests. If I run the game at full speed unthrottled with only the player sprite on screen, it scrolls on average at 35fps. With 8 extra sprites are on screen, it averages at 24fps. With 12 extra sprites on screen, it averages at 18fps.I intend to look at writing a faster sprite routine for enemies, bullets & animations that only handle clipping, but not masking. Those particular sprites don't really have any need for masking, and a routine that ignores masking should (in theory) operate at about twice the speed. Hopefully this allows me to release the throttle a bit and increase the frame rate without the game speeding up & slowing down too much when it has more sprites to draw.EDIT: Based on the above tests, the game can run 20% faster when there are no sprites on screen. I'll be trying unmasked sprites to see if this decreases the speed reduction factor when there are many sprites on screen at once.