Tornado2000 in the browser (ATMega644 / Uzebox emulation)

Go To Last Post
11 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I put a link to the Uzebox emulator in another thread.  In that thread I said that the browser/online emulator could not cope with Tornado2000. This is because of the large data file.

 

Apparently you can use a local copy of the datafile to see what Torando2000 is all about.

 

Download this file
https://drive.google.com/open?id...

 

Download this file and unzip it to the same location as the Uze file above

https://drive.google.com/open?id...

 

Go to this web page

https://nicksen782.net/UAM5/emu.php

 

Click the button that says "Import files" and select both the files in your OS file chooser.

The two files will appear in a file list on the left hand side of the screen.

Click the button that says "Play" next to the file called VectorDemo_20150617.uze

 

If you have not seen an earlier thread where I outlined Tornado2000 here is a quick overview.

 

It is a 8 bit de-make of the 64 bit Atari Jaguar game Tempest2000 which itself was a remake of an 8 bit arcade game with a colour vector monitor called Tempest.

 

The hardware it runs on is a Uzebox.

 

The Uzebox is an ATMega644 overclocked to 28Mhz (8x colour burst for video quality) that bit bangs out an NTSC TV Picture.  It was created 10+ years ago by guy named Alec Bourque.

 

The emulator in the browser there was made by many clever people on the Uzebox Forum.  It fully emulates an AVR8 core and most of the AVR peripherals as well as emulating an SD card sitting on the SPI bus.  It counts AVR CPU cycles between "OUT PORTC" instructions to reconstruct what an NTSC television would display and takes the PWM from Timer0 and reconstructs audio out the PC sound system.

 

The video mode that Tornado2000 uses is what I think is the most insane bit banged video on an AVR CPU done by anyone so far.  It is 256x224 pixels at 2.1Bpp (5 colours) and 5 clocks per pixel.  That is every five CPU clocks the AVR has to decide on the colour of the next pixel with 2 bits of colour info coming from internal RAM and 1 bit of the colour info being streamed of the SD card.

 

I was responsible for the video mode and the game logic and graphics.  Two other guys on the Uzebox forum ported/developed the Audio for me as I don't know how to do that stuff.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

andrewm1973 wrote:
which itself was a remake of an 8 bit arcade game with a colour vector monitor called Tempest.
Holy shit.

 

Foiled:

 

What did I do wrong?

 

EDIT:  Hmmm... I seem to have got it working... but I don't know how really.  However, I can't figure out what the fire button is.

EDIT:  Ah... it's 'S'.  Did I miss anything else?

"Experience is what enables you to recognise a mistake the second time you make it."

"Good judgement comes from experience.  Experience comes from bad judgement."

"Wisdom is always wont to arrive late, and to be a little approximate on first possession."

"When you hear hoofbeats, think horses, not unicorns."

"Fast.  Cheap.  Good.  Pick two."

"We see a lot of arses on handlebars around here." - [J Ekdahl]

 

Last Edited: Tue. Jan 8, 2019 - 08:32 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Left Arrow = Spin clockwise

Right Arrow = Spin Counter Clockwise

S = Shoot

A = SuperZapper (Smart bomb that clears the screen of deadly things)

 

Shoot anything that moves.

 

Green Spinny dotty tubes that come down the tunnel towards you are power ups.

 

The top text line of the display tells you what a power up you got was.

 

Like Tempest2000 the power up order is

 

Particle Laser = More firepower
Zappo 2000     = 2000 points
Jump           = Allows you to jump over emenies on the rim (Arrow Down)
Zappo 2000     = 2000 points
A.I. Droid     = No Player Character that helps you kill aliens
Zappo 2000     = 2000 points
Warp           = Skip level
Bonus Token    = Extra Life
Zappo 2000     = 2000 points
 

If you collect a power up as you exit a web your next power up will be AI Droid no matter what.

 

Level one your only enemy is neutered flippers that can't flip.

Level two the flippers can flip

Level three adds tankers

Then every 2 levels after that the following aliens get added in order

 

Spiker, Fuseball, Pulsar, Mirror, Mutant Flipper, Demon Head

 

There are no bonus levels like Tempest2000.  Maybe one day I will add them.  My next planned improvement is to optimize the Uzebox sound engine a bit to fit an extra sound channel.  At present it has 3 wave, 1 noise, 1 PCM.  You loose some music when sound effects happen as there are not enough audio channels for that.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

It is an impressive achievement.  I was never any good at Tempest, but I was drawn to it anyway.

 

It's unlikely I'll get any better at it at my age, and the emulator strains to run on my machine, pegging two cores.  Still, impressive.

"Experience is what enables you to recognise a mistake the second time you make it."

"Good judgement comes from experience.  Experience comes from bad judgement."

"Wisdom is always wont to arrive late, and to be a little approximate on first possession."

"When you hear hoofbeats, think horses, not unicorns."

"Fast.  Cheap.  Good.  Pick two."

"We see a lot of arses on handlebars around here." - [J Ekdahl]

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

joeymorin wrote:

I was never any good at Tempest, but I was drawn to it anyway.

 

Same here.

 

--Mike

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thanks for compliment.

 

My next game is probably not going to be any easier for you.  I am using the RLE video mode I developed for porting [Super]Hexagon

 

https://terrycavanaghgames.com/h...

 

If you felt Tempest was hard - that ones not going to be fun at all.

 

I am open to suggestions for what I should try port to the Uzebox after that though.  I don't know if anything will ever top the insane video mode of T2K but I am willing to give it a try.  Maybe something with giant scaled sprites like Outrun.

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

andrewm1973 wrote:
I am open to suggestions for what I should try port to the Uzebox after that though
Galaga!

 

My Google fu has failed me.  Perhaps it's already been done?

 

Won't be much of a challenge after what you've already accomplished, I expect.

"Experience is what enables you to recognise a mistake the second time you make it."

"Good judgement comes from experience.  Experience comes from bad judgement."

"Wisdom is always wont to arrive late, and to be a little approximate on first possession."

"When you hear hoofbeats, think horses, not unicorns."

"Fast.  Cheap.  Good.  Pick two."

"We see a lot of arses on handlebars around here." - [J Ekdahl]

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

joeymorin wrote:

andrewm1973 wrote:
I am open to suggestions for what I should try port to the Uzebox after that though
Galaga!

 

My Google fu has failed me.  Perhaps it's already been done?

 

Won't be much of a challenge after what you've already accomplished, I expect.

 

Google probably does not help much finding Uzebox games apart from showing this list that has most of them.  You will notice that almost all of them are "tiles and sprites" because mostly that is what is easy to do in 4K of RAM.

 

http://uzebox.org/wiki/Games_and...

 

One of those "G-Force" is a work in progress (maybe abandoned) of something that is Galaga like

 

http://www.nicksen782.net/a_demo...

 

I think if I did a game like that I would probably do Gyruss just to keep my theme of polar playfields going from Tempest and Hexagon.  Reduce the colours down to 4 I think the T2K video mode would be quite capable of Gyruss.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

andrewm1973 wrote:
One of those "G-Force" is a work in progress (maybe abandoned) of something that is Galaga like
It's a horizontal scroller, whereas (the one true) Galaga is a vertical scroller.  Of course, that can be remedied:

http://uzebox.org/forums/viewtopic.php?t=598

 

I was surprised to learn that my favourite old home computer had an awfully decent version of Galaga called Galagon, released in 1984.  It can be played (via any HTML5 capable browser) here:

http://www.haplessgenius.com/mocha/

Listed under 'Cassette'.

 

Needed 32KB RAM, but don't know how much of that could be in flash or SD, should it be used as an example for recreating it in Uzebox.

 

I doubt I will ever try ;-)

"Experience is what enables you to recognise a mistake the second time you make it."

"Good judgement comes from experience.  Experience comes from bad judgement."

"Wisdom is always wont to arrive late, and to be a little approximate on first possession."

"When you hear hoofbeats, think horses, not unicorns."

"Fast.  Cheap.  Good.  Pick two."

"We see a lot of arses on handlebars around here." - [J Ekdahl]

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

joeymorin wrote:

I was surprised to learn that my favourite old home computer had an awfully decent version of Galaga called Galagon, released in 1984.  It can be played (via any HTML5 capable browser) here:

http://www.haplessgenius.com/mocha/

Listed under 'Cassette'.

 

Needed 32KB RAM, but don't know how much of that could be in flash or SD, should it be used as an example for recreating it in Uzebox.

 

I doubt I will ever try ;-)

 

CoCo would have been 128x192 a 2BPP i would guess.

 

No modes on the Uzebox are quite that low in resolution, but there are 2 fast/usefull 2Bpp modes.  Mode 52 and the mode I did for T2K.  The other candidate would be mode 72 which is 192 pixels wide at 4Bpp.  You can see most of the video modes here.

 

http://uzebox.org/wiki/Experimen...

http://uzebox.org/wiki/Video_Modes

 

If you really DO want to have a go at writing Galaga/Galagon for the Uzebox I can lend a hand.

 

If you make it as far as setting up a Dev environment (eclipse/gcc/emulator) and can compile some of your own test code, I will send you some Uzebox hardware to play with.

 

https://www.kickstarter.com/proj...

 

Assuming you are somewhere in the world Auspost can send too.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

andrewm1973 wrote:
CoCo would have been 128x192 a 2BPP i would guess.
256x192 1BPP, but because of artifacting inherent in colour NTSC signals, the effect was as you say 128x192 2BPP, but with no control over how the colours were mapped.  It would either be:

 

Bits Colour
00 Black
01 Red
10 Blue
11 White

 

... or:

 

Bits Colour
00 Black
01 Blue
10 Red
11 White

 

Apple II did the same thing.  On the CoCo the video controller (MC6847) could power up synced to either the falling edge or the rising edge of the system clock, so the artifacted colour mapping would change randomly every time you powered up or reset the machine.  For this reason, most games using this mode started up with a solid red (or blue) screen and a message that said 'PRESS RESET UNTIL THIS SCREEN IS BLUE, THEN PRESS ENTER' in order to control the colour mapping for the game.

 

andrewm1973 wrote:
If you really DO want to have a go at writing Galaga/Galagon for the Uzebox I can lend a hand. If you make it as far as setting up a Dev environment (eclipse/gcc/emulator) and can compile some of your own test code, I will send you some Uzebox hardware to play with.
That's a very kind offer.  I think realistically it's unlikely I will have any serious time to devote to it.  More importantly, I would almost certainly be way over my head in any such attempt.

 

But I will keep this thread bookmarked :-)

 

 

"Experience is what enables you to recognise a mistake the second time you make it."

"Good judgement comes from experience.  Experience comes from bad judgement."

"Wisdom is always wont to arrive late, and to be a little approximate on first possession."

"When you hear hoofbeats, think horses, not unicorns."

"Fast.  Cheap.  Good.  Pick two."

"We see a lot of arses on handlebars around here." - [J Ekdahl]