[SMS] CIMMERIAN - a Barbarian tribute
+52
Templeton
tetsuro
Metalik
fanoplusplus64K
maldoror68
drludos
uran
chacs
patbeauf
Oltobaz
StaxX
MacDeath
bfg
Alucardark
airdream
Rétro-SFC
upsilandre
emilealpi
tfdi
Tryphon
grostonton
vincent2105
milodiid
fredolococo
TotOOntHeMooN
will13009
philip
Stef
pckid
kawickboy
65c02
F.L
CPC6128
ShiningBZH
Ricco59_59
theWave
Urbinou
Viriathe
Atlantis
Spirale
Révo
esperluette
vingazole
erikrom2
speedsterharry
Francklin29
nemokantio
Top l'âne
dub
Ataré
drfloyd
ichigobankai
56 participants
Page 15 sur 23
Page 15 sur 23 • 1 ... 9 ... 14, 15, 16 ... 19 ... 23
Re: [SMS] CIMMERIAN - a Barbarian tribute
ah oui le fond scrolle !!!!!
C'est du pixel perfect, c'est du retro 100% maitrisé.
Chapeau
C'est du pixel perfect, c'est du retro 100% maitrisé.
Chapeau
Re: [SMS] CIMMERIAN - a Barbarian tribute
Qh non c'est pas du pixel perfect. C'est beaucoup plus beau que l'original !
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: [SMS] CIMMERIAN - a Barbarian tribute
Tryphon a écrit:Qh non c'est pas du pixel perfect. C'est beaucoup plus beau que l'original !
je ne comparais pas à l'original en disant ça.
C'est un pixel perfect pour cette console, c'est la perfection visuelle.
_______________________________________________________
Re: [SMS] CIMMERIAN - a Barbarian tribute
Pixel perfect c'est quand tu fais un portage en tout point identique à l'original
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: [SMS] CIMMERIAN - a Barbarian tribute
Tryphon a écrit:Pixel perfect c'est quand tu fais un portage en tout point identique à l'original
oui mais moi je disais ca dans le sens que c'est de l'art graphique "perfect" pour la SMS !
_______________________________________________________
Re: [SMS] CIMMERIAN - a Barbarian tribute
Tu as prévu des trucs cachés genre perso comiques alternatifs, ou cheat qui se débloquerait avec le lightgun...?
kawickboy- Interne
- Nombre de messages : 9866
Age : 46
Localisation : Paris / Eu - Le Tréport
Date d'inscription : 30/03/2008
Re: [SMS] CIMMERIAN - a Barbarian tribute
Très beau boulot, le jeu est joli jusqu'au debug mode (et ça, c'est vraiment le genre de détail que j'apprécie). Chapeau!
Question toute bête, et peut-être déjà posée ici, mais est-ce qu'il y aura une compatibilité avec le module FM de la SMS?
Question toute bête, et peut-être déjà posée ici, mais est-ce qu'il y aura une compatibilité avec le module FM de la SMS?
Alucardark- Patient contaminé
- Nombre de messages : 375
Age : 44
Localisation : paris
Date d'inscription : 11/09/2011
Re: [SMS] CIMMERIAN - a Barbarian tribute
Avec Vingazole on y a pensé, mais pas encore tranché la question.
Re: [SMS] CIMMERIAN - a Barbarian tribute
Allez pour le fun,
hier j'ai commencé à convertir certaines fonctions originellement en C en full ASM (en assembleur inline, cad directement au milieu du code en C)
J'ai juste gagné +60% sur l'affichage actif, lol.
(en ré-écrivant seulement 3 fonctions)
Et ca fait bien exactement la même chose, je vous rassure.
hier j'ai commencé à convertir certaines fonctions originellement en C en full ASM (en assembleur inline, cad directement au milieu du code en C)
J'ai juste gagné +60% sur l'affichage actif, lol.
(en ré-écrivant seulement 3 fonctions)
Et ca fait bien exactement la même chose, je vous rassure.
Re: [SMS] CIMMERIAN - a Barbarian tribute
les lignes colorés sur les cotés representent l'affichage actif ? c'est ça ?
60% c'est enorme. c'est du à quoi ? à des tiles similaires ou qq chose comme ça ?
60% c'est enorme. c'est du à quoi ? à des tiles similaires ou qq chose comme ça ?
Re: [SMS] CIMMERIAN - a Barbarian tribute
Non. Juste du code assembleur mieux foutu qu'un code compilé.
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: [SMS] CIMMERIAN - a Barbarian tribute
Surtout des calculs/transferts de données des positions des elements de metasprites,
et oui c'est pendant l'affichage actif
en C ce sont des memcopy, normalement un truc plutot tres rapide une fois en asm.
Sauf que parfois SDCC perd les pédales à la compilation et fait (vraiment) n'importe quoi sur certains memcopy... alors que d'autres sont impec.
Doit y avoir trop de param / variables à un moment et il en peut plus de la vie ^^
Du coup j'ai tout réecrit à la main.
et oui c'est pendant l'affichage actif
en C ce sont des memcopy, normalement un truc plutot tres rapide une fois en asm.
Sauf que parfois SDCC perd les pédales à la compilation et fait (vraiment) n'importe quoi sur certains memcopy... alors que d'autres sont impec.
Doit y avoir trop de param / variables à un moment et il en peut plus de la vie ^^
Du coup j'ai tout réecrit à la main.
Re: [SMS] CIMMERIAN - a Barbarian tribute
Le gain est quand meme très impressionnant ! Sur la partie rose tu as gagné un facteur 3 ou 4, sur les parties jaunes et orange c'est un facteur 5 ! SDCC fait vraiment un travail de sagouin :-/ J'ai l'impression qu'il est pire que GCC sur MD
Enfin je ne doute pas que ton code est particulièrement bon également
Enfin je ne doute pas que ton code est particulièrement bon également
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: [SMS] CIMMERIAN - a Barbarian tribute
ichigobankai a écrit:Allez pour le fun,
hier j'ai commencé à convertir certaines fonctions originellement en C en full ASM (en assembleur inline, cad directement au milieu du code en C)
J'ai juste gagné +60% sur l'affichage actif, lol.
(en ré-écrivant seulement 3 fonctions)
Et ca fait bien exactement la même chose, je vous rassure.
ENORME
Je te tire mon chapeau moi que ne pige que dalle en assembleur !!! Mais alors que dalle...
_______________________________________________________
Re: [SMS] CIMMERIAN - a Barbarian tribute
Merci les gars !
Concernant SDCC, je regarde assez régulièrement le fichier asm généré et en général c'est "plutôt" bien fait.
Mais pour une raison que j'ignore les fois ou j'ai mis pas mal de calculs & conditions dans de grosses fonctions il a perdu un peu les pédales...
Concernant SDCC, je regarde assez régulièrement le fichier asm généré et en général c'est "plutôt" bien fait.
Mais pour une raison que j'ignore les fois ou j'ai mis pas mal de calculs & conditions dans de grosses fonctions il a perdu un peu les pédales...
Re: [SMS] CIMMERIAN - a Barbarian tribute
Faut pas que vous zieutez le code généré de Huc le compilo C pour la PCE alors .
Le passage des variables dans une fonction est génial
Le passage des variables dans une fonction est génial
Invité- Invité
Re: [SMS] CIMMERIAN - a Barbarian tribute
C'est vraiment très maîtrisé graphiquement, je m'incline, chapeau !
Re: [SMS] CIMMERIAN - a Barbarian tribute
on croirait presque a de la MD
airdream- Guéri miraculeux
- Nombre de messages : 2773
Age : 45
Localisation : Tokyo
Date d'inscription : 31/10/2010
Re: [SMS] CIMMERIAN - a Barbarian tribute
ichigobankai a écrit:
Ça correspond à quoi les bandes de couleurs à l'extérieur ? C'est une feature de l'ému ?
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: [SMS] CIMMERIAN - a Barbarian tribute
c'est une fonction set border que l'on a ajouté à notre lib avec Vingazole.
Ca prend une couleur de la 2eme palette (celle des sprites) et la met en index 0 (overscan) de cette meme palette.
Juste a mettre autant de set_border(xx) dans/autour des fonctions dont je veux voir la charge (avec plusieurs valeurs pour voir plusieurs couleurs)
En temps normal y'a que sur le hardware que tu pourrais voir ces couleurs, mais Emilicious un emu multiplateformes (et tres fidèle pour la SMS) permet aussi d'activer l'overscan (et donc de voir ces bandes)
Ca prend une couleur de la 2eme palette (celle des sprites) et la met en index 0 (overscan) de cette meme palette.
Juste a mettre autant de set_border(xx) dans/autour des fonctions dont je veux voir la charge (avec plusieurs valeurs pour voir plusieurs couleurs)
En temps normal y'a que sur le hardware que tu pourrais voir ces couleurs, mais Emilicious un emu multiplateformes (et tres fidèle pour la SMS) permet aussi d'activer l'overscan (et donc de voir ces bandes)
Re: [SMS] CIMMERIAN - a Barbarian tribute
Ah pas con. Ça te permet de voir ce qu'il se passe pendant le vblank ? Super ingénieux !
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: [SMS] CIMMERIAN - a Barbarian tribute
pendant les hblank
ca fonctionne pour l'affichage actif et le vblank.
ca fonctionne pour l'affichage actif et le vblank.
Re: [SMS] CIMMERIAN - a Barbarian tribute
tu programmes de façon tres pro, ça fait plaisir à voir !
j'aimerais savoir faire comme toi mais il me manque des bases
j'aimerais savoir faire comme toi mais il me manque des bases
Re: [SMS] CIMMERIAN - a Barbarian tribute
Si je codais de façon "tres pro" je ferais ça 100% en asm et y'aurais 0 debug du 1er coup , mais j'en suis bien incapable ^^
Mais le compliment me fait plaisir
Mais le compliment me fait plaisir
Re: [SMS] CIMMERIAN - a Barbarian tribute
Les "Pros" font aussi des erreurs et leurs projets n'échappent pas aux bugs !
Mais ce qui est chouette dans ta démarche, c'est d'aller dans le très bas niveau pour améliorer le projet ou d'arriver à ce que tu veux.
Mais ce qui est chouette dans ta démarche, c'est d'aller dans le très bas niveau pour améliorer le projet ou d'arriver à ce que tu veux.
Invité- Invité
Re: [SMS] CIMMERIAN - a Barbarian tribute
ichigobankai a écrit:Merci les gars !
Concernant SDCC, je regarde assez régulièrement le fichier asm généré et en général c'est "plutôt" bien fait.
Mais pour une raison que j'ignore les fois ou j'ai mis pas mal de calculs & conditions dans de grosses fonctions il a perdu un peu les pédales...
Toi aussi, il fait n'importe quoi dès qu'on fait des calculs mathématiques "complexe" ?
J'en suis à faire des merdes de ce genre quelquefois :
unsigned int foutu_bug(unsigned int v1,unsigned int v2)
{
return v1+v2;
}
unsigned int rand_a_b(unsigned int a, unsigned int b){
unsigned int r;
/* Putain de bug à la con de compilo qui me force à faire ça !! */
r = manual_rand();
r = r % (b-a);
return foutu_bug(r,a);
}
Ou alors c'est moi qui est très fatigué et que je dois me mettre à l'élevage de chèvre ...
bfg- Patient contaminé
- Nombre de messages : 806
Localisation : DMC
Date d'inscription : 11/09/2005
Re: [SMS] CIMMERIAN - a Barbarian tribute
Non j'ai pas encore eu a faire ce genre de tour de passe passe
j'ai modifié des bouts de code comme ca :
le truc originel en C, rien de transcendant :
L'ASM généré légèrement caca... surtout que je ne connais pas le cout en cycles/la tronche du code de la fonction memcpy de la lib SDCC (issue du string.c/h) - j'ai pas spécialement cherché non plus ^^
Là la même chose, codée par mes soins, à la main.
avec un truc "normal" à base de ldir pour copier en blocs.
c'est avec ce genre de bout de code à la noix que j'ai gagné un facteur de quasi 5 sur les couleurs orange & jaune.
j'ai modifié des bouts de code comme ca :
le truc originel en C, rien de transcendant :
- Code:
;rom.c:1354: memcpy( (unsigned char *)bkg_anim_pos, (unsigned char *)bkg_anim_infos[1], (is_bkg_anim*7)); //en bloc
L'ASM généré légèrement caca... surtout que je ne connais pas le cout en cycles/la tronche du code de la fonction memcpy de la lib SDCC (issue du string.c/h) - j'ai pas spécialement cherché non plus ^^
- Code:
ld de, (#_bkg_anim_infos + 2)
ld bc,(_is_bkg_anim)
ld b,#0x00
ld l, c
ld h, b
add hl, hl
add hl, bc
add hl, hl
add hl, bc
push hl
push de
ld hl,#_bkg_anim_pos
push hl
call _memcpy
ld hl,#6
add hl,sp
ld sp,hl
Là la même chose, codée par mes soins, à la main.
avec un truc "normal" à base de ldir pour copier en blocs.
- Code:
__asm
ld hl, (#_is_bkg_anim)
ld a, l ; l max = 6, a max = 42
rlca ;
rlca ;
rlca ;
sub a, l
ld c, a
ld b, #0 ; bc = nb
ld hl, (#_bkg_anim_infos +2) ;from
ld de, #_bkg_anim_pos ;to
ldir
__endasm;
c'est avec ce genre de bout de code à la noix que j'ai gagné un facteur de quasi 5 sur les couleurs orange & jaune.
Re: [SMS] CIMMERIAN - a Barbarian tribute
Ne soyez pas trop dur avec sdcc, après tout le processeur cible n'est qu'un Z80...
Par contre je confirme aussi qu'il peut péter les plombs, j'ai eu ça.
Ichigo dans ton code originel en c, tu appelais memcpy (et du coup il utilisait la pile pour les paramètres), dans ta version asm tu fait directement le ldir donc ce n'est plus pareil.
Et pour la multiplication par 7, en c il faisait ça en 16 bits (et en faisant *2+1*2+1), là toi tu l'as optimisé en 8 bits (et en faisant *8-1)...
Très intéressant !
Par contre je confirme aussi qu'il peut péter les plombs, j'ai eu ça.
Ichigo dans ton code originel en c, tu appelais memcpy (et du coup il utilisait la pile pour les paramètres), dans ta version asm tu fait directement le ldir donc ce n'est plus pareil.
Et pour la multiplication par 7, en c il faisait ça en 16 bits (et en faisant *2+1*2+1), là toi tu l'as optimisé en 8 bits (et en faisant *8-1)...
Très intéressant !
nemokantio- Patient contaminé
- Nombre de messages : 345
Age : 48
Localisation : Delgastan
Date d'inscription : 23/01/2013
Page 15 sur 23 • 1 ... 9 ... 14, 15, 16 ... 19 ... 23
Sujets similaires
» Tribute Arcade
» Le best-of des Covers / Tribute
» la compil COTTON SATURN TRIBUTE
» Barbarian + Axe of Rage
» [TRIBUTE] Parking Garage Rally Circuit
» Le best-of des Covers / Tribute
» la compil COTTON SATURN TRIBUTE
» Barbarian + Axe of Rage
» [TRIBUTE] Parking Garage Rally Circuit
Page 15 sur 23
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum