mirror of
https://github.com/bsnes-emu/bsnes.git
synced 2025-09-09 08:50:40 +02:00
Update to v106r69 release.
byuu says: The biggest change was improving WonderSwan emulation. With help from trap15, I tracked down a bug where I was checking the wrong bit for reverse DMA transfers. Then I also emulated VTOTAL to support variable refresh rate. Then I improved HyperVoice emulation which should be unsigned samples in three of four modes. That got Fire Lancer running great. I also rewrote the disassembler. The old one disassembled many instructions completely wrong, and deviated too much from any known x86 syntax. I also emulated some of the quirks of the V30 (two-byte POP into registers fails, SALC is just XLAT mirrored, etc) which probably don't matter unless someone tries to run code to verify it's a NEC CPU and not an Intel CPU, but hey, why not? I also put more work into the MSX skeleton, but it's still just a skeleton with no real emulation yet.
This commit is contained in:
@@ -189,6 +189,8 @@ struct QtLabel : public QWidget {
|
||||
Q_OBJECT
|
||||
public:
|
||||
QtLabel(pLabel& p) : p(p) {}
|
||||
auto mousePressEvent(QMouseEvent*) -> void;
|
||||
auto mouseReleaseEvent(QMouseEvent*) -> void;
|
||||
auto paintEvent(QPaintEvent*) -> void;
|
||||
pLabel& p;
|
||||
};
|
||||
|
1379
hiro/qt/qt.moc
1379
hiro/qt/qt.moc
File diff suppressed because it is too large
Load Diff
@@ -12,6 +12,9 @@ auto pSizable::minimumSize() const -> Size {
|
||||
return {0, 0};
|
||||
}
|
||||
|
||||
auto pSizable::setCollapsible(bool collapsible) -> void {
|
||||
}
|
||||
|
||||
auto pSizable::setGeometry(Geometry geometry) -> void {
|
||||
self().doSize();
|
||||
}
|
||||
|
@@ -6,6 +6,7 @@ struct pSizable : pObject {
|
||||
Declare(Sizable, Object)
|
||||
|
||||
virtual auto minimumSize() const -> Size;
|
||||
virtual auto setCollapsible(bool collapsible) -> void;
|
||||
virtual auto setGeometry(Geometry geometry) -> void;
|
||||
};
|
||||
|
||||
|
@@ -25,6 +25,7 @@ auto pTimer::setInterval(unsigned interval) -> void {
|
||||
}
|
||||
|
||||
auto QtTimer::onActivate() -> void {
|
||||
if(Application::state().quit) return;
|
||||
p.self().doActivate();
|
||||
}
|
||||
|
||||
|
@@ -40,6 +40,22 @@ auto pLabel::setText(const string& text) -> void {
|
||||
qtLabel->update();
|
||||
}
|
||||
|
||||
auto QtLabel::mousePressEvent(QMouseEvent* event) -> void {
|
||||
switch(event->button()) {
|
||||
case Qt::LeftButton: p.self().doMousePress(Mouse::Button::Left); break;
|
||||
case Qt::MidButton: p.self().doMousePress(Mouse::Button::Middle); break;
|
||||
case Qt::RightButton: p.self().doMousePress(Mouse::Button::Right); break;
|
||||
}
|
||||
}
|
||||
|
||||
auto QtLabel::mouseReleaseEvent(QMouseEvent* event) -> void {
|
||||
switch(event->button()) {
|
||||
case Qt::LeftButton: p.self().doMouseRelease(Mouse::Button::Left); break;
|
||||
case Qt::MidButton: p.self().doMouseRelease(Mouse::Button::Middle); break;
|
||||
case Qt::RightButton: p.self().doMouseRelease(Mouse::Button::Right); break;
|
||||
}
|
||||
}
|
||||
|
||||
//QLabel ignores QPalette ... so we have to implement our own Label class atop QWidget ...
|
||||
auto QtLabel::paintEvent(QPaintEvent* event) -> void {
|
||||
QPainter painter(p.qtLabel);
|
||||
|
Reference in New Issue
Block a user