29460

le pocket chip est loin d'être pocket et bordel ou sont les enceintes ?!

la sortie video ne sert visiblement pas sur le pocket chip (ok j'ai certes le son, mais le cable fait 30cm cheeky ), une manette usb n'est pas reconnue (j'ai mal aux doigts aie!)
le chip normal s’éteint seul une fois "login" atteint, on verra une fois le (re?)flashage terminé

damn it premières impressions mauvaises, et pourtant trois mois que je l'attend, je l'avais même oublié d'ailleurs et j'ai failli évincer ce sms me prévenant d'un colis à un point relais.
et la le mec il le pécho par le bras et il lui dit '

29461

./29457> *describes

---------------------------------------------
avatar
HURRRR !

29462

* describing
Et même ça n'a pas tellement de sens, c'est plutôt "a struct[ure] describing a string in a given font",
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

29463

ouai j'ai pas trop cherche le sens, juste au plus court pour rendre la phrase syntaxiquement correcte grin
avatar
HURRRR !

29464

Ah tiens, merci. Moi et l'anglais on sera toujours fachés de toute façon grin

29465

29466

Folco (./29422) :
	pea	\End(pc)					; Same return address for all the cases
	
	cmpi.w	#HORIZONTAL_LAYOUT,Widget.type(a2)
	bne.s	\NoHorizontalLayout
		bra	PrepareHorizontalLayout
\NoHorizontalLayout:

	cmpi.w	#VERTICAL_LAYOUT,Widget.type(a2)
	bne.s	\NoVerticalLayout
		bra	PrepareVerticalLayout
\NoVerticalLayout:

	cmpi.w	#LABEL,Widget.type(a2)
	bne.s	\NoLabel
		bra	PrepareLabel
	
\End:
Un switch en assembleur : mutualisation des "break" avec un seul pea, gain de deux octets (bra.s) par casegcc sait faire ça ?
Personne n'a tiqué ?? Voici la même en mieux grin
	pea	\End(pc)					; Same return address for all the cases
	
	cmpi.w	#HORIZONTAL_LAYOUT,Widget.type(a2)
	beq	PrepareHorizontalLayout

	cmpi.w	#VERTICAL_LAYOUT,Widget.type(a2)
	beq.s	PrepareVerticalLayout

	cmpi.w	#LABEL,Widget.type(a2)
	beq	PrepareLabel
	
\End:
Zerosquare, toi qui a commenté ce post, tu me déçois autant que moi pour avoir mis une semaine à percuter ça triso
Mais j'en ai encore une (enfin, deux) autres optim's sous le coude pour faire tenir chaque case x: func(); break; en 6, et même 4 octets love

29467

(un switch n'est pas censé faire une table de saut ? Enfin ça dépend du nombre de cas, c'est sûr)

29468

Si, une table de saut pc-relatif. Mais gcc est un petit joueur, il les fait sur au moins deux octets, alors qu'on peut parfaitement les faire sur un seul :
ExecuteOption:
	lea.l	DEST_FILENAME(%fp),%a0			|default field to fill
	bset.l	%d5,%d6					|set the flag of the option
	move.b	ExecOption(%pc,%d5.w),%d5		|read offset, upper part of d5.w is clean
	jmp	ExecOption(%pc,%d5.w)			|and execute the right routine

ExecOption:
	.byte	OptionAdd-ExecOption			|pc-relative jump table, to access sub-routine of each option
	.byte	OptionSrc-ExecOption
	.byte	OptionArg-ExecOption
	.byte	OptionArc-ExecOption
	.byte	OptionRem-ExecOption
	.byte	OptionDry-ExecOption

29469

29470

Je ne sais pas si c'est pareil en 68k, mais en x64/x86, selon le nombre de case, on a soit une jumptable, soit une combinaison de test / je, soit une combinaison des deux ^^

Quand à une table de taille sizeof(ushort) * n, je suppose que GCC part du principe qu'on pourrait avoir plus que 255 case ?

29471

C'est plus une question de distance de saut que de nombre de cas, une table sur un octet signifie que toutes les routines appelées sont dans un range -128/+127 octets (c'est du pc-relatif).

Sinon, oui, ça se passe comme tu dis, je crois qu'ici la limite est à 5.

29472

Ah oui, effectivement, j'ai pas réfléchi komilfallait cheeky

29473

avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

29474

29475

avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

29476

29477

-> DrawLabel -> utiliser des registres pour x/y/str, formater, commenter

29478

./29461 > ça poutre votre soft love
(mais il vous manque un designer sonore pour mettre un bruit de popcorn sur votre logo tongue)
Folco (./29466) :
Zerosquare, toi qui a commenté ce post, tu me déçois autant que moi pour avoir mis une semaine à percuter ça triso
Désolé, j'ai été super occupé cette semaine sad
(et je ne peux pas te faire passer en priorité : ça fait déjà plusieurs fois que tu ne me livres pas les japonaises promises embarrassed)
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

29479

(cheeky)

29480

En 2013, la constellation russe GLONASS comprend vingt-huit satellites de navigation Glonass dont vingt-quatre satellites opérationnels, aucun satellite de réserve, deux satellites en maintenance et deux satellites en période d'essais13.

29481

29482

29483

29484


--------------------
(nsfw)
avatar
HURRRR !

29485

Obligatory url to suit the previous video : http://sowerbutts.com/retro/#kiss

29486

mfw

29487

29488

29489

"dummy"
bool ChatTranslate::Translate(Player* player, std::string& msg, Language targetLanguage)
{
    if (targetLanguage == LANG_UNIVERSAL || targetLanguage == LANG_ADDON)
        return false;

    //! TODO Prevent cross-faction chat using injected DLL (unknown language usage!)
    LanguageDesc const* langDesc = GetLanguageDescByID(sourceLanguage);
    if (!langDesc)
        return false;

    uint32 languageSkill = player->GetSkillValue(langDesc->skill_id);
    if (languageSkill < 300)
        return false;

    // Find links and remove them in backwards order
    LinkExtractor extractor(msg);
    for (auto itr = extractor.Links.rbegin(); itr != extractor.Links.rend(); ++itr)
        msg.erase((*itr)->GetStartPosition(), (*itr)->GetEndPosition() - (*itr)->GetStartPosition() + 1);

    std::wstring wmessage;
    if (!Utf8toWStr(msg, wmessage))
        return false;

    std::unordered_map<std::wstring, std::wstring> replacementMap;

    Tokenizer<std::wstring> messageTokens(wmessage, [](wchar_t ch) { return std::iswalpha(ch) != 0; });
    for (Tokenizer<std::wstring>::iterator itr : messageTokens)
    {
        if (replacementMap.find(*itr) != replacementMap.end())
            continue;

        uint32 wordHash = SStrHash(*itr);
        if (wordHash % 300 < languageSkill)
            continue;
        
        uint32 wordLength = (*itr).length();
        if (wordLength > 18)
            wordLength = 18;

        std::vector<LanguageWordsEntry const*> const* languageWords = nullptr;
        for (; wordLength >= 1 && languageWords == nullptr; --wordLength)
            languageWords = sDB2Manager.GetLanguageWords(targetLanguage, wordLength);

        if (itr == languageWords->end())
            continue;

        std::wstring newWord;
        if (!Utf8toWStr(languageWords[wordHash % languageWords->size()]->Word, newWord))
            continue;
        
        replacementMap[*itr] = newWord;
    }

    for (auto itr = replacementMap.begin(); itr != replacementMap.end(); ++itr)
        ReplaceWord(wmessage, itr.first, itr.second);

    WStrToUtf8(wmessage, msg);
    return true;
}

29490