More improvements to Noraut Poker driver [Roberto Fresca, Alan Griffin]

* Executed a trojan on 2 noraut systems to confirm the way 16x32 tiles are decoded.
 * Fixed the x-offset for 32x32 tiles lines.
 * Fixed the screen aspect and visible area.
 * Confirmed correct colors. No bipolar PROM involved.
 * Added Noraut Joker Poker hardware and PCB layouts.
 * Documented the discrete audio circuitry. Added a full diagram.
This commit is contained in:
Roberto Fresca 2009-08-26 07:57:51 +00:00
parent 4e3a2c0e17
commit cab82331c5

View File

@ -20,9 +20,12 @@
******************************************************************************* *******************************************************************************
Hardware Notes: HARDWARE NOTES:
--------------- ---------------
Hardware Layout (norautp):
1x Z80 1x Z80
3x PPI 8255 3x PPI 8255
2x 6116 SRAM 2x 6116 SRAM
@ -32,6 +35,7 @@
1x 555 + unknown yellow resonator, near the edge connector. 1x 555 + unknown yellow resonator, near the edge connector.
1x 555 + resnet, near the battery. 1x 555 + resnet, near the battery.
1x 10 DIP switches bank.
2x 3pins jumpers (between the Z80 and ROM) 2x 3pins jumpers (between the Z80 and ROM)
JP1 (ABC); JP2 (DEF) JP1 (ABC); JP2 (DEF)
@ -39,12 +43,79 @@
PCB silksceened: AB+DE=512 BC+DE=256 PCB silksceened: AB+DE=512 BC+DE=256
(CUT BC) EF=64/128 (CUT BC) EF=64/128
1x 10 DIP switches bank.
PCB silksceened: SMART-BOARD 131191 ISS.E (Made in USA) PCB silksceened: SMART-BOARD 131191 ISS.E (Made in USA)
-------------------------------------------------------------
Hardware Layout (norautjp):
- CPU: 1x TMPZ84C00AP-8
- RAM: 2x HM6116LP-4 CMOS Static Ram
- I/O: 3x D8255AC-2 Peripeheral Interface Adapter
- Prg ROMs: 1x 2764 Eprom
- Gfx ROMs: 1x 2732 Eprom
- Sound: Discrete
- Battery: 1x 3.6v Ni-cd 65Mah
- Crystal: 1x 18.432Mhz
- Resistor Array: 4x 9 Pin SIP 472G
PCB Layout (norautjp): Edge Connector 36x2
______________________________________________________________________________________________
| _____ _________ _________ _____ ......... _________ |
| |D5555| |74LS174N | |74LS153N | |D5555| ......... |ULN2003A | |
| |_____| |_________| |_________| |_____| Resistor Array |_________| |
| ___ |
| |VR1| |
| DIP SW x4 |___| |
| ________ _______ |
| |Battery | |1|2|3|4| _________ _________ _________ _________ _________ |
| | 3.6v | |_|_|_|_| |74LS157N | |74LS153N | |74LS161AP| |74LS86AN | |ULN2003A | |
| |________| |_________| |_________| |_________| |_________| |_________| |
| |
| |
| | 36
| _________ _________ _________ _________ _________ |___
| |HD74LS04P| |74LS166AP| |74LS161AN| |74LS153N | |ULN2003A | ___|
| |_________| |_________| |_________| |_________| |_________| ___|
| ___|
| DIP SW x 8 ________________ ___|
| _____________ _______________ _________ _________ | | ___|
| | | |1|2|3|4|5|6|7|8| |74LS161AN| |74LS157N | | D8255AC-2 | ___|
| | 2732 | |_|_|_|_|_|_|_|_| |_________| |_________| |________________| ___|
| |_____________| ___|
| ___|
| ________________ ___|
| | | ___|
| _____________ _____________ | D8255AC-2 | ___|
| | | | | |________________| ___|
| | 6116 | | 6116 | ___|
| |_____________| |_____________| _________ _________ ___|
| |74LS161AN| |74LS157N | ___|
| |_________| |_________| ___|
| ___|
| ______________ ________________ ___|
| | | | | _________ _________ ___|
| | 2764 | | D8255AC-2 | |74LS161AN| |74LS157N | ......... ___|
| |______________| |________________| |_________| |_________| ......... ___|
| Resistor Array ___|
| |
| | 1
| _________ _________ _________ _________ |
| | 74LS32N | |74LS161AN| | 74LS86P | | 74LS04N | |
| |_________| |_________| |_________| |_________| |
| |
| XTAL |
| .----. |
| ____________________ __________ _________ _________ _________ _________ |
| | | |PALce16v8H| | 74LS04N | |74LS157N | | 74LS11N | |74LS74AN | |
| | TMPZ84C00AP-8 | |__________| |_________| |_________| |_________| |_________| |
| |____________________| |
| |
|_______________________________________________________________________________________________|
******************************************************************************* *******************************************************************************
@ -91,6 +162,61 @@
Video Red 36 Spark Detect (Not on all boards) Video Red 36 Spark Detect (Not on all boards)
*******************************************************************************
Noraut Poker discrete audio circuitry
-------------------------------------
3x ULN2003A (Darlington transistor array)
1x D5555C (CMOS timer)
1x KN2222A (Epitaxial planar general purpose NPN transistor)
1x VR/POT
.------. .------------. .-------.
| | | D5555C | |KN2222A|
| | 4| |3 R3 | | -->
| PC7|------------------------------|RST OUT|-----ZZZZ------|B E|>----ZZZZZ-----> Audio Out.
| PC6|---------. 6| |8 | C | VR1
| PC5|-----. |2-in .-----|THR VCC|-----------. '---+---' .----> Audio Out.
| PC4|--. | .-+------. | 5| |7 | | |
| | | | |ULN2003A| | .--|CVOLT DISC|--. | | |
| | | | '-+------' | | | | | +-------' --+--
| | | | |2-out C1 | | | GND | | | GND
| 8255 | | | '--------||---+ | '-----+------' | | -
| AP | | '--. | | |1 | | '
| | | |3-in | | | | |
'------' | .--+-----. | | C5 | | |
| |ULN2003A| | '---||---+ | | +5V
| '--+-----' | | | | -+-
| |3-out C2 | C4 | | C6 | |
| '----------||---+------||---+-------. | .--||--+-----'
|2-in | | | | | |
.-+------. | --+-- '-' |
|ULN2003A| | GND | |
'-+------' | - | |
|2-out C3 | R1 ' | R2 |
'----------------||---+----ZZZZ-------------+--ZZZZ--'
VR1 = 100 ohms
R1 = 120 K ; Tolerance +/- 5%
R2 = 2.2 K ; Tolerance +/- 5%
R3 = 1 K ; Tolerance +/- 5%
C1 = 223J = 22000 pF = 22 nF = 0.022 uF ; Tolerance +/- 5%
C2 = 103J = 10000 pF = 10 nF = 0.01 uF ; Tolerance +/- 5%
C3 = 473J = 47000 pF = 47 nF = 0.047 uF ; Tolerance +/- 5%
C4 = 103J = 10000 pF = 10 nF = 0.01 uF ; Tolerance +/- 5%
C5 = 103 = 10000 pF = 10 nF = 0.01 uF
C6 = 104 = 100000 pF = 100 nF = 0.1 uF
C1, C2, C3 & C4 are polyester film / mylar capacitors.
C5 & C6 are ceramic capacitors.
All Capacitors are non-polarised.
******************************************************************************* *******************************************************************************
@ -108,9 +234,9 @@
0x0000 - 0x1FFF ; ROM space. 0x0000 - 0x1FFF ; ROM space.
0x6000 - 0x63FF ; NVRAM. 0x6000 - 0x63FF ; NVRAM.
0x60 - 0x63 ; PPI 8255 0 - DIP Switches. 0x60 - 0x63 ; PPI 8255 0 - DIP Switches, lamps & counters.
0xA0 - 0xA3 ; PPI 8255 1 - Regular Inputs. 0xA0 - 0xA3 ; PPI 8255 1 - Regular Inputs, sound lines & remaining lamps.
0xC0 - 0xC3 ; PPI 8255 2 - Video RAM. 0xC0 - 0xC3 ; PPI 8255 2 - Video RAM access.
******************************************************************************* *******************************************************************************
@ -157,11 +283,17 @@
- Added partial DIP switches to norautrh. - Added partial DIP switches to norautrh.
- Added more technical notes. - Added more technical notes.
[2009-08-23] [2009-08-23/26]
- Added a default NVRAM to Noraut Joker Poker to bypass the 'F U' screen. - Added a default NVRAM to Noraut Joker Poker to bypass the 'F U' screen.
This is due to the phisical keyboard limitation when needs to enter This is due to the phisical keyboard limitation when needs to enter
4 simultaneous inputs. 4 simultaneous inputs.
- Executed a trojan on 2 noraut systems to confirm the way 16x32 tiles are decoded.
- Fixed the x-offset for 32x32 tiles lines.
- Fixed the screen aspect and visible area.
- Confirmed correct colors. No bipolar PROM involved.
- Added Noraut Joker Poker hardware and PCB layouts.
- Documented the discrete audio circuitery. Added a full diagram.
Notes: Notes:
@ -177,11 +309,9 @@
TODO: TODO:
- Analize the extra 8255 at 0xc0-0xc3 (full bidirectional port w/hshk) - Analize the extra 8255 at 0xc0-0xc3 (full bidirectional port w/hshk lines)
- Video RAM (through 3rd PPI?). - Video RAM (through 3rd PPI?).
- Find if wide chars are hardcoded or tied to a bit. - Find if wide chars are hardcoded or tied to a bit.
- Fix the little displacement between GFX banks.
- Proper colors (missing PROM?)
- Lamps layout. - Lamps layout.
- Discrete sound. - Discrete sound.
@ -220,7 +350,7 @@ static VIDEO_UPDATE( norautp )
for(y = 0; y < 8; y++) for(y = 0; y < 8; y++)
{ {
/*Double width*/ /* Double width, displaced 8 pixels in X */
if(y == 2 || (y >= 4 && y < 6)) if(y == 2 || (y >= 4 && y < 6))
{ {
for(x = 0; x < 16; x++) for(x = 0; x < 16; x++)
@ -228,7 +358,7 @@ static VIDEO_UPDATE( norautp )
int tile = np_vram[count] & 0x3f; int tile = np_vram[count] & 0x3f;
int colour = (np_vram[count] & 0xc0) >> 6; int colour = (np_vram[count] & 0xc0) >> 6;
drawgfx_opaque(bitmap,cliprect, screen->machine->gfx[1], tile, colour, 0, 0, x * 32, y * 32); drawgfx_opaque(bitmap,cliprect, screen->machine->gfx[1], tile, colour, 0, 0, (x * 32) + 8, y * 32);
count+=2; count+=2;
} }
@ -271,7 +401,8 @@ static PALETTE_INIT( norautp )
static WRITE8_DEVICE_HANDLER( lamps_w ) static WRITE8_DEVICE_HANDLER( lamps_w )
{ {
/* LAMPS: /* PPI0 (60h-63h); PortB out
Lamps:
7654 3210 7654 3210
---- ---x Change Card / (Save?) ---- ---x Change Card / (Save?)
@ -283,7 +414,6 @@ static WRITE8_DEVICE_HANDLER( lamps_w )
-x-- ---- Hold 5 -x-- ---- Hold 5
x--- ---- Start (poker) x--- ---- Start (poker)
*/ */
output_set_lamp_value(0, (data >> 0) & 1); /* Change */ output_set_lamp_value(0, (data >> 0) & 1); /* Change */
output_set_lamp_value(1, (data >> 1) & 1); /* Hi/Lo */ output_set_lamp_value(1, (data >> 1) & 1); /* Hi/Lo */
output_set_lamp_value(2, (data >> 2) & 1); /* Hold 1 */ output_set_lamp_value(2, (data >> 2) & 1); /* Hold 1 */
@ -296,6 +426,16 @@ static WRITE8_DEVICE_HANDLER( lamps_w )
static WRITE8_DEVICE_HANDLER( ccounter_w ) static WRITE8_DEVICE_HANDLER( ccounter_w )
{ {
/* PPI0 (60h-63h); PortC out
Coin Counters:
7654 3210
---- -xxx unknown
---- x--- Payout
---x ---- Coin 2
--x- ---- Coin 3
xx-- ---- unknown
*/
coin_counter_w(0, data & 0x20); /* Coin1 */ coin_counter_w(0, data & 0x20); /* Coin1 */
coin_counter_w(1, data & 0x10); /* Coin2 */ coin_counter_w(1, data & 0x10); /* Coin2 */
coin_counter_w(2, data & 0x08); /* Payout */ coin_counter_w(2, data & 0x08); /* Payout */
@ -303,6 +443,15 @@ static WRITE8_DEVICE_HANDLER( ccounter_w )
static WRITE8_DEVICE_HANDLER( sndlamp_w ) static WRITE8_DEVICE_HANDLER( sndlamp_w )
{ {
/* PPI1 (a0h-a3h); PortC out
Sound & Lamps:
7654 3210
---- ---x Start Lamp?
---- --x- Bet Lamp
---- xx-- unknown
xxxx ---- Discrete Sound Lines
*/
output_set_lamp_value(8, (data >> 0) & 1); /* Start? */ output_set_lamp_value(8, (data >> 0) & 1); /* Start? */
output_set_lamp_value(9, (data >> 1) & 1); /* Bet */ output_set_lamp_value(9, (data >> 1) & 1); /* Bet */
@ -360,6 +509,9 @@ ADDRESS_MAP_END
c2 --> R ; status? c2 --> R ; status?
c3 --> W ; alternate 00 & 01 (in case of PPI, setting resetting bit 0 of handshaked port) c3 --> W ; alternate 00 & 01 (in case of PPI, setting resetting bit 0 of handshaked port)
The strange issue is that some sets just configure the PPI to mixed mode2 and mode0 input.
it means that port A should be bidirectional and port B just as input. (port C as hshk regs).
So... it doesn't match the addressing through c1.
*/ */
static ADDRESS_MAP_START( gtipoker_map, ADDRESS_SPACE_PROGRAM, 8 ) static ADDRESS_MAP_START( gtipoker_map, ADDRESS_SPACE_PROGRAM, 8 )
@ -533,14 +685,8 @@ INPUT_PORTS_END
static const gfx_layout charlayout = static const gfx_layout charlayout =
/* /*
Not sure if this is the correct way to decode. Trojanned 2 Narout Poker PCBs to see how the hardware decodes
Each tile should be 16x32 conformed by: the 16x32 tiles. The following GFX layout is 100% accurate.
- 8 empty lines.
- 16x16 char.
- 8 empty lines.
Each tile is a regular 16x16 char centered into 16x32 tile.
Only alphanumeric chars are used.
*/ */
{ {
16, 32, 16, 32,
@ -635,7 +781,7 @@ static MACHINE_DRIVER_START( norautp )
MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
MDRV_SCREEN_SIZE(32*16, 32*16) MDRV_SCREEN_SIZE(32*16, 32*16)
MDRV_SCREEN_VISIBLE_AREA(2*16, 31*16-1, 0*16, 16*16-1) MDRV_SCREEN_VISIBLE_AREA(3*16, 31*16-1, (0*16) + 8, 16*16-1) /* the hardware clips the top 8 pixels */
MDRV_GFXDECODE(norautp) MDRV_GFXDECODE(norautp)