mirror of
https://github.com/holub/mame
synced 2025-05-19 20:29:09 +03:00
Cleanups and version bump.
This commit is contained in:
parent
42bc091d00
commit
6f16e97623
@ -279,7 +279,7 @@ typedef enum {
|
||||
#define XchgAWReg(Reg) \
|
||||
WORD tmp; \
|
||||
tmp = Wreg(Reg); \
|
||||
Wreg(Reg) = Wreg(AW); \
|
||||
Wreg(Reg) = Wreg(AW); \
|
||||
Wreg(AW) = tmp
|
||||
|
||||
#define ROL_BYTE nec_state->CarryVal = dst & 0x80; dst = (dst << 1)+CF
|
||||
|
@ -312,7 +312,7 @@ void v25_write_word(v25_state_t *nec_state, unsigned a, unsigned d);
|
||||
#define XchgAWReg(Reg) \
|
||||
WORD tmp; \
|
||||
tmp = Wreg(Reg); \
|
||||
Wreg(Reg) = Wreg(AW); \
|
||||
Wreg(Reg) = Wreg(AW); \
|
||||
Wreg(AW) = tmp
|
||||
|
||||
#define ROL_BYTE nec_state->CarryVal = dst & 0x80; dst = (dst << 1)+CF
|
||||
|
@ -246,45 +246,45 @@ static void s3c24xx_lcd_dma_init( running_device *device)
|
||||
/*
|
||||
static UINT32 s3c24xx_lcd_dma_read( running_device *device)
|
||||
{
|
||||
s3c24xx_t *s3c24xx = get_token( device);
|
||||
address_space* space = cputag_get_address_space( device->machine, "maincpu", ADDRESS_SPACE_PROGRAM);
|
||||
UINT8 *vram, data[4];
|
||||
vram = (UINT8 *)space->get_read_ptr( s3c24xx->lcd.vramaddr_cur);
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
data[i*2+0] = *vram++;
|
||||
data[i*2+1] = *vram++;
|
||||
s3c24xx->lcd.vramaddr_cur += 2;
|
||||
s3c24xx->lcd.pagewidth_cur++;
|
||||
if (s3c24xx->lcd.pagewidth_cur >= s3c24xx->lcd.pagewidth_max)
|
||||
{
|
||||
s3c24xx->lcd.vramaddr_cur += s3c24xx->lcd.offsize << 1;
|
||||
s3c24xx->lcd.pagewidth_cur = 0;
|
||||
vram = (UINT8 *)space->get_read_ptr( s3c24xx->lcd.vramaddr_cur);
|
||||
}
|
||||
}
|
||||
if (s3c24xx->lcd.hwswp == 0)
|
||||
{
|
||||
if (s3c24xx->lcd.bswp == 0)
|
||||
{
|
||||
return (data[3] << 24) | (data[2] << 16) | (data[1] << 8) | (data[0] << 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
return (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | (data[3] << 0);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (s3c24xx->lcd.bswp == 0)
|
||||
{
|
||||
return (data[1] << 24) | (data[0] << 16) | (data[3] << 8) | (data[2] << 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
return (data[2] << 24) | (data[3] << 16) | (data[0] << 8) | (data[1] << 0);
|
||||
}
|
||||
}
|
||||
s3c24xx_t *s3c24xx = get_token( device);
|
||||
address_space* space = cputag_get_address_space( device->machine, "maincpu", ADDRESS_SPACE_PROGRAM);
|
||||
UINT8 *vram, data[4];
|
||||
vram = (UINT8 *)space->get_read_ptr( s3c24xx->lcd.vramaddr_cur);
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
data[i*2+0] = *vram++;
|
||||
data[i*2+1] = *vram++;
|
||||
s3c24xx->lcd.vramaddr_cur += 2;
|
||||
s3c24xx->lcd.pagewidth_cur++;
|
||||
if (s3c24xx->lcd.pagewidth_cur >= s3c24xx->lcd.pagewidth_max)
|
||||
{
|
||||
s3c24xx->lcd.vramaddr_cur += s3c24xx->lcd.offsize << 1;
|
||||
s3c24xx->lcd.pagewidth_cur = 0;
|
||||
vram = (UINT8 *)space->get_read_ptr( s3c24xx->lcd.vramaddr_cur);
|
||||
}
|
||||
}
|
||||
if (s3c24xx->lcd.hwswp == 0)
|
||||
{
|
||||
if (s3c24xx->lcd.bswp == 0)
|
||||
{
|
||||
return (data[3] << 24) | (data[2] << 16) | (data[1] << 8) | (data[0] << 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
return (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | (data[3] << 0);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (s3c24xx->lcd.bswp == 0)
|
||||
{
|
||||
return (data[1] << 24) | (data[0] << 16) | (data[3] << 8) | (data[2] << 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
return (data[2] << 24) | (data[3] << 16) | (data[0] << 8) | (data[1] << 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
@ -1154,12 +1154,12 @@ static UINT16 s3c24xx_pwm_calc_observation( running_device *device, int ch)
|
||||
double timeleft, x1, x2;
|
||||
UINT32 cnto;
|
||||
timeleft = attotime_to_double( timer_timeleft( s3c24xx->pwm.timer[ch]));
|
||||
// printf( "timeleft %f freq %d cntb %d cmpb %d\n", timeleft, s3c24xx->pwm.freq[ch], s3c24xx->pwm.cnt[ch], s3c24xx->pwm.cmp[ch]);
|
||||
// printf( "timeleft %f freq %d cntb %d cmpb %d\n", timeleft, s3c24xx->pwm.freq[ch], s3c24xx->pwm.cnt[ch], s3c24xx->pwm.cmp[ch]);
|
||||
x1 = 1 / ((double)s3c24xx->pwm.freq[ch] / (s3c24xx->pwm.cnt[ch]- s3c24xx->pwm.cmp[ch] + 1));
|
||||
x2 = x1 / timeleft;
|
||||
// printf( "x1 %f\n", x1);
|
||||
// printf( "x1 %f\n", x1);
|
||||
cnto = s3c24xx->pwm.cmp[ch] + ((s3c24xx->pwm.cnt[ch]- s3c24xx->pwm.cmp[ch]) / x2);
|
||||
// printf( "cnto %d\n", cnto);
|
||||
// printf( "cnto %d\n", cnto);
|
||||
return cnto;
|
||||
}
|
||||
|
||||
@ -1263,7 +1263,7 @@ static void s3c24xx_pwm_start( running_device *device, int timer)
|
||||
}
|
||||
break;
|
||||
}
|
||||
// hz = freq / (cnt - cmp + 1);
|
||||
// hz = freq / (cnt - cmp + 1);
|
||||
if (cnt < 2)
|
||||
{
|
||||
hz = freq;
|
||||
@ -1525,12 +1525,12 @@ static void s3c24xx_dma_w( running_device *device, UINT32 ch, UINT32 offset, UIN
|
||||
case S3C24XX_DCON :
|
||||
{
|
||||
/* --- is this code necessary ???
|
||||
if ((data & (1 << 22)) != 0) // reload
|
||||
{
|
||||
s3c24xx_dma_regs_t *regs = &s3c24xx->dma[ch].regs;
|
||||
regs->dmasktrig &= ~(1 << 1); // clear on/off
|
||||
}
|
||||
*/
|
||||
if ((data & (1 << 22)) != 0) // reload
|
||||
{
|
||||
s3c24xx_dma_regs_t *regs = &s3c24xx->dma[ch].regs;
|
||||
regs->dmasktrig &= ~(1 << 1); // clear on/off
|
||||
}
|
||||
*/
|
||||
}
|
||||
break;
|
||||
case S3C24XX_DMASKTRIG :
|
||||
@ -1847,14 +1847,14 @@ static void s3c24xx_uart_w( running_device *device, UINT32 ch, UINT32 offset, UI
|
||||
static READ32_DEVICE_HANDLER( s3c24xx_uart_0_r )
|
||||
{
|
||||
UINT32 data = s3c24xx_uart_r( device, 0, offset);
|
||||
// verboselog( device->machine, 9, "(UART 0) %08X -> %08X\n", S3C24XX_BASE_UART_0 + (offset << 2), data);
|
||||
// verboselog( device->machine, 9, "(UART 0) %08X -> %08X\n", S3C24XX_BASE_UART_0 + (offset << 2), data);
|
||||
return data;
|
||||
}
|
||||
|
||||
static READ32_DEVICE_HANDLER( s3c24xx_uart_1_r )
|
||||
{
|
||||
UINT32 data = s3c24xx_uart_r( device, 1, offset);
|
||||
// verboselog( device->machine, 9, "(UART 1) %08X -> %08X\n", S3C24XX_BASE_UART_1 + (offset << 2), data);
|
||||
// verboselog( device->machine, 9, "(UART 1) %08X -> %08X\n", S3C24XX_BASE_UART_1 + (offset << 2), data);
|
||||
return data;
|
||||
}
|
||||
|
||||
@ -1863,7 +1863,7 @@ static READ32_DEVICE_HANDLER( s3c24xx_uart_1_r )
|
||||
static READ32_DEVICE_HANDLER( s3c24xx_uart_2_r )
|
||||
{
|
||||
UINT32 data = s3c24xx_uart_r( device, 2, offset);
|
||||
// verboselog( device->machine, 9, "(UART 2) %08X -> %08X\n", S3C24XX_BASE_UART_2 + (offset << 2), data);
|
||||
// verboselog( device->machine, 9, "(UART 2) %08X -> %08X\n", S3C24XX_BASE_UART_2 + (offset << 2), data);
|
||||
return data;
|
||||
}
|
||||
|
||||
@ -1871,13 +1871,13 @@ static READ32_DEVICE_HANDLER( s3c24xx_uart_2_r )
|
||||
|
||||
static WRITE32_DEVICE_HANDLER( s3c24xx_uart_0_w )
|
||||
{
|
||||
// verboselog( device->machine, 9, "(UART 0) %08X <- %08X\n", S3C24XX_BASE_UART_0 + (offset << 2), data);
|
||||
// verboselog( device->machine, 9, "(UART 0) %08X <- %08X\n", S3C24XX_BASE_UART_0 + (offset << 2), data);
|
||||
s3c24xx_uart_w( device, 0, offset, data, mem_mask);
|
||||
}
|
||||
|
||||
static WRITE32_DEVICE_HANDLER( s3c24xx_uart_1_w )
|
||||
{
|
||||
// verboselog( device->machine, 9, "(UART 1) %08X <- %08X\n", S3C24XX_BASE_UART_1 + (offset << 2), data);
|
||||
// verboselog( device->machine, 9, "(UART 1) %08X <- %08X\n", S3C24XX_BASE_UART_1 + (offset << 2), data);
|
||||
s3c24xx_uart_w( device, 1, offset, data, mem_mask);
|
||||
}
|
||||
|
||||
@ -1885,7 +1885,7 @@ static WRITE32_DEVICE_HANDLER( s3c24xx_uart_1_w )
|
||||
|
||||
static WRITE32_DEVICE_HANDLER( s3c24xx_uart_2_w )
|
||||
{
|
||||
// verboselog( device->machine, 9, "(UART 2) %08X <- %08X\n", S3C24XX_BASE_UART_2 + (offset << 2), data);
|
||||
// verboselog( device->machine, 9, "(UART 2) %08X <- %08X\n", S3C24XX_BASE_UART_2 + (offset << 2), data);
|
||||
s3c24xx_uart_w( device, 2, offset, data, mem_mask);
|
||||
}
|
||||
|
||||
@ -1893,7 +1893,7 @@ static WRITE32_DEVICE_HANDLER( s3c24xx_uart_2_w )
|
||||
|
||||
static void s3c24xx_uart_fifo_w( running_device *device, int uart, UINT8 data)
|
||||
{
|
||||
// printf( "s3c24xx_uart_fifo_w (%c)\n", data);
|
||||
// printf( "s3c24xx_uart_fifo_w (%c)\n", data);
|
||||
s3c24xx_t *s3c24xx = get_token( device);
|
||||
s3c24xx->uart[uart].regs.urxh = data;
|
||||
s3c24xx->uart[uart].regs.utrstat |= 1; // [bit 0] Receive buffer data ready
|
||||
@ -2385,7 +2385,7 @@ static void s3c24xx_rtc_recalc( running_device *device)
|
||||
double freq;
|
||||
ttc = BITS( s3c24xx->rtc.regs.ticnt, 6, 0);
|
||||
freq = 128 / (ttc + 1);
|
||||
// printf( "ttc %d freq %f\n", ttc, freq);
|
||||
// printf( "ttc %d freq %f\n", ttc, freq);
|
||||
timer_adjust_periodic( s3c24xx->rtc.timer_tick_count, ATTOTIME_IN_HZ( freq), 0, ATTOTIME_IN_HZ( freq));
|
||||
}
|
||||
else
|
||||
@ -3043,7 +3043,7 @@ static DEVICE_RESET( s3c24xx )
|
||||
{
|
||||
s3c24xx_t *s3c24xx = get_token( device);
|
||||
s3c24xx->iis.fifo_index = 0;
|
||||
// s3c24xx->iic.data_index = 0;
|
||||
// s3c24xx->iic.data_index = 0;
|
||||
}
|
||||
|
||||
static DEVICE_START( s3c24xx )
|
||||
@ -3069,7 +3069,7 @@ static DEVICE_GET_INFO( s3c24xx )
|
||||
/* --- the following bits of info are returned as 64-bit signed integers --- */
|
||||
case DEVINFO_INT_TOKEN_BYTES: info->i = sizeof(s3c24xx_t); break;
|
||||
case DEVINFO_INT_INLINE_CONFIG_BYTES: info->i = 0; break;
|
||||
// case DEVINFO_INT_CLASS: info->i = DEVICE_CLASS_PERIPHERAL; break;
|
||||
// case DEVINFO_INT_CLASS: info->i = DEVICE_CLASS_PERIPHERAL; break;
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case DEVINFO_FCT_START: info->start = DEVICE_START_NAME(s3c24xx); break;
|
||||
case DEVINFO_FCT_RESET: info->reset = DEVICE_RESET_NAME(s3c24xx); break;
|
||||
|
@ -54,7 +54,7 @@ enum
|
||||
#define MODE_DISPLAY_ENABLE_SKEW(d) (((d)->mode_control & 0x10) != 0)
|
||||
#define MODE_ROW_COLUMN_ADDRESSING(d) (((d)->mode_control & 0x04) != 0)
|
||||
|
||||
/* capabilities */ /* MC6845 MC6845-1 C6545-1 R6545-1 H46505 HD6845 SY6545-1 SY6845E */
|
||||
/* capabilities */ /* MC6845 MC6845-1 C6545-1 R6545-1 H46505 HD6845 SY6545-1 SY6845E */
|
||||
static const int supports_disp_start_addr_r[NUM_TYPES] = { TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE };
|
||||
static const int supports_vert_sync_width[NUM_TYPES] = { FALSE, TRUE, TRUE, TRUE, FALSE, TRUE, TRUE, TRUE };
|
||||
static const int supports_status_reg_d5[NUM_TYPES] = { FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, TRUE, TRUE };
|
||||
|
@ -175,13 +175,13 @@ and clears the EEROM accordingly.
|
||||
|
||||
Here is the list, which includes confirmed (*) and unconfirmed values:
|
||||
|
||||
Diagnostic Cartridge: 255
|
||||
Peter Packrat: 000*
|
||||
Marble Madness: 001*
|
||||
Indiana Jones - Temple of Doom: 002*
|
||||
Road Runner: 003*
|
||||
Relief Pitcher (unreleased): 004
|
||||
Off-Road (unreleased): 004
|
||||
Diagnostic Cartridge: 255
|
||||
Peter Packrat: 000*
|
||||
Marble Madness: 001*
|
||||
Indiana Jones - Temple of Doom: 002*
|
||||
Road Runner: 003*
|
||||
Relief Pitcher (unreleased): 004
|
||||
Off-Road (unreleased): 004
|
||||
RoadBlasters (aka Future Vette):005*
|
||||
|
||||
|
||||
|
@ -396,34 +396,34 @@ static READ16_HANDLER(sharedram_r)
|
||||
return (input_port_read(space->machine, "P2") & 0xffff) ^ 0xffff;
|
||||
|
||||
/*
|
||||
protection controls where the program code should jump to.
|
||||
protection controls where the program code should jump to.
|
||||
|
||||
example snippet:
|
||||
00DB2A: 41FA FE86 lea (-$17a,PC), A0; ($d9b2) ;base program vector
|
||||
00DB2E: 4DF9 0008 0E2A lea $80e2a.l, A6 ;base RAM vector, used by the i8751 to send the value, this value is added to the above A0
|
||||
00DB34: 3039 0008 0E62 move.w $80e62.l, D0 ;number of snippets to execute
|
||||
00DB3A: 6100 00F0 bsr $dc2c
|
||||
*/
|
||||
example snippet:
|
||||
00DB2A: 41FA FE86 lea (-$17a,PC), A0; ($d9b2) ;base program vector
|
||||
00DB2E: 4DF9 0008 0E2A lea $80e2a.l, A6 ;base RAM vector, used by the i8751 to send the value, this value is added to the above A0
|
||||
00DB34: 3039 0008 0E62 move.w $80e62.l, D0 ;number of snippets to execute
|
||||
00DB3A: 6100 00F0 bsr $dc2c
|
||||
*/
|
||||
|
||||
/* bp daee, A0 = 0xdd02, A6 = 0x808ca, D0 = 0x80902 */
|
||||
//case 0x902/2:
|
||||
// return 0x0001;
|
||||
// return 0x0001;
|
||||
//case (0x90a+0x24)/2:
|
||||
// return 0x0001;
|
||||
// return 0x0001;
|
||||
//case (0x902+8)/2:
|
||||
// return 0x0004; // 0xf86a
|
||||
// return 0x0004; // 0xf86a
|
||||
|
||||
/* bp db02, A0 = 0xdc2e, A6 = 0x80912, D0 = 0x8094a */
|
||||
//case 0x94a/2:
|
||||
// return 1;
|
||||
// return 1;
|
||||
//case (0x94a+8)/2:
|
||||
// return 0x00dc; // 0xd62e
|
||||
// return 0x00dc; // 0xd62e
|
||||
|
||||
/* bp db16, A0 = 0xda86, A6 = 0x80c22, D0 = 0x80c5a */
|
||||
//case 0xc5a/2:
|
||||
// return 1;
|
||||
// return 1;
|
||||
//case (0xc5a+8)/2:
|
||||
// return 0x0288; // 0x345f4
|
||||
// return 0x0288; // 0x345f4
|
||||
|
||||
/* bp db2a, A0 = 0xd9b2, A6 = 0x80e2a, D0 = 0x80e62 */
|
||||
|
||||
@ -452,21 +452,21 @@ static READ16_HANDLER(sharedram_r)
|
||||
|
||||
|
||||
/*case 0x
|
||||
case 0x94a/2:
|
||||
return 0x0002*4;
|
||||
case (0x90a+2*0x40)/2:
|
||||
case (0x90a+3*0x40)/2:
|
||||
return 0x0003*4;
|
||||
case (0x90a+4*0x40)/2:
|
||||
return 0x000c*4; // 0x13d74
|
||||
case (0x90a+5*0x40)/2:
|
||||
return 0x000d*4; // 0x130f6
|
||||
case (0x90a+6*0x40)/2:
|
||||
return 0x000e*4; // 0x1817e
|
||||
case (0x90a+7*0x40)/2:
|
||||
return 0x0010*4; // 0x15924
|
||||
//case (0x90a+0x25)/2:
|
||||
// return 2;*/
|
||||
case 0x94a/2:
|
||||
return 0x0002*4;
|
||||
case (0x90a+2*0x40)/2:
|
||||
case (0x90a+3*0x40)/2:
|
||||
return 0x0003*4;
|
||||
case (0x90a+4*0x40)/2:
|
||||
return 0x000c*4; // 0x13d74
|
||||
case (0x90a+5*0x40)/2:
|
||||
return 0x000d*4; // 0x130f6
|
||||
case (0x90a+6*0x40)/2:
|
||||
return 0x000e*4; // 0x1817e
|
||||
case (0x90a+7*0x40)/2:
|
||||
return 0x0010*4; // 0x15924
|
||||
//case (0x90a+0x25)/2:
|
||||
// return 2;*/
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -186,15 +186,15 @@ static READ8_HANDLER( rumba_mcu_r )
|
||||
case 0x42:
|
||||
{
|
||||
/* TODO: subtle behaviour for transitioning from level 16 to level 17 (loop clear?). Command is:
|
||||
0xc0 -> param -> 0xc1 -> param -> ... 0xc7 -> param -> 0x0e (end of packet) then reads at 0x40 -> 0x41 and 0x42
|
||||
0xc0 -> param -> 0xc1 -> param -> ... 0xc7 -> param -> 0x0e (end of packet) then reads at 0x40 -> 0x41 and 0x42
|
||||
|
||||
Params written doesn't make any sense, they are copies from RAM addresses at 0xe450-7 and they looks like ... garbage.
|
||||
It's possible that all of this it just increments by one an internal RAM address in the MCU and then it sends a six when this counter
|
||||
has bits 0-3 == 0 (BCD operation?), but then the question is ... how it determines game over?
|
||||
Params written doesn't make any sense, they are copies from RAM addresses at 0xe450-7 and they looks like ... garbage.
|
||||
It's possible that all of this it just increments by one an internal RAM address in the MCU and then it sends a six when this counter
|
||||
has bits 0-3 == 0 (BCD operation?), but then the question is ... how it determines game over?
|
||||
|
||||
According to a PCB test, game should roll back to level 1 layout but level counter should say "17" instead of current "11". Some of these ports also appears to control
|
||||
game-play speed and who is playing between player 1 and 2.
|
||||
*/
|
||||
According to a PCB test, game should roll back to level 1 layout but level counter should say "17" instead of current "11". Some of these ports also appears to control
|
||||
game-play speed and who is playing between player 1 and 2.
|
||||
*/
|
||||
//static UINT8 level_val;
|
||||
|
||||
//level_val = space->read_byte(0xe247);
|
||||
@ -202,12 +202,12 @@ static READ8_HANDLER( rumba_mcu_r )
|
||||
//popmessage("%02x",level_val);
|
||||
|
||||
//if((level_val & 0x0f) == 0x00)
|
||||
// return 0; //6
|
||||
// return 0; //6
|
||||
|
||||
return 0;
|
||||
}
|
||||
//case 0x42: return 0x06;
|
||||
//default: printf("PC=%04x R %02x\n",cpu_get_pc(space->cpu),mcu_cmd); break;
|
||||
//default: printf("PC=%04x R %02x\n",cpu_get_pc(space->cpu),mcu_cmd); break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -216,10 +216,10 @@ static READ8_HANDLER( rumba_mcu_r )
|
||||
static WRITE8_HANDLER( rumba_mcu_w )
|
||||
{
|
||||
//if((mcu_cmd & 0xf0) == 0xc0)
|
||||
// printf("%02x ",data);
|
||||
// printf("%02x ",data);
|
||||
|
||||
//if(mcu_cmd == 0x42)
|
||||
// printf("\n");
|
||||
// printf("\n");
|
||||
|
||||
if(mcu_param)
|
||||
{
|
||||
@ -232,8 +232,8 @@ static WRITE8_HANDLER( rumba_mcu_w )
|
||||
case 0xb0: // counter, used by command 0xb1 (and something else?
|
||||
{
|
||||
/*
|
||||
sends 0xb0 -> param then 0xb1 -> param -> 0x01 (end of cmd packet?) finally 0x31 for reply
|
||||
*/
|
||||
sends 0xb0 -> param then 0xb1 -> param -> 0x01 (end of cmd packet?) finally 0x31 for reply
|
||||
*/
|
||||
|
||||
mcu_counter = data;
|
||||
|
||||
@ -256,8 +256,8 @@ static WRITE8_HANDLER( rumba_mcu_w )
|
||||
case 0xb2: // player sprite hook-up param when he throws the wheel
|
||||
{
|
||||
/*
|
||||
sends 0xb2 -> param -> 0x02 (end of cmd packet?) then 0x33 for reply
|
||||
*/
|
||||
sends 0xb2 -> param -> 0x02 (end of cmd packet?) then 0x33 for reply
|
||||
*/
|
||||
|
||||
switch(data)
|
||||
{
|
||||
@ -271,8 +271,8 @@ static WRITE8_HANDLER( rumba_mcu_w )
|
||||
case 0xbb: // when you start a level, lives
|
||||
{
|
||||
/*
|
||||
sends 0xbb -> param -> 0x04 (end of cmd packet?) then 0x3b for reply
|
||||
*/
|
||||
sends 0xbb -> param -> 0x04 (end of cmd packet?) then 0x3b for reply
|
||||
*/
|
||||
|
||||
mcu_bb_res = data;
|
||||
//printf("PC=%04x W %02x -> %02x\n",cpu_get_pc(space->cpu),mcu_cmd,data);
|
||||
@ -285,8 +285,8 @@ static WRITE8_HANDLER( rumba_mcu_w )
|
||||
//popmessage("%02x",mcu_b4_cmd);
|
||||
|
||||
/*
|
||||
sends 0xb4 -> param -> 0xb5 -> param (bird X coord) -> 0xb6 -> param (bird Y coord) ->
|
||||
*/
|
||||
sends 0xb4 -> param -> 0xb5 -> param (bird X coord) -> 0xb6 -> param (bird Y coord) ->
|
||||
*/
|
||||
|
||||
#if 0
|
||||
switch(data)
|
||||
@ -327,10 +327,10 @@ static WRITE8_HANDLER( rumba_mcu_w )
|
||||
}
|
||||
|
||||
//if((mcu_cmd & 0xf0) == 0xc0)
|
||||
// printf("%02x ",data);
|
||||
// printf("%02x ",data);
|
||||
|
||||
//if(mcu_cmd == 0xc7)
|
||||
// printf("\n");
|
||||
// printf("\n");
|
||||
|
||||
return;
|
||||
}
|
||||
@ -344,13 +344,13 @@ static WRITE8_HANDLER( rumba_mcu_w )
|
||||
static ADDRESS_MAP_START( rumba_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0xbfff) AM_ROM
|
||||
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(flstory_videoram_w) AM_BASE_SIZE_MEMBER(flstory_state, videoram, videoram_size)
|
||||
// AM_RANGE(0xc800, 0xcfff) AM_RAM /* unknown */
|
||||
// AM_RANGE(0xc800, 0xcfff) AM_RAM /* unknown */
|
||||
AM_RANGE(0xd000, 0xd000) AM_READWRITE(rumba_mcu_r, rumba_mcu_w)
|
||||
AM_RANGE(0xd001, 0xd001) AM_WRITENOP /* watchdog? */
|
||||
// AM_RANGE(0xd002, 0xd002) AM_NOP /* unknown read & coin lock out? */
|
||||
// AM_RANGE(0xd002, 0xd002) AM_NOP /* unknown read & coin lock out? */
|
||||
AM_RANGE(0xd400, 0xd400) AM_READWRITE(from_snd_r, sound_command_w)
|
||||
AM_RANGE(0xd401, 0xd401) AM_READ(snd_flag_r)
|
||||
// AM_RANGE(0xd403, 0xd403) AM_READNOP /* unknown */
|
||||
// AM_RANGE(0xd403, 0xd403) AM_READNOP /* unknown */
|
||||
AM_RANGE(0xd800, 0xd800) AM_READ_PORT("DSW0")
|
||||
AM_RANGE(0xd801, 0xd801) AM_READ_PORT("DSW1")
|
||||
AM_RANGE(0xd802, 0xd802) AM_READ_PORT("DSW2")
|
||||
@ -363,7 +363,7 @@ static ADDRESS_MAP_START( rumba_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xdc00, 0xdc9f) AM_RAM AM_BASE_SIZE_MEMBER(flstory_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0xdca0, 0xdcbf) AM_RAM_WRITE(flstory_scrlram_w) AM_BASE_MEMBER(flstory_state, scrlram)
|
||||
AM_RANGE(0xdce0, 0xdce0) AM_READWRITE(victnine_gfxctrl_r, victnine_gfxctrl_w)
|
||||
// AM_RANGE(0xdce1, 0xdce1) AM_WRITENOP /* unknown */
|
||||
// AM_RANGE(0xdce1, 0xdce1) AM_WRITENOP /* unknown */
|
||||
AM_RANGE(0xdd00, 0xdeff) AM_READWRITE(flstory_palette_r, flstory_palette_w)
|
||||
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE_MEMBER(flstory_state, workram) /* work RAM */
|
||||
ADDRESS_MAP_END
|
||||
|
@ -155,7 +155,7 @@ static void s3c2410_gpio_port_w( running_device *device, int port, UINT32 data)
|
||||
|
||||
static WRITE8_DEVICE_HANDLER( s3c2410_nand_command_w )
|
||||
{
|
||||
// running_device *nand = device->machine->device( "nand");
|
||||
// running_device *nand = device->machine->device( "nand");
|
||||
logerror( "s3c2410_nand_command_w %02X\n", data);
|
||||
switch (data)
|
||||
{
|
||||
@ -177,7 +177,7 @@ static WRITE8_DEVICE_HANDLER( s3c2410_nand_command_w )
|
||||
|
||||
static WRITE8_DEVICE_HANDLER( s3c2410_nand_address_w )
|
||||
{
|
||||
// running_device *nand = device->machine->device( "nand");
|
||||
// running_device *nand = device->machine->device( "nand");
|
||||
logerror( "s3c2410_nand_address_w %02X\n", data);
|
||||
switch (nand.mode)
|
||||
{
|
||||
@ -209,7 +209,7 @@ static WRITE8_DEVICE_HANDLER( s3c2410_nand_address_w )
|
||||
|
||||
static READ8_DEVICE_HANDLER( s3c2410_nand_data_r )
|
||||
{
|
||||
// running_device *nand = device->machine->device( "nand");
|
||||
// running_device *nand = device->machine->device( "nand");
|
||||
UINT8 data = 0;
|
||||
switch (nand.mode)
|
||||
{
|
||||
@ -254,14 +254,14 @@ static READ8_DEVICE_HANDLER( s3c2410_nand_data_r )
|
||||
|
||||
static WRITE8_DEVICE_HANDLER( s3c2410_nand_data_w )
|
||||
{
|
||||
// running_device *nand = device->machine->device( "nand");
|
||||
// running_device *nand = device->machine->device( "nand");
|
||||
logerror( "s3c2410_nand_data_w %02X\n", data);
|
||||
}
|
||||
|
||||
static WRITE_LINE_DEVICE_HANDLER( s3c2410_i2c_scl_w )
|
||||
{
|
||||
running_device *i2cmem = device->machine->device( "i2cmem");
|
||||
// logerror( "s3c2410_i2c_scl_w %d\n", state ? 1 : 0);
|
||||
// logerror( "s3c2410_i2c_scl_w %d\n", state ? 1 : 0);
|
||||
i2cmem_scl_write( i2cmem, state);
|
||||
}
|
||||
|
||||
@ -270,14 +270,14 @@ static READ_LINE_DEVICE_HANDLER( s3c2410_i2c_sda_r )
|
||||
running_device *i2cmem = device->machine->device( "i2cmem");
|
||||
int state;
|
||||
state = i2cmem_sda_read( i2cmem);
|
||||
// logerror( "s3c2410_i2c_sda_r %d\n", state ? 1 : 0);
|
||||
// logerror( "s3c2410_i2c_sda_r %d\n", state ? 1 : 0);
|
||||
return state;
|
||||
}
|
||||
|
||||
static WRITE_LINE_DEVICE_HANDLER( s3c2410_i2c_sda_w )
|
||||
{
|
||||
running_device *i2cmem = device->machine->device( "i2cmem");
|
||||
// logerror( "s3c2410_i2c_sda_w %d\n", state ? 1 : 0);
|
||||
// logerror( "s3c2410_i2c_sda_w %d\n", state ? 1 : 0);
|
||||
i2cmem_sda_write( i2cmem, state);
|
||||
}
|
||||
|
||||
@ -308,32 +308,32 @@ ADDRESS_MAP_END
|
||||
|
||||
/*
|
||||
static INPUT_PORTS_START( bballoon )
|
||||
PORT_START("10000000")
|
||||
PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0xFFFFFFC0, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
|
||||
PORT_START("10100000")
|
||||
PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0xFFFFFFC0, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
|
||||
PORT_START("10200000")
|
||||
PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_COIN2 )
|
||||
PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_START1 )
|
||||
PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_START2 )
|
||||
PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_START3 )
|
||||
PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_SERVICE1 ) // "test button"
|
||||
PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_START4 )
|
||||
PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_SERVICE2 ) // "service button"
|
||||
PORT_BIT( 0xFFFFFF00, IP_ACTIVE_LOW, IPT_START5 )
|
||||
PORT_START("10000000")
|
||||
PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0xFFFFFFC0, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
|
||||
PORT_START("10100000")
|
||||
PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0xFFFFFFC0, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
|
||||
PORT_START("10200000")
|
||||
PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_COIN2 )
|
||||
PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_START1 )
|
||||
PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_START2 )
|
||||
PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_START3 )
|
||||
PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_SERVICE1 ) // "test button"
|
||||
PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_START4 )
|
||||
PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_SERVICE2 ) // "service button"
|
||||
PORT_BIT( 0xFFFFFF00, IP_ACTIVE_LOW, IPT_START5 )
|
||||
INPUT_PORTS_END
|
||||
*/
|
||||
|
||||
@ -367,7 +367,7 @@ INPUT_PORTS_END
|
||||
/*
|
||||
static NAND_INTERFACE( bballoon_nand_intf )
|
||||
{
|
||||
DEVCB_DEVICE_LINE("s3c2410", s3c2410_pin_frnb_w)
|
||||
DEVCB_DEVICE_LINE("s3c2410", s3c2410_pin_frnb_w)
|
||||
};
|
||||
*/
|
||||
|
||||
@ -412,7 +412,7 @@ static READ32_HANDLER( bballoon_speedup_r )
|
||||
cpu_spinuntil_time(space->cpu, ATTOTIME_IN_USEC(20));
|
||||
}
|
||||
//else
|
||||
// printf("speedup %08x %08x\n", pc, ret);
|
||||
// printf("speedup %08x %08x\n", pc, ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -445,10 +445,10 @@ static MACHINE_CONFIG_START( bballoon, driver_device )
|
||||
|
||||
MDRV_S3C2410_ADD("s3c2410", 12000000, bballoon_s3c2410_intf)
|
||||
|
||||
// MDRV_NAND_ADD("nand", 0xEC, 0x75)
|
||||
// MDRV_DEVICE_CONFIG(bballoon_nand_intf)
|
||||
// MDRV_NAND_ADD("nand", 0xEC, 0x75)
|
||||
// MDRV_DEVICE_CONFIG(bballoon_nand_intf)
|
||||
|
||||
// MDRV_I2CMEM_ADD("i2cmem", 0xA0, 0, 0x100, NULL)
|
||||
// MDRV_I2CMEM_ADD("i2cmem", 0xA0, 0, 0x100, NULL)
|
||||
MDRV_I2CMEM_ADD("i2cmem", i2cmem_interface)
|
||||
|
||||
/* sound hardware */
|
||||
|
@ -197,9 +197,9 @@ ADDRESS_MAP_END
|
||||
static WRITE16_HANDLER( wpksoc_output_w )
|
||||
{
|
||||
/*
|
||||
x--- ---- ?
|
||||
---- --xx lamps
|
||||
*/
|
||||
x--- ---- ?
|
||||
---- --xx lamps
|
||||
*/
|
||||
if(data & 0x7c)
|
||||
popmessage("%04x",data);
|
||||
}
|
||||
|
@ -1,12 +1,12 @@
|
||||
/***************************************************************************
|
||||
|
||||
Midway Quicksilver skeleton driver
|
||||
Midway Quicksilver skeleton driver
|
||||
|
||||
Main CPU : Intel Celeron 333/366MHz
|
||||
Motherboard : Intel SE44BX-2
|
||||
RAM : 64MB
|
||||
Graphics Chips : Quantum Obsidian 3DFX
|
||||
Storage : Hard Drive
|
||||
Main CPU : Intel Celeron 333/366MHz
|
||||
Motherboard : Intel SE44BX-2
|
||||
RAM : 64MB
|
||||
Graphics Chips : Quantum Obsidian 3DFX
|
||||
Storage : Hard Drive
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
|
@ -1079,16 +1079,16 @@ The GFX ROMs do not have labels, for clarity we name
|
||||
them as on Igrosoft web-site hash tables.
|
||||
|
||||
code roms:
|
||||
xx_m_xxxxxx.rom - world relase
|
||||
xx_xxxxxx.rom - release for Russia (or for all, if the game does not have different roms for different regions)
|
||||
xx_l_xxxxxx.rom - lottery game
|
||||
xx_e_xxxxxx.rom - entertainment game
|
||||
xx_m_xxxxxx.rom - world relase
|
||||
xx_xxxxxx.rom - release for Russia (or for all, if the game does not have different roms for different regions)
|
||||
xx_l_xxxxxx.rom - lottery game
|
||||
xx_e_xxxxxx.rom - entertainment game
|
||||
|
||||
graphics roms:
|
||||
xxxxxxxx_m.00x - roms for world relase
|
||||
xxxxxxxx.00x - release for Russia (or for all, if the game does not have special gfx-sets for different regions)
|
||||
xxxxxxxx_loto.00x - lottery sets
|
||||
xxxxxxxx_ent.00x - entertainment sets
|
||||
xxxxxxxx_m.00x - roms for world relase
|
||||
xxxxxxxx.00x - release for Russia (or for all, if the game does not have special gfx-sets for different regions)
|
||||
xxxxxxxx_loto.00x - lottery sets
|
||||
xxxxxxxx_ent.00x - entertainment sets
|
||||
|
||||
|
||||
*/
|
||||
|
@ -160,7 +160,7 @@ static ADDRESS_MAP_START( pandoras_slave_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x1a02, 0x1a02) AM_READ_PORT("P2")
|
||||
AM_RANGE(0x1a03, 0x1a03) AM_READ_PORT("DSW3")
|
||||
AM_RANGE(0x1c00, 0x1c00) AM_READ_PORT("DSW2")
|
||||
// AM_RANGE(0x1e00, 0x1e00) AM_READNOP /* ??? seems to be important */
|
||||
// AM_RANGE(0x1e00, 0x1e00) AM_READNOP /* ??? seems to be important */
|
||||
AM_RANGE(0x8000, 0x8000) AM_WRITE(watchdog_reset_w) /* watchdog reset */
|
||||
AM_RANGE(0xa000, 0xa000) AM_WRITE(pandoras_cpua_irqtrigger_w) /* cause FIRQ on CPU A */
|
||||
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("share4") /* Shared RAM with the CPU A */
|
||||
|
@ -5696,21 +5696,21 @@ static WRITE16_HANDLER( ddp3_asic_w )
|
||||
break;
|
||||
|
||||
case 0x67: // set high bits
|
||||
// printf("%06x command %02x | %04x\n", cpu_get_pc(space->cpu), state->ddp3lastcommand, state->value0);
|
||||
// printf("%06x command %02x | %04x\n", cpu_get_pc(space->cpu), state->ddp3lastcommand, state->value0);
|
||||
state->valueresponse = 0x880000;
|
||||
state->ddp3internal_slot = (state->value0 & 0xff00)>>8;
|
||||
state->ddp3slots[state->ddp3internal_slot] = (state->value0 & 0x00ff) << 16;
|
||||
break;
|
||||
|
||||
case 0xe5: // set low bits for operation?
|
||||
// printf("%06x command %02x | %04x\n", cpu_get_pc(space->cpu), state->ddp3lastcommand, state->value0);
|
||||
// printf("%06x command %02x | %04x\n", cpu_get_pc(space->cpu), state->ddp3lastcommand, state->value0);
|
||||
state->valueresponse = 0x880000;
|
||||
state->ddp3slots[state->ddp3internal_slot] |= (state->value0 & 0xffff);
|
||||
break;
|
||||
|
||||
|
||||
case 0x8e: // read back result of operations
|
||||
// printf("%06x command %02x | %04x\n", cpu_get_pc(space->cpu), state->ddp3lastcommand, state->value0);
|
||||
// printf("%06x command %02x | %04x\n", cpu_get_pc(space->cpu), state->ddp3lastcommand, state->value0);
|
||||
state->valueresponse = state->ddp3slots[state->value0&0xff];
|
||||
break;
|
||||
|
||||
|
@ -73,7 +73,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectan
|
||||
{
|
||||
UINT16 *spriteram16 = machine->generic.spriteram.u16;
|
||||
int offs,fx,fy,x,y,color,sprite;
|
||||
// int cur_pri;
|
||||
// int cur_pri;
|
||||
int dx,dy,ax,ay;
|
||||
|
||||
for (offs = 0x400-4;offs >= 0;offs -= 4)
|
||||
@ -187,10 +187,10 @@ static VIDEO_UPDATE( rdx_v33 )
|
||||
address_space *space = cputag_get_address_space(screen->machine, "maincpu", ADDRESS_SPACE_PROGRAM);
|
||||
|
||||
//if(input_code_pressed_once(screen->machine,KEYCODE_A))
|
||||
// src_addr+=0x800;
|
||||
// src_addr+=0x800;
|
||||
|
||||
//if(input_code_pressed_once(screen->machine,KEYCODE_S))
|
||||
// src_addr-=0x800;
|
||||
// src_addr-=0x800;
|
||||
|
||||
frame++;
|
||||
|
||||
@ -353,17 +353,17 @@ static ADDRESS_MAP_START( rdx_v33_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x0068e, 0x0068f) AM_WRITENOP // synch for the MCU?
|
||||
AM_RANGE(0x006b0, 0x006b1) AM_WRITE(mcu_prog_w)
|
||||
AM_RANGE(0x006b2, 0x006b3) AM_WRITE(mcu_prog_w2)
|
||||
// AM_RANGE(0x006b4, 0x006b5) AM_WRITENOP
|
||||
// AM_RANGE(0x006b6, 0x006b7) AM_WRITENOP
|
||||
// AM_RANGE(0x006b4, 0x006b5) AM_WRITENOP
|
||||
// AM_RANGE(0x006b6, 0x006b7) AM_WRITENOP
|
||||
AM_RANGE(0x006bc, 0x006bd) AM_WRITE(mcu_prog_offs_w)
|
||||
AM_RANGE(0x006be, 0x006bf) AM_WRITENOP // MCU program related
|
||||
AM_RANGE(0x006d8, 0x006d9) AM_WRITE(mcu_xval_w)
|
||||
AM_RANGE(0x006da, 0x006db) AM_WRITE(mcu_yval_w)
|
||||
// AM_RANGE(0x006dc, 0x006dd) AM_READ(rdx_v33_unknown2_r)
|
||||
// AM_RANGE(0x006dc, 0x006dd) AM_READ(rdx_v33_unknown2_r)
|
||||
// AM_RANGE(0x006de, 0x006df) AM_WRITE(mcu_unkaa_w) // mcu command related?
|
||||
|
||||
AM_RANGE(0x00700, 0x00701) AM_DEVWRITE("eeprom", rdx_v33_eeprom_w)
|
||||
// AM_RANGE(0x00740, 0x00741) AM_READ(rdx_v33_unknown2_r)
|
||||
// AM_RANGE(0x00740, 0x00741) AM_READ(rdx_v33_unknown2_r)
|
||||
AM_RANGE(0x00744, 0x00745) AM_READ_PORT("INPUT")
|
||||
AM_RANGE(0x0074c, 0x0074d) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0x00762, 0x00763) AM_READNOP
|
||||
@ -429,17 +429,17 @@ static ADDRESS_MAP_START( nzerotea_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x0068e, 0x0068f) AM_WRITENOP // synch for the MCU?
|
||||
AM_RANGE(0x006b0, 0x006b1) AM_WRITE(mcu_prog_w)
|
||||
AM_RANGE(0x006b2, 0x006b3) AM_WRITE(mcu_prog_w2)
|
||||
// AM_RANGE(0x006b4, 0x006b5) AM_WRITENOP
|
||||
// AM_RANGE(0x006b6, 0x006b7) AM_WRITENOP
|
||||
// AM_RANGE(0x006b4, 0x006b5) AM_WRITENOP
|
||||
// AM_RANGE(0x006b6, 0x006b7) AM_WRITENOP
|
||||
AM_RANGE(0x006bc, 0x006bd) AM_WRITE(mcu_prog_offs_w)
|
||||
// AM_RANGE(0x006d8, 0x006d9) AM_WRITE(bbbbll_w) // scroll?
|
||||
// AM_RANGE(0x006dc, 0x006dd) AM_READ(nzerotea_unknown_r)
|
||||
// AM_RANGE(0x006dc, 0x006dd) AM_READ(nzerotea_unknown_r)
|
||||
// AM_RANGE(0x006de, 0x006df) AM_WRITE(mcu_unkaa_w) // mcu command related?
|
||||
//AM_RANGE(0x00700, 0x00701) AM_DEVWRITE("eeprom", rdx_v33_eeprom_w)
|
||||
AM_RANGE(0x00740, 0x00741) AM_READ_PORT("DSW")
|
||||
AM_RANGE(0x00744, 0x00745) AM_READ_PORT("INPUT")
|
||||
AM_RANGE(0x0074c, 0x0074d) AM_READ_PORT("SYSTEM")
|
||||
// AM_RANGE(0x00762, 0x00763) AM_READ(nzerotea_unknown_r)
|
||||
// AM_RANGE(0x00762, 0x00763) AM_READ(nzerotea_unknown_r)
|
||||
|
||||
AM_RANGE(0x00780, 0x0079f) AM_READWRITE(nzerotea_sound_comms_r,nzerotea_sound_comms_w)
|
||||
|
||||
@ -680,7 +680,7 @@ static MACHINE_CONFIG_START( nzerotea, driver_device )
|
||||
|
||||
MDRV_MACHINE_RESET(seibu_sound)
|
||||
|
||||
// SEIBU2_RAIDEN2_SOUND_SYSTEM_CPU(14318180/4)
|
||||
// SEIBU2_RAIDEN2_SOUND_SYSTEM_CPU(14318180/4)
|
||||
SEIBU_NEWZEROTEAM_SOUND_SYSTEM_CPU(14318180/4)
|
||||
|
||||
/* video hardware */
|
||||
@ -699,7 +699,7 @@ static MACHINE_CONFIG_START( nzerotea, driver_device )
|
||||
MDRV_VIDEO_UPDATE(rdx_v33)
|
||||
|
||||
/* sound hardware */
|
||||
// SEIBU_SOUND_SYSTEM_YM2151_RAIDEN2_INTERFACE(28636360/8,28636360/28,1,2)
|
||||
// SEIBU_SOUND_SYSTEM_YM2151_RAIDEN2_INTERFACE(28636360/8,28636360/28,1,2)
|
||||
SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(14318180/4,1320000)
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
@ -795,7 +795,7 @@ ROM_START( r2dx_v33 )
|
||||
|
||||
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF ) /* v33 main cpu */
|
||||
|
||||
// ROM_REGION( 0x20000, "cpu1", ROMREGION_ERASE00 ) /* 64k code for sound Z80 */
|
||||
// ROM_REGION( 0x20000, "cpu1", ROMREGION_ERASE00 ) /* 64k code for sound Z80 */
|
||||
/* nothing? no z80*/
|
||||
|
||||
ROM_REGION( 0x040000, "gfx1", 0 ) /* chars */
|
||||
@ -852,7 +852,7 @@ ROM_START( nzerotea )
|
||||
ROM_END
|
||||
|
||||
// newer PCB, with V33 CPU and COPD3 protection, but weak sound hardware. - was marked as Raiden DX New in the rom dump, but boots as Raiden 2 New version, is it switchable?
|
||||
GAME( 1996, r2dx_v33, 0, rdx_v33, rdx_v33, rdx_v33, ROT270, "Seibu Kaihatsu", "Raiden II / DX (newer V33 PCB)", GAME_NOT_WORKING|GAME_NO_SOUND)
|
||||
GAME( 1996, r2dx_v33, 0, rdx_v33, rdx_v33, rdx_v33, ROT270, "Seibu Kaihatsu", "Raiden II / DX (newer V33 PCB)", GAME_NOT_WORKING|GAME_NO_SOUND)
|
||||
|
||||
// 'V33 system type_b' - uses V33 CPU, COPX-D3 external protection rom, but still has the proper sound system
|
||||
GAME( 1997, nzerotea, zeroteam, nzerotea, nzerotea, nzerotea, ROT0, "Seibu Kaihatsu", "New Zero Team", GAME_NOT_WORKING|GAME_NO_SOUND) // this uses a v33 and COPD3
|
||||
|
@ -266,7 +266,7 @@ WRITE16_MEMBER(raiden2_state::cop_dma_trigger_w)
|
||||
dst = (cop_dma_v3 << 6);
|
||||
size = ((cop_dma_size << 5) - (cop_dma_v3 << 6) + 0x20)/2;
|
||||
|
||||
// printf("%08x %08x %08x\n",src,dst,size);
|
||||
// printf("%08x %08x %08x\n",src,dst,size);
|
||||
|
||||
for(i = 0;i < size;i++)
|
||||
{
|
||||
|
@ -330,7 +330,7 @@ static MACHINE_CONFIG_START( tankbust, driver_device )
|
||||
MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
|
||||
|
||||
MDRV_CPU_ADD("sub", Z80, XTAL_14_31818MHz/4) /* Verified on PCB */
|
||||
// MDRV_CPU_ADD("sub", Z80, XTAL_14_31818MHz/3) /* Accurate to audio recording, but apparently incorrect clock */
|
||||
// MDRV_CPU_ADD("sub", Z80, XTAL_14_31818MHz/3) /* Accurate to audio recording, but apparently incorrect clock */
|
||||
|
||||
MDRV_CPU_PROGRAM_MAP(map_cpu2)
|
||||
MDRV_CPU_IO_MAP(port_map_cpu2)
|
||||
|
@ -2580,14 +2580,14 @@ static WRITE16_HANDLER( generic_cop_w )
|
||||
static UINT32 src,dst,size,i;
|
||||
|
||||
/* TODO: understand all the differences between triggers!
|
||||
0x80 is used by Legionnaire (plain DMA)
|
||||
0x81 is used by SD Gundam and Godzilla (unknown purpose)
|
||||
0x86 is used by Seibu Cup Soccer (doesn't yet work)
|
||||
0x87 is used by Denjin Makai (DMA with inverted word endianess)
|
||||
*/
|
||||
0x80 is used by Legionnaire (plain DMA)
|
||||
0x81 is used by SD Gundam and Godzilla (unknown purpose)
|
||||
0x86 is used by Seibu Cup Soccer (doesn't yet work)
|
||||
0x87 is used by Denjin Makai (DMA with inverted word endianess)
|
||||
*/
|
||||
|
||||
//if(dma_trigger != 0x87)
|
||||
// printf("SRC: %08x %08x DST:%08x SIZE:%08x TRIGGER: %08x\n",dma_src,dma_src_param,dma_dst,dma_size,dma_trigger);
|
||||
// printf("SRC: %08x %08x DST:%08x SIZE:%08x TRIGGER: %08x\n",dma_src,dma_src_param,dma_dst,dma_size,dma_trigger);
|
||||
|
||||
if(dma_trigger == 0x81)
|
||||
return;
|
||||
|
@ -10296,7 +10296,7 @@ Other Sun games
|
||||
DRIVER( sweetl_2 ) /* (c) 2004 */
|
||||
|
||||
/* Resident */
|
||||
DRIVER( resdnt ) /* (c) 2004 */
|
||||
DRIVER( resdnt ) /* (c) 2004 */
|
||||
DRIVER( resdnt_2 ) /* (c) 2004 */
|
||||
DRIVER( resdnt_3 ) /* (c) 2004 */
|
||||
|
||||
|
@ -227,24 +227,24 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const recta
|
||||
while (rom_offs < 0x40000) /* safety check */
|
||||
{
|
||||
/*
|
||||
[1]
|
||||
x--- ---- end of block marker
|
||||
---- --x- Flip Y
|
||||
---- ---x Flip X
|
||||
[2]
|
||||
xxxx xxxx Y offs lo byte
|
||||
[3]
|
||||
---- xxx- height (1/2/4/8)
|
||||
---- ---x Y offs hi byte
|
||||
[4]
|
||||
xxxx xxxx sprite number lo byte
|
||||
[5]
|
||||
xxxx xxxx sprite number hi byte
|
||||
[6]
|
||||
xxxx xxxx X offs lo byte
|
||||
[7]
|
||||
---- ---x X offs hi byte
|
||||
*/
|
||||
[1]
|
||||
x--- ---- end of block marker
|
||||
---- --x- Flip Y
|
||||
---- ---x Flip X
|
||||
[2]
|
||||
xxxx xxxx Y offs lo byte
|
||||
[3]
|
||||
---- xxx- height (1/2/4/8)
|
||||
---- ---x Y offs hi byte
|
||||
[4]
|
||||
xxxx xxxx sprite number lo byte
|
||||
[5]
|
||||
xxxx xxxx sprite number hi byte
|
||||
[6]
|
||||
xxxx xxxx X offs lo byte
|
||||
[7]
|
||||
---- ---x X offs hi byte
|
||||
*/
|
||||
|
||||
int xdisp = rom[rom_offs+6]+256*rom[rom_offs+7];
|
||||
int ydisp = rom[rom_offs+2]+256*rom[rom_offs+3];
|
||||
@ -290,9 +290,9 @@ static void m107_update_scroll_positions(void)
|
||||
int i;
|
||||
|
||||
/*
|
||||
rowscroll is at 0xde000 - 0xde7ff, every layer has dedicated 0x200 bytes inside this area, enabled with bit 0 of the layer video register
|
||||
rowselect is at 0xde800 - 0xdefff, every layer has dedicated 0x200 bytes inside this area, enabled with bit 1 of the layer video register
|
||||
Perhaps 0xdf000 - 0xdffff and bit 2-3 are respectively colscroll and colselect?
|
||||
rowscroll is at 0xde000 - 0xde7ff, every layer has dedicated 0x200 bytes inside this area, enabled with bit 0 of the layer video register
|
||||
rowselect is at 0xde800 - 0xdefff, every layer has dedicated 0x200 bytes inside this area, enabled with bit 1 of the layer video register
|
||||
Perhaps 0xdf000 - 0xdffff and bit 2-3 are respectively colscroll and colselect?
|
||||
*/
|
||||
|
||||
for (laynum = 0; laynum < 4; laynum++)
|
||||
@ -384,8 +384,8 @@ WRITE16_HANDLER( m107_spritebuffer_w )
|
||||
{
|
||||
if (ACCESSING_BITS_0_7) {
|
||||
/*
|
||||
TODO: this register looks a lot more complex than how the game uses it. All of them seems to test various bit combinations during POST.
|
||||
*/
|
||||
TODO: this register looks a lot more complex than how the game uses it. All of them seems to test various bit combinations during POST.
|
||||
*/
|
||||
// logerror("%04x: buffered spriteram\n",cpu_get_pc(space->cpu));
|
||||
m107_sprite_display = (!(data & 0x1000));
|
||||
|
||||
|
@ -10,4 +10,4 @@
|
||||
***************************************************************************/
|
||||
|
||||
extern const char build_version[];
|
||||
const char build_version[] = "0.140u2 ("__DATE__")";
|
||||
const char build_version[] = "0.140u3 ("__DATE__")";
|
||||
|
Loading…
Reference in New Issue
Block a user