Powermanga est un jeu vidéo de type shoot them up développé par la société TLK Games. Le jeu était un partagiciel développé en langage C et en assembleur Intel sous MS-DOS finalisé sous Windows 95 et DirectX. Un portage des sources Windows sous Linux a débuté en août 1998 et une version sous GNU GPL version 2 fut diffusée sous Linux en novembre 2000.
Un projet Powermanga sur SourceForge existe depuis le 12 février 2001. Et les sources sont versionnées sur un dépôt Subversion depuis 2012. Le code source de Powermanga est disponible sous GNU GPL version 3 depuis septembre 2007.
L'installation de quelques logiciels est nécessaire pour compiler Powermaga. Sous Ubuntu 12.04 les paquets suivants doivent être installés :
aptitude install subversion gcc automake libsdl1.2-dev libsdl-mixer1.2-dev colorgcc
Sur Mageia 3
urpmi subversion gcc automake libSDL_mixer-devel
Avec le compte anonyme :
svn checkout svn://svn.code.sf.net/p/powermanga/code/trunk powermanga-code
Ou avec un compte utilisateur enregistré chez SourceForge, par exemple le compte « gurumeditation » :
svn checkout --username=gurumeditation svn+ssh://gurumeditation@svn.code.sf.net/p/powermanga/code/trunk powermanga-code
export CC="colorgcc" cd powermanga ./bootstrap ./configure make # Le ludiciel peut-être lancé directement depuis son répertoire ln -s src/powermanga . ./powermanga
Powermanga est un jeu vidéo utilisant des éléments graphiques appelés sprite.
Les sprites sont sauvegardés sous la forme de fichiers binaires portant l'extension « *.spr » dans le répertoire « graphics ». Ces fichiers binaires « *.spr » qui ne sont absolument pas standards sont dans un format spécifique au logiciel Powermanga.
Il existe deux formats de fichiers. Le premier format que nous appellerons image et le deuxième format que nous appellerons bitmap.
Les deux format contiennent les pixels du sprite, un pixel étant représenté par un octet les sprites sont donc en 256 couleurs. Alors que le format bitmap contient uniquement les pixels du sprite, le format image contient contient quelques informations supplémentaires comme des points et des zones de collision et des positions de canons.
Nom du fichier graphique | Nom du fichier source | Nom de la fonction d'exportation |
---|---|---|
sprites/all_enemies.spr | enemies.c | enemies_extract() |
sprites/all_shots.spr | shots.c | shots_extract() |
sprites/bonus_gems.spr | bonus.c | bonus_extract() |
sprites/energy_gauge_red.spr | energy_gauge.c | energy_gauge_extract() |
sprites/energy_gauge_green.spr | energy_gauge.c | energy_gauge_extract() |
sprites/energy_gauge_blue.spr | energy_gauge.c | energy_gauge_extract() |
sprites/explosion_fragments.spr | explosions.c | explosions_extract() |
sprites/explosions.spr | explosions.c | explosions_extract() |
sprites/extra_guns.spr | extra_gun.c | guns_extract() |
sprites/guardians/guardian_00.spr à sprites/guardians/guardian_13.spr | guardians.c | guardians_extract() |
sprites/meteors/meteor_00.spr à sprites/meteors/meteor_42.spr | meteors_phase.c | meteors_extract() |
sprites/satellite_protections.spr | satellite_protections.c | satellite_extract() |
sprites/spaceships/spaceship_1_frame_0.spr à sprites/spaceships/spaceship_1_frame_4.spr | spaceship.c | spaceship_extract() |
sprites/spaceships/spaceship_2_frame_0.spr à sprites/spaceships/spaceship_2_frame_4.spr | spaceship.c | spaceship_extract() |
sprites/spaceships/spaceship_3_frame_0.spr à sprites/spaceships/spaceship_3_frame_4.spr | spaceship.c | spaceship_extract() |
sprites/spaceships/spaceship_4_frame_0.spr à sprites/spaceships/spaceship_4_frame_4.spr | spaceship.c | spaceship_extract() |
sprites/spaceships/spaceship_5_frame_0.spr à sprites/spaceships/spaceship_5_frame_4.spr | spaceship.c | spaceship_extract() |
sprites/stars/star_little_0.spr à sprites/stars/star_little_7.spr | starfield.c | starfield_extract() |
sprites/stars/star_middle_0.spr à sprites/stars/star_middle_7.spr | starfield.c | starfield_extract() |
sprites/stars/star_big_0.spr à sprites/stars/star_big_7.spr | starfield.c | starfield_extract() |
sprites/stars/star_spaceship_0.spr à sprites/stars/star_spaceship_7.spr | starfield.c | starfield_extract() |
Nom du fichier graphique | Nom du fichier source | Nom de la fonction d'exportation | Taille en pixels |
---|---|---|---|
bitmap/main_menu.spr | menu.c | menu_extract() | 192 x 31 |
bitmap/options_panel_anims.spr | options_panel.c | options_extract() | 28 x 28 |
bitmap/scores_multiplier.spr | options_panel.c | options_extract() | 14 x 8 |
bitmap/tlk_games_logo.spr | inits_game.c | tlk_games_logo_extract() | 82 x 58 (estimation) |
bitmap/fonts/font_big.spr | sprites_string.c | sprites_font_extract() | 16 x 16 (estimation) |
bitmap/fonts/font_game.spr | sprites_string.c | sprites_font_extract() | 32 x 26 (estimation) |
bitmap/fonts/font_score.spr | sprites_string.c | sprites_font_extract() | 16 x 16 |
bitmap/fonts/font_scrolltext.spr | scrolltext.c | scrolltext_extract() | 20 x 21 (estimation) |
Toutes les fonctions de lecture et de décompression des fichiers sprites sont dans le fichier source « images.c ».
Pour extraire les fichiers d'un paquet RPM :
rpm2cpio powermanga-0.93-1.2.x86_64.rpm | cpio -idmv
Debian | Fedora | Mageia | OpenSuse |
---|---|---|---|
/usr/games/powermanga | /usr/bin/powermanga | /usr/games/powermanga | /usr/lib/powermanga/powermanga |
/usr/share/games/powermanga/data | /usr/share/powermanga/data | /usr/share/games/powermanga/data | /usr/lib/powermanga/data |
/usr/share/games/powermanga/graphics | /usr/share/powermanga/graphics | /usr/share/games/powermanga/graphics | /usr/lib/powermanga/graphics |
/usr/share/games/powermanga/sound | /usr/share/powermanga/sound | /usr/share/games/powermanga/sound | /usr/lib/powermanga/sound |
/usr/share/games/powermanga/sounds | /usr/share/powermanga/sounds | /usr/share/games/powermanga/sounds | /usr/lib/powermanga/sound |
/usr/share/games/powermanga/texts | /usr/share/powermanga/texts | /usr/share/games/powermanga/texts | /usr/lib/powermanga/texts |
/usr/share/applications/powermanga.desktop | /usr/share/applications/powermanga.desktop | /usr/share/applications/powermanga.desktop | /usr/share/applications/powermanga.desktop |
/usr/share/pixmaps/powermanga.xpm | - | - | /usr/share/pixmaps/powermanga.png |
/usr/share/menu/powermanga | - | - | - |
/usr/share/man/man6/powermanga.6.gz | /usr/share/man/man6/powermanga.6.gz | /usr/share/man/man6/powermanga.6.xz | /usr/share/man/man6/powermanga.6.gz |