Gens KMod++

Talk about development tools here

Moderator: BigEvilCorporation

Meradrin
Interested
Posts: 11
Joined: Thu Sep 15, 2011 6:03 am
Location: Canada

Post by Meradrin » Fri Sep 16, 2011 1:08 pm

Y aura-t-il moyen de charger des symboles venant de snasm68 (pour les codeurs asm :p ) ? un peu comme je fais pour md debug studio


Bien si tu me donnes une rom compilé avec et les fichier d'output. Je peux bien regarder pour supporté le chargement des symboles avec ton outils. Pour l'instant je bosse qu'avec le SGDK.

Meradrin
Interested
Posts: 11
Joined: Thu Sep 15, 2011 6:03 am
Location: Canada

Post by Meradrin » Sun Sep 18, 2011 7:08 pm

Hi ^^ I worked a little bit more on KMod++

I simply show you the new windows for the Source Code Debugger.

http://www.finaltranslation.org/KModPP- ... bugger.png

You see all the files to the right!? The file source tree is detected dynamically in the debug info. And it is the reason why you don't see .h (header file) because they have no code in this file.

That support C and Assembler file for the moment.
I go out for 1 week so that will slow the dev, sorry guys!

AamirM
Very interested
Posts: 472
Joined: Mon Feb 18, 2008 8:23 am
Contact:

Post by AamirM » Sun Sep 18, 2011 7:17 pm

Ok, sorry for using a bit foul language.....but that is fucking awesome.

At least I will now get lesser complaints about Regen. ;)

Stef
Very interested
Posts: 3131
Joined: Thu Nov 30, 2006 9:46 pm
Location: France - Sevres
Contact:

Post by Stef » Sun Sep 18, 2011 10:33 pm

JUST AWESOME !!!
Seems like you removed optimisation flag -O1, is it possible to have debug informations with -O1 flag actived ? i believe GDB does support it.

Meradrin
Interested
Posts: 11
Joined: Thu Sep 15, 2011 6:03 am
Location: Canada

Post by Meradrin » Mon Sep 19, 2011 3:54 pm

I re-added the flags today and that look work. But I don't know if that work correctly.

Stef
Very interested
Posts: 3131
Joined: Thu Nov 30, 2006 9:46 pm
Location: France - Sevres
Contact:

Post by Stef » Mon Sep 19, 2011 5:01 pm

I hope it does :D
this way it would be really easier to see how compiler optimize code :p

Meradrin
Interested
Posts: 11
Joined: Thu Sep 15, 2011 6:03 am
Location: Canada

DWARF unleash

Post by Meradrin » Wed Sep 21, 2011 5:34 am

Hi ! So a little bit news from my cell phone :D

I start to analyse the DWARF debugging standard. The SGDK gcc use the version 2. Personnaly I realy find this file format is a good pain in the ass...

But, I find the way to know the local variable from a fonction and the fonction enter types and the fonction return type. I am able to know all the files use for the compilation. Like the header file and all. I am able to expend macro and many other cool stuff.

Anyway, I return work on my DWARF data reader ^^ I will make a video soon for show the watch system with the source code debugger. They have a tone of work that wait for me ^^

letoulousain
Interested
Posts: 42
Joined: Fri Sep 24, 2010 11:32 pm
Location: toulouse

Re: DWARF unleash

Post by letoulousain » Sun Sep 25, 2011 10:02 am

brillante initiative. :) Et je suis ravis de voir un programmeur pro français porter son regard sur notre console. :D

J'utilise aussi SGDK, mais j'ai un soucis en 60HZ lorsqu'il s'agit de faire un scrolling bien fluide, je pense que les commandes:
VDP_clearTileMapRect
et
VDP_fillTileMapRectInc(APLAN, TILE_ATTR_FULL
sont un peu lente, ou je m'y prend mal, au choix. ;)

je met ici mon code (tilestravaux6):
http://www.mirari.fr/C4ZS


Je souhaite faire une petite demo sur le jeu Toki, car j'en avais un petit peu assez de lire les Nintendo boy se moquer de la Megadrive avec ce jeu. :roll:

http://www.gamopat-forum.com/t30112-tok ... ion#834628

J'ai aujourd'hui une version plus aboutis (détection collision sol et mur + gestion du saut) mais le scrolling en 60 Hz saccade dans la partie haute de l'écran... help me please.

Edge-`
Interested
Posts: 39
Joined: Sun Dec 10, 2006 3:26 am

Awesome!

Post by Edge-` » Wed Sep 28, 2011 12:00 am

This looks very promising! I'm also interested in your Visual Studio setup, it looks to be a very nice integrated environment. Making the dev. setup / tools easy will certainly encourage some development!
Genny Wars (Someday.. :D)

Meradrin
Interested
Posts: 11
Joined: Thu Sep 15, 2011 6:03 am
Location: Canada

A news update !

Post by Meradrin » Tue Oct 04, 2011 7:11 am

Sorry if that take so much time for show you all this.

The DWARF debug information was a hard thing to do and the fact I get a beta key of Diablo 3 (That slow me a little bit)

A video for show you the refactoring of the watch system and the source debugger in action.

http://www.youtube.com/watch?v=omrtTxMVyRY

So the first release of KMod++ is for soon.

I pray that I will not use the definition of blizzard for soon:
http://www.wowwiki.com/Soon

Stef
Very interested
Posts: 3131
Joined: Thu Nov 30, 2006 9:46 pm
Location: France - Sevres
Contact:

Post by Stef » Tue Oct 04, 2011 7:49 am

Just AWESOME ! We need it now :D

Stef
Very interested
Posts: 3131
Joined: Thu Nov 30, 2006 9:46 pm
Location: France - Sevres
Contact:

Re: DWARF unleash

Post by Stef » Tue Oct 04, 2011 8:57 am

letoulousain wrote:brillante initiative. :) Et je suis ravis de voir un programmeur pro français porter son regard sur notre console. :D

J'utilise aussi SGDK, mais j'ai un soucis en 60HZ lorsqu'il s'agit de faire un scrolling bien fluide, je pense que les commandes:
VDP_clearTileMapRect
et
VDP_fillTileMapRectInc(APLAN, TILE_ATTR_FULL
sont un peu lente, ou je m'y prend mal, au choix. ;)

je met ici mon code (tilestravaux6):
http://www.mirari.fr/C4ZS


Je souhaite faire une petite demo sur le jeu Toki, car j'en avais un petit peu assez de lire les Nintendo boy se moquer de la Megadrive avec ce jeu. :roll:

http://www.gamopat-forum.com/t30112-tok ... ion#834628

J'ai aujourd'hui une version plus aboutis (détection collision sol et mur + gestion du saut) mais le scrolling en 60 Hz saccade dans la partie haute de l'écran... help me please.
Ca a l'air assez prometteur mais en regardant ton code je vois que tu met à jour l'intégralité du plan à jour à chaque frame avec une boucle ?
En fait le calcul est assez simple, les accés à la VRAM sont limités ! Pendant le VBlank tu peux transférer un peu moins de 200 bytes / scanline via le DMA et environ 80 bytes en software (ce qui est ton cas).
En NTSC, grosso modo tu peux donc transférer 3 ko de data en VRAM en software (un peu plus en comptant la zone actif mais c'est déconseillé de le faire à ce moment).

Théoriquement tu n'es pas sensé rafraichir l'intégralité du tilemap à chaque frame ! Juste les "bords" selon le sens du scrolling..

bastien
Very interested
Posts: 208
Joined: Mon Jun 25, 2007 7:19 pm
Location: Besançon,France
Contact:

Post by bastien » Tue Oct 04, 2011 4:52 pm

good news !
and oh , you are lucky for Diablo III :lol:

letoulousain
Interested
Posts: 42
Joined: Fri Sep 24, 2010 11:32 pm
Location: toulouse

Re: DWARF unleash

Post by letoulousain » Fri Oct 07, 2011 1:10 pm

Stef wrote: Ca a l'air assez prometteur mais en regardant ton code je vois que tu met à jour l'intégralité du plan à jour à chaque frame avec une boucle ?
non ! :lol:
Stef wrote: Théoriquement tu n'es pas sensé rafraichir l'intégralité du tilemap à chaque frame ! Juste les "bords" selon le sens du scrolling..
mais c'est ce que fait le programme:
1. Au préalable, je stocke les données de toutes les tiles de 32*32 pixels dans la variable xdatapf[]

2. La variable xaccd est incrémenté jusqu'à la valeur 17, et c'est là que je commande la lecture de la variable xdatapf[] à 16 reprises, dans la boucle for(compty=0 ; compty<16; compty++)

(16 tiles * 32 pixels = 512 de pixels de haut)

Bref, je ne rafraichis pas l'intégralité du tilemap, mais seulement 16 tiles.

Stef
Very interested
Posts: 3131
Joined: Thu Nov 30, 2006 9:46 pm
Location: France - Sevres
Contact:

Re: DWARF unleash

Post by Stef » Fri Oct 07, 2011 4:07 pm

letoulousain wrote:mais c'est ce que fait le programme:
1. Au préalable, je stocke les données de toutes les tiles de 32*32 pixels dans la variable xdatapf[]

2. La variable xaccd est incrémenté jusqu'à la valeur 17, et c'est là que je commande la lecture de la variable xdatapf[] à 16 reprises, dans la boucle for(compty=0 ; compty<16; compty++)

(16 tiles * 32 pixels = 512 de pixels de haut)

Bref, je ne rafraichis pas l'intégralité du tilemap, mais seulement 16 tiles.
Je prends ton code allégé (j'ai du mal avec ton indentation, ça aide pas à comprendre X'D) :

Code: Select all

while(1)
	{

 if (value & BUTTON_RIGHT)
        {

        if (xscrolla<607)
            {
..

            if (xaccd==17) // 1 à 16 donc si xaccd=17 alors xaccd = 1
                {
..

                if (sdroit<47)
                {
...
	for(compty=0 ; compty<16; compty++) // lignes
		{
...
  if (compti == 0)
                VDP_clearTileMapRect(APLAN, comptx*4, compty*4-zxt, wt, ht);
            else
                VDP_fillTileMapRectInc(APLAN, TILE_ATTR_FULL(PAL1, 0, 0, 0, planA[compti]), comptx*4, compty*4-zxt, wt, ht);
...
                }
Dans cette partie de code que j'ai isolé, on voit que dans un certains cas tu peux appeler 16 fois la méthode VDP_fillTileMapRectInc(...) avec les paramètres wt et ht qui définissent la taille du tilemap à modifier...
J'ai même aps réussi à bien savoir à combien ils pouvaient être à ce moment là :p
Mais globalement je trouve que le code est complexe et difficile à comprendre, faudrait que tu fasses un peu de nettoyage ! Je suis sur qu'il y a beaucoup de traitement inutile.

Post Reply