summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/kaneko/suprnova.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/kaneko/suprnova.cpp')
-rw-r--r--src/mame/kaneko/suprnova.cpp46
1 files changed, 24 insertions, 22 deletions
diff --git a/src/mame/kaneko/suprnova.cpp b/src/mame/kaneko/suprnova.cpp
index 2f6704bdf60..2ca8f6cc686 100644
--- a/src/mame/kaneko/suprnova.cpp
+++ b/src/mame/kaneko/suprnova.cpp
@@ -31,9 +31,9 @@ ToDo:
galpanis: Are the priorities correct on the KANEKO logo at the start, the invisible faded logo obscures the rotating white lines
video: Sprite Zooming - the current algorithm is leaving gaps, most noticeable in Gals Panic 4, and Jackie Chan which is sharing
- the video code.
+ the sprite hardware.
-video: Sprite positions still kludged slightly (see skns_sprite_kludge)
+video: Sprite positions still kludged slightly (see set_sprite_kludge)
puzzloopkbl: Different sprite RAM format?
@@ -794,7 +794,8 @@ void skns_state::skns(machine_config &config)
PALETTE(config, m_palette).set_entries(32768);
GFXDECODE(config, m_gfxdecode, m_palette, skns_bg);
- SKNS_SPRITE(config, m_spritegen, 0);
+ KANEKO_RLESPR(config, m_spritegen, 0);
+ m_spritegen->set_screen(m_screen);
/* sound hardware */
SPEAKER(config, "speaker", 2).front();
@@ -990,25 +991,26 @@ void skns_state::set_drc_pcflush(uint32_t addr)
m_maincpu->sh2drc_add_pcflush(addr);
}
-void skns_state::init_galpani4() { m_spritegen->skns_sprite_kludge(-5,-1); init_drc(); }
-void skns_state::init_galpanis() { m_spritegen->skns_sprite_kludge(-5,-1); init_drc(); }
-void skns_state::init_cyvern() { m_spritegen->skns_sprite_kludge(+0,+2); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x604d3c8, 0x604d3cb, read32smo_delegate(*this, FUNC(skns_state::cyvern_speedup_r)) ); set_drc_pcflush(0x402ebd2); }
-void skns_state::init_galpans2() { m_spritegen->skns_sprite_kludge(-1,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60fb6bc, 0x60fb6bf, read32smo_delegate(*this, FUNC(skns_state::galpans2_speedup_r)) ); set_drc_pcflush(0x4049ae2); }
-void skns_state::init_gutsn() { m_spritegen->skns_sprite_kludge(+0,+0); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x600c780, 0x600c783, read32smo_delegate(*this, FUNC(skns_state::gutsn_speedup_r)) ); set_drc_pcflush(0x402206e); }
-void skns_state::init_panicstr() { m_spritegen->skns_sprite_kludge(-1,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60f19e4, 0x60f19e7, read32smo_delegate(*this, FUNC(skns_state::panicstr_speedup_r)) ); set_drc_pcflush(0x404e68a); }
-void skns_state::init_senknow() { m_spritegen->skns_sprite_kludge(+1,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60000dc, 0x60000df, read32smo_delegate(*this, FUNC(skns_state::senknow_speedup_r)) ); set_drc_pcflush(0x4017dce); }
-void skns_state::init_puzzloope() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6081d38, 0x6081d3b, read32smo_delegate(*this, FUNC(skns_state::puzzloope_speedup_r)) ); set_drc_pcflush(0x401da14); }
-void skns_state::init_puzzloopj() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6086714, 0x6086717, read32smo_delegate(*this, FUNC(skns_state::puzzloopj_speedup_r)) ); set_drc_pcflush(0x401dca0); }
-void skns_state::init_puzzloopa() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6085bcc, 0x6085bcf, read32smo_delegate(*this, FUNC(skns_state::puzzloopa_speedup_r)) ); set_drc_pcflush(0x401d9d4); }
-void skns_state::init_puzzloopu() { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6085cec, 0x6085cef, read32smo_delegate(*this, FUNC(skns_state::puzzloopu_speedup_r)) ); set_drc_pcflush(0x401dab0); }
-void skns_state::init_jjparads() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000994, 0x6000997, read32smo_delegate(*this, FUNC(skns_state::jjparads_speedup_r)) ); set_drc_pcflush(0x4015e84); }
-void skns_state::init_jjparad2() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000984, 0x6000987, read32smo_delegate(*this, FUNC(skns_state::jjparad2_speedup_r)) ); set_drc_pcflush(0x401620a); }
-void skns_state::init_ryouran() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000a14, 0x6000a17, read32smo_delegate(*this, FUNC(skns_state::ryouran_speedup_r)) ); set_drc_pcflush(0x40182ce); }
-void skns_state::init_teljan() { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6002fb4, 0x6002fb7, read32smo_delegate(*this, FUNC(skns_state::teljan_speedup_r)) ); set_drc_pcflush(0x401ba32); }
-void skns_state::init_sengekis() { m_spritegen->skns_sprite_kludge(-192,-272); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60b74bc, 0x60b74bf, read32smo_delegate(*this, FUNC(skns_state::sengekis_speedup_r)) ); set_drc_pcflush(0x60006ec); }
-void skns_state::init_sengekij() { m_spritegen->skns_sprite_kludge(-192,-272); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60b7380, 0x60b7383, read32smo_delegate(*this, FUNC(skns_state::sengekij_speedup_r)) ); set_drc_pcflush(0x60006ec); }
-void skns_state::init_sarukani() { m_spritegen->skns_sprite_kludge(-1,-1); init_drc(); set_drc_pcflush(0x4013b42); } // Speedup is in io_w()
-void skns_state::init_galpans3() { m_spritegen->skns_sprite_kludge(-1,-1); init_drc(); }
+// TODO: move set_sprite_kludge into configuration
+void skns_state::init_galpani4() { m_spritegen->set_sprite_kludge(-5, -1); init_drc(); }
+void skns_state::init_galpanis() { m_spritegen->set_sprite_kludge(-5, -1); init_drc(); }
+void skns_state::init_cyvern() { m_spritegen->set_sprite_kludge(+0, +2); init_drc(); m_maincpu->space(AS_PROGRAM).install_read_handler(0x604d3c8, 0x604d3cb, read32smo_delegate(*this, FUNC(skns_state::cyvern_speedup_r)) ); set_drc_pcflush(0x402ebd2); }
+void skns_state::init_galpans2() { m_spritegen->set_sprite_kludge(-1, -1); init_drc(); m_maincpu->space(AS_PROGRAM).install_read_handler(0x60fb6bc, 0x60fb6bf, read32smo_delegate(*this, FUNC(skns_state::galpans2_speedup_r)) ); set_drc_pcflush(0x4049ae2); }
+void skns_state::init_gutsn() { m_spritegen->set_sprite_kludge(+0, +0); init_drc(); m_maincpu->space(AS_PROGRAM).install_read_handler(0x600c780, 0x600c783, read32smo_delegate(*this, FUNC(skns_state::gutsn_speedup_r)) ); set_drc_pcflush(0x402206e); }
+void skns_state::init_panicstr() { m_spritegen->set_sprite_kludge(-1, -1); init_drc(); m_maincpu->space(AS_PROGRAM).install_read_handler(0x60f19e4, 0x60f19e7, read32smo_delegate(*this, FUNC(skns_state::panicstr_speedup_r)) ); set_drc_pcflush(0x404e68a); }
+void skns_state::init_senknow() { m_spritegen->set_sprite_kludge(+1, +1); init_drc(); m_maincpu->space(AS_PROGRAM).install_read_handler(0x60000dc, 0x60000df, read32smo_delegate(*this, FUNC(skns_state::senknow_speedup_r)) ); set_drc_pcflush(0x4017dce); }
+void skns_state::init_puzzloope() { m_spritegen->set_sprite_kludge(-9, -1); init_drc(); m_maincpu->space(AS_PROGRAM).install_read_handler(0x6081d38, 0x6081d3b, read32smo_delegate(*this, FUNC(skns_state::puzzloope_speedup_r)) ); set_drc_pcflush(0x401da14); }
+void skns_state::init_puzzloopj() { m_spritegen->set_sprite_kludge(-9, -1); init_drc(); m_maincpu->space(AS_PROGRAM).install_read_handler(0x6086714, 0x6086717, read32smo_delegate(*this, FUNC(skns_state::puzzloopj_speedup_r)) ); set_drc_pcflush(0x401dca0); }
+void skns_state::init_puzzloopa() { m_spritegen->set_sprite_kludge(-9, -1); init_drc(); m_maincpu->space(AS_PROGRAM).install_read_handler(0x6085bcc, 0x6085bcf, read32smo_delegate(*this, FUNC(skns_state::puzzloopa_speedup_r)) ); set_drc_pcflush(0x401d9d4); }
+void skns_state::init_puzzloopu() { m_spritegen->set_sprite_kludge(-9, -1); init_drc(); m_maincpu->space(AS_PROGRAM).install_read_handler(0x6085cec, 0x6085cef, read32smo_delegate(*this, FUNC(skns_state::puzzloopu_speedup_r)) ); set_drc_pcflush(0x401dab0); }
+void skns_state::init_jjparads() { m_spritegen->set_sprite_kludge(+5, +1); init_drc(); m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000994, 0x6000997, read32smo_delegate(*this, FUNC(skns_state::jjparads_speedup_r)) ); set_drc_pcflush(0x4015e84); }
+void skns_state::init_jjparad2() { m_spritegen->set_sprite_kludge(+5, +1); init_drc(); m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000984, 0x6000987, read32smo_delegate(*this, FUNC(skns_state::jjparad2_speedup_r)) ); set_drc_pcflush(0x401620a); }
+void skns_state::init_ryouran() { m_spritegen->set_sprite_kludge(+5, +1); init_drc(); m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000a14, 0x6000a17, read32smo_delegate(*this, FUNC(skns_state::ryouran_speedup_r)) ); set_drc_pcflush(0x40182ce); }
+void skns_state::init_teljan() { m_spritegen->set_sprite_kludge(+5, +1); init_drc(); m_maincpu->space(AS_PROGRAM).install_read_handler(0x6002fb4, 0x6002fb7, read32smo_delegate(*this, FUNC(skns_state::teljan_speedup_r)) ); set_drc_pcflush(0x401ba32); }
+void skns_state::init_sengekis() { m_spritegen->set_sprite_kludge(-192, -272); init_drc(); m_maincpu->space(AS_PROGRAM).install_read_handler(0x60b74bc, 0x60b74bf, read32smo_delegate(*this, FUNC(skns_state::sengekis_speedup_r)) ); set_drc_pcflush(0x60006ec); }
+void skns_state::init_sengekij() { m_spritegen->set_sprite_kludge(-192, -272); init_drc(); m_maincpu->space(AS_PROGRAM).install_read_handler(0x60b7380, 0x60b7383, read32smo_delegate(*this, FUNC(skns_state::sengekij_speedup_r)) ); set_drc_pcflush(0x60006ec); }
+void skns_state::init_sarukani() { m_spritegen->set_sprite_kludge(-1, -1); init_drc(); set_drc_pcflush(0x4013b42); } // Speedup is in io_w()
+void skns_state::init_galpans3() { m_spritegen->set_sprite_kludge(-1, -1); init_drc(); }