1 /******************************************************************************/
2 /* Mednafen Fast SNES Emulation Module                                        */
3 /******************************************************************************/
4 /* cart-private.h:
5 **  Copyright (C) 2019 Mednafen Team
6 **
7 ** This program is free software; you can redistribute it and/or
8 ** modify it under the terms of the GNU General Public License
9 ** as published by the Free Software Foundation; either version 2
10 ** of the License, or (at your option) any later version.
11 **
12 ** This program is distributed in the hope that it will be useful,
13 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
14 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 ** GNU General Public License for more details.
16 **
17 ** You should have received a copy of the GNU General Public License
18 ** along with this program; if not, write to the Free Software Foundation, Inc.,
19 ** 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
20 */
21 
22 #ifndef __MDFN_SNES_FAUST_CART_PRIVATE_H
23 #define __MDFN_SNES_FAUST_CART_PRIVATE_H
24 
25 namespace MDFN_IEN_SNES_FAUST
26 {
27 
28 enum
29 {
30  ROM_LAYOUT_LOROM = 0,
31  ROM_LAYOUT_HIROM,
32  ROM_LAYOUT_EXLOROM,
33  ROM_LAYOUT_EXHIROM,
34 
35  ROM_LAYOUT_INVALID = 0xFFFFFFFF
36 };
37 
38 struct CartInfo
39 {
40  void (*Reset)(bool powering_up);
41  void (*Kill)(void);
42 
43  void (*StateAction)(StateMem* sm, const unsigned load, const bool data_only);
44 
45  void (*AdjustTS)(const int32 delta);
46 
47  snes_event_handler EventHandler;
48  //
49  //
50  //
51  uint8* RAM;
52  size_t RAM_Mask;
53  size_t RAM_Size;
54 
55  size_t ROM_Size;
56  unsigned ROMLayout;
57  //
58  uint8 ROM[8192 * 1024];
59 };
60 
61  MDFN_HIDE extern CartInfo Cart;
62 }
63 
64 #endif
65