Improve the performance of AppleTalk.
Prior to this patch, network boot to the desktop at 8 MHz CPU (with "turbo" AppleTalk timing) took 2:08. After this patch, the same network boot takes 1:17. Previously, the bridge processed packets from within the emulator's 60 Hz update loop. This bottlenecks network performance, so this patch increases the update rate.
This commit is contained in:
parent
1b370205c1
commit
9cc8c5645f
|
@ -55,6 +55,8 @@ void scc_llap_update()
|
|||
{
|
||||
atbridge_process();
|
||||
|
||||
// Save the AppleTalk network number. Since the network number does not
|
||||
// change very often, this will slightly improve startup time.
|
||||
if (g_appletalk_network_hint != atbridge_get_net())
|
||||
{
|
||||
g_appletalk_network_hint = atbridge_get_net();
|
||||
|
@ -84,6 +86,9 @@ void scc_llap_fill_readbuf(int port, int space_left, double dcycs)
|
|||
}
|
||||
|
||||
free(data);
|
||||
|
||||
// Normally, the bridge updates from the 60 Hz loop, but that alone bottlenecks network throughput.
|
||||
scc_llap_update();
|
||||
}
|
||||
|
||||
/** Transfer one packet from the SCC to the AppleTalk bridge. **/
|
||||
|
@ -131,6 +136,9 @@ void scc_llap_empty_writebuf(int port, double dcycs)
|
|||
// The timing will be a bit off from the real hardware since we're not
|
||||
// emulating the sending hardware timing and CRC generation.
|
||||
scc_ptr->eom = 1;
|
||||
|
||||
// Normally, the bridge updates from the 60 Hz loop, but that alone bottlenecks network throughput.
|
||||
scc_llap_update();
|
||||
}
|
||||
|
||||
#else
|
||||
|
|
Loading…
Reference in New Issue