Software DIPs: Difference between revisions

From NeoGeo Development Wiki
Jump to navigation Jump to search
m (7 revisions: Import from wikkii)
m (Added a bit of details)
Line 1: Line 1:
[[File:Softdips.png|thumb|right|A Soft DIPs setup screen.]]
[[File:Softdips.png|thumb|right|A Soft DIPs setup screen.]]


Software DIPs are a list of game-specific parameters, which are only acessible from the MVS [[BIOSes|BIOS]] menu.
Software DIPs are a list of 16 game-specific parameters, which are only modifiable from the MVS [[BIOSes|BIOS]] menu.


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


In [[MVS systems]], they're then stored in the [[battery-backed RAM]] starting at 0x220, one byte per option. How is this handled in multislot board ? BIOS call ?
In [[MVS systems]], the settings are saved for each game in the [[backup RAM]] (starting at 0x220) by the BIOS. How is this handled in multislot board ?


The AES and CD games have fixed values ?
The setting values are copied from backup RAM to [[68k user RAM|user RAM]] at '''BIOS_GAME_DIP''' ($10FD84) when USER (0x122) is called.
 
The AES and CD games have fixed values.


== Config data description ==
== Config data description ==
Line 15: Line 17:
{| class="regdef" style="text-align:center;"
{| class="regdef" style="text-align:center;"
| '''0x00'''
| '''0x00'''
| Game Name
| 16 bytes
| Game name
|-
|-
| '''0x10'''
| '''0x10'''
| Special entry list, see description below
| 6 bytes
| Special entry list, 4 entries. See description below.
|-
|-
| '''0x16'''
| '''0x16'''
| Simple options list, up to 10 entry. 1 byte per entry. Padded with 0x00 for unused options.
| 10 bytes
| Simple options list, up to 10 entries. 1 byte per entry. Padded with 0x00 for unused options.
|-
|-
| '''0x20'''
| '''0x20'''
| 16*12 bytes
| Options string table. Strings are 12 bytes long and padded with 0x20 (space).
| Options string table. Strings are 12 bytes long and padded with 0x20 (space).
|}
|}
Line 31: Line 37:
You can define up to 4 special options.
You can define up to 4 special options.


The first two words can be used to define two "timer options". You can set minutes and seconds. Upper byte defines the amount of minutes and the lower byte the seconds.
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 counter, from 00 to 99. The value written is the default one. (value above 0x63 will show some garbage data).


The last byte can be used for a counter plus two special values : "WITHOUT" and "INFINITE" (0x00 is without and 0x64 is infinite). The counter will go from 00 to 99 with the text "times" after.
The next byte can be used for a selection between 00 and 99. The value written is the default one. (values above 99 will show some garbage data). If not used, specify 0xFF.


They all take one string in the strings table for the description.
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 those options can be disable by entering 0xFF.
All these options take one string in the strings table for the description.


===Simple options list description===
===Simple options list description===
Line 45: Line 49:
Each options consists of 1 byte.
Each options consists of 1 byte.


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


===Config examples===
==Config examples==


<pre>
<pre>
     dc.b    "TEST ROM   "                           ; Game name
     dc.b    "TEST ROM       "                 ; Game name
     dc.b    $FF,$FF,$FF,$FF,$FF,$FF                   ; Special list
     dc.b    $FF,$FF,$FF,$FF,$FF,$FF           ; Special options list (none used)
     dc.b    $24,$02,$00,$00,$00,$00,$00,$00,$00,$00   ; Option list
     dc.b    $24                               ; Option 1: 4 choices, default is #2
     dc.b    "LIVES      "
    dc.b    $02                               ; Option 2: 2 choices, default is #0
     dc.b    "1          "
    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    "2          "
     dc.b    "3          "
     dc.b    "3          "
     dc.b    "4          "
     dc.b    "4          "
     dc.b    "HOW TO PLAY "
     dc.b    "HOW TO PLAY "                     ; Option 2 description
     dc.b    "WITH        "
     dc.b    "WITH        "                     ; Option 2 choices
     dc.b    "WITHOUT    "
     dc.b    "WITHOUT    "
</pre>
</pre>
Line 69: Line 75:


<pre>
<pre>
     dc.b    "TEST ROM    "                           ; Game name
     dc.b    "TEST ROM    "                     ; Game name
     dc.b    $42,$20,$20,$42,$42,$64                   ; Special list
     dc.b    $42,$20                           ; Special option 1: 42 minutes 20 seconds
     dc.b    $24,$02,$00,$00,$00,$00,$00,$00,$00,$00   ; Option list
    dc.b    $20,$42                           ; Special option 2: 20 minutes 42 seconds
     dc.b    "TIMER 1    "
    dc.b    $42                               ; Special option 3: 66
     dc.b    "TIMER 2    "
    dc.b    $64                               ; Special option 4: 100 ("infinite")
     dc.b    "COUNTER    "
     dc.b    $24                               ; Option 1: 4 choices, default is #2
     dc.b    "COUNTER SPE "
    dc.b    $02                               ; Option 2: 2 choices, default is #0
     dc.b    "LIVES      "
    dc.b    $00,$00,$00,$00,$00,$00,$00,$00
     dc.b    "1          "
     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    "2          "
     dc.b    "3          "
     dc.b    "3          "
     dc.b    "4          "
     dc.b    "4          "
     dc.b    "HOW TO PLAY "
     dc.b    "HOW TO PLAY "                     ; Option 2 description
     dc.b    "WITH        "
     dc.b    "WITH        "                     ; Option 2 choices
     dc.b    "WITHOUT    "
     dc.b    "WITHOUT    "
</pre>
</pre>

Revision as of 12:49, 12 July 2011

File:Softdips.png
A Soft DIPs setup screen.

Software DIPs are a list of 16 game-specific parameters, which are only modifiable from the MVS BIOS 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 BIOS. 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 16*12 bytes Options string table. Strings are 12 bytes long and padded with 0x20 (space).

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 00 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     "
File:Config 1.png File: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     "

File:Config 3.png