ASM to Sega Genesis Platform

Would you like to react to this message? Create an account in a few clicks or log in to continue.
ASM to Sega Genesis Platform

All about assembly programming in the Sega Genesis console.


2 posters

    cmp.w #$80,$23(a0)

    No one
    No one


    Mensagens : 910
    Data de inscrição : 2015-06-23

    cmp.w #$80,$23(a0) Empty cmp.w #$80,$23(a0)

    Post  No one Sat Apr 06, 2019 4:57 pm

    Code:

    Obj02_SubTitle_Text:
     move.b  $21(a0),mapping_frame(a0)
     cmp.b   #$80,$23(a0)
     bcs.w   Obj02_SubTitle_Text_Normal
     move.b  #$3B,mapping_frame(a0)
     
    Obj02_SubTitle_Text_Normal:
     move.w  #$8010,art_tile(a0)
     moveq   #0,d6
     move.b  (Level_select_zone).w,d6
     cmp.b   $29(a0),d6
     bne.s   Obj02_SubTitle_Text_2
     move.w  #$E010,art_tile(a0)

    Obj02_SubTitle_Text_2:
     bsr.w   Menu_Option_Obj_Load_Sub_Par
     sub.w   #$B,x_pos(a0)
     add.w   #$15,objoff_A(a0)
     bra.w   Obj02_Option_Icons_2
    UburL33tUzerNam
    UburL33tUzerNam


    Mensagens : 1142
    Data de inscrição : 2013-08-08
    Localização : Somewhere
    Current Project : Things

    cmp.w #$80,$23(a0) Empty Re: cmp.w #$80,$23(a0)

    Post  UburL33tUzerNam Sat Apr 06, 2019 8:06 pm

    Someone wrote:
    Code:

    ; ======================
    ; Jevil animation by DevEd
    ; ======================

    ; If set to 1, enable debugging features.
    DebugMode = 1

    ; Defines
    include "Defines.asm"

    ; =============
    ; Reset vectors
    ; =============
    section "Reset $00",rom0[$00]
    CallHL: jp hl
     
    section "Reset $08",rom0[$08]
    FillRAM:: jp _FillRAM
     
    section "Reset $10",rom0[$10]
    WaitVBlank:: jp _WaitVBlank

    section "Reset $18",rom0[$18]
    WaitTimer:: jp _WaitTimer

    section "Reset $20",rom0[$20]
    WaitLCDC:: jp _WaitLCDC
     
    section "Reset $30",rom0[$30]
    Panic: ret ; no longer used

    section "Reset $38",rom0[$38]
    GenericTrap::
     jp GenericTrap ; only slightly more graceful than 39 00 but i need the extra ROM space so no crash handler
     
    ; ==================
    ; Interrupt handlers
    ; ==================

    section "VBlank IRQ",rom0[$40]
    IRQ_VBlank:: jp DoVBlank

    section "STAT IRQ",rom0[$48]
    IRQ_Stat:: jp DoStat

    section "Timer IRQ",rom0[$50]
    IRQ_Timer:: reti

    section "Serial IRQ",rom0[$58]
    IRQ_Serial:: reti

    section "Joypad IRQ",rom0[$60]
    IRQ_Joypad:: reti

    ; ===============
    ; System routines
    ; ===============

    include "SystemRoutines.asm"

    ; ==========
    ; ROM header
    ; ==========

    section "ROM header",rom0[$100]

    EntryPoint::
     nop
     jp ProgramStart
    NintendoLogo: ; DO NOT MODIFY OR ROM WILL NOT BOOT!!!
     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,$0e,$ec,$cc,$dd,$dc,$99,$9f,$bb,$b9,$33,$3e
    ROMTitle: romTitle "GB REVOLVING" ; ROM title (15 bytes)
    GBCSupport: db $00 ; GBC support (0 = DMG only, $80 = DMG/GBC, $C0 = GBC only)
    NewLicenseCode: db "DS" ; new license code (2 bytes)
    SGBSupport: db 0 ; SGB support
    CartType: db $19 ; Cart type, see hardware.inc for a list of values
    ROMSize: ds 1 ; ROM size (handled by post-linking tool)
    RAMSize: db 2 ; RAM size
    DestCode: db 1 ; Destination code (0 = Japan, 1 = All others)
    OldLicenseCode: db $33 ; Old license code (if $33, check new license code)
    ROMVersion: db 0 ; ROM version
    HeaderChecksum: ds 1 ; Header checksum (handled by post-linking tool)
    ROMChecksum: ds 2 ; ROM checksum (2 bytes) (handled by post-linking tool)

    ProgramStart::
     di
     ld sp,$e000
     push bc
     push af
     
    ; disable LCD
    .wait
     ldh a,[rLY]
     cp $90
     jr nz,.wait
     xor a
     ldh [rLCDC],a
     
    ; init memory
     ld hl,$c000 ; start of WRAM
     ld bc,$1ffa ; don't clear stack
     xor a
     rst $08
     
     ld hl,$8000 ; start of VRAM
     ld bc,$2000
     xor a
     rst $08
     
     ; clear HRAM
     ld bc,$7f80
     xor a
    .loop
     ld [c],a
     inc c
     dec b
     jr nz,.loop
     call CopyDMARoutine
     call $ff80 ; clear OAM
     
    ; check GB type
    ; sets sys_GBType to 0 if DMG/SGB/GBP/GBL/SGB2, 1 if GBC, 2 if GBA/GBA SP/GB Jevil
    ; TODO: Improve checks to allow for GBP/SGB/SGB2 to be detected separately
     pop af
     pop bc
     cp $11
     jr nz,.dmg
    .gbc
     and 1 ; a = 1
     add b ; b = 1 if on GBA
     ld [sys_GBType],a
     jr .continue
    .dmg
     xor a
     ld [sys_GBType],a
    .continue

    InitScreen:
     rst $10 ; wait for VBlank
     xor a
     ldh [rLCDC],a
     ; init rendering parameters
     SetDMGPal rBGP, 0,1,2,3
     SetDMGPal rOBP0,0,0,2,3
     SetDMGPal rOBP1,0,1,2,3
     xor a
     ldh [rSCX],a
     ldh [rSCY],a
     ; apparently WX=0 means WX=SCX
     inc a
     ldh [rWX],a
     ld a,144-16
     ldh [rWY],a
     ld a,IEF_VBLANK
     ldh [rIE],a
     
     ld a,7
     ld [rROMB0],a
     Copy1BPPLightGray SuitsTiles,$1000,14
     Copy1BPP ICanDoAnythingTiles,$1100,20
     CopyTileset JevilTiles,0,(JevilTilesEnd-JevilTiles)/16
     ld hl,SuitsTilemap
     call DevPack_Decode
     ld hl,ICanDoAnythingMap
     ld de,$9c00
     ld b,ICanDoAnythingMapEnd-ICanDoAnythingMap
     call _CopyRAMSmall
     ; copy jevil frame data to RAM
     ld a,8
     ld [rROMB0],a
     ld hl,JevilFrames
     ld de,$d000
     ld bc,$800
     call _CopyRAM
     
     ld a,$40
     ld [JevilX],a
     ld a,$38
     ld [JevilY],a
     ld a,6
     ld [JevilAnimTimer],a
     xor a
     ld [JevilFrame],a
     call Jevil_LoadFrame
     
     ld a,1
     ld [rROMB0],a
     
     ld a,%11100111
     ldh [rLCDC],a
     ei
     
     call DM_Init
     
    ; Main loop

    MainLoop:
     halt
     call DM_Play
     ld a,[sys_CurrentFrame]
     inc a
     ld [sys_CurrentFrame],a
     rra
     ldh [rSCX],a
     cpl
     ldh [rSCY],a
     ldh a,[rLCDC]
     xor %00100000
     ldh [rLCDC],a
     
    ; x movement
    .pixelX
     ld a,[SpeedX]
     bit 7,a
     ld b,a
     ld a,[JevilX]
     jr nz,.subtractX
    .addX
     add b
     ld [JevilX],a
     jr .subpixelX
    .subtractX
     res 7,b
     sub b
     ld [JevilX],a
     scf
    .subpixelX
     ld a,[SpeedX+1]
     ld b,a
     ld a,[JevilX+1]
     jr c,.negativeX
     add b
     ld [JevilX+1],a
     jr nc,.pixelY
     ld hl,JevilX
     inc [hl]
     jr .pixelY
    .negativeX
     sub b
     ld [JevilX+1],a
     jr nc,.pixelY
     ld hl,JevilX
     dec [hl]
    ; y movement
    .pixelY
     ld a,[SpeedY]
     bit 7,a
     ld b,a
     ld a,[JevilY]
     jr nz,.subtractY
    .addY
     add b
     ld [JevilY],a
     jr .subpixelY
    .subtractY
     res 7,b
     sub b
     ld [JevilY],a
     scf
    .subpixelY
     ld a,[SpeedY+1]
     ld b,a
     ld a,[JevilY+1]
     jr c,.negativeY
     add b
     ld [JevilY+1],a
     jr nc,.done
     ld hl,JevilY
     inc [hl]
     jr .done
    .negativeY
     sub b
     ld [JevilY+1],a
     jr nc,.done
     ld hl,JevilY
     dec [hl]
    .done

     ld a,[JevilAnimTimer]
     dec a
     ld [JevilAnimTimer],a
     ld a,[JevilFrame]
     jr nz,.skip
     ld a,6
     ld [JevilAnimTimer],a
     ld a,[JevilFrame]
     inc a
     and $7
     ld [JevilFrame],a
    .skip
     call Jevil_LoadFrame
     ld a,IEF_VBLANK
     ldh [rIE],a
     ei
     jp MainLoop
     
     ; ==================
    ; Interrupt handlers
    ; ==================

    DoVBlank::
     push af
     call $ff80
     ld a,1
     ld [sys_VBlankFlag],a
     pop af
     reti
     
    DoStat::
     push af
     ld a,1
     ld [sys_LCDCFlag],a
     pop af
     reti
     
    ; =============
    ; Misc routines
    ; =============

    ; Fill RAM with a value.
    ; INPUT:  a = value
    ;        hl = address
    ;        bc = size
    _FillRAM::
     ld e,a
    .loop
     ld [hl],e
     inc hl
     dec bc
     ld a,b
     or c
     jr nz,.loop
     ret
     
    ; Fill up to 256 bytes of RAM with a value.
    ; INPUT:  a = value
    ;        hl = address
    ;         b = size
    _FillRAMSmall::
     ld e,a
    .loop
     ld [hl],e
     inc hl
     dec b
     jr nz,.loop
     ret
     
    ; Copy up to 65536 bytes to RAM.
    ; INPUT: hl = source
    ;        de = destination
    ;        bc = size
    _CopyRAM::
     ld a,[hl+]
     ld [de],a
     inc de
     dec bc
     ld a,b
     or c
     jr nz,_CopyRAM
     ret
     
    ; Copy up to 256 bytes to RAM.
    ; INPUT: hl = source
    ;        de = destination
    ;         b = size
    _CopyRAMSmall::
     ld a,[hl+]
     ld [de],a
     inc de
     dec b
     jr nz,_CopyRAMSmall
     ret

    ; =======================
    ; Interrupt wait routines
    ; =======================

    _WaitVBlank::
     ldh a,[rIE]
     bit IEF_VBLANK,a
     ret z
    .wait
     halt
     ld a,[sys_VBlankFlag]
     and a
     jr nz,.wait
     xor a
     ld [sys_VBlankFlag],a
     ret

    _WaitTimer::
     ldh a,[rIE]
     bit IEF_TIMER,a
     ret z
    .wait
     halt
     ld a,[sys_TimerFlag]
     and a
     jr nz,.wait
     xor a
     ld [sys_VBlankFlag],a
     ret

    _WaitLCDC::
     ldh a,[rIE]
     bit IEF_LCDC,a
     ret z
    .wait
     halt
     ld a,[sys_LCDCFlag]
     and a
     jr nz,.wait
     xor a
     ld [sys_LCDCFlag],a
     ret
     
    ; =================
    ; Graphics routines
    ; =================

    ; INPUT: a = frame ID
    Jevil_LoadFrame:
     add $d0
     ld h,a
     ld l,0
     ld de,$c400
     ld b,$28
    .loop
     ld a,[hl+]
     ld c,a
     ld a,[JevilY]
     add c
     ld [de],a
     inc de
     ld a,[hl+]
     ld c,a
     ld a,[JevilX]
     add c
     ld [de],a
     inc de
     ld a,[hl+]
     ld [de],a
     inc de
     ld a,[hl+]
     ld [de],a
     inc de
     dec b
     jr nz,.loop
     ret
     
    CopyDMARoutine::
     ld bc,$80 + ((_OAM_DMA_End-_OAM_DMA) <<
     ld hl,_OAM_DMA
    .loop
     ld a,[hl+]
     ld [c],a
     inc c
     dec b
     jr nz,.loop
     ret
     
    _OAM_DMA::
     ld a,high(SpriteBuffer)
     ldh [rDMA],a
     ld a,$28
    .wait
     dec a
     jr nz,.wait
     ret
    _OAM_DMA_End

    _CopyTileset:: ; WARNING: Do not use while LCD is on!
     ld a,[hl+] ; get byte
     ld [de],a ; write byte
     inc de
     dec bc
     ld a,b ; check if bc = 0
     or c
     jr nz,_CopyTileset ; if bc != 0, loop
     ret
     
    _CopyTilesetSafe:: ; same as _CopyTileset, but waits for VRAM accessibility before writing data
     ldh a,[rSTAT]
     and 2 ; check if VRAM is accessible
     jr nz,_CopyTilesetSafe ; if it isn't, loop until it is
     ld a,[hl+] ; get byte
     ld [de],a ; write byte
     inc de
     dec bc
     ld a,b ; check if bc = 0
     or c
     jr nz,_CopyTilesetSafe ; if bc != 0, loop
     ret
     
    _Copy1BPP:: ; WARNING: Do not use while LCD is on!
     ld a,[hl+] ; get byte
     ld [de],a ; write byte
     inc de ; increment destination address
     ld [de],a ; write byte again
     inc de ; increment destination address again
     dec bc
     dec bc ; since we're copying two bytes, we need to dec bc twice
     ld a,b ; check if bc = 0
     or c
     jr nz,_Copy1BPP ; if bc != 0, loop
     ret
     
    _Copy1BPPInvert:: ; WARNING: Do not use while LCD is on!
     ld a,[hl+] ; get byte
     cpl ; invert byte
     ld [de],a ; write byte
     inc de ; increment destination address
     ld [de],a ; write byte again
     inc de ; increment destination address again
     dec bc
     dec bc ; since we're copying two bytes, we need to dec bc twice
     ld a,b ; check if bc = 0
     or c
     jr nz,_Copy1BPPInvert ; if bc != 0, loop
     ret

    _Copy1BPPSafe:: ; same as _Copy1BPP, but waits for VRAM accessibility before writing data
     ldh a,[rSTAT]
     and 2 ; check if VRAM is accessible
     jr nz,_Copy1BPPSafe ; if it isn't, loop until it is
     ld a,[hl+] ; get byte
     ld [de],a ; write byte
     inc de ; increment destination address
     ld [de],a ; write byte again
     inc de ; increment destination address again
     dec bc
     dec bc ; since we're copying two bytes, we need to dec bc twice
     ld a,b ; check if bc = 0
     or c
     jr nz,_Copy1BPP ; if bc != 0, loop
     ret
     
    _Copy1BPPLightGray:: ; WARNING: Do not use while LCD is on!
     ld a,[hl+] ; get byte
     ld [de],a ; write byte
     inc de ; increment destination address
     xor a
     ld [de],a ; write byte
     inc de ; increment destination address again
     dec bc
     dec bc ; since we're copying two bytes, we need to dec bc twice
     ld a,b ; check if bc = 0
     or c
     jr nz,_Copy1BPPLightGray ; if bc != 0, loop
     ret
     
     
    ; ========
    ; Includes
    ; ========

    include "DevPack.asm"

    ; Scroller routines

    ICanDoAnythingMap:
    ;  I       C   A   N       D   O       A   N   Y   T   H   I   N   G
     db $0E,$0E,$10,$0E,$12,$14,$16,$0E,$18,$1A,$0E,$14,$16,$1B,$1E,$20,$10,$16,$22,$0E,$0E,$0E,$0E,$0E,$0E,$0E,$0E,$0E,$0E,$0E,$0E,$0E
     db $0E,$0E,$11,$0E,$13,$15,$17,$0E,$19,$1C,$0E,$15,$17,$1D,$1F,$21,$11,$17,$23,$0E,$0E,$0E,$0E,$0E,$0E,$0E,$0E,$0E,$0E,$0E,$0E,$0E
    ICanDoAnythingMapEnd
     
    ; ===========
    ; Jevil stub
    ; ===========
    section "Jevil section",rom0[$500]
    JevilAreaStart: ret

    section "Jevil play dummy",rom0[$544]
    DM_Play: ret

    section "Jevil init dummy",rom0[$5ec]
    DM_Init: ret

    ; =============
    ; Graphics data
    ; =============

    section "Graphics data",romx,bank[7]
    SuitsTiles: incbin "SuitsTiles.bin"
    SuitsTilemap: incbin "SuitsTilemap.dpk"

    ICanDoAnythingTiles: incbin "ICanDoAnything.bin"

    JevilTiles: incbin "JevilTiles.bin"
    JevilTilesEnd


    section "Jevil frame 1",romx[$4000],bank[8]
    JevilFrames:
    _JevilFrame1:
     db $10,$08,$54,%00000000
     db $10,$10,$56,%00000000
     db $10,$18,$58,%00000000
     db $20,$18,$5a,%00000000
     db $00,$10,$00,%00010000
     db $10,$00,$02,%00010000
     db $10,$08,$04,%00010000
     db $10,$10,$06,%00010000
     db $10,$18,$08,%00010000
     db $10,$20,$0a,%00010000
     db $20,$00,$0c,%00010000
     db $20,$08,$0e,%00010000
     db $20,$10,$10,%00010000
     db $20,$18,$12,%00010000
     db $20,$20,$14,%00010000
     db $20,$28,$16,%00010000
    section "Jevil frame 2",romx[$4100],bank[8]
    _JevilFrame2:
     db $00,$18,$5c,%00000000
     db $10,$08,$5e,%00000000
     db $10,$10,$60,%00000000
     db $10,$18,$62,%00000000
     db $00,$08,$18,%00010000
     db $00,$10,$1a,%00010000
     db $00,$18,$1c,%00010000
     db $00,$20,$1e,%00010000
     db $00,$28,$20,%00010000
     db $10,$00,$22,%00010000
     db $10,$08,$24,%00010000
     db $10,$10,$26,%00010000
     db $10,$18,$28,%00010000
     db $10,$20,$2a,%00010000
     db $10,$28,$2c,%00010000
     db $20,$00,$2e,%00010000
     db $20,$08,$30,%00010000
     db $20,$10,$32,%00010000
     db $20,$18,$34,%00010000
     db $20,$20,$36,%00010000
    section "Jevil frame 3",romx[$4200],bank[8]
    _JevilFrame3:
     db $0a,$08,$64,%00000000
     db $0a,$10,$66,%00000000
     db $0a,$18,$68,%00000000
     db $fa,$08,$38,%00010000
     db $fa,$10,$3a,%00010000
     db $fa,$18,$3c,%00010000
     db $0a,$00,$3e,%00010000
     db $0a,$08,$40,%00010000
     db $0a,$10,$42,%00010000
     db $0a,$18,$44,%00010000
     db $0a,$20,$46,%00010000
     db $0a,$28,$48,%00010000
     db $1a,$00,$4a,%00010000
     db $1a,$08,$4c,%00010000
     db $1a,$10,$4e,%00010000
     db $1a,$18,$50,%00010000
     db $1a,$20,$52,%00010000
    section "Jevil frame 4",romx[$4300],bank[8]
    _JevilFrame4:
     db $0b,$08,$64,%00000000
     db $0b,$10,$66,%00000000
     db $0b,$18,$68,%00000000
     db $fb,$08,$38,%00010000
     db $fb,$10,$3a,%00010000
     db $fb,$18,$3c,%00010000
     db $0b,$00,$3e,%00010000
     db $0b,$08,$40,%00010000
     db $0b,$10,$42,%00010000
     db $0b,$18,$44,%00010000
     db $0b,$20,$46,%00010000
     db $0b,$28,$48,%00010000
     db $1b,$00,$4a,%00010000
     db $1b,$08,$4c,%00010000
     db $1b,$10,$4e,%00010000
     db $1b,$18,$50,%00010000
     db $1b,$20,$52,%00010000
    section "Jevil frame 5",romx[$4400],bank[8]
    _JevilFrame5:
     db $10,$20,$54,%00100000
     db $10,$18,$56,%00100000
     db $10,$10,$58,%00100000
     db $20,$10,$5a,%00110000
     db $00,$18,$00,%00110000
     db $10,$28,$02,%00110000
     db $10,$20,$04,%00110000
     db $10,$18,$06,%00110000
     db $10,$10,$08,%00110000
     db $10,$08,$0a,%00110000
     db $20,$28,$0c,%00110000
     db $20,$20,$0e,%00110000
     db $20,$18,$10,%00110000
     db $20,$10,$12,%00110000
     db $20,$08,$14,%00110000
     db $20,$00,$16,%00100000
    section "Jevil frame 6",romx[$4500],bank[8]
    _JevilFrame6:
     db $00,$10,$5c,%00100000
     db $10,$20,$5e,%00100000
     db $10,$18,$60,%00100000
     db $10,$10,$62,%00100000
     db $00,$20,$18,%00110000
     db $00,$18,$1a,%00110000
     db $00,$10,$1c,%00110000
     db $00,$08,$1e,%00110000
     db $00,$00,$20,%00110000
     db $10,$28,$22,%00110000
     db $10,$20,$24,%00110000
     db $10,$18,$26,%00110000
     db $10,$10,$28,%00110000
     db $10,$08,$2a,%00110000
     db $10,$00,$2c,%00110000
     db $20,$28,$2e,%00110000
     db $20,$20,$30,%00110000
     db $20,$18,$32,%00110000
     db $20,$10,$34,%00110000
     db $20,$08,$36,%00110000
    section "Jevil frame 7",romx[$4600],bank[8]
    _JevilFrame7:
     db $0a,$20,$64,%00100000
     db $0a,$18,$66,%00100000
     db $0a,$10,$68,%00100000
     db $fa,$20,$38,%00110000
     db $fa,$18,$3a,%00110000
     db $fa,$10,$3c,%00110000
     db $0a,$28,$3e,%00110000
     db $0a,$20,$40,%00110000
     db $0a,$18,$42,%00110000
     db $0a,$10,$44,%00110000
     db $0a,$08,$46,%00110000
     db $0a,$00,$48,%00110000
     db $1a,$28,$4a,%00110000
     db $1a,$20,$4c,%00110000
     db $1a,$18,$4e,%00110000
     db $1a,$10,$50,%00110000
     db $1a,$08,$52,%00110000
    section "Jevil frame 8",romx[$4700],bank[8]
    _JevilFrame8:
     db $0b,$20,$64,%00100000
     db $0b,$18,$66,%00100000
     db $0b,$10,$68,%00100000
     db $fb,$20,$38,%00110000
     db $fb,$18,$3a,%00110000
     db $fb,$10,$3c,%00110000
     db $0b,$28,$3e,%00110000
     db $0b,$20,$40,%00110000
     db $0b,$18,$42,%00110000
     db $0b,$10,$44,%00110000
     db $0b,$08,$46,%00110000
     db $0b,$00,$48,%00110000
     db $1b,$28,$4a,%00110000
     db $1b,$20,$4c,%00110000
     db $1b,$18,$4e,%00110000
     db $1b,$10,$50,%00110000
     db $1b,$08,$52,%00110000
    thansk
    UburL33tUzerNam
    UburL33tUzerNam


    Mensagens : 1142
    Data de inscrição : 2013-08-08
    Localização : Somewhere
    Current Project : Things

    cmp.w #$80,$23(a0) Empty Re: cmp.w #$80,$23(a0)

    Post  UburL33tUzerNam Sat Apr 06, 2019 8:08 pm

    UburL33tUzerNam wrote:
    Someone wrote:
    Code:

    ; ======================
    ; Jevil animation by DevEd
    ; ======================

    ; If set to 1, enable debugging features.
    DebugMode = 1

    ; Defines
    include "Defines.asm"

    ; =============
    ; Reset vectors
    ; =============
    section "Reset $00",rom0[$00]
    CallHL: jp hl
     
    section "Reset $08",rom0[$08]
    FillRAM:: jp _FillRAM
     
    section "Reset $10",rom0[$10]
    WaitVBlank:: jp _WaitVBlank

    section "Reset $18",rom0[$18]
    WaitTimer:: jp _WaitTimer

    section "Reset $20",rom0[$20]
    WaitLCDC:: jp _WaitLCDC
     
    section "Reset $30",rom0[$30]
    Panic: ret ; no longer used

    section "Reset $38",rom0[$38]
    GenericTrap::
     jp GenericTrap ; only slightly more graceful than 39 00 but i need the extra ROM space so no crash handler
     
    ; ==================
    ; Interrupt handlers
    ; ==================

    section "VBlank IRQ",rom0[$40]
    IRQ_VBlank:: jp DoVBlank

    section "STAT IRQ",rom0[$48]
    IRQ_Stat:: jp DoStat

    section "Timer IRQ",rom0[$50]
    IRQ_Timer:: reti

    section "Serial IRQ",rom0[$58]
    IRQ_Serial:: reti

    section "Joypad IRQ",rom0[$60]
    IRQ_Joypad:: reti

    ; ===============
    ; System routines
    ; ===============

    include "SystemRoutines.asm"

    ; ==========
    ; ROM header
    ; ==========

    section "ROM header",rom0[$100]

    EntryPoint::
     nop
     jp ProgramStart
    NintendoLogo: ; DO NOT MODIFY OR ROM WILL NOT BOOT!!!
     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,$0e,$ec,$cc,$dd,$dc,$99,$9f,$bb,$b9,$33,$3e
    ROMTitle: romTitle "GB REVOLVING" ; ROM title (15 bytes)
    GBCSupport: db $00 ; GBC support (0 = DMG only, $80 = DMG/GBC, $C0 = GBC only)
    NewLicenseCode: db "DS" ; new license code (2 bytes)
    SGBSupport: db 0 ; SGB support
    CartType: db $19 ; Cart type, see hardware.inc for a list of values
    ROMSize: ds 1 ; ROM size (handled by post-linking tool)
    RAMSize: db 2 ; RAM size
    DestCode: db 1 ; Destination code (0 = Japan, 1 = All others)
    OldLicenseCode: db $33 ; Old license code (if $33, check new license code)
    ROMVersion: db 0 ; ROM version
    HeaderChecksum: ds 1 ; Header checksum (handled by post-linking tool)
    ROMChecksum: ds 2 ; ROM checksum (2 bytes) (handled by post-linking tool)

    ProgramStart::
     di
     ld sp,$e000
     push bc
     push af
     
    ; disable LCD
    .wait
     ldh a,[rLY]
     cp $90
     jr nz,.wait
     xor a
     ldh [rLCDC],a
     
    ; init memory
     ld hl,$c000 ; start of WRAM
     ld bc,$1ffa ; don't clear stack
     xor a
     rst $08
     
     ld hl,$8000 ; start of VRAM
     ld bc,$2000
     xor a
     rst $08
     
     ; clear HRAM
     ld bc,$7f80
     xor a
    .loop
     ld [c],a
     inc c
     dec b
     jr nz,.loop
     call CopyDMARoutine
     call $ff80 ; clear OAM
     
    ; check GB type
    ; sets sys_GBType to 0 if DMG/SGB/GBP/GBL/SGB2, 1 if GBC, 2 if GBA/GBA SP/GB Jevil
    ; TODO: Improve checks to allow for GBP/SGB/SGB2 to be detected separately
     pop af
     pop bc
     cp $11
     jr nz,.dmg
    .gbc
     and 1 ; a = 1
     add b ; b = 1 if on GBA
     ld [sys_GBType],a
     jr .continue
    .dmg
     xor a
     ld [sys_GBType],a
    .continue

    InitScreen:
     rst $10 ; wait for VBlank
     xor a
     ldh [rLCDC],a
     ; init rendering parameters
     SetDMGPal rBGP, 0,1,2,3
     SetDMGPal rOBP0,0,0,2,3
     SetDMGPal rOBP1,0,1,2,3
     xor a
     ldh [rSCX],a
     ldh [rSCY],a
     ; apparently WX=0 means WX=SCX
     inc a
     ldh [rWX],a
     ld a,144-16
     ldh [rWY],a
     ld a,IEF_VBLANK
     ldh [rIE],a
     
     ld a,7
     ld [rROMB0],a
     Copy1BPPLightGray SuitsTiles,$1000,14
     Copy1BPP ICanDoAnythingTiles,$1100,20
     CopyTileset JevilTiles,0,(JevilTilesEnd-JevilTiles)/16
     ld hl,SuitsTilemap
     call DevPack_Decode
     ld hl,ICanDoAnythingMap
     ld de,$9c00
     ld b,ICanDoAnythingMapEnd-ICanDoAnythingMap
     call _CopyRAMSmall
     ; copy jevil frame data to RAM
     ld a,8
     ld [rROMB0],a
     ld hl,JevilFrames
     ld de,$d000
     ld bc,$800
     call _CopyRAM
     
     ld a,$40
     ld [JevilX],a
     ld a,$38
     ld [JevilY],a
     ld a,6
     ld [JevilAnimTimer],a
     xor a
     ld [JevilFrame],a
     call Jevil_LoadFrame
     
     ld a,1
     ld [rROMB0],a
     
     ld a,%11100111
     ldh [rLCDC],a
     ei
     
     call DM_Init
     
    ; Main loop

    MainLoop:
     halt
     call DM_Play
     ld a,[sys_CurrentFrame]
     inc a
     ld [sys_CurrentFrame],a
     rra
     ldh [rSCX],a
     cpl
     ldh [rSCY],a
     ldh a,[rLCDC]
     xor %00100000
     ldh [rLCDC],a
     
    ; x movement
    .pixelX
     ld a,[SpeedX]
     bit 7,a
     ld b,a
     ld a,[JevilX]
     jr nz,.subtractX
    .addX
     add b
     ld [JevilX],a
     jr .subpixelX
    .subtractX
     res 7,b
     sub b
     ld [JevilX],a
     scf
    .subpixelX
     ld a,[SpeedX+1]
     ld b,a
     ld a,[JevilX+1]
     jr c,.negativeX
     add b
     ld [JevilX+1],a
     jr nc,.pixelY
     ld hl,JevilX
     inc [hl]
     jr .pixelY
    .negativeX
     sub b
     ld [JevilX+1],a
     jr nc,.pixelY
     ld hl,JevilX
     dec [hl]
    ; y movement
    .pixelY
     ld a,[SpeedY]
     bit 7,a
     ld b,a
     ld a,[JevilY]
     jr nz,.subtractY
    .addY
     add b
     ld [JevilY],a
     jr .subpixelY
    .subtractY
     res 7,b
     sub b
     ld [JevilY],a
     scf
    .subpixelY
     ld a,[SpeedY+1]
     ld b,a
     ld a,[JevilY+1]
     jr c,.negativeY
     add b
     ld [JevilY+1],a
     jr nc,.done
     ld hl,JevilY
     inc [hl]
     jr .done
    .negativeY
     sub b
     ld [JevilY+1],a
     jr nc,.done
     ld hl,JevilY
     dec [hl]
    .done

     ld a,[JevilAnimTimer]
     dec a
     ld [JevilAnimTimer],a
     ld a,[JevilFrame]
     jr nz,.skip
     ld a,6
     ld [JevilAnimTimer],a
     ld a,[JevilFrame]
     inc a
     and $7
     ld [JevilFrame],a
    .skip
     call Jevil_LoadFrame
     ld a,IEF_VBLANK
     ldh [rIE],a
     ei
     jp MainLoop
     
     ; ==================
    ; Interrupt handlers
    ; ==================

    DoVBlank::
     push af
     call $ff80
     ld a,1
     ld [sys_VBlankFlag],a
     pop af
     reti
     
    DoStat::
     push af
     ld a,1
     ld [sys_LCDCFlag],a
     pop af
     reti
     
    ; =============
    ; Misc routines
    ; =============

    ; Fill RAM with a value.
    ; INPUT:  a = value
    ;        hl = address
    ;        bc = size
    _FillRAM::
     ld e,a
    .loop
     ld [hl],e
     inc hl
     dec bc
     ld a,b
     or c
     jr nz,.loop
     ret
     
    ; Fill up to 256 bytes of RAM with a value.
    ; INPUT:  a = value
    ;        hl = address
    ;         b = size
    _FillRAMSmall::
     ld e,a
    .loop
     ld [hl],e
     inc hl
     dec b
     jr nz,.loop
     ret
     
    ; Copy up to 65536 bytes to RAM.
    ; INPUT: hl = source
    ;        de = destination
    ;        bc = size
    _CopyRAM::
     ld a,[hl+]
     ld [de],a
     inc de
     dec bc
     ld a,b
     or c
     jr nz,_CopyRAM
     ret
     
    ; Copy up to 256 bytes to RAM.
    ; INPUT: hl = source
    ;        de = destination
    ;         b = size
    _CopyRAMSmall::
     ld a,[hl+]
     ld [de],a
     inc de
     dec b
     jr nz,_CopyRAMSmall
     ret

    ; =======================
    ; Interrupt wait routines
    ; =======================

    _WaitVBlank::
     ldh a,[rIE]
     bit IEF_VBLANK,a
     ret z
    .wait
     halt
     ld a,[sys_VBlankFlag]
     and a
     jr nz,.wait
     xor a
     ld [sys_VBlankFlag],a
     ret

    _WaitTimer::
     ldh a,[rIE]
     bit IEF_TIMER,a
     ret z
    .wait
     halt
     ld a,[sys_TimerFlag]
     and a
     jr nz,.wait
     xor a
     ld [sys_VBlankFlag],a
     ret

    _WaitLCDC::
     ldh a,[rIE]
     bit IEF_LCDC,a
     ret z
    .wait
     halt
     ld a,[sys_LCDCFlag]
     and a
     jr nz,.wait
     xor a
     ld [sys_LCDCFlag],a
     ret
     
    ; =================
    ; Graphics routines
    ; =================

    ; INPUT: a = frame ID
    Jevil_LoadFrame:
     add $d0
     ld h,a
     ld l,0
     ld de,$c400
     ld b,$28
    .loop
     ld a,[hl+]
     ld c,a
     ld a,[JevilY]
     add c
     ld [de],a
     inc de
     ld a,[hl+]
     ld c,a
     ld a,[JevilX]
     add c
     ld [de],a
     inc de
     ld a,[hl+]
     ld [de],a
     inc de
     ld a,[hl+]
     ld [de],a
     inc de
     dec b
     jr nz,.loop
     ret
     
    CopyDMARoutine::
     ld bc,$80 + ((_OAM_DMA_End-_OAM_DMA) <<
     ld hl,_OAM_DMA
    .loop
     ld a,[hl+]
     ld [c],a
     inc c
     dec b
     jr nz,.loop
     ret
     
    _OAM_DMA::
     ld a,high(SpriteBuffer)
     ldh [rDMA],a
     ld a,$28
    .wait
     dec a
     jr nz,.wait
     ret
    _OAM_DMA_End

    _CopyTileset:: ; WARNING: Do not use while LCD is on!
     ld a,[hl+] ; get byte
     ld [de],a ; write byte
     inc de
     dec bc
     ld a,b ; check if bc = 0
     or c
     jr nz,_CopyTileset ; if bc != 0, loop
     ret
     
    _CopyTilesetSafe:: ; same as _CopyTileset, but waits for VRAM accessibility before writing data
     ldh a,[rSTAT]
     and 2 ; check if VRAM is accessible
     jr nz,_CopyTilesetSafe ; if it isn't, loop until it is
     ld a,[hl+] ; get byte
     ld [de],a ; write byte
     inc de
     dec bc
     ld a,b ; check if bc = 0
     or c
     jr nz,_CopyTilesetSafe ; if bc != 0, loop
     ret
     
    _Copy1BPP:: ; WARNING: Do not use while LCD is on!
     ld a,[hl+] ; get byte
     ld [de],a ; write byte
     inc de ; increment destination address
     ld [de],a ; write byte again
     inc de ; increment destination address again
     dec bc
     dec bc ; since we're copying two bytes, we need to dec bc twice
     ld a,b ; check if bc = 0
     or c
     jr nz,_Copy1BPP ; if bc != 0, loop
     ret
     
    _Copy1BPPInvert:: ; WARNING: Do not use while LCD is on!
     ld a,[hl+] ; get byte
     cpl ; invert byte
     ld [de],a ; write byte
     inc de ; increment destination address
     ld [de],a ; write byte again
     inc de ; increment destination address again
     dec bc
     dec bc ; since we're copying two bytes, we need to dec bc twice
     ld a,b ; check if bc = 0
     or c
     jr nz,_Copy1BPPInvert ; if bc != 0, loop
     ret

    _Copy1BPPSafe:: ; same as _Copy1BPP, but waits for VRAM accessibility before writing data
     ldh a,[rSTAT]
     and 2 ; check if VRAM is accessible
     jr nz,_Copy1BPPSafe ; if it isn't, loop until it is
     ld a,[hl+] ; get byte
     ld [de],a ; write byte
     inc de ; increment destination address
     ld [de],a ; write byte again
     inc de ; increment destination address again
     dec bc
     dec bc ; since we're copying two bytes, we need to dec bc twice
     ld a,b ; check if bc = 0
     or c
     jr nz,_Copy1BPP ; if bc != 0, loop
     ret
     
    _Copy1BPPLightGray:: ; WARNING: Do not use while LCD is on!
     ld a,[hl+] ; get byte
     ld [de],a ; write byte
     inc de ; increment destination address
     xor a
     ld [de],a ; write byte
     inc de ; increment destination address again
     dec bc
     dec bc ; since we're copying two bytes, we need to dec bc twice
     ld a,b ; check if bc = 0
     or c
     jr nz,_Copy1BPPLightGray ; if bc != 0, loop
     ret
     
     
    ; ========
    ; Includes
    ; ========

    include "DevPack.asm"

    ; Scroller routines

    ICanDoAnythingMap:
    ;  I       C   A   N       D   O       A   N   Y   T   H   I   N   G
     db $0E,$0E,$10,$0E,$12,$14,$16,$0E,$18,$1A,$0E,$14,$16,$1B,$1E,$20,$10,$16,$22,$0E,$0E,$0E,$0E,$0E,$0E,$0E,$0E,$0E,$0E,$0E,$0E,$0E
     db $0E,$0E,$11,$0E,$13,$15,$17,$0E,$19,$1C,$0E,$15,$17,$1D,$1F,$21,$11,$17,$23,$0E,$0E,$0E,$0E,$0E,$0E,$0E,$0E,$0E,$0E,$0E,$0E,$0E
    ICanDoAnythingMapEnd
     
    ; ===========
    ; Jevil stub
    ; ===========
    section "Jevil section",rom0[$500]
    JevilAreaStart: ret

    section "Jevil play dummy",rom0[$544]
    DM_Play: ret

    section "Jevil init dummy",rom0[$5ec]
    DM_Init: ret

    ; =============
    ; Graphics data
    ; =============

    section "Graphics data",romx,bank[7]
    SuitsTiles: incbin "SuitsTiles.bin"
    SuitsTilemap: incbin "SuitsTilemap.dpk"

    ICanDoAnythingTiles: incbin "ICanDoAnything.bin"

    JevilTiles: incbin "JevilTiles.bin"
    JevilTilesEnd


    section "Jevil frame 1",romx[$4000],bank[8]
    JevilFrames:
    _JevilFrame1:
     db $10,$08,$54,%00000000
     db $10,$10,$56,%00000000
     db $10,$18,$58,%00000000
     db $20,$18,$5a,%00000000
     db $00,$10,$00,%00010000
     db $10,$00,$02,%00010000
     db $10,$08,$04,%00010000
     db $10,$10,$06,%00010000
     db $10,$18,$08,%00010000
     db $10,$20,$0a,%00010000
     db $20,$00,$0c,%00010000
     db $20,$08,$0e,%00010000
     db $20,$10,$10,%00010000
     db $20,$18,$12,%00010000
     db $20,$20,$14,%00010000
     db $20,$28,$16,%00010000
    section "Jevil frame 2",romx[$4100],bank[8]
    _JevilFrame2:
     db $00,$18,$5c,%00000000
     db $10,$08,$5e,%00000000
     db $10,$10,$60,%00000000
     db $10,$18,$62,%00000000
     db $00,$08,$18,%00010000
     db $00,$10,$1a,%00010000
     db $00,$18,$1c,%00010000
     db $00,$20,$1e,%00010000
     db $00,$28,$20,%00010000
     db $10,$00,$22,%00010000
     db $10,$08,$24,%00010000
     db $10,$10,$26,%00010000
     db $10,$18,$28,%00010000
     db $10,$20,$2a,%00010000
     db $10,$28,$2c,%00010000
     db $20,$00,$2e,%00010000
     db $20,$08,$30,%00010000
     db $20,$10,$32,%00010000
     db $20,$18,$34,%00010000
     db $20,$20,$36,%00010000
    section "Jevil frame 3",romx[$4200],bank[8]
    _JevilFrame3:
     db $0a,$08,$64,%00000000
     db $0a,$10,$66,%00000000
     db $0a,$18,$68,%00000000
     db $fa,$08,$38,%00010000
     db $fa,$10,$3a,%00010000
     db $fa,$18,$3c,%00010000
     db $0a,$00,$3e,%00010000
     db $0a,$08,$40,%00010000
     db $0a,$10,$42,%00010000
     db $0a,$18,$44,%00010000
     db $0a,$20,$46,%00010000
     db $0a,$28,$48,%00010000
     db $1a,$00,$4a,%00010000
     db $1a,$08,$4c,%00010000
     db $1a,$10,$4e,%00010000
     db $1a,$18,$50,%00010000
     db $1a,$20,$52,%00010000
    section "Jevil frame 4",romx[$4300],bank[8]
    _JevilFrame4:
     db $0b,$08,$64,%00000000
     db $0b,$10,$66,%00000000
     db $0b,$18,$68,%00000000
     db $fb,$08,$38,%00010000
     db $fb,$10,$3a,%00010000
     db $fb,$18,$3c,%00010000
     db $0b,$00,$3e,%00010000
     db $0b,$08,$40,%00010000
     db $0b,$10,$42,%00010000
     db $0b,$18,$44,%00010000
     db $0b,$20,$46,%00010000
     db $0b,$28,$48,%00010000
     db $1b,$00,$4a,%00010000
     db $1b,$08,$4c,%00010000
     db $1b,$10,$4e,%00010000
     db $1b,$18,$50,%00010000
     db $1b,$20,$52,%00010000
    section "Jevil frame 5",romx[$4400],bank[8]
    _JevilFrame5:
     db $10,$20,$54,%00100000
     db $10,$18,$56,%00100000
     db $10,$10,$58,%00100000
     db $20,$10,$5a,%00110000
     db $00,$18,$00,%00110000
     db $10,$28,$02,%00110000
     db $10,$20,$04,%00110000
     db $10,$18,$06,%00110000
     db $10,$10,$08,%00110000
     db $10,$08,$0a,%00110000
     db $20,$28,$0c,%00110000
     db $20,$20,$0e,%00110000
     db $20,$18,$10,%00110000
     db $20,$10,$12,%00110000
     db $20,$08,$14,%00110000
     db $20,$00,$16,%00100000
    section "Jevil frame 6",romx[$4500],bank[8]
    _JevilFrame6:
     db $00,$10,$5c,%00100000
     db $10,$20,$5e,%00100000
     db $10,$18,$60,%00100000
     db $10,$10,$62,%00100000
     db $00,$20,$18,%00110000
     db $00,$18,$1a,%00110000
     db $00,$10,$1c,%00110000
     db $00,$08,$1e,%00110000
     db $00,$00,$20,%00110000
     db $10,$28,$22,%00110000
     db $10,$20,$24,%00110000
     db $10,$18,$26,%00110000
     db $10,$10,$28,%00110000
     db $10,$08,$2a,%00110000
     db $10,$00,$2c,%00110000
     db $20,$28,$2e,%00110000
     db $20,$20,$30,%00110000
     db $20,$18,$32,%00110000
     db $20,$10,$34,%00110000
     db $20,$08,$36,%00110000
    section "Jevil frame 7",romx[$4600],bank[8]
    _JevilFrame7:
     db $0a,$20,$64,%00100000
     db $0a,$18,$66,%00100000
     db $0a,$10,$68,%00100000
     db $fa,$20,$38,%00110000
     db $fa,$18,$3a,%00110000
     db $fa,$10,$3c,%00110000
     db $0a,$28,$3e,%00110000
     db $0a,$20,$40,%00110000
     db $0a,$18,$42,%00110000
     db $0a,$10,$44,%00110000
     db $0a,$08,$46,%00110000
     db $0a,$00,$48,%00110000
     db $1a,$28,$4a,%00110000
     db $1a,$20,$4c,%00110000
     db $1a,$18,$4e,%00110000
     db $1a,$10,$50,%00110000
     db $1a,$08,$52,%00110000
    section "Jevil frame 8",romx[$4700],bank[8]
    _JevilFrame8:
     db $0b,$20,$64,%00100000
     db $0b,$18,$66,%00100000
     db $0b,$10,$68,%00100000
     db $fb,$20,$38,%00110000
     db $fb,$18,$3a,%00110000
     db $fb,$10,$3c,%00110000
     db $0b,$28,$3e,%00110000
     db $0b,$20,$40,%00110000
     db $0b,$18,$42,%00110000
     db $0b,$10,$44,%00110000
     db $0b,$08,$46,%00110000
     db $0b,$00,$48,%00110000
     db $1b,$28,$4a,%00110000
     db $1b,$20,$4c,%00110000
     db $1b,$18,$4e,%00110000
     db $1b,$10,$50,%00110000
     db $1b,$08,$52,%00110000
    thansk
    btw that was the source code for this
    No one
    No one


    Mensagens : 910
    Data de inscrição : 2015-06-23

    cmp.w #$80,$23(a0) Empty Re: cmp.w #$80,$23(a0)

    Post  No one Sun Apr 07, 2019 1:26 pm

    lol wut affraid affraid affraid affraid affraid affraid affraid affraid affraid affraid affraid
    UburL33tUzerNam
    UburL33tUzerNam


    Mensagens : 1142
    Data de inscrição : 2013-08-08
    Localização : Somewhere
    Current Project : Things

    cmp.w #$80,$23(a0) Empty <div class="borderwrap errorwrap"><h4></h4><div class="box-content error"><p>The posted message is too long.</p> </div></div>

    Post  UburL33tUzerNam Sun Apr 07, 2019 2:24 pm

    No one wrote:lol wut affraid affraid affraid affraid affraid affraid affraid affraid affraid affraid affraid
    you better not have run that rom in visualboyadvance Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad Evil or Very Mad

    Sponsored content


    cmp.w #$80,$23(a0) Empty Re: cmp.w #$80,$23(a0)

    Post  Sponsored content


      Current date/time is Tue May 07, 2024 11:25 am