Previous Thread
Next Thread
Print Thread
Page 5 of 12 1 2 3 4 5 6 7 11 12
#110782 - 09/12/17 02:02 AM Re: 8bit Apples - Apple I, II, /// and the 16 bit GS [Re: Golden Child]  
Joined: Apr 2012
Posts: 185
Pernod Online content
Senior Member
Pernod  Online Content
Senior Member

Joined: Apr 2012
Posts: 185
UK
Originally Posted by Golden Child
Is there a way to keep mame from exiting when you hit ESC when in Partial Keyboard Mode?

Yep, add this to your mame.ini:
Code
confirm_quit              1

It'll be in the CORE MISC OPTIONS section.


BBC Micro
#110783 - 09/12/17 04:03 AM Re: 8bit Apples - Apple I, II, /// and the 16 bit GS [Re: Pernod]  
Joined: Feb 2014
Posts: 94
Golden Child Offline
Member
Golden Child  Offline
Member

Joined: Feb 2014
Posts: 94
ahhhh, thank you.

I see there's a command line option -confirm_quit also.

I kept looking for the mame.ini file and I see that I have to create it with ./mame64 -createconfig

#110787 - 09/12/17 02:15 PM Re: 8bit Apples - Apple I, II, /// and the 16 bit GS [Re: Golden Child]  
Joined: Feb 2014
Posts: 94
Golden Child Offline
Member
Golden Child  Offline
Member

Joined: Feb 2014
Posts: 94
It'd be cool if mame had a quit delay where you could just hit ESC, it would pop up a notification of an impending quit and if you were quiet for say 5 seconds without hitting any keystrokes it would exit, otherwise it would cancel the quit.

You'd have the convenience of -noconfirm_quit with the ability to recover if you accidentally hit ESC.

That would save you a keystroke of hitting the enter key.

Last edited by Golden Child; 09/12/17 02:15 PM.
#110789 - 09/12/17 11:47 PM Re: 8bit Apples - Apple I, II, /// and the 16 bit GS [Re: R. Belmont]  
Joined: Jun 2014
Posts: 64
peter ferrie Offline
Member
peter ferrie  Offline
Member

Joined: Jun 2014
Posts: 64
Originally Posted by R. Belmont
Oh, that sucks. The French Touch demos flip page 1 / page 2 mid-scanline and expect it to change the display immediately. (BTW, they posted the source for all their stuff if you missed it).


I've added a check for 80-column mode, which seems to solve the problem.
The 40-col screen updates immediately, the 80-col one doesn't.
And yes, I saw the French Touch stuff. He was one person. His name is Arnaud. We got to know each other a little bit before he retired.

#110790 - 09/12/17 11:54 PM Re: 8bit Apples - Apple I, II, /// and the 16 bit GS [Re: rfka01]  
Joined: Mar 2001
Posts: 15,752
R. Belmont Offline
R. Belmont  Offline

Very Senior Member

Joined: Mar 2001
Posts: 15,752
USA
Great, thanks Peter!

#110792 - 09/14/17 07:50 PM Re: 8bit Apples - Apple I, II, /// and the 16 bit GS [Re: Golden Child]  
Joined: Feb 2014
Posts: 94
Golden Child Offline
Member
Golden Child  Offline
Member

Joined: Feb 2014
Posts: 94
I got an Intel Core i3-2120 based system running the integrated graphics and sound and that seems to have totally fixed the audio stuttering that I was seeing before:

According to Ubuntu's System Information:
Processor: Intel® Core™ i3-2120 CPU @ 3.30GHz × 4 (2 cores with hyperthreading)
Graphics: Intel® Sandybridge Desktop

I took the hard drive of my original Ubuntu 17.04 system, made an image with dd and copied that to the new system so it's the exact same system running on different hardware.

I hear no popping at all unless I fiddle with the bgfx video filter sliders and get to the slow ones.

On this computer, the onboard Intel audio works fine and I don't get pops even with the -video soft.

Code

./mame64 apple2e  -sdlvideofps -video bgfx  -prescale 2
  0.02s,    1 F, avrg game: 59.75 FPS 16.74 ms/f, avrg video: 1561.91 FPS 0.64 ms/f, last video:   inf FPS 0.36 ms/f
  1.03s,   62 F, avrg game: 60.00 FPS 16.67 ms/f, avrg video: 3662.88 FPS 0.27 ms/f, last video:   inf FPS 0.28 ms/f
  2.05s,  123 F, avrg game: 60.00 FPS 16.67 ms/f, avrg video: 3540.34 FPS 0.28 ms/f, last video:   inf FPS 0.33 ms/f


./mame64 apple2e -sdlvideofps -video opengl -prescale 2
  0.02s,    1 F, avrg game: 60.02 FPS 16.66 ms/f, avrg video: 487.59 FPS 2.05 ms/f, last video:   inf FPS 1.01 ms/f
  1.03s,   62 F, avrg game: 60.00 FPS 16.67 ms/f, avrg video: 821.80 FPS 1.22 ms/f, last video:   inf FPS 1.01 ms/f
  2.05s,  123 F, avrg game: 60.00 FPS 16.67 ms/f, avrg video: 814.30 FPS 1.23 ms/f, last video:   inf FPS 1.08 ms/f
 

./mame64 apple2e -sdlvideofps -video soft -prescale 2
  0.02s,    1 F, avrg game: 61.71 FPS 16.21 ms/f, avrg video: 77.32 FPS 12.93 ms/f, last video:   inf FPS 6.24 ms/f
  1.03s,   62 F, avrg game: 60.05 FPS 16.65 ms/f, avrg video: 152.53 FPS 6.56 ms/f, last video:   inf FPS 5.82 ms/f
  2.03s,  122 F, avrg game: 60.00 FPS 16.67 ms/f, avrg video: 151.10 FPS 6.62 ms/f, last video:   inf FPS 6.66 ms/f


Are those bgfx numbers for real? 3662 FPS?

So I did learn a couple of things:

Onboard video can be faster than a discrete card. (really!)

You can change the audio driver with:

export SDL_AUDIODRIVER=pulseaudio
export SDL_AUDIODRIVER=alsa

and -frameskip 6 will do exactly 30 FPS if you're into 30 fps video:

I pulled the usb audio device and put it on the new system and the pops are back. So I'm going to blame it on the usb sound dongle.

I feel like widlarizing that thing.

#110793 - 09/14/17 08:47 PM Re: 8bit Apples - Apple I, II, /// and the 16 bit GS [Re: rfka01]  
Joined: Mar 2001
Posts: 15,752
R. Belmont Offline
R. Belmont  Offline

Very Senior Member

Joined: Mar 2001
Posts: 15,752
USA
That's much better performance, glad you found the issue!

BGFX uses modern OpenGL on Linux, which is likely a faster path on the Intel drivers than the ancient GL 1.2/2.0 stuff -video opengl uses, although that much speedup is still kind of unexpected.

#110794 - 09/14/17 10:54 PM Re: 8bit Apples - Apple I, II, /// and the 16 bit GS [Re: R. Belmont]  
Joined: Feb 2014
Posts: 94
Golden Child Offline
Member
Golden Child  Offline
Member

Joined: Feb 2014
Posts: 94
Thanks for your help, RB. I am sure enjoying playing with the apple2e driver, especially now with no pops 8-)

#110827 - 09/23/17 08:33 PM Re: 8bit Apples - Apple I, II, /// and the 16 bit GS [Re: Golden Child]  
Joined: Feb 2014
Posts: 94
Golden Child Offline
Member
Golden Child  Offline
Member

Joined: Feb 2014
Posts: 94
I've been fiddling with trying to write to the TMS9918 on the ssprite from Applesoft Basic. But for some reason it doesn't work correctly.

The ssprite board sits in slot 7, so it has the io addresses $C0Fx.

I set an address $C0F1 in the variable AD, then poke AD twice, which should set one of the TMS registers, but it doesn't, because it's reading from $C0F1 before it writes, which creates the side effect of resetting the TMS9918 address that it's going to write to. So it keeps thinking that it's getting the low byte of the address forever.

AD = 12*16*256+15*16+1:POKE AD,4:POKE AD, 128+7

(that should write 4 to the TMS9918 register 7, but it has no effect)


[Linked Image]


But doing the same thing from machine language doesn't introduce a read before the write.

CALL -151
4000: AD F1 C0 A9 F2 8D F1 C0 A9 87 8D F1 C0 60
which is just
LDA $C0F1
LDA #$F2
STA $C0F1
LDA #$87
STA $C0F1
RTS

4000G to execute it, and it works.


[Linked Image]

This is totally baffling me.

Is there something about the way applesoft does a poke, using

STA ($50),y

that activates a read before the write?

#110829 - 09/23/17 10:30 PM Re: 8bit Apples - Apple I, II, /// and the 16 bit GS [Re: rfka01]  
Joined: May 2010
Posts: 860
seanriddle Offline
Senior Member
seanriddle  Offline
Senior Member

Joined: May 2010
Posts: 860
Although my 6502 books don't seem to mention it, it looks like indirect indexed mode does a read from the effective address.

From the MAME source:
https://git.redump.net/mame/tree/src/devices/cpu/m6502/om6502.lst
Code
sta_idy
	TMP2 = read_pc();
	TMP = read(TMP2);
	TMP = set_h(TMP, read((TMP2+1) & 0xff));
	read(set_l(TMP, TMP+Y));
	write(TMP+Y, A);
	prefetch();


Another reference:
https://github.com/eteran/pretendo/blob/master/doc/cpu/6502.txt
Code
Indirect indexed addressing
Write instructions (STA, SHA)

        #    address   R/W description
       --- ----------- --- ------------------------------------------
        1      PC       R  fetch opcode, increment PC
        2      PC       R  fetch pointer address, increment PC
        3    pointer    R  fetch effective address low
        4   pointer+1   R  fetch effective address high,
                           add Y to low byte of effective address
        5   address+Y*  R  read from effective address,
                           fix high byte of effective address
        6   address+Y   W  write to effective address

       Notes: The effective address is always fetched from zero page,
              i.e. the zero page boundary crossing is not handled.

              * The high byte of the effective address may be invalid
                at this time, i.e. it may be smaller by $100.

Page 5 of 12 1 2 3 4 5 6 7 11 12

Who's Online Now
2 registered members (Pernod, 1 invisible), 15 guests, and 3 spiders.
Key: Admin, Global Mod, Mod
Shout Box
Forum Statistics
Forums9
Topics8,435
Posts109,387
Members4,764
Most Online225
May 26th, 2014
Powered by UBB.threads™ PHP Forum Software 7.6.0
Page Time: 0.053s Queries: 14 (0.018s) Memory: 5.0350 MB (Peak: 5.2622 MB) Zlib enabled. Server Time: 2017-11-18 12:17:23 UTC