AW: various fixes, more roms

This commit is contained in:
Flyinghead 2018-11-09 13:22:27 +01:00
parent 3e8033cc70
commit 4c334f09ea
5 changed files with 86 additions and 10 deletions

View File

@ -28,6 +28,7 @@ extern u16 kcode[4];
extern u32 vks[4];
extern s8 joyx[4],joyy[4];
extern u8 rt[4],lt[4];
extern bool naomi_test_button;
u8 GetBtFromSgn(s8 val)
{
@ -59,6 +60,11 @@ struct MapleConfigMap : IMapleConfigMap
pjs->kcode=kcode[player_num];
#if DC_PLATFORM == DC_PLATFORM_DREAMCAST
pjs->kcode |= 0xF901;
#elif DC_PLATFORM == DC_PLATFORM_ATOMISWAVE
if (naomi_test_button)
pjs->kcode &= ~(1 << 14);
// if (!(pjs->kcode & (1 << 9))) // Hack (Y -> service btn)
// pjs->kcode &= ~(1 << 13);
#endif
pjs->joy[PJAI_X1]=GetBtFromSgn(joyx[player_num]);
pjs->joy[PJAI_Y1]=GetBtFromSgn(joyy[player_num]);
@ -90,11 +96,21 @@ void mcfg_CreateNAOMIJamma()
void mcfg_CreateAtomisWaveControllers()
{
// Looks like a controller needs to be on bus 0 for digital controls
// Then another device on port 2 for analog axes, light gun, ...
// Looks like two controllers needs to be on bus 0 and 1 for digital inputs
// Then other devices on port 2 and 3 for analog axes, light guns, ...
mcfg_Create(MDT_SegaController, 0, 5);
mcfg_Create(MDT_SegaController, 2, 5, 0);
mcfg_Create(MDT_SegaController, 1, 5);
// mcfg_Create(MDT_SegaController, 2, 5, 0);
// mcfg_Create(MDT_SegaController, 3, 5, 1);
// mcfg_Create(MDT_LightGun, 2, 5, 0);
// mcfg_Create(MDT_LightGun, 3, 5, 1);
// mcfg_Create(MDT_Mouse, 2, 5, 0);
// Guilty Gear Isuka (4P) needs 4 std controllers
// Faster Than Speed needs 1 std controller on port 0 (digital inputs) and one on port 2 (analog axes)
// Maximum Speed same
// Clay Challenge needs 2 std controllers on port 0 & 1 (digital in) and light guns on port 2 & 3
// Sports Shooting same
// Sega Bass Fishing Challenge needs a mouse (track-ball) on port 3
}
void mcfg_CreateController(u32 bus, MapleDeviceType maple_type1, MapleDeviceType maple_type2)

View File

@ -646,7 +646,7 @@ u32 libExtDevice_ReadMem_A0_006(u32 addr,u32 size) {
// (ab == 0) -> BIOS skip RAM test
if (coin_chute)
{
// FIXME Coin Error if coint_chute is set for too long
// FIXME Coin Error if coin_chute is set for too long
return 0xE;
}
return 0xF;
@ -659,7 +659,7 @@ u32 libExtDevice_ReadMem_A0_006(u32 addr,u32 size) {
//printf("NAOMI 600284 read %x\n", aw_maple_devs);
return aw_maple_devs;
}
EMUERROR("Unhandled read @ %x\n", addr);
EMUERROR("Unhandled read @ %x", addr);
return 0xFF;
}
@ -672,8 +672,9 @@ void libExtDevice_WriteMem_A0_006(u32 addr,u32 data,u32 size) {
printf("NAOMI 600284 write %x\n", data);
aw_maple_devs = data & 0xF0;
break;
//case 0x28C: // Wheel force feedback?
default:
break;
}
EMUERROR("Unhandled write @ %x: %x\n", addr, data);
EMUERROR("Unhandled write @ %x: %x", addr, data);
}

View File

@ -269,6 +269,26 @@ Games[] =
{ NULL, 0, 0 },
}
},
// Sega Bass Fishing Challenge Version A
{
"basschal.zip",
0x8000000,
0,
"awbios.zip",
AW,
{
{ "vera.u3", 0x00000000, 0x01000000 },
{ "vera.u1", 0x01000000, 0x01000000 },
{ "vera.u4", 0x02000000, 0x01000000 },
{ "vera.u2", 0x03000000, 0x01000000 },
{ "vera.u15", 0x04000000, 0x01000000 },
{ "vera.u17", 0x05000000, 0x01000000 },
{ "vera.u14", 0x06000000, 0x01000000 },
{ "vera.u16", 0x07000000, 0x01000000 },
{ "315-6248.bin", 0x000000, 0x000004, Key },
{ NULL, 0, 0 },
}
},
// Capcom Vs. SNK Millennium Fight 2000 (Rev C)
{
"capsnk.zip",
@ -722,6 +742,27 @@ Games[] =
{ NULL, 0, 0 },
}
},
// Guilty Gear Isuka
{
"ggisuka.zip",
0x09000000,
0,
"awbios.zip",
AW,
{
{ "ax1201p01.ic18", 0x0000000, 0x0800000 },
{ "ax1201m01.ic10", 0x0800000, 0x1000000 }, // 2x mirrored 8MB data, TODO: check is IC10 Mask ROM not 16MB but 8MB
{ "ax1202m01.ic11", 0x1000000, 0x1000000 },
{ "ax1203m01.ic12", 0x2000000, 0x1000000 },
{ "ax1204m01.ic13", 0x3000000, 0x1000000 },
{ "ax1205m01.ic14", 0x4000000, 0x1000000 },
{ "ax1206m01.ic15", 0x5000000, 0x1000000 },
{ "ax1207m01.ic16", 0x6000000, 0x1000000 },
{ "ax1208m01.ic17", 0x7000000, 0x1000000 },
{ "ax1201f01.bin", 0, 4, Key },
{ NULL, 0, 0 },
}
},
// Guilty Gear X ver. 1.5
{
"ggx15.zip",
@ -1325,6 +1366,23 @@ Games[] =
{ NULL, 0, 0 },
}
},
// Sports Shooting USA
{
"sprtshot.zip",
0x8000000,
0,
"awbios.zip",
AW,
{
{ "ax0101p01.ic18", 0x0000000, 0x0800000 },
{ "ax0101m01.ic11", 0x1000000, 0x1000000 },
{ "ax0102m01.ic12", 0x2000000, 0x1000000 },
{ "ax0103m01.ic13", 0x3000000, 0x1000000 },
{ "ax0104m01.ic14", 0x4000000, 0x1000000 },
{ "ax0101f01.bin", 0, 4, Key },
{ NULL, 0, 0 },
}
},
// Sega Strike Fighter (Rev A)
{
"sstrkfgt.zip",

View File

@ -484,7 +484,9 @@ using namespace std;
#include "stdclass.h"
#ifndef RELEASE
#define EMUERROR(format, ...) printf("Error in %s:%s:%d: " format "\n", __FILE__,__FUNCTION__ ,__LINE__, ##__VA_ARGS__)
#define EMUERROR(format, ...) printf("Error in %s:%s:%d: " format "\n", \
strlen(__FILE__) <= 20 ? __FILE__ : __FILE__ + strlen(__FILE__) - 20, \
__FUNCTION__, __LINE__, ##__VA_ARGS__)
#else
#define EMUERROR(format, ...)
#endif

View File

@ -260,9 +260,8 @@ void UpdateInputState(u32 port)
DiscSwap();
if (GetAsyncKeyState(VK_ESCAPE))
dc_stop();
#if DC_PLATFORM == DC_PLATFORM_NAOMI
if (GetAsyncKeyState(VK_F8))
coin_chute = true;
#if DC_PLATFORM == DC_PLATFORM_NAOMI || DC_PLATFORM == DC_PLATFORM_ATOMISWAVE
coin_chute = GetAsyncKeyState(VK_F8);
naomi_test_button = GetAsyncKeyState(VK_F7);
#endif
// also Naomi service button