- Category: MAME
- Hits: 4222
The key to switch between Full Keyboard Mode and Partial Keyboard Mode is preset to Scroll Lock. If you want to map it to another key, simply define the uimodekey property in mame.ini.
Setting in mame.ini
# OSD KEYBOARD MAPPING OPTIONS
This would change the menu key to the Enter key on the number keypad. You can choose any key from this set:
A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15, ESC, TILDE, MINUS, EQUALS, BACKSPACE, TAB, OPENBRACE, CLOSEBRACE, ENTER, COLON, QUOTE, BACKSLASH, BACKSLASH2, COMMA, STOP, SLASH, SPACE, INSERT, DEL, HOME, END, PGUP, PGDN, LEFT, RIGHT, UP, DOWN, 0_PAD, 1_PAD, 2_PAD, 3_PAD, 4_PAD, 5_PAD, 6_PAD, 7_PAD, 8_PAD, 9_PAD, SLASH_PAD, ASTERISK, MINUS_PAD, PLUS_PAD, DEL_PAD, ENTER_PAD, PRTSCR, PAUSE, LSHIFT, RSHIFT, LCONTROL, RCONTROL, LALT, RALT, SCRLOCK, NUMLOCK, CAPSLOCK, LWIN, RWIN, MENU, CANCEL
If you do not yet have a mame.ini file in your folder, run MAME with the -createconfig option from a command shell:
Command line option
As with all settings in mame.ini, you can also provide this setting in the command line:
mame64 ti99_4a -uimodekey ENTER_PAD
- Category: MAME
- Hits: 2868
The MAME emulator is operated via the keyboard and a graphic menu. However, the system that it emulates also make more or less extensive use of the keyboard, so we should expect conflicts.
Hence, MAME defines two operation modes and two layout modes of the keyboard:
- Operation modes
- Full keyboard mode
- Partial keyboard mode
- Layout modes
- Emulated keyboard mode
- Natural keyboard mode
You can change the key for switching between the modes if your keyboard does not have a Scroll-Lock key: Change the UI mode key.
The natural keyboard
The natural keyboard posts complete strings for each keystroke but throttles the output.
- © -> (C) (three characters)
- ß -> ss
- æ -> ae
Alpha Lock: Caution must be taken that Alpha Lock is in the release state when starting the emulation. The reason is that the Alpha Lock state cannot be changed in natural keyboard mode. Instead, the case is controlled by the PC keyboard and its Caps Lock state. If Alpha Lock is on (from the last emulation run with emulated keyboard), all characters appear as upper case, regardless of the Caps Lock setting.
- Category: MAME
- Hits: 8009
Actually, all Linuxes are alike. Almost. In the end, you run into problems because one system is by default installed with some library that another does not use. Since these libraries are installed only once, the challenge is to find out which libraries need to be installed and which are already there, and this is again different from system to system.
Thus, not the Linuxes are different, but their installation evolves over time. I will give some hints for installing MAME on different systems on this page.
MAME is dynamically linked against some libraries which may not be installed on your machine.
But fixing this is a simple job which you have to do only once. The following commands have been tested on a fresh installation. After installing, you should be able to run MAME. (Please report if you find a different situation.)
Unfortunately, different Linux flavors come with different package installers. And to make things worse, they use different package names for the same libraries.
sudo zypper install libSDL2_ttf-2_0-0
sudo zypper install libQt5Widgets5
Ubuntu 19.10, 20.04
Linux Mint 19.3
sudo apt install libsdl2-ttf-2.0-0
sudo apt install libqt5widgets5
- Category: MAME
- Hits: 8559
While the simulation of hardware circuits is in no way problematic with respect to copyright (since we produce a new system by observing the behavior of the original one), the distribution of memory contents is generally subject to copyright, and unlicenced distribution is considered an offense by most jurisdictions. Some countries know exemptions in the case of legacy software that is not runnable without the hardware, when the hardware is not available anymore. Other countries do not have corresponding exemptions. So you have to be aware of the following:
Consequently, I will not provide links for downloading these files. Find out by yourself how to get them. The safest way (from a legal standpoint) is to dump the contents from the real equipment if you own such a system.
At least for the TI-99/8 we have a written consent from TI that the ROM contents may be freely distributed. For TI-99/8 ROMs have a look at Planet99.net (login required).
Rumours are that you should also try the FTP site of WHTech.
The ROM dumps used for the TI emulations can be identified by this list. The required files must be present when starting the emulation. If an optional file is missing, the emulation will run, provided that the affected component that needs the ROM is not accessed. You will get a warning message stating that ROMs are missing and that the emulation will probably not run correctly.
Systems may be parents of others. In that case, the child systems borrow the ROM files from the parents if they do not have them in their own ZIP file. This means that if you have the ti99_4a.zip file, you can always launch the European version ti99_4ae since all files are equal, and the ti99_4a is the parent of ti99_4ae.
- ti99_4 is the parent of ti99_4e (european version)
- ti99_4a is the parent of ti99_4ae and ti99_4ev
- ti99_8 is the parent of ti99_8e
MAME is tolerant about the file names inside the ZIP files; the only important key is the hash code. ROM contents are compared by their hash code to make sure that the contents are authentic. Files may be renamed within the ZIP files.
The following table refers to MAME versions 0.212 and higher. The ROM dumps are distributed over a set of ZIP files. Each ZIP file corresponds to a single system or peripheral extension.
These are the ROMs for the consoles, the Geneve, and the SGCPU.
Also comprises the European version (ti99_4ae)
|994a_grom0.u500||2445a5e8||ea15d8b0ac52112dc0d5f4ab9a79ac8ca1cc1bbc||GROM chip 0000-17ff|
|994a_grom1.u501||b8f367ab||3ecead4b83ec525084c70b6123d4053f8a80e1f7||GROM chip 2000-37ff|
|994a_grom2.u502||e0bb5341||e255f0d65d69b927cecb8fcfac7a4c17d585ea96||GROM chip 4000-57ff|
|994a_rom_hb.u610||ee859c5f||a45245707c3dccea902b718554a882d214a82504||ROM chip 0000-1fff high bytes|
|994a_rom_lb.u611||37859301||f4e774fd5913b387a763f1b8de5524c54b255434||ROM chip 0000-1fff low bytes|
TI-99/4A modified for use with EVPC (ti99_4ev)
Inherits from ti99_4a
|994ev_grom1.u501||6885326d||1a98de5ee886dce705de5cce11034a7be31aceac||Modified GROM chip 2000-37ff|
Inherits from ti99_4a
|994qi_grom0.u29||8b07772d||95dcf5b7350ade65297eadd2d680c27561cc975c||Modified GROM chip 0000-17ff|
Geneve 9640 (geneve)
|genbt098.bin||b2e20df9||2d5d09177afe97d63ceb3ad59b498b1c9e2153f7||Boot EPROM v0.98 ("Swan")|
|genbt100.bin||8001e386||b44618b54dabac3882543e18555d482b299e0109||Boot EPROM v1.00|
Geneve 9640 modified (genmod)
Reuses the boot EPROM from the Geneve 9640 (v1.00)
|gnmbt100.bin||8001e386||b44618b54dabac3882543e18555d482b299e0109||Boot EPROM v1.00|
SNUG TI-99/4P aka SGCPU (ti99_4p)
Also requires a prepared HSGPL card and the EVPC.
|sgcpu_hb.bin||aa100730||35e585b2dcd3f2a0005bebb15ede6c5b8c787366||ROM 0000-7FFF high bytes|
|sgcpu_lb.bin||2a5dc818||dec141fe2eea0b930859cbe1ebd715ac29fa8ecb||ROM 0000-7FFF low bytes|
May use the HX5102 as storage. TI-99/4A expansion cards are not guaranteed to work.
|cd2325a.vsm||1f58b571||0ef4f178716b575a1c0c970c56af8a8d97561ffe||Speech ROM chip 1|
|cd2326a.vsm||65d00401||a367242c2c96cebf0e2bf21862f3f6734b2b3020||Speech ROM chip 2|
|g0_f830.bin||1026db60||7327095bf4f390476e69d9fd8424e98ea1f2325a||GROM 0 at address F830 (System)|
|g1_f830.bin||93a43d65||19be8a07d674bc7554c2bc9c7a5725d81e888e6e||GROM 1 at address F830|
|g2_f830.bin||06f2b901||f65e0fcb2c63e230b4a9563c72f91259b94ce955||GROM 2 at address F830|
|g0_f840.bin||44501071||4b5ef7f1aa43a87e7ae4f02090944be5c39b1f26||GROM 0 at address F840 (Text-to-Speech)|
|g1_f840.bin||5a271d9e||bb95befa2ffba2cc17ac437386e069e8ff621248||GROM 1 at address F840|
|g2_f840.bin||d52502df||17063e33ee8709d0df8030f38bb92c4322d55e1e||GROM 2 at address F840|
|g3_f840.bin||86c12396||119b6df9211b5399245e017721fc51b88b60879f||GROM 3 at address F840|
|g4_f840.bin||f17a2ef8||dcb044f71d7f8a165b41f39e35a368d8f2d63b67||GROM 4 at address F840|
|g5_f840.bin||7dc41301||dff714da68de352db93fba309db8e5a8ae7cab1a||GROM 5 at address F840|
|g6_f840.bin||7e310a90||e927d8b3f8b32aa4fb9f7d080d5262c566a77fc7||GROM 6 at address F840|
|g7_f840.bin||3a9d20df||1e6f9f8ec7df4b997a7579be742d0a7d54bc8763||GROM 7 at address F840|
|g0_f850.bin||2d948672||cf15912d6dae5a450e0cfd796aa36ea5e521dc56||GROM 0 at address F850 (P-Code library 1)|
|g1_f850.bin||7d64a842||d5884bb2af21c8027311478ee506beac6f46203d||GROM 1 at address F850|
|g2_f850.bin||e5ed8900||03826882ce10fb5a6b3a9ccc85d3d1fe51979d0b||GROM 2 at address F850|
|g3_f850.bin||87aaf19e||fdbe163773b8a30fa6b9508e679be6fa4f99bf7a||GROM 3 at address F850|
|g4_f850.bin||d3e789a5||5ab06aa75ca694b1035ce5ac0bebacc928721388||GROM 4 at address F850|
|g5_f850.bin||49fd90bd||44b2cef29c2d5304a0dcfedbdcdf9f21f2201bf9||GROM 5 at address F850|
|g6_f850.bin||31bac4ab||e29049f0597d5de0bfd5c9c7bfea902abe858010||GROM 6 at address F850|
|g7_f850.bin||71534098||75e87123efde885e27dd749e07cb189eb2cc45a8||GROM 7 at address F850|
|g0_f860.bin||0ceef210||b89957fbff094b758746391a69dea6907c66b950||GROM 0 at address F860 (P-Code library 2)|
|g1_f860.bin||fc87de25||4695b7f979f59a01ec16c55e4587c3379482b658||GROM 1 at address F860|
|g2_f860.bin||e833e350||6ffe501981a1112be1af596a489d96e287fc6be5||GROM 2 at address F860|
|u25a_pas.bin||d7ed6dd6||32212ce6426ceccbff73d342d4a3ef699c0ae1e4||ROM (16K) containing Pascal support|
|u25_rom1.bin||b574461a||42c6aed44802cfabdd26b565d6e5ddfcd689f11e||ROM containing ROM1 (16K), Text-to-speech DSR (8K), Hexbus DSR (8K)|
|u4_rom0.bin||901eb8d6||13190c5e834baa9c0a70066b566cfcef438ed88a||ROM0 (only used in 99/4A mode)|
Less successful predecessor of the TI-99/4A.
|994_grom0.u500||aa757e13||4658d3d01c0131c283a30cebd12e76754d41a84a||GROM chip 0000-17ff|
|994_grom1.u501||c863e460||6d849a76011273a069a98ed0c3feaf13831c942f||GROM chip 2000-37ff|
|994_grom2.u502||b0eda548||725e3f26f8c819f356e4bb405b4102b5ae1e0e70||GROM chip 4000-57ff|
|994_rom_hb.u610||6fcf4b15||d085213c64701d429ae535f9a4ac8a50427a8343||ROM chip 0000-1fff high bytes|
|994_rom_lb.u611||491c21d1||7741ae9294c51a44a78033d1b77c01568a6bbfb9||ROM chip 0000-1fff low bytes|
TI-99/2 24K (ti99_224)
Uses 24K ROM; earlier prototype. Does not support Hexbus.
TI-99/2 32K (ti99_232)
Uses 32K ROM; later prototype. May use HX5102 as storage.
|rom4000a.u3||10c11fab||d43e0952538e66e2cedc307b71b65cb388cbe8e3||ROM 4000-5FFF Bank 1|
|rom4000b.u2b||34dd52ed||e01892b1b110d7d592a7e7f1f39f9f46ea0818db||ROM 4000-5FFF Bank 2|
Peripheral Expansion Cards
These are cards that are plugged into the Peripheral Expansion Box (PEB).
SNUG BwG disk controller (ti99_bwg)
|bwg_dsr.u15||06f1ec89||6ad77033ed268f986d9a5439e65f7d391c4b7651||DSR ROM (4 banks)|
SNUG Enhanced Video Processor Card (ti99_evpc)
Runs on ti99_4ev, sgcpu
Myarc Hard and Floppy Disk Controller (ti99_hfdc)
Standard floppy and hard disk controller. Runs with TI-99/4A and Geneve. Supports 2 sides, single (9) and double (18) density, and 40 or 80 tracks.
Myarc Memory Expansion Card MEXP-1 (ti99_myarcmem)
Configured to run with Myarc Extended Basic II.
P-Code Card (ti99_pcode)
Card has a master enable/disable switch (check DIP settings).
|pcode_grom0.u11||505e5df0||66911fba7599c64981180f8a673581f4b05941ff||Card GROM 0000-17FF|
|pcode_grom1.u13||63b546d5||3d830c8bdac102275ec0702eff1ebf4b67484f52||Card GROM 2000-37FF|
|pcode_grom2.u14||28821e5c||c147bd5d8d624caa690284bfc253c6699e3518d4||Card GROM 4000-57FF|
|pcode_grom3.u16||1db4a4a5||f7a0ba8050f00ccc1ee328c66df5cc4269748ced||Card GROM 6000-77FF|
|pcode_grom4.u19||9618eb9b||1f223f3febcb93e648cefe49c83bfeac802be9d6||Card GROM 8000-97FF|
|pcode_grom5.u20||c47efe6d||f5b56c7de1cb1e7345a0716d35f00a3a9722febe||Card GROM A000-B7FF|
|pcode_grom6.u21||06a34c93||56172c56afa3868f2098328f81881022230d949d||Card GROM C000-D7FF|
|pcode_grom7.u22||a09ca8d9||2ea33d875f9c8e7c00df023a0d8d4461d50f0a87||Card GROM E000-F7FF|
|pcode_rom0.u1||3881d5b0||a60e0468bb15ff72f97cf6e80979ca8c11ed0426||Card ROM 4000-4FFF|
|pcode_rom1.u18||46a06b8b||24e2608179921aef312cdee6f455e3f46deb30d0||Card ROM 5000-5FFF 2 Banks|
TI Floppy Disk Controller Card (ti99_tifdc)
Supports 2 sides, FM recording (single density), and 40 tracks.
|fdc_dsr.u26||693c6b6e||0c24fb4944843ad3f08b0b139244a6bb05e1c6c2||Card DSR 4000-4FFF|
|fdc_dsr.u27||2c921087||3646c3bcd2dce16b918ee01ea65312f36ae811d2||Card DSR 5000-5FFF|
TI RS232/PIO Card (ti99_rs232)
Provides two serial interfaces and one parallel interface. May be used twice in the system to get two more serial interfaces and one more parallel interface. Check DIP settings for CRU base.
|rs232pio_dsr.u1||eab382fb||ee609a18a21f1a3ddab334e8798d5f2a0fcefa91||Card DSR 4000-4FFF|
To be used in the GROM port (cartridge slot).
Speech Synthesizer (ti99_speech)
Also used as a peripheral card (using an adaptor card)
|cd2325a.u2a||1f58b571||0ef4f178716b575a1c0c970c56af8a8d97561ffe||Speech ROM 128 Kbit|
|cd2326a.u2b||65d00401||a367242c2c96cebf0e2bf21862f3f6734b2b3020||Speech ROM 128 Kbit|
HX5102 Hexbus Floppy Drive (ti_hx5102)
Used with TI-99/8 and TI-99/2 32K. Supports 2 sides, single (9) or double density (16 sectors) and 40 or 77 tracks.
|hx5102_rom1.u25||40621a77||1532f6f23e0104326c21909cb0ec46936242a12a||Drive firmware 8K|
|hx5102_rom2.u29||57c2603b||2f1d01378943436f0abd5b20710f6c8c175fde13||Drive firmware 8K|
- Category: MAME
- Hits: 6729
We're going to describe a fast way to install MAME on your Windows computer. If you follow these steps closely, there should not be any problem getting it running.
Check your Windows release
You should run a post-XP version (Vista, 7, 8, or 10). Do not try any older release like Windows 98, ME, or 2000. Windows XP is not recommended for security reasons, and MAME is not tested to run on it.
Get the MAME package
Download the most recent MAME release from the MAMEdev website from the section Official Binaries. You should use the 64 bit version (unless you know that your computer is 32 bit only).
Please do not attempt to install an older release, particularly not if its release number is much smaller than the current one. There have been changes in the meantime concerning the ROM formats, and this may make it impossible to run MAME.
Install the files
Run the exe file; this is just a self-extracting archive file. Choose your target directory; for easier configuration, a simple path like C:\prg\mame is recommended. The extracted files will be located in that directory.
Note that MAME does not alter your registry file. This means you can at any time simply remove the MAME installation, install another one in a separate directory, or reinstall it if desired. Uninstallation means that you have to remove that directory.
Configure it once
Open a command shell and type (in black)
C:\Users\Whoever> cd \prg\mame C:\prg\mame> mame64 -createconfig C:\prg\mame> exit
This creates a file C:\prg\mame\mame.ini. Open it in some text editor.
In the second section ("CORE SEARCH PATH OPTIONS") you will find a setting rompath. This is relative to your base directory C:\prg\mame; typically, you will find the value roms (i.e. it will be C:\prg\mame\roms). This subdirectory is already created by unpacking the zip file. If you like, you can append ;cartridges or similar in order to separate between modules and system roms. You must make sure that there is a directory C:\prg\mame\cartridges; if needed, create a new folder of that name in your explorer.
Scroll down to "OSD VIDEO OPTION"; change window to 1 to get a windowed output, otherwise it is fullscreen. In the next section "OSD PER-WINDOW VIDEO OPTION" you should set the first resolution property to 640x480 or bigger, as you find suitable.
Note that this configuration is only done once, when you install MAME, as we show it here.
Install system ROMs and cartridges
Go to our WHTech repository and download ti99_complete.zip from the directory /System ROMs/MAME. Unzip its contents into the roms subdir. Do not unzip the zip files inside.
Also from WHTech, download all_carts.zip from /Cartridges/MAME. It contains a collection of zip files, each one for a cartridge; do not unpack these cartridge zips.
Store the cartridge zips into the cartridges subdir if you added that location to the rompath, otherwise move all cartridge zip files to the roms subdir, too.
Create a starter batch
Create a small batch file to launch MAME. You may drop that on your desktop. For that, open some text editor and type
c: cd \prg\mame mame64 ti99_4a
Save it as ti99.bat to your desktop, or anywhere else as desired.
You can now edit this starter batch or create copies. You can change the system name (e.g. geneve, ti99_8), add cartridges (-cart exbasic) or peripheral devices (-ioport peb -ioport:peb:slot8 hfdc), and add floppy disks (-flop1 mydisk.dsk).
If you prefer the 32 KiB internal 16-bit RAM expansion, you can turn it on in the "System configuration" menu of the on-screen display (OSD). You then have to remove the 32kmem configuration below in all examples, however.
Plain console, cassette file inserted
Important: This and the following examples will only work if you actually offer the specified disk or cassette image files at the indicated paths (or in the working directory if no path is specified).
c: cd \prg\mame mame64 ti99_4a -cass1 cassette.wav
External 32K memory expansion, TI floppy controller, myfloppyimage.dsk inserted in DSK1
c: cd \prg\mame mame64 ti99_4a -ioport peb -ioport:peb:slot2 32kmem -ioport:peb:slot8 tifdc -flop1 myfloppyimage.dsk
Cartridge Extended Basic, external 32K memory expansion, RS232 card, HFDC controller, one drive, myfloppyimage.dsk inserted
c: cd \prg\mame mame64 ti99_4a -cart exbasic -ioport peb -ioport:peb:slot2 32kmem -ioport:peb:slot7 tirs232 -ioport:peb:slot8 hfdc -flop1 myfloppyimage.dsk
Cartridge Editor/Assembler, external 32K memory expansion, Speech synthesizer, Horizon RAMDisk, HFDC, hard disk, one floppy image inserted
c: cd \prg\mame mame64 ti99_4a -cart editass -ioport peb -ioport:peb:slot2 32kmem -ioport:peb:slot3 spchsyn -ioport:peb:slot4 horizon -ioport:peb:slot8 hfdc -ioport:peb:slot8:hfdc:h1 generic -hard1 myharddisk.hd -flop1 myfloppyimage.dsk
P-Code system, external 32K memory expansion, TI floppy controller, one drive, Editor/Filer inserted from folder C:\prg\mame\disks\UCSD
c: cd \prg\mame mame64 ti99_4a -ioport peb -ioport:peb:slot2 32kmem -ioport:peb:slot3 pcode -ioport:peb:slot8 tifdc -flop1 disks\UCSD\ucsd_pascal_editor_filer_1.dsk
Note: You must turn on the P-Code card in the DIP switches menu of the On-screen display (OSD). The card is turned off by default because it immediately takes over control on start.
Geneve, Horizon RAMDisk, Speech, RS232, HFDC, one hard disk
c: cd \prg\mame mame64 geneve -peb:slot4 horizon -peb:slot5 spchsyn -peb:slot6 tirs232 -peb:slot8 hfdc -ioport:peb:slot8:hfdc:h1 generic -hard1 myharddisk.hd
If you do not plan to change your configuration too often, you may want to set it inside MAME using the OSD. You can use the menu selection Slot devices to change the peripheral box contents, for example. Note that this change is only temporary until you leave MAME.
If you want to keep changes after stopping MAME, you must set readconfig and writeconfig to 1 in mame.ini.
When you use this setting, be aware that your command-line arguments may be overridden by what you had set in the OSD menu before you exited MAME the last time.