MSX IPS Patch Archive updated again 
Saturday, July 21, 2012, 15:52
Today I've added some patches to the archive again:
  • added Deltasoft's Sorcerian English translation
  • added Deltasoft's Feedback English translation
  • added Knightmare Gold R3 fixes patches
  • added Maze of Galious screens fixes patch
  • added King's Valley 2 editor fix patches
  • added Metal Gear 2 Solid Snake fixes patch
  • added Quarth end-of-stage fix patch
  • added Quarth title screen patch
  • added Metal Gear 2 Turbo patch to allow PANplus patch

add comment (5216 views)   |  permalink   |  related link
MSX IPS Patch Archive updates 
Wednesday, July 11, 2012, 18:25
After some time of issues regarding the means of updating I've got a way to update the archive again. To restart with some standing updates were done:
  • 2 patches regarding Montana John and the Templar's Treasure updated to version 1.1 of the game
  • the patch to get the Sega Master System version of Bomb Jack running on MSX
  • The README.TXT of Novalia Spirit's Golvellius English patch is updated
  • Metal Gear 2 Solid Snake English translation patches are updated to version 1.3
  • Metal Gear literal and modern English translation patches were replaced by the latest single version

add comment (15382 views)   |  permalink   |  related link Special Interest pages update - GETROM v1.1 
Sunday, March 25, 2012, 22:36
Recently more and more people reported problems with saving system ROMS using GETROM to cassette. One person who reported found the problem and reported the fix back to me. After reviewing and testing the fix I've put this new version online for download.

Thanks go to Jemo1982 for looking into the problem and fixing the bug. For convenience also a cassette version is released in .wav format.
add comment (3165 views)   |  permalink   |  related link
GBASIC version 1.0 released 
Wednesday, December 28, 2011, 18:05
After many years of inactivity (or silent development) of G-Basic I've decided to contact its developer Koen van Hartingsveldt to restart active development. Today I released GBASIC version 1.0 as a TNI product. This is mainly a synchronization release to synchronize the manual to the binary.

Other changes are:
  • Added interlace reset to hot-key.
  • Fixed colour defaults between GPSET (foreground) and GPRESET (back-drop).
  • Fixed GSPRITE$(). A full 128-byte string for pattern 0 cleared pattern 1.
  • Added interlace support to GCOPY SCREEN.

(10 February 2012: This version is also available at the Sunrise website.)
add comment (6765 views)   |  permalink   |  related link
MSX2 with 64 kB VRAM 
Monday, November 28, 2011, 11:03


The MSX standard provides minimal requirements for a machine to be MSX compatible and therefore bare the MSX logo. For the MSX2 the amount of Video memory (VRAM) is 128 kB in most cases. The standard requires a minimum of 64 kB VRAM. A few MSX2 computers do have this amount of VRAM: Canon V-25, Hitachi MB-H3, Talent TPP-311, Talent TPS-312 and Toshiba HX-23.


With 64 kB VRAM MSX-BASIC has a few limitations. As expected SCREEN 5 and SCREEN 6 will have 2 display pages in stead of 4. This can be verified with the SET PAGE statement. Setting a page above 1 will result in an "Illegal function call" error. However, because of the way the VRAM is accessed, SCREEN 7 and SCREEN 8 are completely absent. Trying to display any of these screens will also result in an "Illegal function call" error.

In SCREEN 7 and SCREEN 8 the VDP accesses the VRAM in a different way. This means that reading from even addresses reads from different physical RAM chips than reading from odd addresses. This way the screen display can be updated much faster. For the Z80 nothing changes. Addressing VRAM is still the same. The VDP does all conversions internally.

Detecting if the MSX2 has 64 kB VRAM

When the MSX logo is displayed a byte will be written to the upper 64 kB VRAM. If reading it returns the same value, the MSX2 has 128 kB VRAM, otherwise it has 64 kB VRAM. This result is reflected in the system RAM. The name of the variable is MODE and the address is $FAFC. Bits 1 and 2 represents the number of available pages for SCREEN 5 and SCREEN 6:


This value is also used to determine whether or not SCREEN 7 and SCREEN 8 are valid. Some games also use this value to determine the machine is MSX2 or higher, to enable extra features. One game using this is R-Type.

Emulation of 64 kB VRAM

Before 8 March 2011 openMSX couldn't detect the 64 kB VRAM. This is because the VRAM was automatically mirrored in both lower and upper 64 kB VRAM area, so writing to the upper 64 kB would always return the correct value when read.

BlueMSX still has the VRAM mirrored during 64 kB VRAM emulation. Developer Daniel Vik claimed to have noticed this after testing on a real MSX. Strange enough the MSX logo still detects 128 kB VRAM even when 64 kB is selected for the machine.

The mirrored 64 kB VRAM does give funny results when displaying SCREEN 7 or SCREEN 8.
10 COLOR ,0,0:SCREEN 8:COLOR 255
20 OPEN "GRP:" AS #1
30 DRAW "bm8,8":PRINT #1,"Hello world!"
40 GOTO 40

Recorded proof

SapphiRe has recorded a few videos showing a Hitachi MB-H3 with 64 kB VRAM. The first video shows the result of trying to set a few SCREEN modes. The second video shows the result of displaying a page that has no RAM chips:

Test with displaying certain SCREEN modes.
Test with displaying page 2 contents.

Final words

I hope this article clarifies the 64 kB VRAM feature in some MSX2 computers and its limitations in MSX-BASIC. By directly changing VDP registers it's still possible to display the screen modes and pages that are disabled by MSX-BASIC. It's not recommended to change the value at the MODE system variable (address &HFAFC). It contains more than just the number of available pages in SCREEN 5 and SCREEN 6.
add comment (23968 views)   |  permalink

<<First <Back | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | Next> Last>>