Merge pull request #1681 from mamehaze/091116

fix MT03646: altbeastj, altbeast6 : Missing graphics in the crystal ball
This commit is contained in:
R. Belmont 2016-11-15 11:12:07 -05:00 committed by GitHub
commit d35febb03a
2 changed files with 12 additions and 6 deletions

View File

@ -1343,14 +1343,20 @@ void segas16b_state::device_timer(emu_timer &timer, device_timer_id id, int para
// from Altered Beast
//-------------------------------------------------
void segas16b_state::altbeast_common_i8751_sim(offs_t soundoffs, offs_t inputoffs)
void segas16b_state::altbeast_common_i8751_sim(offs_t soundoffs, offs_t inputoffs, int alt_bank)
{
// signal a VBLANK to the main CPU
m_maincpu->set_input_line(4, HOLD_LINE);
// set tile banks
address_space &space = m_maincpu->space(AS_PROGRAM);
rom_5704_bank_w(space, 1, m_workram[0x3094/2] & 0x00ff, 0x00ff);
int bank = m_workram[0x3094 / 2] & 0x00ff;
// alt_bank is used for the alt rom loading (where there are space between the ROMs)
// alternatively the rom loading could be changed, but the loading is correct for the non-mcu .b14/.a14 type
// board so presumably our MCU simulation should act accordingly.
if (alt_bank) bank = (bank & 0x1) | ((bank & 0xfe) << 1);
rom_5704_bank_w(space, 1, bank, 0x00ff);
// process any new sound data
uint16_t temp = m_workram[soundoffs];
@ -1366,17 +1372,17 @@ void segas16b_state::altbeast_common_i8751_sim(offs_t soundoffs, offs_t inputoff
void segas16b_state::altbeasj_i8751_sim()
{
altbeast_common_i8751_sim(0x30d4/2, 0x30d0/2);
altbeast_common_i8751_sim(0x30d4/2, 0x30d0/2, 1);
}
void segas16b_state::altbeas5_i8751_sim()
{
altbeast_common_i8751_sim(0x3098/2, 0x3096/2);
altbeast_common_i8751_sim(0x3098/2, 0x3096/2, 1);
}
void segas16b_state::altbeast_i8751_sim()
{
altbeast_common_i8751_sim(0x30c4/2, 0x30c2/2);
altbeast_common_i8751_sim(0x30c4/2, 0x30c2/2, 0);
}

View File

@ -168,7 +168,7 @@ protected:
void init_generic(segas16b_rom_board rom_board);
// i8751 simulations
void altbeast_common_i8751_sim(offs_t soundoffs, offs_t inputoffs);
void altbeast_common_i8751_sim(offs_t soundoffs, offs_t inputoffs, int alt_bank);
void altbeasj_i8751_sim();
void altbeas5_i8751_sim();
void altbeast_i8751_sim();