Jump to content
IGNORED

Altirra 3.20 released


phaeron

Recommended Posts

I thought I made a mistake, but the Eyes & Lichty book shows both. $5C is the long jump, $DC is the long indirect, and I guess WDC allows both formats as a mnemonic. It just seems a bit jarring to see JMP $00B800 in the debugger but see JSL $00E456.

Link to comment
Share on other sites

43 minutes ago, phaeron said:

For opcode $5C? Sure, fixed for 4.0.

 

Edit: Hold on, the official W65C816S documentation contradicts this request. In both the opcode table and the cycle table, the only opcode canonically listed as JML is $DC, even though it's inconsistent with JSL:

 

image.png.16542de77ee053faa381f78bcb01f587.png

 

image.png.c07f07b15e8530f9e848a46262596f6f.png

That seems a bit misleading, as $DC is the indirect version. So yes, it is a long jump but it's not a direct jump, like JMP is. I think that table is incorrect. They broke out Long for $DC but say $5C is not long, which is dead wrong. $5C should be in that JML line because it's a Long jump, not just a jump to a new location like $4C is. IMO, anyway.

Link to comment
Share on other sites

Just observed again something I've noticed from time to time while using 3.90-test31. Every so often, the last added or removed item in the device tree is lost if I close and restart the emulator. For example: I just removed a custom device, added SIDE2 and Rapidus, changed the U1MB firmware, closed the emulator, started it up again, and Rapidus had vanished from the device tree.

 

If I can provide any kind of diagnostic info, please shout.

 

EDIT: U1MB's PBI device ID had reverted to 0 as well (from 2, as previously set). I assume this is a registry thing I'm observing.

 

Edited by flashjazzcat
Link to comment
Share on other sites

6 minutes ago, Roydea6 said:

Jon are you saving the U1M rom in Altirra before closing same.

I'm switching between a pre-registered selection of ROMs Roy. It's not the ROMs which are getting lost, but various bits of data which are saved in the registry.

 

In actual fact, not only was Rapidus missing after the restart, but the custom device I had removed and replaced with SIDE2 had returned (and SIDE2 was gone). I'm using profiles, but I didn't switch profiles at any time.

Edited by flashjazzcat
Link to comment
Share on other sites

23 hours ago, Alfred said:

That seems a bit misleading, as $DC is the indirect version. So yes, it is a long jump but it's not a direct jump, like JMP is. I think that table is incorrect. They broke out Long for $DC but say $5C is not long, which is dead wrong. $5C should be in that JML line because it's a Long jump, not just a jump to a new location like $4C is. IMO, anyway.

It does seem a bit strange, but they tied $5C to JMP in two places in the documentation, not just one. It's not just a simple typo.

 

The Apple IIgs ROM 03 disassembler also disassembles $5C as JMP instead of JML:

 

image.png.4280731af9222af901210465d27ae2cd.png

 

Link to comment
Share on other sites

4 hours ago, flashjazzcat said:

I'm switching between a pre-registered selection of ROMs Roy. It's not the ROMs which are getting lost, but various bits of data which are saved in the registry.

 

In actual fact, not only was Rapidus missing after the restart, but the custom device I had removed and replaced with SIDE2 had returned (and SIDE2 was gone). I'm using profiles, but I didn't switch profiles at any time.

Are you using the emulator in default registry mode or have you switched it to INI files? In the latter case, check the timestamp on the INI file. It is only written on exit. If you start two copies of the emulator in INI, they will overwrite each others' settings; whichever one exits last wins.

 

Link to comment
Share on other sites

18 hours ago, flashjazzcat said:

Default registry mode. Are registry entries written in real-time or on exit?

 

Changes to the registry are written in real time, but the profile is also only saved on exit or on a profile switch.

 

Link to comment
Share on other sites

Thank you for version 3.20... truly amazing!!!

 

Mouse and Paddle emulate.  I noticed using a mouse as a paddle is not playable as there major delays and is jerky.  To give an example compare it with Atari800winPLus.  The difference is stunning.

Try running Kaboom!.bin and you will see what I mean.  Atari800WinPlus is smooth as glass. 

 

Not sure if this is in the paddle or the mouse it's self.  I noticed using actual atari 2600 paddles it behaves the almost the exact same as with mouse input in Altirra.  Unfortunately, Atari800WinPlus does not support a

paddle input for comparison...   I'm using the 2600 Daptor D9 for the paddle input to windows 10.  I don't think it's the Daptor causing delay since the mouse acts the same, there is a issue with

the paddle input response routines.  

 

I have not tired this on windows 7.  Has anyone else noticed this or fixed the problem. 

Link to comment
Share on other sites

9 hours ago, Irgendwer said:

AutoIt...? ;-)

 

it's a pretty interesting tool and it's got C# interfacing too... I might give it a shot!

 

7 hours ago, evilmoo said:

Check out the "atdevice" interface: 

it has its own scripting language and I'm not sure you can modify the source content from the PC side so it's probably not what I need...

 

Thanks

Link to comment
Share on other sites

On 6/6/2020 at 6:20 PM, rsh said:

Mouse and Paddle emulate.  I noticed using a mouse as a paddle is not playable as there major delays and is jerky.  To give an example compare it with Atari800winPLus.  The difference is stunning.

Try running Kaboom!.bin and you will see what I mean.  Atari800WinPlus is smooth as glass. 

 

Not sure if this is in the paddle or the mouse it's self.  I noticed using actual atari 2600 paddles it behaves the almost the exact same as with mouse input in Altirra.  Unfortunately, Atari800WinPlus does not support a

paddle input for comparison...   I'm using the 2600 Daptor D9 for the paddle input to windows 10.  I don't think it's the Daptor causing delay since the mouse acts the same, there is a issue with

the paddle input response routines. 

This is a bit strange. You might notice slightly more latency than A8WP but it shouldn't be that bad, and it sounds like something is causing the emulator to bog down. Enable View > Show FPS and make sure you're hitting 60 (may bounce around 59-61 but shouldn't be significantly below that), and check that GPU usage isn't spiking in Task Manager. Altirra's default configuration should be lean on the GPU usage but enabling some options like high artifacting can be bit heavier.

 

4 hours ago, rensoup said:

it's a pretty interesting tool and it's got C# interfacing too... I might give it a shot!

 

it has its own scripting language and I'm not sure you can modify the source content from the PC side so it's probably not what I need...

Custom devices can interface to a local network server but don't currently have the ability to access the full memory map, they can only affect their own local device memory. I've thought about the possibility of an automation profile that can access the full address space but it is not currently implemented.

Link to comment
Share on other sites

6 minutes ago, phaeron said:

Custom devices can interface to a local network server but don't currently have the ability to access the full memory map, they can only affect their own local device memory. 

This is probably a rather heavyweight solution, but you could make a PBI driver that services a PBI interrupt and then reads/writes whatever memory you want, right?

Link to comment
Share on other sites

32 minutes ago, evilmoo said:

This is probably a rather heavyweight solution, but you could make a PBI driver that services a PBI interrupt and then reads/writes whatever memory you want, right?

This would be a good solution except that I haven't exposed PBI IRQs to custom devices yet.

 

Link to comment
Share on other sites

20 hours ago, phaeron said:

Custom devices can interface to a local network server but don't currently have the ability to access the full memory map, they can only affect their own local device memory. I've thought about the possibility of an automation profile that can access the full address space but it is not currently implemented.

 

20 hours ago, evilmoo said:

This is probably a rather heavyweight solution, but you could make a PBI driver that services a PBI interrupt and then reads/writes whatever memory you want, right?

 

This seems a little involved/scary... All I was thinking about was having a running program on the Atari which would execute an area of memory constantly while the PC app would update it.... Basically so I could change graphics registers on the fly with a picture displayed and see the effect live...

 

I could obviously just do that in an asm file and build/run every time... just trying to figure out something a little more interactive... need to give it more thoughts.

  • Like 1
Link to comment
Share on other sites

2 hours ago, rensoup said:

This seems a little involved/scary... All I was thinking about was having a running program on the Atari which would execute an area of memory constantly while the PC app would update it.... Basically so I could change graphics registers on the fly with a picture displayed and see the effect live...

 

I could obviously just do that in an asm file and build/run every time... just trying to figure out something a little more interactive... need to give it more thoughts.

Neat idea - please let us know if you get a working solution.

Link to comment
Share on other sites

2 hours ago, rensoup said:

This seems a little involved/scary... All I was thinking about was having a running program on the Atari which would execute an area of memory constantly while the PC app would update it.... Basically so I could change graphics registers on the fly with a picture displayed and see the effect live...

 

I could obviously just do that in an asm file and build/run every time... just trying to figure out something a little more interactive... need to give it more thoughts.

 

Yup. Given that the emulator is a separate process, there are only two choices: re-launch the emulator with a new image, or use an IPC mechanism to talk to it. The first one is simple but involves relatively long delays, the second is more complex.

 

It is possible to do what you're looking for with a custom device, but you have to think in device terms as if it were a real Atari: have the custom device map an 8K boot/monitor ROM at $A000-BFFF and its own RAM at $0000-9FFF. The monitor ROM handles refreshing the hardware registers every VBLANK, and then the network connection can be used to write arbitrary data into device RAM, which is effectively main RAM. But in order to do this, you need to set up a TCP/IP server that talks the custom device binary protocol. It's not too complicated, just a simple packet exchange, but I don't have a C# implementation of it.

 

Link to comment
Share on other sites

On 6/8/2020 at 10:24 PM, phaeron said:

This is a bit strange. You might notice slightly more latency than A8WP but it shouldn't be that bad, and it sounds like something is causing the emulator to bog down. Enable View > Show FPS and make sure you're hitting 60 (may bounce around 59-61 but shouldn't be significantly below that), and check that GPU usage isn't spiking in Task Manager. Altirra's default configuration should be lean on the GPU usage but enabling some options like high artifacting can be bit heavier.

 

Custom devices can interface to a local network server but don't currently have the ability to access the full memory map, they can only affect their own local device memory. I've thought about the possibility of an automation profile that can access the full address space but it is not currently implemented.

Eh, what’s this? Code running in the A8 side of the emulator can talk to a part of the emulator that an external program can communicate with via an exposed TCP/IP port ? This documented anywhere or just in the Altirra source ?

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