Previous 199869 Revisions Next

r20764 Wednesday 6th February, 2013 at 09:22:37 UTC by David Haywood
started looking at fruit fresh, looks straightforward enough (nw)
[src/mame]mame.lst mame.mak
[src/mame/drivers]fresh.c* goldstar.c
[src/mame/includes]goldstar.h

trunk/src/mame/includes/goldstar.h
r20763r20764
7979   DECLARE_READ8_MEMBER(fixedval74_r);
8080   DECLARE_READ8_MEMBER(fixedvale4_r);
8181   DECLARE_READ8_MEMBER(fixedvalc7_r);
82   DECLARE_READ8_MEMBER(fixedval7d_r);
8283   DECLARE_WRITE8_MEMBER(cm_girl_scroll_w);
8384   DECLARE_WRITE8_MEMBER(cm_outport0_w);
8485   DECLARE_WRITE8_MEMBER(goldstar_fg_vidram_w);
r20763r20764
123124   DECLARE_DRIVER_INIT(rp36c3);
124125   DECLARE_DRIVER_INIT(magoddsc);
125126   DECLARE_DRIVER_INIT(nfb96_c1);
127   DECLARE_DRIVER_INIT(fb2010);
126128   TILE_GET_INFO_MEMBER(get_goldstar_fg_tile_info);
127129   TILE_GET_INFO_MEMBER(get_magical_fg_tile_info);
128130   TILE_GET_INFO_MEMBER(get_cherrym_fg_tile_info);
trunk/src/mame/mame.mak
r20763r20764
17911791   $(DRIVERS)/flipjack.o \
17921792   $(DRIVERS)/flower.o $(AUDIO)/flower.o $(VIDEO)/flower.o \
17931793   $(DRIVERS)/fortecar.o \
1794   $(DRIVERS)/fresh.o \
17941795   $(DRIVERS)/freekick.o $(VIDEO)/freekick.o \
17951796   $(DRIVERS)/funkball.o \
17961797   $(DRIVERS)/galaxi.o \
trunk/src/mame/drivers/fresh.c
r0r20764
1
2/*
3
4fruit fresh by chain leisure electronic co., ltd.
5
6cpu 68000 xtal 24Mhz
7
84* 8 dipswitchs
9
102 jumpers HOP or SSR positions
11
12SW1 for reset?
13
142x Altera epm7064lc84
15
16rom 5 and 6 are prg roms
17
18*/
19
20#include "emu.h"
21#include "cpu/m68000/m68000.h"
22
23
24
25
26
27class fresh_state : public driver_device
28{
29public:
30   fresh_state(const machine_config &mconfig, device_type type, const char *tag)
31      : driver_device(mconfig, type, tag) ,
32      m_bg_videoram(*this, "bg_videoram"),
33      m_bg_videoram_2(*this, "bg_videoram_2"),
34      m_paletteram_1(*this, "paletteram_1"),
35      m_paletteram_2(*this, "paletteram_2")
36   
37   { }
38
39   tilemap_t *m_bg_tilemap;
40   tilemap_t *m_fg_tilemap;
41
42   required_shared_ptr<UINT16> m_bg_videoram;
43   required_shared_ptr<UINT16> m_bg_videoram_2;
44
45   required_shared_ptr<UINT16> m_paletteram_1;
46   required_shared_ptr<UINT16> m_paletteram_2;
47
48   DECLARE_WRITE16_MEMBER(fresh_bg_videoram_w);
49   TILE_GET_INFO_MEMBER(get_fresh_bg_tile_info);
50
51   DECLARE_READ16_MEMBER( unk_r )
52   {
53      return machine().rand();
54   }
55   DECLARE_READ16_MEMBER( unk2_r )
56   {
57      return 0x10;
58   }
59   
60
61   virtual void video_start();
62   UINT32 screen_update_fresh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
63};
64
65
66TILE_GET_INFO_MEMBER(fresh_state::get_fresh_bg_tile_info)
67{
68   int tileno;
69   tileno = m_bg_videoram[tile_index];
70   SET_TILE_INFO_MEMBER(2, tileno, 0, 0);
71}
72
73
74WRITE16_MEMBER(fresh_state::fresh_bg_videoram_w)
75{
76   COMBINE_DATA(&m_bg_videoram[offset]);
77   m_bg_tilemap->mark_tile_dirty(offset);
78}
79
80void fresh_state::video_start()
81{
82   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(fresh_state::get_fresh_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8,  64, 512);
83//   m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(fresh_state::get_fresh_fg_tile_info),this), TILEMAP_SCAN_ROWS, 4, 4, 128, 64);
84
85//   m_fg_tilemap->set_transparent_pen(255);
86}
87
88UINT32 fresh_state::screen_update_fresh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
89{
90   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
91//   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
92
93   return 0;
94}
95
96
97static ADDRESS_MAP_START( fresh_map, AS_PROGRAM, 16, fresh_state )
98   AM_RANGE(0x000000, 0x03ffff) AM_ROM
99
100   AM_RANGE(0xC00000, 0xC0ffff) AM_RAM
101   AM_RANGE(0xC10000, 0xC1ffff) AM_RAM
102   AM_RANGE(0xC20000, 0xC2ffff) AM_RAM_WRITE( fresh_bg_videoram_w ) AM_SHARE( "bg_videoram" )
103   AM_RANGE(0xC30000, 0xC3ffff) AM_RAM AM_SHARE("bg_videoram_2")
104
105
106   // written together
107   AM_RANGE(0xC40000, 0xC417ff) AM_RAM AM_SHARE( "paletteram_1" ) // 16-bit
108   AM_RANGE(0xC50000, 0xC517ff) AM_RAM AM_SHARE( "paletteram_2" ) // 8-bit
109
110   AM_RANGE(0xD40000, 0xD40001) AM_READ(unk_r)
111   AM_RANGE(0xD70000, 0xD70001) AM_READ(unk2_r)
112   AM_RANGE(0xF00000, 0xF0FFFF) AM_RAM
113
114   
115//   AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(fresh_bg_videoram_w) AM_SHARE("bg_videoram") // Background
116//   AM_RANGE(0x210000, 0x213fff) AM_RAM_WRITE(fresh_fg_videoram_w) AM_SHARE("fg_videoram") // Foreground
117//   AM_RANGE(0x220000, 0x2203ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
118//   AM_RANGE(0x230000, 0x230001) AM_WRITE(soundlatch_word_w)
119//   AM_RANGE(0x230100, 0x230101) AM_READ_PORT("DSW")
120//   AM_RANGE(0x230200, 0x230201) AM_READ_PORT("INPUTS")
121ADDRESS_MAP_END
122
123static INPUT_PORTS_START( fresh )
124INPUT_PORTS_END
125
126static const gfx_layout tiles8x8_layout =
127{
128   8,8,
129   RGN_FRAC(1,1),
130   8,
131   { 0,1, 2,3, 4,5,6,7 },
132   { 0, 8, 16, 24, 32, 40, 48, 56 },
133   { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64 },
134   64*8
135};
136
137
138static GFXDECODE_START( fresh )
139   GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 2 )
140   GFXDECODE_ENTRY( "gfx2", 0, tiles8x8_layout, 0, 2 )
141   GFXDECODE_ENTRY( "gfx3", 0, tiles8x8_layout, 0, 2 )
142   GFXDECODE_ENTRY( "gfx4", 0, tiles8x8_layout, 0, 2 )
143GFXDECODE_END
144
145static MACHINE_CONFIG_START( fresh, fresh_state )
146
147   /* basic machine hardware */
148   MCFG_CPU_ADD("maincpu", M68000, 24000000/2 )
149   MCFG_CPU_PROGRAM_MAP(fresh_map)
150   MCFG_CPU_VBLANK_INT_DRIVER("screen", fresh_state,  irq6_line_hold) // 4,5,6 valid
151
152   /* video hardware */
153   MCFG_SCREEN_ADD("screen", RASTER)
154   MCFG_SCREEN_REFRESH_RATE(60)
155   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
156   MCFG_SCREEN_SIZE(64*8, 32*8)
157   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
158   MCFG_SCREEN_UPDATE_DRIVER(fresh_state, screen_update_fresh)
159
160   MCFG_PALETTE_LENGTH(0x200)
161   MCFG_GFXDECODE(fresh)
162
163   /* sound hw? */
164MACHINE_CONFIG_END
165
166
167ROM_START( fresh )
168   ROM_REGION( 0x40000, "maincpu", 0 ) /* 68k */
169   ROM_LOAD16_BYTE( "fruit-fresh5.u44", 0x00001, 0x20000, CRC(cb37d3c5) SHA1(3b7797d475769d37ed1e9774df8d4b5899fb92a3) )
170   ROM_LOAD16_BYTE( "fruit-fresh6.u59", 0x00000, 0x20000, CRC(fc0290be) SHA1(02e3b3563b15ae585684a8f510f48a8c90b248fa) )
171
172   ROM_REGION( 0x80000, "gfx1", 0 )
173   ROM_LOAD( "fruit-fresh1.u18", 0x00000, 0x80000, CRC(ee77cdcd) SHA1(8e162640d23bd1b5a2ed9305cc4b9df1cb0f3e80) )
174   ROM_REGION( 0x80000, "gfx2", 0 )
175   ROM_LOAD( "fruit-fresh3.u19", 0x00000, 0x80000, CRC(80cc71b3) SHA1(89a2272266ccdbd01abbc85c1f8200fa9d8aa441) )
176   ROM_REGION( 0x80000, "gfx3", 0 )
177   ROM_LOAD( "fruit-fresh2.u45", 0x00000, 0x80000, CRC(8a06a1ab) SHA1(4bc020e4a031df995e6ebaf49d62989004092b60) )
178   ROM_REGION( 0x80000, "gfx4", 0 )
179   ROM_LOAD( "fruit-fresh4.u46", 0x00000, 0x80000, CRC(9b6c7571) SHA1(649cf3c50e2cd8c02f0f730e5ded59cf0ea37c37) )
180
181ROM_END
182
183
184
185
186GAME( 199?, fresh, 0, fresh, fresh, driver_device, 0, ROT0, "Chain Leisure", "Fruit Fresh", GAME_NOT_WORKING|GAME_NO_SOUND )
Property changes on: trunk/src/mame/drivers/fresh.c
Added: svn:eol-style
   + native
Added: svn:mime-type
   + text/plain
trunk/src/mame/drivers/goldstar.c
r20763r20764
99289928
99299929
99309930
9931ROM_START( fb2010 )
9932   ROM_REGION( 0x20000, "maincpu", 0 )
9933   ROM_LOAD( "fb2013r.bin", 0x00000, 0x1000, CRC(9cc75315) SHA1(f77fbce1037dbf38ddaa4ce79266d62e5cc7989e) )
9934   ROM_CONTINUE(0x4000, 0x1000)
9935   ROM_CONTINUE(0x3000, 0x1000)
9936   ROM_CONTINUE(0x7000, 0x1000)
9937   ROM_CONTINUE(0x1000, 0x1000)
9938   ROM_CONTINUE(0x6000, 0x1000)
9939   ROM_CONTINUE(0x2000, 0x1000)
9940   ROM_CONTINUE(0x5000, 0x1000)
9941   ROM_CONTINUE(0x8000, 0x1000)
9942   ROM_CONTINUE(0x9000, 0x1000)
9943   ROM_CONTINUE(0xa000, 0x1000)
9944   ROM_CONTINUE(0xb000, 0x1000)
9945   ROM_CONTINUE(0xc000, 0x1000)
9946   ROM_CONTINUE(0xd000, 0x1000)
9947   ROM_CONTINUE(0xe000, 0x1000)
9948   ROM_CONTINUE(0xf000, 0x1000)
9949   ROM_REGION( 0x20000, "graphics", 0 )
9950   ROM_LOAD( "gfx",  0x00000, 0x20000, NO_DUMP )
99319951
9952   ROM_REGION( 0x18000, "gfx1", 0 )
9953   ROM_COPY( "graphics", 0x18000, 0x00000, 0x4000 ) // 1
9954   ROM_COPY( "graphics", 0x08000, 0x08000, 0x4000 ) // 1
9955   ROM_COPY( "graphics", 0x04000, 0x10000, 0x4000 ) // 1
9956   ROM_COPY( "graphics", 0x1c000, 0x04000, 0x4000 ) // 2
9957   ROM_COPY( "graphics", 0x0c000, 0x0c000, 0x4000 ) // 2
9958   ROM_COPY( "graphics", 0x14000, 0x14000, 0x4000 ) // 2
9959
9960   ROM_REGION( 0x8000, "gfx2", 0 )
9961   ROM_COPY( "graphics", 0x02000, 0x00000, 0x2000 )
9962   ROM_COPY( "graphics", 0x12000, 0x02000, 0x2000 )
9963   ROM_COPY( "graphics", 0x00000, 0x04000, 0x2000 )
9964   ROM_COPY( "graphics", 0x10000, 0x06000, 0x2000 )
9965
9966   ROM_REGION( 0x200, "proms", 0 ) // palette
9967   ROM_LOAD( "proms", 0x0000, 0x0200, NO_DUMP )
9968
9969   ROM_REGION( 0x80000, "oki", 0 ) // samples
9970   ROM_LOAD( "samples", 0x00000, 0x20000, NO_DUMP )
9971ROM_END
9972
9973
9974READ8_MEMBER(goldstar_state::fixedval7d_r )
9975{
9976   return ~0x7d;
9977}
9978
9979
9980DRIVER_INIT_MEMBER(goldstar_state,fb2010)
9981{
9982   int i;
9983   UINT8 *ROM = machine().root_device().memregion("maincpu")->base();
9984   for (i = 0;i < 0x10000;i++)
9985   {
9986      UINT8 x = ROM[i];
9987
9988      switch(i & 0x22)
9989      {
9990         case 0x00: x = BITSWAP8(x^0x4c^0xff, 0,4,7,6,5,1,3,2); break;
9991         case 0x02: x = BITSWAP8(x^0xc0^0xff, 7,6,0,5,3,2,1,4); break; //   67053214
9992         case 0x20: x = BITSWAP8(x^0x6b^0xff, 4,3,2,7,5,6,0,1); break;
9993         case 0x22: x = BITSWAP8(x^0x23^0xff, 0,6,1,3,4,5,2,7); break;
9994      }
9995
9996      ROM[i] = x;
9997   }
9998
9999   machine().device("maincpu")->memory().space(AS_IO).install_read_handler(0x1e, 0x1e, read8_delegate(FUNC(goldstar_state::fixedval7d_r),this));
10000
10001}
10002
10003
10004
10005
993210006/* descrambled by looking at CALLs
993310007
9934100080000 -> 0000
r20763r20764
1154311617GAME( 1997, pokonl97,  0,        amcoe1,   pokonl97,  goldstar_state, po33,      ROT0, "Amcoe",   "Poker Only '97 (ver. 3.3)",                                        0 )   /* ver. 3.3 */
1154411618GAME( 1998, match98,   0,        amcoe1a,  match98,   goldstar_state, match133,  ROT0, "Amcoe",   "Match '98 (ver. 1.33)",                                 0 )
1154511619
11620
1154611621/* The Sub-PCB has a printed sticker denoting C1, C2, D or DK for the type of FPGA decryption chip used */
1154711622/* There is known to be a special IOWA version running on the Texas C2 hardware with roms FB96P IA, FB96L IA & FB96H IA with a (c) 2000 Amcoe */
1154811623GAME( 1996, nfb96,     0,        amcoe2,   nfb96,     goldstar_state, nfb96_c1,  ROT0, "Amcoe",   "New Fruit Bonus '96 Special Edition (v3.63, C1 PCB)",          0 ) /* ver. 02-3.63 C1 Sub-PCB */
r20763r20764
1155711632GAME( 1996, nc96c,     nc96,     amcoe2,   nfb96,     goldstar_state, nfb96_dk,  ROT0, "Amcoe",   "New Cherry '96 Special Edition (v3.62, DK PCB)",          0 ) /* DK Sub-PCB */
1155811633GAME( 2000, nc96txt,   nc96,     amcoe2,   nfb96tx,   goldstar_state, nfb96_c2,  ROT0, "Amcoe",   "New Cherry '96 Special Edition (v1.32 Texas XT, C2 PCB)", 0 ) /* ver. tc1.32axt C2 Sub-PCB */
1155911634
11635GAME( 2009, fb2010,    skill98,  amcoe2,   nfb96tx,   goldstar_state, fb2010,    ROT0, "Amcoe",   "Fruit Bonus 2010", GAME_NOT_WORKING ) // no gfx dumped
11636
1156011637GAME( 1996, roypok96,  0,        amcoe2,   roypok96,  goldstar_state, rp35,      ROT0, "Amcoe",   "Royal Poker '96 (set 1)",                                 0 ) /* ver. 97-3.5 */
1156111638GAME( 1996, roypok96a, roypok96, amcoe2,   roypok96a, goldstar_state, rp36,      ROT0, "Amcoe",   "Royal Poker '96 (set 2)",                                 0 ) /* ver. 98-3.6 */
1156211639GAME( 1996, roypok96b, roypok96, amcoe2,   roypok96a, goldstar_state, rp36c3,    ROT0, "Amcoe",   "Royal Poker '96 (set 3)",                                 0 ) /* ver. 98-3.6 ??? */
trunk/src/mame/mame.lst
r20763r20764
98489848majorpkr        // (c) 1994 PAL System.
98499849su2000          // (c) 1993 Virtuality
98509850boonggab        // (c) 2001 Taff System
9851fresh         // (c) Chain Leisure
98519852
98529853// Success
98539854tonton          // (c) 199? Success / Taiyo Jidoki.
r20763r20764
1070010701nfb96b          // (c) 1996 Amcoe
1070110702nfb96c          // (c) 1996 Amcoe
1070210703nfb96txt        // (c) 2000 Amcoe
10704fb2010         // (c) 2009 Amcoe
1070310705nfb96se         // bootleg
1070410706nfb96sea        // bootleg
1070510707nfb96seb        // bootleg

Previous 199869 Revisions Next


© 1997-2024 The MAME Team