Previous 199869 Revisions Next

r18541 Monday 15th October, 2012 at 19:05:33 UTC by Wilbert Pol
(MESS) gameboy.c: Partially implemented banking for Story of La Sa Ma.  [Wilbert Pol]
[src/mess/includes]gb.h
[src/mess/machine]gb.c

trunk/src/mess/machine/gb.c
r18540r18541
44
55  Machine file to handle emulation of the Nintendo Game Boy.
66
7Cardridge port pinouts:
8Pin  Name     Description
91    VCC      +5 VDC
102    PHI      CPU clock ?
113    /WR      Write
124    /RD      Read
135    /CS      SRAM select
146    A0       Address 0
157    A1       Address 1
168    A2       Address 2
179    A3       Address 3
1810   A4       Address 4
1911   A5       Address 5
2012   A6       Address 6
2113   A7       Address 7
2214   A8       Address 8
2315   A9       Address 9
2416   A10      Address 10
2517   A11      Address 11
2618   A12      Address 12
2719   A13      Address 13
2820   A14      Address 14
2921   A15      Address 15
3022   D0       Data 0
3123   D1       Data 1
3224   D2       Data 2
3325   D3       Data 3
3426   D4       Data 4
3527   D5       Data 5
3628   D6       Data 6
3729   D7       Data 7
3830   /RST     Reset
3931   AUDIOIN  Never used ?
4032   GND      Ground
41
42
743TODO:
844- YongYong mapper:
945  - During start there are 2 writes to 5000 and 5003, it is still unknown what these do.
1046- Story of La Sa Ma mapper:
11  - Does this display Nintendo or Gowin logo on boot?
12  - No clue how the banking works yet
47  - This should display the Gowin logo on boot on both DMG and CGB (Not implemented yet)
1348- ATV Racing/Rocket Games mapper:
1449  - How did this overlay the official Nintendo logo at BIOS check time? (Some Sachen titles use a similar trick)
1550
r18540r18541
95130
96131
97132static void gb_machine_stop(running_machine &machine);
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121133static void gb_timer_increment( running_machine &machine );
122134
123135#ifdef MAME_DEBUG
r18540r18541
249261         //space.install_write_handler( 0x5000, 0x5003, write8_delegate(FUNC(gb_state::gb_rom_back_yongyong_5000),state) );
250262         break;
251263      case MBC_LASAMA:
264         space.install_write_handler( 0x2080, 0x2080, write8_delegate(FUNC(gb_state::gb_rom_bank_lasama_2080),state) );
265         space.install_write_handler( 0x6000, 0x6000, write8_delegate(FUNC(gb_state::gb_rom_bank_lasama_6000),state) );
252266         break;
253267      case MBC_ATVRACIN:
254268         space.install_write_handler( 0x3F00, 0x3F00, write8_delegate(FUNC(gb_state::gb_rom_bank_atvracin_3f00),state) );
r18540r18541
802816   gb_rom16_4000( machine(), m_ROMMap[m_ROMBank] );
803817}
804818
819WRITE8_MEMBER(gb_state::gb_rom_bank_lasama_2080)
820{
821   // Actual banking?
822   m_ROMBank = m_ROMBank00 | ( data & 0x03 );
823   gb_rom16_4000( machine(), m_ROMMap[m_ROMBank] );
824}
825
826WRITE8_MEMBER(gb_state::gb_rom_bank_lasama_6000)
827{
828   // On boot the following two get written right after each other:
829   // 02
830   // BE
831   // Disable logo switching?
832   if ( ! ( data & 0x80 ) )
833   {
834      m_ROMBank00 = ( data & 0x02 ) << 1;
835      gb_rom16_0000( machine(), m_ROMMap[m_ROMBank00] );
836   }
837}
838
805839WRITE8_MEMBER(gb_state::gb_rom_bank_atvracin_3f00)
806840{
807841   if ( data == 0 )
trunk/src/mess/includes/gb.h
r18540r18541
206206   DECLARE_WRITE8_MEMBER(gb_ram_bank_select_mbc1_kor);
207207   DECLARE_WRITE8_MEMBER(gb_mem_mode_select_mbc1_kor);
208208   DECLARE_WRITE8_MEMBER(gb_rom_bank_yongyong_2000);
209   DECLARE_WRITE8_MEMBER(gb_rom_bank_lasama_6000);
210   DECLARE_WRITE8_MEMBER(gb_rom_bank_lasama_2080);
209211   DECLARE_WRITE8_MEMBER(gb_rom_bank_atvracin_3f00);
210212   DECLARE_WRITE8_MEMBER(gb_rom_bank_atvracin_3fc0);
211213   DECLARE_WRITE8_MEMBER(gb_io_w);

Previous 199869 Revisions Next


© 1997-2024 The MAME Team