Jump to content
IGNORED

New MAME release


mizapf

Recommended Posts

If you install Cygwin on your Windows machine, you could use the mameprep_cygwin script that configures MAME for you. (Speaking of that, I guess I will have to check whether the download from WHTech still works...)

  • Like 1
Link to comment
Share on other sites

Just for your information, I uploaded the latest MAME release (0.263), restricted to the TI family, on the WHTech server. Nothing new, I'm currently busy working on the release of TIImageTool 3.

  • Like 3
  • Thanks 2
Link to comment
Share on other sites

3 hours ago, mizapf said:

Just for your information, I uploaded the latest MAME release (0.263), restricted to the TI family, on the WHTech server. Nothing new, I'm currently busy working on the release of TIImageTool 3.

Thanks. Going to check it out this weekend. looking forward to your new TI Image Tool

Link to comment
Share on other sites

  • 5 weeks later...

Nothing new in the latest MAME release (0.264), but for the next release we'll have an interesting bug fix.

 

This one should be about 12 years old, and it had an effect, although one that did not bother us too much. It's been there since I re-wrote the TMS9900 emulation in 2012.

 

It happens during a reset, triggered by pressing F3 or by inserting a cartridge. Unlike other interrupts, RESET has an immediate effect - it does not wait for the current instruction to terminate. So the reset may also happen during the data derivation sequence (we talked about that in other threads; it's the phase where the CPU processes the memory access, like Rx, *Rx, *Rx+, @addr, @addr(Rx)) for source and destination operands. I implemented the DDS as a subprogram in the microprogram, keeping a return address while it runs, and when the main execution loop detects this non-null return address, it assumes that execution continues in the DDS and not in the current instruction. So, and now you may already guess - I forgot to clear the return address when RESET occurs.

 

That is, in those cases the main execution loop did not proceed with the interrupt handling (doing the context switch by the interrupt vector), but continued with the DDS, and then returned to the current instruction, and did not do the context switch. However, since I already cleared other internal registers inside (like the status register), the further process became more or less undefined, and this usually led to a crash or a lockup of the emulated TI.

 

So every now and then, when you pressed F3, the emulated TI would not correctly reset but lock up in some way, probably with a black screen. I used to think that this was some flaw inside the MAME core, or that some state variable was corrupted, but I did not expect a bug inside the TMS9900 implementation. As I said, it only happens with RESET.

 

I noticed it during my recent cleanups, when I swapped cartridges and noticed this lockup. So my first thought was that I broke something right now, but as it turned out, it has a longer history.

 

You'll get it with the next release, or if you get your sources from Github, right now already.

  • Like 5
Link to comment
Share on other sites

I was looking for a boulder dash game for the ti99 and came across Rock Runner by Eric Lafortune, and he's packaged it up neatly as an rpk for mame:

 

http://www.lafortune.eu/rockrunner/index.html

 

Info

  • 8-way scrolling game for the TI-99/4A.
  • Goal: collecting diamonds in a 2D world.
  • Simple physics: gravity, lava, bombs, butterflies,...
  • Written in TMS-9900 assembler.
  • Development tools: line-by-line assembler, hex editor, Mini Memory module, tape recorder.
  • Used a novel undocumented half-bitmap graphics mode of the TMS-9918A Video Display Processor.
  • Program code fitted in 4K of memory.
  • Distributed by Asgard Software.
  • Now open source on Github.

 

https://github.com/EricLafortune/RockRunner

 

rpk here:

 

https://github.com/EricLafortune/RockRunner/releases

 

 

  • Like 4
  • Confused 1
Link to comment
Share on other sites

  • 4 weeks later...

New MAME release here: 0.265.

 

As always, you can get pre-built binaries from our WHTech server:

 

https://ftp.whtech.com/emulators/MAME/full/macos/

https://ftp.whtech.com/emulators/MAME/ti99/linux/

https://ftp.whtech.com/emulators/MAME/ti99/windows/

https://ftp.whtech.com/emulators/MAME/ti99/rpios/

 

What's new for us?

- Some restructuring in the code (replacing static_casts by dynamic_casts, preventing bad casts in rare situations)

- Fixed a bug in the multi-cartridge connector that caused old contents to magically reappear after swapping the cartridges

- Fixed a bug in the emulated TMS9900 that locked up the emulation on pressing F3 (Reset)

 

 

  • Like 2
Link to comment
Share on other sites

1 hour ago, mizapf said:

New MAME release here: 0.265.

 

As always, you can get pre-built binaries from our WHTech server:

 

https://ftp.whtech.com/emulators/MAME/full/macos/

https://ftp.whtech.com/emulators/MAME/ti99/linux/

https://ftp.whtech.com/emulators/MAME/ti99/windows/

https://ftp.whtech.com/emulators/MAME/ti99/rpios/

 

What's new for us?

- Some restructuring in the code (replacing static_casts by dynamic_casts, preventing bad casts in rare situations)

- Fixed a bug in the multi-cartridge connector that caused old contents to magically reappear after swapping the cartridges

- Fixed a bug in the emulated TMS9900 that locked up the emulation on pressing F3 (Reset)

 

 

Still never had any luck getting this to run on my multi monitor desktop. I will try again. With this version tomorrow and post a video of what happens but the problem is the screen just shakes rapidly up and down like it's out of sync. Everything works accept for the screen shaking non stop.

Link to comment
Share on other sites

Did you try the command line options "-video soft", "-video opengl", or "-video bgfx"?

 

Edit: and "-window" (windowed mode, not fullscreen)?

 

The thing is that MAME rapidly redraws the screen; maybe this causes problems with your setup. Does it only happen with multiple monitors or with a single monitor also? What OS are you using?

  • Like 1
Link to comment
Share on other sites

@mizapf

 

A few quick questions. 

 

1) Is the SCSI implemented with the Geneve? I thought I saw something about SCSI and a SCSI hard drive image with maybe a bad file, but unsure of the details.

 

2) Is a SCSI image different from a MFM image for the HFDC?  Or, can one be used with the other and vice versa?  I think the images should be different, thus my inquiry so I do not mess something up.

 

3) Assuming the SCSI is implemented in 2.65b, can you provide a quick command line for its use?  I looked on ninermame and did not see the information on its use.

 

Thanks.

Link to comment
Share on other sites

1) SCSI is available since 0.239, but without Block DMA (activated with PDMA ON). The reason for this is that I did not yet fully understand how it works, in particular with the DSR originally written by SNUG. Apart from that, it seems to work reliably; I already switched to it for my main hard disk.

 

2) The SCSI images use 512 bytes/sector, while the MFM images use 256 bytes/sector. They are not interchangeable, also for reasons of variations in the Volume Information Block. In earlier TIImageTool releases you could convert one to the other, but this was actually not supporting the 512 byte/sector property. Since TIImageTool 3, you cannot convert them anymore, but you just create a SCSI image, mark everything on the MFM drive, and copy over.

 

3) Command line for Geneve:

 

mame geneve ... -peb:slot7 whtscsi -peb:slot7:whtscsi:scsibus:0 harddisk -hard1 yourscsiimage.hd -peb:slot8 somefloppycontroller

 

and the TI-99/4A:

 

mame ti99_4a ... -ioport:peb:slot7 whtscsi -ioport:peb:slot7:whtscsi:scsibus:0 harddisk -hard1 yourscsiimage.hd -ioport:peb:slot8 somefloppycontroller

 

  • Like 3
Link to comment
Share on other sites

@mizapf

 

OK, I have the geneve booting from both SCSI and TIPI with boot tracking with my latest updates.

 

Still trying to resolve IDE configuration issues as I do not have something setup right yet.  Does TIIMAGETOOL support IDE?

  • Like 1
Link to comment
Share on other sites

Is there anything wrong with this command line?

 

mame geneve -bios 2.00 -peb:slot4 speech -peb:slot2 memex -peb:slot8 ide -peb:slot8:ide:ata:1 hdd -peb:slot8:ide:ata:1 hdd -hard1 IDE-DRIVE1.raw -peb:slot6 tipi -conn rpi.ti994a1
 

Link to comment
Share on other sites

1. I think ata:0 is the first connector. However, it does not seem relevant; the hard disk is already accepted without specifying the type.

2. You specified the hdd device twice. Again, this is not wrong, just redundant.

3. In all cases I would highly recommend the CHD format. I'm not even sure whether MAME can read the raw format for the IDE drive. (Edit: It does, but the CHD is much smaller.)

4. Did you install the DSR on the IDE card?

 

Link to comment
Share on other sites

8 minutes ago, mizapf said:

1. I think ata:0 is the first connector. However, it does not seem relevant; the hard disk is already accepted without specifying the type.

2. You specified the hdd device twice. Again, this is not wrong, just redundant.

3. In all cases I would highly recommend the CHD format. I'm not even sure whether MAME can read the raw format for the IDE drive. (Edit: It does, but the CHD is much smaller.)

4. Did you install the DSR on the IDE card?

 

1. Fixed

2. Removed

3. I specified CHD, however it saves it as raw.

4. Will install, or re-install.  It should have been installed in the past, maybe something got lost.

 

Link to comment
Share on other sites

Who saved as raw? - When you use TIImageTool3, you should first define the partitions, then it asks for the format (CHD or raw), then you specify the file name. I had to type the whole name (e.g. myide.hd) at that point. You can also set up an unpartitioned IDE drive, but this looks identical to a SCSI drive, so in TIImageTool3, this is created as a SCSI drive and also displayed as SCS1.

 

As for the DSR, I would also recommend that you use a separate nvram directory and also config directory. I once lost the nvram contents probably because I swapped the positions in the PEB. You can easily check the presence of the DSR by entering TI BASIC and typing CALL IDETD.

 

The command line options for setting a config and nvram directory are -cfg_directory and -nvram_directory.

  • Like 1
Link to comment
Share on other sites

Posted (edited)
On 4/28/2024 at 3:56 AM, mizapf said:

Did you try the command line options "-video soft", "-video opengl", or "-video bgfx"?

 

Edit: and "-window" (windowed mode, not fullscreen)?

 

The thing is that MAME rapidly redraws the screen; maybe this causes problems with your setup. Does it only happen with multiple monitors or with a single monitor also? What OS are you using?

I recorded a video of what happens on my setup. I tried the windowed mode and it just exits no picture at all. Haven't tried the video options yet. The way it behaves I can't click on anything but exit as the mouse seems to act weird along with the video redrawing.

 

I am using windows 10 with a Intel graphics card. On my windows 11 system with the Nvidia gpu mame never starts at all, don't see any window or screen.

 

I am also running the mame folder via my NAS drive which is case sensitive in filenames as well not sure if that is an issue. I could try copying the name folder to a actual windows drive and see if that helps.

Edited by Gary from OPA
Link to comment
Share on other sites

19 hours ago, mizapf said:

What happens when you start up MAME with the driver name in the command line?

 

C:\MAME> mame ti99_4a

 

i decided to delete everything, including cygwin and downloaded the latest version from whtech, and reinstalled cyqwin64 and then setup the path variable manually in my computer, and ran the mameprep_cygwin script, after installing the latest wget and unzip packages, and at least it finally ran without errors and made a folder on my desktop with some batch files, and i can launch both ti99evh and geneve from those without any weird video and mouse problems now.

 

here is a new video i made, all tho atariage is back again wiping out my uploaded videos after a couple of hours, for some weird reason.

 

now i just have to figure out how to config the two systems the way i want with the modules and software i want to use, and how in the hell to i disable that horrible disk drive sound, it is hurting my ears!

  • Like 1
  • Haha 1
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...