+Vorticon Posted January 5, 2022 Share Posted January 5, 2022 On 1/3/2022 at 9:20 AM, mizapf said: @VorticonAs you seem to be using Linux, you should consider pulling the latest version via git and building it from sources. Unlike many other OSS projects, this is really simple and only requires you to run the same build command every time that you update your local source copy. See also https://www.mizapf.de/en/ti99/mame/buildmame Thanks! I used your instructions to build the latest version. 2 Quote Link to comment Share on other sites More sharing options...
+mizapf Posted January 5, 2022 Author Share Posted January 5, 2022 You can use my web page https://www.mizapf.de/en/ti99/mame/changes as a reference to the respective releases. In case some recent changes break something important, you can always do a git checkout <Git Revision> to get back to a defined state. 3 Quote Link to comment Share on other sites More sharing options...
+dhe Posted January 9, 2022 Share Posted January 9, 2022 At one point I had to upgrade a hd image because of change in mess (yea that many years ago). If there anything I should do with my old images to verify they are on an ok version to work with MAME? Quote Link to comment Share on other sites More sharing options...
+mizapf Posted January 9, 2022 Author Share Posted January 9, 2022 The CHD files should be version 5. You can verify this with the MAME tool chdman (chdman info -i yourhdfile.hd) or with TIImageTool (select "Convert CHD format"; the dialog window tells you the current version). 1 1 Quote Link to comment Share on other sites More sharing options...
+dhe Posted January 9, 2022 Share Posted January 9, 2022 Thanks, looks like I'm good! D:\mame>chdman.exe info -i Bootdisk1.hd chdman - MAME Compressed Hunks of Data (CHD) manager 0.239 (mame0239) Input file: Bootdisk1.hd File Version: 5 Logical size: 134,217,728 bytes Hunk Size: 4,096 bytes Total Hunks: 32,768 Unit Size: 256 bytes Total Units: 524,288 Compression: none CHD size: 134,164,594 bytes Metadata: Tag='GDDD' Index=0 Length=35 bytes CYLS:1024,HEADS:16,SECS:32,BPS:256. Metadata: Tag='GDDI' Index=0 Length=37 bytes IL:4,CSKEW:0,HSKEW:0,WPCOM:-1,RWC:-1. Metadata: Tag='GDDI' Index=1 Length=45 bytes GAP1:16,GAP2:3,GAP3:18,SYNC:13,HLEN:5,ECC:-1. D:\mame> 2 Quote Link to comment Share on other sites More sharing options...
+hloberg Posted January 15, 2022 Share Posted January 15, 2022 @mizapf the Geneve and Apple IIgs both have built in clocks and both keep lousy time by gain minutes per second (in the MAME emulation). But, I haven't notice anyone else complain about this. I wondering if maybe it's something I'm doing but I can't think what would be? both set at just 100% speed with auto as frame skip. Quote Link to comment Share on other sites More sharing options...
+mizapf Posted January 15, 2022 Author Share Posted January 15, 2022 I'm not aware of such a timing problem either. What happens if you set the skip to 0 (not auto), i.e. what does it say when you terminate the emulation? Still 100%? Quote Link to comment Share on other sites More sharing options...
+hloberg Posted January 16, 2022 Share Posted January 16, 2022 8 hours ago, mizapf said: I'm not aware of such a timing problem either. What happens if you set the skip to 0 (not auto), i.e. what does it say when you terminate the emulation? Still 100%? set skip to 0, and it now works on the Geneve even when I set back to auto. guess just a glitch. apple still screwed up though, must be just that emulation. since both were doing it I thought I found a pattern, but not. Quote Link to comment Share on other sites More sharing options...
+hloberg Posted January 28, 2022 Share Posted January 28, 2022 @mizapf got the mouse working in ABASIC on the Geneve (yah!) I set it to ctrl-arrow keys. is there any way to get the real mouse to work as the mouse with Geneve mouse movements? also just an FYI, the Scroll-Lock that turns on the partial-keyboard in MAME is also the same key that turns on the ABASIC KEY function on the Geneve, conflict. anyone messing with the Geneve ABASIC KEY then needs to redefine the partial keyboard in MAME to another key other that Scroll-Lock. Quote Link to comment Share on other sites More sharing options...
+mizapf Posted January 28, 2022 Author Share Posted January 28, 2022 Ehm ... yes, the mouse is supposed to work. You have to add "-colorbus busmouse" as option. In Windows, the desktop mouse is automatically captured; in Linux you have to add "-mouse" to capture the mouse, or you may have to play with the window sizes to get a good mapping between your desktop and the emulation. No, a seamless integration (where the desktop mouse automatically turns into the emulated mouse and reach every point in the emulated screen, and back when you leave the window) is virtually impossible, I dare say. The thing with the partial mode key is not surprising, since the Geneve may use all XT keyboard keys. You can, of course, map the mode key to any other key on the keyboard, but you will always have to sacrifice that key for the emulation. 1 Quote Link to comment Share on other sites More sharing options...
+hloberg Posted January 28, 2022 Share Posted January 28, 2022 (edited) 18 minutes ago, mizapf said: Ehm ... yes, the mouse is supposed to work. You have to add "-colorbus busmouse" as option. In Windows, the desktop mouse is automatically captured; in Linux you have to add "-mouse" to capture the mouse, or you may have to play with the window sizes to get a good mapping between your desktop and the emulation. No, a seamless integration (where the desktop mouse automatically turns into the emulated mouse and reach every point in the emulated screen, and back when you leave the window) is virtually impossible, I dare say. The thing with the partial mode key is not surprising, since the Geneve may use all XT keyboard keys. You can, of course, map the mode key to any other key on the keyboard, but you will always have to sacrifice that key for the emulation. OK, I'll check out adding the command line for colormouse. I turned it on in the devices only. thanks and on my scroll-lock-less laptop I use F12 for MAME. Edited January 28, 2022 by hloberg Quote Link to comment Share on other sites More sharing options...
+mizapf Posted January 28, 2022 Author Share Posted January 28, 2022 For a quick check in MDOS, try this. The source code and the binary code are on the disk image. /* Mouse, keyboard, joystick */ #include <video_h> int st, buttons, x, y, xj, yj, keyc; main() { locate(4,5); printf("\fPress Ctrl-C to stop"); while (1) { keyc = key(1,&st); buttons = mouse(&x, &y); joyst(1,&xj, &yj); locate(8,5); printf("Keyboard (mode 1): %d ", keyc); locate(10,5); printf("Mouse buttons: %d ", buttons); locate(12,5); printf("x value (mouse): %d ",x); locate(14,5); printf("y value (mouse): %d ",y); locate(16,5); printf("x value (joystick): %d ",xj); locate(18,5); printf("y value (joystick): %d ",yj); } } genmouse.dsk 2 Quote Link to comment Share on other sites More sharing options...
+hloberg Posted January 28, 2022 Share Posted January 28, 2022 (edited) doesn't capture the movements of the mouse. tried -colorbus busmouse, -mouse, -mouse_device mouse. removed the .cfg with the defined mouse keyboard keys. tried with full screen & window. set in slots-colorbus to on. checked/un-checked various mouse combinations in the .ini. I also checked the MAME forum and took some ideas from there, nothing. it removes the mouse pointer like it tries to capture the mouse but no motion is recorded. but the keyboard emulation to mouse works which is still a win to me. Edited January 28, 2022 by hloberg 2 Quote Link to comment Share on other sites More sharing options...
+mizapf Posted January 29, 2022 Author Share Posted January 29, 2022 Wait, wait, it has to work. Are you sure that you mapped the mouse movement? Check "Input (this machine)" → "V9938 Bus Mouse" → "Mouse X 3 Analog = Mouse X", "Mouse Y 3 Analog = Mouse Y". Is there is "none", select that item, and move your mouse in the respective direction. Quote Link to comment Share on other sites More sharing options...
+hloberg Posted January 29, 2022 Share Posted January 29, 2022 (edited) 2 hours ago, mizapf said: Wait, wait, it has to work. Are you sure that you mapped the mouse movement? Check "Input (this machine)" → "V9938 Bus Mouse" → "Mouse X 3 Analog = Mouse X", "Mouse Y 3 Analog = Mouse Y". Is there is "none", select that item, and move your mouse in the respective direction. on mine "V9938 Bus Mouse" → "Mouse X 3 Analog = n/a", "Mouse Y 3 Analog = n/a". UPDATE: I got it. I actually had to assign mouse X3 and mouse Y3 by moving the mouse X then y. afterwards I assigned the mouse buttons. all is good. Edited January 29, 2022 by hloberg 1 Quote Link to comment Share on other sites More sharing options...
+dhe Posted January 29, 2022 Share Posted January 29, 2022 >Check "Input (this machine)" → "V9938 Bus Mouse" Can that be passed via the command line, or is that an GUI Interface only thing? Quote Link to comment Share on other sites More sharing options...
+mizapf Posted January 29, 2022 Author Share Posted January 29, 2022 You know, this is a point where MAME somewhat fails to meet minimal expectations on a reasonable usability (in short, sucks). (There is a solution at the end of this posting.) Key assignments are part of the configuration. All these configurations cannot be specified on the command line but must be set in the OSD. It would be interesting to allow this as command line options, although I don't dare to think about how that may eventually look like. But it would avoid the hassle that I'm about to describe. MAME is not very good when it comes to changing configurations. The problem is in how MAME handles settings of its components. Over time, the MAME core developers turned the once monolithic system into a system with pluggable components, which allows for a wide range of extensions. You can see it in our TI systems where expansion cards may be plugged in as desired. However, each of these pluggable components may introduce settings, which typically represent switches on the component (dip switches) or setups of the component (e.g. with one or another clock chip). All this can be set in MAME. But when you stop the emulation and restart it, you expect that everything is set like before. To make that happen, each component defines its settings in the code, and the core saves those settings in a file, named by the driver (computer system), for example, cfg/ti99_4a.cfg. How the components find their settings on the next start is determined by the position in the device tree. If you have an IDE card in slot 7, this line is saved in the config file: <port tag=":ioport:peb:slot7:ide:MODE" type="DIPSWITCH" mask="3" defvalue="0" value="2" /> It says that the MODE switch is set to value 2, where the default is 0. Now suppose that you want to test the SCSI card and replace the IDE card in slot 7. The problem is not that there is a SCSI card in slot 7 which could be confused by that setting (it clearly says "ide"); the problem is that there is no IDE card in slot 7 anymore. When you stop the emulation, the core will again check the components and write their config settings to that file. And on that occasion, all entries from cards that are not there anymore will be lost. Next time that you run the emulation with the IDE card, the MODE setting is back to default. Solution: I actually noticed the "-cfg_directory" option just a while ago. For "big" changes, I use a separate config directory so that the configurations are safe from being overwritten. When you try various configurations, I would suggest to write a script file (batch file) that defines specific configuration directories. You need to remember to use that script file, of course. In my case, #!/bin/bash ./mame ti99_4ae -window -cfg_directory cfgide -nvram_directory nvramide \ -ioport peb -ioport:peb:slot2 32kmem -ioport:peb:slot3 speech -ioport:peb:slot7 ide \ -hard1 disks/hd/ide/ti99.hd -ioport:peb:slot8 ddcc1 $* 3 1 Quote Link to comment Share on other sites More sharing options...
+hloberg Posted January 29, 2022 Share Posted January 29, 2022 (edited) I do something similar. I create several .cfg, .ini and the batch runtime files and give them unique names. when I test something I backup the default files then create a set like ti99-scsi.cfg, ti99-scsi.bat & ti99-scsi.ini if the testing is good and I want to save off for a future use. I also have made a habit of creating generational copies of the .cfg, .bat & .ini if I need to roll back (this really helped trying to figure out the mouse issue.) Edited January 29, 2022 by hloberg 1 Quote Link to comment Share on other sites More sharing options...
+hloberg Posted January 29, 2022 Share Posted January 29, 2022 (edited) 3 hours ago, mizapf said: Key assignments are part of the configuration. All these configurations cannot be specified on the command line but must be set in the OSD. It would be interesting to allow this as command line options, although I don't dare to think about how that may eventually look like. But it would avoid the hassle that I'm about to describe. you can edit the geneve.cfg which hold the key assignments and I did several times figuring out the mouse issue. BUT, you really gotta know what you are doing since it's an auto-generating file and i did crash MAME with a bad line (good I made backups). oh, the main MAME key assignments are in the DEFAULT.CFG. after I screwed up and couldn't get my UI back after pressing scroll-lock I just removed that file and started over. and I want to emphasis once you got a good setup backup CFG, INI and your batch files. Edited January 29, 2022 by hloberg 1 Quote Link to comment Share on other sites More sharing options...
SteveB Posted January 29, 2022 Share Posted January 29, 2022 6 hours ago, mizapf said: fails to meet minimal expectations on a reasonable usability I love this line ... 2 Quote Link to comment Share on other sites More sharing options...
+arcadeshopper Posted January 29, 2022 Share Posted January 29, 2022 I love this line ...Seconded. motion carriesSent from my Pixel 6 Pro using Tapatalk Quote Link to comment Share on other sites More sharing options...
+dhe Posted January 30, 2022 Share Posted January 30, 2022 A bug in the machine! ? I booted up Geneve OS 7.3 in MAME and issued the following command: E:\FDSK1> E:\FDSK1>COPY DSK1.* . Floppy noise came on, and system locked up. D:\mame>GENEVE.BAT D:\mame>mame geneve -bios 1.00 -peb:slot4 memex -peb:slot3 horizon -peb:slot5 tirs232 -peb:slot8 hfdc -peb:slot8:hfdc:h1 generic -peb:slot8:hfdc:h2 generic -peb:slot8:hfdc:h3 generic -peb:slot8:hfdc:f3 525dd -peb:slot8:hfdc:f4 525dd -hard1 genos7boot.HD -hard2 Bootdisk2.HD -hard3 Bootdisk3.HD -flop1 DSDD1.dsk -flop2 DSDD2.hfe -flop3 DSDD3.dsk -flop4 DSDD4.dsk -serl1 socket.localhost:10000 ----------------------------------------------------- Exception at EIP=00000000008f253c (address_map_entry& address_map_entry::r<ddenlovr_state, unsigned char>(unsigned char (ddenlovr_state::*)(), char const*) [clone .constprop.0]+0x003c): ACCESS VIOLATION While attempting to read memory at 000000000dc1f68a ----------------------------------------------------- RAX=000000000dc1c470 RBX=000000000000190e RCX=0000000006d9ed60 RDX=000000000000190d RSI=000000000d8bf700 RDI=0000000003c19660 RBP=0000000000000030 RSP=0000000003c19530 R8=0000000006e1c910 R9=0000000000000000 R10=0000000000000004 R11=000000000000113a R12=0000000003c19670 R13=0000000000000001 R14=000000000dbf3cb8 R15=0000000000000031 ----------------------------------------------------- Stack crawl: 0000000003c19530: 00000000008f253c (address_map_entry& address_map_entry::r<ddenlovr_state, unsigned char>(unsigned char (ddenlovr_state::*)(), char const*) [clone .constprop.0]+0x003c) 0000000003c19610: 0000000000d3a3db (jpmsys5_state::jpmsys5_common(machine_config&)+0x1d4b) 0000000003c196b0: 0000000000d39d86 (jpmsys5_state::jpmsys5_common(machine_config&)+0x16f6) 0000000003c19790: 0000000000d3a2bb (jpmsys5_state::jpmsys5_common(machine_config&)+0x1c2b) 0000000003c19830: 0000000000d39d86 (jpmsys5_state::jpmsys5_common(machine_config&)+0x16f6) 0000000003c19910: 0000000000d3a2bb (jpmsys5_state::jpmsys5_common(machine_config&)+0x1c2b) 0000000003c19a00: 0000000000d3b6e7 (jpmsys5_state::reel_0123_w(unsigned int, unsigned short, unsigned short)+0x00a7) 0000000003c19b10: 0000000000d3a746 (jpmsys5_state::jpmsys5_common(machine_config&)+0x20b6) 0000000003c19b80: 0000000000d1aaf0 (driver_j6mono60e::{lambda(device_t&)#2}::_FUN(device_t)) 0000000003c19ce0: 0000000000cca8c8 (megasys1_state::megasys1D_map(address_map&)+0x03e8) 0000000003c1f350: 000000000052a06e (bfm_sc1_state::scorpion1(machine_config&)+0x244e) 0000000003c1f730: 00000000005c588f (driver_sc5hapnt::{lambda(device_t&)#2}::_FUN(device_t)+0x000f) 0000000003c1f9f0: 00000000005c5e9d (driver_sc5manick::{lambda(device_t&)#2}::_FUN(device_t)+0x000d) 0000000003c1fa50: 00000000005272e9 (bfm_sc1_state::sc1_base(address_map&)+0x1ff9) 0000000003c1fe20: 0000000002ab5b87 (atarig1_state::pfslap114(machine_config&)+0x01f7) 0000000003c1fef0: 00000000004013c1 (__tmainCRTStartup+0x0231) 0000000003c1ff20: 00000000004014f6 (mainCRTStartup+0x0016) 0000000003c1ff50: 00007ffd98487034 (BaseThreadInitThunk+0x0014) 0000000003c1ffd0: 00007ffd996a2651 (RtlUserThreadStart+0x0021) D:\mame> Similar Experience with cataloging an archive file on DSK1. It got to the end and said [more] - but the machine was locked up with the following: D:\mame>GENEVE.BAT D:\mame>mame geneve -bios 1.00 -peb:slot4 memex -peb:slot3 horizon -peb:slot5 tirs232 -peb:slot8 hfdc -peb:slot8:hfdc:h1 generic -peb:slot8:hfdc:h2 generic -peb:slot8:hfdc:h3 generic -peb:slot8:hfdc:f3 525dd -peb:slot8:hfdc:f4 525dd -hard1 genos7boot.HD -hard2 Bootdisk2.HD -hard3 Bootdisk3.HD -flop1 DSDD1.dsk -flop2 DSDD2.hfe -flop3 DSDD3.dsk -flop4 DSDD4.dsk -serl1 socket.localhost:10000 ----------------------------------------------------- Exception at EIP=00000000008f253c (address_map_entry& address_map_entry::r<ddenlovr_state, unsigned char>(unsigned char (ddenlovr_state::*)(), char const*) [clone .constprop.0]+0x003c): ACCESS VIOLATION While attempting to read memory at 000000000dc0fd90 ----------------------------------------------------- RAX=000000000dc0be50 RBX=0000000000001fa1 RCX=0000000006dd07f0 RDX=0000000000001fa0 RSI=0000000005f4ed10 RDI=0000000003c19660 RBP=0000000000000088 RSP=0000000003c19530 R8=0000000006e52f00 R9=0000000000000000 R10=0000000000000004 R11=000000000000113a R12=0000000003c19670 R13=0000000000000001 R14=000000000dc00ed8 R15=0000000000000089 ----------------------------------------------------- Stack crawl: 0000000003c19530: 00000000008f253c (address_map_entry& address_map_entry::r<ddenlovr_state, unsigned char>(unsigned char (ddenlovr_state::*)(), char const*) [clone .constprop.0]+0x003c) 0000000003c19610: 0000000000d3a3db (jpmsys5_state::jpmsys5_common(machine_config&)+0x1d4b) 0000000003c196b0: 0000000000d39d86 (jpmsys5_state::jpmsys5_common(machine_config&)+0x16f6) 0000000003c19790: 0000000000d3a2bb (jpmsys5_state::jpmsys5_common(machine_config&)+0x1c2b) 0000000003c19830: 0000000000d39d86 (jpmsys5_state::jpmsys5_common(machine_config&)+0x16f6) 0000000003c19910: 0000000000d3a2bb (jpmsys5_state::jpmsys5_common(machine_config&)+0x1c2b) 0000000003c19a00: 0000000000d3b6e7 (jpmsys5_state::reel_0123_w(unsigned int, unsigned short, unsigned short)+0x00a7) 0000000003c19b10: 0000000000d3a746 (jpmsys5_state::jpmsys5_common(machine_config&)+0x20b6) 0000000003c19b80: 0000000000d1aaf0 (driver_j6mono60e::{lambda(device_t&)#2}::_FUN(device_t)) 0000000003c19ce0: 0000000000cca8c8 (megasys1_state::megasys1D_map(address_map&)+0x03e8) 0000000003c1f350: 000000000052a06e (bfm_sc1_state::scorpion1(machine_config&)+0x244e) 0000000003c1f730: 00000000005c588f (driver_sc5hapnt::{lambda(device_t&)#2}::_FUN(device_t)+0x000f) 0000000003c1f9f0: 00000000005c5e9d (driver_sc5manick::{lambda(device_t&)#2}::_FUN(device_t)+0x000d) 0000000003c1fa50: 00000000005272e9 (bfm_sc1_state::sc1_base(address_map&)+0x1ff9) 0000000003c1fe20: 0000000002ab5b87 (atarig1_state::pfslap114(machine_config&)+0x01f7) 0000000003c1fef0: 00000000004013c1 (__tmainCRTStartup+0x0231) 0000000003c1ff20: 00000000004014f6 (mainCRTStartup+0x0016) 0000000003c1ff50: 00007ffd98487034 (BaseThreadInitThunk+0x0014) 0000000003c1ffd0: 00007ffd996a2651 (RtlUserThreadStart+0x0021) Terminate batch job (Y/N)? Quote Link to comment Share on other sites More sharing options...
+mizapf Posted January 30, 2022 Author Share Posted January 30, 2022 Before I try, could you please retry your action with fewer parameters? Could you please remove the RS232 and drop all media that you don't need to run your program? It will be much easier to track down the issue if only the required devices are active. Maybe strip down the machine to floppy and hard disk only, then add memex and horizon etc. Quote Link to comment Share on other sites More sharing options...
+hloberg Posted January 30, 2022 Share Posted January 30, 2022 10 hours ago, mizapf said: Before I try, could you please retry your action with fewer parameters? Could you please remove the RS232 and drop all media that you don't need to run your program? It will be much easier to track down the issue if only the required devices are active. Maybe strip down the machine to floppy and hard disk only, then add memex and horizon etc. @mizapf I have got that stack crawl error several times recent. it usually happens when I try to change a disk. mine is just 2 HD and whatever floppy. oddly, it doesn't happen all time which is why I didn't mention it till now. I been looking for a pattern and other than it seems to happen some times when I switch disk I haven't seen one. Quote Link to comment Share on other sites More sharing options...
+mizapf Posted January 31, 2022 Author Share Posted January 31, 2022 It could be an uninitialized variable; this is often hard to find and sometimes depends on the moon phase, bad karma in your vicinity, or uncontrolled butterflies causing weird effects. If you can build MAME by yourself, you could create a debug build, and the stack dump will contain precise information of the source code line where the error occurs. However, according to Heisenberg, you change the situation by your measurement, so the debug build may probably never fail. (This is why such errors are sometimes called Heisenbugs.) 3 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.