mirror of
https://github.com/holub/mame
synced 2025-05-23 22:20:01 +03:00
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:
parent
4e3a2c0e17
commit
cab82331c5
@ -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)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user