diff --git a/src/burn/drv/sega/d_sys18.cpp b/src/burn/drv/sega/d_sys18.cpp index 55faf37ff..9e1dcabb3 100644 --- a/src/burn/drv/sega/d_sys18.cpp +++ b/src/burn/drv/sega/d_sys18.cpp @@ -1938,21 +1938,15 @@ UINT8 __fastcall HamawayReadByte(UINT32 a) return io_chip_r((a - 0xa00000) >> 1); } - switch (a) { - - } - - bprintf(PRINT_NORMAL, _T("68000 Read Byte -> 0x%06X\n"), a); return 0xff; } UINT16 __fastcall HamawayReadWord(UINT32 a) { - switch (a) { - + if (a >= 0xc00000 && a <= 0xc0000f) { + return GenesisVDPRead((a - 0xc00000) >> 1); } - bprintf(PRINT_NORMAL, _T("68000 Read Word -> 0x%06X\n"), a); return 0xffff; } @@ -1996,8 +1990,6 @@ void __fastcall HamawayWriteByte(UINT32 a, UINT8 d) return; } } - - bprintf(PRINT_NORMAL, _T("68000 Write Byte -> 0x%06X, 0x%02X\n"), a, d); } void __fastcall HamawayWriteWord(UINT32 a, UINT16 d) @@ -2018,45 +2010,6 @@ void __fastcall HamawayWriteWord(UINT32 a, UINT16 d) return; } } - - bprintf(PRINT_NORMAL, _T("68000 Write Word -> 0x%06X, 0x%04X\n"), a, d); -} - -void HamawayMap68K() -{ - SekInit(0, 0x68000); - SekOpen(0); - SekMapMemory(System16Rom , 0x000000, 0x07ffff, SM_READ); - SekMapMemory(System16Code , 0x000000, 0x07ffff, SM_FETCH); - SekMapMemory(System16Rom + 0x80000 , 0x200000, 0x27ffff, SM_READ); - SekMapMemory(System16Code + 0x80000, 0x200000, 0x27ffff, SM_FETCH); - SekMapMemory(System16TileRam , 0x400000, 0x40ffff, SM_READ); - SekMapMemory(System16TextRam , 0x410000, 0x410fff, SM_RAM); - SekMapMemory(System16SpriteRam , 0x500000, 0x5007ff, SM_RAM); - SekMapMemory(System16PaletteRam , 0x840000, 0x840fff, SM_RAM); - SekMapMemory(System16Ram , 0xffc000, 0xffffff, SM_RAM); - SekSetReadByteHandler(0, HamawayReadByte); - SekSetReadWordHandler(0, HamawayReadWord); - SekSetWriteByteHandler(0, HamawayWriteByte); - SekSetWriteWordHandler(0, HamawayWriteWord); - SekClose(); -} - -static INT32 HamawayInit() -{ - System16Map68KDo = HamawayMap68K; - - INT32 nRet = System16Init(); - -/* if (!nRet) { - SekOpen(0); - SekMapHandler(1, 0xa43000, 0xa4300e, SM_RAM); - SekSetReadByteHandler(1, WwallyReadByte); - SekSetWriteWordHandler(1, WwallyWriteWord); - SekClose(); - }*/ - - return nRet; } UINT8 LghostValue; @@ -2487,6 +2440,33 @@ static INT32 DdcrewuInit() return nRet; } +static void HamawayMap68K() +{ + SekInit(0, 0x68000); + SekOpen(0); + SekMapMemory(System16Rom , 0x000000, 0x07ffff, SM_READ); + SekMapMemory(System16Code , 0x000000, 0x07ffff, SM_FETCH); + SekMapMemory(System16Rom + 0x80000 , 0x200000, 0x27ffff, SM_READ); + SekMapMemory(System16Code + 0x80000, 0x200000, 0x27ffff, SM_FETCH); + SekMapMemory(System16TileRam , 0x400000, 0x40ffff, SM_READ); + SekMapMemory(System16TextRam , 0x410000, 0x410fff, SM_RAM); + SekMapMemory(System16SpriteRam , 0x500000, 0x5007ff, SM_RAM); + SekMapMemory(System16PaletteRam , 0x840000, 0x840fff, SM_RAM); + SekMapMemory(System16Ram , 0xffc000, 0xffffff, SM_RAM); + SekSetReadByteHandler(0, HamawayReadByte); + SekSetReadWordHandler(0, HamawayReadWord); + SekSetWriteByteHandler(0, HamawayWriteByte); + SekSetWriteWordHandler(0, HamawayWriteWord); + SekClose(); +} + +static INT32 HamawayInit() +{ + System16Map68KDo = HamawayMap68K; + + return System16Init(); +} + static INT32 LghostInit() { BurnGunInit(3, true); @@ -2825,11 +2805,11 @@ struct BurnDriver BurnDrvDesertbrj = { NULL, 0x1800, 224, 320, 3, 4 }; -struct BurnDriverD BurnDrvHamaway = { +struct BurnDriver BurnDrvHamaway = { "hamaway", NULL, NULL, NULL, "1992", "Hammer Away (prototype)\0", NULL, "Sega / Santos", "System 18", NULL, NULL, NULL, NULL, - BDF_PROTOTYPE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_SEGA_SYSTEM18, GBF_PUZZLE, 0, + BDF_GAME_WORKING | BDF_PROTOTYPE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_SEGA_SYSTEM18, GBF_PUZZLE, 0, NULL, HamawayRomInfo, HamawayRomName, NULL, NULL, System18InputInfo, HamawayDIPInfo, HamawayInit, WwallyExit, System18Frame, NULL, WwallyScan, NULL, 0x1800, 224, 320, 3, 4 diff --git a/src/burn/drv/sega/sys16_gfx.cpp b/src/burn/drv/sega/sys16_gfx.cpp index f1dc124c5..917228d19 100644 --- a/src/burn/drv/sega/sys16_gfx.cpp +++ b/src/burn/drv/sega/sys16_gfx.cpp @@ -1428,7 +1428,7 @@ static void System16BRenderTextLayer(INT32 PriorityDraw) Colour = (Code >> 9) & 0x07; Code &= 0x1ff; - Code += System16TileBanks[0] * 0x1000; + Code += System16TileBanks[0] * System16TileBankSize; Code &= (System16NumTiles - 1); @@ -1462,7 +1462,7 @@ static void System16BAltRenderTextLayer(INT32 PriorityDraw) Colour = (Code >> 8) & 0x07; Code &= 0xff; - Code += System16TileBanks[0] * 0x1000; + Code += System16TileBanks[0] * System16TileBankSize; Code &= (System16NumTiles - 1); diff --git a/whatsnew.html b/whatsnew.html index 0d891ba0b..47e4e26eb 100644 --- a/whatsnew.html +++ b/whatsnew.html @@ -132,6 +132,7 @@
  • Add protection routines to Dragon World II (V100H, Hong Kong) and mark as working [iq_132]
  • Fixed graphical issues/corruption in Konami's Special Project Y (spy) [iq_132]
  • Fixed the sounds in Konami's Yie Ar Kung-Fu and Mikie Some sn76489a soundchip commands were getting skipped because the chip updates needed to be interlaced. [dink]
  • +
  • Added Hammer Away to the Sega System 18 driver [barry, haze, ( Atro - from Neo-geo.com aka Rui Baptista ) ( _rm_ - from Neo-geo.com aka Ricardo Marques) ( 1up - from Neo-geo.com aka Daniel "casebres" )]