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) \
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

View File

@ -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

View File

@ -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;

View File

@ -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 };

View File

@ -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*

View File

@ -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;*/
}
}

View File

@ -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

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 )
{
// 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 */

View File

@ -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);
}

View File

@ -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"

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.
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
*/

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(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 */

View File

@ -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;

View File

@ -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

View File

@ -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++)
{

View File

@ -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)

View File

@ -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;

View File

@ -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 */

View File

@ -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));

View File

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