si vous avez de bons liens, des compilateurs, des tutos asm, etc, je suis très intéressé.
merci

AREA bumpmain, CODE, READONLY ENTRY b start DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 start ldr r8, =0x29345723 ldr r9, =0x20349752 ldr r0, =ramrun mov r1, #0x03000000 add r1,r1,#0x40 ldr r3, =endof+0x200 ho cmp r0, r3 ; Copy init data ldrne r2, [r0], #4 strne r2, [r1], #4 bne ho ldr r1,=0x03000040 mov pc,r1 ;jump to code ramrun mov r2,#0x04000000 ldr r1,=0x00000404 str r1,[r2] mov r0,#0 mov r4,#0x05000000 palloop mov r1,r0 mov r1,r1,LSR #3 mov r3,r1,LSL #10 mov r2,r1,LSL #5 orr r3,r3,r2 orr r3,r3,r1 strh r3,[r4] add r4,r4,#2 add r0,r0,#1 cmp r0,#0x100 bne palloop mov r2,#0x02000000 ;fill env w/ random #s ldr r1,=0x02009600 fl bl random strh r8,[r2] add r2,r2,#2 cmp r1,r2 bne fl mov r7,#4 smoothgen mov r4,#0x02000000 sub r4,r4,#1 sub r3,r4,#239 add r5,r4,#241 add r6,r4,#2 smoothloop ;Smooth (blur) ldrb r0,[r3],#1 ;X,Y-1 ldrb r11,[r4],#1 ;X-1,Y ldrb r12,[r5],#1 ;X,Y+1 ldrb r13,[r6],#1 ;X+1,Y add r0,r0,r11 add r2,r12,r13 add r0,r0,r2 mov r0,r0,LSR #2 strb r0,[r4] cmp r1,r4 bne smoothloop sub r7,r7,#1 cmp r7,#0 bne smoothgen ldr r12,=32767 ;r1 still equals 02009600 mov r3,#0 lyloop mov r4,#0 lxloop sub r5,r3,#64 sub r6,r4,#64 cmp r5,#0 rsblt r5,r5,#0 cmp r6,#0 rsblt r6,r6,#0 mov r11,r5 mul r5,r11,r11 mla r7,r6,r6,r5 mov r0,#0 sqrt add r0,r0,#1 mul r6,r0,r0 cmp r6,r7 blt sqrt sub r6,r0,#1 mov r6,r6,LSL #2 rsb r6,r6,#255 cmp r6,#255 movhi r6,#0 strb r6,[r1],#1 add r4,r4,#1 cmp r4,#128 bne lxloop add r3,r3,#1 cmp r3,#128 bne lyloop mov r1,#0x03000000 mov r0,#0x02000000 mov r2,#0x00000010 mov r3,#0x00009600 mov r4,#0x06000000 mov r5,#2 str r0,[r1],#4 ;0 str r2,[r1],#4 ;4 str r2,[r1],#4 ;8 add r0,r0,r3 str r0,[r1],#4 ;c str r4,[r1],#4 ;10 str r5,[r1],#4 ;14 str r5,[r1],#4 ;18 bump ;Use 11-curx, 12-cury,10-temporarybyte other vars at 0x03000000 (0x40 bytes reserved) ;0x03000000: envmap ;0x03000004: lightx ;0x03000008: lighty ;0x0300000C: lightmap ;0x03000010: screenptr ;0x03000014: light x direction ;0x03000018: light y direction ; 0,1,2,3,4,5,6,7,8,9 working regs mov r1,#0x03000000 mov r0,#0x02000000 mov r2,#0x00000010 mov r3,#0x00009600 mov r4,#0x06000000 mov r5,#1 str r0,[r1],#4 ;0 ldr r6,[r1],#4 ;4 ldr r7,[r1],#4 ;8 add r0,r0,r3 str r0,[r1],#4 ;c str r4,[r1],#4 ;10 ldr r8,[r1],#4 ;14 ldr r9,[r1],#4 ;18 add r6,r6,r8 add r7,r7,r9 mov r1,#0x03000000 add r1,r1,#4 str r6,[r1],#4 str r7,[r1],#4 cmp r6,#0 movlt r8,#2 cmp r6,#240 movgt r8,#0 subgt r8,r8,#2 cmp r7,#0 movlt r9,#2 cmp r7,#160 movgt r9,#0 subgt r9,r9,#2 add r1,r1,#8 str r8,[r1],#4 str r9,[r1],#4 ;r0-r9 free to use ;0x03000000: envmap ;0x03000004: lightx ;0x03000008: lighty ;0x0300000C: lightmap ;0x03000010: screenptr ;0x03000014: light x direction ;0x03000018: light y direction ;'nx=((bumpmap(x+1,y)-bumpmap(x-1,y))-(x-lightx))+lightwidth/2 mov r9,#0x03000000 ldr r8,[r9],#4 ;envmap ldr r7,[r9],#4 ;lx ldr r6,[r9],#4 ;ly mov r13,#0 ;y ybumploop mov r12,#0 ;x xbumploop mov r5,#240 sub r4,r8,r5 ldrb r0,[r4],#480 ;bumpmap(x,y-1) ldrb r1,[r4] ;bumpmap(x,y+1) sub r3,r1,r0 ;r1-r0 sub r4,r13,r6 ;y-lighty sub r5,r3,r4 ;r3-r4 r5 is dy sub r8,r8,#1 ;envmap-1 ldrb r0,[r8],#2 ;envmap-1 > +2 (bumpmap(x-1,y) ldrb r1,[r8] ;bumpmap(x+1,y) sub r3,r1,r0 sub r4,r12,r7 ;x-lx sub r3,r3,r4 ; r3 is dx add r3,r3,#64 add r5,r5,#64 cmp r3,#128 movhs r3,#0 cmp r5,#128 movhs r5,#0 mov r5,r5,LSL #7 add r5,r5,r3 ldr r4,[r9] add r4,r4,r5 ldrb r10,[r4] add r12,r12,#1 mov r5,#240 sub r4,r8,r5 ldrb r0,[r4],#480 ;bumpmap(x,y-1) ldrb r1,[r4] ;bumpmap(x,y+1) sub r3,r1,r0 ;r1-r0 sub r4,r13,r6 ;y-lighty sub r5,r3,r4 ;r3-r4 r5 is dy sub r8,r8,#1 ;envmap-1 ldrb r0,[r8],#2 ;envmap-1 > +2 (bumpmap(x-1,y) ldrb r1,[r8] ;bumpmap(x+1,y) sub r3,r1,r0 sub r4,r12,r7 ;x-lx sub r3,r3,r4 ; r3 is dx add r3,r3,#64 add r5,r5,#64 cmp r3,#128 movhs r3,#0 cmp r5,#128 movhs r5,#0 mov r5,r5,LSL #7 add r5,r5,r3 ldr r4,[r9] add r4,r4,r5 ldrb r1,[r4] add r10,r10,r1,LSL #8 add r12,r12,#1 mov r5,#240 sub r4,r8,r5 ldrb r0,[r4],#480 ;bumpmap(x,y-1) ldrb r1,[r4] ;bumpmap(x,y+1) sub r3,r1,r0 ;r1-r0 sub r4,r13,r6 ;y-lighty sub r5,r3,r4 ;r3-r4 r5 is dy sub r8,r8,#1 ;envmap-1 ldrb r0,[r8],#2 ;envmap-1 > +2 (bumpmap(x-1,y) ldrb r1,[r8] ;bumpmap(x+1,y) sub r3,r1,r0 sub r4,r12,r7 ;x-lx sub r3,r3,r4 ; r3 is dx add r3,r3,#64 add r5,r5,#64 cmp r3,#128 movhs r3,#0 cmp r5,#128 movhs r5,#0 mov r5,r5,LSL #7 add r5,r5,r3 ldr r4,[r9] add r4,r4,r5 ldrb r1,[r4] add r10,r10,r1,LSL #16 add r12,r12,#1 mov r5,#240 sub r4,r8,r5 ldrb r0,[r4],#480 ;bumpmap(x,y-1) ldrb r1,[r4] ;bumpmap(x,y+1) sub r3,r1,r0 ;r1-r0 sub r4,r13,r6 ;y-lighty sub r5,r3,r4 ;r3-r4 r5 is dy sub r8,r8,#1 ;envmap-1 ldrb r0,[r8],#2 ;envmap-1 > +2 (bumpmap(x-1,y) ldrb r1,[r8] ;bumpmap(x+1,y) sub r3,r1,r0 sub r4,r12,r7 ;x-lx sub r3,r3,r4 ; r3 is dx add r3,r3,#64 add r5,r5,#64 cmp r3,#128 movhs r3,#0 cmp r5,#128 movhs r5,#0 mov r5,r5,LSL #7 add r5,r5,r3 ldr r4,[r9] add r2,r9,#4 add r4,r4,r5 ldrb r0,[r4] mov r0,r0,LSL #24 add r0,r0,r10 ldr r1,[r2] str r0,[r1],#4 str r1,[r2] add r12,r12,#1 cmp r12,#240 bne xbumploop add r13,r13,#1 cmp r13,#160 bne ybumploop b bump random ;uses r8,r9 and r7,r6,r5 use seed in r8,r9 63bit shift register technique mov r7,r8,ROR #30 mov r8,r8,ROR #1 mov r9,r9,ROR #31 mov r5,r9 add r7,r7,r8 and r5,r5,#1 mvn r6,#1 and r8,r8,r6 and r9,r9,r6 orr r8,r8,r5 and r7,r7,#1 add r9,r7,r9 mov pc,r14 ;return endof END