|
Joined: Apr 2012
Posts: 343 Likes: 60
Senior Member
|
Senior Member
Joined: Apr 2012
Posts: 343 Likes: 60 |
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: It'll be in the CORE MISC OPTIONS section.
BBC Model B, ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, etc.
|
|
|
|
Joined: Feb 2014
Posts: 1,102 Likes: 173
Very Senior Member
|
Very Senior Member
Joined: Feb 2014
Posts: 1,102 Likes: 173 |
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
|
|
|
|
Joined: Feb 2014
Posts: 1,102 Likes: 173
Very Senior Member
|
Very Senior Member
Joined: Feb 2014
Posts: 1,102 Likes: 173 |
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.
|
|
|
|
Joined: Jun 2014
Posts: 95 Likes: 3
Member
|
Member
Joined: Jun 2014
Posts: 95 Likes: 3 |
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.
|
|
|
|
Joined: Mar 2001
Posts: 17,217 Likes: 234
Very Senior Member
|
Very Senior Member
Joined: Mar 2001
Posts: 17,217 Likes: 234 |
|
|
|
|
Joined: Feb 2014
Posts: 1,102 Likes: 173
Very Senior Member
|
Very Senior Member
Joined: Feb 2014
Posts: 1,102 Likes: 173 |
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.
./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.
|
|
|
|
Joined: Mar 2001
Posts: 17,217 Likes: 234
Very Senior Member
|
Very Senior Member
Joined: Mar 2001
Posts: 17,217 Likes: 234 |
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.
|
|
|
|
Joined: Feb 2014
Posts: 1,102 Likes: 173
Very Senior Member
|
Very Senior Member
Joined: Feb 2014
Posts: 1,102 Likes: 173 |
Thanks for your help, RB. I am sure enjoying playing with the apple2e driver, especially now with no pops 8-)
|
|
|
|
Joined: Feb 2014
Posts: 1,102 Likes: 173
Very Senior Member
|
Very Senior Member
Joined: Feb 2014
Posts: 1,102 Likes: 173 |
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) 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. 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?
|
|
|
|
Joined: May 2010
Posts: 1,051
Very Senior Member
|
Very Senior Member
Joined: May 2010
Posts: 1,051 |
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.lststa_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.txtIndirect 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.
|
|
|
Forums9
Topics9,320
Posts121,944
Members5,074
|
Most Online1,283 Dec 21st, 2022
|
|
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!
|
|
|
|