Software DIPs

From NeoGeo Development Wiki
Jump to: navigation, search
A Soft DIPs setup screen.

Software DIPs are a list of 16 game-specific parameters, which are only modifiable from the MVS System ROM menu.

The parameters names and their possible values are stored in the game's 68k program header.

In MVS systems, the settings are saved for each game in the backup RAM (starting at 0x220) by the system ROM. How is this handled in multislot board ?

The setting values are copied from backup RAM to user RAM at BIOS_GAME_DIP ($10FD84) when USER (0x122) is called.

The AES and CD games have fixed values.

Config data description

All the following informations by ElBarto:

0x00 16 bytes Game name
0x10 6 bytes Special entry list, 4 entries. See description below.
0x16 10 bytes Simple options list, up to 10 entries. 1 byte per entry. Padded with 0x00 for unused options.
0x20 x*12 bytes Options string table. Strings are 12 bytes long and padded with 0x20 (space). Max number ?

Special options list description

You can define up to 4 special options.

The first two words can be used to define two timed options. The upper byte defines the minutes and the lower byte the seconds (in BCD), up to 29 minutes and 59 seconds. If not used, specify 0xFFFF.

The next byte can be used for a selection between 1 and 99. The value written is the default one. (values above 99 will show some garbage data). If not used, specify 0xFF.

The last byte can be used for the same purpose plus two special values : "WITHOUT" and "INFINITE" (0x00 is without and 0x64 is infinite). The value displayed will go from 00 to 99 with the text "times" after it. If not used, specify 0xFF.

All these options take one string in the strings table for the description.

Simple options list description

Each options consists of 1 byte.

The upper 4 bits specify the default value (starts from 0) and the lower 4 bits the number of choices.

Config examples

    dc.b    "TEST ROM        "                 ; Game name
    dc.b    $FF,$FF,$FF,$FF,$FF,$FF            ; Special options list (none used)
    dc.b    $24                                ; Option 1: 4 choices, default is #2
    dc.b    $02                                ; Option 2: 2 choices, default is #0
    dc.b    $00,$00,$00,$00,$00,$00,$00,$00
    dc.b    "LIVES       "                     ; Option 1 description
    dc.b    "1           "                     ; Option 1 choices
    dc.b    "2           "
    dc.b    "3           "
    dc.b    "4           "
    dc.b    "HOW TO PLAY "                     ; Option 2 description
    dc.b    "WITH        "                     ; Option 2 choices
    dc.b    "WITHOUT     "
Config 1.png Config 2.png
    dc.b    "TEST ROM    "                     ; Game name
    dc.b    $42,$20                            ; Special option 1: 42 minutes 20 seconds
    dc.b    $20,$42                            ; Special option 2: 20 minutes 42 seconds
    dc.b    $42                                ; Special option 3: 66
    dc.b    $64                                ; Special option 4: 100 ("infinite")
    dc.b    $24                                ; Option 1: 4 choices, default is #2
    dc.b    $02                                ; Option 2: 2 choices, default is #0
    dc.b    $00,$00,$00,$00,$00,$00,$00,$00
    dc.b    "TIMER 1     "                     ; Special option 1 description
    dc.b    "TIMER 2     "                     ; Special option 2 description
    dc.b    "COUNTER     "                     ; Special option 3 description
    dc.b    "COUNTER SPE "                     ; Special option 4 description
    dc.b    "LIVES       "                     ; Option 1 description
    dc.b    "1           "                     ; Option 1 choices
    dc.b    "2           "
    dc.b    "3           "
    dc.b    "4           "
    dc.b    "HOW TO PLAY "                     ; Option 2 description
    dc.b    "WITH        "                     ; Option 2 choices
    dc.b    "WITHOUT     "

Config 3.png