mirror of
https://github.com/holub/mame
synced 2025-05-20 20:58:51 +03:00
fspiderb: Added projectiles, game is playable now (hap)
This commit is contained in:
parent
ed52c63984
commit
82293e597c
@ -95,10 +95,6 @@ Notes:
|
|||||||
The hardware is very similar to Galaxian but has some differencies, like the 3bpp bitmap addition
|
The hardware is very similar to Galaxian but has some differencies, like the 3bpp bitmap addition
|
||||||
To advance input tests, press Tilt button
|
To advance input tests, press Tilt button
|
||||||
|
|
||||||
TODO (Frog & Spiders):
|
|
||||||
- Missing projectiles;
|
|
||||||
- inputs needs to be done from scratch;
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
@ -117,6 +113,7 @@ public:
|
|||||||
UINT8 * videoram;
|
UINT8 * videoram;
|
||||||
UINT8 * colorram;
|
UINT8 * colorram;
|
||||||
UINT8 * spriteram;
|
UINT8 * spriteram;
|
||||||
|
UINT8 * bulletram;
|
||||||
UINT8 * bitmap;
|
UINT8 * bitmap;
|
||||||
|
|
||||||
/* video-related */
|
/* video-related */
|
||||||
@ -220,7 +217,9 @@ static ADDRESS_MAP_START( fspider_map, ADDRESS_SPACE_PROGRAM, 8 )
|
|||||||
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(jollyjgr_videoram_w) AM_BASE_MEMBER(jollyjgr_state, videoram)
|
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(jollyjgr_videoram_w) AM_BASE_MEMBER(jollyjgr_state, videoram)
|
||||||
AM_RANGE(0x9800, 0x983f) AM_RAM_WRITE(jollyjgr_attrram_w) AM_BASE_MEMBER(jollyjgr_state, colorram)
|
AM_RANGE(0x9800, 0x983f) AM_RAM_WRITE(jollyjgr_attrram_w) AM_BASE_MEMBER(jollyjgr_state, colorram)
|
||||||
AM_RANGE(0x9840, 0x987f) AM_RAM AM_BASE_MEMBER(jollyjgr_state, spriteram)
|
AM_RANGE(0x9840, 0x987f) AM_RAM AM_BASE_MEMBER(jollyjgr_state, spriteram)
|
||||||
AM_RANGE(0x9880, 0x9bff) AM_RAM
|
AM_RANGE(0x9880, 0x989f) AM_RAM // ?
|
||||||
|
AM_RANGE(0x98a0, 0x98af) AM_RAM AM_BASE_MEMBER(jollyjgr_state, bulletram)
|
||||||
|
AM_RANGE(0x98b0, 0x9bff) AM_RAM // ?
|
||||||
AM_RANGE(0xa000, 0xffff) AM_RAM AM_BASE_MEMBER(jollyjgr_state, bitmap)
|
AM_RANGE(0xa000, 0xffff) AM_RAM AM_BASE_MEMBER(jollyjgr_state, bitmap)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
@ -365,12 +364,12 @@ static INPUT_PORTS_START( fspider )
|
|||||||
PORT_START("INPUTS")
|
PORT_START("INPUTS")
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY
|
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY
|
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_2WAY
|
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 )
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_2WAY
|
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 )
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL
|
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL
|
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_2WAY PORT_COCKTAIL
|
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_2WAY PORT_COCKTAIL
|
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL
|
||||||
|
|
||||||
PORT_START("SYSTEM")
|
PORT_START("SYSTEM")
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 )
|
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 )
|
||||||
@ -523,6 +522,36 @@ static VIDEO_UPDATE( jollyjgr )
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static VIDEO_UPDATE( fspider )
|
||||||
|
{
|
||||||
|
jollyjgr_state *state = (jollyjgr_state *)screen->machine->driver_data;
|
||||||
|
|
||||||
|
// Draw bg and sprites
|
||||||
|
VIDEO_UPDATE_CALL(jollyjgr);
|
||||||
|
|
||||||
|
/* Draw bullets
|
||||||
|
16 bytes, 2 bytes per bullet (y,x). 2 player bullets, 6 enemy bullets.
|
||||||
|
Assume bullets to look the same as on Galaxian hw,
|
||||||
|
that is, simply 4 pixels. Colours are unknown. */
|
||||||
|
for (int offs=0;offs<0x10;offs+=2) {
|
||||||
|
UINT8 sy=~state->bulletram[offs];
|
||||||
|
UINT8 sx=~state->bulletram[offs|1];
|
||||||
|
UINT16 bc=(offs<4)?
|
||||||
|
32+7: // player, white
|
||||||
|
32+3; // enemy, yellow
|
||||||
|
|
||||||
|
if (state->flip_y) sy^=0xff;
|
||||||
|
if (state->flip_x) sx+=8;
|
||||||
|
|
||||||
|
if (sy>=cliprect->min_y && sy<=cliprect->max_y)
|
||||||
|
for (int x=sx-4;x<sx;x++)
|
||||||
|
if (x>=cliprect->min_x && x<=cliprect->max_x)
|
||||||
|
*BITMAP_ADDR16(bitmap,sy,x)=bc;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/*************************************
|
/*************************************
|
||||||
*
|
*
|
||||||
* Graphics definitions
|
* Graphics definitions
|
||||||
@ -581,6 +610,8 @@ static MACHINE_START( jollyjgr )
|
|||||||
state_save_register_global(machine, state->nmi_enable);
|
state_save_register_global(machine, state->nmi_enable);
|
||||||
state_save_register_global(machine, state->flip_x);
|
state_save_register_global(machine, state->flip_x);
|
||||||
state_save_register_global(machine, state->flip_y);
|
state_save_register_global(machine, state->flip_y);
|
||||||
|
state_save_register_global(machine, state->bitmap_disable);
|
||||||
|
state_save_register_global(machine, state->tilemap_bank);
|
||||||
}
|
}
|
||||||
|
|
||||||
static MACHINE_RESET( jollyjgr )
|
static MACHINE_RESET( jollyjgr )
|
||||||
@ -590,6 +621,8 @@ static MACHINE_RESET( jollyjgr )
|
|||||||
state->nmi_enable = 0;
|
state->nmi_enable = 0;
|
||||||
state->flip_x = 0;
|
state->flip_x = 0;
|
||||||
state->flip_y = 0;
|
state->flip_y = 0;
|
||||||
|
state->bitmap_disable = 0;
|
||||||
|
state->tilemap_bank = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static MACHINE_DRIVER_START( jollyjgr )
|
static MACHINE_DRIVER_START( jollyjgr )
|
||||||
@ -633,6 +666,8 @@ static MACHINE_DRIVER_START( fspider )
|
|||||||
MDRV_CPU_MODIFY("maincpu")
|
MDRV_CPU_MODIFY("maincpu")
|
||||||
MDRV_CPU_PROGRAM_MAP(fspider_map)
|
MDRV_CPU_PROGRAM_MAP(fspider_map)
|
||||||
|
|
||||||
|
MDRV_VIDEO_UPDATE(fspider)
|
||||||
|
|
||||||
MACHINE_DRIVER_END
|
MACHINE_DRIVER_END
|
||||||
|
|
||||||
/*************************************
|
/*************************************
|
||||||
@ -710,5 +745,5 @@ ROM_END
|
|||||||
*
|
*
|
||||||
*************************************/
|
*************************************/
|
||||||
|
|
||||||
GAME( 1981, fspiderb, 0, fspider, fspider, 0, ROT90, "Taito Corporation", "Frog & Spiders (bootleg)", GAME_NOT_WORKING ) //comes from a Fawaz Group bootleg board
|
GAME( 1981, fspiderb, 0, fspider, fspider, 0, ROT90, "Taito Corporation", "Frog & Spiders (bootleg?)", GAME_SUPPORTS_SAVE ) // comes from a Fawaz Group bootleg(?) board
|
||||||
GAME( 1982, jollyjgr, 0, jollyjgr, jollyjgr, 0, ROT90, "Taito Corporation", "Jolly Jogger", GAME_SUPPORTS_SAVE )
|
GAME( 1982, jollyjgr, 0, jollyjgr, jollyjgr, 0, ROT90, "Taito Corporation", "Jolly Jogger", GAME_SUPPORTS_SAVE )
|
||||||
|
Loading…
Reference in New Issue
Block a user