68k program header: Difference between revisions
Jump to navigation
Jump to search
m (moved ROM header to 68k program header) |
No edit summary |
||
Line 1: | Line 1: | ||
ROM header templates. | ASM ROM header templates. | ||
== For cartridge systems == | == For cartridge systems == | ||
*$0064: VBlank handling routine pointer | |||
*$0100: "NEO-GEO",$00 string | |||
*$0108: [[NGH number]] | |||
*$010A: ? | |||
*$010E: pointer to debug DIPs (in [[user RAM]]) | |||
*$0114: boot logo flag and tile number | |||
*$0116: pointer to Japanese [[settings info block]] | |||
*$011A: pointer to US settings info block | |||
*$011E: pointer to Euro settings info block | |||
*$0122: pointer to code start | |||
*$0182: pointer to [[security code]] | |||
===Minimal header (from [[User:Smkdan|Smkdan's]] sources)=== | |||
No need for a complete [[68k vector table]]. | |||
<pre> | |||
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 | |||
</pre> | |||
===Full header (from some unknown example code)=== | |||
<pre> | <pre> | ||
Line 7: | Line 56: | ||
dc.b "NEO-GEO",$00 | dc.b "NEO-GEO",$00 | ||
dc.w $0052 ; NGH | dc.w $0052 ;NGH | ||
dc.l $00080000 ; ? | dc.l $00080000 ;? | ||
dc.l $00100000 ; | dc.l $00100000 ;debug DIPs pointer | ||
dc.w $0000 | dc.w $0000 | ||
dc.b $01 ;bootscreen flag | |||
dc.b $1B ;first tile number of the NeoGeo logo in the C ROMs ? | |||
dc.l JPConfig ;Japanese config menu pointer | |||
dc.l ENConfig ;English config menu pointer | |||
dc.l EUConfig ;European config menu pointer | |||
jmp Start | jmp Start | ||
jmp Start ; | jmp Start ;? | ||
jmp Start ;? | |||
jmp Start ;? | |||
org $0182 | |||
dc.l Code ;code pointer | |||
Code: | |||
dc.l | |||
dc.l $76004A6D,$0A146600,$003C206D,$0A043E2D | dc.l $76004A6D,$0A146600,$003C206D,$0A043E2D | ||
dc.l $0A0813C0,$00300001,$32100C01,$00FF671A | dc.l $0A0813C0,$00300001,$32100C01,$00FF671A | ||
Line 63: | Line 104: | ||
</pre> | </pre> | ||
== For CD systems == | ==For CD systems== | ||
<pre> | <pre> | ||
org $100 | org $100 | ||
dc.b "NEO-GEO", $02 ; | dc.b "NEO-GEO", $02 ;CDDA flag | ||
dc.w $1234 ; NGH | dc.w $1234 ;NGH | ||
dc.l $00500000 ; | dc.l $00500000 ;from Metal Slug 2 | ||
dc.l $0010F000 ; | dc.l $0010F000 ;debug DIPs pointer | ||
dc.w $007A ; | dc.w $007A ;not used ? | ||
dc.w $00A1 ; ? | dc.w $00A1 ;not used ? | ||
org $122 | org $122 | ||
jmp Start | jmp Start | ||
jmp Generic | jmp Generic ;? | ||
jmp Generic ; | jmp Generic ;? | ||
jmp Generic ; | jmp Generic ;? | ||
org $13A | org $13A | ||
dc.w $0000 ;Z80 RAM address for CDDA commands | |||
dc.w $0000 ; Z80 RAM address for CDDA commands | |||
Generic: | Generic: | ||
rte | rte | ||
rts | rts | ||
</pre> | </pre> | ||
[[Category:CPUs]] | [[Category:CPUs]] | ||
[[Category:Code]] | [[Category:Code]] |
Revision as of 19:19, 4 May 2011
ASM ROM header templates.
For cartridge systems
- $0064: VBlank handling routine pointer
- $0100: "NEO-GEO",$00 string
- $0108: NGH number
- $010A: ?
- $010E: pointer to debug DIPs (in user RAM)
- $0114: boot logo flag and tile number
- $0116: pointer to Japanese settings info block
- $011A: pointer to US settings info block
- $011E: pointer to Euro settings info block
- $0122: pointer to code start
- $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 ;? dc.l $00100000 ;debug DIPs pointer dc.w $0000 dc.b $01 ;bootscreen flag dc.b $1B ;first tile number of the NeoGeo logo in the C ROMs ? dc.l JPConfig ;Japanese config menu pointer dc.l ENConfig ;English 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), format unknown... JPConfig: dc.b "0123456789ABCDEF" ; Game name dc.l $FFFFFFFF ; Pointer ? dc.w $0364 ; ? dc.b $14,$13,$24,$01 ENConfig: dc.b "0123456789ABCDEF" ; Game name dc.l $FFFFFFFF ; Pointer ? dc.w $0364 ; ? dc.b $14,$13,$24,$01 EUConfig: dc.b "0123456789ABCDEF" ; Game name dc.l $FFFFFFFF ; Pointer ? dc.w $0364 ; ? dc.b $14,$13,$24,$01
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