What's possible?

All aspects of programming on the Commander X16.
Ed Minchau
Posts: 508
Joined: Sat Jul 11, 2020 3:30 pm

What's possible?

Post by Ed Minchau »


After seeing what some other people have done, and after writing most of a game engine myself, I'm very encouraged by what's possible with this machine. 

Certainly any program that ran on an 8 bit machine in the 1980s is doable. But more is possible. I think any 80s video game is possible,  even stuff that ran on 16 bit machines. Dragon's Lair wouldn't be a problem at all.

Sonic, Mario, other side-scrollers, no problem. 

A first person shooter is definitely possible, as @Jeffrey showed with his Wolf 3D experiment. Doom is doable.  We might even be able to do something like Mechwarrior 2 or 3. Halo?

I'd like to see a port of Diablo or an Age Of Empires type of orthogonal perspective view. Something like SimCity or Farmville should be possible in the same sort of perspective view.

So this all requires tool sets. Game engines, sprite and palette and tile editors. Text editor, music, sound effect libraries... lots of tools. Should we be looking at making some sort of common game engine, and libraries that hook into it?

ZeroByte
Posts: 714
Joined: Wed Feb 10, 2021 2:40 pm

What's possible?

Post by ZeroByte »


I think Dragon's Lair is a stretch, as I just don't think the bandwidth exists for FMV on real HW, or at least without some really good encoding schemes for low-entropy video.

Also, The Wolf3d demo was making the 65c02 give its all to deliver ~12FPS with nothing to do but render. Clearly, it can be optimized more to make room for the game itself to also run at the same time, and FPS is doable, but I think fully 3d experiences like Quake/Halo are a stretch as well.

Now, Diablo would probably be quite doable indeed.

One elephant in the room is the bitbanging IO devices, especially PS/2 and KBD, and to a lesser extent, the Joysticks. I don't know if you've done any kind of profiling tricks to see how much raster time is chewed up by the Kernal whenever there's a key pressed, but it's EXTREMELY taxing of CPU, and for just sitting there in a wait state. The easiest way to see this is to use Box16's CPU Profiling overlay. Set the color mode to CPU command, and the highlight mode to "IRQ" and start pressing a bunch of keys. Watch the CPU spikes when you hit 2 or 3 rapidly together... it makes something like > 10% CPU time spent just doing that PS/2 read.

BruceMcF
Posts: 1336
Joined: Fri Jul 03, 2020 4:27 am

What's possible?

Post by BruceMcF »



On 10/19/2021 at 11:57 AM, ZeroByte said:




...

One elephant in the room is the bitbanging IO devices, especially PS/2 and KBD, and to a lesser extent, the Joysticks. I don't know if you've done any kind of profiling tricks to see how much raster time is chewed up by the Kernal whenever there's a key pressed, but it's EXTREMELY taxing of CPU, and for just sitting there in a wait state. The easiest way to see this is to use Box16's CPU Profiling overlay. Set the color mode to CPU command, and the highlight mode to "IRQ" and start pressing a bunch of keys. Watch the CPU spikes when you hit 2 or 3 rapidly together... it makes something like > 10% CPU time spent just doing that PS/2 read.



Sounds like some games may be gamepad only ... bit banging SNES gamepads should be substantially lower overhead than bit banging the PS/2.

Ed Minchau
Posts: 508
Joined: Sat Jul 11, 2020 3:30 pm

What's possible?

Post by Ed Minchau »


Dragon's Lair might seem like a lot, but it mostly isn't full motion video; most of the time it is a static background, the stuff moving in the foreground is usually only a couple of things, like Dirk and the Lizard King. The moving stuff could be sprites, so it's only a background image and then a couple kb per frame.  I've actually seen a version of Dragon's Lair for the VIC-20.

 

The wolf 3d could be made a lot faster by casting fewer rays and interpolation between rays when it can. I figure nearly 7/8 of the rays could be interpolated rather than cast.

There's definitely room for improvement on the input side.

ZeroByte
Posts: 714
Joined: Wed Feb 10, 2021 2:40 pm

What's possible?

Post by ZeroByte »


Oaky, so if we're expaning into the realm of "similar, but not exactly the same" experiences, then yeah, a lot more is possible. ?


On 10/19/2021 at 12:17 PM, Ed Minchau said:




The wolf 3d could be made a lot faster by casting fewer rays and interpolation between rays when it can. I figure nearly 7/8 of the rays could be interpolated rather than cast.



There's definitely room for improvement on the input side.



I remember your contributions to that thread. I'm interested to see what kind of performance would be possible.

I'm also willing to donate my "plays native iD music" routine to add to the demo if @Jeffrey decides to take it any further. (current version requires a huge LUT to convert the freqs, but there may be a better way to compute it on the fly w/o too much overhead)

rje
Posts: 1263
Joined: Mon Apr 27, 2020 10:00 pm
Location: Dallas Area

What's possible?

Post by rje »



On 10/19/2021 at 12:01 AM, Ed Minchau said:




I'd like to see a port of Diablo or an Age Of Empires type of orthogonal perspective view. Something like SimCity or Farmville should be possible in the same sort of perspective view.



So this all requires tool sets. Game engines, sprite and palette and tile editors. Text editor, music, sound effect libraries... lots of tools. Should we be looking at making some sort of common game engine, and libraries that hook into it?



I'm wanting my Pirate Kingdoms thing to be some unholy cross between 7 Cities of Gold, Anno 1602, Civilization, and Pirates.  But, I've been using a top-down view rather than a perspective view.  I figure that it's going to be a challenge just to finish.

I can always rewrite the view code once the thing actually works.  Or someone can show me how to do perspective.

**

A sound envelope engine would be a welcome addition.

I tried out the Sprite Editor in the Downloads section, and I think it is only missing a native binary file load-and-save feature.

And we have PETDRAW.

 

rje
Posts: 1263
Joined: Mon Apr 27, 2020 10:00 pm
Location: Dallas Area

What's possible?

Post by rje »



On 10/19/2021 at 10:57 AM, ZeroByte said:




Now, Diablo would probably be quite doable indeed.



How about a Diablo-type engine, then?  That would make a decent interface for an Ultima-like game and map.

paulscottrobson
Posts: 305
Joined: Tue Sep 22, 2020 6:43 pm

What's possible?

Post by paulscottrobson »



On 10/19/2021 at 6:01 AM, Ed Minchau said:




After seeing what some other people have done, and after writing most of a game engine myself, I'm very encouraged by what's possible with this machine. 



Certainly any program that ran on an 8 bit machine in the 1980s is doable. But more is possible. I think any 80s video game is possible,  even stuff that ran on 16 bit machines. Dragon's Lair wouldn't be a problem at all.



Any vector game would be difficult ; any game with horizontally or vertically scrolling segments (say Frogger) would be interesting to code for. Anything which makes heavy use of the bitmap mode. Much of the speed benefit is lost because much of the data is 16 bit.

Ed Minchau
Posts: 508
Joined: Sat Jul 11, 2020 3:30 pm

What's possible?

Post by Ed Minchau »



On 10/20/2021 at 11:10 AM, rje said:




 



I can always rewrite the view code once the thing actually works.  Or someone can show me how to do perspective.



 



 



javidx9 does a little math:

https://youtu.be/ukkbNKTgf5U

AdamCYounis making isometric art:

https://www.youtube.com/watch?v=OqwQBWEzcxU

 

paulscottrobson
Posts: 305
Joined: Tue Sep 22, 2020 6:43 pm

What's possible?

Post by paulscottrobson »


Interesting. Could the X16 do Ant Attack , I wonder.

(It could probably do anything if you scale the display up enough but then you might as well do it on a ZX81)

Post Reply