trunk/src/mame/drivers/suna8.c
| r244687 | r244688 | |
| 678 | 678 | ---- ---0 Palette RAM Bank |
| 679 | 679 | |
| 680 | 680 | |
| 681 | | C0A0: Sound Latch (optionally scrambled) |
| 681 | C0A0: Sound Latch |
| 682 | 682 | |
| 683 | 683 | |
| 684 | 684 | C0A0: 7654 3--- |
| r244687 | r244688 | |
| 699 | 699 | } |
| 700 | 700 | else if ((m_protection_val & 0xfc) == 0x90) |
| 701 | 701 | { |
| 702 | | /* |
| 703 | | 0d brick hit NO! 25? |
| 704 | | 2c side wall hit OK |
| 705 | | 3b paddle hit OK |
| 706 | | 44 death OK? |
| 707 | | 53 death OK? |
| 708 | | 56 coin in OK? |
| 709 | | 70 monster hit NO? 58? |
| 710 | | */ |
| 711 | | UINT8 remap = (m_remap_sound ? BITSWAP8(data, 7,6,3,4,5,2,1,0) : data); |
| 702 | soundlatch_byte_w(space, 0, data); |
| 712 | 703 | |
| 713 | | soundlatch_byte_w(space, 0, remap); |
| 714 | | |
| 715 | | logerror("CPU #0 - PC %04X: soundlatch = %02X (->%02X)\n",space.device().safe_pc(),data,remap); |
| 704 | logerror("CPU #0 - PC %04X: soundlatch = %02X\n",space.device().safe_pc(),data); |
| 716 | 705 | } |
| 717 | 706 | else if (protselect == 0x04) |
| 718 | 707 | { |
| r244687 | r244688 | |
| 785 | 774 | else |
| 786 | 775 | space.install_ram(0xc800, 0xdfff, m_wram); |
| 787 | 776 | |
| 788 | | m_remap_sound = ((m_prot2 ^ data) == 0xf8) ? 1 : 0; |
| 789 | | |
| 790 | 777 | // Select alternate data decryption, see code at 787e: |
| 791 | 778 | membank("bank1")->set_entry((membank("bank1")->entry() & 0x0f) + ((m_prot2 == (data | 0xdc)) ? 0x10 : 0)); |
| 792 | 779 | |
| r244687 | r244688 | |
| 1540 | 1527 | |
| 1541 | 1528 | INPUT_PORTS_END |
| 1542 | 1529 | |
| 1543 | | static INPUT_PORTS_START( brickznv6 ) |
| 1544 | | PORT_INCLUDE(brickzn) |
| 1545 | 1530 | |
| 1546 | | PORT_MODIFY("DSW2") // DSW 2 - $c103 |
| 1547 | | PORT_DIPNAME( 0x18, 0x10, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:4,5") |
| 1548 | | PORT_DIPSETTING( 0x18, "None" ) |
| 1549 | | PORT_DIPSETTING( 0x10, "10K" ) |
| 1550 | | PORT_DIPSETTING( 0x08, "30K" ) |
| 1551 | | PORT_DIPSETTING( 0x00, "50K" ) |
| 1552 | | PORT_DIPNAME( 0x20, 0x20, "Display" ) PORT_DIPLOCATION("SW2:6") |
| 1553 | | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 1554 | | PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) |
| 1555 | | INPUT_PORTS_END |
| 1556 | | |
| 1557 | 1531 | /*************************************************************************** |
| 1558 | 1532 | Hard Head 2 |
| 1559 | 1533 | ***************************************************************************/ |
| r244687 | r244688 | |
| 1943 | 1917 | MACHINE_RESET_MEMBER(suna8_state,brickzn) |
| 1944 | 1918 | { |
| 1945 | 1919 | m_protection_val = m_prot2 = m_prot2_prev = 0xff; |
| 1946 | | m_remap_sound = 0; |
| 1947 | 1920 | membank("bank1")->set_entry(0); |
| 1948 | 1921 | } |
| 1949 | 1922 | |
| r244687 | r244688 | |
| 1955 | 1928 | MCFG_CPU_IO_MAP(brickzn_io_map) |
| 1956 | 1929 | MCFG_CPU_VBLANK_INT_DRIVER("screen", suna8_state, irq0_line_hold) // nmi breaks ramtest but is needed! |
| 1957 | 1930 | |
| 1958 | | MCFG_CPU_ADD("audiocpu", Z80, SUNA8_MASTER_CLOCK / 8) /* Z0840006PSC - 3MHz better matches the tempo in the video */ |
| 1931 | MCFG_CPU_ADD("audiocpu", Z80, SUNA8_MASTER_CLOCK / 4) /* Z0840006PSC */ |
| 1959 | 1932 | MCFG_CPU_PROGRAM_MAP(brickzn_sound_map) |
| 1960 | 1933 | |
| 1961 | 1934 | MCFG_CPU_ADD("pcm", Z80, SUNA8_MASTER_CLOCK / 4) /* Z0840006PSC */ |
| r244687 | r244688 | |
| 2909 | 2882 | GAME( 1991, hardhea2, 0, hardhea2, hardhea2, suna8_state, hardhea2, ROT0, "SunA", "Hard Head 2 (v2.0)", 0 ) |
| 2910 | 2883 | |
| 2911 | 2884 | // is meant to sound like this https://www.youtube.com/watch?v=yfU1C7A3iZI (recorded from v6.0, Joystick version) |
| 2912 | | GAME( 1992, brickzn, 0, brickzn, brickznv6,suna8_state, brickzn, ROT90, "SunA", "Brick Zone (v6.0, Joystick)", 0 ) |
| 2913 | | GAME( 1992, brickznv5, brickzn, brickzn, brickzn, suna8_state, brickznv5, ROT90, "SunA", "Brick Zone (v5.0, Joystick)", 0 ) |
| 2914 | | GAME( 1992, brickznv4, brickzn, brickzn, brickzn, suna8_state, brickznv4, ROT90, "SunA", "Brick Zone (v4.0, Spinner)", 0 ) |
| 2915 | | GAME( 1992, brickzn11, brickzn, brickzn, brickzn, suna8_state, brickzn11, ROT90, "SunA", "Brick Zone (v1.1)", GAME_NOT_WORKING ) |
| 2885 | GAME( 1992, brickzn, 0, brickzn, brickzn, suna8_state, brickzn, ROT90, "SunA", "Brick Zone (v6.0, Joystick)", GAME_IMPERFECT_SOUND ) |
| 2886 | GAME( 1992, brickznv5, brickzn, brickzn, brickzn, suna8_state, brickznv5, ROT90, "SunA", "Brick Zone (v5.0, Joystick)", GAME_IMPERFECT_SOUND ) |
| 2887 | GAME( 1992, brickznv4, brickzn, brickzn, brickzn, suna8_state, brickznv4, ROT90, "SunA", "Brick Zone (v4.0, Spinner)", GAME_IMPERFECT_SOUND ) |
| 2888 | GAME( 1992, brickzn11, brickzn, brickzn, brickzn, suna8_state, brickzn11, ROT90, "SunA", "Brick Zone (v1.1)", GAME_NOT_WORKING ) |
trunk/src/osd/sdl/window.c
| r244687 | r244688 | |
| 285 | 285 | NULL |
| 286 | 286 | }; |
| 287 | 287 | |
| 288 | | |
| 289 | 288 | osd_printf_verbose("\nHints:\n"); |
| 290 | 289 | for (int i = 0; hints[i] != NULL; i++) |
| 291 | 290 | osd_printf_verbose("\t%-40s %s\n", hints[i], SDL_GetHint(hints[i])); |
| r244687 | r244688 | |
| 551 | 550 | } |
| 552 | 551 | |
| 553 | 552 | window->renderer().destroy(); |
| 553 | global_free(window->m_renderer); |
| 554 | window->m_renderer = NULL; |
| 554 | 555 | |
| 555 | 556 | #if (SDLMAME_SDL2) |
| 556 | 557 | bool is_osx = false; |
| r244687 | r244688 | |
| 576 | 577 | |
| 577 | 578 | sdlinput_release_keys(); |
| 578 | 579 | |
| 580 | window->set_renderer(draw.create(window)); |
| 581 | |
| 579 | 582 | // toggle the window mode |
| 580 | 583 | window->set_fullscreen(!window->fullscreen()); |
| 581 | 584 | |
| r244687 | r244688 | |
| 851 | 854 | int i; |
| 852 | 855 | int num; |
| 853 | 856 | float size_score, best_score = 0.0f; |
| 857 | osd_dim ret(0,0); |
| 854 | 858 | |
| 855 | 859 | // determine the minimum width/height for the selected target |
| 856 | 860 | m_target->compute_minimum_size(minimum_width, minimum_height); |
| r244687 | r244688 | |
| 905 | 909 | if (size_score > best_score) |
| 906 | 910 | { |
| 907 | 911 | best_score = size_score; |
| 908 | | return osd_dim(mode.w, mode.h); |
| 912 | ret = osd_dim(mode.w, mode.h); |
| 909 | 913 | } |
| 910 | 914 | |
| 911 | 915 | } |
| 912 | 916 | } |
| 913 | | return osd_dim(0,0); // please compiler |
| 917 | return ret; |
| 914 | 918 | } |
| 915 | 919 | #else |
| 916 | 920 | osd_dim sdl_window_info::pick_best_mode() |
| r244687 | r244688 | |
| 1083 | 1087 | ASSERT_WINDOW_THREAD(); |
| 1084 | 1088 | osd_free(wp); |
| 1085 | 1089 | |
| 1090 | // clear out original mode. Needed on OSX |
| 1086 | 1091 | if (window->fullscreen()) |
| 1087 | 1092 | { |
| 1088 | 1093 | // default to the current mode exactly |
| r244687 | r244688 | |
| 1146 | 1151 | else |
| 1147 | 1152 | window->m_extra_flags = 0; |
| 1148 | 1153 | |
| 1154 | #ifdef SDLMAME_MACOSX |
| 1155 | /* FIMXE: On OSX, SDL_WINDOW_FULLSCREEN_DESKTOP seems to be more reliable. |
| 1156 | * It however creates issues with white borders, i.e. the screen clear |
| 1157 | * does not work. This happens both with opengl and accel. |
| 1158 | */ |
| 1159 | #endif |
| 1160 | |
| 1149 | 1161 | // create the SDL window |
| 1150 | 1162 | // soft driver also used | SDL_WINDOW_INPUT_GRABBED | SDL_WINDOW_MOUSE_FOCUS |
| 1151 | 1163 | window->m_extra_flags |= (window->fullscreen() ? |
| 1152 | | SDL_WINDOW_BORDERLESS | SDL_WINDOW_INPUT_FOCUS | SDL_WINDOW_FULLSCREEN : SDL_WINDOW_RESIZABLE); |
| 1164 | /*SDL_WINDOW_BORDERLESS |*/ SDL_WINDOW_INPUT_FOCUS | SDL_WINDOW_FULLSCREEN : SDL_WINDOW_RESIZABLE); |
| 1153 | 1165 | |
| 1154 | 1166 | #if defined(SDLMAME_WIN32) |
| 1155 | 1167 | SDL_SetHint(SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS, "0"); |
| r244687 | r244688 | |
| 1198 | 1210 | // show window |
| 1199 | 1211 | |
| 1200 | 1212 | SDL_ShowWindow(window->sdl_window()); |
| 1201 | | //SDL_SetWindowFullscreen(window().sdl_window(), window().fullscreen); |
| 1213 | //SDL_SetWindowFullscreen(window->sdl_window(), 0); |
| 1214 | //SDL_SetWindowFullscreen(window->sdl_window(), window->fullscreen()); |
| 1202 | 1215 | SDL_RaiseWindow(window->sdl_window()); |
| 1203 | 1216 | |
| 1204 | 1217 | #ifdef SDLMAME_WIN32 |