mirror of
https://github.com/spice2x/spice2x.github.io.git
synced 2026-08-01 22:30:42 -07:00
Merge branch 'main' of https://github.com/spice2x/spice2x.github.io
This commit is contained in:
@@ -915,8 +915,7 @@ namespace games::iidx {
|
||||
log_warning(
|
||||
"iidx",
|
||||
"Failed to apply ASIO compatibility fix for iidx32+. "
|
||||
"Unless patches are applied, your ASIO device ({}) may hang or fail to work",
|
||||
ASIO_DRIVER->c_str());
|
||||
"Unless patches are applied, your ASIO device may hang or fail to work");
|
||||
} else {
|
||||
log_info(
|
||||
"iidx",
|
||||
|
||||
@@ -475,7 +475,7 @@ namespace games::popn {
|
||||
const auto data_size = std::min(map.data.capacity(), (size_t)number_of_leds / 3);
|
||||
|
||||
// pick a color to use
|
||||
const auto rgb = tapeledutils::pick_color_from_led_tape((uint8_t *)i_pData, data_size);
|
||||
const auto rgb = tapeledutils::pick_color_from_led_tape(map, (uint8_t *)i_pData, data_size);
|
||||
|
||||
// program the lights into API
|
||||
auto &lights = get_lights();
|
||||
|
||||
@@ -136,6 +136,18 @@ std::vector<Light> &games::popn::get_lights() {
|
||||
{"Pika", "IC Card R"},
|
||||
{"Pika", "IC Card G"},
|
||||
{"Pika", "IC Card B"},
|
||||
{"Pika", "Speakers R"},
|
||||
{"Pika", "Speakers G"},
|
||||
{"Pika", "Speakers B"},
|
||||
{"Pika", "Monitor R"},
|
||||
{"Pika", "Monitor G"},
|
||||
{"Pika", "Monitor B"},
|
||||
{"Pika", "Control Panel R"},
|
||||
{"Pika", "Control Panel G"},
|
||||
{"Pika", "Control Panel B"},
|
||||
{"Pika", "Cabinet R"},
|
||||
{"Pika", "Cabinet G"},
|
||||
{"Pika", "Cabinet B"},
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -121,6 +121,18 @@ namespace games::popn {
|
||||
IC_Card_R,
|
||||
IC_Card_G,
|
||||
IC_Card_B,
|
||||
Speaker_R,
|
||||
Speaker_G,
|
||||
Speaker_B,
|
||||
Monitor_R,
|
||||
Monitor_G,
|
||||
Monitor_B,
|
||||
ControlPanel_R,
|
||||
ControlPanel_G,
|
||||
ControlPanel_B,
|
||||
Cabinet_R,
|
||||
Cabinet_G,
|
||||
Cabinet_B,
|
||||
} popn_lights_t;
|
||||
}
|
||||
|
||||
|
||||
@@ -19,11 +19,13 @@
|
||||
#include "util/sysutils.h"
|
||||
#include "io.h"
|
||||
#include "util/deferlog.h"
|
||||
#include "misc/nativetouchhook.h"
|
||||
#include "misc/wintouchemu.h"
|
||||
|
||||
namespace games::popn {
|
||||
|
||||
bool SHOW_PIKA_MONITOR_WARNING = false;
|
||||
bool NATIVE_TOUCH = false;
|
||||
|
||||
#if SPICE64 && !SPICE_XP
|
||||
|
||||
@@ -36,39 +38,83 @@ namespace games::popn {
|
||||
// pin 1 = left pop (red pop kun), size 16, values 0-0xFF
|
||||
// pin 2 = right pop (blue pop kun), size 16, values 0-0xFF
|
||||
// pin 3 = title, size 44, values 0-0xFF
|
||||
// pin 4 = speaker, size 40, values 0-0xFF - U region only
|
||||
// pin 4 = speaker, size 40, values 0-0x7F - U region only
|
||||
// pin 5 = monitor, size 18, values 0-0x7F - U region only
|
||||
// pin 6 = control panel, size 28, values 0-0x7F - U region only
|
||||
// pin 7 = cabinet, size 22, values 0-0x7F - U region only
|
||||
tapeledutils::tape_led TAPELED_MAPPING[POPN_TAPELED_TOTAL] = {
|
||||
{
|
||||
0, // these are button lights and handled specially
|
||||
// [0] button lights: these are button lights and handled specially
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
"Invalid"
|
||||
},
|
||||
{
|
||||
// [1] red pop-kun
|
||||
5, // 5*3; game reports 16 but make it 15
|
||||
Lights::popn_lights_t::RedPopKun_R,
|
||||
Lights::popn_lights_t::RedPopKun_G,
|
||||
Lights::popn_lights_t::RedPopKun_B,
|
||||
0xFF,
|
||||
"Red Pop-Kun"
|
||||
},
|
||||
{
|
||||
// [2] blue pop-kun
|
||||
5, // 5*3; game reports 16 but make it 15
|
||||
Lights::popn_lights_t::BluePopKun_R,
|
||||
Lights::popn_lights_t::BluePopKun_G,
|
||||
Lights::popn_lights_t::BluePopKun_B,
|
||||
0xFF,
|
||||
"Blue Pop-Kun"
|
||||
},
|
||||
{
|
||||
14, // 14*3; game reports 44 but make it 42; these are lights above the banner
|
||||
// [3] top LED
|
||||
14, // 14*3; game reports 44 but make it 42
|
||||
Lights::popn_lights_t::TopLED_R,
|
||||
Lights::popn_lights_t::TopLED_G,
|
||||
Lights::popn_lights_t::TopLED_B,
|
||||
0xFF,
|
||||
"Top"
|
||||
},
|
||||
{
|
||||
// [4] speakers
|
||||
13, // 13*3; game reports 40 but make it 39
|
||||
Lights::popn_lights_t::Speaker_G,
|
||||
Lights::popn_lights_t::Speaker_R,
|
||||
Lights::popn_lights_t::Speaker_B,
|
||||
0x7F,
|
||||
"Speakers"
|
||||
},
|
||||
{
|
||||
// [5] monitor
|
||||
6,
|
||||
Lights::popn_lights_t::Monitor_G,
|
||||
Lights::popn_lights_t::Monitor_R,
|
||||
Lights::popn_lights_t::Monitor_B,
|
||||
0x7F,
|
||||
"Monitor"
|
||||
},
|
||||
{
|
||||
// [6] control panel
|
||||
9, // 9*3; game reports 28
|
||||
Lights::popn_lights_t::ControlPanel_G,
|
||||
Lights::popn_lights_t::ControlPanel_R,
|
||||
Lights::popn_lights_t::ControlPanel_B,
|
||||
0x7F,
|
||||
"Control Panel"
|
||||
},
|
||||
{
|
||||
// [7] Cabinet
|
||||
7, // 7*3; game reports 22
|
||||
Lights::popn_lights_t::Cabinet_G,
|
||||
Lights::popn_lights_t::Cabinet_R,
|
||||
Lights::popn_lights_t::Cabinet_B,
|
||||
0x7F,
|
||||
"Cabinet"
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -670,9 +716,13 @@ namespace games::popn {
|
||||
// set third column to 0 and it will work with BIO2
|
||||
|
||||
if (!GRAPHICS_WINDOWED) {
|
||||
wintouchemu::FORCE = true;
|
||||
wintouchemu::INJECT_MOUSE_AS_WM_TOUCH = true;
|
||||
wintouchemu::hook_title_ends("", "Main Screen", avs::game::DLL_INSTANCE);
|
||||
if (NATIVE_TOUCH) {
|
||||
nativetouchhook::hook(avs::game::DLL_INSTANCE);
|
||||
} else {
|
||||
wintouchemu::FORCE = true;
|
||||
wintouchemu::INJECT_MOUSE_AS_WM_TOUCH = true;
|
||||
wintouchemu::hook_title_ends("", "Main Screen", avs::game::DLL_INSTANCE);
|
||||
}
|
||||
}
|
||||
|
||||
sysutils::hook_EnumDisplayDevicesA();
|
||||
|
||||
@@ -17,11 +17,12 @@ namespace games::popn {
|
||||
}
|
||||
|
||||
#if SPICE64
|
||||
constexpr int POPN_TAPELED_TOTAL = 4;
|
||||
constexpr int POPN_TAPELED_TOTAL = 8;
|
||||
extern tapeledutils::tape_led TAPELED_MAPPING[POPN_TAPELED_TOTAL];
|
||||
#endif
|
||||
|
||||
extern bool SHOW_PIKA_MONITOR_WARNING;
|
||||
extern bool NATIVE_TOUCH;
|
||||
|
||||
class POPNGame : public games::Game {
|
||||
public:
|
||||
|
||||
Reference in New Issue
Block a user