Advertisement
GenesisFan64

PicoHW

May 1st, 2023
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.25 KB | None | 0 0
  1. -------------------------------------------------------------------------------
  2. notaz's Pico doc
  3. $Id: picodoc.txt 455 2008-05-21 20:35:17Z notaz $
  4. Copyright 2008, Gražvydas Ignotas (notaz)
  5. -------------------------------------------------------------------------------
  6.  
  7. If you use this, please credit me in your work or it's documentation.
  8. Use monospace font and disable word wrap when reading this document.
  9.  
  10.  
  11. -------------------------------------------------------------------------------
  12. Table of Contents
  13. -------------------------------------------------------------------------------
  14.  
  15. 0. Introduction
  16. 1. Overview
  17. 2. Memory map
  18. 3. Notes
  19.  
  20.  
  21. -------------------------------------------------------------------------------
  22. 0. Introduction
  23. -------------------------------------------------------------------------------
  24.  
  25. This document tries to describe some technical aspects of Sega Pico, an
  26. electronic toy by Sega. It is based on information obtained by reverse
  27. engineering the game ROM images and without performing any hardware tests,
  28. so information here is incomplete and is likely to be inaccurate.
  29.  
  30.  
  31. -------------------------------------------------------------------------------
  32. 1. Overview
  33. -------------------------------------------------------------------------------
  34.  
  35. The Pico hardware has similarities to Sega MegaDrive/Genesis and has the
  36. following hardware:
  37.  
  38. * Motorola 68000 @ 7.6 MHz (same as Genesis/MD)
  39. * 315-5313 VDP (same as Genesis/MD)
  40. * 64KiB of main RAM and 64KiB of video RAM (same as Genesis/MD)
  41. * PCM sound chip (custom?)
  42. * I/O interface for drawing pad, buttons, Storyware page sensors
  43.  
  44. It doesn't have Z80 or it's RAM, nor does it have YM2612 FM chip or I/O ports,
  45. which are normally found in Genesis/MegaDrive.
  46. SN76489/SN76496 part of VDP if fully functional, though.
  47.  
  48.  
  49. -------------------------------------------------------------------------------
  50. 2. Memory map
  51. -------------------------------------------------------------------------------
  52.  
  53. Memory map is similar to one in Genesis/MegaDrive, except that it lacks
  54. Axxxxx area, but has it's devices mapped at 8000xx.
  55.  
  56. 000000-3FFFFFh : ROM. Might actually smaller, games are usually 512KiB.
  57. 800000-80001Fh : I/O, internal registers and PCM.
  58. C00000-C0001Fh : VDP. May be mirrored elsewhere.
  59. FF0000-FFFFFFh : RAM. May be mirrored elsewhere.
  60.  
  61. I/O area:
  62.  
  63. addr acc description
  64. -------+-----+------------
  65. 800001 byte Version register.
  66. ?vv? ????, where v can be:
  67. 00 - hardware is for Japan
  68. 01 - European version
  69. 10 - USA version
  70. 11 - ?
  71. 800003 byte Buttons, 0 for pressed, 1 for released:
  72. bit 0: UP (white)
  73. bit 1: DOWN (orange)
  74. bit 2: LEFT (blue)
  75. bit 3: RIGHT (green)
  76. bit 4: red button
  77. bit 5: unused?
  78. bit 6: unused?
  79. bit 7: pen button
  80. 800005 byte Most significant byte of pen x coordinate.
  81. 800007 byte Least significant byte of pen x coordinate.
  82. 800009 byte Most significant byte of pen y coordinate.
  83. 80000b byte Least significant byte of pen y coordinate.
  84. 80000d byte Page register. One bit means one uncovered page sensor.
  85. 00 - storyware closed
  86. 01, 03, 07, 0f, 1f, 3f - pages 1-6
  87. either page 5 or page 6 is often unused.
  88. 800010 word PCM data register.
  89. r/w read returns free bytes left in PCM FIFO buffer
  90. writes write data to buffer.
  91. 800012 word PCM control register.
  92. r/w For writes, it has following possible meanings:
  93. ?p?? ???? ???? ?rrr
  94. p - set to enable playback?
  95. r - sample rate / PCM data type?
  96. 0: 8kHz 4bit ADPCM?
  97. 1-7: 16kHz variants?
  98. For reads, if bit 15 is cleared, it means PCM is 'busy' or
  99. something like that, as games sometimes wait for it to become 1.
  100. 800019 byte Games write 'S'
  101. 80001b byte Games write 'E'
  102. 80001d byte Games write 'G'
  103. 80001f byte Games write 'A'
  104.  
  105.  
  106. -------------------------------------------------------------------------------
  107. 3. Notes
  108. -------------------------------------------------------------------------------
  109.  
  110. The pen can be used to 'draw' either on the drawing pad or on the storyware
  111. itself. Both storyware and drawing pad are mapped on single virtual plane, where
  112. coordinates range:
  113.  
  114. x: 0x03c - 0x17c
  115. y: 0x1fc - 0x2f7 (drawing pad)
  116. 0x2f8 - 0x3f3 (storyware)
  117.  
  118. Pico has some sort of TMSS equivalent, as games write 'SEGA' to off bytes of
  119. 800018-80001f.
  120.  
  121. The 68000 uses following hardware interrupt autovectors:
  122. level 2 - seems to be available, but most games put empty handlers here.
  123. level 3 - PCM interrupt? Probably occurs when PCM hardware needs more data,
  124. and exact conditions probably depend on PCM control register
  125. settings.
  126. level 4 - horizontal interrupt? Not widely used.
  127. level 5 - definitely used for something, but many games work without it.
  128. level 6 - 'usual' vertical interrupt.
  129.  
  130. The exact PCM sound format is unknown, but it looks like it's some variant of
  131. 4bit ADPCM. The format may depend on PCM control register settings too.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement