PoP Development
I have been dropping hints for some time about a new Supercharger project that I have been working on. However, I am now finally ready to reveal some details about this project. The main reason for the delay was that I had some difficulties getting my head around the oddities of the Supercharger. On reflection it doesn't appear too complex now, but the lack of clear documentation (now fixed thanks to Eric), and the way you have to read memory to write caused me some big headaches. I ended up rewriting the code several times over to get around the various problems I faced. The project is an attempt to produce something for the Stella Programming Contest. It is a joint project between myself and jussts, where I will take on the coding and he will produce the graphics. The project can also be seen as a continuation of this long running thread. If you haven't already guessed, the basic idea is to produce a Supercharger version of the first Prince of Persia (PoP) game. This has been one of my long-standing favourite games, and judging by the comments on the forum, many other people have fond memories of it also. Obviously, some relatively severe compromises will have to be made to produce a 2600 version, but that is what I hope to do. I can't promise to finish the project as it is clearly a very big undertaking, and my time is limited by other demands. However, I am hoping to move things forward from where the project stalled before. I think one of the main problems was that there was nobody to do the graphics, but this should not be an issue now.In my opinion, the game is ideal for a multi-load supercharger game. The multi-load feature will allow the different levels to be loaded on-demand, and the extra memory means that we will be much less restricted (over a regular 2600 version). I was originally intending to take the kernel that Thomas Jentzsch wrote and modify it for the Supercharger. However, I eventually rewote the kernel from scratch as too many things had changed. I also devised a new way of representing the screens which is very similar to the technique used in Hunchy 2 (thanks to supercat). The source code and binary should be attached to the top of this entry. The binary (pop.bin) can be run in either Stella or Z26 - I haven't tested it on a real Supercharger yet. As usual for a project at such an early stage, the source code is in a bit of a mess, and is likely to contain many bugs. I have encoded all of the screens from the first level of the game in this demo. If you walk off the edge of the screen, you will be taken to the next screen. Here are a few notes about the demo in no particular order:
- There are 22 screens in total, and most elements of the original game are represented (apart from the palace guards).
- The kernel has code for displaying the sword, but it hasn't been tested yet.
- Some of the prince sprites will be wider than 8 pixels. To overcome this problem, a missile sprite is drawn next to the player, which should permit a few extra pixels width. However, this is also not used in the current version.
- There are still some spare cycles in the kernel. I would like to put a missile sprite next to the P1 sprite, but I haven't managed this yet.
- The texture on the walls is generated by using a bit of self-modifying code. Looking at the kernel now, it might have been possible to do this another way, but it is a Supercharger project!
Anyway, I how that you enjoy the demo! There is still a great deal of work to do, but I have to start somewhere. Any suggestions for improvements and feedback will be most welcome.Chris
13 Comments
Recommended Comments