mirror of
https://github.com/holub/mame
synced 2025-04-19 23:12:11 +03:00
n8080: move pcb notes to top of driver
This commit is contained in:
parent
8f06891446
commit
26db143614
@ -4,19 +4,136 @@
|
||||
|
||||
Nintendo 8080 hardware
|
||||
|
||||
- Space Fever
|
||||
- Space Fever High Splitter (aka SF-Hisplitter)
|
||||
- Space Launcher
|
||||
- Sheriff / Bandido / Western Gun 2
|
||||
- Helifire
|
||||
- Space Fever
|
||||
- Space Fever High Splitter (aka SF-Hisplitter)
|
||||
- Space Launcher
|
||||
- Sheriff / Bandido / Western Gun 2
|
||||
- Helifire
|
||||
|
||||
TODO:
|
||||
- space fever original hw is monochrome
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Space Fever (3 sets, Space Fever?, High Splitter?, Space Launcher?)
|
||||
Nintendo, 1979
|
||||
|
||||
Note: These are all simple ROM swaps on a standard b/w Space Fever PCB.
|
||||
|
||||
|
||||
PCB Layouts
|
||||
-----------
|
||||
|
||||
Top Board (Sound PCB)
|
||||
|
||||
TSF-SOU
|
||||
|----------------------------------------------------|
|
||||
| VR3 VR2 VR1 |
|
||||
| 8035 74123 |
|
||||
| 74275 |
|
||||
| 6MHz |
|
||||
| 74123 SN76477 |
|
||||
| SF_SOUND.IC2 74275 |
|
||||
| |
|
||||
| 7405 |
|
||||
| |
|
||||
|----------------------------------------------------|
|
||||
Notes:
|
||||
All IC's shown.
|
||||
There is no AMP on the PCB, sound amplification is done via a small external AMP board.
|
||||
ROM IC2 is a 2708 EPROM.
|
||||
VR1: master volume
|
||||
VR2: shoot volume
|
||||
VR3: music volume
|
||||
8035 clocks: pins 2 and 3 measure 6.000MHz
|
||||
pin 9 measures 399.256kHz
|
||||
pin 12 measures 200.0kHz
|
||||
pin 13 measures 105.0kHz
|
||||
pin 21 measures 399.4Khz
|
||||
pin 22 measures 400.0kHz
|
||||
pin 23 measures 399.3kHz
|
||||
pin 24 measures 399.3kHz
|
||||
pin 39 measures 61.5627Hz
|
||||
|
||||
|
||||
Middle board
|
||||
------------
|
||||
|
||||
TSF-I/O PI-500803
|
||||
|----------------------------------------------------|
|
||||
| |
|
||||
| VR1 |
|
||||
| 20.160MHz |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| DSW1(8) |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
|----------------------------------------------------|
|
||||
Notes:
|
||||
VR1: adjusts brightness
|
||||
Board contains mostly logic ICs (not shown)
|
||||
Video output is b/w, the harness is wired to a JAMMA fingerboard but only blue is used.
|
||||
|
||||
|
||||
Bottom board
|
||||
------------
|
||||
|
||||
TSF-CPU PI-500802
|
||||
|----------------------------------------------------|
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| SF_F1.F1 SF_G1.G1 SF_H1.H1 SF_I1.I1 |
|
||||
| |
|
||||
| 8080 |
|
||||
| |
|
||||
| SF_F2.F2 SF_G2.G2 SF_H2.H2 SF_I2.I2 |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| 4116 4116 4116 4116 4116 4116 4116 4116 |
|
||||
|----------------------------------------------------|
|
||||
Notes:
|
||||
All ROMs are 2708, 1K x8
|
||||
4116: 2K x8 DRAM
|
||||
8080 clock: 2.0160MHz (20.160 / 10)
|
||||
Sync: no V reading, H is 15.57kHz
|
||||
|
||||
Set 1 is on the PCB and is complete.
|
||||
Some ROMs in set1 match the current sfeverbw set.
|
||||
|
||||
The other two sets were supplied as just EPROMs.
|
||||
Set2 (maybe High Splitter) is missing the ROM at location I2. Might be missing, or maybe
|
||||
just the program is smaller and the extra ROM was not required.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "includes/n8080.h"
|
||||
|
||||
#define MASTER_CLOCK XTAL(20'160'000)
|
||||
|
||||
// Shifter circuit done with TTL
|
||||
|
||||
void n8080_state::n8080_shift_bits_w(uint8_t data)
|
||||
{
|
||||
@ -28,12 +145,12 @@ void n8080_state::n8080_shift_data_w(uint8_t data)
|
||||
m_shift_data = (m_shift_data >> 8) | (data << 8);
|
||||
}
|
||||
|
||||
|
||||
uint8_t n8080_state::n8080_shift_r()
|
||||
{
|
||||
return m_shift_data >> (8 - m_shift_bits);
|
||||
}
|
||||
|
||||
|
||||
void n8080_state::main_cpu_map(address_map &map)
|
||||
{
|
||||
map.global_mask(0x7fff);
|
||||
@ -41,7 +158,6 @@ void n8080_state::main_cpu_map(address_map &map)
|
||||
map(0x4000, 0x7fff).ram().share("videoram");
|
||||
}
|
||||
|
||||
|
||||
void helifire_state::main_cpu_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x3fff).rom();
|
||||
@ -66,7 +182,7 @@ void n8080_state::main_io_map(address_map &map)
|
||||
}
|
||||
|
||||
|
||||
/* Input ports */
|
||||
// Input ports
|
||||
|
||||
static INPUT_PORTS_START( spacefev )
|
||||
PORT_START("IN0")
|
||||
@ -431,13 +547,13 @@ static INPUT_PORTS_START( helifire )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
/* Interrupts */
|
||||
// Interrupts
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(n8080_state::rst1_tick)
|
||||
{
|
||||
int state = m_inte ? ASSERT_LINE : CLEAR_LINE;
|
||||
|
||||
/* V7 = 1, V6 = 0 */
|
||||
// V7 = 1, V6 = 0
|
||||
m_maincpu->set_input_line_and_vector(INPUT_LINE_IRQ0, state, 0xcf); // I8080
|
||||
}
|
||||
|
||||
@ -445,7 +561,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(n8080_state::rst2_tick)
|
||||
{
|
||||
int state = m_inte ? ASSERT_LINE : CLEAR_LINE;
|
||||
|
||||
/* vblank */
|
||||
// vblank
|
||||
m_maincpu->set_input_line_and_vector(INPUT_LINE_IRQ0, state, 0xd7); // I8080
|
||||
}
|
||||
|
||||
@ -458,11 +574,14 @@ void n8080_state::n8080_status_callback(uint8_t data)
|
||||
{
|
||||
if (data & i8080_cpu_device::STATUS_INTA)
|
||||
{
|
||||
/* interrupt acknowledge */
|
||||
// interrupt acknowledge
|
||||
m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Machine start/reset
|
||||
|
||||
void n8080_state::machine_start()
|
||||
{
|
||||
save_item(NAME(m_shift_data));
|
||||
@ -503,10 +622,12 @@ void helifire_state::machine_reset()
|
||||
}
|
||||
|
||||
|
||||
// Machine configs
|
||||
|
||||
void spacefev_state::spacefev(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
I8080(config, m_maincpu, MASTER_CLOCK / 10);
|
||||
I8080(config, m_maincpu, XTAL(20'160'000) / 10);
|
||||
m_maincpu->out_status_func().set(FUNC(spacefev_state::n8080_status_callback));
|
||||
m_maincpu->out_inte_func().set(FUNC(spacefev_state::n8080_inte_callback));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &spacefev_state::main_cpu_map);
|
||||
@ -529,11 +650,10 @@ void spacefev_state::spacefev(machine_config &config)
|
||||
spacefev_sound(config);
|
||||
}
|
||||
|
||||
|
||||
void sheriff_state::sheriff(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
I8080(config, m_maincpu, MASTER_CLOCK / 10);
|
||||
I8080(config, m_maincpu, XTAL(20'160'000) / 10);
|
||||
m_maincpu->out_status_func().set(FUNC(sheriff_state::n8080_status_callback));
|
||||
m_maincpu->out_inte_func().set(FUNC(sheriff_state::n8080_inte_callback));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &sheriff_state::main_cpu_map);
|
||||
@ -571,7 +691,7 @@ void sheriff_state::westgun2(machine_config &config)
|
||||
void helifire_state::helifire(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
I8080(config, m_maincpu, MASTER_CLOCK / 10);
|
||||
I8080(config, m_maincpu, XTAL(20'160'000) / 10);
|
||||
m_maincpu->out_status_func().set(FUNC(helifire_state::n8080_status_callback));
|
||||
m_maincpu->out_inte_func().set(FUNC(helifire_state::n8080_inte_callback));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &helifire_state::main_cpu_map);
|
||||
@ -596,119 +716,7 @@ void helifire_state::helifire(machine_config &config)
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Space Fever (3 sets, Space Fever?, High Splitter?, Space Launcher?)
|
||||
Nintendo, 1979
|
||||
|
||||
Note: These are all simple ROM swaps on a standard b/w Space Fever PCB.
|
||||
|
||||
|
||||
PCB Layouts
|
||||
-----------
|
||||
|
||||
Top Board (Sound PCB)
|
||||
|
||||
TSF-SOU
|
||||
|----------------------------------------------------|
|
||||
| VR3 VR2 VR1 |
|
||||
| 8035 74123 |
|
||||
| 74275 |
|
||||
| 6MHz |
|
||||
| 74123 SN76477 |
|
||||
| SF_SOUND.IC2 74275 |
|
||||
| |
|
||||
| 7405 |
|
||||
| |
|
||||
|----------------------------------------------------|
|
||||
Notes:
|
||||
All IC's shown.
|
||||
There is no AMP on the PCB, sound amplification is done via a small external AMP board.
|
||||
ROM IC2 is a 2708 EPROM.
|
||||
VR1: master volume
|
||||
VR2: shoot volume
|
||||
VR3: music volume
|
||||
8035 clocks: pins 2 and 3 measure 6.000MHz
|
||||
pin 9 measures 399.256kHz
|
||||
pin 12 measures 200.0kHz
|
||||
pin 13 measures 105.0kHz
|
||||
pin 21 measures 399.4Khz
|
||||
pin 22 measures 400.0kHz
|
||||
pin 23 measures 399.3kHz
|
||||
pin 24 measures 399.3kHz
|
||||
pin 39 measures 61.5627Hz
|
||||
|
||||
|
||||
Middle board
|
||||
------------
|
||||
|
||||
TSF-I/O PI-500803
|
||||
|----------------------------------------------------|
|
||||
| |
|
||||
| VR1 |
|
||||
| 20.160MHz |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| DSW1(8) |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
|----------------------------------------------------|
|
||||
Notes:
|
||||
VR1: adjusts brightness
|
||||
Board contains mostly logic ICs (not shown)
|
||||
Video output is b/w, the harness is wired to a JAMMA fingerboard but only blue is used.
|
||||
|
||||
|
||||
Bottom board
|
||||
------------
|
||||
|
||||
TSF-CPU PI-500802
|
||||
|----------------------------------------------------|
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| SF_F1.F1 SF_G1.G1 SF_H1.H1 SF_I1.I1 |
|
||||
| |
|
||||
| 8080 |
|
||||
| |
|
||||
| SF_F2.F2 SF_G2.G2 SF_H2.H2 SF_I2.I2 |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| 4116 4116 4116 4116 4116 4116 4116 4116 |
|
||||
|----------------------------------------------------|
|
||||
Notes:
|
||||
All ROMs are 2708, 1K x8
|
||||
4116: 2K x8 DRAM
|
||||
8080 clock: 2.0160MHz (20.160 / 10)
|
||||
Sync: no V reading, H is 15.57kHz
|
||||
|
||||
Set 1 is on the PCB and is complete.
|
||||
Some ROMs in set1 match the current sfeverbw set.
|
||||
|
||||
The other two sets were supplied as just EPROMs.
|
||||
Set2 (maybe High Splitter) is missing the ROM at location I2. Might be missing, or maybe
|
||||
just the program is smaller and the extra ROM was not required.
|
||||
*/
|
||||
// ROM definitions
|
||||
|
||||
ROM_START( spacefev )
|
||||
ROM_REGION( 0x8000, "maincpu", 0 )
|
||||
@ -922,15 +930,18 @@ ROM_START( helifirea )
|
||||
ROM_END
|
||||
|
||||
|
||||
GAME( 1979, spacefev, 0, spacefev, spacefev, spacefev_state, empty_init, ROT270, "Nintendo", "Space Fever (New Ver.)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1979, spacefevo, spacefev, spacefev, spacefev, spacefev_state, empty_init, ROT270, "Nintendo", "Space Fever (Old Ver.)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1979, spacefevo2, spacefev, spacefev, spacefev, spacefev_state, empty_init, ROT270, "Nintendo", "Space Fever (Older Ver.)", MACHINE_SUPPORTS_SAVE )
|
||||
// YEAR, NAME, PARENT, MACHINE, INPUT, CLASS, INIT, MONITOR, COMPANY, FULLNAME, FLAGS
|
||||
GAME( 1979, spacefev, 0, spacefev, spacefev, spacefev_state, empty_init, ROT270, "Nintendo", "Space Fever (new version)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1979, spacefevo, spacefev, spacefev, spacefev, spacefev_state, empty_init, ROT270, "Nintendo", "Space Fever (old version)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1979, spacefevo2, spacefev, spacefev, spacefev, spacefev_state, empty_init, ROT270, "Nintendo", "Space Fever (older version)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1979, highsplt, 0, spacefev, highsplt, spacefev_state, empty_init, ROT270, "Nintendo", "Space Fever High Splitter (set 1)", MACHINE_SUPPORTS_SAVE ) // known as "SF-Hisplitter" on its flyer
|
||||
GAME( 1979, highsplta, highsplt, spacefev, highsplt, spacefev_state, empty_init, ROT270, "Nintendo", "Space Fever High Splitter (set 2)", MACHINE_SUPPORTS_SAVE ) // known as "SF-Hisplitter" on its flyer
|
||||
GAME( 1979, highspltb, highsplt, spacefev, highsplt, spacefev_state, empty_init, ROT270, "Nintendo", "Space Fever High Splitter (alt Sound)", MACHINE_SUPPORTS_SAVE ) // known as "SF-Hisplitter" on its flyer
|
||||
GAME( 1979, highsplta, highsplt, spacefev, highsplt, spacefev_state, empty_init, ROT270, "Nintendo", "Space Fever High Splitter (set 2)", MACHINE_SUPPORTS_SAVE ) // "
|
||||
GAME( 1979, highspltb, highsplt, spacefev, highsplt, spacefev_state, empty_init, ROT270, "Nintendo", "Space Fever High Splitter (alt sound)", MACHINE_SUPPORTS_SAVE ) // "
|
||||
GAME( 1979, spacelnc, 0, spacefev, spacelnc, spacefev_state, empty_init, ROT270, "Nintendo", "Space Launcher", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1979, sheriff, 0, sheriff, sheriff, sheriff_state, empty_init, ROT270, "Nintendo", "Sheriff", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1980, bandido, sheriff, sheriff, bandido, sheriff_state, empty_init, ROT270, "Nintendo (Exidy license)", "Bandido", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1980, westgun2, sheriff, westgun2, westgun2, sheriff_state, empty_init, ROT270, "Nintendo (Taito Corporation license)", "Western Gun Part II", MACHINE_SUPPORTS_SAVE ) // official Taito PCBs, but title/copyright not shown
|
||||
|
||||
GAME( 1980, helifire, 0, helifire, helifire, helifire_state, empty_init, ROT270, "Nintendo", "HeliFire (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1980, helifirea, helifire, helifire, helifire, helifire_state, empty_init, ROT270, "Nintendo", "HeliFire (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
|
||||
|
Loading…
Reference in New Issue
Block a user