You can subscribe to this list here.
| 2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(6) |
Nov
(80) |
Dec
(239) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2002 |
Jan
(168) |
Feb
(177) |
Mar
(233) |
Apr
(172) |
May
(74) |
Jun
(107) |
Jul
(77) |
Aug
(133) |
Sep
(85) |
Oct
(108) |
Nov
(87) |
Dec
(96) |
| 2003 |
Jan
(218) |
Feb
(134) |
Mar
(273) |
Apr
(127) |
May
(304) |
Jun
(498) |
Jul
(231) |
Aug
(301) |
Sep
(181) |
Oct
(258) |
Nov
(229) |
Dec
(207) |
| 2004 |
Jan
(169) |
Feb
(181) |
Mar
(255) |
Apr
(468) |
May
(467) |
Jun
(241) |
Jul
(146) |
Aug
(157) |
Sep
(260) |
Oct
(656) |
Nov
(148) |
Dec
(199) |
| 2005 |
Jan
(257) |
Feb
(250) |
Mar
(206) |
Apr
(102) |
May
(215) |
Jun
(251) |
Jul
(104) |
Aug
(116) |
Sep
(176) |
Oct
(154) |
Nov
(281) |
Dec
(212) |
| 2006 |
Jan
(255) |
Feb
(157) |
Mar
(145) |
Apr
(179) |
May
(170) |
Jun
(96) |
Jul
(153) |
Aug
(106) |
Sep
(222) |
Oct
(94) |
Nov
(88) |
Dec
(66) |
| 2007 |
Jan
(59) |
Feb
(105) |
Mar
(114) |
Apr
(193) |
May
(145) |
Jun
(120) |
Jul
(79) |
Aug
(114) |
Sep
(234) |
Oct
(105) |
Nov
(113) |
Dec
(163) |
| 2008 |
Jan
(96) |
Feb
(35) |
Mar
(105) |
Apr
(64) |
May
(85) |
Jun
(92) |
Jul
(139) |
Aug
(81) |
Sep
(84) |
Oct
(55) |
Nov
(45) |
Dec
(56) |
| 2009 |
Jan
(110) |
Feb
(184) |
Mar
(150) |
Apr
(235) |
May
(267) |
Jun
(169) |
Jul
(180) |
Aug
(141) |
Sep
(191) |
Oct
(103) |
Nov
(118) |
Dec
(225) |
| 2010 |
Jan
(149) |
Feb
(90) |
Mar
(62) |
Apr
(46) |
May
(30) |
Jun
(110) |
Jul
(48) |
Aug
(45) |
Sep
(37) |
Oct
(36) |
Nov
(48) |
Dec
(81) |
| 2011 |
Jan
(75) |
Feb
(39) |
Mar
(105) |
Apr
(67) |
May
(31) |
Jun
(19) |
Jul
(16) |
Aug
(43) |
Sep
(36) |
Oct
(15) |
Nov
(9) |
Dec
(24) |
| 2012 |
Jan
(52) |
Feb
(34) |
Mar
(34) |
Apr
(35) |
May
(81) |
Jun
(114) |
Jul
(77) |
Aug
(68) |
Sep
(57) |
Oct
(30) |
Nov
(75) |
Dec
(116) |
| 2013 |
Jan
(30) |
Feb
(42) |
Mar
(30) |
Apr
(45) |
May
(49) |
Jun
(29) |
Jul
(63) |
Aug
(62) |
Sep
(21) |
Oct
(21) |
Nov
(58) |
Dec
(32) |
| 2014 |
Jan
(86) |
Feb
(48) |
Mar
(21) |
Apr
(20) |
May
(68) |
Jun
(42) |
Jul
(33) |
Aug
(28) |
Sep
(33) |
Oct
(23) |
Nov
(43) |
Dec
(11) |
| 2015 |
Jan
(13) |
Feb
(13) |
Mar
(13) |
Apr
(12) |
May
(50) |
Jun
(10) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2019 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Wouter V. <m97...@us...> - 2015-06-16 19:19:32
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "openMSX (main)".
The branch, master.sf has been deleted
was 4c87ef8192e50f301a5003fbf79bfe9c862374b1
-----------------------------------------------------------------------
4c87ef8192e50f301a5003fbf79bfe9c862374b1 disable building openMSX, refer to new github project
-----------------------------------------------------------------------
hooks/post-receive
--
openMSX (main)
|
|
From: Wouter V. <m97...@us...> - 2015-06-16 19:17:26
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "openMSX (main)".
The branch, master has been updated
via 4c87ef8192e50f301a5003fbf79bfe9c862374b1 (commit)
from 8c3dae7089875fe0b35107af050e07bd0948e2f1 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 4c87ef8192e50f301a5003fbf79bfe9c862374b1
Author: m9710797 <ver...@gm...>
Date: Tue Jun 16 21:03:11 2015 +0200
disable building openMSX, refer to new github project
-----------------------------------------------------------------------
Summary of changes:
build/main.mk | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/build/main.mk b/build/main.mk
index afca766..b944288 100644
--- a/build/main.mk
+++ b/build/main.mk
@@ -1,3 +1,6 @@
+# Disable building openMSX, remove the next line to re-enable it.
+$(error This is the old sourceforge version of openMSX, it is obsolete. OpenMSX development has moved to github: https://github.com/openMSX/openMSX)
+
# openMSX Build System
# ====================
#
hooks/post-receive
--
openMSX (main)
|
|
From: Wouter V. <m97...@us...> - 2015-06-16 19:11:31
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "openMSX (main)".
The branch, master.sf has been created
at 4c87ef8192e50f301a5003fbf79bfe9c862374b1 (commit)
- Log -----------------------------------------------------------------
commit 4c87ef8192e50f301a5003fbf79bfe9c862374b1
Author: m9710797 <ver...@gm...>
Date: Tue Jun 16 21:03:11 2015 +0200
disable building openMSX, refer to new github project
-----------------------------------------------------------------------
hooks/post-receive
--
openMSX (main)
|
|
From: Manuel B. <man...@us...> - 2015-06-12 21:14:31
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "openMSX (main)".
The branch, master has been updated
via 8c3dae7089875fe0b35107af050e07bd0948e2f1 (commit)
via 7ecc0b7513a2e20454377921f079f649b5ae67e0 (commit)
from d04d5e8be228f59dd6abfbe548d9d9e202af9106 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 8c3dae7089875fe0b35107af050e07bd0948e2f1
Author: Manuel Bilderbeek <Man...@gm...>
Date: Fri Jun 12 23:11:53 2015 +0200
Added Sanyo MPC-6, thanks to Werner Kai.
commit 7ecc0b7513a2e20454377921f079f649b5ae67e0
Author: Manuel Bilderbeek <Man...@gm...>
Date: Fri Jun 12 22:48:33 2015 +0200
Added some details on Sony HB-101 model types. Thanks to Werner Kai.
-----------------------------------------------------------------------
Summary of changes:
.../machines/{Sony_HB-201.xml => Sanyo_MPC-6.xml} | 58 +++++++++-----------
share/machines/Sony_HB-101.xml | 16 +++++-
2 files changed, 40 insertions(+), 34 deletions(-)
copy share/machines/{Sony_HB-201.xml => Sanyo_MPC-6.xml} (62%)
diff --git a/share/machines/Sony_HB-201.xml b/share/machines/Sanyo_MPC-6.xml
similarity index 62%
copy from share/machines/Sony_HB-201.xml
copy to share/machines/Sanyo_MPC-6.xml
index bf7bb06..1671af7 100644
--- a/share/machines/Sony_HB-201.xml
+++ b/share/machines/Sanyo_MPC-6.xml
@@ -2,32 +2,32 @@
<!DOCTYPE msxconfig SYSTEM 'msxconfig2.dtd'>
<msxconfig>
- <!--
- Based on Werner Kai's black Sony HB-201 with serial 214484
-
- VDP: TMS9118NL
- PPI: NEC D8255AC-5
- CPU: Sharp LH0080A
- PSG: Yamaha YM2159F
+ <info>
+ <manufacturer>Sanyo</manufacturer>
+ <code>MPC-6/Wavy6</code>
+ <release_year>?</release_year>
+ <description>A simple 64kB Japanese MSX1 machine</description>
+ <type>MSX</type>
+ </info>
- Z80 scf: 01C529ED01D429C (dunno)
- Z80 cpl: 3AF12D7 (standard)
+ <!-- This config is based on Werner Kai's machine with serial number 10722198
+ https://plus.google.com/u/0/photos/112629367302659371233/albums/6155639394500784817
+
+ Z80 scf: 01C501ED01D401C (NEC)
+ Z80 cpl: 3AFF12D7 (standard)
Z80 out (c),0: 0 (MSX)
PSG pin 6/7 quirk: C (YES)
+ PSGmask: YM2149-like
+ Seems to have pull ups.
- Unmapped area of page 3 in slot 0-0 shows 0xB0 on every location
-
- https://plus.google.com/u/0/photos/112629367302659371233/albums/6155580084905562801
-
- -->
+ mobo shows:
+ PSG: GI AY-3-8910
+ CPU: NEC D780C-1
+ VDP: TMS9918ANL
+ PPI: NEC D8255AC-2
- <info>
- <manufacturer>Sony</manufacturer>
- <code>HB-201</code>
- <release_year>1985</release_year>
- <description/>
- <type>MSX</type>
- </info>
+ back cartridge slot is not MSX, but expansion slot
+ -->
<CassettePort/>
@@ -47,12 +47,12 @@
</PPI>
<VDP id="VDP">
- <version>TMS9118</version>
+ <version>TMS9918A</version>
<io base="0x98" num="2"/>
</VDP>
<PSG id="PSG">
- <type>YM2149</type>
+ <type>AY8910</type>
<keyboardlayout>50on</keyboardlayout>
<sound>
<volume>21000</volume>
@@ -68,30 +68,22 @@
<primary slot="0">
<ROM id="MSX BIOS with BASIC ROM">
<rom>
- <filename>hb-201_basic-bios1.rom</filename>
+ <filename>mpc-6_basic-bios1.rom</filename>
<sha1>302afb5d8be26c758309ca3df611ae69cced2821</sha1>
</rom>
<mem base="0x0000" size="0x8000"/>
</ROM>
- <ROM id="Personal Data Bank">
- <rom>
- <filename>hb-201_firmware.rom</filename>
- <sha1>0f4f09f1a6ef7535b243afabfb44a3a0eb0498d9</sha1>
- </rom>
- <mem base="0x8000" size="0x4000"/>
- </ROM>
</primary>
<primary external="true" slot="1"/>
- <primary external="true" slot="2"/>
+ <!-- slot 2 is the expansion slot -->
<primary slot="3">
<RAM id="Main RAM">
<mem base="0x0000" size="0x10000"/>
</RAM>
</primary>
-
</devices>
</msxconfig>
diff --git a/share/machines/Sony_HB-101.xml b/share/machines/Sony_HB-101.xml
index eb3ef48..04c32f5 100644
--- a/share/machines/Sony_HB-101.xml
+++ b/share/machines/Sony_HB-101.xml
@@ -15,6 +15,20 @@
https://plus.google.com/photos/112629367302659371233/albums/6155507573429019985
+ There are 2 models of the HB-101. Werner's is of the first kind:
+ - does not have springs in the transportation handle, which mean that the
+ handle can be left extended.
+ - does not have gate arrays cX chips
+ - does not have pull ups on the bus
+ So all these things were added in the 2nd model:
+ - has 2 sprints in the transportation handle so that it cannot be left extended
+ - has 2 Sony CXxxx gate arrays in the PCB, same as used in HB-F5
+ - has pull-ups, so that e.g. PEEK(&H8000) gives 255.
+
+ Machines of the second model seem to have the same ROMs: the ROMs of a
+ white HB-101 with SN 237929 were the same as the red one on which this
+ config was based.
+
Z80: SHARP LH0080A Z80A-CPU-D
PPI: NEC D8255AC-5
PSG: Yamaha YM2149F
@@ -91,7 +105,7 @@
<ROM id="Personal Data Bank">
<rom>
<filename>hb-101_firmware.rom</filename>
- <sha1>64adb7fcf9b86f59d8658badb02f58e61bb15712</sha1> <!-- note: original ROM dump showed a 2nd 16kB, but that one was completely 0x7E. As there's only a 16kB and a 32kB mask ROM on the PCB, it must really be a 16kB ROM. Moreover, we found out that all unconnected memory showed as 0x7E (but unconnected I/O ports showed 0xFF) -->
+ <sha1>64adb7fcf9b86f59d8658badb02f58e61bb15712</sha1> <!-- note: original ROM dump showed a 2nd 16kB, but that one was completely 0x7E. As there's only a 16kB and a 32kB mask ROM on the PCB, it must really be a 16kB ROM. Moreover, we found out that all unconnected memory showed as 0x7E (but unconnected I/O ports showed 0xFF) The latter is probably due to the fact that this dump was based on a machine of the first model, see above. -->
</rom>
<mem base="0x4000" size="0x4000"/>
</ROM>
hooks/post-receive
--
openMSX (main)
|
|
From: Manuel B. <man...@us...> - 2015-06-02 20:56:46
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "openMSX (main)".
The branch, master has been updated
via d04d5e8be228f59dd6abfbe548d9d9e202af9106 (commit)
via 1337831eb08a315cebfd1902d7eb7f0086f9f965 (commit)
from 35f23a8b3d9c9078fb6b99ec3a459e8137f3215a (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit d04d5e8be228f59dd6abfbe548d9d9e202af9106
Author: Manuel Bilderbeek <Man...@gm...>
Date: Tue Jun 2 22:55:50 2015 +0200
Added Japanese Sony HB-201, thanks to Werner Kai
commit 1337831eb08a315cebfd1902d7eb7f0086f9f965
Author: Manuel Bilderbeek <Man...@gm...>
Date: Tue Jun 2 22:55:07 2015 +0200
Fixed wrong kana lock configuration: it's JP so it locks
-----------------------------------------------------------------------
Summary of changes:
share/machines/Sony_HB-101.xml | 2 +-
.../{Hitachi_MB-H1.xml => Sony_HB-201.xml} | 66 +++++++++++---------
2 files changed, 37 insertions(+), 31 deletions(-)
copy share/machines/{Hitachi_MB-H1.xml => Sony_HB-201.xml} (58%)
diff --git a/share/machines/Sony_HB-101.xml b/share/machines/Sony_HB-101.xml
index 4c07bd6..eb3ef48 100644
--- a/share/machines/Sony_HB-101.xml
+++ b/share/machines/Sony_HB-101.xml
@@ -47,7 +47,7 @@
<io base="0xA8" num="4"/>
<keyboard_type>jp_ansi</keyboard_type>
<has_keypad>false</has_keypad>
- <code_kana_locks>false</code_kana_locks>
+ <code_kana_locks>true</code_kana_locks>
<graph_locks>false</graph_locks>
</PPI>
diff --git a/share/machines/Hitachi_MB-H1.xml b/share/machines/Sony_HB-201.xml
similarity index 58%
copy from share/machines/Hitachi_MB-H1.xml
copy to share/machines/Sony_HB-201.xml
index a3e05e6..bf7bb06 100644
--- a/share/machines/Hitachi_MB-H1.xml
+++ b/share/machines/Sony_HB-201.xml
@@ -2,27 +2,33 @@
<!DOCTYPE msxconfig SYSTEM 'msxconfig2.dtd'>
<msxconfig>
+ <!--
+ Based on Werner Kai's black Sony HB-201 with serial 214484
+
+ VDP: TMS9118NL
+ PPI: NEC D8255AC-5
+ CPU: Sharp LH0080A
+ PSG: Yamaha YM2159F
+
+ Z80 scf: 01C529ED01D429C (dunno)
+ Z80 cpl: 3AF12D7 (standard)
+ Z80 out (c),0: 0 (MSX)
+ PSG pin 6/7 quirk: C (YES)
+
+ Unmapped area of page 3 in slot 0-0 shows 0xB0 on every location
+
+ https://plus.google.com/u/0/photos/112629367302659371233/albums/6155580084905562801
+
+ -->
+
<info>
- <manufacturer>Hitachi</manufacturer>
- <code>MB-H1</code>
- <release_year></release_year>
- <description>The Humanicatio...</description>
+ <manufacturer>Sony</manufacturer>
+ <code>HB-201</code>
+ <release_year>1985</release_year>
+ <description/>
<type>MSX</type>
</info>
-<!-- Thanks to Ricardo Jurczyk Pinheiro for the information.
- Serial: 4008501A
- Z80: Sharp LH0080A
- PSG: GI AY-3-8910
- PPI: NEC D8255AC-5
- VDP: TMS9918ANL
-
- Z80 scf: 01ED29ED01FC29FC (standard)
- Z80 cpl: 3AFF12D7 (standard)
- Z80 out (c),0: 0 (MSX)
- PSG pin 6/7 quirk: C (YES)
--->
-
<CassettePort/>
<devices>
@@ -41,12 +47,12 @@
</PPI>
<VDP id="VDP">
- <version>TMS9918A</version>
+ <version>TMS9118</version>
<io base="0x98" num="2"/>
</VDP>
<PSG id="PSG">
- <type>AY8910</type> <!-- in contrast to ident.bas, so YM2149 PSG mask -->
+ <type>YM2149</type>
<keyboardlayout>50on</keyboardlayout>
<sound>
<volume>21000</volume>
@@ -60,16 +66,20 @@
</PrinterPort>
<primary slot="0">
- <RAM id="Main RAM">
- <mem base="0x8000" size="0x8000"/>
- </RAM>
<ROM id="MSX BIOS with BASIC ROM">
<rom>
- <filename>mb-h1_basic-bios1.rom</filename>
+ <filename>hb-201_basic-bios1.rom</filename>
<sha1>302afb5d8be26c758309ca3df611ae69cced2821</sha1>
</rom>
<mem base="0x0000" size="0x8000"/>
</ROM>
+ <ROM id="Personal Data Bank">
+ <rom>
+ <filename>hb-201_firmware.rom</filename>
+ <sha1>0f4f09f1a6ef7535b243afabfb44a3a0eb0498d9</sha1>
+ </rom>
+ <mem base="0x8000" size="0x4000"/>
+ </ROM>
</primary>
<primary external="true" slot="1"/>
@@ -77,13 +87,9 @@
<primary external="true" slot="2"/>
<primary slot="3">
- <ROM id="MB-H1 firmware">
- <rom>
- <filename>mb-h1_firmware.rom</filename>
- <sha1>3e005832138ffde8b1c36025754f81c2112b236d</sha1>
- </rom>
- <mem base="0x4000" size="0x2000"/>
- </ROM>
+ <RAM id="Main RAM">
+ <mem base="0x0000" size="0x10000"/>
+ </RAM>
</primary>
</devices>
hooks/post-receive
--
openMSX (main)
|
|
From: Wouter V. <m97...@us...> - 2015-06-02 17:19:03
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "openMSX (main)".
The branch, master has been updated
via 35f23a8b3d9c9078fb6b99ec3a459e8137f3215a (commit)
from a8d116ae445d47d3a64adf744bf9f3f575651a08 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 35f23a8b3d9c9078fb6b99ec3a459e8137f3215a
Author: m9710797 <ver...@gm...>
Date: Tue Jun 2 19:11:04 2015 +0200
Fake just enough of the Mitsubishi ML-TS2 to get it to boot
There seems to be 4 registers located at addresses 0x7f00-0x7f03. The z80 code
in the rom both reads and writes these registers (I only looked at a very small
fraction of the code).
Before this patch the boot code was in an endless loop reading location 0x7f01
and checking bit 3. Now, after this patch, that bit reads as '1' and that's
enough to get past this loop into BASIC.
-----------------------------------------------------------------------
Summary of changes:
src/memory/RomMitsubishiMLTS2.cc | 25 +++++++++++++++++++++++--
1 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/src/memory/RomMitsubishiMLTS2.cc b/src/memory/RomMitsubishiMLTS2.cc
index 40a397a..018dc8c 100644
--- a/src/memory/RomMitsubishiMLTS2.cc
+++ b/src/memory/RomMitsubishiMLTS2.cc
@@ -20,7 +20,17 @@ void RomMitsubishiMLTS2::reset(EmuTime::param /*time*/)
void RomMitsubishiMLTS2::writeMem(word address, byte value, EmuTime::param /*time*/)
{
- if (address == 0x7FC0) {
+ // TODO What are these 4 registers? Are there any more?
+ // Is there any mirroring going on?
+ if (address == 0x7f00) {
+ // TODO
+ } else if (address == 0x7f01) {
+ // TODO
+ } else if (address == 0x7f02) {
+ // TODO
+ } else if (address == 0x7f03) {
+ // TODO
+ } else if (address == 0x7FC0) {
byte bank = ((value & 0x10) >> 2) | // transform bit-pattern
((value & 0x04) >> 1) | // ...a.b.c
((value & 0x01) >> 0); // into 00000abc
@@ -38,7 +48,18 @@ byte RomMitsubishiMLTS2::readMem(word address, EmuTime::param time)
byte RomMitsubishiMLTS2::peekMem(word address, EmuTime::param time) const
{
- if ((0x6000 <= address) && (address < 0x8000)) {
+ // TODO What are these 4 registers? Are there any more?
+ // Is there any mirroring going on?
+ // Is the bank select register readable? (0x7fc0)
+ if (address == 0x7f00) {
+ return 0xff; // TODO
+ } else if (address == 0x7f01) {
+ return 0xff; // TODO
+ } else if (address == 0x7f02) {
+ return 0xff; // TODO
+ } else if (address == 0x7f03) {
+ return 0xff; // TODO
+ } else if ((0x6000 <= address) && (address < 0x8000)) {
return ram[address & 0x1FFF];
} else {
return Rom8kBBlocks::peekMem(address, time);
hooks/post-receive
--
openMSX (main)
|
|
From: Wouter V. <m97...@us...> - 2015-06-02 16:40:40
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "openMSX (main)".
The branch, master has been updated
via a8d116ae445d47d3a64adf744bf9f3f575651a08 (commit)
via 362cb36f7602ac62c8c2b284afe24f29a243b354 (commit)
from 99e0f001e83edd733aeed98f110ad1bc922090dd (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit a8d116ae445d47d3a64adf744bf9f3f575651a08
Author: m9710797 <ver...@gm...>
Date: Tue Jun 2 18:25:13 2015 +0200
Small cleanups/enhancements to the WIP RomMitsubishiMLTS2 code
I know this code is still work in progress, but this patch brings the code
more in line with the rest of the openMSX code.
Mostly small cleanups. There should be no functional changes. I did add a
missing serialize() method.
commit 362cb36f7602ac62c8c2b284afe24f29a243b354
Author: m9710797 <ver...@gm...>
Date: Tue Jun 2 18:09:29 2015 +0200
Fixed initialization of String32 on 32-bit platforms
In the RomDatabase parsing code we initialized String32 objects like this:
title = 0;
This compiles fine (on both 32 and 64 bit platforms). It also happens to do the
correct thing on 64 bit systems. However on 32 bit systems when a romdb entry
with empty title, year, country or company field is printed (depending on how
exactly it's printed) it may crash. So it may only rarely trigger, but a bug is
a bug.
Fix is easy: always initialize these objects via the toString32() helper
function.
-----------------------------------------------------------------------
Summary of changes:
src/memory/RomDatabase.cc | 10 ++++++----
src/memory/RomMitsubishiMLTS2.cc | 38 ++++++++++++++++----------------------
src/memory/RomMitsubishiMLTS2.hh | 22 ++++++++++++----------
3 files changed, 34 insertions(+), 36 deletions(-)
diff --git a/src/memory/RomDatabase.cc b/src/memory/RomDatabase.cc
index 5d9b22c..dda3ecb 100644
--- a/src/memory/RomDatabase.cc
+++ b/src/memory/RomDatabase.cc
@@ -119,10 +119,10 @@ void DBParser::start(string_ref tag)
case SOFTWAREDB:
if (tag == "software") {
system.clear();
- title = 0;
- company = 0;
- year = 0;
- country = 0;
+ toString32(bufStart, bufStart, title);
+ toString32(bufStart, bufStart, company);
+ toString32(bufStart, bufStart, year);
+ toString32(bufStart, bufStart, country);
genMSXid = 0;
dumps.clear();
state = SOFTWARE;
@@ -171,6 +171,8 @@ void DBParser::start(string_ref tag)
dumps.resize(dumps.size() + 1);
dumps.back().type = ROM_UNKNOWN;
dumps.back().origValue = false;
+ toString32(bufStart, bufStart, dumps.back().remark);
+ toString32(bufStart, bufStart, dumps.back().origData);
state = DUMP;
return;
}
diff --git a/src/memory/RomMitsubishiMLTS2.cc b/src/memory/RomMitsubishiMLTS2.cc
index 4e04114..40a397a 100644
--- a/src/memory/RomMitsubishiMLTS2.cc
+++ b/src/memory/RomMitsubishiMLTS2.cc
@@ -1,9 +1,6 @@
#include "RomMitsubishiMLTS2.hh"
-#include "Rom.hh"
-#include "Ram.hh"
#include "CacheLine.hh"
#include "serialize.hh"
-#include "memory.hh"
#include <iostream>
@@ -11,15 +8,11 @@ namespace openmsx {
RomMitsubishiMLTS2::RomMitsubishiMLTS2(const DeviceConfig& config, Rom&& rom_)
: Rom8kBBlocks(config, std::move(rom_))
- , ram(make_unique<Ram>(config, getName() + " RAM", "ML-TS2 RAM", 0x2000))
+ , ram(config, getName() + " RAM", "ML-TS2 RAM", 0x2000)
{
reset(EmuTime::dummy());
}
-RomMitsubishiMLTS2::~RomMitsubishiMLTS2()
-{
-}
-
void RomMitsubishiMLTS2::reset(EmuTime::param /*time*/)
{
setRom(2, 0);
@@ -28,27 +21,25 @@ void RomMitsubishiMLTS2::reset(EmuTime::param /*time*/)
void RomMitsubishiMLTS2::writeMem(word address, byte value, EmuTime::param /*time*/)
{
if (address == 0x7FC0) {
- byte bank = (value & 1) + (((value >> 2) & 1) << 1) + (((value >> 4) & 1) << 2);
+ byte bank = ((value & 0x10) >> 2) | // transform bit-pattern
+ ((value & 0x04) >> 1) | // ...a.b.c
+ ((value & 0x01) >> 0); // into 00000abc
std::cerr << "Setting MLTS2 mapper page 1 to bank " << int(bank) << std::endl;
setRom(2, bank);
} else if ((0x6000 <= address) && (address < 0x8000)) {
- (*ram)[address & 0x1FFF] = value;
+ ram[address & 0x1FFF] = value;
}
}
byte RomMitsubishiMLTS2::readMem(word address, EmuTime::param time)
{
- if ((0x6000 <= address) && (address < 0x8000)) {
- return (*ram)[address & 0x1FFF];
- } else {
- return Rom8kBBlocks::readMem(address, time);
- }
+ return peekMem(address, time);
}
byte RomMitsubishiMLTS2::peekMem(word address, EmuTime::param time) const
{
if ((0x6000 <= address) && (address < 0x8000)) {
- return (*ram)[address & 0x1FFF];
+ return ram[address & 0x1FFF];
} else {
return Rom8kBBlocks::peekMem(address, time);
}
@@ -58,23 +49,26 @@ const byte* RomMitsubishiMLTS2::getReadCacheLine(word address) const
{
if (address == (0x7FC0 & CacheLine::HIGH)) return nullptr;
if ((0x6000 <= address) && (address < 0x8000)) {
- return &(*ram)[address & 0x1FFF];
- }
- if ((0x4000 <= address) && (address < 0x6000)) {
- return &(rom[address & 0x1FFF]);
+ return &ram[address & 0x1FFF];
}
- return unmappedRead;
+ return Rom8kBBlocks::getReadCacheLine(address);
}
byte* RomMitsubishiMLTS2::getWriteCacheLine(word address) const
{
if (address == (0x7FC0 & CacheLine::HIGH)) return nullptr;
if ((0x6000 <= address) && (address < 0x8000)) {
- return &(*ram)[address & 0x1FFF];
+ return const_cast<byte*>(&ram[address & 0x1FFF]);
}
return unmappedWrite;
}
+template<typename Archive>
+void RomMitsubishiMLTS2::serialize(Archive& ar, unsigned /*version*/)
+{
+ ar.template serializeBase<Rom8kBBlocks>(*this);
+}
+INSTANTIATE_SERIALIZE_METHODS(RomMitsubishiMLTS2);
REGISTER_MSXDEVICE(RomMitsubishiMLTS2, "RomMitsubishiMLTS2");
} // namespace openmsx
diff --git a/src/memory/RomMitsubishiMLTS2.hh b/src/memory/RomMitsubishiMLTS2.hh
index 344295e..a4b4c21 100644
--- a/src/memory/RomMitsubishiMLTS2.hh
+++ b/src/memory/RomMitsubishiMLTS2.hh
@@ -2,7 +2,7 @@
#define ROMMITSUBISHIMLTS2_HH
#include "RomBlocks.hh"
-#include <memory>
+#include "Ram.hh"
// PLEASE NOTE!
//
@@ -13,21 +13,23 @@ namespace openmsx {
class Ram;
-class RomMitsubishiMLTS2 : public Rom8kBBlocks
+class RomMitsubishiMLTS2 final : public Rom8kBBlocks
{
public:
RomMitsubishiMLTS2(const DeviceConfig& config, Rom&& rom);
- virtual ~RomMitsubishiMLTS2();
- virtual void reset(EmuTime::param time);
- virtual void writeMem(word address, byte value, EmuTime::param time);
- virtual byte readMem(word address, EmuTime::param time) override;
- virtual byte peekMem(word address, EmuTime::param time) const override;
- virtual byte* getWriteCacheLine(word address) const override;
- virtual const byte* getReadCacheLine(word address) const override;
+ void reset(EmuTime::param time) override;
+ void writeMem(word address, byte value, EmuTime::param time) override;
+ byte readMem(word address, EmuTime::param time) override;
+ byte peekMem(word address, EmuTime::param time) const override;
+ byte* getWriteCacheLine(word address) const override;
+ const byte* getReadCacheLine(word address) const override;
+
+ template<typename Archive>
+ void serialize(Archive& ar, unsigned version);
private:
- const std::unique_ptr<Ram> ram;
+ Ram ram;
};
} // namespace openmsx
hooks/post-receive
--
openMSX (main)
|
|
From: Manuel B. <man...@us...> - 2015-06-01 21:25:45
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "openMSX (main)".
The branch, master has been updated
via 99e0f001e83edd733aeed98f110ad1bc922090dd (commit)
from a180809412df3c90282b18a62ef483da34d18360 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 99e0f001e83edd733aeed98f110ad1bc922090dd
Author: Manuel Bilderbeek <Man...@gm...>
Date: Mon Jun 1 23:25:20 2015 +0200
Added some more findings on this Sony HB-101
-----------------------------------------------------------------------
Summary of changes:
share/machines/Sony_HB-101.xml | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/share/machines/Sony_HB-101.xml b/share/machines/Sony_HB-101.xml
index d16bf1b..4c07bd6 100644
--- a/share/machines/Sony_HB-101.xml
+++ b/share/machines/Sony_HB-101.xml
@@ -15,7 +15,7 @@
https://plus.google.com/photos/112629367302659371233/albums/6155507573429019985
- Z80: SHARP LH0080A z80A-CPU-D
+ Z80: SHARP LH0080A Z80A-CPU-D
PPI: NEC D8255AC-5
PSG: Yamaha YM2149F
VDP: TMS9118NL
@@ -91,7 +91,7 @@
<ROM id="Personal Data Bank">
<rom>
<filename>hb-101_firmware.rom</filename>
- <sha1>64adb7fcf9b86f59d8658badb02f58e61bb15712</sha1> <!-- note: original ROM dump showed a 2nd 16kB, but that one was completely 0x7E. As there's only a 16kB and a 32kB mask ROM on the PCB, it must really be a 16kB ROM -->
+ <sha1>64adb7fcf9b86f59d8658badb02f58e61bb15712</sha1> <!-- note: original ROM dump showed a 2nd 16kB, but that one was completely 0x7E. As there's only a 16kB and a 32kB mask ROM on the PCB, it must really be a 16kB ROM. Moreover, we found out that all unconnected memory showed as 0x7E (but unconnected I/O ports showed 0xFF) -->
</rom>
<mem base="0x4000" size="0x4000"/>
</ROM>
hooks/post-receive
--
openMSX (main)
|
|
From: Manuel B. <man...@us...> - 2015-06-01 20:58:26
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "openMSX (main)".
The branch, master has been updated
via a180809412df3c90282b18a62ef483da34d18360 (commit)
via c50716a9659baa9f5997611af573fd2b0b39cba7 (commit)
from 8f8ec53e9eae935cf50fd1dd57bc5fdcc796d7ad (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit a180809412df3c90282b18a62ef483da34d18360
Author: Manuel Bilderbeek <Man...@gm...>
Date: Mon Jun 1 22:57:03 2015 +0200
Added (Japanese) Sony HB-101, thanks to Werner Kai
commit c50716a9659baa9f5997611af573fd2b0b39cba7
Author: Manuel Bilderbeek <Man...@gm...>
Date: Mon Jun 1 21:16:21 2015 +0200
Document some ident.bas findings.
-----------------------------------------------------------------------
Summary of changes:
.../machines/{Sony_HB-101P.xml => Sony_HB-101.xml} | 44 +++++++++++++++----
share/machines/WIP_Mitsubishi_ML-TS2.xml | 6 +++
2 files changed, 40 insertions(+), 10 deletions(-)
copy share/machines/{Sony_HB-101P.xml => Sony_HB-101.xml} (51%)
diff --git a/share/machines/Sony_HB-101P.xml b/share/machines/Sony_HB-101.xml
similarity index 51%
copy from share/machines/Sony_HB-101P.xml
copy to share/machines/Sony_HB-101.xml
index 666c010..d16bf1b 100644
--- a/share/machines/Sony_HB-101P.xml
+++ b/share/machines/Sony_HB-101.xml
@@ -4,31 +4,55 @@
<info>
<manufacturer>Sony</manufacturer>
- <code>HB-101P</code>
- <release_year>1985?</release_year>
+ <code>HB-101</code>
+ <release_year>1984</release_year>
<description/>
<type>MSX</type>
</info>
+ <!--
+ Info based on Werner Kai's red Sony HB-101 with serial 207174.
+
+ https://plus.google.com/photos/112629367302659371233/albums/6155507573429019985
+
+ Z80: SHARP LH0080A z80A-CPU-D
+ PPI: NEC D8255AC-5
+ PSG: Yamaha YM2149F
+ VDP: TMS9118NL
+ 1x OKI M38128A 16Kx8 Mask ROM
+ 1x Hitachi HN613256P 32Kx8 mask rom
+
+ VDP 4k/16k: NO
+ VDP has address latch: NO
+ VDP has sprite clones: YES
+ VDP has screen 2 mirrored mode: YES
+ VDP has mode 3 mixed mode: YES
+ Z80 scf: 01C529ED01D429FDC (dunno)
+ Z80 cpl: 3AFF12D7 (standard)
+ Z80 out (c),0: 0 (MSX)
+ PSG pin 6/7 quirk: C (YES)
+ PSGmask: YM2149 like
+ -->
+
<CassettePort/>
<devices>
<PPI id="ppi">
<key_ghosting>true</key_ghosting>
- <key_ghosting_sgc_protected>true</key_ghosting_sgc_protected>
+ <key_ghosting_sgc_protected>false</key_ghosting_sgc_protected>
<sound>
<volume>16000</volume>
</sound>
<io base="0xA8" num="4"/>
- <keyboard_type>int</keyboard_type>
+ <keyboard_type>jp_ansi</keyboard_type>
<has_keypad>false</has_keypad>
<code_kana_locks>false</code_kana_locks>
<graph_locks>false</graph_locks>
</PPI>
<VDP id="VDP">
- <version>TMS9129</version>
+ <version>TMS9118</version>
<io base="0x98" num="2"/>
</VDP>
@@ -48,12 +72,12 @@
<primary slot="0">
<RAM id="Main RAM">
- <mem base="0x8000" size="0x8000"/>
+ <mem base="0xC000" size="0x4000"/>
</RAM>
<ROM id="MSX BIOS with BASIC ROM">
<rom>
- <filename>hb-101p_basic-bios1.rom</filename>
- <sha1>5e7c8eab238712d1e18b0219c0f4d4dae180420d</sha1> <!-- same as Sony HB-201P, verified by Ruben Arraya -->
+ <filename>hb-101_basic-bios1.rom</filename>
+ <sha1>302afb5d8be26c758309ca3df611ae69cced2821</sha1>
</rom>
<mem base="0x0000" size="0x8000"/>
</ROM>
@@ -66,8 +90,8 @@
<primary slot="3">
<ROM id="Personal Data Bank">
<rom>
- <filename>hb-101p_firmware.rom</filename>
- <sha1>8ffc24677fd9d2606a79718764261cdf02434f0a</sha1> <!-- different than Sony HB-201P, verified by Ruben Arraya -->
+ <filename>hb-101_firmware.rom</filename>
+ <sha1>64adb7fcf9b86f59d8658badb02f58e61bb15712</sha1> <!-- note: original ROM dump showed a 2nd 16kB, but that one was completely 0x7E. As there's only a 16kB and a 32kB mask ROM on the PCB, it must really be a 16kB ROM -->
</rom>
<mem base="0x4000" size="0x4000"/>
</ROM>
diff --git a/share/machines/WIP_Mitsubishi_ML-TS2.xml b/share/machines/WIP_Mitsubishi_ML-TS2.xml
index 59734c6..f353a18 100644
--- a/share/machines/WIP_Mitsubishi_ML-TS2.xml
+++ b/share/machines/WIP_Mitsubishi_ML-TS2.xml
@@ -8,6 +8,12 @@
Mobo shows some modem chip: MP7246 JPN 8719δ
CPU: NEC D780C -1
S1985 MSX ENGINE
+
+ z80 scf: 01C501ED01D401C (NEC)
+ z80 cpl: 3AFF12D7 (standard)
+ Z80 out (c),0: 0 (MSX)
+ PSG pin 6/7 quirk: C (YES)
+ PSGmask: AY8910-like
-->
<info>
hooks/post-receive
--
openMSX (main)
|
|
From: Wouter V. <m97...@us...> - 2015-06-01 18:34:16
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "openMSX (main)".
The branch, master has been updated
via 8f8ec53e9eae935cf50fd1dd57bc5fdcc796d7ad (commit)
via 15aac5ab1196814fedb0f9f6e86636a62a58242c (commit)
via 7712257f0db33e2e2257347e39d2afee204927b3 (commit)
via 3bb7cde0e13cc5ae94526ebaf8cd844dc91980be (commit)
via f1925a61ef43d328f0adb4009f2f90dd237ade3b (commit)
via a560e1bf8d0fbb4465f9a55e2bf8df584191a91b (commit)
from 198d2619fe368e7764ec47766c84c50e6bebc3c4 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 8f8ec53e9eae935cf50fd1dd57bc5fdcc796d7ad
Author: m9710797 <ver...@gm...>
Date: Mon Jun 1 20:18:50 2015 +0200
Tweak '"::" + machineID + "::" + name' string calculation
Replace
"::" + machineID + "::" + name
with
machineID + name
but store the subexpression
"::" + machineID + "::"
inside the (new) machineID variable.
This patch has 1 unintentional side effect. (In related code) before we called
namespace create ::foo {}
now that becomes
namespace create ::foo:: {}
and similar for "namespace delete", but I verified that both variants have the
same effect.
The motivation for this patch is the following: when looking at some profile
results I noticed that the Tcl setting related functions perform relatively
many string manipulations. This patch is one small step to improve that. (I'm
still playing with other improvements but they are not quite ready yet).
commit 15aac5ab1196814fedb0f9f6e86636a62a58242c
Author: m9710797 <ver...@gm...>
Date: Mon Jun 1 19:26:01 2015 +0200
Inline some small frequently called functions
These showed up higher than I expected in a profile of startup speed. Inlining
them gives a small but measurable speedup. Counter intuitively code size
actually goes down when inlining these functions (I measured debug, devel, opt,
LTO build flavours) but that might simply be because of now different
(automatic) inlining decisions made by the compiler, because the functions are
not _so_ simple that they are shorter than a function call.
As expected the LTO flavour (Link Time Optimizations) shows little speed
improvements. So hopefully in a few years these kind of inlining tweaks can be
fully left to the compiler. (Once people stop complaining about slow build
times ;-)
commit 7712257f0db33e2e2257347e39d2afee204927b3
Author: Wouter Vermaelen <ver...@gm...>
Date: Wed May 27 16:48:49 2015 +0200
[4/4] use String32 instead of string_ref in RomInfo
The previous patches in this series already mentioned the key ideas, but I'll
repeat/summarize them again below.
When parsing the (user+system) softwaredb.xml files we roughly take the
following approach:
1) Read the full XML file in a memory buffer.
2) Parse the file using our rapidsax parser, this calls various callbacks.
3) These callbacks construct an additional data structure: a vector of RomInfo
objects. Those objects refer to the strings in the XML buffer. (This means
the buffer allocated in step 1 cannot be freed once parsing is done).
On a 64-bit system the size of a string_ref object is 16 bytes. Each RomInfo
objects has 6 such string_ref objects (plus some other stuff). The strings that
are referred to are typically not very large. So this means that the meta-data
(I mean the vector of RomInfo objects) approaches the size of the original XML
file. I measured about 600kB for the raw XML data and 430kB for the meta-data.
In this patch series we greatly reduce the size of the meta-data. To do this we
combine two ideas:
- Instead of storing the size of the strings (in string_ref) we zero-terminate
the strings (so we modify the in-memory copy of the XML file). This halves
the size of the string_ref objects. (Operations on zero-terminated strings
are often slightly slower compared to sized-strings, but these strings are
only infrequently used so this doesn't matter.)
- On 64-bit systems a pointer is 8-bytes. But 4 bytes are already sufficient to
address 4GB of memory (I don't expect the size of the softwaredb.xml file to
grow over 1MB, that's far below 4GB). So if we replace pointers with indices
in a buffer we can again halve the cost of each string_ref object (but only
on 64-bit systems).
After these changes the size of the meta-data shrinks to about 176kB (from
430kB). That's not exactly 4x less because there are also some other members in
RomInfo that remain unchanged.
I also measured the startup speed using 'perf' and 'callgrind'. Both methods
indicate small (less than 0.5%) but repeatable speedups. Speed was not the goal
of this patch, but it's a nice bonus.
commit 3bb7cde0e13cc5ae94526ebaf8cd844dc91980be
Author: Wouter Vermaelen <ver...@gm...>
Date: Thu May 21 16:34:09 2015 +0200
[3/n] Read user and system softwaredb.xml in a single buffer
In a later patch in this series we will refer to strings using indices in a
buffer. For this to work we need both user and system softwaredb.xml strings to
reside in a single buffer. (And after the parsing has finished, we don't
know/care anymore whether a RomInfo originated from the user or the system
softwaredb.xml).
commit f1925a61ef43d328f0adb4009f2f90dd237ade3b
Author: m9710797 <ver...@gm...>
Date: Wed May 27 19:22:44 2015 +0200
[2/4] Tweak rapidsax XML-parser
One of the properties of our rapidsax parser is that it doesn't make any string
copies. Instead it does XML-entity replacement in-place (in the original source
buffer). The parser then passes references to parsed pieces of text (text or
attributes) as string_ref objects to various callback methods.
Before this patch series, the RomDatabase code stored those string_ref's inside
RomInfo objects. A string_ref is basically a pointer and a size, it tells where
to find the string and how long it is. In this patch series we get rid of the
size-part. Instead of storing the size of each string we zero-terminate them.
(We store many RomInfo's and typically use only very few, so this is a good
trade-off).
Because of the structure of XML files there's always room in the buffer to
store the 0-terminator character. Though we can only overwrite the content of
the buffer after the original character has been processed by the parser. This
patch changes the order in the rapidsax code a bit so that it's always OK for a
callback to 0-terminate the text it just received.
commit a560e1bf8d0fbb4465f9a55e2bf8df584191a91b
Author: m9710797 <ver...@gm...>
Date: Thu May 28 18:53:14 2015 +0200
[1/4] Added String32.hh
See comments in the code for more details. In short:
- this does nothing on 32-bit systems
- on 64-bit systems it halves the storage requirements to refer to a string in
a buffer (a buffer which has a maximum size of 4GB)
This will be used later in this patch series to space-optimize RomDatabase.
-----------------------------------------------------------------------
Summary of changes:
src/commands/Interpreter.cc | 4 +-
src/commands/MSXCommandController.cc | 4 +-
src/commands/MSXCommandController.hh | 2 +-
src/memory/Rom.cc | 11 ++-
src/memory/RomDatabase.cc | 106 +++++++++++++++++++++-------------
src/memory/RomDatabase.hh | 4 +-
src/memory/RomInfo.hh | 45 +++++++++-----
src/utils/String32.hh | 42 +++++++++++++
src/utils/rapidsax.hh | 25 ++++++---
src/utils/sha1.cc | 16 -----
src/utils/sha1.hh | 15 ++++-
src/utils/string_ref.cc | 28 ---------
src/utils/string_ref.hh | 23 ++++++-
13 files changed, 202 insertions(+), 123 deletions(-)
create mode 100644 src/utils/String32.hh
diff --git a/src/commands/Interpreter.cc b/src/commands/Interpreter.cc
index 75999f2..2d84191 100644
--- a/src/commands/Interpreter.cc
+++ b/src/commands/Interpreter.cc
@@ -408,12 +408,12 @@ char* Interpreter::traceProc(ClientData clientData, Tcl_Interp* interp,
void Interpreter::createNamespace(const std::string& name)
{
- execute("namespace eval ::" + name + " {}");
+ execute("namespace eval " + name + " {}");
}
void Interpreter::deleteNamespace(const std::string& name)
{
- execute("namespace delete ::" + name);
+ execute("namespace delete " + name);
}
void Interpreter::poll()
diff --git a/src/commands/MSXCommandController.cc b/src/commands/MSXCommandController.cc
index d5c0716..27b426e 100644
--- a/src/commands/MSXCommandController.cc
+++ b/src/commands/MSXCommandController.cc
@@ -29,7 +29,7 @@ MSXCommandController::MSXCommandController(
, reactor(reactor_)
, motherboard(motherboard_)
, msxEventDistributor(msxEventDistributor_)
- , machineID(machineID_)
+ , machineID("::" + machineID_ + "::")
{
globalCommandController.getInterpreter().createNamespace(machineID);
@@ -61,7 +61,7 @@ MSXCommandController::~MSXCommandController()
string MSXCommandController::getFullName(string_ref name)
{
- return "::" + machineID + "::" + name;
+ return machineID + name;
}
void MSXCommandController::registerCommand(Command& command, const string& str)
diff --git a/src/commands/MSXCommandController.hh b/src/commands/MSXCommandController.hh
index 13bf44e..03fb311 100644
--- a/src/commands/MSXCommandController.hh
+++ b/src/commands/MSXCommandController.hh
@@ -79,7 +79,7 @@ private:
Reactor& reactor;
MSXMotherBoard& motherboard;
MSXEventDistributor& msxEventDistributor;
- const std::string& machineID;
+ std::string machineID;
std::unique_ptr<InfoCommand> machineInfoCommand;
StringMap<Command*> commandMap;
diff --git a/src/memory/Rom.cc b/src/memory/Rom.cc
index b014f6a..e39859b 100644
--- a/src/memory/Rom.cc
+++ b/src/memory/Rom.cc
@@ -261,10 +261,13 @@ void Rom::init(MSXMotherBoard& motherBoard, const XMLElement& config,
// TODO fix this, this is a hack that depends heavily on
// HardwareConig::createRomConfig
if (StringOp::startsWith(name, "MSXRom")) {
- const auto* romInfo = motherBoard.getReactor().
- getSoftwareDatabase().fetchRomInfo(getOriginalSHA1());
- if (romInfo && !romInfo->getTitle().empty()) {
- name = romInfo->getTitle().str();
+ auto& db = motherBoard.getReactor().getSoftwareDatabase();
+ string_ref title;
+ if (const auto* romInfo = db.fetchRomInfo(getOriginalSHA1())) {
+ title = romInfo->getTitle(db.getBufferStart());
+ }
+ if (!title.empty()) {
+ name = title.str();
} else {
// unknown ROM, use file name
name = file.getOriginalName();
diff --git a/src/memory/RomDatabase.cc b/src/memory/RomDatabase.cc
index f32a501..5d9b22c 100644
--- a/src/memory/RomDatabase.cc
+++ b/src/memory/RomDatabase.cc
@@ -8,6 +8,7 @@
#include "CliComm.hh"
#include "StringOp.hh"
#include "StringMap.hh"
+#include "String32.hh"
#include "outer.hh"
#include "rapidsax.hh"
#include "unreachable.hh"
@@ -25,10 +26,11 @@ class DBParser : public rapidsax::NullHandler
{
public:
DBParser(RomDatabase::RomDB& db_, UnknownTypes& unknownTypes_,
- CliComm& cliComm_)
+ CliComm& cliComm_, char* bufStart_)
: db(db_)
, unknownTypes(unknownTypes_)
, cliComm(cliComm_)
+ , bufStart(bufStart_)
, state(BEGIN)
, unknownLevel(0)
, initialSize(db.size())
@@ -45,6 +47,7 @@ public:
string_ref getSystemID() const { return systemID; }
private:
+ String32 cIndex(string_ref str);
void addEntries();
void addAllEntries();
@@ -70,9 +73,9 @@ private:
};
struct Dump {
- string_ref remark;
+ String32 remark;
Sha1Sum hash;
- string_ref origData;
+ String32 origData;
RomType type;
bool origValue;
};
@@ -80,6 +83,7 @@ private:
RomDatabase::RomDB& db;
UnknownTypes& unknownTypes;
CliComm& cliComm;
+ char* bufStart;
string_ref systemID;
string_ref type;
@@ -87,10 +91,10 @@ private:
vector<Dump> dumps;
string_ref system;
- string_ref title;
- string_ref company;
- string_ref year;
- string_ref country;
+ String32 title;
+ String32 company;
+ String32 year;
+ String32 country;
int genMSXid;
State state;
@@ -115,10 +119,10 @@ void DBParser::start(string_ref tag)
case SOFTWAREDB:
if (tag == "software") {
system.clear();
- title.clear();
- company.clear();
- year.clear();
- country.clear();
+ title = 0;
+ company = 0;
+ year = 0;
+ country = 0;
genMSXid = 0;
dumps.clear();
state = SOFTWARE;
@@ -306,16 +310,16 @@ void DBParser::text(string_ref text)
system = text;
break;
case TITLE:
- title = text;
+ title = cIndex(text);
break;
case COMPANY:
- company = text;
+ company = cIndex(text);
break;
case YEAR:
- year = text;
+ year = cIndex(text);
break;
case COUNTRY:
- country = text;
+ country = cIndex(text);
break;
case GENMSXID:
try {
@@ -328,7 +332,7 @@ void DBParser::text(string_ref text)
}
break;
case ORIGINAL:
- dumps.back().origData = text;
+ dumps.back().origData = cIndex(text);
break;
case TYPE:
type = text;
@@ -341,7 +345,7 @@ void DBParser::text(string_ref text)
break;
case DUMP_REMARK:
case DUMP_TEXT:
- dumps.back().remark = text;
+ dumps.back().remark = cIndex(text);
break;
case BEGIN:
case SOFTWAREDB:
@@ -355,6 +359,16 @@ void DBParser::text(string_ref text)
}
}
+String32 DBParser::cIndex(string_ref str)
+{
+ auto* begin = const_cast<char*>(str.data());
+ auto* end = begin + str.size();
+ *end = 0;
+ String32 result;
+ toString32(bufStart, begin, result);
+ return result;
+}
+
// called on </software>
void DBParser::addEntries()
{
@@ -535,18 +549,11 @@ void DBParser::doctype(string_ref text)
systemID = t.substr(0, pos2);
}
-static void parseDB(CliComm& cliComm, const string& filename,
- MemBuffer<char>& buf, RomDatabase::RomDB& db,
- UnknownTypes& unknownTypes)
+static void parseDB(CliComm& cliComm, char* buf, char* bufStart,
+ RomDatabase::RomDB& db, UnknownTypes& unknownTypes)
{
- File file(filename);
- auto size = file.getSize();
- buf.resize(size + 1);
- file.read(buf.data(), size);
- buf[size] = 0;
-
- DBParser handler(db, unknownTypes, cliComm);
- rapidsax::parse<rapidsax::trimWhitespace>(handler, buf.data());
+ DBParser handler(db, unknownTypes, cliComm, bufStart);
+ rapidsax::parse<rapidsax::trimWhitespace>(handler, buf);
if (handler.getSystemID() != "softwaredb1.dtd") {
throw rapidsax::ParseError(
@@ -563,14 +570,12 @@ RomDatabase::RomDatabase(GlobalCommandController& commandController, CliComm& cl
UnknownTypes unknownTypes;
// first user- then system-directory
vector<string> paths = systemFileContext().getPaths();
+ vector<File> files;
+ size_t bufferSize = 0;
for (auto& p : paths) {
- string filename = FileOperations::join(p, "softwaredb.xml");
try {
- buffers.emplace_back();
- parseDB(cliComm, filename, buffers.back(), db, unknownTypes);
- } catch (rapidsax::ParseError& e) {
- cliComm.printWarning(StringOp::Builder() <<
- "Rom database parsing failed: " << e.what());
+ files.emplace_back(FileOperations::join(p, "softwaredb.xml"));
+ bufferSize += files.back().getSize() + 1;
} catch (MSXException& /*e*/) {
// Ignore. It's not unusual the DB in the user
// directory is not found. In case there's an error
@@ -578,6 +583,26 @@ RomDatabase::RomDatabase(GlobalCommandController& commandController, CliComm& cl
// warning, but that's done below.
}
}
+ buffer.resize(bufferSize);
+ size_t bufferOffset = 0;
+ for (auto& file : files) {
+ try {
+ auto size = file.getSize();
+ auto* buf = &buffer[bufferOffset];
+ bufferOffset += size + 1;
+
+ file.read(buf, size);
+ buf[size] = 0;
+
+ parseDB(cliComm, buf, buffer.data(), db, unknownTypes);
+ } catch (rapidsax::ParseError& e) {
+ cliComm.printWarning(StringOp::Builder() <<
+ "Rom database parsing failed: " << e.what());
+ } catch (MSXException& /*e*/) {
+ // Ignore, see above
+ }
+ }
+ if (bufferSize) buffer[0] = 0;
if (db.empty()) {
cliComm.printWarning(
"Couldn't load software database.\n"
@@ -626,18 +651,19 @@ void RomDatabase::SoftwareInfoTopic::execute(
"Software with sha1sum " + sha1sum.toString() + " not found");
}
+ const char* bufStart = romDatabase.buffer.data();
result.addListElement("title");
- result.addListElement(romInfo->getTitle());
+ result.addListElement(romInfo->getTitle(bufStart));
result.addListElement("year");
- result.addListElement(romInfo->getYear());
+ result.addListElement(romInfo->getYear(bufStart));
result.addListElement("company");
- result.addListElement(romInfo->getCompany());
+ result.addListElement(romInfo->getCompany(bufStart));
result.addListElement("country");
- result.addListElement(romInfo->getCountry());
+ result.addListElement(romInfo->getCountry(bufStart));
result.addListElement("orig_type");
- result.addListElement(romInfo->getOrigType());
+ result.addListElement(romInfo->getOrigType(bufStart));
result.addListElement("remark");
- result.addListElement(romInfo->getRemark());
+ result.addListElement(romInfo->getRemark(bufStart));
result.addListElement("original");
result.addListElement(romInfo->getOriginal());
result.addListElement("mapper_type_name");
diff --git a/src/memory/RomDatabase.hh b/src/memory/RomDatabase.hh
index f349f51..87734de 100644
--- a/src/memory/RomDatabase.hh
+++ b/src/memory/RomDatabase.hh
@@ -26,9 +26,11 @@ public:
*/
const RomInfo* fetchRomInfo(const Sha1Sum& sha1sum) const;
+ const char* getBufferStart() const { return buffer.data(); }
+
private:
RomDB db;
- std::vector<MemBuffer<char>> buffers;
+ MemBuffer<char> buffer;
struct SoftwareInfoTopic final : InfoTopic {
SoftwareInfoTopic(InfoCommand& openMSXInfoCommand);
diff --git a/src/memory/RomInfo.hh b/src/memory/RomInfo.hh
index fcce89f..890e959 100644
--- a/src/memory/RomInfo.hh
+++ b/src/memory/RomInfo.hh
@@ -2,6 +2,7 @@
#define ROMINFO_HH
#include "RomTypes.hh"
+#include "String32.hh"
#include "string_ref.hh"
#include <vector>
#include <utility>
@@ -11,10 +12,10 @@ namespace openmsx {
class RomInfo
{
public:
- RomInfo(string_ref title_, string_ref year_,
- string_ref company_, string_ref country_,
- bool original_, string_ref origType_,
- string_ref remark_, RomType romType_,
+ RomInfo(String32 title_, String32 year_,
+ String32 company_, String32 country_,
+ bool original_, String32 origType_,
+ String32 remark_, RomType romType_,
int genMSXid_)
: title (title_)
, year (year_)
@@ -28,12 +29,24 @@ public:
{
}
- const string_ref getTitle() const { return title; }
- const string_ref getYear() const { return year; }
- const string_ref getCompany() const { return company; }
- const string_ref getCountry() const { return country; }
- const string_ref getOrigType() const { return origType; }
- const string_ref getRemark() const { return remark; }
+ const string_ref getTitle (const char* buf) const {
+ return fromString32(buf, title);
+ }
+ const string_ref getYear (const char* buf) const {
+ return fromString32(buf, year);
+ }
+ const string_ref getCompany (const char* buf) const {
+ return fromString32(buf, company);
+ }
+ const string_ref getCountry (const char* buf) const {
+ return fromString32(buf, country);
+ }
+ const string_ref getOrigType(const char* buf) const {
+ return fromString32(buf, origType);
+ }
+ const string_ref getRemark (const char* buf) const {
+ return fromString32(buf, remark);
+ }
RomType getRomType() const { return romType; }
bool getOriginal() const { return original; }
int getGenMSXid() const { return genMSXid; }
@@ -45,12 +58,12 @@ public:
static unsigned getBlockSize (RomType type);
private:
- string_ref title;
- string_ref year;
- string_ref company;
- string_ref country;
- string_ref origType;
- string_ref remark;
+ String32 title;
+ String32 year;
+ String32 company;
+ String32 country;
+ String32 origType;
+ String32 remark;
RomType romType;
int genMSXid;
bool original;
diff --git a/src/utils/String32.hh b/src/utils/String32.hh
new file mode 100644
index 0000000..e918c78
--- /dev/null
+++ b/src/utils/String32.hh
@@ -0,0 +1,42 @@
+#ifndef STRING32_HH
+#define STRING32_HH
+
+#include <cassert>
+#include <cstdint>
+#include <limits>
+#include <type_traits>
+
+// Given a buffer of max size 4GB, 32 bits are enough to address each position
+// in that buffer.
+// - On 32-bit systems we can use a pointer to a location in the buffer.
+// - On 64-bit systems a pointer is too large (64 bit), but an index in the
+// buffer works fine. (An index works fine on 32-bit systems as well, but is
+// slightly less efficient).
+// The String32 helper abstracts the difference between the two above
+// approaches. In both cases it is a 32-bit type (hence the name). And on
+// both 32/64-bit systems it uses the more effient implementation.
+
+using String32 = std::conditional<
+ (sizeof(char*) > sizeof(uint32_t)), // is a pointer bigger than an uint32_t
+ uint32_t, // yes -> use uint32_t
+ const char*>::type; // no -> directly use pointer
+
+// convert string in buffer to String32
+inline void toString32(const char* buffer, const char* str, uint32_t& result) {
+ assert(buffer <= str);
+ assert(str < (buffer + std::numeric_limits<uint32_t>::max()));
+ result = str - buffer;
+}
+inline void toString32(const char* /*buffer*/, const char* str, const char*& result) {
+ result = str;
+}
+
+// convert String32 back to string in buffer
+inline const char* fromString32(const char* buffer, uint32_t str32) {
+ return buffer + str32;
+}
+inline const char* fromString32(const char* /*buffer*/, const char* str32) {
+ return str32;
+}
+
+#endif
diff --git a/src/utils/rapidsax.hh b/src/utils/rapidsax.hh
index c62a4dc..51b5a46 100644
--- a/src/utils/rapidsax.hh
+++ b/src/utils/rapidsax.hh
@@ -14,6 +14,7 @@
// RapidXml produces a DOM-like output. This parser has a SAX-like interface.
#include "string_ref.hh"
+#include <cassert>
#include <cstdint>
namespace rapidsax {
@@ -496,6 +497,13 @@ private:
}
}
+ // check next char before calling handler.text()
+ if (*text == '\0') {
+ throw ParseError("unexpected end of data", text);
+ } else {
+ assert(*text == '<');
+ }
+
// Handle text, but only if non-empty.
auto len = end - value;
if (len) handler.text(string_ref(value, len));
@@ -620,10 +628,10 @@ private:
char* contentsStart = text; // start before ws is skipped
skip<WhitespacePred>(text); // Skip ws between > and contents
-afterText: // After parseText() jump here instead of continuing
- // the loop, because skipping whitespace is unnecessary.
switch (*text) {
case '<': // Node closing or child node
+afterText: // After parseText() jump here instead of continuing
+ // the loop, because skipping whitespace is unnecessary.
if (text[1] == '/') {
// Node closing
text += 2; // skip '</'
@@ -689,6 +697,13 @@ afterText: // After parseText() jump here instead of continuing
char* valueEnd = (quote == '\'')
? skipAndExpand<AttPred1, AttPurePred1, FLAGS2>(text)
: skipAndExpand<AttPred2, AttPurePred2, FLAGS2>(text);
+ // Make sure that end quote is present
+ // check before calling handler.xxx()
+ if (*text != quote) {
+ throw ParseError("expected ' or \"", text);
+ }
+ ++text; // skip quote
+
if (!declaration) {
handler.attribute(string_ref(name, nameEnd),
string_ref(value, valueEnd));
@@ -697,12 +712,6 @@ afterText: // After parseText() jump here instead of continuing
string_ref(value, valueEnd));
}
- // Make sure that end quote is present
- if (*text != quote) {
- throw ParseError("expected ' or \"", text);
- }
- ++text; // skip quote
-
skip<WhitespacePred>(text); // skip ws after value
}
}
diff --git a/src/utils/sha1.cc b/src/utils/sha1.cc
index 250881c..be60056 100644
--- a/src/utils/sha1.cc
+++ b/src/utils/sha1.cc
@@ -154,22 +154,6 @@ void Sha1Sum::clear()
}
}
-bool Sha1Sum::operator==(const Sha1Sum& other) const
-{
- for (int i = 0; i < 5; ++i) {
- if (a[i] != other.a[i]) return false;
- }
- return true;
-}
-
-bool Sha1Sum::operator<(const Sha1Sum& other) const
-{
- for (int i = 0; i < 5-1; ++i) {
- if (a[i] != other.a[i]) return a[i] < other.a[i];
- }
- return a[5-1] < other.a[5-1];
-}
-
// class SHA1
diff --git a/src/utils/sha1.hh b/src/utils/sha1.hh
index af4fb0b..a135c92 100644
--- a/src/utils/sha1.hh
+++ b/src/utils/sha1.hh
@@ -31,9 +31,20 @@ public:
bool empty() const;
void clear();
- bool operator==(const Sha1Sum& other) const;
+ bool operator==(const Sha1Sum& other) const {
+ for (int i = 0; i < 5; ++i) {
+ if (a[i] != other.a[i]) return false;
+ }
+ return true;
+ }
bool operator!=(const Sha1Sum& other) const { return !(*this == other); }
- bool operator< (const Sha1Sum& other) const;
+ bool operator< (const Sha1Sum& other) const {
+ for (int i = 0; i < 5-1; ++i) {
+ if (a[i] != other.a[i]) return a[i] < other.a[i];
+ }
+ return a[5-1] < other.a[5-1];
+ }
+
bool operator<=(const Sha1Sum& other) const { return !(other < *this); }
bool operator> (const Sha1Sum& other) const { return (other < *this); }
bool operator>=(const Sha1Sum& other) const { return !(*this < other); }
diff --git a/src/utils/string_ref.cc b/src/utils/string_ref.cc
index 42a2f53..1185859 100644
--- a/src/utils/string_ref.cc
+++ b/src/utils/string_ref.cc
@@ -16,28 +16,6 @@ string string_ref::str() const
}
-// mutators
-
-void string_ref::remove_prefix(size_type n)
-{
- if (n <= siz) {
- dat += n;
- siz -= n;
- } else {
- clear();
- }
-}
-
-void string_ref::remove_suffix(size_type n)
-{
- if (n <= siz) {
- siz -= n;
- } else {
- clear();
- }
-}
-
-
// string operations with the same semantics as std::string
int string_ref::compare(string_ref rhs) const
@@ -157,12 +135,6 @@ bool string_ref::ends_with(char x) const
// Comparison operators
-bool operator==(string_ref x, string_ref y)
-{
- return (x.size() == y.size()) &&
- (memcmp(x.data(), y.data(), x.size()) == 0);
-}
-
bool operator< (string_ref x, string_ref y)
{
return x.compare(y) < 0;
diff --git a/src/utils/string_ref.hh b/src/utils/string_ref.hh
index ce88a2b..540cf80 100644
--- a/src/utils/string_ref.hh
+++ b/src/utils/string_ref.hh
@@ -73,8 +73,21 @@ public:
// mutators
void clear() { siz = 0; } // no need to change 'dat'
- void remove_prefix(size_type n);
- void remove_suffix(size_type n);
+ void remove_prefix(size_type n) {
+ if (n <= siz) {
+ dat += n;
+ siz -= n;
+ } else {
+ clear();
+ }
+ }
+ void remove_suffix(size_type n) {
+ if (n <= siz) {
+ siz -= n;
+ } else {
+ clear();
+ }
+ }
void pop_back() { remove_suffix(1); }
void pop_front() { remove_prefix(1); }
@@ -108,7 +121,11 @@ private:
// Comparison operators
-bool operator==(string_ref x, string_ref y);
+inline bool operator==(string_ref x, string_ref y) {
+ return (x.size() == y.size()) &&
+ (memcmp(x.data(), y.data(), x.size()) == 0);
+}
+
bool operator< (string_ref x, string_ref y);
inline bool operator!=(string_ref x, string_ref y) { return !(x == y); }
inline bool operator> (string_ref x, string_ref y) { return (y < x); }
hooks/post-receive
--
openMSX (main)
|
|
From: Manuel B. <man...@us...> - 2015-05-31 21:37:18
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "openMSX (main)".
The branch, master has been updated
via 198d2619fe368e7764ec47766c84c50e6bebc3c4 (commit)
from c762a8838306c6e14b3acba9caf27ace3fd546c4 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 198d2619fe368e7764ec47766c84c50e6bebc3c4
Author: Manuel Bilderbeek <Man...@gm...>
Date: Sun May 31 23:36:55 2015 +0200
Try to fix Windows build due to added Mitsubishi mapper code
-----------------------------------------------------------------------
Summary of changes:
build/msvc/openmsx.vcxproj | 14 ++++++++------
build/msvc/openmsx.vcxproj.filters | 2 ++
2 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/build/msvc/openmsx.vcxproj b/build/msvc/openmsx.vcxproj
index d4f0ce6..1a50847 100644
--- a/build/msvc/openmsx.vcxproj
+++ b/build/msvc/openmsx.vcxproj
@@ -499,6 +499,7 @@
<ClCompile Include="$(OpenMSXSrcDir)\memory\RomMajutsushi.cc" />
<ClCompile Include="$(OpenMSXSrcDir)\memory\RomManbow2.cc" />
<ClCompile Include="$(OpenMSXSrcDir)\memory\RomMSXtra.cc" />
+ <ClCompile Include="$(OpenMSXSrcDir)\memory\RomMitsubishiMLTS2.cc" />
<ClCompile Include="$(OpenMSXSrcDir)\memory\RomMultiRom.cc" />
<ClCompile Include="$(OpenMSXSrcDir)\memory\RomMatraInk.cc" />
<ClCompile Include="$(OpenMSXSrcDir)\memory\RomMSXDOS2.cc" />
@@ -638,14 +639,14 @@
<ClCompile Include="$(OpenMSXSrcDir)\video\GLSnow.cc" />
<ClCompile Include="$(OpenMSXSrcDir)\video\scalers\GLTVScaler.cc" />
<ClCompile Include="$(OpenMSXSrcDir)\video\GLUtil.cc" />
- <ClCompile Include="$(OpenMSXSrcDir)\video\scalers\GLDefaultScaler.cc" />
+ <ClCompile Include="$(OpenMSXSrcDir)\video\scalers\GLDefaultScaler.cc" />
<ClCompile Include="$(OpenMSXSrcDir)\video\scalers\HQ2xLiteScaler.cc" />
<ClCompile Include="$(OpenMSXSrcDir)\video\scalers\HQ2xScaler.cc" />
<ClCompile Include="$(OpenMSXSrcDir)\video\scalers\HQ3xLiteScaler.cc" />
<ClCompile Include="$(OpenMSXSrcDir)\video\scalers\HQ3xScaler.cc" />
<ClCompile Include="$(OpenMSXSrcDir)\video\Icon.cc" />
<ClCompile Include="$(OpenMSXSrcDir)\video\Layer.cc" />
- <ClCompile Include="$(OpenMSXSrcDir)\video\GLContext.cc" />
+ <ClCompile Include="$(OpenMSXSrcDir)\video\GLContext.cc" />
<ClCompile Include="$(OpenMSXSrcDir)\video\scalers\Multiply32.cc" />
<ClCompile Include="$(OpenMSXSrcDir)\video\OutputSurface.cc" />
<ClCompile Include="$(OpenMSXSrcDir)\video\PixelRenderer.cc" />
@@ -1023,6 +1024,7 @@
<None Include="$(OpenMSXSrcDir)\memory\RomKonamiSCC.hh" />
<None Include="$(OpenMSXSrcDir)\memory\RomMajutsushi.hh" />
<None Include="$(OpenMSXSrcDir)\memory\RomManbow2.hh" />
+ <None Include="$(OpenMSXSrcDir)\memory\RomMitsubishiMLTS2.hh" />
<None Include="$(OpenMSXSrcDir)\memory\RomMSXtra.hh" />
<None Include="$(OpenMSXSrcDir)\memory\RomMultiRom.hh" />
<None Include="$(OpenMSXSrcDir)\memory\RomMatraInk.hh" />
@@ -1044,8 +1046,8 @@
<None Include="$(OpenMSXSrcDir)\memory\RomZemina90in1.hh" />
<None Include="$(OpenMSXSrcDir)\memory\SRAM.hh" />
<None Include="$(OpenMSXSrcDir)\memory\MegaFlashRomSCCPlus.hh" />
- <None Include="$(OpenMSXSrcDir)\memory\MegaFlashRomSCCPlusSD.hh" />
- <None Include="$(OpenMSXSrcDir)\memory\SdCard.cc.hh" />
+ <None Include="$(OpenMSXSrcDir)\memory\MegaFlashRomSCCPlusSD.hh" />
+ <None Include="$(OpenMSXSrcDir)\memory\SdCard.cc.hh" />
<None Include="$(OpenMSXSrcDir)\memory\RomDooly.hh" />
<None Include="$(OpenMSXSrcDir)\resource\openmsx.ico" />
<None Include="$(OpenMSXSrcDir)\settings\BooleanSetting.hh" />
@@ -1219,7 +1221,7 @@
<None Include="$(OpenMSXSrcDir)\video\scalers\HQCommon.hh" />
<None Include="$(OpenMSXSrcDir)\video\Icon.hh" />
<None Include="$(OpenMSXSrcDir)\video\Layer.hh" />
- <None Include="$(OpenMSXSrcDir)\video\GLContext.hh" />
+ <None Include="$(OpenMSXSrcDir)\video\GLContext.hh" />
<None Include="$(OpenMSXSrcDir)\video\LayerListener.hh" />
<None Include="$(OpenMSXSrcDir)\video\scalers\LineScalers.hh" />
<None Include="$(OpenMSXSrcDir)\video\scalers\Multiply32.hh" />
@@ -1233,7 +1235,7 @@
<None Include="$(OpenMSXSrcDir)\video\Renderer.hh" />
<None Include="$(OpenMSXSrcDir)\video\RendererFactory.hh" />
<None Include="$(OpenMSXSrcDir)\video\RenderSettings.hh" />
- <None Include="$(OpenMSXSrcDir)\video\scalers\GLDefaultScaler.hh" />
+ <None Include="$(OpenMSXSrcDir)\video\scalers\GLDefaultScaler.hh" />
<None Include="$(OpenMSXSrcDir)\video\scalers\RGBTriplet3xScaler.hh" />
<None Include="$(OpenMSXSrcDir)\video\scalers\SaI2xScaler.hh" />
<None Include="$(OpenMSXSrcDir)\video\scalers\SaI3xScaler.hh" />
diff --git a/build/msvc/openmsx.vcxproj.filters b/build/msvc/openmsx.vcxproj.filters
index 9343539..04eb9cb 100644
--- a/build/msvc/openmsx.vcxproj.filters
+++ b/build/msvc/openmsx.vcxproj.filters
@@ -1327,6 +1327,7 @@
<ClCompile Include="$(OpenMSXSrcDir)\fdc\AVTFDC.cc" />
<ClCompile Include="$(OpenMSXSrcDir)\input\Touchpad.cc" />
<ClCompile Include="$(OpenMSXSrcDir)\memory\RomSuperSwangi.cc" />
+ <ClCompile Include="$(OpenMSXSrcDir)\memory\RomMitsubishiMLTS2.cc" />
<ClCompile Include="$(OpenMSXSrcDir)\memory\RomMSXtra.cc" />
<ClCompile Include="$(OpenMSXSrcDir)\memory\RomMultiRom.cc" />
<ClCompile Include="$(OpenMSXSrcDir)\settings\ReadOnlySetting.cc" />
@@ -2786,6 +2787,7 @@
<None Include="$(OpenMSXSrcDir)\fdc\AVTFDC.hh" />
<None Include="$(OpenMSXSrcDir)\input\Touchpad.hh" />
<None Include="$(OpenMSXSrcDir)\memory\RomSuperSwangi.hh" />
+ <None Include="$(OpenMSXSrcDir)\memory\RomMitsubishiMLTS2.hh" />
<None Include="$(OpenMSXSrcDir)\memory\RomMSXtra.hh" />
<None Include="$(OpenMSXSrcDir)\memory\RomMultiRom.hh" />
<None Include="$(OpenMSXSrcDir)\settings\VideoSourceSetting.hh" />
hooks/post-receive
--
openMSX (main)
|
|
From: Manuel B. <man...@us...> - 2015-05-31 21:13:02
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "openMSX (main)".
The branch, master has been updated
via c762a8838306c6e14b3acba9caf27ace3fd546c4 (commit)
from 9ca42984977b66f41a397b996c23bb60e672a2af (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit c762a8838306c6e14b3acba9caf27ace3fd546c4
Author: Manuel Bilderbeek <Man...@gm...>
Date: Sun May 31 23:11:42 2015 +0200
Added WIP of Mitsubishi ML-TS2, thanks to Werner Kai
-----------------------------------------------------------------------
Summary of changes:
...{Sony_HB-F900.xml => WIP_Mitsubishi_ML-TS2.xml} | 76 +++++++++---------
src/memory/RomFactory.cc | 4 +
src/memory/RomInfo.cc | 1 +
src/memory/RomMitsubishiMLTS2.cc | 80 ++++++++++++++++++++
src/memory/RomMitsubishiMLTS2.hh | 35 +++++++++
src/memory/RomTypes.hh | 1 +
6 files changed, 159 insertions(+), 38 deletions(-)
copy share/machines/{Sony_HB-F900.xml => WIP_Mitsubishi_ML-TS2.xml} (62%)
create mode 100644 src/memory/RomMitsubishiMLTS2.cc
create mode 100644 src/memory/RomMitsubishiMLTS2.hh
diff --git a/share/machines/Sony_HB-F900.xml b/share/machines/WIP_Mitsubishi_ML-TS2.xml
similarity index 62%
copy from share/machines/Sony_HB-F900.xml
copy to share/machines/WIP_Mitsubishi_ML-TS2.xml
index db66913..59734c6 100644
--- a/share/machines/Sony_HB-F900.xml
+++ b/share/machines/WIP_Mitsubishi_ML-TS2.xml
@@ -2,22 +2,32 @@
<!DOCTYPE msxconfig SYSTEM 'msxconfig2.dtd'>
<msxconfig>
+<!-- Information provided by Werner Kai. Thanks!
+
+ Serial: 100954
+ Mobo shows some modem chip: MP7246 JPN 8719δ
+ CPU: NEC D780C -1
+ S1985 MSX ENGINE
+ -->
+
<info>
- <manufacturer>Sony</manufacturer>
- <code>HB-F900</code>
- <release_year>1986</release_year>
- <description/>
+ <manufacturer>Mitsubishi</manufacturer>
+ <code>ML-TS2</code>
+ <release_year>1987</release_year>
+ <description>Mitsubishi Telecom Station (with built in telephone). This hardware description file is a Work-In-Progress! It's certainly not correct.</description>
<type>MSX2</type>
</info>
+ <MapperReadBackBits>largest</MapperReadBackBits>
+
<CassettePort/>
<devices>
<Kanji id="Kanji ROM">
<rom>
- <filename>hb-f900_kanjifont.rom</filename>
- <sha1>6acaf2eeb57f65f7408235d5e07b7563229de799</sha1>
+ <filename>ml-ts2_kanjifont.rom</filename>
+ <sha1>f4dba5ba267b5dd1a35eb74a6ec4fd4d5ca9a1b4</sha1>
</rom>
<io base="0xD8" num="2" type="O"/>
<io base="0xD9" num="1" type="I"/>
@@ -43,7 +53,12 @@
<io base="0x98" num="2" type="I"/>
</VDP>
+ <S1985 id="S1985">
+ <sramname>ml-ts2_s1985.sram</sramname>
+ </S1985>
+
<PSG id="PSG">
+ <type>AY8910</type>
<keyboardlayout>50on</keyboardlayout>
<sound>
<volume>21000</volume>
@@ -53,7 +68,7 @@
</PSG>
<RTC id="Real time clock">
- <sramname>hb-f900.cmos</sramname>
+ <sramname>ml-ts2.cmos</sramname>
<io base="0xB4" num="2" type="O"/>
<io base="0xB5" num="1" type="I"/>
</RTC>
@@ -65,8 +80,8 @@
<primary slot="0">
<ROM id="MSX BIOS with BASIC ROM">
<rom>
- <filename>hb-f900_basic-bios2.rom</filename>
- <sha1>0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd</sha1>
+ <filename>ml-ts2_basic-bios2.rom</filename>
+ <sha1>bb608fe748ee88d45564ad8e3582c2222730b3b5</sha1>
</rom>
<mem base="0x0000" size="0x8000"/>
</ROM>
@@ -74,14 +89,12 @@
<primary external="true" slot="1"/>
- <primary external="true" slot="2"/>
-
<primary slot="3">
<secondary slot="0">
<ROM id="MSX Sub ROM">
<rom>
- <filename>hb-f900_msx2sub.rom</filename>
+ <filename>ml-ts2_msx2sub.rom</filename>
<sha1>0fbd45ef3dd7bb82d4c31f1947884f411f1ca344</sha1>
</rom>
<mem base="0x0000" size="0x4000"/>
@@ -89,38 +102,25 @@
</secondary>
<secondary slot="1">
- <MemoryMapper id="Main RAM">
- <size>256</size>
- <mem base="0x0000" size="0x10000"/>
- </MemoryMapper>
- </secondary>
-
- <secondary slot="2">
- <WD2793 id="Memory Mapped FDC">
- <connectionstyle>Sony</connectionstyle>
- <motor_off_timeout_ms>4000</motor_off_timeout_ms>
- <!-- The 2nd released version of this machine uses another disk rom:
- <parameter name="filename">hb-f900_disk2.rom</parameter>
- -->
- <drives>2</drives>
+ <ROM id="ML-TS2 ROM"> <!-- has some complex mapper -->
<rom>
- <filename>hb-f900_disk.rom</filename>
- <sha1>fc760d1d7b16370abc7eea39955f230b95b37df6</sha1>
- </rom>
- <mem base="0x4000" size="0x8000"/>
- </WD2793>
- </secondary>
-
- <secondary slot="3">
- <ROM id="HB-F900 Video Utility 1.10">
- <rom>
- <filename>hb-f900_video-utility.rom</filename>
- <sha1>558b7383544542cf7333700ff90c3efbf93ba2a3</sha1>
+ <filename>ml-ts2_firmware.rom</filename>
+ <sha1>73d1ce106501b9e8151b4214448537617d82667f</sha1>
</rom>
+ <mappertype>MitsubishiMLTS2</mappertype> <!-- WIP implementation of the mapper -->
<mem base="0x4000" size="0x4000"/>
</ROM>
</secondary>
+ <secondary slot="2">
+ <MemoryMapper id="Main RAM">
+ <mem base="0x0000" size="0x10000"/>
+ <size>64</size>
+ </MemoryMapper>
+ </secondary>
+
+ <secondary slot="3"/>
+
</primary>
</devices>
diff --git a/src/memory/RomFactory.cc b/src/memory/RomFactory.cc
index 92d5c9c..a42bfc9 100644
--- a/src/memory/RomFactory.cc
+++ b/src/memory/RomFactory.cc
@@ -16,6 +16,7 @@
#include "RomPadial16kB.hh"
#include "RomSuperLodeRunner.hh"
#include "RomSuperSwangi.hh"
+#include "RomMitsubishiMLTS2.hh"
#include "RomMSXDOS2.hh"
#include "RomAscii16_2.hh"
#include "RomRType.hh"
@@ -248,6 +249,9 @@ unique_ptr<MSXDevice> create(const DeviceConfig& config)
case ROM_SUPERSWANGI:
result = make_unique<RomSuperSwangi>(config, move(rom));
break;
+ case ROM_MITSUBISHIMLTS2:
+ result = make_unique<RomMitsubishiMLTS2>(config, move(rom));
+ break;
case ROM_MSXDOS2:
result = make_unique<RomMSXDOS2>(config, move(rom));
break;
diff --git a/src/memory/RomInfo.cc b/src/memory/RomInfo.cc
index d55b2e1..d6363eb 100644
--- a/src/memory/RomInfo.cc
+++ b/src/memory/RomInfo.cc
@@ -94,6 +94,7 @@ static void init()
init(ROM_SUPERLODERUNNER,"SuperLodeRunner",0x4000, "Super Lode Runner");
init(ROM_SUPERSWANGI, "SuperSwangi" ,0x4000, "Super Swangi");
init(ROM_MSXDOS2, "MSXDOS2", 0x4000, "MSX-DOS2");
+ init(ROM_MITSUBISHIMLTS2,"MitsubishiMLTS2",0x2000, "Mitsubishi ML-TS2 firmware");
init(ROM_MANBOW2, "Manbow2", 0x2000, "Manbow2");
init(ROM_MANBOW2_2, "Manbow2_2", 0x2000, "Manbow2 - Second Release");
init(ROM_HAMARAJANIGHT, "HamarajaNight", 0x2000, "Best of Hamaraja Night");
diff --git a/src/memory/RomMitsubishiMLTS2.cc b/src/memory/RomMitsubishiMLTS2.cc
new file mode 100644
index 0000000..4e04114
--- /dev/null
+++ b/src/memory/RomMitsubishiMLTS2.cc
@@ -0,0 +1,80 @@
+#include "RomMitsubishiMLTS2.hh"
+#include "Rom.hh"
+#include "Ram.hh"
+#include "CacheLine.hh"
+#include "serialize.hh"
+#include "memory.hh"
+
+#include <iostream>
+
+namespace openmsx {
+
+RomMitsubishiMLTS2::RomMitsubishiMLTS2(const DeviceConfig& config, Rom&& rom_)
+ : Rom8kBBlocks(config, std::move(rom_))
+ , ram(make_unique<Ram>(config, getName() + " RAM", "ML-TS2 RAM", 0x2000))
+{
+ reset(EmuTime::dummy());
+}
+
+RomMitsubishiMLTS2::~RomMitsubishiMLTS2()
+{
+}
+
+void RomMitsubishiMLTS2::reset(EmuTime::param /*time*/)
+{
+ setRom(2, 0);
+}
+
+void RomMitsubishiMLTS2::writeMem(word address, byte value, EmuTime::param /*time*/)
+{
+ if (address == 0x7FC0) {
+ byte bank = (value & 1) + (((value >> 2) & 1) << 1) + (((value >> 4) & 1) << 2);
+ std::cerr << "Setting MLTS2 mapper page 1 to bank " << int(bank) << std::endl;
+ setRom(2, bank);
+ } else if ((0x6000 <= address) && (address < 0x8000)) {
+ (*ram)[address & 0x1FFF] = value;
+ }
+}
+
+byte RomMitsubishiMLTS2::readMem(word address, EmuTime::param time)
+{
+ if ((0x6000 <= address) && (address < 0x8000)) {
+ return (*ram)[address & 0x1FFF];
+ } else {
+ return Rom8kBBlocks::readMem(address, time);
+ }
+}
+
+byte RomMitsubishiMLTS2::peekMem(word address, EmuTime::param time) const
+{
+ if ((0x6000 <= address) && (address < 0x8000)) {
+ return (*ram)[address & 0x1FFF];
+ } else {
+ return Rom8kBBlocks::peekMem(address, time);
+ }
+}
+
+const byte* RomMitsubishiMLTS2::getReadCacheLine(word address) const
+{
+ if (address == (0x7FC0 & CacheLine::HIGH)) return nullptr;
+ if ((0x6000 <= address) && (address < 0x8000)) {
+ return &(*ram)[address & 0x1FFF];
+ }
+ if ((0x4000 <= address) && (address < 0x6000)) {
+ return &(rom[address & 0x1FFF]);
+ }
+ return unmappedRead;
+}
+
+byte* RomMitsubishiMLTS2::getWriteCacheLine(word address) const
+{
+ if (address == (0x7FC0 & CacheLine::HIGH)) return nullptr;
+ if ((0x6000 <= address) && (address < 0x8000)) {
+ return &(*ram)[address & 0x1FFF];
+ }
+ return unmappedWrite;
+}
+
+REGISTER_MSXDEVICE(RomMitsubishiMLTS2, "RomMitsubishiMLTS2");
+
+} // namespace openmsx
diff --git a/src/memory/RomMitsubishiMLTS2.hh b/src/memory/RomMitsubishiMLTS2.hh
new file mode 100644
index 0000000..344295e
--- /dev/null
+++ b/src/memory/RomMitsubishiMLTS2.hh
@@ -0,0 +1,35 @@
+#ifndef ROMMITSUBISHIMLTS2_HH
+#define ROMMITSUBISHIMLTS2_HH
+
+#include "RomBlocks.hh"
+#include <memory>
+
+// PLEASE NOTE!
+//
+// This mapper is work in progress. It's just a guess based on some reverse
+// engineering of the ROM by BiFi. It even contains some debug prints :)
+
+namespace openmsx {
+
+class Ram;
+
+class RomMitsubishiMLTS2 : public Rom8kBBlocks
+{
+public:
+ RomMitsubishiMLTS2(const DeviceConfig& config, Rom&& rom);
+ virtual ~RomMitsubishiMLTS2();
+
+ virtual void reset(EmuTime::param time);
+ virtual void writeMem(word address, byte value, EmuTime::param time);
+ virtual byte readMem(word address, EmuTime::param time) override;
+ virtual byte peekMem(word address, EmuTime::param time) const override;
+ virtual byte* getWriteCacheLine(word address) const override;
+ virtual const byte* getReadCacheLine(word address) const override;
+
+private:
+ const std::unique_ptr<Ram> ram;
+};
+
+} // namespace openmsx
+
+#endif
diff --git a/src/memory/RomTypes.hh b/src/memory/RomTypes.hh
index d1e2564..8ed5fee 100644
--- a/src/memory/RomTypes.hh
+++ b/src/memory/RomTypes.hh
@@ -38,6 +38,7 @@ enum RomType {
ROM_MEGAFLASHROMSCCPLUS,
ROM_MEGAFLASHROMSCCPLUSSD,
ROM_MIRRORED,
+ ROM_MITSUBISHIMLTS2,
ROM_MSXDOS2,
ROM_MSXTRA,
ROM_MULTIROM,
hooks/post-receive
--
openMSX (main)
|
|
From: Manuel B. <man...@us...> - 2015-05-31 20:04:55
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "openMSX (main)".
The branch, master has been updated
via 9ca42984977b66f41a397b996c23bb60e672a2af (commit)
from 52dbbf79ac6d0ad302757f6b346d65535663d9cd (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 9ca42984977b66f41a397b996c23bb60e672a2af
Author: Manuel Bilderbeek <Man...@gm...>
Date: Sun May 31 22:04:29 2015 +0200
Added Spanish Spectravideo SVI-728, thanks to Werner Kai
-----------------------------------------------------------------------
Summary of changes:
...deo_SVI-728.xml => Spectravideo_SVI-728_ES.xml} | 25 ++++++++++++++++----
1 files changed, 20 insertions(+), 5 deletions(-)
copy share/machines/{Spectravideo_SVI-728.xml => Spectravideo_SVI-728_ES.xml} (67%)
diff --git a/share/machines/Spectravideo_SVI-728.xml b/share/machines/Spectravideo_SVI-728_ES.xml
similarity index 67%
copy from share/machines/Spectravideo_SVI-728.xml
copy to share/machines/Spectravideo_SVI-728_ES.xml
index 8d8720c..c05e03d 100644
--- a/share/machines/Spectravideo_SVI-728.xml
+++ b/share/machines/Spectravideo_SVI-728_ES.xml
@@ -4,12 +4,27 @@
<info>
<manufacturer>Spectravideo</manufacturer>
- <code>SVI-728</code>
- <release_year>1983?</release_year>
+ <code>SVI-728 (ES)</code>
+ <release_year>1983</release_year>
<description/>
<type>MSX</type>
</info>
+ <!--
+ based on Werner Kai's machine with serial BI7280069769.
+ Z80 scf: 01ED29ED01FC29FC (standard)
+ Z80 cpl: 3AFF12D7 (standard)
+ Z80 out (C),0: 0 (MSX)
+ PSG pin 6/7 quirk: C (YES)
+ PSGmask: like AY8910
+
+ CPU: Zilog Z8400APS
+ PSG: GI AY-3-8910A
+ PPI: Toshiba TMP8255AP-5
+ VDP: not visible due to glued on cooling plate
+ PCB says: Version 1:7
+ -->
+
<CassettePort/>
<devices>
@@ -20,7 +35,7 @@
<volume>16000</volume>
</sound>
<io base="0xA8" num="4"/>
- <keyboard_type>int</keyboard_type>
+ <keyboard_type>es</keyboard_type>
<has_keypad>true</has_keypad>
<key_ghosting_sgc_protected>true</key_ghosting_sgc_protected>
<code_kana_locks>false</code_kana_locks>
@@ -48,8 +63,8 @@
<primary slot="0">
<ROM id="MSX BIOS with BASIC ROM">
<rom>
- <filename>svi-728_basic-bios1.rom</filename>
- <sha1>ea6a82cf8c6e65eb30b98755c8577cde8d9186c0</sha1>
+ <filename>svi-728es_basic-bios1.rom</filename>
+ <sha1>82415ee031721d1954bfa42e1c6dd79d71c692d6</sha1>
</rom>
<mem base="0x0000" size="0x8000"/>
</ROM>
hooks/post-receive
--
openMSX (main)
|
|
From: Manuel B. <man...@us...> - 2015-05-31 19:24:46
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "openMSX (main)".
The branch, master has been updated
via 52dbbf79ac6d0ad302757f6b346d65535663d9cd (commit)
from b8c547797c74c481f57a422c2faf5b0db5dd31b4 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 52dbbf79ac6d0ad302757f6b346d65535663d9cd
Author: Manuel Bilderbeek <Man...@gm...>
Date: Sun May 31 21:23:19 2015 +0200
Some minor updates to this config, thanks to Werner Kai.
-----------------------------------------------------------------------
Summary of changes:
share/machines/Canon_V-8.xml | 14 +++++++++++---
1 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/share/machines/Canon_V-8.xml b/share/machines/Canon_V-8.xml
index ebda16f..5ec2709 100644
--- a/share/machines/Canon_V-8.xml
+++ b/share/machines/Canon_V-8.xml
@@ -11,11 +11,19 @@
</info>
<!-- Based on serial 131844, thanks to Ricardo Jurczyk Pinheiro
-
+ and serial 125424, thanks to Werner Kai
+ both:
Z80 scf: 01C529ED01D429C (dunno)
Z80 cpl: 3AFF12D7 (standard)
Z80 out (c), 0: 0 (MSX)
PSG pin 6/7 quirk: C (YES)
+
+ pics of 125424 reveal:
+ has S3527 MSX-ENGINE
+ Z80: NEC D780C-1
+ VDP: TMS9118NL
+ no printerport
+
-->
<CassettePort/>
@@ -37,11 +45,11 @@
<VDP id="VDP">
<version>TMS9118</version> <!-- NO effect of 4k/16k switch, no latch, HAS clones, HAS screen 2 mirrored mode, HAS mode 3 mixed mode -->
- <io base="0x98" num="2"/>
+ <io base="0x98" num="8"/> <!-- S-3527 mirrors -->
</VDP>
<PSG id="PSG">
- <type>YM2149</type> <!-- according to ident.bas -->
+ <type>YM2149</type> <!-- in S-3527 MSX-ENGINE -->
<keyboardlayout>jis</keyboardlayout>
<sound>
<volume>21000</volume>
hooks/post-receive
--
openMSX (main)
|
|
From: Patrick v. A. <va...@us...> - 2015-05-31 16:32:29
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "openMSX (main)".
The branch, master has been updated
via b8c547797c74c481f57a422c2faf5b0db5dd31b4 (commit)
from 8b50be3e13b917d62f1062545000fd9381c99fbe (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit b8c547797c74c481f57a422c2faf5b0db5dd31b4
Author: Patrick van Arkel <vam...@us...>
Date: Sun May 31 09:32:20 2015 -0700
romdb update
-----------------------------------------------------------------------
Summary of changes:
share/softwaredb.xml | 14 +++++++++++---
1 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/share/softwaredb.xml b/share/softwaredb.xml
index 9e6c3bc..6bbf2c6 100644
--- a/share/softwaredb.xml
+++ b/share/softwaredb.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE softwaredb SYSTEM "softwaredb1.dtd">
-<softwaredb timestamp="1432451892">
+<softwaredb timestamp="1433089666">
<!-- Credits -->
<![CDATA[
The softwaredb.xml file contains information about rom mapper types
@@ -1304,6 +1304,14 @@ Generation MSXIDs by www.generation-msx.nl
<dump><original value="true">GoodMSX</original><rom><hash>ef535ab6013d9b6e38227272f2ebe6a0f0b33cb5</hash></rom></dump>
</software>
<software>
+ <title>Booming Boy</title>
+ <system>MSX</system>
+ <company>MSxNAKE</company>
+ <year>2015</year>
+ <country>ES</country>
+ <dump><rom><hash>120f5a2bbba9e7628ae58122f3cb0307648ea22d</hash><remark>Demo Version</remark></rom></dump>
+</software>
+<software>
<title>Borfesu</title>
<genmsxid>1015</genmsxid>
<system>MSX</system>
@@ -12956,6 +12964,6 @@ Generation MSXIDs by www.generation-msx.nl
</software>
</softwaredb>
<!--
-Roms in this XML file:3252
-Created on Sun May 24 9:18:17 CEST 2015
+Roms in this XML file:3253
+Created on Sun May 31 9:29:08 PDT 2015
-->
\ No newline at end of file
hooks/post-receive
--
openMSX (main)
|
|
From: Manuel B. <man...@us...> - 2015-05-31 12:27:14
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "openMSX (main)".
The branch, master has been updated
via 8b50be3e13b917d62f1062545000fd9381c99fbe (commit)
from 3c91cf2755b58b53ddbe4c76c228dda9e39ee1f0 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 8b50be3e13b917d62f1062545000fd9381c99fbe
Author: Manuel Bilderbeek <Man...@gm...>
Date: Sun May 31 14:26:49 2015 +0200
hap confirmed: RAM should be in slot 3, not slot 2.
-----------------------------------------------------------------------
Summary of changes:
share/machines/Canon_V-20.xml | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/share/machines/Canon_V-20.xml b/share/machines/Canon_V-20.xml
index 4975bcd..4c4d535 100644
--- a/share/machines/Canon_V-20.xml
+++ b/share/machines/Canon_V-20.xml
@@ -34,7 +34,9 @@ crystal: X1:10.6875 (VDP), X2:1431818(CPU/PSG): so not synced
<primary external="true" slot="1"/>
- <primary slot="2">
+ <primary external="true" slot="2"/>
+
+ <primary slot="3">
<secondary slot="0">
<RAM id="Main RAM">
@@ -44,8 +46,6 @@ crystal: X1:10.6875 (VDP), X2:1431818(CPU/PSG): so not synced
</primary>
- <primary external="true" slot="3"/>
-
<PPI id="ppi">
<io base="0xA8" num="8"/> <!-- mirroring confirmed by hap -->
<sound>
hooks/post-receive
--
openMSX (main)
|
|
From: Manuel B. <man...@us...> - 2015-05-30 21:25:31
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "openMSX (main)".
The branch, master has been updated
via 3c91cf2755b58b53ddbe4c76c228dda9e39ee1f0 (commit)
from c2a5a2229ab705576ed02a785756a937edb5df9d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 3c91cf2755b58b53ddbe4c76c228dda9e39ee1f0
Author: Manuel Bilderbeek <Man...@gm...>
Date: Sat May 30 23:25:01 2015 +0200
Forgot to specify YM2149 explicitly in Canon V-10.
-----------------------------------------------------------------------
Summary of changes:
share/machines/Canon_V-10.xml | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/share/machines/Canon_V-10.xml b/share/machines/Canon_V-10.xml
index 921e44c..734718f 100644
--- a/share/machines/Canon_V-10.xml
+++ b/share/machines/Canon_V-10.xml
@@ -54,6 +54,7 @@
</VDP>
<PSG id="PSG">
+ <type>YM2149</type>
<keyboardlayout>jis</keyboardlayout>
<sound>
<volume>21000</volume>
hooks/post-receive
--
openMSX (main)
|
|
From: Manuel B. <man...@us...> - 2015-05-30 20:57:51
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "openMSX (main)".
The branch, master has been updated
via c2a5a2229ab705576ed02a785756a937edb5df9d (commit)
via 8c84f7652fbb57b33cc752e5ced2f02893c3ed00 (commit)
from 6423945d80c539dcc3a459b23d97cb84d53d92cf (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit c2a5a2229ab705576ed02a785756a937edb5df9d
Author: Manuel Bilderbeek <Man...@gm...>
Date: Sat May 30 22:56:05 2015 +0200
Some small tweaks to machine configs, triggered by last commit.
commit 8c84f7652fbb57b33cc752e5ced2f02893c3ed00
Author: Manuel Bilderbeek <Man...@gm...>
Date: Sat May 30 22:50:45 2015 +0200
Added Japanese Canon V-20, thanks to Werner Kai!
-----------------------------------------------------------------------
Summary of changes:
share/machines/Canon_V-20.xml | 4 +-
share/machines/Canon_V-20_JP.xml | 97 ++++++++++++++++++++++++++++++++++++++
2 files changed, 99 insertions(+), 2 deletions(-)
create mode 100644 share/machines/Canon_V-20_JP.xml
diff --git a/share/machines/Canon_V-20.xml b/share/machines/Canon_V-20.xml
index 2db0917..4975bcd 100644
--- a/share/machines/Canon_V-20.xml
+++ b/share/machines/Canon_V-20.xml
@@ -4,7 +4,7 @@
<info>
<manufacturer>Canon</manufacturer>
- <code>V-20</code>
+ <code>V-20 (EU)</code>
<release_year>1984?</release_year>
<description/>
<type>MSX</type>
@@ -27,7 +27,7 @@ crystal: X1:10.6875 (VDP), X2:1431818(CPU/PSG): so not synced
<mem base="0x0000" size="0x8000"/>
<rom>
<sha1>8963fc041975f31dc2ab1019cfdd4967999de53e</sha1>
- <filename>v-20_basic-bios1.rom</filename>
+ <filename>v-20eu_basic-bios1.rom</filename>
</rom>
</ROM>
</primary>
diff --git a/share/machines/Canon_V-20_JP.xml b/share/machines/Canon_V-20_JP.xml
new file mode 100644
index 0000000..7b84310
--- /dev/null
+++ b/share/machines/Canon_V-20_JP.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" ?>
+<!DOCTYPE msxconfig SYSTEM 'msxconfig2.dtd'>
+<msxconfig>
+
+ <info>
+ <manufacturer>Canon</manufacturer>
+ <code>V-20 (JP)</code>
+ <release_year>1984?</release_year>
+ <description/>
+ <type>MSX</type>
+ </info>
+
+<!--
+ This config is based on Werner Kai's machine with serial 125911
+ see https://plus.google.com/photos/112629367302659371233/albums/6153667357217383201
+ Where no data was available, it is assumed the machine is the same as
+ hap's European Canon V-20, see that config. This is mostly the mirroring
+ behaviour.
+
+CPU: NEC D780C-1
+PPI: NEC D8255AC-5
+PSG: Yamaha YM2149 - JIS
+VDP: TMS9918ANL
+crystal: X1:10.xx863 (VDP), X2:1431818(CPU/PSG): so not synced
+
+IDENT Z80 info (VDP stuff just points to indeed TMS99xx):
+z80 scf: 01ED29ED01FC29FC (standard)
+z80 cpl: 3AFF12D7 (standard)
+z80 out (c),0: 0 (MSX)
+
+PSG pin 6/7 quirk: C (YES)
+-->
+
+ <CassettePort/>
+
+ <devices>
+
+ <primary slot="0">
+ <ROM id="MSX BIOS with BASIC ROM">
+ <mem base="0x0000" size="0x8000"/>
+ <rom>
+ <sha1>302afb5d8be26c758309ca3df611ae69cced2821</sha1>
+ <filename>v-20jp_basic-bios1.rom</filename>
+ </rom>
+ </ROM>
+ </primary>
+
+ <primary external="true" slot="1"/> <!-- side slot -->
+
+ <primary external="true" slot="2"/> <!-- top slot -->
+
+ <primary slot="3">
+
+ <secondary slot="0">
+ <RAM id="Main RAM">
+ <mem base="0x0000" size="0x10000"/>
+ </RAM>
+ </secondary>
+
+ </primary>
+
+ <PPI id="ppi">
+ <io base="0xA8" num="8"/> <!-- mirroring confirmed by hap -->
+ <sound>
+ <volume>16000</volume>
+ </sound>
+ <key_ghosting>true</key_ghosting>
+ <keyboard_type>jp_jis</keyboard_type>
+ <has_keypad>false</has_keypad>
+ <key_ghosting_sgc_protected>true</key_ghosting_sgc_protected>
+ <code_kana_locks>true</code_kana_locks>
+ <graph_locks>false</graph_locks>
+ </PPI>
+
+ <VDP id="VDP">
+ <io base="0x98" num="8"/> <!-- mirroring not sure if same as EU V-20 -->
+ <version>TMS9918A</version>
+ <initialContent encoding="hex">FF00</initialContent> <!-- not sure if same as EU V-20 -->
+ </VDP>
+
+ <PSG id="PSG">
+ <type>YM2149</type>
+ <keyboardlayout>jis</keyboardlayout>
+ <io base="0xA0" num="2" type="O"/>
+ <io base="0xA2" num="1" type="I"/>
+ <sound>
+ <volume>21000</volume>
+ </sound>
+ </PSG>
+
+ <PrinterPort id="Printer Port">
+ <io base="0x90" num="2"/>
+ </PrinterPort>
+
+ </devices>
+
+</msxconfig>
hooks/post-receive
--
openMSX (main)
|
|
From: Maarten t. H. <mth...@us...> - 2015-05-28 08:05:32
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "openMSX (main)".
The branch, master has been updated
via 6423945d80c539dcc3a459b23d97cb84d53d92cf (commit)
from 26b7e52c77347414c1f4a6606dc786b82599356e (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 6423945d80c539dcc3a459b23d97cb84d53d92cf
Author: Maarten ter Huurne <ma...@tr...>
Date: Thu May 28 10:01:49 2015 +0200
Refer to www.openmsx.org as the openMSX web site in all docs
We control the openmsx.org domain, while it is uncertain how much
control we have over the SourceForge URLs. At the moment it just
redirects requests.
-----------------------------------------------------------------------
Summary of changes:
README | 2 +-
build/package-arch/PKGBUILD | 2 +-
build/package-dingux/README.txt | 12 ++++++------
build/package-slackware/openmsx.SlackBuild | 2 +-
build/package-windows/openmsx.wxs | 2 +-
build/package-windows/openmsx1033.wxl | 2 +-
doc/manual/compile.html | 8 ++++----
doc/manual/faq.html | 6 +++---
doc/manual/index.html | 2 +-
doc/manual/setup.html | 4 ++--
doc/manual/user.html | 8 ++++----
doc/release-notes.txt | 2 +-
12 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/README b/README
index 24b3437..de51b4a 100644
--- a/README
+++ b/README
@@ -21,7 +21,7 @@ Some source files contain a license notice; all other source files are
licensed under the GNU Public License (GPL), of which you can find a copy
in the file 'GPL.txt'. If you got a binary release of openMSX and are
interested in the sources, please visit our home page:
- http://openmsx.sourceforge.net/
+ http://www.openmsx.org/
Happy MSX-ing!
the openMSX developers
diff --git a/build/package-arch/PKGBUILD b/build/package-arch/PKGBUILD
index e27966c..461bf27 100644
--- a/build/package-arch/PKGBUILD
+++ b/build/package-arch/PKGBUILD
@@ -5,7 +5,7 @@ pkgver=0.6.2
pkgrel=1
pkgdesc="openMSX, a great opensource MSX emulator with lots of great features"
arch=('i686')
-url="openmsx.sourceforge.net"
+url="www.openmsx.org"
license=('GPL')
depends=(gcc sdl_image tcl)
makedepends=()
diff --git a/build/package-dingux/README.txt b/build/package-dingux/README.txt
index 31efa2d..8c2cb28 100644
--- a/build/package-dingux/README.txt
+++ b/build/package-dingux/README.txt
@@ -44,7 +44,7 @@ Installing openMSX
------------------
This info is also in the openMSX Compilation Guide:
- http://openmsx.sourceforge.net/manual/compile.html#installstandalone
+ http://www.openmsx.org/manual/compile.html#installstandalone
Copy the directory named "local" from the openMSX for Dingux ZIP file to the
root of the miniSD card. If you have run Dingux from the miniSD card before,
@@ -55,7 +55,7 @@ openMSX comes with the C-BIOS system ROMs, which is an open source MSX BIOS.
If you'd like to use other system ROMs, for example to get disk support or
because you want to emulate the exact MSX model you had years ago, you have
to install those yourself. Please read this for more info:
- http://openmsx.sourceforge.net/manual/setup.html#systemroms
+ http://www.openmsx.org/manual/setup.html#systemroms
As mentioned before, currently it's wise to include only those system ROMs you
really need. Better not install large ones either (e.g. the MoonSound ROM),
unless you don't care about very long start up times.
@@ -64,7 +64,7 @@ Using openMSX
-------------
The keymappings are documented in the openMSX User's Manual:
- http://openmsx.sourceforge.net/manual/user.html#keymapping
+ http://www.openmsx.org/manual/user.html#keymapping
Customizing openMSX
@@ -78,7 +78,7 @@ Please have a look in the share/openmsx/scripts directory for examples. Any
script you place there will be executed by openMSX on startup.
Please read this document to learn about the commands and settings of openMSX:
- http://openmsx.sourceforge.net/manual/commands.html
+ http://www.openmsx.org/manual/commands.html
Building openMSX
----------------
@@ -88,11 +88,11 @@ Dingux.
This is described in the Compilation Guide (with specific instructions for
Dingux):
- http://openmsx.sourceforge.net/manual/compile.html
+ http://www.openmsx.org/manual/compile.html
Feedback
--------
If you found a bug, made a patch, created a cool theme or have anything else
you'd like to share, please contact us, see
- http://openmsx.sourceforge.net/manual/user.html#contact
+ http://www.openmsx.org/manual/user.html#contact
diff --git a/build/package-slackware/openmsx.SlackBuild b/build/package-slackware/openmsx.SlackBuild
index 669acc0..46c900e 100755
--- a/build/package-slackware/openmsx.SlackBuild
+++ b/build/package-slackware/openmsx.SlackBuild
@@ -1,7 +1,7 @@
!/bin/sh
#
# SlackBuild for openMSX
-# http://openmsx.sourceforge.net
+# http://www.openmsx.org/
# By SukkoPera <enj...@io...>
# 27/10/2005
#
diff --git a/build/package-windows/openmsx.wxs b/build/package-windows/openmsx.wxs
index 54eadf2..c334f40 100644
--- a/build/package-windows/openmsx.wxs
+++ b/build/package-windows/openmsx.wxs
@@ -140,7 +140,7 @@
<!-- Shortcut to openMSX website -->
<util:InternetShortcut Id="openMSXWebSiteShortcut"
Name="!(loc.openMSXWebSite)"
- Target="http://openmsx.sourceforge.net/" />
+ Target="http://www.openmsx.org/" />
<!-- Shortcut to uninstall - do we really need this?
Note that [SystemFolder64] is always the native system folder -->
diff --git a/build/package-windows/openmsx1033.wxl b/build/package-windows/openmsx1033.wxl
index 672ec63..827d79c 100644
--- a/build/package-windows/openmsx1033.wxl
+++ b/build/package-windows/openmsx1033.wxl
@@ -5,7 +5,7 @@
<String Id="LANG">1033</String>
<String Id="openMSX">openMSX</String>
<String Id="TagLine">The MSX emulator that aims for perfection</String>
- <String Id="Website">http://openmsx.sourceforge.net</String>
+ <String Id="Website">http://www.openmsx.org/</String>
<!-- Shortcuts -->
<String Id="openMSXManual">openMSX Manual</String>
diff --git a/doc/manual/compile.html b/doc/manual/compile.html
index 1abc0d5..39aaa76 100644
--- a/doc/manual/compile.html
+++ b/doc/manual/compile.html
@@ -65,7 +65,7 @@
The latest version of the openMSX manual can be found on the openMSX home page:
</p>
<p>
-<a class="external" href="http://openmsx.sourceforge.net/manual/">http://openmsx.sourceforge.net/manual/</a>
+<a class="external" href="http://www.openmsx.org/manual/">http://www.openmsx.org/manual/</a>
</p>
<p>
You can also use this URL to get up-to-date versions of the hyperlinks
@@ -77,7 +77,7 @@ if you printed out this manual.
This guide is about openMSX, the open source MSX emulator that tries to achieve
near-perfect emulation by using a novel emulation model.
You can find more information about openMSX on the
-<a class="external" href="http://openmsx.sourceforge.net/">openMSX home page</a>.
+<a class="external" href="http://www.openmsx.org/">openMSX home page</a>.
</p>
<p>
@@ -814,7 +814,7 @@ The following steps can then be used to build openMSX:</p>
The following step creates .zip and .msi installation packages for openMSX on Windows using WiX:</p>
<ul>
<li>Build <a href="#standalone_compilation">openMSX</a> and
- <a class="external" href="http://openmsx.sourceforge.net/catapult-manual/compile.html">wxCatapult</a>
+ <a class="external" href="http://www.openmsx.org/catapult-manual/compile.html">wxCatapult</a>
for a given platform (Win32 or x64) and configuration (usually Release builds)</li>
<li>Go to the <em>top of the openMSX source tree</em></li>
<li>Run <code>build\package-windows\package.cmd <strong>platform configuration</strong>
@@ -998,7 +998,7 @@ We do not have a finished GUI yet that works on Mac OS X, so you can either use
<h5>Microsoft Windows</h5>
<p>
-You can use the <a class="external" href="http://openmsx.sourceforge.net/catapult-manual/">
+You can use the <a class="external" href="http://www.openmsx.org/catapult-manual/">
Catapult</a> launcher to run openMSX.</p>
<h2><a id="contact">8. Contact Info</a></h2>
diff --git a/doc/manual/faq.html b/doc/manual/faq.html
index d625b06..9f9c0d0 100644
--- a/doc/manual/faq.html
+++ b/doc/manual/faq.html
@@ -139,7 +139,7 @@ The MSX system ROMs are copyrighted. In other words: it's illegal to include the
<h3><a id="easyuse">Is openMSX easy to use?</a></h3>
<p>
-Ever since openMSX comes with the optional GUI dubbed "openMSX Catapult", it is quite easy to use! The Windows installer installs it by default. For other systems, the same counts as for openMSX itself. Check out the <a class="external" href="http://openmsx.sourceforge.net/catapult-manual/">Catapult manual</a> for more information. For basic usage, you just select a machine to run and click on "Start"!
+Ever since openMSX comes with the optional GUI dubbed "openMSX Catapult", it is quite easy to use! The Windows installer installs it by default. For other systems, the same counts as for openMSX itself. Check out the <a class="external" href="http://www.openmsx.org/catapult-manual/">Catapult manual</a> for more information. For basic usage, you just select a machine to run and click on "Start"!
</p>
<p>
@@ -401,7 +401,7 @@ The ZMBV (Zip Motion Blocks Video) codec is used, which has been developed in th
</p>
<p>
-A developer of DosBox built a Win32 binary of the codec for our users. It is included with openMSX 0.6.2 (and up) for Win32. Note that the installer does not install the codec by default, so you will need to enable this option when installing. You can also <a class="external" href="http://openmsx.sourceforge.net/util/zmbv_codec_win32.zip">download the codec separately from our web site</a>. After unzipping the file, use the .INF file to install the codec (<code>zmbv.dll</code>) by right-clicking on it and selecting Install. Note that other binaries of this codec that you can find on the internet may not work, as not all of them have support for more than 8 bits per pixel recordings.
+A developer of DosBox built a Win32 binary of the codec for our users. It is included with openMSX 0.6.2 (and up) for Win32. Note that the installer does not install the codec by default, so you will need to enable this option when installing. You can also <a class="external" href="http://www.openmsx.org/util/zmbv_codec_win32.zip">download the codec separately from our web site</a>. After unzipping the file, use the .INF file to install the codec (<code>zmbv.dll</code>) by right-clicking on it and selecting Install. Note that other binaries of this codec that you can find on the internet may not work, as not all of them have support for more than 8 bits per pixel recordings.
Also note that this is a 32-bit codec, so it will not run inside 64-bit Windows Media Player or Windows Media Center.</p>
<p>
@@ -434,7 +434,7 @@ You can look in the following places for answers:
<dt><a class="external" href="index.html">openMSX manuals</a></dt>
<dd>We have a nice set of manuals describing most of the functionality in openMSX.
</dd>
-<dt><a class="external" href="http://openmsx.sourceforge.net/catapult-manual/">Catapult manuals</a></dt>
+<dt><a class="external" href="http://www.openmsx.org/catapult-manual/">Catapult manuals</a></dt>
<dd>The manuals of Catapult, the graphical interface to openMSX.</dd>
<dt><a class="external" href="http://faq.msxnet.org/">The Ultimate MSX FAQ</a></dt>
<dd>Look here if you have a question that is not specific to openMSX, but about the MSX system itself.</dd>
diff --git a/doc/manual/index.html b/doc/manual/index.html
index 7291db1..f7cf37b 100644
--- a/doc/manual/index.html
+++ b/doc/manual/index.html
@@ -71,7 +71,7 @@ There is additional documentation for (would-be) developers in <a class="externa
<p>
To the
-<a class="external" href="http://openmsx.sourceforge.net/">openMSX Home Page</a>.
+<a class="external" href="http://www.openmsx.org/">openMSX Home Page</a>.
</p>
</body>
diff --git a/doc/manual/setup.html b/doc/manual/setup.html
index d59f03e..cdac95f 100644
--- a/doc/manual/setup.html
+++ b/doc/manual/setup.html
@@ -65,7 +65,7 @@
The latest version of the openMSX manual can be found on the openMSX home page:
</p>
<p>
-<a class="external" href="http://openmsx.sourceforge.net/manual/">http://openmsx.sourceforge.net/manual/</a>
+<a class="external" href="http://www.openmsx.org/manual/">http://www.openmsx.org/manual/</a>
</p>
<p>
You can also use this URL to get up-to-date versions of the hyper links
@@ -77,7 +77,7 @@ if you printed out this manual.
This guide is about openMSX, the open source MSX emulator that tries to achieve
near-perfect emulation by using a novel emulation model.
You can find more information about openMSX on the
-<a class="external" href="http://openmsx.sourceforge.net/">openMSX home page</a>.
+<a class="external" href="http://www.openmsx.org/">openMSX home page</a>.
You can also download the emulator itself from there.
</p>
diff --git a/doc/manual/user.html b/doc/manual/user.html
index 38c5319..d75a6e7 100644
--- a/doc/manual/user.html
+++ b/doc/manual/user.html
@@ -133,7 +133,7 @@
The latest version of the openMSX manual can be found on the openMSX home page:
</p>
<p>
-<a class="external" href="http://openmsx.sourceforge.net/manual/">http://openmsx.sourceforge.net/manual/</a>
+<a class="external" href="http://www.openmsx.org/manual/">http://www.openmsx.org/manual/</a>
</p>
<p>
You can also use this URL to get up-to-date versions of the hyper links
@@ -145,7 +145,7 @@ if you printed out this manual.
This manual is about openMSX, the open source MSX emulator that tries to achieve
near-perfect emulation by using a novel emulation model.
You can find more information about openMSX on the
-<a class="external" href="http://openmsx.sourceforge.net/">openMSX home page</a>.
+<a class="external" href="http://www.openmsx.org/">openMSX home page</a>.
You can also download the emulator itself from there.
</p>
@@ -153,7 +153,7 @@ You can also download the emulator itself from there.
openMSX is not completed yet, which means that most things work but not all
features are implemented yet.
Many emulation features are implemented, but in terms of user interface
-it is rather bare bones, unless you use the optional Graphical User Interface dubbed openMSX Catapult, which has separate <a class="external" href="http://openmsx.sourceforge.net/catapult-manual/">manuals</a> for now.
+it is rather bare bones, unless you use the optional Graphical User Interface dubbed openMSX Catapult, which has separate <a class="external" href="http://www.openmsx.org/catapult-manual/">manuals</a> for now.
However, because the emulation is already pretty good,
it would be nice if non-insiders would be able to play with it, too.
For those people, we have written this guide.
@@ -1031,7 +1031,7 @@ This algorithm is trying to emulate the fact that on a CRT brighter pixels look
</dl>
<p>
-A small (somewhat outdated) demonstration of some of the algorithms can be found on <a class="external" href="http://openmsx.sourceforge.net">the openMSX web site</a>.
+A small (somewhat outdated) demonstration of some of the algorithms can be found on <a class="external" href="http://www.openmsx.org/">the openMSX web site</a>.
</p>
<h3><a id="gamma">6.4 Gamma Correction</a></h3>
diff --git a/doc/release-notes.txt b/doc/release-notes.txt
index b725e77..54cb71b 100644
--- a/doc/release-notes.txt
+++ b/doc/release-notes.txt
@@ -107,7 +107,7 @@ compiling on a new platform, please share your experiences (see below for
contact info), so we can make openMSX more portable.
openMSX Home Page:
- http://openmsx.sourceforge.net/
+ http://www.openmsx.org/
Project page on SourceForge:
http://sourceforge.net/projects/openmsx/
Contact options:
hooks/post-receive
--
openMSX (main)
|
|
From: Wouter V. <m97...@us...> - 2015-05-27 19:38:00
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "openMSX (main)".
The branch, master has been updated
via 26b7e52c77347414c1f4a6606dc786b82599356e (commit)
from 47515e602be19f02664650def82e7f1bac7aa331 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 26b7e52c77347414c1f4a6606dc786b82599356e
Author: m9710797 <ver...@gm...>
Date: Wed May 27 21:33:10 2015 +0200
Fixed copy/paste error in bswap64
The result was wrongly truncated to 32 bit. Luckily this function wasn't used
much. I think (so far) only the Tiger-hash code used it on big-endian systems.
-----------------------------------------------------------------------
Summary of changes:
src/utils/endian.hh | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/src/utils/endian.hh b/src/utils/endian.hh
index 4e68993..51933b5 100644
--- a/src/utils/endian.hh
+++ b/src/utils/endian.hh
@@ -36,7 +36,7 @@ static inline uint32_t bswap32(uint32_t x)
}
// Revese bytes in a 64-bit value: 0x1122334455667788 becomes 0x8877665544332211
-static inline uint32_t bswap64(uint64_t x)
+static inline uint64_t bswap64(uint64_t x)
{
#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3))
// Starting from gcc-4.3 there's a builtin function for this.
hooks/post-receive
--
openMSX (main)
|
|
From: Manuel B. <man...@us...> - 2015-05-27 19:16:02
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "openMSX (main)".
The branch, master has been updated
via 47515e602be19f02664650def82e7f1bac7aa331 (commit)
from 5728c796e100c5b0bef1b0ee6d1209227ff3194d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 47515e602be19f02664650def82e7f1bac7aa331
Author: Manuel Bilderbeek <Man...@gm...>
Date: Wed May 27 21:15:22 2015 +0200
Added Canon V-10 machine, thanks to Werner Kai!
-----------------------------------------------------------------------
Summary of changes:
share/machines/{Sony_HB-10.xml => Canon_V-10.xml} | 38 +++++++++++++++-----
1 files changed, 28 insertions(+), 10 deletions(-)
copy share/machines/{Sony_HB-10.xml => Canon_V-10.xml} (57%)
diff --git a/share/machines/Sony_HB-10.xml b/share/machines/Canon_V-10.xml
similarity index 57%
copy from share/machines/Sony_HB-10.xml
copy to share/machines/Canon_V-10.xml
index d8ce58b..921e44c 100644
--- a/share/machines/Sony_HB-10.xml
+++ b/share/machines/Canon_V-10.xml
@@ -2,16 +2,35 @@
<!DOCTYPE msxconfig SYSTEM 'msxconfig2.dtd'>
<msxconfig>
-<!-- information provided by Ruben Arraya, thanks! -->
-
<info>
- <manufacturer>Sony</manufacturer>
- <code>HB-10</code>
+ <manufacturer>Canon</manufacturer>
+ <code>V-10</code>
<release_year></release_year>
<description/>
<type>MSX</type>
</info>
+ <!-- Info provided by Werner Kai, based on serial 126034:
+ HAS 4k/16k efect
+ no address latch
+ HAS sprite clones
+ has screen 2 mirrored mode
+ has mode 3 mixed mode
+ Z80 scf: 01ED29ED01FC29FC (standard)
+ Z80 cpl: 3AFF12D7 (standard)
+ PSG pin 6/7 quirk: C (YES)
+ PSGmask like YM2149 (FFFFFFetc.)
+
+ Mobo photo shows chips:
+ VDP: TMS9918ANL MHU 8327 9736 PHILIPPINES
+ PPI: NEC D8255AC-5
+ PSG: Yamaha YM2149C
+ CPU: Zilog Z8400AP S
+ ROM: 3256D19-3J1 Z-1 (C) 1983 MICROSOFT
+ RAM and VRAM: both have 8x Toshiba TMM416P-2 4116-28336ADA
+
+ See: https://plus.google.com/photos/112629367302659371233/albums/6153338169041664593
+ -->
<CassettePort/>
<devices>
@@ -22,21 +41,20 @@
<volume>16000</volume>
</sound>
<io base="0xA8" num="4"/>
- <keyboard_type>jp_ansi</keyboard_type>
+ <keyboard_type>jp_jis</keyboard_type>
<has_keypad>false</has_keypad>
- <key_ghosting_sgc_protected>false</key_ghosting_sgc_protected> <!-- not sure yet -->
+ <key_ghosting_sgc_protected>false</key_ghosting_sgc_protected>
<code_kana_locks>true</code_kana_locks>
<graph_locks>false</graph_locks>
</PPI>
<VDP id="VDP">
- <version>TMS99X8A</version>
+ <version>TMS9918A</version>
<io base="0x98" num="2"/>
</VDP>
<PSG id="PSG">
- <type>AY8910</type>
- <keyboardlayout>50on</keyboardlayout>
+ <keyboardlayout>jis</keyboardlayout>
<sound>
<volume>21000</volume>
</sound>
@@ -54,7 +72,7 @@
</RAM>
<ROM id="MSX BIOS with BASIC ROM">
<rom>
- <filename>hb-10_basic-bios1.rom</filename>
+ <filename>v-10_basic-bios1.rom</filename>
<sha1>302afb5d8be26c758309ca3df611ae69cced2821</sha1>
</rom>
<mem base="0x0000" size="0x8000"/>
hooks/post-receive
--
openMSX (main)
|
|
From: Wouter V. <m97...@us...> - 2015-05-25 20:09:39
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "openMSX (main)".
The branch, master has been updated
via 5728c796e100c5b0bef1b0ee6d1209227ff3194d (commit)
from ba0f6c438a0592602d50b77bb3141f91ec2b9a16 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 5728c796e100c5b0bef1b0ee6d1209227ff3194d
Author: m9710797 <ver...@gm...>
Date: Mon May 25 22:09:13 2015 +0200
fix Android build, see comments in code
-----------------------------------------------------------------------
Summary of changes:
src/fdc/MSXtar.cc | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/fdc/MSXtar.cc b/src/fdc/MSXtar.cc
index 7a53ae9..f083656 100644
--- a/src/fdc/MSXtar.cc
+++ b/src/fdc/MSXtar.cc
@@ -442,8 +442,11 @@ static void getTimeDate(const string& filename, unsigned& time, unsigned& date)
time = 0;
date = 0;
} else {
- // some info indicates that st.st_mtime could be useless on win32 with vfat.
- getTimeDate(static_cast<time_t&>(st.st_mtime), time, date);
+ // Some info indicates that st.st_mtime could be useless on win32 with vfat.
+ // On Android 'st_mtime' is 'unsigned long' instead of 'time_t'
+ // (like on linux), so we require a reinterpret_cast. That cast
+ // is fine (but redundant) on linux.
+ getTimeDate(reinterpret_cast<time_t&>(st.st_mtime), time, date);
}
}
hooks/post-receive
--
openMSX (main)
|
|
From: Wouter V. <m97...@us...> - 2015-05-25 14:35:31
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "openMSX (main)".
The branch, master has been updated
via ba0f6c438a0592602d50b77bb3141f91ec2b9a16 (commit)
from 605b6ddb9a912d1669f3215b270b5375d220532f (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit ba0f6c438a0592602d50b77bb3141f91ec2b9a16
Author: m9710797 <ver...@gm...>
Date: Mon May 25 16:22:38 2015 +0200
Fix some (windows specific) -Wold-style-cast warnings
I enabled -Wold-style-cast and fixed some warnings. On linux our code was
already warning free when enabling this option, only some windows specific code
needed changes.
I would have liked to enable this flag by default, but unfortunatley it
triggers many false-positives when using gcc-4.7 (also on linux), gcc-4.8 and
up are fine. So maybe revisit this once we bump the minimum compiler version.
-----------------------------------------------------------------------
Summary of changes:
src/events/Socket.cc | 9 +++++----
src/fdc/MSXtar.cc | 2 +-
src/security/SspiNegotiateServer.cc | 6 +++---
src/security/SspiUtils.cc | 14 +++++++-------
4 files changed, 16 insertions(+), 15 deletions(-)
diff --git a/src/events/Socket.cc b/src/events/Socket.cc
index 759f10f..3a10a84 100644
--- a/src/events/Socket.cc
+++ b/src/events/Socket.cc
@@ -11,10 +11,11 @@ std::string sock_error()
#ifdef _WIN32
wchar_t* s = nullptr;
FormatMessageW(
- FORMAT_MESSAGE_ALLOCATE_BUFFER
- | FORMAT_MESSAGE_FROM_SYSTEM
- | FORMAT_MESSAGE_IGNORE_INSERTS,
- nullptr, WSAGetLastError(), 0, (LPWSTR)&s, 0, nullptr);
+ FORMAT_MESSAGE_ALLOCATE_BUFFER |
+ FORMAT_MESSAGE_FROM_SYSTEM |
+ FORMAT_MESSAGE_IGNORE_INSERTS,
+ nullptr, WSAGetLastError(), 0, reinterpret_cast<LPWSTR>(&s),
+ 0, nullptr);
std::string result = utf8::utf16to8(s);
LocalFree(s);
return result;
diff --git a/src/fdc/MSXtar.cc b/src/fdc/MSXtar.cc
index c8e9695..7a53ae9 100644
--- a/src/fdc/MSXtar.cc
+++ b/src/fdc/MSXtar.cc
@@ -443,7 +443,7 @@ static void getTimeDate(const string& filename, unsigned& time, unsigned& date)
date = 0;
} else {
// some info indicates that st.st_mtime could be useless on win32 with vfat.
- getTimeDate((time_t&)st.st_mtime, time, date);
+ getTimeDate(static_cast<time_t&>(st.st_mtime), time, date);
}
}
diff --git a/src/security/SspiNegotiateServer.cc b/src/security/SspiNegotiateServer.cc
index addfeb6..bc60319 100644
--- a/src/security/SspiNegotiateServer.cc
+++ b/src/security/SspiNegotiateServer.cc
@@ -105,8 +105,8 @@ bool SspiNegotiateServer::Authorize()
if (!secur32) {
return false;
}
- QUERY_SECURITY_CONTEXT_TOKEN_FN QuerySecurityContextToken =
- (QUERY_SECURITY_CONTEXT_TOKEN_FN)GetProcAddress(secur32, "QuerySecurityContextToken");
+ auto QuerySecurityContextToken = reinterpret_cast<QUERY_SECURITY_CONTEXT_TOKEN_FN>(
+ GetProcAddress(secur32, "QuerySecurityContextToken"));
if (!QuerySecurityContextToken) {
return false;
}
@@ -127,7 +127,7 @@ bool SspiNegotiateServer::Authorize()
psd,
hClientToken,
ACCESS_ALL,
- (PGENERIC_MAPPING)&mapping,
+ const_cast<PGENERIC_MAPPING>(&mapping),
&privilegeSet,
&dwPrivSetSize,
&dwGranted,
diff --git a/src/security/SspiUtils.cc b/src/security/SspiUtils.cc
index 597011f..fd646dd 100644
--- a/src/security/SspiUtils.cc
+++ b/src/security/SspiUtils.cc
@@ -152,7 +152,7 @@ static PTOKEN_USER GetProcessToken()
ret = GetTokenInformation(hProcessToken, TokenUser, nullptr, 0, &cbToken);
assert(!ret && GetLastError() == ERROR_INSUFFICIENT_BUFFER && cbToken);
- pToken = (TOKEN_USER*)LocalAlloc(LMEM_ZEROINIT, cbToken);
+ pToken = static_cast<TOKEN_USER*>(LocalAlloc(LMEM_ZEROINIT, cbToken));
if (pToken) {
ret = GetTokenInformation(hProcessToken, TokenUser, pToken, cbToken, &cbToken);
DebugPrintSecurityBool("GetTokenInformation", ret);
@@ -179,17 +179,17 @@ PSECURITY_DESCRIPTOR CreateCurrentUserSecurityDescriptor()
// Allocate the SD and the ACL in one allocation, so we only have one buffer to manage
// The SD structure ends with a pointer, so the start of the ACL will be well aligned
- BYTE* buffer = (BYTE*)LocalAlloc(LMEM_ZEROINIT, SECURITY_DESCRIPTOR_MIN_LENGTH + cbACL);
+ BYTE* buffer = static_cast<BYTE*>(LocalAlloc(LMEM_ZEROINIT, SECURITY_DESCRIPTOR_MIN_LENGTH + cbACL));
if (buffer) {
- psd = (PSECURITY_DESCRIPTOR)buffer;
- PACL pacl = (PACL)(buffer + SECURITY_DESCRIPTOR_MIN_LENGTH);
+ psd = static_cast<PSECURITY_DESCRIPTOR>(buffer);
+ PACL pacl = reinterpret_cast<PACL>(buffer + SECURITY_DESCRIPTOR_MIN_LENGTH);
PACCESS_ALLOWED_ACE pUserAce;
if (InitializeSecurityDescriptor(psd, SECURITY_DESCRIPTOR_REVISION) &&
InitializeAcl(pacl, cbACL, ACL_REVISION) &&
AddAccessAllowedAce(pacl, ACL_REVISION, ACCESS_ALL, pUserSid) &&
SetSecurityDescriptorDacl(psd, TRUE, pacl, FALSE) &&
// Need to set the Group and Owner on the SD in order to use it with AccessCheck()
- GetAce(pacl, 0, (void**)&pUserAce) &&
+ GetAce(pacl, 0, reinterpret_cast<void**>(&pUserAce)) &&
SetSecurityDescriptorGroup(psd, &pUserAce->SidStart, FALSE) &&
SetSecurityDescriptorOwner(psd, &pUserAce->SidStart, FALSE)) {
buffer = nullptr;
@@ -224,7 +224,7 @@ static bool Send(StreamWrapper& stream, void* buffer, uint32_t cb)
{
uint32_t sent = 0;
while (sent < cb) {
- uint32_t ret = stream.Write((char*)buffer + sent, cb - sent);
+ uint32_t ret = stream.Write(static_cast<char*>(buffer) + sent, cb - sent);
if (ret == STREAM_ERROR) return false;
sent += ret;
}
@@ -244,7 +244,7 @@ static bool Recv(StreamWrapper& stream, void* buffer, uint32_t cb)
{
uint32_t recvd = 0;
while (recvd < cb) {
- uint32_t ret = stream.Read((char*)buffer + recvd, cb - recvd);
+ uint32_t ret = stream.Read(static_cast<char*>(buffer) + recvd, cb - recvd);
if (ret == STREAM_ERROR) return false;
recvd += ret;
}
hooks/post-receive
--
openMSX (main)
|
|
From: Wouter V. <m97...@us...> - 2015-05-25 13:27:04
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "openMSX (main)".
The branch, master has been updated
via 605b6ddb9a912d1669f3215b270b5375d220532f (commit)
from 2bcb2a275e734afc2008f8f34c472e9edbc9b2d9 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 605b6ddb9a912d1669f3215b270b5375d220532f
Author: m9710797 <ver...@gm...>
Date: Mon May 25 15:24:40 2015 +0200
Fix windows-specific -Wmissing-declarations warnings for real
Thanks to Manuel for showing me how to do a mingw-w64 cross-build. _Much_
easier to fix warnings this way.
-----------------------------------------------------------------------
Summary of changes:
src/serial/Midi_w32.cc | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/src/serial/Midi_w32.cc b/src/serial/Midi_w32.cc
index 8b53d27..7844142 100644
--- a/src/serial/Midi_w32.cc
+++ b/src/serial/Midi_w32.cc
@@ -27,6 +27,7 @@
#ifdef _WIN32
+#include "Midi_w32.hh"
#include "MSXException.hh"
#include "MemBuffer.hh"
#include "StringOp.hh"
@@ -36,8 +37,6 @@
#include <cstdlib>
#include <sstream>
#include <cassert>
-#include <windows.h>
-#include <mmsystem.h>
#define MAXPATHLEN MAX_PATH
hooks/post-receive
--
openMSX (main)
|
|
From: Wouter V. <m97...@us...> - 2015-05-25 11:09:37
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "openMSX (main)".
The branch, master has been updated
via 2bcb2a275e734afc2008f8f34c472e9edbc9b2d9 (commit)
from d4862ad3ee55592244de42afd48ed29455b62bd3 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 2bcb2a275e734afc2008f8f34c472e9edbc9b2d9
Author: m9710797 <ver...@gm...>
Date: Mon May 25 13:09:29 2015 +0200
more windows specific -Wmissing-declarations warning fixes
-----------------------------------------------------------------------
Summary of changes:
src/security/SspiUtils.cc | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/security/SspiUtils.cc b/src/security/SspiUtils.cc
index 1602ef8..597011f 100644
--- a/src/security/SspiUtils.cc
+++ b/src/security/SspiUtils.cc
@@ -240,7 +240,7 @@ bool SendChunk(StreamWrapper& stream, void* buffer, uint32_t cb)
return Send(stream, buffer, cb);
}
-bool Recv(StreamWrapper& stream, void* buffer, uint32_t cb)
+static bool Recv(StreamWrapper& stream, void* buffer, uint32_t cb)
{
uint32_t recvd = 0;
while (recvd < cb) {
@@ -251,7 +251,7 @@ bool Recv(StreamWrapper& stream, void* buffer, uint32_t cb)
return true;
}
-bool RecvChunkSize(StreamWrapper& stream, uint32_t* pcb)
+static bool RecvChunkSize(StreamWrapper& stream, uint32_t* pcb)
{
uint32_t cb;
bool ret = Recv(stream, &cb, sizeof(cb));
hooks/post-receive
--
openMSX (main)
|