#211 MSX models are too european-centric for a japanese standard

SD Snatcher

Please don't get angry, but the current configuration of all MSX machines available on openMSX is too european-centric for a japanese standard as is the MSX.

Many models had both japanese and european versions, but they only have european configurations on openMSX. Examples:

- Toshiba HX-10
- Sanyo MPC-100

And many others. A japanese user of openMSX will not recognize those machines as they're configured and think that there's an emulation problem. Maybe this (together with the default machines being also european) is one of the factors that contributes to many people reporting that "it doesn't feel realistic":

There should be an easy way to select between the japanese and european model of the same machine without having to duplicate all those machines. The only difference between the japanese and european versions of the same machine usually is only the VDP and the ROMs. For MSX2 models, only the ROMs change.

And off course, the default model on the shared configuration should be the japanese model, because those machines were designed on Japan an only later adapted for the european market.


  • If we would get our hands on ROM images and other info that would enable us to make the machine configurations for these machines, we would.

    The stuff mentioned in that thread has nothing to do with this tracker item, though.

    • labels: --> MSX devices support
  • SD Snatcher
    SD Snatcher

    I believe that one problem in obtaining ROM dumps is that the current way requires a lot of technical skill from the owner of the machine.

    One way to make things easier would be to include with openMSX one tool that scans the entire MSX and try to generate the XML file and romdumps of it.

    This way I believe that japanese guys we know, like Ikeda and Jazzin (NekoLauncher), could help dumping the machines they have.

    I know there are machines that have megaroms inside, but how many different mappers there are? Wouldn't be that hard to test each slot for megarom types.

  • SD Snatcher
    SD Snatcher

    The blueMSX site has a lot of ROMdumps of machines that are not supported by openMSX yet. That can probably help too:

  • SD Snatcher
    SD Snatcher

    C-BIOS MSX2 and MSX2+ also defaults to 50Hz, which is the european standard. This confuses a lot of japanese and brazilian users, as they just think openMSX run games slower than a real machine. Just remember that C-BIOS is the only BIOS available when a newbie installs openMSX for the 1st time.

    Jazzin is even having to warn NekoLauncher users that this "slowness" is caused by the C-BIOS, as you can see here: http://nekocan.sitemix.jp/?p=693

  • I also saw the post by Jazzin and took action: C-BIOS currently also has JP specific binaries, which will be integrated into openMSX before the next release. (It requires a C-BIOS release first.)

  • The Japanese ROMs will cause some games to show Japanese text instead of English though. So I think it would be useful to also have a Brazilian C-BIOS variant which uses 60 Hz but also identifies itself as international (or Brazilian if there is a code for that).

  • I just added "Brazillian" configs to C-BIOS. They are the same as the international ones, except that the machines run on 60Hz and the colors are initialized to 15,1,1.

    FRS, is there something else that we should modify/adjust for the BR C-BIOS? Is the charset different from int? Keyboard code? Something else?

  • SD Snatcher
    SD Snatcher


    The charset and the keyboard layout are both different from the international one, since it includes deadkeys for accentuation and the ABNT charset. You can easily get both from the Sharp Hotbit v1.2 BIOS. Don't use the Gradiente Expert 1.0 BIOS, since it has an incorrect charset/kbd layout.

    But take care that on Hotbit BIOS there was a single key combination missing: GRAPH+/ should produce the \ character, but did produced nothing. The MSX2 upgrade kits for those machines fixed this. You can just add this combination to your table safely.

    Please don't set the colors to 15,1,1. That was an Gradiente thing, only because they sold a crappy monochrome monitor and this workaround made the image look better. The hotbits booted to the default 15,4,4 as any Philips machine, and that colors are a better suited default for the Brazilian C-BIOS.

    I don't remember clearly about the region code, but you can also take a look at the Hotbit v1.2 BIOS to be sure if there was an specific region for Brazil.

  • Thanks for the info. Some remarks:
    - we don't know anything about the keyboard layout and the charset... I think the keyboard layout isn't even properly supported in openMSX. Maybe you can take a look at that? There is now no unicode-mapping file for the Brazillian machines (see their config xml files) and we don't have a machine to find this out.
    - I don't know what the difference is between ABNT and the normal characters set. Which characters are different? Without extra information, we can't fix this. Ideally, someone sends a modified font file (font.asm in the sources of C-BIOS, which now has a JP and a US/INT font). Of course this may not be extracted from an existing ROM, but adapting the US/INT font is probably not hard.
    - I'll change the colors back to 15,4,4
    - The region code is set to INT.

  • SD Snatcher
    SD Snatcher

    For reference and documentation:

    The charset and keyboard was standardized by ABNT (Brazilian National Standards Organization):

    - The charset, nicknamed "BRASCII" was standarized by NBR-9614:1986 and later updated by NBR-9611:1991. (The MSX machines used the 1st version, of course)
    - The keyboard, nicknamed "ABNT-1", was standarized by NBR-9612:1986 and NBR-9613:1986

    The BRASCII charset was obsoleted by the ISO-8859-1 and newer standards.

    The current keyboards sold everywhere here are nicknamed "ABNT-2" are based on the newer NBR-10346:1991 and NBR-10347:1991 standards which obsoleted the previous ones. I heard that there were some minor updates on the overall layout to upgrade it from 84 keys to 102 keys.

    On the charset aspect, the Sharp Hotbits were born with the correct charset, while the Gradiente Experts only have the correct charset on the "1.1" revision.

    On the keyboard aspect, both machines don't seem to follow the standard very strictly. Unfortunately I can't find the NBR-9614:1986 anymore to check what were the real deviations from the standard. Comparing with the ABNT2, the Hotbits seem to be more compliant on the upper keys (first keyboard row, where the numbers are). The Experts, OTOH, seem to be more compliant on the lowest row and the keys at the right of "P" and "Ç".

    And how all that affects a brazilian version of the C-BIOS? It can be resumed as this:

    1) The C-BIOS charset is only 6x7 pixels, while the original MSX charset was 6x8. This makes the creation of accented characters a real nightmare. 6x8 characters was already very hard. I tried a test to modify the international version using TileMolester and its hard to have something useful. Why don't the C-BIOS use 6x8 characters?

    2) The keyboard layout will have to opt between one of the four choices: The Hotbit layout, the Expert layout, the newer ABNT2, or the ubiquitous "US-International" layout.

    I have to confess I'm more inclined to the "US-International" layout, since:

    a) The C-BIOS don't work on real hardware, only on emulators. So Hotbits and Experts are out.
    b) Probably it would make things easy to emulate: All keys are easily available on all host-OS keyboards.
    c) The US keyboard layout is considered almost universal. That would make it an ideal choice for a "60Hz international MSX BIOS".
    d) If a C-BIOS would be used on newer hardware (an OCM, i.e.), it could easily support the current translation VHDL without modification.

  • Thanks for this info, FRS.

    Some comments:
    - the C-BIOS US charset is designed with a look of 6x7, but AFAIK it already includes all accented characters of the international MSX charset. Are there new characters in the BRASCII charset? If there are indeed new characters (I'm curious which ones!), it might be a good idea to base the BR charset on the JP one, but that means that all chars above 127 need to be added/modified/updated.
    - C-BIOS does work on real machines, so please never use this as an argument for anything :) It will be hard to make the keyboard part work on all real BR machines of course, but that's indeed not necessary anyway.
    - about emulation: we'll have to emulate the keyboards of the existing BR machines anyway, I've asked Alex to look at the unicode mapping files for these keyboards. It seems we'll have to make a couple of variants...
    - on new hardware one could already use the US version of C-BIOS, so no need to take that into consideration for the BR C-BIOS
    - in summary: I think the goal of C-BIOS is to provide compatible BIOSes. If there is software that relies on "Brazillianness" of the BIOS, we should include those particularities in the BR BIOS. Do you know any of such software and do you know which particularities those are? (Maybe a good example is the BASIC ROM of a Brazillian machine? :)

  • SD Snatcher
    SD Snatcher

    You're welcome, Manuel.

    I didn't meant to offend on the comment about running on real hardware, but sorry. What I wanted to say is that it don't run on real hardware *yet*. I tested on both an Expert 1.1 and my Sony HB-F1XDJ and it didn't booted. But I'm sure this will change in the future, as the C-BIOS is getting better and better. I even opened some bug-reports and feature-requests on the C-BIOS SourceForge project.

    After quite some fiddling using TileMolester, I was able to create a brazilian charset based on the C-BIOS font. I had to reposition the fonts one pixel lower to improve the readability of the accented letters while worrying how to avoid to cause too much impact if the fonts get backported to the EN-charset. I attached the BR-charset on this thread.

    Maybe it's a good idea to upgrade the EN-charset to match this better accent readability, as it also have many accented characters shared with the BR-charset. That's just a suggestion, off couse.

    Apart from what I described (charset and keyboard), AFAIKR there's not that much other relevant "brazilianness" on the BIOS. The softwares that this differences matter (apart from BASIC) where:

    - Any TextEditor, as otherwise it was a pain-in-the-neck to type accented characters. The same applies for any software that use the BIOS to obtain text instead of just getting it directly from the keyboard matrix. Please note that this was fully compatible with MSX software from other regions.
    - Also there were many programs (mainly in BASIC) that relied on the charset not only for the accented characters, but to draw some borders or graphics on screen. But that only caused problems run those programs where run on Japanese machines, as the BR-charset and the EN-charset match exactly on all graphics characters.

    Now about the keyboard. I had a look on the C-BIOS keyboard decoder. It works pretty much as the original BIOS, but it seems to use the code 00h for deadcodes instead of 0FFh, right? But then the key_store_end2 seems to do nothing to deal with it.

    How are the deadkeys of, i.e., the de-kbd-layout processed on C-BIOS? Or it just ignores the deadkeys for now?

  • SD Snatcher
    SD Snatcher

    BR-charset for C-BIOS

  • First of all: check this video: http://il.youtube.com/watch?v=7V6Voa_4_lw (it does not include the logo ROM). It does seem the fonts are corrupted, though :S

    Anyway, thanks for submitting the file. I was about to add it to C-BIOS, but then I discovered that there is no LOCALE_CHSET code for Brazillian.... BR machines use "US" as code. So it's not easy to add. I did do some preparations though.
    I hope mth or BiFi can give me a hand here.

    About the font; which characters are different compared to the US/INT one? (Hard to diff if you had to shift many characters down.)

    I'll talk with Eric about the US font, he designed it.

    About dead key in C-BIOS: I don't know anything about that, sorry.

  • SD Snatcher
    SD Snatcher

    I saw that video. Very cool. But unfortunately it didn't run on both machines I tried. I guess this probably was caused becase:
    1) The MSX1 VDP is much slower. The C-BIOS MSX1 should have extra delays to compensate that.
    2) Sony machines are very picky about the timing. I usually ask everyone that have Sony machines to test my games/fixes/ports because of this.

    > I discovered that there is no LOCALE_CHSET code for Brazillian....

    I think this was a mistake by the local MSX makers. They probably misunderstood what the "International" meant on the MSX specs. If I may, I think that's a good time to finally fix this in a elegant way: Assign a new code for both the brazilian charset. According to the MSX Assembly Page, the following codes are used:
    charset: 0 = Japanese, 1 = International, 2=Korean

    Then the Brazilian NBR-9614:1986 charset could be assigned to the number 3.

    The keyboard code, OTOH is a bit more complicated. Maybe the keyboard code for both the Hotbit and Expert could be assigned to the number 5, as "Brazilian ABNT1". That is enough to know that there's some differences between the two models.

    What do you think of the idea? It wouldn't break any existing software, I believe.

    About the font: One screenshot says more than a thousand words. I attached an screenshot of both tables side-by-side.

    Dead-keys: It seems that there's no dead-keys support on C-BIOS for now and the tables even have their places zeroed (it should still be FFh and just be ignored, IMHO). This means that the brazilian keyboard tables will not work fully on C-BIOS initially, as there's 3 deadkeys on the Hotbit and 2 deadkeys on the Expert. But the basic characters will work normally: only accented characters will not be produced.

    I'm working on creating the tables for the brazilian keyboards. But it's being quite troublesome, since the deadkeys tables are not that easy to obtain. On the process, I remembered the character that the brazilian MSXs keyboards weren't able to produce back then: The tilde ~ (7Eh on ASCII table). This will be fixed on the keyboard tables I'm creating.

  • Hi,

    It took me a while, but I'm back on this.

    I don't think it's a good idea to invent new id's for Brazillian... C-BIOS is meant to be compatible, so it should do something similar as a traditional BR BIOS.

    In the mean time, Alex made tables for the existing Brazillian machines, they are in SVN now and used in the Gradiente and HotBit machines.

    I'm not sure if I should use one of them for the BR C-BIOS machines... what do you think?

    Actually, I don't even know how to adjust C-BIOS to decode a Brazillian keyboard table... A patch is welcome :P