68k program header: Difference between revisions
Jump to navigation
Jump to search
(ββFor cartridge systems: Add info from official SNK doc) |
m (26 revisions: Import from wikkii) |
(No difference)
|
Revision as of 15:27, 26 June 2011
ASM ROM header templates.
For cartridge systems
- $0064: VBlank handling routine pointer
- $0100: "NEO-GEO",$00 string
- $0108: NGH number
- $010A: program size (isn't read by any bios)
- $010E: pointer to debug DIPs (in user RAM) (isn't read by any bios)
- $0114: boot logo flag and tile number
- $0116: pointer to Japanese software DIPs settings layout
- $011A: pointer to US settings software DIPs settings layout
- $011E: pointer to Euro settings software DIPs settings layout
- $0122: pointer to code start
- $0128: pointer to player start (unknown meaning)
- $012E: pointer to demo end (unknown meaning)
- $0134: pointer to coin sound (unknown meaning)
- $0182: pointer to security code
Minimal header (from Smkdan's sources)
No need for a complete 68k vector table.
org $0064 dc.l VBLANK ;IRQ handler org $0100 dc.b "NEO-GEO",$00 org $0108 dc.w $017 ;NGH org $0122 jmp Start ;entry org $0114 dc.w $0100 ;logo flag, don't show it just go straight to the entry point org $0182 dc.l Code ;code pointer Code: dc.l $76004A6D,$0A146600,$003C206D,$0A043E2D dc.l $0A0813C0,$00300001,$32100C01,$00FF671A dc.l $30280002,$B02D0ACE,$66103028,$0004B02D dc.l $0ACF6606,$B22D0AD0,$67085088,$51CFFFD4 dc.l $36074E75,$206D0A04,$3E2D0A08,$3210E049 dc.l $0C0100FF,$671A3010,$B02D0ACE,$66123028 dc.l $0002E048,$B02D0ACF,$6606B22D,$0AD06708 dc.l $588851CF,$FFD83607 dc.w $4e75
Full header (from some unknown example code)
org $0100 dc.b "NEO-GEO",$00 dc.w $0052 ;NGH dc.l $00080000 ;ROM p1 size dc.l $00100000 ;debug DIPs pointer dc.w $01 ;unknown dc.b $00 ;bootscreen flag, anything else than 0x00 means no logo dc.b $1B ;first tile number of the NeoGeo logo in the C ROMs dc.l JPConfig ;Japanese config menu pointer dc.l USConfig ;US config menu pointer dc.l EUConfig ;European config menu pointer jmp Start jmp Start ;? jmp Start ;? jmp Start ;? org $0182 dc.l Code ;code pointer Code: dc.l $76004A6D,$0A146600,$003C206D,$0A043E2D dc.l $0A0813C0,$00300001,$32100C01,$00FF671A dc.l $30280002,$B02D0ACE,$66103028,$0004B02D dc.l $0ACF6606,$B22D0AD0,$67085088,$51CFFFD4 dc.l $36074E75,$206D0A04,$3E2D0A08,$3210E049 dc.l $0C0100FF,$671A3010,$B02D0ACE,$66123028 dc.l $0002E048,$B02D0ACF,$6606B22D,$0AD06708 dc.l $588851CF,$FFD83607 dc.w $4e75 ; Configuration menu layouts (soft DIPs) JPConfig: dc.b "0123456789ABCDEF" ; Game name dc.b $FF,$FF,$FF,$FF,$FF,$FF ; Special list dc.b $24,$02,$00,$00,$00,$00,$00,$00,$00,$00 ; Option list dc.b "LIVES " dc.b "1 " dc.b "2 " dc.b "3 " dc.b "4 " dc.b "HOW TO PLAY " dc.b "WITH " dc.b "WITHOUT " USConfig: dc.b "0123456789ABCDEF" ; Game name dc.b $FF,$FF,$FF,$FF,$FF,$FF ; Special list dc.b $24,$02,$00,$00,$00,$00,$00,$00,$00,$00 ; Option list dc.b "LIVES " dc.b "1 " dc.b "2 " dc.b "3 " dc.b "4 " dc.b "HOW TO PLAY " dc.b "WITH " dc.b "WITHOUT " EUConfig: dc.b "0123456789ABCDEF" ; Game name dc.b $FF,$FF,$FF,$FF,$FF,$FF ; Special list dc.b $24,$02,$00,$00,$00,$00,$00,$00,$00,$00 ; Option list dc.b "LIVES " dc.b "1 " dc.b "2 " dc.b "3 " dc.b "4 " dc.b "HOW TO PLAY " dc.b "WITH " dc.b "WITHOUT "
For CD systems
org $100 dc.b "NEO-GEO", $02 ;CDDA flag dc.w $1234 ;NGH dc.l $00500000 ;from Metal Slug 2 dc.l $0010F000 ;debug DIPs pointer dc.w $007A ;not used ? dc.w $00A1 ;not used ? org $122 jmp Start jmp Generic ;? jmp Generic ;? jmp Generic ;? org $13A dc.w $0000 ;Z80 RAM address for CDDA commands Generic: rte rts