
Quant à la palette, oui, mais parfois on n'utilise pas tous les couleurs d'une palette dans chaque sprite, mais ce n'est pas un problème pour le moment, avant de continuer je devrais finir de lire tous ces tutoriels

MOV MOVEQ MOVNE MOVCS MOVHS MOVCC MOVLO MOVMI MOVPL MOVVS MOVVC MOVHI MOVLS MOVGE MOVLT MOVGT MOVLE MOVAL MOVS MOVEQS MOVNES MOVCSS MOVHSS MOVCCS MOVLOS MOVMIS MOVPLS MOVVSS MOVVCS MOVHIS MOVLSS MOVGES MOVLTS MOVGTS MOVLES MOVALS MVN MVNEQ MVNNE MVNCS MVNHS MVNCC MVNLO MVNMI MVNPL MVNVS MVNVC MVNHI MVNLS MVNGE MVNLT MVNGT MVNLE MVNAL MVNS MVNEQS MVNNES MVNCSS MVNHSS MVNCCS MVNLOS MVNMIS MVNPLS MVNVSS MVNVCS MVNHIS MVNLSS MVNGES MVNLTS MVNGTS MVNLES MVNALS MRS MRSEQ MRSNE MRSCS MRSHS MRSCC MRSLO MRSMI MRSPL MRSVS MRSVC MRSHI MRSLS MRSGE MRSLT MRSGT MRSLE MRSAL MSR MSREQ MSRNE MSRCS MSRHS MSRCC MSRLO MSRMI MSRPL MSRVS MSRVC MSRHI MSRLS MSRGE MSRLT MSRGT MSRLE MSRAL MRA MRAEQ MRANE MRACS MRAHS MRACC MRALO MRAMI MRAPL MRAVS MRAVC MRAHI MRALS MRAGE MRALT MRAGT MRALE MRAAL MAR MAREQ MARNE MARCS MARHS MARCC MARLO MARMI MARPL MARVS MARVC MARHI MARLS MARGE MARLT MARGT MARLE MARAL ADD ADDEQ ADDNE ADDCS ADDHS ADDCC ADDLO ADDMI ADDPL ADDVS ADDVC ADDHI ADDLS ADDGE ADDLT ADDGT ADDLE ADDAL ADDS ADDEQS ADDNES ADDCSS ADDHSS ADDCCS ADDLOS ADDMIS ADDPLS ADDVSS ADDVCS ADDHIS ADDLSS ADDGES ADDLTS ADDGTS ADDLES ADDALS ADC ADCEQ ADCNE ADCCS ADCHS ADCCC ADCLO ADCMI ADCPL ADCVS ADCVC ADCHI ADCLS ADCGE ADCLT ADCGT ADCLE ADCAL ADCS ADCEQS ADCNES ADCCSS ADCHSS ADCCCS ADCLOS ADCMIS ADCPLS ADCVSS ADCVCS ADCHIS ADCLSS ADCGES ADCLTS ADCGTS ADCLES ADCALS QADD QADDEQ QADDNE QADDCS QADDHS QADDCC QADDLO QADDMI QADDPL QADDVS QADDVC QADDHI QADDLS QADDGE QADDLT QADDGT QADDLE QADDAL QDADD QDADDEQ QDADDNE QDADDCS QDADDHS QDADDCC QDADDLO QDADDMI QDADDPL QDADDVS QDADDVC QDADDHI QDADDLS QDADDGE QDADDLT QDADDGT QDADDLE QDADDAL SUB SUBEQ SUBNE SUBCS SUBHS SUBCC SUBLO SUBMI SUBPL SUBVS SUBVC SUBHI SUBLS SUBGE SUBLT SUBGT SUBLE SUBAL SUBS SUBEQS SUBNES SUBCSS SUBHSS SUBCCS SUBLOS SUBMIS SUBPLS SUBVSS SUBVCS SUBHIS SUBLSS SUBGES SUBLTS SUBGTS SUBLES SUBALS SBC SBCEQ SBCNE SBCCS SBCHS SBCCC SBCLO SBCMI SBCPL SBCVS SBCVC SBCHI SBCLS SBCGE SBCLT SBCGT SBCLE SBCAL SBCS SBCEQS SBCNES SBCCSS SBCHSS SBCCCS SBCLOS SBCMIS SBCPLS SBCVSS SBCVCS SBCHIS SBCLSS SBCGES SBCLTS SBCGTS SBCLES SBCALS RSB RSBEQ RSBNE RSBCS RSBHS RSBCC RSBLO RSBMI RSBPL RSBVS RSBVC RSBHI RSBLS RSBGE RSBLT RSBGT RSBLE RSBAL RSBS RSBEQS RSBNES RSBCSS RSBHSS RSBCCS RSBLOS RSBMIS RSBPLS RSBVSS RSBVCS RSBHIS RSBLSS RSBGES RSBLTS RSBGTS RSBLES RSBALS RSC RSCEQ RSCNE RSCCS RSCHS RSCCC RSCLO RSCMI RSCPL RSCVS RSCVC RSCHI RSCLS RSCGE RSCLT RSCGT RSCLE RSCAL RSCS RSCEQS RSCNES RSCCSS RSCHSS RSCCCS RSCLOS RSCMIS RSCPLS RSCVSS RSCVCS RSCHIS RSCLSS RSCGES RSCLTS RSCGTS RSCLES RSCALS QSUB QSUBEQ QSUBNE QSUBCS QSUBHS QSUBCC QSUBLO QSUBMI QSUBPL QSUBVS QSUBVC QSUBHI QSUBLS QSUBGE QSUBLT QSUBGT QSUBLE QSUBAL QDSUB QDSUBEQ QDSUBNE QDSUBCS QDSUBHS QDSUBCC QDSUBLO QDSUBMI QDSUBPL QDSUBVS QDSUBVC QDSUBHI QDSUBLS QDSUBGE QDSUBLT QDSUBGT QDSUBLE QDSUBAL MUL MULEQ MULNE MULCS MULHS MULCC MULLO MULMI MULPL MULVS MULVC MULHI MULLS MULGE MULLT MULGT MULLE MULAL MULS MULEQS MULNES MULCSS MULHSS MULCCS MULLOS MULMIS MULPLS MULVSS MULVCS MULHIS MULLSS MULGES MULLTS MULGTS MULLES MULALS MLA MLAEQ MLANE MLACS MLAHS MLACC MLALO MLAMI MLAPL MLAVS MLAVC MLAHI MLALS MLAGE MLALT MLAGT MLALE MLAAL MLAS MLAEQS MLANES MLACSS MLAHSS MLACCS MLALOS MLAMIS MLAPLS MLAVSS MLAVCS MLAHIS MLALSS MLAGES MLALTS MLAGTS MLALES MLAALS UMULL UMULLEQ UMULLNE UMULLCS UMULLHS UMULLCC UMULLLO UMULLMI UMULLPL UMULLVS UMULLVC UMULLHI UMULLLS UMULLGE UMULLLT UMULLGT UMULLLE UMULLAL UMULLS UMULLEQS UMULLNES UMULLCSS UMULLHSS UMULLCCS UMULLLOS UMULLMIS UMULLPLS UMULLVSS UMULLVCS UMULLHIS UMULLLSS UMULLGES UMULLLTS UMULLGTS UMULLLES UMULLALS UMLAL UMLALEQ UMLALNE UMLALCS UMLALHS UMLALCC UMLALLO UMLALMI UMLALPL UMLALVS UMLALVC UMLALHI UMLALLS UMLALGE UMLALLT UMLALGT UMLALLE UMLALAL UMLALS UMLALEQS UMLALNES UMLALCSS UMLALHSS UMLALCCS UMLALLOS UMLALMIS UMLALPLS UMLALVSS UMLALVCS UMLALHIS UMLALLSS UMLALGES UMLALLTS UMLALGTS UMLALLES UMLALALS SMULL SMULLEQ SMULLNE SMULLCS SMULLHS SMULLCC SMULLLO SMULLMI SMULLPL SMULLVS SMULLVC SMULLHI SMULLLS SMULLGE SMULLLT SMULLGT SMULLLE SMULLAL SMULLS SMULLEQS SMULLNES SMULLCSS SMULLHSS SMULLCCS SMULLLOS SMULLMIS SMULLPLS SMULLVSS SMULLVCS SMULLHIS SMULLLSS SMULLGES SMULLLTS SMULLGTS SMULLLES SMULLALS SMLAL SMLALEQ SMLALNE SMLALCS SMLALHS SMLALCC SMLALLO SMLALMI SMLALPL SMLALVS SMLALVC SMLALHI SMLALLS SMLALGE SMLALLT SMLALGT SMLALLE SMLALAL SMLALS SMLALEQS SMLALNES SMLALCSS SMLALHSS SMLALCCS SMLALLOS SMLALMIS SMLALPLS SMLALVSS SMLALVCS SMLALHIS SMLALLSS SMLALGES SMLALLTS SMLALGTS SMLALLES SMLALALS SMULxy SMULxyEQ SMULxyNE SMULxyCS SMULxyHS SMULxyCC SMULxyLO SMULxyMI SMULxyPL SMULxyVS SMULxyVC SMULxyHI SMULxyLS SMULxyGE SMULxyLT SMULxyGT SMULxyLE SMULxyAL SMULWy SMULWyEQ SMULWyNE SMULWyCS SMULWyHS SMULWyCC SMULWyLO SMULWyMI SMULWyPL SMULWyVS SMULWyVC SMULWyHI SMULWyLS SMULWyGE SMULWyLT SMULWyGT SMULWyLE SMULWyAL SMLAxy SMLAxyEQ SMLAxyNE SMLAxyCS SMLAxyHS SMLAxyCC SMLAxyLO SMLAxyMI SMLAxyPL SMLAxyVS SMLAxyVC SMLAxyHI SMLAxyLS SMLAxyGE SMLAxyLT SMLAxyGT SMLAxyLE SMLAxyAL SMLAWy SMLAWyEQ SMLAWyNE SMLAWyCS SMLAWyHS SMLAWyCC SMLAWyLO SMLAWyMI SMLAWyPL SMLAWyVS SMLAWyVC SMLAWyHI SMLAWyLS SMLAWyGE SMLAWyLT SMLAWyGT SMLAWyLE SMLAWyAL SMLALxy SMLALxyEQ SMLALxyNE SMLALxyCS SMLALxyHS SMLALxyCC SMLALxyLO SMLALxyMI SMLALxyPL SMLALxyVS SMLALxyVC SMLALxyHI SMLALxyLS SMLALxyGE SMLALxyLT SMLALxyGT SMLALxyLE SMLALxyAL MIA MIAEQ MIANE MIACS MIAHS MIACC MIALO MIAMI MIAPL MIAVS MIAVC MIAHI MIALS MIAGE MIALT MIAGT MIALE MIAAL MIAPH MIAPHEQ MIAPHNE MIAPHCS MIAPHHS MIAPHCC MIAPHLO MIAPHMI MIAPHPL MIAPHVS MIAPHVC MIAPHHI MIAPHLS MIAPHGE MIAPHLT MIAPHGT MIAPHLE MIAPHAL MIAxy MIAxyEQ MIAxyNE MIAxyCS MIAxyHS MIAxyCC MIAxyLO MIAxyMI MIAxyPL MIAxyVS MIAxyVC MIAxyHI MIAxyLS MIAxyGE MIAxyLT MIAxyGT MIAxyLE MIAxyAL CLZ CLZEQ CLZNE CLZCS CLZHS CLZCC CLZLO CLZMI CLZPL CLZVS CLZVC CLZHI CLZLS CLZGE CLZLT CLZGT CLZLE CLZAL TST TSTEQ TSTNE TSTCS TSTHS TSTCC TSTLO TSTMI TSTPL TSTVS TSTVC TSTHI TSTLS TSTGE TSTLT TSTGT TSTLE TSTAL TEQ TEQEQ TEQNE TEQCS TEQHS TEQCC TEQLO TEQMI TEQPL TEQVS TEQVC TEQHI TEQLS TEQGE TEQLT TEQGT TEQLE TEQAL AND ANDEQ ANDNE ANDCS ANDHS ANDCC ANDLO ANDMI ANDPL ANDVS ANDVC ANDHI ANDLS ANDGE ANDLT ANDGT ANDLE ANDAL ANDS ANDEQS ANDNES ANDCSS ANDHSS ANDCCS ANDLOS ANDMIS ANDPLS ANDVSS ANDVCS ANDHIS ANDLSS ANDGES ANDLTS ANDGTS ANDLES ANDALS EOR EOREQ EORNE EORCS EORHS EORCC EORLO EORMI EORPL EORVS EORVC EORHI EORLS EORGE EORLT EORGT EORLE EORAL EORS EOREQS EORNES EORCSS EORHSS EORCCS EORLOS EORMIS EORPLS EORVSS EORVCS EORHIS EORLSS EORGES EORLTS EORGTS EORLES EORALS ORR ORREQ ORRNE ORRCS ORRHS ORRCC ORRLO ORRMI ORRPL ORRVS ORRVC ORRHI ORRLS ORRGE ORRLT ORRGT ORRLE ORRAL ORRS ORREQS ORRNES ORRCSS ORRHSS ORRCCS ORRLOS ORRMIS ORRPLS ORRVSS ORRVCS ORRHIS ORRLSS ORRGES ORRLTS ORRGTS ORRLES ORRALS BIC BICEQ BICNE BICCS BICHS BICCC BICLO BICMI BICPL BICVS BICVC BICHI BICLS BICGE BICLT BICGT BICLE BICAL BICS BICEQS BICNES BICCSS BICHSS BICCCS BICLOS BICMIS BICPLS BICVSS BICVCS BICHIS BICLSS BICGES BICLTS BICGTS BICLES BICALS CMP CMPEQ CMPNE CMPCS CMPHS CMPCC CMPLO CMPMI CMPPL CMPVS CMPVC CMPHI CMPLS CMPGE CMPLT CMPGT CMPLE CMPAL CMN CMNEQ CMNNE CMNCS CMNHS CMNCC CMNLO CMNMI CMNPL CMNVS CMNVC CMNHI CMNLS CMNGE CMNLT CMNGT CMNLE CMNAL NOP B BEQ BNE BCS BHS BCC BLO BMI BPL BVS BVC BHI BLS BGE BLT BGT BLE BAL BL BLEQ BLNE BLCS BLHS BLCC BLLO BLMI BLPL BLVS BLVC BLHI BLLS BLGE BLLT BLGT BLLE BLAL BX BXEQ BXNE BXCS BXHS BXCC BXLO BXMI BXPL BXVS BXVC BXHI BXLS BXGE BXLT BXGT BXLE BXAL BLX BLXEQ BLXNE BLXCS BLXHS BLXCC BLXLO BLXMI BLXPL BLXVS BLXVC BLXHI BLXLS BLXGE BLXLT BLXGT BLXLE BLXAL LDR LDREQ LDRNE LDRCS LDRHS LDRCC LDRLO LDRMI LDRPL LDRVS LDRVC LDRHI LDRLS LDRGE LDRLT LDRGT LDRLE LDRAL LDRT LDREQT LDRNET LDRCST LDRHST LDRCCT LDRLOT LDRMIT LDRPLT LDRVST LDRVCT LDRHIT LDRLST LDRGET LDRLTT LDRGTT LDRLET LDRALT LDRB LDREQB LDRNEB LDRCSB LDRHSB LDRCCB LDRLOB LDRMIB LDRPLB LDRVSB LDRVCB LDRHIB LDRLSB LDRGEB LDRLTB LDRGTB LDRLEB LDRALB LDRBT LDREQBT LDRNEBT LDRCSBT LDRHSBT LDRCCBT LDRLOBT LDRMIBT LDRPLBT LDRVSBT LDRVCBT LDRHIBT LDRLSBT LDRGEBT LDRLTBT LDRGTBT LDRLEBT LDRALBT LDRSB LDREQSB LDRNESB LDRCSSB LDRHSSB LDRCCSB LDRLOSB LDRMISB LDRPLSB LDRVSSB LDRVCSB LDRHISB LDRLSSB LDRGESB LDRLTSB LDRGTSB LDRLESB LDRALSB LDRH LDREQH LDRNEH LDRCSH LDRHSH LDRCCH LDRLOH LDRMIH LDRPLH LDRVSH LDRVCH LDRHIH LDRLSH LDRGEH LDRLTH LDRGTH LDRLEH LDRALH LDRSH LDREQSH LDRNESH LDRCSSH LDRHSSH LDRCCSH LDRLOSH LDRMISH LDRPLSH LDRVSSH LDRVCSH LDRHISH LDRLSSH LDRGESH LDRLTSH LDRGTSH LDRLESH LDRALSH LDRD LDREQD LDRNED LDRCSD LDRHSD LDRCCD LDRLOD LDRMID LDRPLD LDRVSD LDRVCD LDRHID LDRLSD LDRGED LDRLTD LDRGTD LDRLED LDRALD LDMIA LDMEQIA LDMNEIA LDMCSIA LDMHSIA LDMCCIA LDMLOIA LDMMIIA LDMPLIA LDMVSIA LDMVCIA LDMHIIA LDMLSIA LDMGEIA LDMLTIA LDMGTIA LDMLEIA LDMALIA LDMIB LDMEQIB LDMNEIB LDMCSIB LDMHSIB LDMCCIB LDMLOIB LDMMIIB LDMPLIB LDMVSIB LDMVCIB LDMHIIB LDMLSIB LDMGEIB LDMLTIB LDMGTIB LDMLEIB LDMALIB LDMDA LDMEQDA LDMNEDA LDMCSDA LDMHSDA LDMCCDA LDMLODA LDMMIDA LDMPLDA LDMVSDA LDMVCDA LDMHIDA LDMLSDA LDMGEDA LDMLTDA LDMGTDA LDMLEDA LDMALDA LDMDB LDMEQDB LDMNEDB LDMCSDB LDMHSDB LDMCCDB LDMLODB LDMMIDB LDMPLDB LDMVSDB LDMVCDB LDMHIDB LDMLSDB LDMGEDB LDMLTDB LDMGTDB LDMLEDB LDMALDB LDMFD LDMEQFD LDMNEFD LDMCSFD LDMHSFD LDMCCFD LDMLOFD LDMMIFD LDMPLFD LDMVSFD LDMVCFD LDMHIFD LDMLSFD LDMGEFD LDMLTFD LDMGTFD LDMLEFD LDMALFD LDMED LDMEQED LDMNEED LDMCSED LDMHSED LDMCCED LDMLOED LDMMIED LDMPLED LDMVSED LDMVCED LDMHIED LDMLSED LDMGEED LDMLTED LDMGTED LDMLEED LDMALED LDMFA LDMEQFA LDMNEFA LDMCSFA LDMHSFA LDMCCFA LDMLOFA LDMMIFA LDMPLFA LDMVSFA LDMVCFA LDMHIFA LDMLSFA LDMGEFA LDMLTFA LDMGTFA LDMLEFA LDMALFA LDMEA LDMEQEA LDMNEEA LDMCSEA LDMHSEA LDMCCEA LDMLOEA LDMMIEA LDMPLEA LDMVSEA LDMVCEA LDMHIEA LDMLSEA LDMGEEA LDMLTEA LDMGTEA LDMLEEA LDMALEA PLD STR STREQ STRNE STRCS STRHS STRCC STRLO STRMI STRPL STRVS STRVC STRHI STRLS STRGE STRLT STRGT STRLE STRAL STRT STREQT STRNET STRCST STRHST STRCCT STRLOT STRMIT STRPLT STRVST STRVCT STRHIT STRLST STRGET STRLTT STRGTT STRLET STRALT STRB STREQB STRNEB STRCSB STRHSB STRCCB STRLOB STRMIB STRPLB STRVSB STRVCB STRHIB STRLSB STRGEB STRLTB STRGTB STRLEB STRALB STRBT STREQBT STRNEBT STRCSBT STRHSBT STRCCBT STRLOBT STRMIBT STRPLBT STRVSBT STRVCBT STRHIBT STRLSBT STRGEBT STRLTBT STRGTBT STRLEBT STRALBT STRH STREQH STRNEH STRCSH STRHSH STRCCH STRLOH STRMIH STRPLH STRVSH STRVCH STRHIH STRLSH STRGEH STRLTH STRGTH STRLEH STRALH STRD STREQD STRNED STRCSD STRHSD STRCCD STRLOD STRMID STRPLD STRVSD STRVCD STRHID STRLSD STRGED STRLTD STRGTD STRLED STRALD STMIA STMEQIA STMNEIA STMCSIA STMHSIA STMCCIA STMLOIA STMMIIA STMPLIA STMVSIA STMVCIA STMHIIA STMLSIA STMGEIA STMLTIA STMGTIA STMLEIA STMALIA STMIB STMEQIB STMNEIB STMCSIB STMHSIB STMCCIB STMLOIB STMMIIB STMPLIB STMVSIB STMVCIB STMHIIB STMLSIB STMGEIB STMLTIB STMGTIB STMLEIB STMALIB STMDA STMEQDA STMNEDA STMCSDA STMHSDA STMCCDA STMLODA STMMIDA STMPLDA STMVSDA STMVCDA STMHIDA STMLSDA STMGEDA STMLTDA STMGTDA STMLEDA STMALDA STMDB STMEQDB STMNEDB STMCSDB STMHSDB STMCCDB STMLODB STMMIDB STMPLDB STMVSDB STMVCDB STMHIDB STMLSDB STMGEDB STMLTDB STMGTDB STMLEDB STMALDB STMFD STMEQFD STMNEFD STMCSFD STMHSFD STMCCFD STMLOFD STMMIFD STMPLFD STMVSFD STMVCFD STMHIFD STMLSFD STMGEFD STMLTFD STMGTFD STMLEFD STMALFD STMED STMEQED STMNEED STMCSED STMHSED STMCCED STMLOED STMMIED STMPLED STMVSED STMVCED STMHIED STMLSED STMGEED STMLTED STMGTED STMLEED STMALED STMFA STMEQFA STMNEFA STMCSFA STMHSFA STMCCFA STMLOFA STMMIFA STMPLFA STMVSFA STMVCFA STMHIFA STMLSFA STMGEFA STMLTFA STMGTFA STMLEFA STMALFA STMEA STMEQEA STMNEEA STMCSEA STMHSEA STMCCEA STMLOEA STMMIEA STMPLEA STMVSEA STMVCEA STMHIEA STMLSEA STMGEEA STMLTEA STMGTEA STMLEEA STMALEA SWP SWPEQ SWPNE SWPCS SWPHS SWPCC SWPLO SWPMI SWPPL SWPVS SWPVC SWPHI SWPLS SWPGE SWPLT SWPGT SWPLE SWPAL SWPB SWPEQB SWPNEB SWPCSB SWPHSB SWPCCB SWPLOB SWPMIB SWPPLB SWPVSB SWPVCB SWPHIB SWPLSB SWPGEB SWPLTB SWPGTB SWPLEB SWPALB CDP CDPEQ CDPNE CDPCS CDPHS CDPCC CDPLO CDPMI CDPPL CDPVS CDPVC CDPHI CDPLS CDPGE CDPLT CDPGT CDPLE CDPAL CDP2 CDP2EQ CDP2NE CDP2CS CDP2HS CDP2CC CDP2LO CDP2MI CDP2PL CDP2VS CDP2VC CDP2HI CDP2LS CDP2GE CDP2LT CDP2GT CDP2LE CDP2AL MRC MRCEQ MRCNE MRCCS MRCHS MRCCC MRCLO MRCMI MRCPL MRCVS MRCVC MRCHI MRCLS MRCGE MRCLT MRCGT MRCLE MRCAL MRC2 MRC2EQ MRC2NE MRC2CS MRC2HS MRC2CC MRC2LO MRC2MI MRC2PL MRC2VS MRC2VC MRC2HI MRC2LS MRC2GE MRC2LT MRC2GT MRC2LE MRC2AL MRRC MRRCEQ MRRCNE MRRCCS MRRCHS MRRCCC MRRCLO MRRCMI MRRCPL MRRCVS MRRCVC MRRCHI MRRCLS MRRCGE MRRCLT MRRCGT MRRCLE MRRCAL MCR MCREQ MCRNE MCRCS MCRHS MCRCC MCRLO MCRMI MCRPL MCRVS MCRVC MCRHI MCRLS MCRGE MCRLT MCRGT MCRLE MCRAL MCR2 MCR2EQ MCR2NE MCR2CS MCR2HS MCR2CC MCR2LO MCR2MI MCR2PL MCR2VS MCR2VC MCR2HI MCR2LS MCR2GE MCR2LT MCR2GT MCR2LE MCR2AL MCRR MCRREQ MCRRNE MCRRCS MCRRHS MCRRCC MCRRLO MCRRMI MCRRPL MCRRVS MCRRVC MCRRHI MCRRLS MCRRGE MCRRLT MCRRGT MCRRLE MCRRAL LDC LDCEQ LDCNE LDCCS LDCHS LDCCC LDCLO LDCMI LDCPL LDCVS LDCVC LDCHI LDCLS LDCGE LDCLT LDCGT LDCLE LDCAL LDC2 LDC2EQ LDC2NE LDC2CS LDC2HS LDC2CC LDC2LO LDC2MI LDC2PL LDC2VS LDC2VC LDC2HI LDC2LS LDC2GE LDC2LT LDC2GT LDC2LE LDC2AL STC STCEQ STCNE STCCS STCHS STCCC STCLO STCMI STCPL STCVS STCVC STCHI STCLS STCGE STCLT STCGT STCLE STCAL STC2 STC2EQ STC2NE STC2CS STC2HS STC2CC STC2LO STC2MI STC2PL STC2VS STC2VC STC2HI STC2LS STC2GE STC2LT STC2GT STC2LE STC2AL SWI SWIEQ SWINE SWICS SWIHS SWICC SWILO SWIMI SWIPL SWIVS SWIVC SWIHI SWILS SWIGE SWILT SWIGT SWILE SWIAL BKPT NEG LSL LSR ASR ROR RRX PUSH POP FMULS FMULSEQ FMULSNE FMULSCS FMULSHS FMULSCC FMULSLO FMULSMI FMULSPL FMULSVS FMULSVC FMULSHI FMULSLS FMULSGE FMULSLT FMULSGT FMULSLE FMULSAL FMULD FMULDEQ FMULDNE FMULDCS FMULDHS FMULDCC FMULDLO FMULDMI FMULDPL FMULDVS FMULDVC FMULDHI FMULDLS FMULDGE FMULDLT FMULDGT FMULDLE FMULDAL FNMULS FNMULSEQ FNMULSNE FNMULSCS FNMULSHS FNMULSCC FNMULSLO FNMULSMI FNMULSPL FNMULSVS FNMULSVC FNMULSHI FNMULSLS FNMULSGE FNMULSLT FNMULSGT FNMULSLE FNMULSAL FNMULD FNMULDEQ FNMULDNE FNMULDCS FNMULDHS FNMULDCC FNMULDLO FNMULDMI FNMULDPL FNMULDVS FNMULDVC FNMULDHI FNMULDLS FNMULDGE FNMULDLT FNMULDGT FNMULDLE FNMULDAL FMACS FMACSEQ FMACSNE FMACSCS FMACSHS FMACSCC FMACSLO FMACSMI FMACSPL FMACSVS FMACSVC FMACSHI FMACSLS FMACSGE FMACSLT FMACSGT FMACSLE FMACSAL FMACD FMACDEQ FMACDNE FMACDCS FMACDHS FMACDCC FMACDLO FMACDMI FMACDPL FMACDVS FMACDVC FMACDHI FMACDLS FMACDGE FMACDLT FMACDGT FMACDLE FMACDAL FNMACS FNMACSEQ FNMACSNE FNMACSCS FNMACSHS FNMACSCC FNMACSLO FNMACSMI FNMACSPL FNMACSVS FNMACSVC FNMACSHI FNMACSLS FNMACSGE FNMACSLT FNMACSGT FNMACSLE FNMACSAL FNMACD FNMACDEQ FNMACDNE FNMACDCS FNMACDHS FNMACDCC FNMACDLO FNMACDMI FNMACDPL FNMACDVS FNMACDVC FNMACDHI FNMACDLS FNMACDGE FNMACDLT FNMACDGT FNMACDLE FNMACDAL FMSCS FMSCSEQ FMSCSNE FMSCSCS FMSCSHS FMSCSCC FMSCSLO FMSCSMI FMSCSPL FMSCSVS FMSCSVC FMSCSHI FMSCSLS FMSCSGE FMSCSLT FMSCSGT FMSCSLE FMSCSAL FMSCD FMSCDEQ FMSCDNE FMSCDCS FMSCDHS FMSCDCC FMSCDLO FMSCDMI FMSCDPL FMSCDVS FMSCDVC FMSCDHI FMSCDLS FMSCDGE FMSCDLT FMSCDGT FMSCDLE FMSCDAL FNMSCS FNMSCSEQ FNMSCSNE FNMSCSCS FNMSCSHS FNMSCSCC FNMSCSLO FNMSCSMI FNMSCSPL FNMSCSVS FNMSCSVC FNMSCSHI FNMSCSLS FNMSCSGE FNMSCSLT FNMSCSGT FNMSCSLE FNMSCSAL FNMSCD FNMSCDEQ FNMSCDNE FNMSCDCS FNMSCDHS FNMSCDCC FNMSCDLO FNMSCDMI FNMSCDPL FNMSCDVS FNMSCDVC FNMSCDHI FNMSCDLS FNMSCDGE FNMSCDLT FNMSCDGT FNMSCDLE FNMSCDAL FADDS FADDSEQ FADDSNE FADDSCS FADDSHS FADDSCC FADDSLO FADDSMI FADDSPL FADDSVS FADDSVC FADDSHI FADDSLS FADDSGE FADDSLT FADDSGT FADDSLE FADDSAL FADDD FADDDEQ FADDDNE FADDDCS FADDDHS FADDDCC FADDDLO FADDDMI FADDDPL FADDDVS FADDDVC FADDDHI FADDDLS FADDDGE FADDDLT FADDDGT FADDDLE FADDDAL FSUBS FSUBSEQ FSUBSNE FSUBSCS FSUBSHS FSUBSCC FSUBSLO FSUBSMI FSUBSPL FSUBSVS FSUBSVC FSUBSHI FSUBSLS FSUBSGE FSUBSLT FSUBSGT FSUBSLE FSUBSAL FSUBD FSUBDEQ FSUBDNE FSUBDCS FSUBDHS FSUBDCC FSUBDLO FSUBDMI FSUBDPL FSUBDVS FSUBDVC FSUBDHI FSUBDLS FSUBDGE FSUBDLT FSUBDGT FSUBDLE FSUBDAL FDIVS FDIVSEQ FDIVSNE FDIVSCS FDIVSHS FDIVSCC FDIVSLO FDIVSMI FDIVSPL FDIVSVS FDIVSVC FDIVSHI FDIVSLS FDIVSGE FDIVSLT FDIVSGT FDIVSLE FDIVSAL FDIVD FDIVDEQ FDIVDNE FDIVDCS FDIVDHS FDIVDCC FDIVDLO FDIVDMI FDIVDPL FDIVDVS FDIVDVC FDIVDHI FDIVDLS FDIVDGE FDIVDLT FDIVDGT FDIVDLE FDIVDAL FCPYS FCPYSEQ FCPYSNE FCPYSCS FCPYSHS FCPYSCC FCPYSLO FCPYSMI FCPYSPL FCPYSVS FCPYSVC FCPYSHI FCPYSLS FCPYSGE FCPYSLT FCPYSGT FCPYSLE FCPYSAL FCPYD FCPYDEQ FCPYDNE FCPYDCS FCPYDHS FCPYDCC FCPYDLO FCPYDMI FCPYDPL FCPYDVS FCPYDVC FCPYDHI FCPYDLS FCPYDGE FCPYDLT FCPYDGT FCPYDLE FCPYDAL FABSS FABSSEQ FABSSNE FABSSCS FABSSHS FABSSCC FABSSLO FABSSMI FABSSPL FABSSVS FABSSVC FABSSHI FABSSLS FABSSGE FABSSLT FABSSGT FABSSLE FABSSAL FABSD FABSDEQ FABSDNE FABSDCS FABSDHS FABSDCC FABSDLO FABSDMI FABSDPL FABSDVS FABSDVC FABSDHI FABSDLS FABSDGE FABSDLT FABSDGT FABSDLE FABSDAL FNEGS FNEGSEQ FNEGSNE FNEGSCS FNEGSHS FNEGSCC FNEGSLO FNEGSMI FNEGSPL FNEGSVS FNEGSVC FNEGSHI FNEGSLS FNEGSGE FNEGSLT FNEGSGT FNEGSLE FNEGSAL FNEGD FNEGDEQ FNEGDNE FNEGDCS FNEGDHS FNEGDCC FNEGDLO FNEGDMI FNEGDPL FNEGDVS FNEGDVC FNEGDHI FNEGDLS FNEGDGE FNEGDLT FNEGDGT FNEGDLE FNEGDAL FSQRTS FSQRTSEQ FSQRTSNE FSQRTSCS FSQRTSHS FSQRTSCC FSQRTSLO FSQRTSMI FSQRTSPL FSQRTSVS FSQRTSVC FSQRTSHI FSQRTSLS FSQRTSGE FSQRTSLT FSQRTSGT FSQRTSLE FSQRTSAL FSQRTD FSQRTDEQ FSQRTDNE FSQRTDCS FSQRTDHS FSQRTDCC FSQRTDLO FSQRTDMI FSQRTDPL FSQRTDVS FSQRTDVC FSQRTDHI FSQRTDLS FSQRTDGE FSQRTDLT FSQRTDGT FSQRTDLE FSQRTDAL FCMPS FCMPSEQ FCMPSNE FCMPSCS FCMPSHS FCMPSCC FCMPSLO FCMPSMI FCMPSPL FCMPSVS FCMPSVC FCMPSHI FCMPSLS FCMPSGE FCMPSLT FCMPSGT FCMPSLE FCMPSAL FCMPD FCMPDEQ FCMPDNE FCMPDCS FCMPDHS FCMPDCC FCMPDLO FCMPDMI FCMPDPL FCMPDVS FCMPDVC FCMPDHI FCMPDLS FCMPDGE FCMPDLT FCMPDGT FCMPDLE FCMPDAL FCMPES FCMPESEQ FCMPESNE FCMPESCS FCMPESHS FCMPESCC FCMPESLO FCMPESMI FCMPESPL FCMPESVS FCMPESVC FCMPESHI FCMPESLS FCMPESGE FCMPESLT FCMPESGT FCMPESLE FCMPESAL FCMPED FCMPEDEQ FCMPEDNE FCMPEDCS FCMPEDHS FCMPEDCC FCMPEDLO FCMPEDMI FCMPEDPL FCMPEDVS FCMPEDVC FCMPEDHI FCMPEDLS FCMPEDGE FCMPEDLT FCMPEDGT FCMPEDLE FCMPEDAL FCMPZS FCMPZSEQ FCMPZSNE FCMPZSCS FCMPZSHS FCMPZSCC FCMPZSLO FCMPZSMI FCMPZSPL FCMPZSVS FCMPZSVC FCMPZSHI FCMPZSLS FCMPZSGE FCMPZSLT FCMPZSGT FCMPZSLE FCMPZSAL FCMPZD FCMPZDEQ FCMPZDNE FCMPZDCS FCMPZDHS FCMPZDCC FCMPZDLO FCMPZDMI FCMPZDPL FCMPZDVS FCMPZDVC FCMPZDHI FCMPZDLS FCMPZDGE FCMPZDLT FCMPZDGT FCMPZDLE FCMPZDAL FCMPEZS FCMPEZSEQ FCMPEZSNE FCMPEZSCS FCMPEZSHS FCMPEZSCC FCMPEZSLO FCMPEZSMI FCMPEZSPL FCMPEZSVS FCMPEZSVC FCMPEZSHI FCMPEZSLS FCMPEZSGE FCMPEZSLT FCMPEZSGT FCMPEZSLE FCMPEZSAL FCMPEZD FCMPEZDEQ FCMPEZDNE FCMPEZDCS FCMPEZDHS FCMPEZDCC FCMPEZDLO FCMPEZDMI FCMPEZDPL FCMPEZDVS FCMPEZDVC FCMPEZDHI FCMPEZDLS FCMPEZDGE FCMPEZDLT FCMPEZDGT FCMPEZDLE FCMPEZDAL FCVTDS FCVTDSEQ FCVTDSNE FCVTDSCS FCVTDSHS FCVTDSCC FCVTDSLO FCVTDSMI FCVTDSPL FCVTDSVS FCVTDSVC FCVTDSHI FCVTDSLS FCVTDSGE FCVTDSLT FCVTDSGT FCVTDSLE FCVTDSAL FCVTSD FCVTSDEQ FCVTSDNE FCVTSDCS FCVTSDHS FCVTSDCC FCVTSDLO FCVTSDMI FCVTSDPL FCVTSDVS FCVTSDVC FCVTSDHI FCVTSDLS FCVTSDGE FCVTSDLT FCVTSDGT FCVTSDLE FCVTSDAL FUITOS FUITOSEQ FUITOSNE FUITOSCS FUITOSHS FUITOSCC FUITOSLO FUITOSMI FUITOSPL FUITOSVS FUITOSVC FUITOSHI FUITOSLS FUITOSGE FUITOSLT FUITOSGT FUITOSLE FUITOSAL FUITOD FUITODEQ FUITODNE FUITODCS FUITODHS FUITODCC FUITODLO FUITODMI FUITODPL FUITODVS FUITODVC FUITODHI FUITODLS FUITODGE FUITODLT FUITODGT FUITODLE FUITODAL FSITOS FSITOSEQ FSITOSNE FSITOSCS FSITOSHS FSITOSCC FSITOSLO FSITOSMI FSITOSPL FSITOSVS FSITOSVC FSITOSHI FSITOSLS FSITOSGE FSITOSLT FSITOSGT FSITOSLE FSITOSAL FSITOD FSITODEQ FSITODNE FSITODCS FSITODHS FSITODCC FSITODLO FSITODMI FSITODPL FSITODVS FSITODVC FSITODHI FSITODLS FSITODGE FSITODLT FSITODGT FSITODLE FSITODAL FTOUIS FTOUISEQ FTOUISNE FTOUISCS FTOUISHS FTOUISCC FTOUISLO FTOUISMI FTOUISPL FTOUISVS FTOUISVC FTOUISHI FTOUISLS FTOUISGE FTOUISLT FTOUISGT FTOUISLE FTOUISAL FTOUID FTOUIDEQ FTOUIDNE FTOUIDCS FTOUIDHS FTOUIDCC FTOUIDLO FTOUIDMI FTOUIDPL FTOUIDVS FTOUIDVC FTOUIDHI FTOUIDLS FTOUIDGE FTOUIDLT FTOUIDGT FTOUIDLE FTOUIDAL FTOUIZS FTOUIZSEQ FTOUIZSNE FTOUIZSCS FTOUIZSHS FTOUIZSCC FTOUIZSLO FTOUIZSMI FTOUIZSPL FTOUIZSVS FTOUIZSVC FTOUIZSHI FTOUIZSLS FTOUIZSGE FTOUIZSLT FTOUIZSGT FTOUIZSLE FTOUIZSAL FTOUIZD FTOUIZDEQ FTOUIZDNE FTOUIZDCS FTOUIZDHS FTOUIZDCC FTOUIZDLO FTOUIZDMI FTOUIZDPL FTOUIZDVS FTOUIZDVC FTOUIZDHI FTOUIZDLS FTOUIZDGE FTOUIZDLT FTOUIZDGT FTOUIZDLE FTOUIZDAL FTOSIS FTOSISEQ FTOSISNE FTOSISCS FTOSISHS FTOSISCC FTOSISLO FTOSISMI FTOSISPL FTOSISVS FTOSISVC FTOSISHI FTOSISLS FTOSISGE FTOSISLT FTOSISGT FTOSISLE FTOSISAL FTOSID FTOSIDEQ FTOSIDNE FTOSIDCS FTOSIDHS FTOSIDCC FTOSIDLO FTOSIDMI FTOSIDPL FTOSIDVS FTOSIDVC FTOSIDHI FTOSIDLS FTOSIDGE FTOSIDLT FTOSIDGT FTOSIDLE FTOSIDAL FTOSIZS FTOSIZSEQ FTOSIZSNE FTOSIZSCS FTOSIZSHS FTOSIZSCC FTOSIZSLO FTOSIZSMI FTOSIZSPL FTOSIZSVS FTOSIZSVC FTOSIZSHI FTOSIZSLS FTOSIZSGE FTOSIZSLT FTOSIZSGT FTOSIZSLE FTOSIZSAL FTOSIZD FTOSIZDEQ FTOSIZDNE FTOSIZDCS FTOSIZDHS FTOSIZDCC FTOSIZDLO FTOSIZDMI FTOSIZDPL FTOSIZDVS FTOSIZDVC FTOSIZDHI FTOSIZDLS FTOSIZDGE FTOSIZDLT FTOSIZDGT FTOSIZDLE FTOSIZDAL FSTS FSTSEQ FSTSNE FSTSCS FSTSHS FSTSCC FSTSLO FSTSMI FSTSPL FSTSVS FSTSVC FSTSHI FSTSLS FSTSGE FSTSLT FSTSGT FSTSLE FSTSAL FSTD FSTDEQ FSTDNE FSTDCS FSTDHS FSTDCC FSTDLO FSTDMI FSTDPL FSTDVS FSTDVC FSTDHI FSTDLS FSTDGE FSTDLT FSTDGT FSTDLE FSTDAL FSTMIAS FSTMIASEQ FSTMIASNE FSTMIASCS FSTMIASHS FSTMIASCC FSTMIASLO FSTMIASMI FSTMIASPL FSTMIASVS FSTMIASVC FSTMIASHI FSTMIASLS FSTMIASGE FSTMIASLT FSTMIASGT FSTMIASLE FSTMIASAL FSTMIAD FSTMIADEQ FSTMIADNE FSTMIADCS FSTMIADHS FSTMIADCC FSTMIADLO FSTMIADMI FSTMIADPL FSTMIADVS FSTMIADVC FSTMIADHI FSTMIADLS FSTMIADGE FSTMIADLT FSTMIADGT FSTMIADLE FSTMIADAL FSTMIAX FSTMIAXEQ FSTMIAXNE FSTMIAXCS FSTMIAXHS FSTMIAXCC FSTMIAXLO FSTMIAXMI FSTMIAXPL FSTMIAXVS FSTMIAXVC FSTMIAXHI FSTMIAXLS FSTMIAXGE FSTMIAXLT FSTMIAXGT FSTMIAXLE FSTMIAXAL FSTMDBS FSTMDBSEQ FSTMDBSNE FSTMDBSCS FSTMDBSHS FSTMDBSCC FSTMDBSLO FSTMDBSMI FSTMDBSPL FSTMDBSVS FSTMDBSVC FSTMDBSHI FSTMDBSLS FSTMDBSGE FSTMDBSLT FSTMDBSGT FSTMDBSLE FSTMDBSAL FSTMDBD FSTMDBDEQ FSTMDBDNE FSTMDBDCS FSTMDBDHS FSTMDBDCC FSTMDBDLO FSTMDBDMI FSTMDBDPL FSTMDBDVS FSTMDBDVC FSTMDBDHI FSTMDBDLS FSTMDBDGE FSTMDBDLT FSTMDBDGT FSTMDBDLE FSTMDBDAL FSTMDBX FSTMDBXEQ FSTMDBXNE FSTMDBXCS FSTMDBXHS FSTMDBXCC FSTMDBXLO FSTMDBXMI FSTMDBXPL FSTMDBXVS FSTMDBXVC FSTMDBXHI FSTMDBXLS FSTMDBXGE FSTMDBXLT FSTMDBXGT FSTMDBXLE FSTMDBXAL FLDS FLDSEQ FLDSNE FLDSCS FLDSHS FLDSCC FLDSLO FLDSMI FLDSPL FLDSVS FLDSVC FLDSHI FLDSLS FLDSGE FLDSLT FLDSGT FLDSLE FLDSAL FLDD FLDDEQ FLDDNE FLDDCS FLDDHS FLDDCC FLDDLO FLDDMI FLDDPL FLDDVS FLDDVC FLDDHI FLDDLS FLDDGE FLDDLT FLDDGT FLDDLE FLDDAL FLDMIAS FLDMIASEQ FLDMIASNE FLDMIASCS FLDMIASHS FLDMIASCC FLDMIASLO FLDMIASMI FLDMIASPL FLDMIASVS FLDMIASVC FLDMIASHI FLDMIASLS FLDMIASGE FLDMIASLT FLDMIASGT FLDMIASLE FLDMIASAL FLDMIAD FLDMIADEQ FLDMIADNE FLDMIADCS FLDMIADHS FLDMIADCC FLDMIADLO FLDMIADMI FLDMIADPL FLDMIADVS FLDMIADVC FLDMIADHI FLDMIADLS FLDMIADGE FLDMIADLT FLDMIADGT FLDMIADLE FLDMIADAL FLDMIAX FLDMIAXEQ FLDMIAXNE FLDMIAXCS FLDMIAXHS FLDMIAXCC FLDMIAXLO FLDMIAXMI FLDMIAXPL FLDMIAXVS FLDMIAXVC FLDMIAXHI FLDMIAXLS FLDMIAXGE FLDMIAXLT FLDMIAXGT FLDMIAXLE FLDMIAXAL FLDMDBS FLDMDBSEQ FLDMDBSNE FLDMDBSCS FLDMDBSHS FLDMDBSCC FLDMDBSLO FLDMDBSMI FLDMDBSPL FLDMDBSVS FLDMDBSVC FLDMDBSHI FLDMDBSLS FLDMDBSGE FLDMDBSLT FLDMDBSGT FLDMDBSLE FLDMDBSAL FLDMDBD FLDMDBDEQ FLDMDBDNE FLDMDBDCS FLDMDBDHS FLDMDBDCC FLDMDBDLO FLDMDBDMI FLDMDBDPL FLDMDBDVS FLDMDBDVC FLDMDBDHI FLDMDBDLS FLDMDBDGE FLDMDBDLT FLDMDBDGT FLDMDBDLE FLDMDBDAL FLDMDBX FLDMDBXEQ FLDMDBXNE FLDMDBXCS FLDMDBXHS FLDMDBXCC FLDMDBXLO FLDMDBXMI FLDMDBXPL FLDMDBXVS FLDMDBXVC FLDMDBXHI FLDMDBXLS FLDMDBXGE FLDMDBXLT FLDMDBXGT FLDMDBXLE FLDMDBXAL FMSR FMSREQ FMSRNE FMSRCS FMSRHS FMSRCC FMSRLO FMSRMI FMSRPL FMSRVS FMSRVC FMSRHI FMSRLS FMSRGE FMSRLT FMSRGT FMSRLE FMSRAL FMRS FMRSEQ FMRSNE FMRSCS FMRSHS FMRSCC FMRSLO FMRSMI FMRSPL FMRSVS FMRSVC FMRSHI FMRSLS FMRSGE FMRSLT FMRSGT FMRSLE FMRSAL FMDLR FMDLREQ FMDLRNE FMDLRCS FMDLRHS FMDLRCC FMDLRLO FMDLRMI FMDLRPL FMDLRVS FMDLRVC FMDLRHI FMDLRLS FMDLRGE FMDLRLT FMDLRGT FMDLRLE FMDLRAL FMRDL FMRDLEQ FMRDLNE FMRDLCS FMRDLHS FMRDLCC FMRDLLO FMRDLMI FMRDLPL FMRDLVS FMRDLVC FMRDLHI FMRDLLS FMRDLGE FMRDLLT FMRDLGT FMRDLLE FMRDLAL FMDHR FMDHREQ FMDHRNE FMDHRCS FMDHRHS FMDHRCC FMDHRLO FMDHRMI FMDHRPL FMDHRVS FMDHRVC FMDHRHI FMDHRLS FMDHRGE FMDHRLT FMDHRGT FMDHRLE FMDHRAL FMRDH FMRDHEQ FMRDHNE FMRDHCS FMRDHHS FMRDHCC FMRDHLO FMRDHMI FMRDHPL FMRDHVS FMRDHVC FMRDHHI FMRDHLS FMRDHGE FMRDHLT FMRDHGT FMRDHLE FMRDHAL FMXR FMXREQ FMXRNE FMXRCS FMXRHS FMXRCC FMXRLO FMXRMI FMXRPL FMXRVS FMXRVC FMXRHI FMXRLS FMXRGE FMXRLT FMXRGT FMXRLE FMXRAL FMRX FMRXEQ FMRXNE FMRXCS FMRXHS FMRXCC FMRXLO FMRXMI FMRXPL FMRXVS FMRXVC FMRXHI FMRXLS FMRXGE FMRXLT FMRXGT FMRXLE FMRXAL FMSTAT FMSTATEQ FMSTATNE FMSTATCS FMSTATHS FMSTATCC FMSTATLO FMSTATMI FMSTATPL FMSTATVS FMSTATVC FMSTATHI FMSTATLS FMSTATGE FMSTATLT FMSTATGT FMSTATLE FMSTATAL ADR ADREQ ADRNE ADRCS ADRHS ADRCC ADRLO ADRMI ADRPL ADRVS ADRVC ADRHI ADRLS ADRGE ADRLT ADRGT ADRLE ADRAL ADRL ADREQL ADRNEL ADRCSL ADRHSL ADRCCL ADRLOL ADRMIL ADRPLL ADRVSL ADRVCL ADRHIL ADRLSL ADRGEL ADRLTL ADRGTL ADRLEL ADRALL
Transparent Colors
Color 0 of all background and object palettes is treated as transparent. Since palettes can have either 16 or 256 colors, only 15 and 255 colors respectively are actually visible.
Backdrop Color Color 0 of the background palette 0 is used as backdrop color. That means this color is displayed if an area of the screen is not covered by any non-transparent background or object dots.
chickendude (./32) :
On pourrait ajouter un autre paramètre (s'il est vide donc il faudra créer la palette) ou tout simplement un pourrait ajouter une image qui contient tous les couleurs. (EDIT: donc on écrirait deux .bmps, le fichier du sprite et le fichier de la palette)
map: .byte 0x0,0x1,0x2,0x3, 0x0,0x1,0x2,0x3, 0x0,0x1,0x2,0x3, 0x0,0x1,0x2,0x3, 0x0,0x1,0x2,0x3, 0x0,0x1,0x2,0x3, 0x0,0x1,0x2,0x3, 0x0,0x1,0x2,0x3 .byte 0x4,0x5,0x6,0x7, 0x4,0x5,0x6,0x7, 0x4,0x5,0x6,0x7, 0x4,0x5,0x6,0x7, 0x4,0x5,0x6,0x7, 0x4,0x5,0x6,0x7, 0x4,0x5,0x6,0x7, 0x4,0x5,0x6,0x7 .byte 0x8,0x9,0xA,0xB, 0x8,0x9,0xA,0xB, 0x8,0x9,0xA,0xB, 0x8,0x9,0xA,0xB, 0x8,0x9,0xA,0xB, 0x8,0x9,0xA,0xB, 0x8,0x9,0xA,0xB, 0x8,0x9,0xA,0xB .byte 0xC,0xD,0xE,0xF, 0xC,0xD,0xE,0xF, 0xC,0xD,0xE,0xF, 0xC,0xD,0xE,0xF, 0xC,0xD,0xE,0xF, 0xC,0xD,0xE,0xF, 0xC,0xD,0xE,0xF, 0xC,0xD,0xE,0xF
ldr r0,[r0] @ Charger X (r0 = pointeur au label "x") ldr r1,[r1] @ Charger Y (r1 = pointeur au label "y") mov r0,r0,LSL #8 @ Premier 8 bits sont une fraction mov r1,r1,LSL #8 ldr r3,=REG_BG2X str r0,[r3],#4 @ X @ Si je commente la suivante instruction le scrolling est bon str r1,[r3] @ Y REG_BG2Y
map: .db 1,1,1,1,1,1,1,1,1,1,1 .db 1,0,0,0,0,0,0,0,0,0,1 .db 1,0,0,0,0,0,0,0,0,0,1 .db 1,0,0,0,0,0,0,0,0,0,1 .db 1,0,0,0,0,0,0,0,0,0,1 .db 1,0,0,0,0,0,0,0,0,0,1 .db 1,1,1,1,1,1,1,1,1,1,1 metaTiles: metaTile0: .db 0,0 .db 0,0 metaTile1: .db 1,1 .db 1,1 sprites: tile0: .db %00000000 .db %00000000 .db %00000000 .db %00000000 .db %00000000 .db %00000000 .db %00000000 .db %00000000 tile1: .db %11111111 .db %11111111 .db %11111111 .db %11111111 .db %11111111 .db %11111111 .db %11111111 .db %11111111
ldr r1, =REG_DISPSTAT @ Display Status, il faut dire au LCD que nous voulons que VBlank ldr r2, [r1] @ déclenche une interruption orr r2, r2, #STAT_VBLANK_IRQ str r2, [r1]
ldr r1, =REG_DISPSTAT ldr r2, =STAT_VBLANK str r2, [r1]
mov r0, #REG_DISPCNT @ Display Control Register mov r1, #BG2_ENABLE orr r1, #MODE_1 @ Mode 1 avec BG2 str r1,[r0]
interrupt: mov r0, #REG_DISPCNT @ Une petite optimisation, en lieu de "ldr r0,=REG_IE" on calcule l'offset de #REG_DISPCNT (0x0400:0000) ldr r1, [r0,#REG_IE-REG_DISPCNT] @ r1 = REG_IE (2 octets) et REG_IF (2 octets) and r0, r1,r1, LSR #16 @ ANDer REG_IE et REG_IF tst r0, #INT_VBLANK bxeq lr @ Si l'interruption n'est pas un VBLANK, quitter ldr r0, =x ldr r1, =y ldr r0,[r0] @ Charger X ldr r1,[r1] @ Charger Y mov r0,r0,LSL #8 @ Premier 8 bits de REG_BG2X = fraction mov r1,r1,LSL #8 ldr r3,=REG_BG2X str r0,[r3], #4 @ X str r1,[r3] @ Y REG_BG2Y @ Annoncer que l'on a fini son travail avec l'interruption mov r0, #REG_BASE @ 0x04000000 (REG_DISPCNT) ldr r1, [r0, #REG_IF-REG_BASE] mov r2, #INT_VBLANK @ orr r2, r1 @ Desarmer toutes les interruptions (il faut les mettre à 1 pour les désarmer) str r2, [r0, #REG_IF-REG_BASE] @ ldr r1, [r0, #REG_IE-REG_BASE] @ r1 = REG_IE (2 octets) et REG_IF (2 octets) and r3, r1,r1, LSR #16 @ ANDer REG_IE et REG_IF ldrh r2, [r0, #-8] @ Les drapeaux d'interruptions du BIOS (0x3FFFFF8 est un miroir de 0x3007FF8) orr r2, r2, r3 @ (REG_IE & REG_IF) | "BIOS_IF" strh r2, [r0, #-8] @ Les écrire (pour que le hardware les efface, il n'a pas de sens, je sais) bx lrDwedit m'a aidé avec la dernière partie. Il a dit que le BIOS gère les interruptions aussi et qu'il faut les effacer aussi si l'on veut utiliser certaines routines "swi". Et j'ai appris un petit truc aujourd'hui : pourquoi n'y a-t-il pas un "bx lr" (bx = sauter à l'adresse contenue dans un registre, donc ici comme un ret) à la fin de cette routine (c'est du code pour la NDS) ?
waitforVblank: stmfd sp!, {r0-r1, lr} ldr r0, =REG_VCOUNT waitforVblankLoop: ldrh r1,[r0] @ read REG_VCOUNT into r2 cmp r1, #193 @ 193 is, of course, the first scanline of vblank bne waitforVblankLoop @ loop if r2 is not equal to (NE condition) 193 ldmfd sp!, {r0-r1, pc}Bon je n'ai pas eu beaucoup de temps ces derniers jours, mais j'espère pouvoir écrire un simple tilemapper bientôt. Puis je veux jouer avec de la musique et les couches (avoir plus d'un fond)
chickendude (./46) :
Dwedit m'a aidé avec la dernière partie.
STMDA (Decrement After) = STMED (Empty Descending)
STMIA (Increment After) = STMEA (Empty Ascending)
STMDB (Decrement Before) = STMFD (Full Descending) STMIB (Increment Before) = STMFA (Full Ascending)
drawMap: ldr r0, =map ldr r1, =tile32x32 ldr r2, =SCREEN_BLOCK_16 @ Il faut charger les tilemaps dans un des screen blocks mov r9, #16 @ 16 rangs drawMapOutterLoop: mov r8, #16 @ 16 colonnes drawMapRowLoop: ldrb r3, [r0],#1 @ Charger un octet de le map add r3, r1, r3, LSL #4 @ ScreenBlock+(tileNo*16) ldmia r3,{r4-r7} @ On charge les valeurs à [r3] (tile32x32 + offset) dans les registres r4-r7 @ Ce sont des sprites 8x8, chaque registre en contient 4 (8 pixels * 4 sprites = 32 pixels) @ Il y a quatre rangs de sprites, donc chaque registre represente un rang str r4, [r2],#64 @ Sauter au prochain rang (8x8) str r5, [r2],#64 @ Sauter au prochain rang str r6, [r2],#64 @ Sauter au prochain rang str r7, [r2],#64 @ Sauter au prochain rang sub r2, r2, #256-4 @ Le -4 est pour aller à la prochaine colonne subs r8, r8, #1 @ Compteur de colonnes bne drawMapRowLoop add r2,r2,#256-64 @ Sauter au prochain rang (32x32) subs r9, r9, #1 @ Compteur de rangs bne drawMapOutterLoop bx lrJe crois que les tuiles 16x16 vont être un peu plus compliqués de programmer, parce qu'il faudra utiliser des halfwords.
.arm .include "gba.inc" .text .global main main: ldr r0,=OAM @ on reset les sprites (je ne sais pas si ça a vraiment de l'importance) ldr r1,=128 @ il y a 128 emplacements de 8 octets chacuns (l'OAM fait 1ko) ldr r2,=(300<<16) @ le 3ème octet suivit du prochain bit définit la coordonnée X (2^9=512 valeurs) du sprite, @ on la met donc à 300 pour être hors de l'écran (il fait 240*160) @ (pour les attributs de l'OAM, cf http://gfx.developpez.com/prog-gba/touches/#L8 ) reset_sprites_loop: str r2,[r0],#8 @ on colle la valeur de r2 à l'adresse de r0, puis incrémente de 8 octets l'adresse de r0 subs r1,r1,#1 @ la boucle fait 128 tours bne reset_sprites_loop ldr r1,=REG_DISPCNT ldr r2,=(MODE_0|BG2_ENABLE|OBJ_ENABLE|OBJ_MAP_1D) str r2,[r1] ldr r0,=OAM @ on va s'occuper de charger nos sprites ldr r1,=(SQUARE|COLOR_16|10)|((SIZE_8|10)<<16) @ cf l'organisation des attributs des sprites (là on règle les deux premiers) mov r2,#0 @ premier tile de 8*8 pixels du sprite (index du sprite dans le CHARMEM quoi) str r1,[r0],#4 @ on charge les deux premiers attributs, puis on les "saute" str r2,[r0],#4 @ on charge le troisième attribut ldr r1,=(SQUARE|COLOR_16|30)|((SIZE_8|30)<<16) mov r2,#3 @ /!\ est-ce le bon index ? str r1,[r0],#4 str r2,[r0],#4 ldr r1,=OBJPAL @ on s'occupe de la palette maintenant ldr r2,=5 @ nombre de couleurs de la palette à copier ldr r3,=palette palette_loop: ldr r7,[r3],#4 @ on charge la valeur à l'adresse de r3 dans r7, puis on incrémente de 4 octets (16 bits = 1 couleur) l'adresse de r3 str r7,[r1],#4 @ on colle le tout dans r1 puis incrémente de même r1 subs r2,r2,#1 @ on fait 5 tours bne palette_loop ldr r1,=CHARMEM @ au tour des sprites ldr r2,=16*8 @ taille du sprite /!\ ça je ne suis pas sûr ldr r3,=pong sprite_loop: ldr r7,[r3],#4 @ la même qu'au dessus str r7,[r1],#4 subs r2,r2,#1 bne sprite_loop ldr r2,=8*8 @ deuxième sprite (la balle) ldr r3,=ball sprite_loop2: ldr r7,[r3],#4 str r7,[r1],#4 subs r2,r2,#1 bne sprite_loop2 end: b end .ltorg palette: .hword 0x0000,0x2D6B,0x6F7B,0x6318,0x4210 pong: .word 0x00000000 .word 0x00000000 .word 0x11111100 .word 0x22222210 .word 0x33333331 .word 0x44444441 .word 0x44444410 .word 0x11111100 .word 0x00000000 .word 0x00000000 .word 0x00111111 .word 0x01222222 .word 0x12333333 .word 0x12344444 .word 0x01344444 .word 0x00111111 ball: .word 0x00111100 .word 0x01222210 .word 0x12333331 .word 0x12344441 .word 0x12344441 .word 0x12344441 .word 0x01344410 .word 0x00111100
ldr r1,=(SQUARE|COLOR_16|30)|((SIZE_8|30)<<16) mov r2,#2 @ /!\ est-ce le bon index ?
.arm .include "gba.inc" SCREEN_W = 240 SCREEN_H = 160 PADDLE_X = SCREEN_W/2-(3*8)/2 PADDLE_Y = SCREEN_H-8 BALL_X = 0 BALL_Y = 0 .text .global main main: ldr r0,=OAM @ on reset les sprites (je ne sais pas si ça a vraiment de l'importance) ldr r1,=128 @ il y a 128 emplacements de 8 octets chacuns (l'OAM fait 1ko) ldr r2,=(300<<16) @ le 3ème octet suivit du prochain bit définit la coordonnée X (2^9=512 valeurs) du sprite, @ on la met donc à 300 pour être hors de l'écran (il fait 240*160) @ (pour les attributs de l'OAM, cf http://gfx.developpez.com/prog-gba/touches/#L8 ) reset_sprites_loop: str r2,[r0],#8 @ on colle la valeur de r2 à l'adresse de r0, puis incrémente de 8 octets l'adresse de r0 subs r1,r1,#1 @ la boucle fait 128 tours bne reset_sprites_loop ldr r1,=REG_DISPCNT ldr r2,=(MODE_0|BG2_ENABLE|OBJ_ENABLE|OBJ_MAP_1D) str r2,[r1] ldr r0,=OAM @ on va s'occuper de charger nos sprites ldr r1,=(SQUARE|COLOR_16|PADDLE_Y)|((SIZE_8|PADDLE_X)<<16) @ cf l'organisation des attributs des sprites (là on règle les deux premiers) mov r2,#0 @ premier tile de 8*8 pixels du sprite (index du sprite dans le CHARMEM quoi) str r1,[r0],#4 @ on charge les deux premiers attributs, puis on les "saute" str r2,[r0],#4 @ on charge le troisième attribut ldr r1,=(SQUARE|COLOR_16|PADDLE_Y)|((SIZE_8|PADDLE_X+8)<<16) mov r2,#1 str r1,[r0],#4 str r2,[r0],#4 ldr r1,=(SQUARE|COLOR_16|PADDLE_Y)|((SIZE_8|PADDLE_X+16)<<16) mov r2,#2 str r1,[r0],#4 str r2,[r0],#4 ldr r1,=(SQUARE|COLOR_16|BALL_Y)|((SIZE_8|BALL_X)<<16) mov r2,#3 @ quatrième tile str r1,[r0],#4 str r2,[r0],#4 ldr r1,=OBJPAL @ on s'occupe de la palette maintenant ldr r2,=5 @ nombre de couleurs de la palette à copier ldr r3,=palette palette_loop: ldr r7,[r3],#4 @ on charge la valeur à l'adresse de r3 dans r7, puis on incrémente de 4 octets (16 bits = 1 couleur) l'adresse de r3 str r7,[r1],#4 @ on colle le tout dans r1 puis incrémente de même r1 subs r2,r2,#1 @ on fait 5 tours bne palette_loop ldr r1,=CHARMEM @ au tour des sprites ldr r2,=8*8*4 @ tailles des sprites et nombre ldr r3,=paddle_left sprite_loop: ldr r7,[r3],#4 @ la même qu'au dessus str r7,[r1],#4 subs r2,r2,#1 bne sprite_loop main_loop: mov r3,#KEYS_HIGH @ MSB orr r3,r3,#KEYS_LOW @ ajouter LSB de l'adresse (plus rapide que ldr r3,#KEYS) mov r2,#0x300 orr r2,#0xFF @ r2 = $3FF (10 touches codés sur 10 bits) ldr r4,[r3] @ r4 = touche pressée ldr r0,=player_x tst r4, #KEY_LEFT bleq left tst r4, #KEY_RIGHT bleq right ldrb r0,[r0] @ on charge un octet de l'adresse r0 dans r0 ldr r3,=OAM+2 @ deuxième attribut (=OAM+2 octets), X=1er octet+1er bit suivant ldrh r4,[r3] and r4,r4,#0xFE00 @ on récupère donc les 9 premiers bits add r4,r0 strh r4,[r3] add r4,#8 @ on s'occupe de la deuxième partie de la raquette (centre) strh r4,[r3, #8] @ on colle le tout dans l'emplacement suivant (8 octets après) add r4,#8 @ idem avec la troisième partie strh r4,[r3, #16] bl handle_ball @ on s'occupe de la balle mov r0,#0x1F00 @ pour ralentir le programme delay_loop: subs r0,r0,#1 bne delay_loop b main_loop left: ldrb r2,[r0] subs r2,r2,#1 bxcc lr @ on quitte si le carry flag est set (donc le résultat du dessus inférieur à 0) strb r2,[r0] @ sauver les nouvelles coordonnées (1 octet) bx lr @ quitter la routine right: ldrb r2,[r0] add r2,r2,#1 cmp r2,#SCREEN_W-(8*3) @ on test voir si ça sort de l'écran bxcs lr @ on quitte si le sign flag est mis strb r2,[r0] bx lr handle_ball: @ le code suivant doit incrémenter ou décrementer X et Y en fonction de la direction de la balle (gère les rebonds), mais ça bug :/ ldr r2,=ball_x ldrb r0,[r2] ldr r3,=ball_velocity ldrb r4,[r3] add r0,r0,r4 bcc change_ball_velocity cmp r0,#SCREEN_W-8 bcs change_ball_velocity strb r0,[r2] ldr r2,=ball_y ldrb r1,[r2] add r1,r1,r4 bcc change_ball_velocity cmp r1,#SCREEN_H-8 bcs change_ball_velocity strb r1,[r2] ldr r3,=OAM+3*8 ldrh r4,[r3] ldrh r5,[r3,#2] and r4,r4,#0xFF00 add r4,r1 strh r4,[r3],#2 and r5,r5,#0xFE00 add r5,r0 strh r5,[r3] bx lr change_ball_velocity: mvn r4,#0 strb r4,[r3] bx lr .ltorg palette: .hword 0x0000,0x001F,0x56B5,0x7FFF .align 4 @ peut être inutile maintenant ? paddle_left: .word 0x00000000 .word 0x22011000 .word 0x22011130 .word 0x33033133 .word 0x22011333 .word 0x22011133 .word 0x22011130 .word 0x22011000 paddle_center: .word 0x00000000 .word 0x22222222 .word 0x22222222 .word 0x33333333 .word 0x22222222 .word 0x22222222 .word 0x22222222 .word 0x22222222 paddle_right: .word 0x00000000 .word 0x00011022 .word 0x03111022 .word 0x33133033 .word 0x33311022 .word 0x33111022 .word 0x03111022 .word 0x00011022 ball: .word 0x00003330 .word 0x00033333 .word 0x00033333 .word 0x00033333 .word 0x00003330 .word 0x00000000 .word 0x00000000 .word 0x00000000 .data @ ne faudrait-il pas que je le mette avant les sprites ? player_x: .byte PADDLE_X ball_x: .byte BALL_X ball_y: .byte BALL_Y ball_velocity: .byte 1
chickendude (./53) :
Et je crois que .data met tout ce qui le suit dans la RAM où tu pourras le modifier. Il ne faut pas modifier les sprites donc faut pas les mettre dans .data. Si tu laisses les variables dans .text, tu ne pourras pas les modifier parce qu'elles seront dans ROM. Je ne sais pas si c'est comme ça que l'on utilise les variables, on pourrait aussi se servir d'une partie de la pile (avec un pointeur).
.arm .include "gba.inc" SCREEN_W = 240 SCREEN_H = 160 PADDLE_X = SCREEN_W/2-(3*8)/2 PADDLE_Y = SCREEN_H-8 BALL_X = 0 BALL_Y = 0 .text .global main main: ldr r0,=OAM @ on reset les sprites (je ne sais pas si ça a vraiment de l'importance) ldr r1,=128 @ il y a 128 emplacements de 8 octets chacuns (l'OAM fait 1ko) ldr r2,=(300<<16) @ le 3ème octet suivit du prochain bit définit la coordonnée X (2^9=512 valeurs) du sprite, @ on la met donc à 300 pour être hors de l'écran (il fait 240*160) @ (pour les attributs de l'OAM, cf http://gfx.developpez.com/prog-gba/touches/#L8 ) reset_sprites_loop: str r2,[r0],#8 @ on colle la valeur de r2 à l'adresse de r0, puis incrémente de 8 octets l'adresse de r0 subs r1,r1,#1 @ la boucle fait 128 tours bne reset_sprites_loop ldr r1,=REG_DISPCNT ldr r2,=(MODE_0|BG2_ENABLE|OBJ_ENABLE|OBJ_MAP_1D) str r2,[r1] ldr r0,=OAM @ on va s'occuper de charger nos sprites ldr r1,=(SQUARE|COLOR_16|PADDLE_Y)|((SIZE_8|PADDLE_X)<<16) @ cf l'organisation des attributs des sprites (là on règle les deux premiers) mov r2,#0 @ premier tile de 8*8 pixels du sprite (index du sprite dans le CHARMEM quoi) str r1,[r0],#4 @ on charge les deux premiers attributs, puis on les "saute" str r2,[r0],#4 @ on charge le troisième attribut ldr r1,=(SQUARE|COLOR_16|PADDLE_Y)|((SIZE_8|PADDLE_X+8)<<16) mov r2,#1 str r1,[r0],#4 str r2,[r0],#4 ldr r1,=(SQUARE|COLOR_16|PADDLE_Y)|((SIZE_8|PADDLE_X+16)<<16) mov r2,#2 str r1,[r0],#4 str r2,[r0],#4 ldr r1,=(SQUARE|COLOR_16|BALL_Y)|((SIZE_8|BALL_X)<<16) mov r2,#3 @ quatrième tile str r1,[r0],#4 str r2,[r0],#4 ldr r1,=OBJPAL @ on s'occupe de la palette maintenant ldr r2,=5 @ nombre de couleurs de la palette à copier ldr r3,=palette palette_loop: ldr r7,[r3],#4 @ on charge la valeur à l'adresse de r3 dans r7, puis on incrémente de 4 octets (16 bits = 1 couleur) l'adresse de r3 str r7,[r1],#4 @ on colle le tout dans r1 puis incrémente de même r1 subs r2,r2,#1 @ on fait 5 tours bne palette_loop ldr r1,=CHARMEM @ au tour des sprites ldr r2,=8*8*4 @ tailles des sprites et nombre ldr r3,=paddle_left sprite_loop: ldr r7,[r3],#4 @ la même qu'au dessus str r7,[r1],#4 subs r2,r2,#1 bne sprite_loop main_loop: mov r3,#KEYS_HIGH @ MSB orr r3,r3,#KEYS_LOW @ ajouter LSB de l'adresse (plus rapide que ldr r3,#KEYS) mov r2,#0x300 orr r2,#0xFF @ r2 = $3FF (10 touches codés sur 10 bits) ldr r4,[r3] @ r4 = touche pressée ldr r0,=player_x tst r4, #KEY_LEFT bleq left tst r4, #KEY_RIGHT bleq right ldr r6,=REG_VCOUNT waitVBlank: ldrb r7,[r6] cmp r7,#161 bne waitVBlank ldrb r0,[r0] @ on charge un octet de l'adresse r0 dans r0 ldr r3,=OAM+2 @ deuxième attribut (=OAM+2 octets), X=1er octet+1er bit suivant ldrh r4,[r3] and r4,r4,#0xFE00 @ on récupère donc les 9 premiers bits add r4,r0 strh r4,[r3] add r4,#8 @ on s'occupe de la deuxième partie de la raquette (centre) strh r4,[r3, #8] @ on colle le tout dans l'emplacement suivant (8 octets après) add r4,#8 @ idem avec la troisième partie strh r4,[r3, #16] bl handle_ball @ on s'occupe de la balle mov r0,#0x100 @ pour ralentir le programme delay_loop: subs r0,r0,#1 bne delay_loop b main_loop left: ldrb r2,[r0] subs r2,r2,#1 bxcc lr @ on quitte si le carry flag est set (donc le résultat du dessus inférieur à 0) strb r2,[r0] @ sauver les nouvelles coordonnées (1 octet) bx lr @ quitter la routine right: ldrb r2,[r0] add r2,r2,#1 cmp r2,#SCREEN_W-(8*3) @ on test voir si ça sort de l'écran bxcs lr @ on quitte si le sign flag est mis strb r2,[r0] bx lr handle_ball: @ le code suivant doit incrémenter ou décrementer X et Y en fonction de la direction de la balle (gère les rebonds), mais ça bug :/ @ r0 = nouveau valeur de ball_x @ r2 = ball_x (ptr) @ r3 = ball_vel_x (ptr) @ r4 = ball_vel_x (valeur) ldr r2,=ball_x ldrb r0,[r2] ldr r3,=ball_velocity_x ldrb r4,[r3] add r0,r0,r4 @ ball_x + ball_vel and r0,r0,#0xFF @ si le résultat est plus de 8 bits stmfd sp!,{lr} @ pour faire des appels imbriqués @ blcc change_ball_velocity cmp r0,#SCREEN_W-8 blcs change_ball_velocity ldmfd sp!,{lr} strb r0,[r2] ldr r2,=ball_y ldrb r1,[r2] ldr r3,=ball_velocity_y ldr r4,[r3] add r1,r1,r4 and r1,r1,#0xFF stmfd sp!,{lr} @ blcc change_ball_velocity cmp r1,#SCREEN_H-8 blcs change_ball_velocity ldmfd sp!,{lr} strb r1,[r2] ldr r3,=OAM+3*8 ldrh r4,[r3] ldrh r5,[r3,#2] and r4,r4,#0xFF00 add r4,r1 strh r4,[r3],#2 and r5,r5,#0xFE00 add r5,r0 strh r5,[r3] bx lr change_ball_velocity: eor r4,#0xFF add r4,#1 strb r4,[r3] bx lr .ltorg palette: .hword 0x0000,0x001F,0x56B5,0x7FFF .align 4 @ peut être inutile maintenant ? paddle_left: .word 0x00000000 .word 0x22011000 .word 0x22011130 .word 0x33033133 .word 0x22011333 .word 0x22011133 .word 0x22011130 .word 0x22011000 paddle_center: .word 0x00000000 .word 0x22222222 .word 0x22222222 .word 0x33333333 .word 0x22222222 .word 0x22222222 .word 0x22222222 .word 0x22222222 paddle_right: .word 0x00000000 .word 0x00011022 .word 0x03111022 .word 0x33133033 .word 0x33311022 .word 0x33111022 .word 0x03111022 .word 0x00011022 ball: .word 0x00003330 .word 0x00033333 .word 0x00033333 .word 0x00033333 .word 0x00003330 .word 0x00000000 .word 0x00000000 .word 0x00000000 .data @ ne faudrait-il pas que je le mette avant les sprites ? player_x: .byte PADDLE_X ball_x: .byte BALL_X ball_y: .byte BALL_Y ball_velocity_x: .byte 1 ball_velocity_y: .byte 1
chickendude (./55) :
A propos, il fallait deux vélocités (une X et une Y)
chickendude (./55) :
mais je crois qu'il serait mieux de réorganiser le code un peu pour qu'il y ait une partie seulement qui affiche à l'écran
chickendude (./55) :
J'aimerais bien pouvoir tester ces programmes sur une vraie GBA, parfois j'ai l'impression que l'émulation n'est pas parfaite...