> /7G>/Gx>0G à '>F>(= Date 970817Cont3 ld a,[Speed+1] or a jr z,SkidLno ff s nٙgcnܙ3>LAMBO II DEMO~tSmokeLeft jr SkidL SkidLno: ld a,SOUND_FX_OFF ld [SndChnl3],a call SmokeOff SkidL: ld a,[CarX] dec a 000000000000000000000000000000000000000000000000000000 "   *   *    A "    A *  =}pOGC!?? ?@@@ ???? 0 __?@@` 00 333gg???```000 7'go??@``0???;<^a_c|w??~?<<~B~B<<<<|d|D|d<$~~c~~>"~~>>~b?!??y~~>>A~B<<>&<$<<~~~B~~<<~BA||?????/O_?__ Ox__`??>wz`8v[ppɿƴ[f?`0?q~@`0,:;Wp00ᾁ( СⲲ㲲óҳӀóO  N M J L+K ,'I(-)*%. &!/"-#$%. &!/"-#$>D8>@!K * !>6#= >G!w,!,0 Y(= a(>>o>>C>B>K>J>HI>>ZE>>>>J>@> !* x >0Eį!}|z>@A'>@>>'͡p= o(6G(u( >u>͗ =>!Ig(6G(;( > >͗ <>b!> ͗ G(O( (* ($ og(}0 #}|og(+}|!*(#V-^)::(>{>>>>>/( {8{_?83_!*fo******}|>(9=_Wog}|&˗&{> z>( og> ""(.4@LR^djP(D(Pd   l l GG(og_W}||?og_}|*(!( z>0(>.E        WO(1GGx((_Wo&}%|G?8BEo&< >ZEW\)*_~BEXo&{C]ogF(GGEo

@E}@o&~B?Ҽ&/(%%|>GCB̀o&7*~>tG)L_MWo&]TOEā"# +tG>Ho&]TO>>fOađ0##:+/OfāO2a+  Go&);*fox_*foL|M" x XZZ[\]^``bbddffghijkkmmnopprrstuuvwxxzz{|}}~O(/o&="*fo9*y(/ ɯ&." og!>>>>>>>>>< 8??=(,=(R>>>>X>> >F!>Z">#>>>>\>> >F!>^">#>>>>`>> >F!>b">#< 8??=(,=(R>>j>X> > >b!>Z"> #>>j>\> > >b!>^"> #>>j>`> > >b!>b"> #>>>`>> >!>b">#>>H>0>>>P>2>>>X >2 > > >` >0> >>H>P>>>P>R>>>X >T > > >` >V>>>H>V> >>P>T> >>X >R > > >` >P> !"  !>"  !"x7"  >""""">4}| 8ogBѰ>4"!#]###$M$$$%=%y%%%-&i&&&'Y''' (I((((9)u))))*e***+U+++ ,E,,,,5-q---%.a.../Q///0A0}00011m111!2]2223M3334=4y444-5i5556Y6                           !  !"  !!"#  !!""#$  !!"##$%  !""#$$%&  !!"##$%%&'  !""#$$%&&'(  !""#$$%&&'()  !"##$%%&''()*  !"##$%%&'(()*+  !!"##$%&&'())*+,  !!"#$$%&''()**+,-  !"#$$%&''()**+,-.  !"#$$%&''()*++,-./  !"#$$%&'(()*+,,-./0  !"##$%&'(()*+,,-./01  !"##$%&'(()*+,--./012  !""#$%&''()*+,--./0123  !"#$%&''()*+,--./01234  !"#$%%&'()*+,--./012345  !"#$$%&'()*+,--./0123456  !!"#$%&'()*+,,-./01234567  !"#$%&'()**+,-./012345678  !"#$%&&'()*+,-./0123456789  !"#$%&'()*+,-./0123456789:  !"#$%&'()*+,-./0123456789:;  !"#$%&'()*+,-./0123456789:;<  !"#$%&'()*+,-./0123456789:;=  !"#$%&'()*+,-./0123456789:;<>  !"#$%&'(*+,-./0123456789:;<=?  !"#$%&'()*+,-.0123456789:;<=>@  !"#$%'()*+,-./012456789:;<=>?A !"#$%&'()*,-./012345789:;<=>?@B  !"#$%'()*+,-.012345678:;<=>?@AC  "#$%&'()+,-./013456789:<=>?@ABD  !"#$%'()*+,./012346789:;<>?@ABCE  !#$%&'(*+,-./12345689:;<=?@ABCDF !"#$%'()*+,./012456789;<=>?ABCDEG  !"$%&'(*+,-.012346789:<=>?@BCDEFH  "#$%&()*+-./01345679:;<>?@ABDEFGI  !"#%&'()+,-.012356789;<=>@ABCEFGHJ  !#$%&()*+-./02345789:<=>?ABCDFGHIK  "#$&'()+,-.01235679:;<>?@ACDEFHIJL  !"#%&')*+,./02345789;<=>@ABDEFGIJKM  !#$%'()*,-.01245679:;=>?ABCDFGHJKLN  "#$&'(*+,./02345789;<=?@ACDEGHIKLMO  !"$%&()*_\?_?^?@]?6??@1?'?S~b_`{]`pp7!`pp>>`>>`??`??`    jn `K`9?`N}``Z^CC`/)`5'-`.^` nrpyyk jjUU8jjJ?r!5)>̎=~tvpX`a`% q' ~ / _KIRbjAsc|~@L@AA@W78Z888 9F99992:m:::;Y;;;; J>>>"?j???B@@@AbAAA:BBBCZCCC2DzDD EREEE*FrFFGJGGG"HjHHHBIIIJbJJJ:KK                                1,$e1,$e1,$c3,$b3 ; db $20,$0,$0,A*0Φw #1)l5770f1,$f1,$f1,$f3,$f0,$f1,$f1,$f1,$f3,$f1,$f1,$f1,$14 db $14,$f3,$f1,$f1,$f1,$f1,$f1,$f1,$f0,$f1,$f3,$f1,$f1,$f1,$14,$14 ; db $20,$0,$0,$0,$0,$0,$0,$0 ; Row #11 db $1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$2 db $3,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1A0Φb $2)loadcurv0 ; Row #12 db $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$4,$4f db $7,$5,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0 ; db $20,$0,$0,$0,$0,$0,$0,$0 ; Row #13 db $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$4,$14,$8 db $9,$14,$5,$0,$0,$0,$0,$0,$0,$0zAN0Φ; db)RoadMap$0,$0 ; Row #14 db $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$e,$14,$c,$a db $b,$d,$14,$f,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0 ; db $20,$0,$0,$0,$0,$0,$0,$0 ; Row #15 db $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$e,$15,$14,$6,$14 db $14,$7,$14,$16,$f,$0,$0,A0Φ,$0,)CurvPtr0,$0,$0,$0,$0 ; Row #16 db $0,$0,$0,$0,$0,$0,$0,$0,$0CART_ROM_8M EQU 5 CART_ROM_16M EQU 6 CART_RAM_NONE EQU 0 CART_RAM_16K EQU 1 CART_RAM_64A!0Φ56K )EngineC1 PADF_DOWN EQU $80 PADF_UP EQU $40 PADF_LEFT EQU $20 PA0Φ $)l2c6eQU $08 PADF_SELECT EQU $04 PADF_B EQU $02 PADF_A EQU $01 PADB_DOWN EQU $7 PADB_UP EQU $6 PADB_LEFT EQU $5 PADB_RIGHT EQU $4 PADB_START EQU $3 PADB_SELECT EQU A40Φ EQ)l2c10 EQU $0 SCRN_X EQU 160 SCRN_Y _A$ 0Φ )l2bdeN_X_B EQU 20 SCRN_Y_B EQU 18 SCRN_VX EQU 256 SCRN_VY EQU 256 SCRN_VX_B EQU 32 ,A̠0ΦEQU )l2d1d NINTENDO_LOGO: MACRO DB $CE,$ED,$66,$66,$CC,$0D,$00,$0B,$03,$73,$00,$83,$00,$0C,$00,$0D DB $00,$08,$11,$1F,$88,$89,$00,$0A0ΦD,$D)l2bebB,$67,$63,$6E,$0E,$EC,$CC,$DD,$DC,$99,$9F,$BB,$B9,$33,$3E ENDM ENDC __rp EQUS STRLWR("\1") __r1 EQUS STRSUB("\1",1,1) __r2 EQUS STRSUB("\1",2,1) IF (STRCMP("{__AH`TRCM:A0Φ || )l2c4f")==0) REPT \3 srl __r1 rr __r2 ENDR ELSE __rp EQUS STRLWR("\1") __r1 EQUS STRSUB("\1",1,1) __r2 EQUS STRSUB("\1",2,1) IF (STRCMP("{__AةnTRCMA0Φd| )l2c6a")==0) REPT \3 srl __r1 rr __r2 ENDR ELSE ldh((T] and STATF_BUSY jr nz,@-4 <AmnHiWAA0Φ` W)l2d37>@Sؔ> e __rp EQUS STRLWR("\1") __r1 EQUS STRSUB("\1",1,1) __r2 EQUS STRSUB("\1",2,1) IF (STRCMP("{__BA詂nTRCMA,0Φ pus)l2d3d hl,-1 add hl,bc ld b,h ld c,l pop hl d1˩ Щ 2Щ Щ = srl __r1 rr __r2 A<-0Φ srl)l2d55r __r2 hlͩ 3ͩ _33ͩde̩5 hlͩ 3ͩ _34ͩ hlͩ 3ͩ _35ͩ 3<ϩ _37<ϩdePϩ 3(p _29(p)Cont1srl16(pѩ\popAdq0Φis i)l2d5b Do not edit. D` dxȣLl|D^,goЦl̩ѩ,@NAPn= srl __r1 rA0Φ )l2d61 __r1 rr __r2 hlЩ 3Щ _42ЩhlЩ5 hlЩ 3Щ _43Щ hlЩ 3Щ _44Щ= srl __r1 rr __r2 3թ _38թA|0Φթ Rt************************** CART_ROM A)0Φ_MBC)SkidRRT_ROM_MBC1_RAM EQU 2 CART_ROM_MBC1_RAM_BAT EQU 3 CART_ROM_MBC2 EQU 5 CART_ROM_MBC2_BAT EQU 6 CART_ROM_RAM EQU 8 CART_ROM_RAM_BAT EQU 9 CART_ROM_256K EQU 0 CART_ROM_512K EQU 1 CART_ROM_1M EQU 2 CART_RPAd0Φ_ROM)DrawCarRight EQU 5 CART_ROM_16M EQU 6 CART_RAM_NONE EQU 0 CART_RAM_16K EQU 1 CART_RAM_64K EQU 1 CART_RAM_256K EQU 3 ;*************************************************************************** ;* ;* Keypad related ;* ;****************BA0Φ****)Cont4*************** PADF_DOWN EQU $80 PADF_UP EQU $40 PADF_LEFT EQU $20 PADF_RIGHT EQU $10 PADF_START EQU $08 PADF_SELECT EQU $04 PADF_B EQU $02 PADF_A EQ`((|A,0Φ )Cont5 rNR21 EQU $16 rAUD2LEN EQU rNR21 A#0Φ )WindDrag rNR22 EQU $17 rAUD2ENV EQU rNR22 rNR23 EQU $18 rAUD2LOW EQU rNR23 A,0ΦAUD2)Deaccel A\0Φ )MaxSpd rNR30 EQU $1A rAUD3ENA EQU rNR30 rNR31 EQU $1B rAUD3LEN EQU rNR31 Av0Φ )NotMax rNR32 EQU $1C rAUD3LEVEL EQU rNR32 rNR33 EQU $1D rAUD3LOW EQU rNR33 A0Φ )drag2 rNR34 EQU $1E rAUD3HIGH EQU rNR34 rNR41 EQU $20 rAUD4LEN EQU rNR41 A0Φ )drag1 EQU $21 rAUD4ENV EQU rNR42 A0Φ )EngineIdle A0Φ )EngineCoarsenessEQU rNR42_2 rNR43 EQU $23 rAUD4GO EQU rNR43 A|0Φ )LCDCF_BGOFF CART_ROM EQU 0 CART_ROM_MBC1 EQU 1 CART_ROM_MBC1_RAM EQU 2 CART_ROM_MBC1_RAM_BAT EQU 3 CART_ROM_MBC2 B4_BAT)EngineCXRAM EQU 8 CART_ROM_RAM_BAT EQU 9 CART_ROM_256K EQU 0 CART_ROM_512K EQU 1 CART_ROM_1M EQU 2 CART_ROM_2M EQU 3 CART_ROM_4M EQU 4 mem_SetVRAM:: inc b incUA~0Φ pus)SkidL lcd_WaitVRAM pop af ld [hl+],a ei .skip dec c jr nz,.loop dec b jr nz,.loop ret A0Φ )SmokeOff mem_CopyVRAM:: inc b inc c jr .skip .loop di lcd_WaitVRAM ld a,[hl+] ld [de],a ei inc de .skip dec c jwA0Φr nzl2.asm ENDC rLYC EQU $45  /D R  ).loop1 PADB_DOWN EQU $7 PADB_UP EQU $6 PADB_LEFT EQU $5 PADB_RIGHT EQU $4 PADB_START EQU $3 PADB_SELECT EQU $2 PADB_B EQU $1 PADB_A EQU $0 ;********************.at<0Φ****).skipc:\A\GB\include\memory1.asmed ;* ;*************************************************************************** SCRN_X EQU 160 ; Width of screen in pixels SCRN_Y EQU 144 ; HXeen in pixelX*(( EQU 20 ; Width of sc9at0ΦY_B )mem_CopyVRAMreen in bytes SCRN_VX EQU 256 ; Virtual width of screen in pixels SCRN_VY EQU 256 ; Virtual height of screen in pixels SCRN_VX_B EQU 32 ; Virtual width of screen in bytes SCRN_VY_B EQU 32 ; Virtual height of screen in bytes @I0ΦRO ).skiplling logo ;* (Code won't work on a real GameBoy) ;* (if next six lines are altered.) DB $CE,$ED,$66,$66,$CC,$0D,$00,$0B,$03,$73,$00,$83,$00,$0C,$00,$0D DB $00,$08,$11,$1F,$88,$89,$00,$0E,$DC,$CC,$6E,$E6,$DD,$DD,$D9,$99 DB $BB,$BB,$67,$63,$6E,$d 99,$).loop ENDM ENDC ;HARDWARE_INC rNR30 ; -- ; -- AUD3LEN/NR31 ($FF1B) ; -- Sound length (R/W) ; -- ; -- Bit 7-0 - Sound length ; -- rNR31 EQU $1B rAUD3LEN EQU rNR31 ; -- ; -- AUD3LEVEL/NR32 ($FF1C) ; -- Select output leDar0Φ6-5 ).skipc:\A\GB\include\memory1.asm ; -- 01: 1/1 ; ldh a,[rSTAT] and STATF_BUSY jr nz,@-4 FX(W) ; -- ;%((LOW for info ; -- rNR3Oa!0ΦEQU )l1b74- AUD3HIGH/NR34 ($FF1E) ; -- Frequency hi (W) ; -- ; -- see AUD1HIGH for info ; -- rNR34 EQU $1E rAUD3HIGH EQU rNR34 ; -- ; -- AUD4LEN/NR41 ($FF20) ; -- Sound length (R/W) ; -- ; -- Bit 5-0 - Sound length data (# 0-63) ; -- rNR41 EQU $A0Φ41 )DrawCarLeftR42 ($FF21) ; -- Envelope (R/W) ; -- ; -- see AUD1ENV for info ; -- rNR42 EQU $21 rAUD4ENV EQU rNR42 ; -- ; -- AUD4POLY/NR42 ($FF22) ; -- Polynomial counter (R/W) ; -- ; -- Bit 7-4 - Selection of the shift clock frequency of the (scfA0Φlyno)Cont2101) ; -- freqEQUdrf*1/2^scf (not sure) ; -- Bit 3 - Selection of the polynomial counter's step ; -- 0: 15 steps ; -- 1: 7 steps ; -- Bit 2-0 - Selection of the dividing ratio of frequencies (drf) ; -- 00dA0Φ010:)SkidRno-- 100: f/32 101: f/40 110: f/48 111: f/56 (fE ldh a,[rSTAT] and STATF_BUSY jr nz,@-4 (f0!((an's doc!) ; -- ; -- Bit 7 - Inital ; -- BiHAz0Φecut)SmokeRightR43 EQU $23 rAUD4GO EQU rNR43 ; silly name! ;*************************************************************************** ;* ;* Cart related ;* ;*************************************************utine ld b,VBlankLast-VBlankFirst loadh: l