315-5360 |
imageプラグインエラー : ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (width=300<center) |
Region allocation Like the System 16 hardware, the 315-5360 chip controls a user-definable memory map which consists of eight regions: Region Alien Storm Clutch Hitter 0 Program ROM Program ROM (sockets ROM0-O,E) 1 Unused Program ROM (sockets ROM1-O,E) 2 VDP VDP 3 Work RAM Work RAM 4 Sprite RAM Sprite RAM 5 Tile/Text RAM Tile/Text RAM 6 Color RAM Color RAM 7 I/O area I/O area Alien Storm has only one set of program ROM sockets, while Clutch Hitter has two. Shadow Dancer is an exception; region 2 seems to be unused and region 1 is set to the VDP area at $C00000-$DFFFFF. It doesn't use the VDP for video, but obscures the tile banking routine by storing the bank value in word 0 of VRAM and reading it back later before copying the value to I/O port H. I don't have any information about the main or ROM board this game uses. For both Alien Storm and Clutch Hitter, region 2 must be mapped to $C00000-$DFFFFF in order to access the VDP. If not, writes do nothing and reads return the prefetch value. The VDP will still oprerate normally, but it's registers will be unavailable. The I/O area is a 16K space repeatedly mirrored throughout the banks allocated to it: Region I/O chip offsets offsets Description $0000-$0FFF $00-$1F I/O chip registers and unused locations $1000-$1FFF $00-$1F I/O chip registers and unused locations $2000-$2FFF $20-$3F Video control register $3000-$3FFF $20-$3F /EXCS area The unusal mapping is due to the I/O chip having it's A5 input from 68K A12, and some additional logic uses /FMCS and 68K A11 to divide the /FMCS area into two parts, for the video control register and expansion /CS signal. Values written to odd bytes in the $2000-$3FFF range are stored in the video control register, explained later. Reads return the prefetch value and do not make the latch load in the contents of the data bus. Any expansion boards plugged into CN5 will appear at $3000-$3FFF. This is used by the D.D. Crew I/O board. The System 18 hardware uses the chip like so: Port A - 1P controls D7 : Joystick left (0= pressed, 1= released) D6 : Joystick right (0= pressed, 1= released) D5 : Joystick up (0= pressed, 1= released) D4 : Joystick down (0= pressed, 1= released) D3 : Button D (0= pressed, 1= released) D2 : Button C (0= pressed, 1= released) D1 : Button B (0= pressed, 1= released) D0 : Button A (0= pressed, 1= released) Port B - 2P controls D7 : Joystick left (0= pressed, 1= released) D6 : Joystick right (0= pressed, 1= released) D5 : Joystick up (0= pressed, 1= released) D4 : Joystick down (0= pressed, 1= released) D3 : Button D (0= pressed, 1= released) D2 : Button C (0= pressed, 1= released) D1 : Button B (0= pressed, 1= released) D0 : Button A (0= pressed, 1= released) Port C - Bidirectional I/O port D7 : To CN8 pin 3 D6 : To CN8 pin 4 D5 : To CN8 pin 5 D4 : To CN8 pin 6 D3 : To CN8 pin 8 D2 : To CN8 pin 9 D1 : To CN8 pin 10 D0 : To CN8 pin 11 Port C is connected to a 74LS245 whose output goes to CN8. The CNT0 output pin controls the DIR input of the 74LS245. Port D - Miscellaneous output D7 : ? D6 : To color encoder /GRAY input (0= grayscale, 1= color) D5 : To tilemap/sprite generator flip screen input (0= normal, 1= flip) D4 : To pin 2 of CN8. D3 : Coin lockout 2 D2 : Coin lockout 1 D1 : Coin meter 2 (increment counter on 0 to 1 transition) D0 : Coin meter 1 (increment counter on 0 to 1 transition) Pin 2 of CN8 is a high current output capable of driving a lamp or coin meter. Bit 5 enables screen flipping for the tilemap and sprite layers, it is connected to both chips. It and bit 6 do not affect the VDP display which is separate. Port E - Service / Coin inputs D7 : Always returns '1' D6 : Select Game button (0= pressed, 1= released) D5 : 2P start button (0= pressed, 1= released) D4 : 1P start button (0= pressed, 1= released) D3 : Service switch (0= pressed, 1= released) D2 : Test switch (0= pressed, 1= released) D1 : 1P coin meter (0= Coin inserted, 1= No coin) D0 : 2P coin meter (0= Coin inserted, 1= No coin) Port F - DIP switch #1 D7 : Switch 8 (1= Off, 0= On) D6 : Switch 7 (1= Off, 0= On) D5 : Switch 6 (1= Off, 0= On) D4 : Switch 5 (1= Off, 0= On) D3 : Switch 4 (1= Off, 0= On) D2 : Switch 3 (1= Off, 0= On) D1 : Switch 2 (1= Off, 0= On) D0 : Switch 1 (1= Off, 0= On) Port G - DIP switch #2 D7 : Switch 8 (1= Off, 0= On) D6 : Switch 7 (1= Off, 0= On) D5 : Switch 6 (1= Off, 0= On) D4 : Switch 5 (1= Off, 0= On) D3 : Switch 4 (1= Off, 0= On) D2 : Switch 3 (1= Off, 0= On) D1 : Switch 2 (1= Off, 0= On) D0 : Switch 1 (1= Off, 0= On) Port H - Tile banking D7 : Bit 3 of tile bank 2 D6 : Bit 2 of tile bank 2 D5 : Bit 1 of tile bank 2 D4 : Bit 0 of tile bank 2 D3 : Bit 3 of tile bank 1 D2 : Bit 2 of tile bank 1 D1 : Bit 1 of tile bank 1 D0 : Bit 0 of tile bank 1 Output pins (summary) CNT0 - To 74LS245 DIR to control direction of port C connected to CN8. 0= Input from CN8 to port C 1= Output from port C to CN8 CNT1 - OR'd with tilemap chip blank screen output, goes to /BLANK input of color encoder. 0= Screen blanked 1= Screen shown CNT2 - To enable input PAL controlling VDP display enable. 0= VDP output not shown 1= VDP output visible For Alien Storm, the lower three bits of each nibble select the tile ROM bank. If bit 3 of either nibble is set, the tile bank is always 0 and the tiles flicker a little. Most likely this is the high order address line which is unused in the ROM board. The bank select is from bit 12 of each word in tile RAM, and is always 0 for text layer tiles. Tile banking doesn't work at all on Clutch Hitter, though the banking hardware seems identical; the port H outputs are fed into an always-enabled 74LS157, whose output is the tile ROM high order address bits. The select input comes from the tilemap generator. I have the same problem with sprites which are not shown. The actual game itself runs fine, so there's some step I'm leaving out, apparently. Another oddity is that CNT0 makes the screen flip, even though it is not connected to the flip screen signal and quite clearly goes to the DIR pin of the 74LS245 between port C and CN8. This holds true for both board types. Maybe an actual mistake in the hardware?