November 22, 2024, 04:08:12 PM

Demo PACMAN on OLIMEX SAM3-P256 board

Started by Digimorf, December 06, 2012, 08:51:28 PM

Previous topic - Next topic

Digimorf

Hi to everybody,
I have recently started to develop a demo game for the ARM Cortex M3.

I have chosen a SAM3-P256 board to build the video game because its prototype area is very useful to put all the components I need for video/audio generation and the interface of the controller.

This project involves the design of a simple VGA video driver that embeds a tile and sprite engine. Sound generation, IO reading from a common ATARI joystick and a lot of programming in C/C++.

My Goal is to practice the ARM Cortex M3 programming by writing a demo PACMAN using only C/C++ ad not inline assembler.  8)

This is the link to the video of the actual version of the demo:
https://www.youtube.com/watch?v=t61p9oB8IuI

I hope you will enjoy it!

olimex


Digimorf

Thank you very much. :)
Soon some more information about this demo.

Digimorf

Here it is another update.
Now the demo Pacman is fully playable.

http://youtu.be/qejeZYZenOs

These are the basic features:

- 5 levels of difficulty where ghosts become more aggressive.
  Their AI increases with the number of the level the time of CHASE.

- Extra bonuses at
  4 ghost eaten after an energy pill is eaten.
  If the player dies or another pill is eaten the ghost count resets.

- Extra life at
  5000 pt.

- Score table
  Dot = 10 pt.
  Energy pill = 100 pt.
  Ghost = 50 pt.
  All 4 ghosts   = 500 pt.
  Bonus   = ( 1000 * level number ) pt.

The game ends when the player runs out of lives or it reach the last level of difficulty. Soon I will build a dual channel tone generator with a pitch shifter and an envelope generator to play a basic music and some sound effects.

Hope you will enjoy the video!

olimex

this is amazing, are you going to blog this project somewhere and to release the code?

Digimorf

Thank you very much.
I'm not sure what I will do at the end of this project. The work behind blogging this project is really interesting but it can be a huge work. Actually the code is long, and there are several things to write about such as the VGA driver, the sprites and tiles engine, the AI etc...
I need to thin about it.
There is still some work to do, then I will see :)