Jump to content

Photo

New MAME release


42 replies to this topic

#26 Ksarul OFFLINE  

Ksarul

    River Patroller

  • 4,219 posts

Posted Wed Nov 1, 2017 5:08 AM

Nice work there, Michael!  :)



#27 mizapf OFFLINE  

mizapf

    River Patroller

  • Topic Starter
  • 2,588 posts
  • Location:Germany

Posted Wed Nov 1, 2017 5:13 AM

Just a short explanation what this circuitry is supposed to do:

 

When the DSR writes a byte to 5FF8, it is loaded into the XDR (transfer data register). This causes a 0/1 transition for the signal XDRLD* (middle, left). Now the flipflop switches to 1, the output goes to WBUSY, which indicates that a write process over hexbus is about to happen. This flag is readable from the status register at 5FFA. The flipflop is reset by RESET or when the write process proceeds.

 

The byte is transferred in two phases, since the hexbus is a 4-bit parallel bus. The flag WNP determines which nibble is to be written. The two flipflops at the upper right side have this meaning: WQ1=WQ2=0: passive, WQ1=0, WQ2=1: first nibble (lower), WQ1=1, WQ2=0: second nibble (higher), WQ1=WQ2=1: end of phase.

 

When both WQ1 and WQ2 have the same level, the counting circuitry in the lower half is reset and disabled. When they differ, it counts up to 30. The trigger is Phi3, a clock signal of 372ns period (1 / (10,7386 MHz/4)). When it reaches 30, it triggers some action for the WQ flipflops. In the first case, it counts to 30 and switches the nibble and is reset. When it reaches 30 again, with WQ1=1, another step is done (31), and now the WQ1 and WQ2 are reset, and WBUSY goes to 0, depending on SHSK.

 

During the first phase, for the lower nibble, the HSK line is pulled down. When the counter is reset after reaching 30, HSK is released. If some slave device on the bus needs more time to process that byte, it holds down the HSK line by itself, which (by means of another circuitry) produces SHSK=1. While this is 1, the flipflops do not switch. When the slave/s release/s the HSK line, SHSK goes to 0, and the second phase is entered. During that phase, the HSK is not pulled down again (what I believe to be a glitch; but it is short enough not to cause a timeout), but just when it reaches 30 again. Then it waits for SHSK=0, which clears WBUSY and locks the counter to 0.

 

--

 

It is interesting to see what can be done in hardware, although this would have been perfectly possible to be done in software, as is the case in the HX5102 floppy drive firmware. The TI engineers seemed to have felt like "if we're building custom chips anyway, let's put as much magic into them as possible".

 

If you wonder how many lines this requires in the emulation: about 60 (not counting comments and lines with braces only). It looks much simpler in code. Since I was not fully sure about the effects of the circuits, I tried to emulate the flipflops by bool flags directly. The only high level part is the counter, which is an int variable.

 

   bool cnt30 = ((m_clkcount & 0x1e) == 30);
   bool cont = (m_wrst && !m_wq2 && !m_wq1) || (cnt30 && m_wq2 && !m_wq1)
   || (cnt30 && !m_wq2 && m_wq1) || (m_shsk && m_wq2 && m_wq1);
   bool jwq1 = cont && m_wq2;
   bool kwq1 = !((cont && !m_wq2) || (!cont && m_wq2 && m_wnp));
   bool jwq2 = cont;
   bool kwq2 = !(m_wq1 && !cont);
   ...

 

jwq1 means "J input of WQ1 flipflop".

 

This was the hardest part inside OSO; the read circuitry is much simpler, because it fully depends on the slave's timing. When that is done, I can start to implement the HX5102.



#28 mizapf OFFLINE  

mizapf

    River Patroller

  • Topic Starter
  • 2,588 posts
  • Location:Germany

Posted Thu Nov 2, 2017 7:36 AM

I guess it cannot be done much shorter without using a special installer program.

 

One thing that came to my mind is an installer that fetches the current version (or an older one if desired) by analyzing the web page of mamedev.org. However, the page just refers to the Releases subdirectory on Github.

 

Does anybody here have some experiences with the Github API? How would one write a client that downloads the list of releases and indicates the current one? I mean, using the API is certainly described somewhere, but this means for me to open a new barrel, as we say.



#29 kl99 OFFLINE  

kl99

    Dragonstomper

  • 676 posts
  • Location:Vienna, Austria

Posted Thu Nov 2, 2017 1:31 PM

wouldn't it be easier (implementationwise) to attach some config file to the installer which defines the git path to that compiled version the installer is meant to support.



#30 mizapf OFFLINE  

mizapf

    River Patroller

  • Topic Starter
  • 2,588 posts
  • Location:Germany

Posted Fri Nov 3, 2017 4:57 AM

That would not help too much, since we have a new release every month, and this would mean to update the installer every time. The installer should not be specific for a release, instead, the goal should be to make it easy to get the latest release. I'm even dreaming of a tool that automatically checks whether there has been a new release and offers to update the installed version automatically (optionally keeping the old one), just the way you typically have it in Windows where many applications bring their own updater.



#31 Shift838 OFFLINE  

Shift838

    Stargunner

  • 1,953 posts
  • SHIFT838
  • Location:Texas

Posted Fri Nov 10, 2017 1:34 PM

That would not help too much, since we have a new release every month, and this would mean to update the installer every time. The installer should not be specific for a release, instead, the goal should be to make it easy to get the latest release. I'm even dreaming of a tool that automatically checks whether there has been a new release and offers to update the installed version automatically (optionally keeping the old one), just the way you typically have it in Windows where many applications bring their own updater.

 

I could see this beneficial.  Of course I also see one issue.  I know on many MAME roms they are not compatible with newer versions and they have to be converted. Could the updater be coded to update the rom's within the ROMS folder to be compatible as well for configured systems?



#32 mizapf OFFLINE  

mizapf

    River Patroller

  • Topic Starter
  • 2,588 posts
  • Location:Germany

Posted Fri Nov 10, 2017 2:22 PM

I imagine to set up subfolders on WHTech for release-specific ROM dumps. For example, we could have /SystemRoms/MAME/current, /SystemRoms/MAME/pre180, and /SystemRoms/MAME/pre0140. The installer should then say something like "You are about to upgrade to release 0.xxx. Your ROMs need to be updated. Download and install now?"

 

It would be much more efficient to replace the ROMs instead of converting them.

 

By the way, ROM formats only changed very rarely, so this is not an everyday problem. These changes seem to be pretty traumatic, though... ;-)



#33 mizapf OFFLINE  

mizapf

    River Patroller

  • Topic Starter
  • 2,588 posts
  • Location:Germany

Posted Thu Nov 16, 2017 4:52 PM

I just built the TI part of MAME with my new desktop system using

 

make -j4 SOURCES=src/mame/drivers/ti99_2.cpp,src/mame/drivers/cortex.cpp,src/mame/drivers/ti99_4x.cpp,src/mame/drivers/ti99_8.cpp,src/mame/drivers/geneve.cpp,src/mame/drivers/ti99_4p.cpp,src/mame/drivers/cc40.cpp REGENIE=1

 

in a mere 184 seconds! Wow.

 

This is a Kaby Lake Core i7-7700K @4.20 GHz, 16 GiB RAM, and a Samsung SSD 850.

 

It's hard to believe, but they are still getting the PC faster and faster, even notably. This is roughly double speed of my second system that I screwed together one year ago. I thought this curve would flatten out by now.

 

As a strong contrast, the Raspi3 that I recently used to try to build and run MAME took several hours for the same job (http://atariage.com/...tion/?p=3852177). The Raspi1 that I used some more time ago needed 24 hours for building.



#34 schmitzi OFFLINE  

schmitzi

    River Patroller

  • 3,884 posts
  • ToXiC
  • Location:Germany

Posted Fri Nov 17, 2017 3:52 AM

Crassus Maximus !



#35 mizapf OFFLINE  

mizapf

    River Patroller

  • Topic Starter
  • 2,588 posts
  • Location:Germany

Posted Fri Nov 17, 2017 6:45 AM

What is also true, no doubt, is that only few people can make use of such a computing power. You won't notice it with your mail client or browser, your office tool, and not even when editing pictures, unless the operations are really complex. Compiling is one of the jobs where your computer cannot be too fast, also gaming, or video editing. Maybe more people should compile ... could make the world a better place. (If I think long enough I'll surely find a good reason for that claim. :-) )



#36 acadiel OFFLINE  

acadiel

    Dragonstomper

  • 981 posts
  • www.hexbus.com
  • Location:USA

Posted Sat Nov 18, 2017 3:17 PM

I just built the TI part of MAME with my new desktop system using
 

make -j4 SOURCES=src/mame/drivers/ti99_2.cpp,src/mame/drivers/cortex.cpp,src/mame/drivers/ti99_4x.cpp,src/mame/drivers/ti99_8.cpp,src/mame/drivers/geneve.cpp,src/mame/drivers/ti99_4p.cpp,src/mame/drivers/cc40.cpp REGENIE=1
 
in a mere 184 seconds! Wow.
 
This is a Kaby Lake Core i7-7700K @4.20 GHz, 16 GiB RAM, and a Samsung SSD 850.
 
It's hard to believe, but they are still getting the PC faster and faster, even notably. This is roughly double speed of my second system that I screwed together one year ago. I thought this curve would flatten out by now.
 
As a strong contrast, the Raspi3 that I recently used to try to build and run MAME took several hours for the same job (http://atariage.com/...tion/?p=3852177). The Raspi1 that I used some more time ago needed 24 hours for building.

I haven’t really investigated upgrading my I5-3470 and 3570 desktops since those systems pretty much still fly after five years. They benchmark around 7000 on the CPUBenchmark site. I wonder how long they’d take to compile.

#37 Keatah OFFLINE  

Keatah

    Quadrunner

  • 18,733 posts

Posted Sat Nov 18, 2017 3:32 PM

It's hard to believe, but they are still getting the PC faster and faster, even notably. This is roughly double speed of my second system that I screwed together one year ago. I thought this curve would flatten out by now.

 

There's nothing surprising about the continued increases in speed. If we don't get it through raw GHz we'll get it through architectural advances like instruction set evolution, parallelism, new bus technologies for better inter-core communication, aux fgpa.. and more!

 

We're not all that far away from real-time compiling on the desktop. Edit your code, and type "RUN", and there it is. Instant. It'll feel like an interpreted language.



#38 RXB ONLINE  

RXB

    River Patroller

  • 2,811 posts
  • Location:Vancouver, Washington, USA

Posted Sun Nov 19, 2017 3:25 AM

That would not help too much, since we have a new release every month, and this would mean to update the installer every time. The installer should not be specific for a release, instead, the goal should be to make it easy to get the latest release. I'm even dreaming of a tool that automatically checks whether there has been a new release and offers to update the installed version automatically (optionally keeping the old one), just the way you typically have it in Windows where many applications bring their own updater.

Dependence on loading a Compiler fetching a list of files you have to find and download is exactly the reason that Unix and Linux are so small world wide.

 

No own wants to have to do that much work and research just to use or get a product.

 

It is like having to totally assemble you car from parts and shipping containers, it is only done by mechanics and everyone else will take a pass.

 

So yea you are right the only way to put out a package is to make it self sustained.


Edited by RXB, Sun Nov 19, 2017 3:26 AM.


#39 ramidavis OFFLINE  

ramidavis

    Star Raider

  • 67 posts

Posted Mon Nov 20, 2017 6:17 PM

Pretty much the reason i am still using the messretro archive from whtech.

Download, extract, run the gui, then just a matter of locating the cartridges and disks i need.

I am aware that archive is outdated, but it has far better speech support then any other emulator i can think of.

Works for me, so i am happy.



#40 mizapf OFFLINE  

mizapf

    River Patroller

  • Topic Starter
  • 2,588 posts
  • Location:Germany

Posted Tue Nov 21, 2017 1:02 AM

I'm far from critizing people using outdated versions, but nevertheless, maybe for a second...

... one should imagine that this feels like you just don't care about the work of the last 10 years that I invested in MAME, to fix its flaws, to improve its precision, to add new features.

Sometimes it seems to me as if people believe to be forced to decide for one version. This is not true, though. You can always use several versions along with each other, since MAME does not apply any persistent changes outside of its folder.

#41 RXB ONLINE  

RXB

    River Patroller

  • 2,811 posts
  • Location:Vancouver, Washington, USA

Posted Tue Nov 21, 2017 1:49 AM

I'm far from critizing people using outdated versions, but nevertheless, maybe for a second...

... one should imagine that this feels like you just don't care about the work of the last 10 years that I invested in MAME, to fix its flaws, to improve its precision, to add new features.

Sometimes it seems to me as if people believe to be forced to decide for one version. This is not true, though. You can always use several versions along with each other, since MAME does not apply any persistent changes outside of its folder.

I can only imagine the pain you feel on this.

 

I know I include with RXB a Classic99 BIN folder, GRAM KRACKER version Folder, Source Text DOS folder, TI Source Text DV80 Folder, GPL OBJECT COMPRESSED folder and the list goes on...,



#42 Keatah OFFLINE  

Keatah

    Quadrunner

  • 18,733 posts

Posted Tue Nov 21, 2017 1:53 AM

That's one redeeming quality. Easy use of multiple self-contained versions.


  • RXB likes this

#43 mizapf OFFLINE  

mizapf

    River Patroller

  • Topic Starter
  • 2,588 posts
  • Location:Germany

Posted Tue Nov 21, 2017 6:56 AM

This is not really a pain, at least I try not to let it become one. MAME's mission is still there even when no one would be actively using it. There is an abundance of systems inside MAME which are just there, for the sake of being emulated, and I'd say the TI part of MAME is one of the most frequently used ones. I dare to say it is the most stable one, in fact.

 

Still, I'm not immune to the sensation of appreciation when people are actually using it. I mean, who is? :-)






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users