diff options
author | sasuke-arcade <58130089+sasuke-arcade@users.noreply.github.com> | 2019-11-27 23:48:13 +0900 |
---|---|---|
committer | Angelo Salese <angelosa@users.noreply.github.com> | 2019-11-27 15:48:13 +0100 |
commit | 9216ceca6473c7ae27ed9ca0fdc2e89650043b4e (patch) | |
tree | b56f6759451d69b77375c929cddc794e01869c68 /src/mame/includes | |
parent | e2358318322e3286f673677da02c53ed2f7a6120 (diff) |
skyfox.cpp : Improve background based on PCB (#5976)
* skyfox.cpp : Improve background based on PCB
The previous background implementation was completely wrong.
I found stars position stored in memory.
I used this to rewrite the background drawing code.
Reference PCB video:
- https://www.youtube.com/watch?v=oyE1CfcVrDc
- https://www.youtube.com/watch?v=5QhTNrNH-CU
* Remove debug code.
* Organize code and adjust display
- Split background VRAM and work RAM from addresses map
- Rename DECLARE_WRITE8_MEMBER
- Remove unused interupt declarations
- Adjust background star display
* Fixed problems with flipscreen
- Adjust sprite position
- Remove background flip
Diffstat (limited to 'src/mame/includes')
-rw-r--r-- | src/mame/includes/skyfox.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/mame/includes/skyfox.h b/src/mame/includes/skyfox.h index 85baf20e8b8..1f93181d49d 100644 --- a/src/mame/includes/skyfox.h +++ b/src/mame/includes/skyfox.h @@ -25,7 +25,8 @@ public: m_screen(*this, "screen"), m_palette(*this, "palette"), m_soundlatch(*this, "soundlatch"), - m_spriteram(*this, "spriteram") + m_spriteram(*this, "spriteram"), + m_bgram(*this, "bgram") { } void skyfox(machine_config &config); @@ -43,16 +44,15 @@ private: required_device<palette_device> m_palette; required_device<generic_latch_8_device> m_soundlatch; required_shared_ptr<uint8_t> m_spriteram; + required_shared_ptr<uint8_t> m_bgram; - int m_bg_pos; int m_bg_ctrl; - DECLARE_WRITE8_MEMBER(skyfox_vregs_w); + DECLARE_WRITE8_MEMBER(output_w); virtual void machine_start() override; virtual void machine_reset() override; void skyfox_palette(palette_device &palette) const; uint32_t screen_update_skyfox(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - INTERRUPT_GEN_MEMBER(skyfox_interrupt); void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); void draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect); |