diff options
author | Osso13 <mesgnet@yahoo.it> | 2015-01-13 20:14:13 +0100 |
---|---|---|
committer | Osso13 <mesgnet@yahoo.it> | 2015-01-13 20:14:13 +0100 |
commit | 554fda6d954faa1acad5d003b062903d60cb23fe (patch) | |
tree | b8ba4a028cf8ae76e93464fe5e3a0c5b0960209f | |
parent | 02173bc23deb0b57d641d1a00084dfa40b162bee (diff) |
dec0.c: added save state support (nw)
-rw-r--r-- | src/mame/drivers/dec0.c | 70 | ||||
-rw-r--r-- | src/mame/includes/dec0.h | 72 | ||||
-rw-r--r-- | src/mame/machine/dec0.c | 24 | ||||
-rw-r--r-- | src/mame/video/dec0.c | 5 | ||||
-rw-r--r-- | src/mame/video/decbac06.c | 6 |
5 files changed, 98 insertions, 79 deletions
diff --git a/src/mame/drivers/dec0.c b/src/mame/drivers/dec0.c index 66d4ac2e44d..a5faa2a913a 100644 --- a/src/mame/drivers/dec0.c +++ b/src/mame/drivers/dec0.c @@ -526,7 +526,12 @@ ADDRESS_MAP_END - +void dec0_automat_state::machine_start() +{ + save_item(NAME(m_automat_adpcm_byte)); + save_item(NAME(m_automat_msm5205_vclk_toggle)); + save_item(NAME(m_automat_scroll_regs)); +} /* swizzle the palette writes around so we can use the same gfx plane ordering as the originals */ @@ -3034,56 +3039,51 @@ READ16_MEMBER(dec0_state::ffantasybl_242024_r) return 0xffff; } -READ16_MEMBER(dec0_state::ffantasybl_vblank_r) -{ - return ioport("VBLANK")->read(); -} - DRIVER_INIT_MEMBER(dec0_state,ffantasybl) { m_maincpu->space(AS_PROGRAM).install_ram(0x24c880, 0x24cbff); // what is this? layer 3-related?? m_maincpu->space(AS_PROGRAM).install_read_handler(0x00242024, 0x00242025, read16_delegate(FUNC(dec0_state::ffantasybl_242024_r),this)); - m_maincpu->space(AS_PROGRAM).install_read_handler(0x00ff87ee, 0x00ff87ef, read16_delegate(FUNC(dec0_state::ffantasybl_vblank_r),this)); + m_maincpu->space(AS_PROGRAM).install_read_port(0x00ff87ee, 0x00ff87ef, "VBLANK"); } /******************************************************************************/ // YEAR, NAME, PARENT, MACHINE, INPUT, STATE/DEVICE, INIT, MONITOR,COMPANY, FULLNAME, FLAGS -GAME( 1987, hbarrel, 0, hbarrel, hbarrel, dec0_state, hbarrel, ROT270, "Data East USA", "Heavy Barrel (US)", 0 ) -GAME( 1987, hbarrelw, hbarrel, hbarrel, hbarrel, dec0_state, hbarrel, ROT270, "Data East Corporation", "Heavy Barrel (World)", 0 ) -GAME( 1988, baddudes, 0, baddudes, baddudes, dec0_state, baddudes, ROT0, "Data East USA", "Bad Dudes vs. Dragonninja (US)", 0 ) -GAME( 1988, drgninja, baddudes, baddudes, drgninja, dec0_state, baddudes, ROT0, "Data East Corporation", "Dragonninja (Japan)", 0 ) -GAME( 1988, birdtry, 0, birdtry, birdtry, dec0_state, birdtry, ROT270, "Data East Corporation", "Birdie Try (Japan)", GAME_UNEMULATED_PROTECTION ) -GAME( 1988, robocop, 0, robocop, robocop, dec0_state, robocop, ROT0, "Data East Corporation", "Robocop (World revision 4)", 0 ) -GAME( 1988, robocopw, robocop, robocop, robocop, dec0_state, robocop, ROT0, "Data East Corporation", "Robocop (World revision 3)", 0 ) -GAME( 1988, robocopj, robocop, robocop, robocop, dec0_state, robocop, ROT0, "Data East Corporation", "Robocop (Japan)", 0 ) -GAME( 1988, robocopu, robocop, robocop, robocop, dec0_state, robocop, ROT0, "Data East USA", "Robocop (US revision 1)", 0 ) -GAME( 1988, robocopu0, robocop, robocop, robocop, dec0_state, robocop, ROT0, "Data East USA", "Robocop (US revision 0)", 0 ) -GAME( 1989, hippodrm, 0, hippodrm, hippodrm, dec0_state, hippodrm, ROT0, "Data East USA", "Hippodrome (US)", 0 ) -GAME( 1989, ffantasy, hippodrm, hippodrm, ffantasy, dec0_state, hippodrm, ROT0, "Data East Corporation", "Fighting Fantasy (Japan revision 2)", 0 ) -GAME( 1989, ffantasya, hippodrm, hippodrm, ffantasy, dec0_state, hippodrm, ROT0, "Data East Corporation", "Fighting Fantasy (Japan)", 0 ) -GAME( 1989, secretag, 0, slyspy, slyspy, dec0_state, slyspy, ROT0, "Data East Corporation", "Secret Agent (World revision 3)", 0 ) -GAME( 1989, secretagj, secretag, slyspy, slyspy, dec0_state, slyspy, ROT0, "Data East Corporation", "Secret Agent (Japan revision 2)", 0 ) -GAME( 1989, slyspy, secretag, slyspy, slyspy, dec0_state, slyspy, ROT0, "Data East USA", "Sly Spy (US revision 3)", 0 ) -GAME( 1989, slyspy2, secretag, slyspy, slyspy, dec0_state, slyspy, ROT0, "Data East USA", "Sly Spy (US revision 2)", 0 ) -GAME( 1989, midres, 0, midres, midres, driver_device, 0, ROT0, "Data East Corporation", "Midnight Resistance (World)", 0 ) -GAME( 1989, midresu, midres, midres, midresu, driver_device, 0, ROT0, "Data East USA", "Midnight Resistance (US)", 0 ) -GAME( 1989, midresj, midres, midres, midresu, driver_device, 0, ROT0, "Data East Corporation", "Midnight Resistance (Japan)", 0 ) -GAME( 1990, bouldash, 0, slyspy, bouldash, dec0_state, slyspy, ROT0, "Data East Corporation (licensed from First Star)", "Boulder Dash / Boulder Dash Part 2 (World)", 0 ) -GAME( 1990, bouldashj, bouldash, slyspy, bouldash, dec0_state, slyspy, ROT0, "Data East Corporation (licensed from First Star)", "Boulder Dash / Boulder Dash Part 2 (Japan)", 0 ) +GAME( 1987, hbarrel, 0, hbarrel, hbarrel, dec0_state, hbarrel, ROT270, "Data East USA", "Heavy Barrel (US)", GAME_SUPPORTS_SAVE ) +GAME( 1987, hbarrelw, hbarrel, hbarrel, hbarrel, dec0_state, hbarrel, ROT270, "Data East Corporation", "Heavy Barrel (World)", GAME_SUPPORTS_SAVE ) +GAME( 1988, baddudes, 0, baddudes, baddudes, dec0_state, baddudes, ROT0, "Data East USA", "Bad Dudes vs. Dragonninja (US)", GAME_SUPPORTS_SAVE ) +GAME( 1988, drgninja, baddudes, baddudes, drgninja, dec0_state, baddudes, ROT0, "Data East Corporation", "Dragonninja (Japan)", GAME_SUPPORTS_SAVE ) +GAME( 1988, birdtry, 0, birdtry, birdtry, dec0_state, birdtry, ROT270, "Data East Corporation", "Birdie Try (Japan)", GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE ) +GAME( 1988, robocop, 0, robocop, robocop, dec0_state, robocop, ROT0, "Data East Corporation", "Robocop (World revision 4)", GAME_SUPPORTS_SAVE ) +GAME( 1988, robocopw, robocop, robocop, robocop, dec0_state, robocop, ROT0, "Data East Corporation", "Robocop (World revision 3)", GAME_SUPPORTS_SAVE ) +GAME( 1988, robocopj, robocop, robocop, robocop, dec0_state, robocop, ROT0, "Data East Corporation", "Robocop (Japan)", GAME_SUPPORTS_SAVE ) +GAME( 1988, robocopu, robocop, robocop, robocop, dec0_state, robocop, ROT0, "Data East USA", "Robocop (US revision 1)", GAME_SUPPORTS_SAVE ) +GAME( 1988, robocopu0, robocop, robocop, robocop, dec0_state, robocop, ROT0, "Data East USA", "Robocop (US revision 0)", GAME_SUPPORTS_SAVE ) +GAME( 1989, hippodrm, 0, hippodrm, hippodrm, dec0_state, hippodrm, ROT0, "Data East USA", "Hippodrome (US)", GAME_SUPPORTS_SAVE ) +GAME( 1989, ffantasy, hippodrm, hippodrm, ffantasy, dec0_state, hippodrm, ROT0, "Data East Corporation", "Fighting Fantasy (Japan revision 2)", GAME_SUPPORTS_SAVE ) +GAME( 1989, ffantasya, hippodrm, hippodrm, ffantasy, dec0_state, hippodrm, ROT0, "Data East Corporation", "Fighting Fantasy (Japan)", GAME_SUPPORTS_SAVE ) +GAME( 1989, secretag, 0, slyspy, slyspy, dec0_state, slyspy, ROT0, "Data East Corporation", "Secret Agent (World revision 3)", GAME_SUPPORTS_SAVE ) +GAME( 1989, secretagj, secretag, slyspy, slyspy, dec0_state, slyspy, ROT0, "Data East Corporation", "Secret Agent (Japan revision 2)", GAME_SUPPORTS_SAVE ) +GAME( 1989, slyspy, secretag, slyspy, slyspy, dec0_state, slyspy, ROT0, "Data East USA", "Sly Spy (US revision 3)", GAME_SUPPORTS_SAVE ) +GAME( 1989, slyspy2, secretag, slyspy, slyspy, dec0_state, slyspy, ROT0, "Data East USA", "Sly Spy (US revision 2)", GAME_SUPPORTS_SAVE ) +GAME( 1989, midres, 0, midres, midres, driver_device, 0, ROT0, "Data East Corporation", "Midnight Resistance (World)", GAME_SUPPORTS_SAVE ) +GAME( 1989, midresu, midres, midres, midresu, driver_device, 0, ROT0, "Data East USA", "Midnight Resistance (US)", GAME_SUPPORTS_SAVE ) +GAME( 1989, midresj, midres, midres, midresu, driver_device, 0, ROT0, "Data East Corporation", "Midnight Resistance (Japan)", GAME_SUPPORTS_SAVE ) +GAME( 1990, bouldash, 0, slyspy, bouldash, dec0_state, slyspy, ROT0, "Data East Corporation (licensed from First Star)", "Boulder Dash / Boulder Dash Part 2 (World)", GAME_SUPPORTS_SAVE ) +GAME( 1990, bouldashj, bouldash, slyspy, bouldash, dec0_state, slyspy, ROT0, "Data East Corporation (licensed from First Star)", "Boulder Dash / Boulder Dash Part 2 (Japan)", GAME_SUPPORTS_SAVE ) // bootlegs // more or less just an unprotected versions of the game, everything intact -GAME( 1988, robocopb, robocop, robocopb, robocop, dec0_state, robocop, ROT0, "bootleg", "Robocop (World bootleg)", 0) -GAME( 1988, drgninjab, baddudes, baddudes, drgninja, dec0_state, baddudes, ROT0, "bootleg", "Dragonninja (bootleg)", 0 ) +GAME( 1988, robocopb, robocop, robocopb, robocop, dec0_state, robocop, ROT0, "bootleg", "Robocop (World bootleg)", GAME_SUPPORTS_SAVE ) +GAME( 1988, drgninjab, baddudes, baddudes, drgninja, dec0_state, baddudes, ROT0, "bootleg", "Dragonninja (bootleg)", GAME_SUPPORTS_SAVE ) // this is a common bootleg board -GAME( 1989, midresb, midres, midresb, midresb, dec0_state, midresb, ROT0, "bootleg", "Midnight Resistance (bootleg with 68705)", 0 ) // need to hook up 68705? -GAME( 1989, ffantasybl, hippodrm, ffantasybl, ffantasybl, dec0_state, ffantasybl, ROT0, "bootleg", "Fighting Fantasy (bootleg with 68705)", GAME_IMPERFECT_GRAPHICS ) // 68705 not dumped, might be the same as midresb +GAME( 1989, midresb, midres, midresb, midresb, dec0_state, midresb, ROT0, "bootleg", "Midnight Resistance (bootleg with 68705)", GAME_SUPPORTS_SAVE ) // need to hook up 68705? +GAME( 1989, ffantasybl, hippodrm, ffantasybl, ffantasybl, dec0_state, ffantasybl, ROT0, "bootleg", "Fighting Fantasy (bootleg with 68705)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // 68705 not dumped, might be the same as midresb /* A Bad Dudes bootleg with 68705 like the midres and ffantasy ones exists, but is not dumped */ // these are different to the above but quite similar to each other -GAME( 1988, automat, robocop, automat, robocop, dec0_state, robocop, ROT0, "bootleg", "Automat (bootleg of Robocop)", GAME_NOT_WORKING ) // sound rom / music from section z with mods for ADPCM? -GAME( 1989, secretab, secretag, secretab, slyspy, dec0_state, slyspy, ROT0, "bootleg", "Secret Agent (bootleg)", GAME_NOT_WORKING ) +GAME( 1988, automat, robocop, automat, robocop, dec0_state, robocop, ROT0, "bootleg", "Automat (bootleg of Robocop)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // sound rom / music from section z with mods for ADPCM? +GAME( 1989, secretab, secretag, secretab, slyspy, dec0_state, slyspy, ROT0, "bootleg", "Secret Agent (bootleg)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) diff --git a/src/mame/includes/dec0.h b/src/mame/includes/dec0.h index 3385a050fb4..27dd1de8554 100644 --- a/src/mame/includes/dec0.h +++ b/src/mame/includes/dec0.h @@ -8,22 +8,34 @@ class dec0_state : public driver_device public: dec0_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_ram(*this, "ram"), - m_spriteram(*this, "spriteram"), - m_paletteram(*this, "palette"), - m_robocop_shared_ram(*this, "robocop_shared"), - m_hippodrm_shared_ram(*this, "hippodrm_shared"), - m_tilegen1(*this, "tilegen1"), - m_tilegen2(*this, "tilegen2"), - m_tilegen3(*this, "tilegen3"), - m_spritegen(*this, "spritegen"), - m_pfprotect(*this, "pfprotect"), m_maincpu(*this, "maincpu"), m_audiocpu(*this, "audiocpu"), m_subcpu(*this, "sub"), m_mcu(*this, "mcu"), m_msm(*this, "msm"), - m_palette(*this, "palette") { } + m_palette(*this, "palette"), + m_tilegen1(*this, "tilegen1"), + m_tilegen2(*this, "tilegen2"), + m_tilegen3(*this, "tilegen3"), + m_spritegen(*this, "spritegen"), + m_pfprotect(*this, "pfprotect"), + m_ram(*this, "ram"), + m_spriteram(*this, "spriteram"), + m_paletteram(*this, "palette"), + m_robocop_shared_ram(*this, "robocop_shared"), + m_hippodrm_shared_ram(*this, "hippodrm_shared") { } + + required_device<cpu_device> m_maincpu; + required_device<cpu_device> m_audiocpu; + optional_device<cpu_device> m_subcpu; + optional_device<cpu_device> m_mcu; + optional_device<msm5205_device> m_msm; + required_device<palette_device> m_palette; + optional_device<deco_bac06_device> m_tilegen1; + optional_device<deco_bac06_device> m_tilegen2; + optional_device<deco_bac06_device> m_tilegen3; + optional_device<deco_mxc06_device> m_spritegen; + optional_device<address_map_bank_device> m_pfprotect; required_shared_ptr<UINT16> m_ram; required_shared_ptr<UINT16> m_spriteram; @@ -31,23 +43,16 @@ public: optional_shared_ptr<UINT8> m_robocop_shared_ram; optional_shared_ptr<UINT8> m_hippodrm_shared_ram; - optional_device<deco_bac06_device> m_tilegen1; - optional_device<deco_bac06_device> m_tilegen2; - optional_device<deco_bac06_device> m_tilegen3; - optional_device<deco_mxc06_device> m_spritegen; - - optional_device<address_map_bank_device> m_pfprotect; - - int m_GAME; + int m_game; int m_i8751_return; int m_i8751_command; int m_slyspy_state; int m_hippodrm_msb; int m_hippodrm_lsb; UINT8 m_i8751_ports[4]; - UINT16 *m_buffered_spriteram; UINT16 m_pri; + DECLARE_WRITE16_MEMBER(dec0_control_w); DECLARE_WRITE16_MEMBER(slyspy_control_w); DECLARE_WRITE16_MEMBER(midres_sound_w); @@ -70,7 +75,9 @@ public: DECLARE_WRITE16_MEMBER(dec0_update_sprites_w); DECLARE_WRITE16_MEMBER(dec0_priority_w); DECLARE_READ16_MEMBER(ffantasybl_242024_r); - DECLARE_READ16_MEMBER(ffantasybl_vblank_r); + DECLARE_WRITE_LINE_MEMBER(sound_irq); + DECLARE_WRITE_LINE_MEMBER(sound_irq2); + DECLARE_DRIVER_INIT(robocop); DECLARE_DRIVER_INIT(hippodrm); DECLARE_DRIVER_INIT(hbarrel); @@ -79,9 +86,12 @@ public: DECLARE_DRIVER_INIT(baddudes); DECLARE_DRIVER_INIT(midresb); DECLARE_DRIVER_INIT(ffantasybl); - DECLARE_VIDEO_START(dec0); + + virtual void machine_start(); DECLARE_MACHINE_RESET(slyspy); + DECLARE_VIDEO_START(dec0); DECLARE_VIDEO_START(dec0_nodma); + UINT32 screen_update_hbarrel(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_baddudes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_birdtry(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -89,19 +99,12 @@ public: UINT32 screen_update_hippodrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_slyspy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_midres(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void baddudes_i8751_write(int data); void birdtry_i8751_write(int data); void dec0_i8751_write(int data); void dec0_i8751_reset(); void h6280_decrypt(const char *cputag); - DECLARE_WRITE_LINE_MEMBER(sound_irq); - DECLARE_WRITE_LINE_MEMBER(sound_irq2); - required_device<cpu_device> m_maincpu; - required_device<cpu_device> m_audiocpu; - optional_device<cpu_device> m_subcpu; - optional_device<cpu_device> m_mcu; - optional_device<msm5205_device> m_msm; - required_device<palette_device> m_palette; }; @@ -114,6 +117,8 @@ public: UINT8 m_automat_adpcm_byte; int m_automat_msm5205_vclk_toggle; + UINT16 m_automat_scroll_regs[4]; + DECLARE_WRITE16_MEMBER(automat_control_w); DECLARE_WRITE8_MEMBER(automat_adpcm_w); DECLARE_READ16_MEMBER( automat_palette_r ); @@ -122,9 +127,10 @@ public: { COMBINE_DATA(&m_automat_scroll_regs[offset]); } - UINT16 m_automat_scroll_regs[4]; - + DECLARE_WRITE_LINE_MEMBER(automat_vclk_cb); + + virtual void machine_start(); + UINT32 screen_update_automat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_secretab(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - DECLARE_WRITE_LINE_MEMBER(automat_vclk_cb); }; diff --git a/src/mame/machine/dec0.c b/src/mame/machine/dec0.c index 3a64d88be0d..0b5476453a0 100644 --- a/src/mame/machine/dec0.c +++ b/src/mame/machine/dec0.c @@ -14,6 +14,13 @@ Data East machine functions - Bryan McPhail, mish@tendril.co.uk /******************************************************************************/ +void dec0_state::machine_start() +{ + save_item(NAME(m_i8751_return)); + save_item(NAME(m_i8751_command)); + save_item(NAME(m_i8751_ports)); +} + READ16_MEMBER(dec0_state::dec0_controls_r) { switch (offset<<1) @@ -294,9 +301,9 @@ void dec0_state::dec0_i8751_write(int data) m_i8751_command=data; /* Writes to this address cause an IRQ to the i8751 microcontroller */ - if (m_GAME == 1) m_mcu->set_input_line(MCS51_INT1_LINE, ASSERT_LINE); - if (m_GAME == 2) baddudes_i8751_write(data); - if (m_GAME == 3) birdtry_i8751_write(data); + if (m_game == 1) m_mcu->set_input_line(MCS51_INT1_LINE, ASSERT_LINE); + if (m_game == 2) baddudes_i8751_write(data); + if (m_game == 3) birdtry_i8751_write(data); //logerror("%s: warning - write %02x to i8751\n",machine().describe_context(),data); } @@ -357,6 +364,9 @@ DRIVER_INIT_MEMBER(dec0_state,hippodrm) RAM[0x1af] = 0x60; /* RTS prot area */ RAM[0x1db] = 0x60; /* RTS prot area */ RAM[0x21a] = 0x60; /* RTS prot area */ + + save_item(NAME(m_hippodrm_msb)); + save_item(NAME(m_hippodrm_lsb)); } DRIVER_INIT_MEMBER(dec0_state,slyspy) @@ -367,6 +377,8 @@ DRIVER_INIT_MEMBER(dec0_state,slyspy) /* Slyspy sound cpu has some protection */ RAM[0xf2d] = 0xea; RAM[0xf2e] = 0xea; + + save_item(NAME(m_slyspy_state)); } DRIVER_INIT_MEMBER(dec0_state,robocop) @@ -376,15 +388,15 @@ DRIVER_INIT_MEMBER(dec0_state,robocop) DRIVER_INIT_MEMBER(dec0_state,baddudes) { - m_GAME = 2; + m_game = 2; } DRIVER_INIT_MEMBER(dec0_state,hbarrel) { - m_GAME = 1; + m_game = 1; } DRIVER_INIT_MEMBER(dec0_state,birdtry) { - m_GAME=3; + m_game=3; } diff --git a/src/mame/video/dec0.c b/src/mame/video/dec0.c index 6faa77133ea..31039803277 100644 --- a/src/mame/video/dec0.c +++ b/src/mame/video/dec0.c @@ -339,14 +339,15 @@ WRITE16_MEMBER(dec0_state::dec0_priority_w) VIDEO_START_MEMBER(dec0_state,dec0_nodma) { save_item(NAME(m_pri)); - m_buffered_spriteram = m_spriteram; + save_pointer(NAME(m_buffered_spriteram), 0x800/2); } VIDEO_START_MEMBER(dec0_state,dec0) { - VIDEO_START_CALL_MEMBER(dec0_nodma); + save_item(NAME(m_pri)); m_buffered_spriteram = auto_alloc_array(machine(), UINT16, 0x800/2); + save_pointer(NAME(m_buffered_spriteram), 0x800/2); } /******************************************************************************/ diff --git a/src/mame/video/decbac06.c b/src/mame/video/decbac06.c index 3ac259a87b4..9d88d4145f4 100644 --- a/src/mame/video/decbac06.c +++ b/src/mame/video/decbac06.c @@ -116,9 +116,9 @@ void deco_bac06_device::device_start() save_pointer(NAME(m_pf_data), 0x4000/2); save_pointer(NAME(m_pf_rowscroll), 0x2000/2); save_pointer(NAME(m_pf_colscroll), 0x2000/2); - save_pointer(NAME(m_pf_control_0), 8); - save_pointer(NAME(m_pf_control_1), 8); - + save_item(NAME(m_pf_control_0)); + save_item(NAME(m_pf_control_1)); + save_item(NAME(m_gfxcolmask)); save_item(NAME(m_rambank)); } |