Posted By
MMS on 2016-10-10 15:22:03
| Re: Back in the day...
Hi, back in the day I was a teen, and was really amazed by Pigmy's work on converted games. I made with him some chat (via snail mail) and got some technical insight, although I am not able to replicate them in real life, here it is: (If you check te SVS Ultimate map, you will find some direct references to C64 registers, memory maps, etc)
-The char and GFX modes are pretty similar on the two machines, especially hires. (in multi modes there are extra limitations on +4,need special attention or manual settings). In such modes only the addresses, color codes, charsets and the register modification settings needed to be converted/changed in the programs torun on +4. The main routines, the UI, the AI, all can work and run the same way, if they fit too the proper address TED does not use. If I remember well, the zero page requried special attention, maybe Plus/4 has less space, while ob C64 they use it very actively due to extra speed.
These are how the text adventures and the simplier gfx adventures converted by Pigmy. (Hobbit, Hulk, Eric the viking, etc). I liked them all. If there was no sprite cursor, music or animation, it was easily converted by him. Certainly, you need a certain level of experience and knowledge to do that, but he mentioned a specific game (maybe Spiderman?) he converted only in 4 hours + small finetunings) It is a kind of impressive, right? I think he was 15 or 16 at that time. What a genius.
-When you have one sprite cursor, and a fully GFX GUI (Tass Times, etc) then he realized a software sprite in a resident driver, continuously storing the original background, then put with XOR the sprite bitmap (should use background and Color3 in multi, these do not cause color bleeding) then when move it, then XOR it again (=remove it) and store the next position background GFX, then XOR it again, etc. Reading out the position is done by the original SW, he just need to use the original addresses for positioining. On +4 there is no mouse, just joystick control. It is very raster time eating process, and together with SID emulation (even if it is only FRQ convertion) it brings the Plussy to it'slimits.
Certainly it did not work on character modes, as the XORing only works with bitmap. You can replicate this multicolor software sprite in BASIC3.5 with GSHAPE and SSHAPE commands. Expacially color3 is useful, if you do not want to do a screen with fully inverted way (I mean background color is then not used as bacground,but as a drawing color and the bacground is in fact filled with color1 and color2 thingies).
In BASIC is is damn slow, but I was able to move around a "soft spitre" pointer on a Multicolor bitmap without any color bleeding or loss of background information. Maybe with Compilers it would be much faster, but Austrospeed does not compile the GFX commands (as far as I know) and +4Comp still fails in all the way it can.
You may check Magicians Curse, it is a very nice and fast software sprite emulation. Only the first was made properly, the later amateur changes did not understand the reverse logic behind how SW sprite works on Plussy.
-3D HIRES and Multi games (Head Over Heels, Driller, Elite, etc) required the least effort, though the software sprite in the later certainly caused challenges (also the fixed 3rd color on plussy makes some interesting results). But in black and white mode it was rather easy to implement (?).
-Spectrum games maybe the most straightforward, unfortunetely they are made in a different assembly dialect
-Fast animations, simulation of multiple C64 sprites (?) exceeds my knowledge. Sprite simulation in hires modes without color bleeding: I think it is impossible.
Sorry if I did any mistake in the above descriptions, there are guys who know MUCH better these things, not to mention that some of them even PRACTICE it too They will correct me, and PLEASE do it.
Also, I have to mention, that the general knowledge on these tricks/magics became well known and widely used by the more expert programmers here (Csabo, Luca, Skoro, KICHY, gerliczer, MAD, TLC, etc). I mean almost anyone else than me :-)
|