|
|
|
Re: ProRWTS2 released [message #370769 is a reply to message #370748] |
Sun, 15 July 2018 06:13 |
Alex Lee
Messages: 220 Registered: November 2012
Karma: 0
|
Senior Member |
|
|
On 2018-07-15 04:07:19 +0000, qkumba said:
> https://github.com/peterferrie/prorwts2
>
> The code that powers the big titles for ProDOS, like Airheart and
> Prince of Persia (and soon: Nox Archaist and Lawless Legends!), is
> finally available for everyone.
Awesome! Still beyond my comprehension, but I hope others can make it
bend to their will.
- Alex
|
|
|
Re: ProRWTS2 released [message #370787 is a reply to message #370769] |
Sun, 15 July 2018 13:12 |
qkumba
Messages: 1584 Registered: March 2013
Karma: 0
|
Senior Member |
|
|
Yes, the options matrix yields on the order of 92000+ combinations which is absolutely insane.
Fortunately, there are just a few most-likely sets.
|
|
|
Re: ProRWTS2 released [message #370788 is a reply to message #370787] |
Sun, 15 July 2018 13:18 |
|
Originally posted by: frank_o_rama
So, the tree_idx pointer has moved to $5B from $F6?
Also, do I need to have fast_trees turned on now to generate the tree index?
Any improvements to the SmartPort driver regarding virtual slots? I think you were up to 4 on the last version I saw.
F
|
|
|
Re: ProRWTS2 released [message #370813 is a reply to message #370788] |
Sun, 15 July 2018 16:51 |
qkumba
Messages: 1584 Registered: March 2013
Karma: 0
|
Senior Member |
|
|
> So, the tree_idx pointer has moved to $5B from $F6?
Yes, I grouped the zpage variables to allow for small swapping.
However, what you have already is functionally equivalent to what I released.
> Also, do I need to have fast_trees turned on now to generate the tree index?
No, fast_trees is simply a performance improvement that avoids re-reading them. Good for you to enable it, but in a constrained environment like PoP, it wasn't possible.
> Any improvements to the SmartPort driver regarding virtual slots? I think you were up to 4 on the last version I saw.
Not yet, but I'm working on it right now. Once that's working, we can review the options that you need.
|
|
|
Re: ProRWTS2 released [message #370832 is a reply to message #370813] |
Mon, 16 July 2018 00:46 |
qkumba
Messages: 1584 Registered: March 2013
Karma: 0
|
Senior Member |
|
|
Okay, we are limited to 4 partitions unless there's a way to cause ProDOS (or the Smartport driver itself) to leak the true unit number to the caller.
For partitions 5 and up, there's a second table in ProDOS memory that holds the true mappings. I don't know how to find it, nor how the numbers are assigned (to avoid needing to find it).
AppleWin's Smartport driver leaves the unit number at $43, but real hardware running a CFFA doesn't.
|
|
|
Re: ProRWTS2 released [message #370833 is a reply to message #370832] |
Mon, 16 July 2018 01:12 |
qkumba
Messages: 1584 Registered: March 2013
Karma: 0
|
Senior Member |
|
|
Frank, if you build with "always_trees=1", you'll have slightly smaller init code but no other benefits, because the version that you have has that behaviour hard-coded in the read loop. What you have already is as fast as I can make it right now.
|
|
|
Re: ProRWTS2 released [message #370842 is a reply to message #370832] |
Mon, 16 July 2018 08:19 |
|
Originally posted by: John Brooks
On Sunday, July 15, 2018 at 9:46:58 PM UTC-7, qkumba wrote:
> Okay, we are limited to 4 partitions unless there's a way to cause ProDOS (or the Smartport driver itself) to leak the true unit number to the caller.
> For partitions 5 and up, there's a second table in ProDOS memory that holds the true mappings. I don't know how to find it, nor how the numbers are assigned (to avoid needing to find it).
> AppleWin's Smartport driver leaves the unit number at $43, but real hardware running a CFFA doesn't.
Why not use the selected volume name to locate the smartport volume?
RamFast & CFFA can mount 10+ partitions which can be located at any slot/drive, so a ProRWTS limit of 4 partitions will likely fail for many users.
-JB
@JBrooksBSI
|
|
|
Re: ProRWTS2 released [message #370845 is a reply to message #370833] |
Mon, 16 July 2018 09:45 |
|
Originally posted by: frank_o_rama
On Sunday, July 15, 2018 at 10:12:06 PM UTC-7, qkumba wrote:
> What you have already is as fast as I can make it right now.
Considering it's something like 2.18x faster than the ProDOS MLI, I'd say nice work.
f
|
|
|
Re: ProRWTS2 released [message #370846 is a reply to message #370842] |
Mon, 16 July 2018 12:39 |
qkumba
Messages: 1584 Registered: March 2013
Karma: 0
|
Senior Member |
|
|
> Why not use the selected volume name to locate the smartport volume?
For 64kb+ games, I need the ability to call through the $Cxxx interface directly because ProDOS will be blown away by the game (because requiring 128kb for a 64kb in order to move ProDOS is not a valid option). For that to work, I have to identify the actual unit number in use.
> RamFast & CFFA can mount 10+ partitions which can be located at any slot/drive, so a ProRWTS limit of 4 partitions will likely fail for many users.
The problem is not the number of partitions present, only which partition is being used to launch the game.
You can mount 10+ partitions if you like, as long as the game is run only from one of the first four.
|
|
|
Re: ProRWTS2 released [message #370847 is a reply to message #370845] |
Mon, 16 July 2018 12:40 |
qkumba
Messages: 1584 Registered: March 2013
Karma: 0
|
Senior Member |
|
|
> Considering it's something like 2.18x faster than the ProDOS MLI, I'd say nice work.
Thanks. I will continue to think about how to improving it more, though.
You never know.
|
|
|
Re: ProRWTS2 released [message #370925 is a reply to message #370846] |
Tue, 17 July 2018 16:50 |
|
Originally posted by: John Brooks
On Monday, July 16, 2018 at 11:39:21 AM UTC-5, qkumba wrote:
>> Why not use the selected volume name to locate the smartport volume?
>
> For 64kb+ games, I need the ability to call through the $Cxxx interface directly because ProDOS will be blown away by the game (because requiring 128kb for a 64kb in order to move ProDOS is not a valid option). For that to work, I have to identify the actual unit number in use.
Right. I meant have the game loader call the $Cxxx smartport directly of each slot to identify the correct slot/drive/partition by volume name. That way there is no dependence on ProDOS or it's internal smartport mapping.
-JB
|
|
|