Cleanups and version bump.

This commit is contained in:
Aaron Giles 2010-12-23 09:50:42 +00:00
parent 42bc091d00
commit 6f16e97623
29 changed files with 323 additions and 323 deletions

View File

@ -279,7 +279,7 @@ typedef enum {
#define XchgAWReg(Reg) \ #define XchgAWReg(Reg) \
WORD tmp; \ WORD tmp; \
tmp = Wreg(Reg); \ tmp = Wreg(Reg); \
Wreg(Reg) = Wreg(AW); \ Wreg(Reg) = Wreg(AW); \
Wreg(AW) = tmp Wreg(AW) = tmp
#define ROL_BYTE nec_state->CarryVal = dst & 0x80; dst = (dst << 1)+CF #define ROL_BYTE nec_state->CarryVal = dst & 0x80; dst = (dst << 1)+CF

View File

@ -312,7 +312,7 @@ void v25_write_word(v25_state_t *nec_state, unsigned a, unsigned d);
#define XchgAWReg(Reg) \ #define XchgAWReg(Reg) \
WORD tmp; \ WORD tmp; \
tmp = Wreg(Reg); \ tmp = Wreg(Reg); \
Wreg(Reg) = Wreg(AW); \ Wreg(Reg) = Wreg(AW); \
Wreg(AW) = tmp Wreg(AW) = tmp
#define ROL_BYTE nec_state->CarryVal = dst & 0x80; dst = (dst << 1)+CF #define ROL_BYTE nec_state->CarryVal = dst & 0x80; dst = (dst << 1)+CF

View File

@ -246,45 +246,45 @@ static void s3c24xx_lcd_dma_init( running_device *device)
/* /*
static UINT32 s3c24xx_lcd_dma_read( running_device *device) static UINT32 s3c24xx_lcd_dma_read( running_device *device)
{ {
s3c24xx_t *s3c24xx = get_token( device); s3c24xx_t *s3c24xx = get_token( device);
address_space* space = cputag_get_address_space( device->machine, "maincpu", ADDRESS_SPACE_PROGRAM); address_space* space = cputag_get_address_space( device->machine, "maincpu", ADDRESS_SPACE_PROGRAM);
UINT8 *vram, data[4]; UINT8 *vram, data[4];
vram = (UINT8 *)space->get_read_ptr( s3c24xx->lcd.vramaddr_cur); vram = (UINT8 *)space->get_read_ptr( s3c24xx->lcd.vramaddr_cur);
for (int i = 0; i < 2; i++) for (int i = 0; i < 2; i++)
{ {
data[i*2+0] = *vram++; data[i*2+0] = *vram++;
data[i*2+1] = *vram++; data[i*2+1] = *vram++;
s3c24xx->lcd.vramaddr_cur += 2; s3c24xx->lcd.vramaddr_cur += 2;
s3c24xx->lcd.pagewidth_cur++; s3c24xx->lcd.pagewidth_cur++;
if (s3c24xx->lcd.pagewidth_cur >= s3c24xx->lcd.pagewidth_max) if (s3c24xx->lcd.pagewidth_cur >= s3c24xx->lcd.pagewidth_max)
{ {
s3c24xx->lcd.vramaddr_cur += s3c24xx->lcd.offsize << 1; s3c24xx->lcd.vramaddr_cur += s3c24xx->lcd.offsize << 1;
s3c24xx->lcd.pagewidth_cur = 0; s3c24xx->lcd.pagewidth_cur = 0;
vram = (UINT8 *)space->get_read_ptr( s3c24xx->lcd.vramaddr_cur); vram = (UINT8 *)space->get_read_ptr( s3c24xx->lcd.vramaddr_cur);
} }
} }
if (s3c24xx->lcd.hwswp == 0) if (s3c24xx->lcd.hwswp == 0)
{ {
if (s3c24xx->lcd.bswp == 0) if (s3c24xx->lcd.bswp == 0)
{ {
return (data[3] << 24) | (data[2] << 16) | (data[1] << 8) | (data[0] << 0); return (data[3] << 24) | (data[2] << 16) | (data[1] << 8) | (data[0] << 0);
} }
else else
{ {
return (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | (data[3] << 0); return (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | (data[3] << 0);
} }
} }
else else
{ {
if (s3c24xx->lcd.bswp == 0) if (s3c24xx->lcd.bswp == 0)
{ {
return (data[1] << 24) | (data[0] << 16) | (data[3] << 8) | (data[2] << 0); return (data[1] << 24) | (data[0] << 16) | (data[3] << 8) | (data[2] << 0);
} }
else else
{ {
return (data[2] << 24) | (data[3] << 16) | (data[0] << 8) | (data[1] << 0); 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; double timeleft, x1, x2;
UINT32 cnto; UINT32 cnto;
timeleft = attotime_to_double( timer_timeleft( s3c24xx->pwm.timer[ch])); 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)); x1 = 1 / ((double)s3c24xx->pwm.freq[ch] / (s3c24xx->pwm.cnt[ch]- s3c24xx->pwm.cmp[ch] + 1));
x2 = x1 / timeleft; 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); 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; return cnto;
} }
@ -1263,7 +1263,7 @@ static void s3c24xx_pwm_start( running_device *device, int timer)
} }
break; break;
} }
// hz = freq / (cnt - cmp + 1); // hz = freq / (cnt - cmp + 1);
if (cnt < 2) if (cnt < 2)
{ {
hz = freq; hz = freq;
@ -1525,12 +1525,12 @@ static void s3c24xx_dma_w( running_device *device, UINT32 ch, UINT32 offset, UIN
case S3C24XX_DCON : case S3C24XX_DCON :
{ {
/* --- is this code necessary ??? /* --- is this code necessary ???
if ((data & (1 << 22)) != 0) // reload if ((data & (1 << 22)) != 0) // reload
{ {
s3c24xx_dma_regs_t *regs = &s3c24xx->dma[ch].regs; s3c24xx_dma_regs_t *regs = &s3c24xx->dma[ch].regs;
regs->dmasktrig &= ~(1 << 1); // clear on/off regs->dmasktrig &= ~(1 << 1); // clear on/off
} }
*/ */
} }
break; break;
case S3C24XX_DMASKTRIG : 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 ) static READ32_DEVICE_HANDLER( s3c24xx_uart_0_r )
{ {
UINT32 data = s3c24xx_uart_r( device, 0, offset); 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; return data;
} }
static READ32_DEVICE_HANDLER( s3c24xx_uart_1_r ) static READ32_DEVICE_HANDLER( s3c24xx_uart_1_r )
{ {
UINT32 data = s3c24xx_uart_r( device, 1, offset); 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; return data;
} }
@ -1863,7 +1863,7 @@ static READ32_DEVICE_HANDLER( s3c24xx_uart_1_r )
static READ32_DEVICE_HANDLER( s3c24xx_uart_2_r ) static READ32_DEVICE_HANDLER( s3c24xx_uart_2_r )
{ {
UINT32 data = s3c24xx_uart_r( device, 2, offset); 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; return data;
} }
@ -1871,13 +1871,13 @@ static READ32_DEVICE_HANDLER( s3c24xx_uart_2_r )
static WRITE32_DEVICE_HANDLER( s3c24xx_uart_0_w ) 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); s3c24xx_uart_w( device, 0, offset, data, mem_mask);
} }
static WRITE32_DEVICE_HANDLER( s3c24xx_uart_1_w ) 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); 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 ) 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); 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) 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_t *s3c24xx = get_token( device);
s3c24xx->uart[uart].regs.urxh = data; s3c24xx->uart[uart].regs.urxh = data;
s3c24xx->uart[uart].regs.utrstat |= 1; // [bit 0] Receive buffer data ready 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; double freq;
ttc = BITS( s3c24xx->rtc.regs.ticnt, 6, 0); ttc = BITS( s3c24xx->rtc.regs.ticnt, 6, 0);
freq = 128 / (ttc + 1); 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)); timer_adjust_periodic( s3c24xx->rtc.timer_tick_count, ATTOTIME_IN_HZ( freq), 0, ATTOTIME_IN_HZ( freq));
} }
else else
@ -3043,7 +3043,7 @@ static DEVICE_RESET( s3c24xx )
{ {
s3c24xx_t *s3c24xx = get_token( device); s3c24xx_t *s3c24xx = get_token( device);
s3c24xx->iis.fifo_index = 0; s3c24xx->iis.fifo_index = 0;
// s3c24xx->iic.data_index = 0; // s3c24xx->iic.data_index = 0;
} }
static DEVICE_START( s3c24xx ) 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 --- */ /* --- 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_TOKEN_BYTES: info->i = sizeof(s3c24xx_t); break;
case DEVINFO_INT_INLINE_CONFIG_BYTES: info->i = 0; 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 --- */ /* --- 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_START: info->start = DEVICE_START_NAME(s3c24xx); break;
case DEVINFO_FCT_RESET: info->reset = DEVICE_RESET_NAME(s3c24xx); break; case DEVINFO_FCT_RESET: info->reset = DEVICE_RESET_NAME(s3c24xx); break;

View File

@ -54,7 +54,7 @@ enum
#define MODE_DISPLAY_ENABLE_SKEW(d) (((d)->mode_control & 0x10) != 0) #define MODE_DISPLAY_ENABLE_SKEW(d) (((d)->mode_control & 0x10) != 0)
#define MODE_ROW_COLUMN_ADDRESSING(d) (((d)->mode_control & 0x04) != 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_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_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 }; static const int supports_status_reg_d5[NUM_TYPES] = { FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, TRUE, TRUE };

View File

@ -175,13 +175,13 @@ and clears the EEROM accordingly.
Here is the list, which includes confirmed (*) and unconfirmed values: Here is the list, which includes confirmed (*) and unconfirmed values:
Diagnostic Cartridge: 255 Diagnostic Cartridge: 255
Peter Packrat: 000* Peter Packrat: 000*
Marble Madness: 001* Marble Madness: 001*
Indiana Jones - Temple of Doom: 002* Indiana Jones - Temple of Doom: 002*
Road Runner: 003* Road Runner: 003*
Relief Pitcher (unreleased): 004 Relief Pitcher (unreleased): 004
Off-Road (unreleased): 004 Off-Road (unreleased): 004
RoadBlasters (aka Future Vette):005* RoadBlasters (aka Future Vette):005*

View File

@ -396,34 +396,34 @@ static READ16_HANDLER(sharedram_r)
return (input_port_read(space->machine, "P2") & 0xffff) ^ 0xffff; 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: example snippet:
00DB2A: 41FA FE86 lea (-$17a,PC), A0; ($d9b2) ;base program vector 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 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 00DB34: 3039 0008 0E62 move.w $80e62.l, D0 ;number of snippets to execute
00DB3A: 6100 00F0 bsr $dc2c 00DB3A: 6100 00F0 bsr $dc2c
*/ */
/* bp daee, A0 = 0xdd02, A6 = 0x808ca, D0 = 0x80902 */ /* bp daee, A0 = 0xdd02, A6 = 0x808ca, D0 = 0x80902 */
//case 0x902/2: //case 0x902/2:
// return 0x0001; // return 0x0001;
//case (0x90a+0x24)/2: //case (0x90a+0x24)/2:
// return 0x0001; // return 0x0001;
//case (0x902+8)/2: //case (0x902+8)/2:
// return 0x0004; // 0xf86a // return 0x0004; // 0xf86a
/* bp db02, A0 = 0xdc2e, A6 = 0x80912, D0 = 0x8094a */ /* bp db02, A0 = 0xdc2e, A6 = 0x80912, D0 = 0x8094a */
//case 0x94a/2: //case 0x94a/2:
// return 1; // return 1;
//case (0x94a+8)/2: //case (0x94a+8)/2:
// return 0x00dc; // 0xd62e // return 0x00dc; // 0xd62e
/* bp db16, A0 = 0xda86, A6 = 0x80c22, D0 = 0x80c5a */ /* bp db16, A0 = 0xda86, A6 = 0x80c22, D0 = 0x80c5a */
//case 0xc5a/2: //case 0xc5a/2:
// return 1; // return 1;
//case (0xc5a+8)/2: //case (0xc5a+8)/2:
// return 0x0288; // 0x345f4 // return 0x0288; // 0x345f4
/* bp db2a, A0 = 0xd9b2, A6 = 0x80e2a, D0 = 0x80e62 */ /* bp db2a, A0 = 0xd9b2, A6 = 0x80e2a, D0 = 0x80e62 */
@ -452,21 +452,21 @@ static READ16_HANDLER(sharedram_r)
/*case 0x /*case 0x
case 0x94a/2: case 0x94a/2:
return 0x0002*4; return 0x0002*4;
case (0x90a+2*0x40)/2: case (0x90a+2*0x40)/2:
case (0x90a+3*0x40)/2: case (0x90a+3*0x40)/2:
return 0x0003*4; return 0x0003*4;
case (0x90a+4*0x40)/2: case (0x90a+4*0x40)/2:
return 0x000c*4; // 0x13d74 return 0x000c*4; // 0x13d74
case (0x90a+5*0x40)/2: case (0x90a+5*0x40)/2:
return 0x000d*4; // 0x130f6 return 0x000d*4; // 0x130f6
case (0x90a+6*0x40)/2: case (0x90a+6*0x40)/2:
return 0x000e*4; // 0x1817e return 0x000e*4; // 0x1817e
case (0x90a+7*0x40)/2: case (0x90a+7*0x40)/2:
return 0x0010*4; // 0x15924 return 0x0010*4; // 0x15924
//case (0x90a+0x25)/2: //case (0x90a+0x25)/2:
// return 2;*/ // return 2;*/
} }
} }

View File

@ -186,15 +186,15 @@ static READ8_HANDLER( rumba_mcu_r )
case 0x42: case 0x42:
{ {
/* TODO: subtle behaviour for transitioning from level 16 to level 17 (loop clear?). Command is: /* 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. 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 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? 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 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. game-play speed and who is playing between player 1 and 2.
*/ */
//static UINT8 level_val; //static UINT8 level_val;
//level_val = space->read_byte(0xe247); //level_val = space->read_byte(0xe247);
@ -202,12 +202,12 @@ static READ8_HANDLER( rumba_mcu_r )
//popmessage("%02x",level_val); //popmessage("%02x",level_val);
//if((level_val & 0x0f) == 0x00) //if((level_val & 0x0f) == 0x00)
// return 0; //6 // return 0; //6
return 0; return 0;
} }
//case 0x42: return 0x06; //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; return 0;
@ -216,10 +216,10 @@ static READ8_HANDLER( rumba_mcu_r )
static WRITE8_HANDLER( rumba_mcu_w ) static WRITE8_HANDLER( rumba_mcu_w )
{ {
//if((mcu_cmd & 0xf0) == 0xc0) //if((mcu_cmd & 0xf0) == 0xc0)
// printf("%02x ",data); // printf("%02x ",data);
//if(mcu_cmd == 0x42) //if(mcu_cmd == 0x42)
// printf("\n"); // printf("\n");
if(mcu_param) if(mcu_param)
{ {
@ -232,8 +232,8 @@ static WRITE8_HANDLER( rumba_mcu_w )
case 0xb0: // counter, used by command 0xb1 (and something else? 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; 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 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) switch(data)
{ {
@ -271,8 +271,8 @@ static WRITE8_HANDLER( rumba_mcu_w )
case 0xbb: // when you start a level, lives 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; mcu_bb_res = data;
//printf("PC=%04x W %02x -> %02x\n",cpu_get_pc(space->cpu),mcu_cmd,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); //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 #if 0
switch(data) switch(data)
@ -327,10 +327,10 @@ static WRITE8_HANDLER( rumba_mcu_w )
} }
//if((mcu_cmd & 0xf0) == 0xc0) //if((mcu_cmd & 0xf0) == 0xc0)
// printf("%02x ",data); // printf("%02x ",data);
//if(mcu_cmd == 0xc7) //if(mcu_cmd == 0xc7)
// printf("\n"); // printf("\n");
return; return;
} }
@ -344,13 +344,13 @@ static WRITE8_HANDLER( rumba_mcu_w )
static ADDRESS_MAP_START( rumba_map, ADDRESS_SPACE_PROGRAM, 8 ) static ADDRESS_MAP_START( rumba_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0xbfff) AM_ROM 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(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(0xd000, 0xd000) AM_READWRITE(rumba_mcu_r, rumba_mcu_w)
AM_RANGE(0xd001, 0xd001) AM_WRITENOP /* watchdog? */ 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(0xd400, 0xd400) AM_READWRITE(from_snd_r, sound_command_w)
AM_RANGE(0xd401, 0xd401) AM_READ(snd_flag_r) 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(0xd800, 0xd800) AM_READ_PORT("DSW0")
AM_RANGE(0xd801, 0xd801) AM_READ_PORT("DSW1") AM_RANGE(0xd801, 0xd801) AM_READ_PORT("DSW1")
AM_RANGE(0xd802, 0xd802) AM_READ_PORT("DSW2") 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(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(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(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(0xdd00, 0xdeff) AM_READWRITE(flstory_palette_r, flstory_palette_w)
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE_MEMBER(flstory_state, workram) /* work RAM */ AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE_MEMBER(flstory_state, workram) /* work RAM */
ADDRESS_MAP_END ADDRESS_MAP_END

View File

@ -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 ) 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); logerror( "s3c2410_nand_command_w %02X\n", data);
switch (data) switch (data)
{ {
@ -177,7 +177,7 @@ static WRITE8_DEVICE_HANDLER( s3c2410_nand_command_w )
static WRITE8_DEVICE_HANDLER( s3c2410_nand_address_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); logerror( "s3c2410_nand_address_w %02X\n", data);
switch (nand.mode) switch (nand.mode)
{ {
@ -209,7 +209,7 @@ static WRITE8_DEVICE_HANDLER( s3c2410_nand_address_w )
static READ8_DEVICE_HANDLER( s3c2410_nand_data_r ) 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; UINT8 data = 0;
switch (nand.mode) switch (nand.mode)
{ {
@ -254,14 +254,14 @@ static READ8_DEVICE_HANDLER( s3c2410_nand_data_r )
static WRITE8_DEVICE_HANDLER( s3c2410_nand_data_w ) 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); logerror( "s3c2410_nand_data_w %02X\n", data);
} }
static WRITE_LINE_DEVICE_HANDLER( s3c2410_i2c_scl_w ) static WRITE_LINE_DEVICE_HANDLER( s3c2410_i2c_scl_w )
{ {
running_device *i2cmem = device->machine->device( "i2cmem"); 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); 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"); running_device *i2cmem = device->machine->device( "i2cmem");
int state; int state;
state = i2cmem_sda_read( i2cmem); 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; return state;
} }
static WRITE_LINE_DEVICE_HANDLER( s3c2410_i2c_sda_w ) static WRITE_LINE_DEVICE_HANDLER( s3c2410_i2c_sda_w )
{ {
running_device *i2cmem = device->machine->device( "i2cmem"); 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); i2cmem_sda_write( i2cmem, state);
} }
@ -308,32 +308,32 @@ ADDRESS_MAP_END
/* /*
static INPUT_PORTS_START( bballoon ) static INPUT_PORTS_START( bballoon )
PORT_START("10000000") PORT_START("10000000")
PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) 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( 0x00000002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) 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( 0x00000008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON1 ) 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( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
PORT_BIT( 0xFFFFFFC0, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_BIT( 0xFFFFFFC0, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
PORT_START("10100000") PORT_START("10100000")
PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) 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( 0x00000002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) 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( 0x00000008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON1 ) 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( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
PORT_BIT( 0xFFFFFFC0, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_BIT( 0xFFFFFFC0, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
PORT_START("10200000") PORT_START("10200000")
PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_START2 )
PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_START3 ) PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_START3 )
PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_SERVICE1 ) // "test button" PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_SERVICE1 ) // "test button"
PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_START4 ) PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_START4 )
PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_SERVICE2 ) // "service button" PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_SERVICE2 ) // "service button"
PORT_BIT( 0xFFFFFF00, IP_ACTIVE_LOW, IPT_START5 ) PORT_BIT( 0xFFFFFF00, IP_ACTIVE_LOW, IPT_START5 )
INPUT_PORTS_END INPUT_PORTS_END
*/ */
@ -367,7 +367,7 @@ INPUT_PORTS_END
/* /*
static NAND_INTERFACE( bballoon_nand_intf ) 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)); cpu_spinuntil_time(space->cpu, ATTOTIME_IN_USEC(20));
} }
//else //else
// printf("speedup %08x %08x\n", pc, ret); // printf("speedup %08x %08x\n", pc, ret);
return ret; return ret;
} }
@ -445,10 +445,10 @@ static MACHINE_CONFIG_START( bballoon, driver_device )
MDRV_S3C2410_ADD("s3c2410", 12000000, bballoon_s3c2410_intf) MDRV_S3C2410_ADD("s3c2410", 12000000, bballoon_s3c2410_intf)
// MDRV_NAND_ADD("nand", 0xEC, 0x75) // MDRV_NAND_ADD("nand", 0xEC, 0x75)
// MDRV_DEVICE_CONFIG(bballoon_nand_intf) // 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) MDRV_I2CMEM_ADD("i2cmem", i2cmem_interface)
/* sound hardware */ /* sound hardware */

View File

@ -197,9 +197,9 @@ ADDRESS_MAP_END
static WRITE16_HANDLER( wpksoc_output_w ) static WRITE16_HANDLER( wpksoc_output_w )
{ {
/* /*
x--- ---- ? x--- ---- ?
---- --xx lamps ---- --xx lamps
*/ */
if(data & 0x7c) if(data & 0x7c)
popmessage("%04x",data); popmessage("%04x",data);
} }

View File

@ -1,12 +1,12 @@
/*************************************************************************** /***************************************************************************
Midway Quicksilver skeleton driver Midway Quicksilver skeleton driver
Main CPU : Intel Celeron 333/366MHz Main CPU : Intel Celeron 333/366MHz
Motherboard : Intel SE44BX-2 Motherboard : Intel SE44BX-2
RAM : 64MB RAM : 64MB
Graphics Chips : Quantum Obsidian 3DFX Graphics Chips : Quantum Obsidian 3DFX
Storage : Hard Drive Storage : Hard Drive
***************************************************************************/ ***************************************************************************/
#include "emu.h" #include "emu.h"

View File

@ -1079,16 +1079,16 @@ The GFX ROMs do not have labels, for clarity we name
them as on Igrosoft web-site hash tables. them as on Igrosoft web-site hash tables.
code roms: code roms:
xx_m_xxxxxx.rom - world relase 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_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_l_xxxxxx.rom - lottery game
xx_e_xxxxxx.rom - entertainment game xx_e_xxxxxx.rom - entertainment game
graphics roms: graphics roms:
xxxxxxxx_m.00x - roms for world relase 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.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_loto.00x - lottery sets
xxxxxxxx_ent.00x - entertainment sets xxxxxxxx_ent.00x - entertainment sets
*/ */

View File

@ -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(0x1a02, 0x1a02) AM_READ_PORT("P2")
AM_RANGE(0x1a03, 0x1a03) AM_READ_PORT("DSW3") AM_RANGE(0x1a03, 0x1a03) AM_READ_PORT("DSW3")
AM_RANGE(0x1c00, 0x1c00) AM_READ_PORT("DSW2") 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(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(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 */ AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("share4") /* Shared RAM with the CPU A */

View File

@ -5696,21 +5696,21 @@ static WRITE16_HANDLER( ddp3_asic_w )
break; break;
case 0x67: // set high bits 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->valueresponse = 0x880000;
state->ddp3internal_slot = (state->value0 & 0xff00)>>8; state->ddp3internal_slot = (state->value0 & 0xff00)>>8;
state->ddp3slots[state->ddp3internal_slot] = (state->value0 & 0x00ff) << 16; state->ddp3slots[state->ddp3internal_slot] = (state->value0 & 0x00ff) << 16;
break; break;
case 0xe5: // set low bits for operation? 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->valueresponse = 0x880000;
state->ddp3slots[state->ddp3internal_slot] |= (state->value0 & 0xffff); state->ddp3slots[state->ddp3internal_slot] |= (state->value0 & 0xffff);
break; break;
case 0x8e: // read back result of operations 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]; state->valueresponse = state->ddp3slots[state->value0&0xff];
break; break;

View File

@ -73,7 +73,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectan
{ {
UINT16 *spriteram16 = machine->generic.spriteram.u16; UINT16 *spriteram16 = machine->generic.spriteram.u16;
int offs,fx,fy,x,y,color,sprite; int offs,fx,fy,x,y,color,sprite;
// int cur_pri; // int cur_pri;
int dx,dy,ax,ay; int dx,dy,ax,ay;
for (offs = 0x400-4;offs >= 0;offs -= 4) 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); address_space *space = cputag_get_address_space(screen->machine, "maincpu", ADDRESS_SPACE_PROGRAM);
//if(input_code_pressed_once(screen->machine,KEYCODE_A)) //if(input_code_pressed_once(screen->machine,KEYCODE_A))
// src_addr+=0x800; // src_addr+=0x800;
//if(input_code_pressed_once(screen->machine,KEYCODE_S)) //if(input_code_pressed_once(screen->machine,KEYCODE_S))
// src_addr-=0x800; // src_addr-=0x800;
frame++; 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(0x0068e, 0x0068f) AM_WRITENOP // synch for the MCU?
AM_RANGE(0x006b0, 0x006b1) AM_WRITE(mcu_prog_w) AM_RANGE(0x006b0, 0x006b1) AM_WRITE(mcu_prog_w)
AM_RANGE(0x006b2, 0x006b3) AM_WRITE(mcu_prog_w2) AM_RANGE(0x006b2, 0x006b3) AM_WRITE(mcu_prog_w2)
// AM_RANGE(0x006b4, 0x006b5) AM_WRITENOP // AM_RANGE(0x006b4, 0x006b5) AM_WRITENOP
// AM_RANGE(0x006b6, 0x006b7) AM_WRITENOP // AM_RANGE(0x006b6, 0x006b7) AM_WRITENOP
AM_RANGE(0x006bc, 0x006bd) AM_WRITE(mcu_prog_offs_w) AM_RANGE(0x006bc, 0x006bd) AM_WRITE(mcu_prog_offs_w)
AM_RANGE(0x006be, 0x006bf) AM_WRITENOP // MCU program related AM_RANGE(0x006be, 0x006bf) AM_WRITENOP // MCU program related
AM_RANGE(0x006d8, 0x006d9) AM_WRITE(mcu_xval_w) AM_RANGE(0x006d8, 0x006d9) AM_WRITE(mcu_xval_w)
AM_RANGE(0x006da, 0x006db) AM_WRITE(mcu_yval_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(0x006de, 0x006df) AM_WRITE(mcu_unkaa_w) // mcu command related?
AM_RANGE(0x00700, 0x00701) AM_DEVWRITE("eeprom", rdx_v33_eeprom_w) 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(0x00744, 0x00745) AM_READ_PORT("INPUT")
AM_RANGE(0x0074c, 0x0074d) AM_READ_PORT("SYSTEM") AM_RANGE(0x0074c, 0x0074d) AM_READ_PORT("SYSTEM")
AM_RANGE(0x00762, 0x00763) AM_READNOP 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(0x0068e, 0x0068f) AM_WRITENOP // synch for the MCU?
AM_RANGE(0x006b0, 0x006b1) AM_WRITE(mcu_prog_w) AM_RANGE(0x006b0, 0x006b1) AM_WRITE(mcu_prog_w)
AM_RANGE(0x006b2, 0x006b3) AM_WRITE(mcu_prog_w2) AM_RANGE(0x006b2, 0x006b3) AM_WRITE(mcu_prog_w2)
// AM_RANGE(0x006b4, 0x006b5) AM_WRITENOP // AM_RANGE(0x006b4, 0x006b5) AM_WRITENOP
// AM_RANGE(0x006b6, 0x006b7) AM_WRITENOP // AM_RANGE(0x006b6, 0x006b7) AM_WRITENOP
AM_RANGE(0x006bc, 0x006bd) AM_WRITE(mcu_prog_offs_w) AM_RANGE(0x006bc, 0x006bd) AM_WRITE(mcu_prog_offs_w)
// AM_RANGE(0x006d8, 0x006d9) AM_WRITE(bbbbll_w) // scroll? // 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(0x006de, 0x006df) AM_WRITE(mcu_unkaa_w) // mcu command related?
//AM_RANGE(0x00700, 0x00701) AM_DEVWRITE("eeprom", rdx_v33_eeprom_w) //AM_RANGE(0x00700, 0x00701) AM_DEVWRITE("eeprom", rdx_v33_eeprom_w)
AM_RANGE(0x00740, 0x00741) AM_READ_PORT("DSW") AM_RANGE(0x00740, 0x00741) AM_READ_PORT("DSW")
AM_RANGE(0x00744, 0x00745) AM_READ_PORT("INPUT") AM_RANGE(0x00744, 0x00745) AM_READ_PORT("INPUT")
AM_RANGE(0x0074c, 0x0074d) AM_READ_PORT("SYSTEM") 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) 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) 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) SEIBU_NEWZEROTEAM_SOUND_SYSTEM_CPU(14318180/4)
/* video hardware */ /* video hardware */
@ -699,7 +699,7 @@ static MACHINE_CONFIG_START( nzerotea, driver_device )
MDRV_VIDEO_UPDATE(rdx_v33) MDRV_VIDEO_UPDATE(rdx_v33)
/* sound hardware */ /* 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) SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(14318180/4,1320000)
MACHINE_CONFIG_END MACHINE_CONFIG_END
@ -795,7 +795,7 @@ ROM_START( r2dx_v33 )
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF ) /* v33 main cpu */ 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*/ /* nothing? no z80*/
ROM_REGION( 0x040000, "gfx1", 0 ) /* chars */ ROM_REGION( 0x040000, "gfx1", 0 ) /* chars */
@ -852,7 +852,7 @@ ROM_START( nzerotea )
ROM_END 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? // 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 // '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 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

View File

@ -266,7 +266,7 @@ WRITE16_MEMBER(raiden2_state::cop_dma_trigger_w)
dst = (cop_dma_v3 << 6); dst = (cop_dma_v3 << 6);
size = ((cop_dma_size << 5) - (cop_dma_v3 << 6) + 0x20)/2; 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++) for(i = 0;i < size;i++)
{ {

View File

@ -330,7 +330,7 @@ static MACHINE_CONFIG_START( tankbust, driver_device )
MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) 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/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_PROGRAM_MAP(map_cpu2)
MDRV_CPU_IO_MAP(port_map_cpu2) MDRV_CPU_IO_MAP(port_map_cpu2)

View File

@ -2580,14 +2580,14 @@ static WRITE16_HANDLER( generic_cop_w )
static UINT32 src,dst,size,i; static UINT32 src,dst,size,i;
/* TODO: understand all the differences between triggers! /* TODO: understand all the differences between triggers!
0x80 is used by Legionnaire (plain DMA) 0x80 is used by Legionnaire (plain DMA)
0x81 is used by SD Gundam and Godzilla (unknown purpose) 0x81 is used by SD Gundam and Godzilla (unknown purpose)
0x86 is used by Seibu Cup Soccer (doesn't yet work) 0x86 is used by Seibu Cup Soccer (doesn't yet work)
0x87 is used by Denjin Makai (DMA with inverted word endianess) 0x87 is used by Denjin Makai (DMA with inverted word endianess)
*/ */
//if(dma_trigger != 0x87) //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) if(dma_trigger == 0x81)
return; return;

View File

@ -10296,7 +10296,7 @@ Other Sun games
DRIVER( sweetl_2 ) /* (c) 2004 */ DRIVER( sweetl_2 ) /* (c) 2004 */
/* Resident */ /* Resident */
DRIVER( resdnt ) /* (c) 2004 */ DRIVER( resdnt ) /* (c) 2004 */
DRIVER( resdnt_2 ) /* (c) 2004 */ DRIVER( resdnt_2 ) /* (c) 2004 */
DRIVER( resdnt_3 ) /* (c) 2004 */ DRIVER( resdnt_3 ) /* (c) 2004 */

View File

@ -227,24 +227,24 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const recta
while (rom_offs < 0x40000) /* safety check */ while (rom_offs < 0x40000) /* safety check */
{ {
/* /*
[1] [1]
x--- ---- end of block marker x--- ---- end of block marker
---- --x- Flip Y ---- --x- Flip Y
---- ---x Flip X ---- ---x Flip X
[2] [2]
xxxx xxxx Y offs lo byte xxxx xxxx Y offs lo byte
[3] [3]
---- xxx- height (1/2/4/8) ---- xxx- height (1/2/4/8)
---- ---x Y offs hi byte ---- ---x Y offs hi byte
[4] [4]
xxxx xxxx sprite number lo byte xxxx xxxx sprite number lo byte
[5] [5]
xxxx xxxx sprite number hi byte xxxx xxxx sprite number hi byte
[6] [6]
xxxx xxxx X offs lo byte xxxx xxxx X offs lo byte
[7] [7]
---- ---x X offs hi byte ---- ---x X offs hi byte
*/ */
int xdisp = rom[rom_offs+6]+256*rom[rom_offs+7]; int xdisp = rom[rom_offs+6]+256*rom[rom_offs+7];
int ydisp = rom[rom_offs+2]+256*rom[rom_offs+3]; int ydisp = rom[rom_offs+2]+256*rom[rom_offs+3];
@ -290,9 +290,9 @@ static void m107_update_scroll_positions(void)
int i; 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 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 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? Perhaps 0xdf000 - 0xdffff and bit 2-3 are respectively colscroll and colselect?
*/ */
for (laynum = 0; laynum < 4; laynum++) for (laynum = 0; laynum < 4; laynum++)
@ -384,8 +384,8 @@ WRITE16_HANDLER( m107_spritebuffer_w )
{ {
if (ACCESSING_BITS_0_7) { 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)); // logerror("%04x: buffered spriteram\n",cpu_get_pc(space->cpu));
m107_sprite_display = (!(data & 0x1000)); m107_sprite_display = (!(data & 0x1000));

View File

@ -10,4 +10,4 @@
***************************************************************************/ ***************************************************************************/
extern const char build_version[]; extern const char build_version[];
const char build_version[] = "0.140u2 ("__DATE__")"; const char build_version[] = "0.140u3 ("__DATE__")";