src/mess/machine/sms.c
| r777 | r778 | |
| 492 | 492 | if ( sms_cartridge[sms_current_cartridge].features & CF_CODEMASTERS_MAPPER ) { |
| 493 | 493 | sms_cartridge[sms_current_cartridge].cartRAM[sms_cartridge[sms_current_cartridge].ram_page * 0x2000 + offset] = data; |
| 494 | 494 | } |
| 495 | if ( sms_cartridge[sms_current_cartridge].features & CF_KOREAN_MAPPER && offset == 0 ) { /* Dodgeball King mapper */ |
| 496 | UINT8 rom_page_count = sms_cartridge[sms_current_cartridge].size / 0x4000; |
| 497 | int page = (rom_page_count > 0) ? data % rom_page_count : 0; |
| 498 | if ( ! sms_cartridge[sms_current_cartridge].ROM ) |
| 499 | return; |
| 500 | sms_banking_cart[4] = sms_cartridge[sms_current_cartridge].ROM + page * 0x4000; |
| 501 | memory_set_bankptr( 4, sms_banking_cart[4] ); |
| 502 | memory_set_bankptr( 5, sms_banking_cart[4] + 0x2000 ); |
| 503 | #ifdef LOG_PAGING |
| 504 | logerror("rom 2 paged in %x dodgeball king.\n", page); |
| 505 | #endif |
| 506 | } |
| 495 | 507 | } |
| 496 | 508 | |
| 497 | 509 | WRITE8_HANDLER(sms_cartram_w) { |
| r777 | r778 | |
| 516 | 528 | #ifdef LOG_PAGING |
| 517 | 529 | logerror("rom 2 paged in %x codemasters.\n", page); |
| 518 | 530 | #endif |
| 519 | | } else if ( sms_cartridge[sms_current_cartridge].features & CF_KOREAN_MAPPER && offset == 0x2000 ) { /* Dodgeball King mapper */ |
| 520 | | UINT8 rom_page_count = sms_cartridge[sms_current_cartridge].size / 0x4000; |
| 521 | | page = (rom_page_count > 0) ? data % rom_page_count : 0; |
| 522 | | if ( ! sms_cartridge[sms_current_cartridge].ROM ) |
| 523 | | return; |
| 524 | | sms_banking_cart[4] = sms_cartridge[sms_current_cartridge].ROM + page * 0x4000; |
| 525 | | memory_set_bankptr( 4, sms_banking_cart[4] ); |
| 526 | | memory_set_bankptr( 5, sms_banking_cart[4] + 0x2000 ); |
| 527 | | #ifdef LOG_PAGING |
| 528 | | logerror("rom 2 paged in %x dodgeball king.\n", page); |
| 529 | | #endif |
| 530 | 531 | } else if ( sms_cartridge[sms_current_cartridge].features & CF_ONCART_RAM ) { |
| 531 | 532 | sms_cartridge[sms_current_cartridge].cartRAM[offset & ( sms_cartridge[sms_current_cartridge].ram_size - 1 ) ] = data; |
| 532 | 533 | } else { |