Jump to content
IGNORED

Altirra 3.00 released


phaeron

Recommended Posts

Please don't post in the forum asking me to read my PMs, it's a pet peeve of mine. I'll see the PM, no need to pollute the thread.

 

http://www.virtualdub.org/beta/Altirra-3.10-test31.zip

http://www.virtualdub.org/beta/Altirra-3.10-test31-src.zip

 

  • Adds some support for extended memory debugging. In 6502 mode, the CPU history now tracks which bank the PC is in, and enabling global PC in the history window shows additional info for extended memory banks. The debugger uses a new XX'YYYY syntax for extended memory addresses, e.g. $EF'4800 maps to the byte at $4800 when PORTB=$EF. This makes extended memory a bit easier to deal with than the x:addr syntax, which requires mapping the banks to a linear address space. If you have MADS symbols with the bank values in the symbols, these can also be matched to banked PC addresses. Breakpoints can also be set at PORTB extended memory addresses.
  • Fixed another issue of aliasing between PORTB and Axlon extended memory.
  • Added US Doubler firmware to autodetection list.
  • Custom symbols (debugger 'ya' command) can now be read-only and write-only.
  • Fixed VBXE handling of ANTIC hires pixel priority. Priority is now always PF2/PF3 for XCOLOR=0 and <FX1.26 core and PF1/PF2/PF3 for XCOLOR=1 with FX1.26.
  • Rewrote modem networking code to make the connection step synchronous so it won't hang the emulator until the connection timeout if interrupted.
  • Accepting incoming modem calls now also triggers phone network simulation sounds.
  • Fixed broken 65C816 high memory selector in the configuration UI.
  • Removed extra file extensions from the file filters on the Save Cartridge UI so the common file dialog auto-switches extensions; both filters had most of the cart extensions to show the files, but this was also allowing the cross-type filenames.

 

  • Like 6
Link to comment
Share on other sites

Try using multiple configs in separate folders. Or assigning a custom-named .ini file in the windows' command prompt or "target" in the shortcut - for simultaneous use.

 

When saving the .ini file, it would save in the folder it ran from, or use the custom-name of the custom .ini file. And each instance would remain separate.

 

The commonality of the two methods is they don't use the registry. Registry is good for only one instance.

 

The difference between the two methods is a matter of personal tastes and organization styles.

 

This I would assume works great but Altirra either must have generated an ini file of its own at some point or been started in /portable mode to make one, the reason being that Altirra will look for an ini and if there isn't one it uses the registry..(this has been the normal way since early Altirra's, I don't think its changed in the last release so should be the same)

 

Just to be complete..

Link to comment
Share on other sites

  • Fixed VBXE handling of ANTIC hires pixel priority. Priority is now always PF2/PF3 for XCOLOR=0 and <FX1.26 core and PF1/PF2/PF3 for XCOLOR=1 with FX1.26.

 

I'm not getting any display with 3.10-test31 unless I have VBXE enabled. Could this be a regression related to this change?

Link to comment
Share on other sites

For comparison, no issues here, set to various profiles without VBXE in any of them and all boot and load with display fine..Only difference was that VBXE was not enabled on my Altirra when changing to the new beta, did try adding it and restarting with it added from cold etc but still worked as normal....cfg in registry..

Edited by Mclaneinc
Link to comment
Share on other sites

This I would assume works great but Altirra either must have generated an ini file of its own at some point or been started in /portable mode to make one, the reason being that Altirra will look for an ini and if there isn't one it uses the registry..(this has been the normal way since early Altirra's, I don't think its changed in the last release so should be the same)

 

Just to be complete..

Yes. I like that anyfilename.ini can be used. Ony one ever need be made, you can copy & rename it to however many you need. And then specify anyfilename.ini in the shortcut.

 

Most emulators suddenly become more versatile and customizable once the user becomes familiar with the comand-line options and their usage. Altirra is no exception.

Link to comment
Share on other sites

Yes. I like that anyfilename.ini can be used. Ony one ever need be made, you can copy & rename it to however many you need. And then specify anyfilename.ini in the shortcut.

 

Most emulators suddenly become more versatile and customizable once the user becomes familiar with the comand-line options and their usage. Altirra is no exception.

 

Yes re the command line, Avery has been great with supporting it fully in Altirra, I use front ends and was involved with the gamepack so the ability to send instructions via command line was mega useful, well to be honest, gamebase and gamepack would be far less creative and friendly without them..

 

Altirra, the Kawaii Emulator!! :)

Edited by Mclaneinc
Link to comment
Share on other sites

 

I'm not getting any display with 3.10-test31 unless I have VBXE enabled. Could this be a regression related to this change?

Same here - looks like the emu is hanging during boot process, it displays "option" in the lower right. When I enabled VBXE, I got a fps counter in the main emu window, locked at an odd 31.6.

Edited by Stephen
Link to comment
Share on other sites

Same here - looks like the emu is hanging during boot process, it displays "option" in the lower right. When I enabled VBXE, I got a fps counter in the main emu window, locked at an odd 31.6.

 

I found it works if I go to Tools -> Options -> Display and uncheck Direct3D 9. Does that work for you? I'm on Windows 10.

Link to comment
Share on other sites

Please don't post in the forum asking me to read my PMs, it's a pet peeve of mine. I'll see the PM, no need to pollute the thread.

 

http://www.virtualdub.org/beta/Altirra-3.10-test31.zip

http://www.virtualdub.org/beta/Altirra-3.10-test31-src.zip

 

  • Adds some support for extended memory debugging. In 6502 mode, the CPU history now tracks which bank the PC is in, and enabling global PC in the history window shows additional info for extended memory banks. The debugger uses a new XX'YYYY syntax for extended memory addresses, e.g. $EF'4800 maps to the byte at $4800 when PORTB=$EF. This makes extended memory a bit easier to deal with than the x:addr syntax, which requires mapping the banks to a linear address space. If you have MADS symbols with the bank values in the symbols, these can also be matched to banked PC addresses. Breakpoints can also be set at PORTB extended memory addresses.
  • Fixed another issue of aliasing between PORTB and Axlon extended memory.
  • Added US Doubler firmware to autodetection list.
  • Custom symbols (debugger 'ya' command) can now be read-only and write-only.
  • Fixed VBXE handling of ANTIC hires pixel priority. Priority is now always PF2/PF3 for XCOLOR=0 and <FX1.26 core and PF1/PF2/PF3 for XCOLOR=1 with FX1.26.
  • Rewrote modem networking code to make the connection step synchronous so it won't hang the emulator until the connection timeout if interrupted.
  • Accepting incoming modem calls now also triggers phone network simulation sounds.
  • Fixed broken 65C816 high memory selector in the configuration UI.
  • Removed extra file extensions from the file filters on the Save Cartridge UI so the common file dialog auto-switches extensions; both filters had most of the cart extensions to show the files, but this was also allowing the cross-type filenames.

 

 

Thanks Avery for quick fix! sorry for PMed you but the reason is typical "non disclosure" agreements prior demo compos not to publish before deadlines. :)

Link to comment
Share on other sites

 

I found it works if I go to Tools -> Options -> Display and uncheck Direct3D 9. Does that work for you? I'm on Windows 10.

I'm a goof. 64-bit version is working fine, I accidentally started the 32-bit version.

Link to comment
Share on other sites

 

I'm not getting any display with 3.10-test31 unless I have VBXE enabled. Could this be a regression related to this change?

 

No, the fix was solely in the VBXE scanline rendering code. That code doesn't activate unless VBXE is enabled.

 

I take it 3.10-test30 works, and toggling vsync doesn't make a difference? Can you enable the HOSTDISP channel in the debugger (lfe hostdisp) and see what it is saying when DX9 tries to init?

Link to comment
Share on other sites

No, the fix was solely in the VBXE scanline rendering code. That code doesn't activate unless VBXE is enabled.

 

I take it 3.10-test30 works, and toggling vsync doesn't make a difference? Can you enable the HOSTDISP channel in the debugger (lfe hostdisp) and see what it is saying when DX9 tries to init?

I ran the following tests, removing Altirra.ini before each run:

  • 3.10-test30 Altirra64.exe /portable works.
  • 3.10-test30 Altirra.exe /portable works.
  • 3.10-test31 Altirra64.exe /portable works.
  • 3.10-test31 Altirra.exe /portable does *not* work.
Here's what HOSTDISP says for #1:

 

HOSTDISP: VideoDisplay/DX9: Successfully created Direct3D 9 device.
HOSTDISP: Device: aticfx32.dll (Radeon RX 580 Series)
HOSTDISP: DeviceCaps: VS3.0, PS3.0, MaxTex 16384x16384, ReadScanline Yes, HWVP
HOSTDISP: VideoDisplay/DX9: Init successful on adapter 0 (\\.\DISPLAY1 / aticfx32.dll), monitor 00010001.
HOSTDISP: VideoDisplay/DX9: Init successful for 376x240 source image (Pal8 -> XRGB8888); monitor=00010001

Here's what HOSTDISP says for #2:

 

HOSTDISP: VideoDisplay/DX9: Successfully created Direct3D 9 device.
HOSTDISP: Device: aticfx64.dll (Radeon RX 580 Series)
HOSTDISP: DeviceCaps: VS3.0, PS3.0, MaxTex 16384x16384, ReadScanline Yes, HWVP
HOSTDISP: VideoDisplay/DX9: Init successful on adapter 0 (\\.\DISPLAY1 / aticfx64.dll), monitor 0000000000010001.
HOSTDISP: VideoDisplay/DX9: Init successful for 376x240 source image (Pal8 -> XRGB8888); monitor=0000000000010001

Here's what HOSTDISP says for #3:

 

HOSTDISP: VideoDisplay/DX9: Successfully created Direct3D 9 device.
HOSTDISP: Device: aticfx32.dll (Radeon RX 580 Series)
HOSTDISP: DeviceCaps: VS3.0, PS3.0, MaxTex 16384x16384, ReadScanline Yes, HWVP
HOSTDISP: VideoDisplay/DX9: Init successful on adapter 0 (\\.\DISPLAY1 / aticfx32.dll), monitor 00010001.
HOSTDISP: VideoDisplay/DX9: Init successful for 376x240 source image (Pal8 -> XRGB8888); monitor=00010001

Here's what HOSTDISP says for #4:

 

HOSTDISP: VideoDisplay/DX9: Successfully created Direct3D 9 device.
HOSTDISP: Device: aticfx64.dll (Radeon RX 580 Series)
HOSTDISP: DeviceCaps: VS3.0, PS3.0, MaxTex 16384x16384, ReadScanline Yes, HWVP
HOSTDISP: VideoDisplay/DX9: Init successful on adapter 0 (\\.\DISPLAY1 / aticfx64.dll), monitor 0000000000010001.
HOSTDISP: VideoDisplay/DX9: Init successful for 376x240 source image (Pal8 -> XRGB8888); monitor=0000000000010001

It looks like my registry might be polluted as I can't get it to work at all with test30 or test31 without /portable. Maybe it's time for me to just run /resetall?

Link to comment
Share on other sites

Speed setting (1 to 10) for auto-fire for controller buttons are appeared to have no effect as auto-fire rate is appeared to be fixed. However, auto-fire works fine. I like to choose auto-fire rates for auto-fire for controller buttons - 60 Hz (Fastest), 30 Hz, 20 Hz, 15 Hz, 12 Hz or 10 Hz rather than 1, 2, 3, ..., 10.

 

I call auto-fire "Turbo fire".

 

Link to comment
Share on other sites

Not sure if it's my eyes to blame, but has the MYIDE/Flash firmware type vanished? I can add a MYIDE/Flash device but when trying to set the default firmware (to clear the "Missing firmware" flag), there is no MYIDE/Flash in the "Type" list, making it impossible to attach the SDX ROM, for instance.

 

Ugh... it's OK: I figured it out immediately after posting. The cart ROM is still added via the cartridge dialog, although it should be noted that doing so doesn't clear the "Missing firmware" warning.

Edited by flashjazzcat
  • Like 1
Link to comment
Share on other sites

Not sure if it's my eyes to blame, but has the MYIDE/Flash firmware type vanished? I can add a MYIDE/Flash device but when trying to set the default firmware (to clear the "Missing firmware" flag), there is no MYIDE/Flash in the "Type" list, making it impossible to attach the SDX ROM, for instance.

 

Ugh... it's OK: I figured it out immediately after posting. The cart ROM is still added via the cartridge dialog, although it should be noted that doing so doesn't clear the "Missing firmware" warning.

 

Yes, that's a bug. MyIDE v1 doesn't have firmware and shouldn't trip that warning.

  • Like 3
Link to comment
Share on other sites

http://www.virtualdub.org/beta/Altirra-3.10-test33.zip

http://www.virtualdub.org/beta/Altirra-3.10-test33-src.zip

http://www.virtualdub.org/beta/Altirra-3.10-test33-ARM64.zip

 

This is the first build that I've actually published an ARM64 build for, now that I have a physical device to test on. I won't be publishing the ARM64 build all the time, but the final release will have it. The native ARM64 build is about 30% faster than the x86 build running under emulation.

 

Other changes:

  • Fixes and NEON optimizations for ARM64.
  • MyIDE v1 no longer shows firmware warnings.
  • Reorganized pages in Configure System into categories to make it easier to scan.
  • Added support for non-default preset input maps and added a couple of new ones.
  • Minor perf optimization to Direct3D 11 path (fixed some redundant calls).
  • Added warning when adding a full disk emulator for the first time.
  • Like 6
Link to comment
Share on other sites

http://www.virtualdub.org/beta/Altirra-3.10-test33.zip

http://www.virtualdub.org/beta/Altirra-3.10-test33-src.zip

http://www.virtualdub.org/beta/Altirra-3.10-test33-ARM64.zip

 

This is the first build that I've actually published an ARM64 build for, now that I have a physical device to test on. I won't be publishing the ARM64 build all the time, but the final release will have it. The native ARM64 build is about 30% faster than the x86 build running under emulation.

 

That’s pretty awesome!

 

 

Sent from my iPad using Tapatalk

  • Like 1
Link to comment
Share on other sites

Is this right place for Altirra related questions ?

I need to log memory writes .. just PC, destination address, and value. I found how to log tons of thing, but not this.

Thanks !

You can use the bx command. For example, this will log all writes to ANTIC:

 

bx "write>=$D400 and write<=$D4FF" "r; g"

Example output during Self-Test:

 

(200:105, 17) A=20 X=2C Y=00 S=FA P=35 (   I C)  50E6: 8E 0A D4  L50E6   STX WSYNC    [$D40A]
(200:112, 79) A=00 X=7A Y=00 S=FA P=37 (   IZC)  50E6: 8E 0A D4  L50E6   STX WSYNC    [$D40A]
(200:128, 74) A=00 X=7A Y=00 S=FA P=37 (   IZC)  50E6: 8E 0A D4  L50E6   STX WSYNC    [$D40A]
(200:144, 75) A=00 X=7A Y=00 S=FA P=37 (   IZC)  50E6: 8E 0A D4  L50E6   STX WSYNC    [$D40A]
(200:248, 51) A=00 X=00 Y=00 S=F9 P=76 ( V IZ )  C026: 8D 0F D4          STA NMIRES   [$D40F]
(200:249, 73) A=51 X=F9 Y=00 S=F9 P=75 ( V I C)  C13A: 8D 03 D4          STA DLISTH   [$D403]
(200:249, 81) A=34 X=F9 Y=00 S=F9 P=75 ( V I C)  C140: 8D 02 D4          STA DLISTL   [$D402]
(200:249, 89) A=21 X=F9 Y=00 S=F9 P=75 ( V I C)  C146: 8D 00 D4          STA DMACTL   [$D400]
(200:251,105) A=E0 X=FF Y=00 S=F9 P=F1 (NV   C)  C178: 8D 09 D4          STA CHBASE   [$D409]
(200:251,113) A=02 X=FF Y=00 S=F9 P=71 ( V   C)  C17E: 8D 01 D4          STA CHACTL   [$D401]
Type ".help bx" for more info.
  • Like 4
Link to comment
Share on other sites

Wow, that's quite powerful, didn't search in breakpoints .. will try.

 

Now let me set these dynamically in the code, same as asserts .. and obviously it has to work from macros :grin:

Just kidding .. anyway .. again I'm fighting some shitty little misplaced memory write which only very rarely crashes the program. Would be nice if I could tell at every subroutine what memory ranges it's allowed to write, and break on everything else. But that seems to be still long way to go.

 

I'm thinking about detecting misplaced write by analyzing the logs. I know at what procedure I'm at, I can define safe ranges, and report anything outside of that.

Good thing is I can do it after the error occurred, and I can add search conditions without need to rerun the code (and reproduce the error). So in the end the log analysis might be even more powerful.

  • Like 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...