Backup RAM: Difference between revisions

From NeoGeo Development Wiki
Jump to navigation Jump to search
mNo edit summary
Line 31: Line 31:
|$00
|$00
|Unused, fill with $00
|Unused, fill with $00
|-
|$D0003A
|$D00045
|$C
|$01010102010101030000303B0000
|the init_backupram routine ($C125F4) will copy $C data from $C1F000 there.
|-
|-
|$D00046
|$D00046
Line 44: Line 50:
|Number of detected slots (2 for slot1)
|Number of detected slots (2 for slot1)
|-
|-
|$D0003A
|$D00048
|$D00045
|$D00059
|$C
|
|$01010102010101030000303B0000
|
|the init_backupram routine ($C125F4) will copy $C data from $C1F000 there.
|?
|-
|-
|$D0005A
|$D0005A
Line 55: Line 61:
|HHMMSSMM
|HHMMSSMM
|Current time, hour is mult by 4 (???), MM is the milliseconds.
|Current time, hour is mult by 4 (???), MM is the milliseconds.
|-
|$D0005E
|$D00103
|
|
|?
|-
|-
|$D00104
|$D00104
|$D0017
|$D00107
|$4
|$4
|YYMMDDdd
|YYMMDDdd
|Current date
|Current date
|-
|$D00108
|$D00109
|
|
|?
|-
|-
|$D0010A
|$D0010A
Line 85: Line 103:
|
|
|Cabinet play last entry address
|Cabinet play last entry address
|-
|$D0011A
|$D00121
|
|
|?
|-
|-
|$D00122
|$D00122
Line 188: Line 212:
|YYMMDDdd
|YYMMDDdd
|Slot-8 book creation time YEAR-MONTH-DAY-day number
|Slot-8 book creation time YEAR-MONTH-DAY-day number
|-
|$D00164
|$D0029F
|
|
|?
|-
|-
|$D002A0
|$D002A0
Line 284: Line 314:
|
|
|Game 8 data
|Game 8 data
|-
|$D08320
|$D09B9F
|
|
|?
|-
|-
|$D09BA0
|$D09BA0
Line 299: Line 335:
YYMMDDdd PLAY CONTINUE TIME
YYMMDDdd PLAY CONTINUE TIME
|}
|}
*$D00000~$D0000F: Nothing ($00)
*$D00010: "BACKUP RAM OK !",$80
*$D00020.l: ?
*$D00021.b: btst 0,1,2,3,4
*$D00024.l: adresse ?
*$D00034.l: adresse ?
*$D00038.w: ? bit 4 tst
*$D0003A: Start of ? (13 bytes)
*$D00042.b: tst ?
*$D00043.b: tst ?
*$D00044.w: ?
*$D00046.b: SOUND_STOP, No sound at all if non-zero
*$D00047.b: Number of detected slots
*$D00048.l: ?
*$D0004C.b: ? ($3B)
*$D00058.b: First valid slot
*$D0005E.b: Something to do with tested slot? tst
*$D0005A.b: heure ?
*$D00060.w: multi-slot flag
*$D00104: year,month,day ? (3 bytes) Modify date
*$D00108.b: Selected tested slot
*$D00109.b: Compared with 8
*$D0011A: Start of ?
*$D00122.b: ? ($23)
*$D00124: adresses ? (4 bytes * nb of slots ?)
*$D00144: Date (Year, Month, Day, ? *8 ?) Creation date
*$D001AC.l: $F0F0F0F0
*$D001B0.w: $FFFF
*$D002A0: Title of game (16 bytes *8 ?)
*$D00320: ?


[[Category:Cartridge systems]]
[[Category:Cartridge systems]]

Revision as of 13:38, 18 September 2011

The backup RAM is a battery-powered 64KiB RAM space used by MVS systems to store game scores, cab infos and income logs. Access is handled by the BIOSes.

Memory region: $D00000~$D0FFFF (Mirrored up to $DFFFFF ?).

Data structure

All offset are taken from the sp-s2.bin bios.

Start End Size Data Description
$D00000 $D0000F $F $00 Unused, fill with $00
$D00010 $D0001F $F "BACKUP RAM OK!Ç" The routine at $C125C8 will check if this string is present, if not it will test the ram (using the test_ram routine at $C13134) and re-init the backupram
$D00020 $D00039 $19 $00 Unused, fill with $00
$D0003A $D00045 $C $01010102010101030000303B0000 the init_backupram routine ($C125F4) will copy $C data from $C1F000 there.
$D00046 $D00046 $1 SOUND_STOP No sound at all if non-zero
$D00047 $D00047 $1 SLOT NUMBER Number of detected slots (2 for slot1)
$D00048 $D00059 ?
$D0005A $D0005D $4 HHMMSSMM Current time, hour is mult by 4 (???), MM is the milliseconds.
$D0005E $D00103 ?
$D00104 $D00107 $4 YYMMDDdd Current date
$D00108 $D00109 ?
$D0010A $D0010D $4 Play time address related
$D0010E $D00111 $4 Play time address related
$D00112 $D00115 $4 Cabinet coin last entry address
$D00116 $D00119 $4 Cabinet play last entry address
$D0011A $D00121 ?
$D00122 $D00123 $2 $23 The init_backupram routine write $23 there, purpose unknown.
$D00124 $D00127 $4 Slot-1 NGH number and game name ID (see below) If not present $0000 as NGH and $FFFF as game name ID
$D00128 $D0012B $4 Slot-2 NGH number and game name ID (see below) If not present $0000 as NGH and $FFFF as game name ID.

On a slot1 always unset (slot1 are slot2 with the second one empty)

$D0012C $D0012F $4 Slot-3 NGH number and game name ID (see below) If not present $0000 as NGH and $FFFF as game name ID
$D00130 $D00133 $4 Slot-4 NGH number and game name ID (see below) If not present $0000 as NGH and $FFFF as game name ID
$D00134 $D00137 $4 Slot-5 NGH number and game name ID (see below) If not present $0000 as NGH and $FFFF as game name ID
$D00138 $D0013B $4 Slot-6 NGH number and game name ID (see below) If not present $0000 as NGH and $FFFF as game name ID
$D0013C $D0013F $4 Slot-7 NGH number and game name ID (see below) If not present $0000 as NGH and $FFFF as game name ID
$D00140 $D00143 $4 Slot-8 NGH number and game name ID (see below) If not present $0000 as NGH and $FFFF as game name ID
$D00144 $D00147 $4 YYMMDDdd Slot-1 book creation time YEAR-MONTH-DAY-day number
$D00148 $D0014B $4 YYMMDDdd Slot-2 book creation time YEAR-MONTH-DAY-day number
$D0014C $D0014F $4 YYMMDDdd Slot-3 book creation time YEAR-MONTH-DAY-day number
$D00150 $D00153 $4 YYMMDDdd Slot-4 book creation time YEAR-MONTH-DAY-day number
$D00154 $D00157 $4 YYMMDDdd Slot-5 book creation time YEAR-MONTH-DAY-day number
$D00158 $D0015B $4 YYMMDDdd Slot-6 book creation time YEAR-MONTH-DAY-day number
$D0015C $D0015F $4 YYMMDDdd Slot-7 book creation time YEAR-MONTH-DAY-day number
$D00160 $D00163 $4 YYMMDDdd Slot-8 book creation time YEAR-MONTH-DAY-day number
$D00164 $D0029F ?
$D002A0 $D002AF $F Game Name 0
$D002B0 $D002BF $F Game Name 1
$D002C0 $D002CF $F Game Name 2
$D002D0 $D002DF $F Game Name 3
$D002E0 $D002EF $F Game Name 4
$D002F0 $D002FF $F Game Name 5
$D00300 $D0030F $F Game Name 6
$D00310 $D0031F $F Game Name 7
$D00320 $D0131F $1000 Game 1 data
$D01320 $D0231F $1000 Game 2 data
$D02320 $D0331F $1000 Game 3 data
$D03320 $D0431F $1000 Game 4 data
$D04320 $D0531F $1000 Game 5 data
$D05320 $D0631F $1000 Game 6 data
$D06320 $D0731F $1000 Game 7 data
$D07320 $D0831F $1000 Game 8 data
$D08320 $D09B9F ?
$D09BA0 $D09DDF $240 Cabinet coin entries One entry is 16 bytes long, format is:

YYMMDDdd COIN1 COIN2 SERVICE

$D09DE0 $D0A020 $240 Cabinet play entries One entry is 16 bytes long, format is:

YYMMDDdd PLAY CONTINUE TIME