mirror of
https://github.com/wavemotion-dave/SpeccySE.git
synced 2025-06-18 13:55:33 -04:00
Version 0.8b with minor tape handling cleanup and some keyboard graphic improvements.
This commit is contained in:
parent
f33b052da6
commit
f69f805179
2
Makefile
2
Makefile
@ -15,7 +15,7 @@ include $(DEVKITARM)/ds_rules
|
||||
|
||||
export TARGET := SpeccySE
|
||||
export TOPDIR := $(CURDIR)
|
||||
export VERSION := 0.8a
|
||||
export VERSION := 0.8b
|
||||
|
||||
ICON := -b $(CURDIR)/logo.bmp "SpeccySE $(VERSION);wavemotion-dave;https://github.com/wavemotion-dave/SpeccySE"
|
||||
|
||||
|
BIN
SpeccySE.nds
BIN
SpeccySE.nds
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 37 KiB |
@ -448,8 +448,6 @@ void ShowDebugZ80(void)
|
||||
// ------------------------------------------------------------
|
||||
void DisplayStatusLine(bool bForce)
|
||||
{
|
||||
//if (myGlobalConfig.emuText == 0) return;
|
||||
|
||||
if ((speccy_mode != last_speccy_mode) || bForce)
|
||||
{
|
||||
last_speccy_mode = speccy_mode;
|
||||
@ -469,12 +467,6 @@ void DisplayStatusLine(bool bForce)
|
||||
DSPrint(2, 21, 2, "$%&");
|
||||
DSPrint(2, 22, 2, "DEF");
|
||||
}
|
||||
|
||||
if (myGlobalConfig.emuText)
|
||||
{
|
||||
sprintf(tmp, "TAPE %-6d", tape_bytes_processed);
|
||||
DSPrint(5,0,6, tmp);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -482,9 +474,7 @@ void DisplayStatusLine(bool bForce)
|
||||
{
|
||||
DSPrint(2, 21, 2, "!\"#");
|
||||
DSPrint(2, 22, 2, "ABC");
|
||||
}
|
||||
|
||||
DSPrint(5,0,6, " ");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -207,7 +207,7 @@ void tape_parse_blocks(int tapeSize)
|
||||
TapeBlocks[num_blocks_available].id = BLOCK_ID_STANDARD;
|
||||
TapeBlocks[num_blocks_available].gap_delay_after = DEFAULT_TAPE_GAP_DELAY_MS;
|
||||
TapeBlocks[num_blocks_available].pilot_length = DEFAULT_PILOT_LENGTH;
|
||||
TapeBlocks[num_blocks_available].pilot_pulses = ((block_flag < 128) ? DEFAULT_HEADER_PULSE_TOGGLES : DEFAULT_DATA_PULSE_TOGGLES);
|
||||
TapeBlocks[num_blocks_available].pilot_pulses = ((block_flag & 0x80) ? DEFAULT_DATA_PULSE_TOGGLES : DEFAULT_HEADER_PULSE_TOGGLES);
|
||||
TapeBlocks[num_blocks_available].sync1_width = DEFAULT_SYNC_PULSE1_WIDTH;
|
||||
TapeBlocks[num_blocks_available].sync2_width = DEFAULT_SYNC_PULSE2_WIDTH;
|
||||
TapeBlocks[num_blocks_available].data_one_width = DEFAULT_DATA_ONE_PULSE_WIDTH;
|
||||
@ -222,7 +222,7 @@ void tape_parse_blocks(int tapeSize)
|
||||
TapeBlocks[num_blocks_available].block_data_len = block_len;
|
||||
TapeBlocks[num_blocks_available].block_flag = block_flag;
|
||||
|
||||
if ((block_flag < 128) || (block_len == 19)) // Header
|
||||
if (!(block_flag & 0x80) || (block_len == 19)) // Header
|
||||
{
|
||||
memcpy(TapeBlocks[num_blocks_available].block_filename, &ROM_Memory[idx+4], 10);
|
||||
}
|
||||
@ -256,7 +256,7 @@ void tape_parse_blocks(int tapeSize)
|
||||
|
||||
TapeBlocks[num_blocks_available].gap_delay_after = gap_len;
|
||||
TapeBlocks[num_blocks_available].pilot_length = DEFAULT_PILOT_LENGTH;
|
||||
TapeBlocks[num_blocks_available].pilot_pulses = ((block_flag < 128) ? DEFAULT_DATA_PULSE_TOGGLES : DEFAULT_HEADER_PULSE_TOGGLES);
|
||||
TapeBlocks[num_blocks_available].pilot_pulses = ((block_flag & 0x80) ? DEFAULT_DATA_PULSE_TOGGLES : DEFAULT_HEADER_PULSE_TOGGLES);
|
||||
TapeBlocks[num_blocks_available].sync1_width = DEFAULT_SYNC_PULSE1_WIDTH;
|
||||
TapeBlocks[num_blocks_available].sync2_width = DEFAULT_SYNC_PULSE2_WIDTH;
|
||||
TapeBlocks[num_blocks_available].data_one_width = DEFAULT_DATA_ONE_PULSE_WIDTH;
|
||||
@ -269,7 +269,7 @@ void tape_parse_blocks(int tapeSize)
|
||||
TapeBlocks[num_blocks_available].data_one_widthX2 = TapeBlocks[num_blocks_available].data_one_width << 1;
|
||||
TapeBlocks[num_blocks_available].data_zero_widthX2 = TapeBlocks[num_blocks_available].data_zero_width << 1;
|
||||
|
||||
if ((block_flag < 128) || (block_len == 19)) // Header
|
||||
if (!(block_flag & 0x80) || (block_len == 19)) // Header
|
||||
{
|
||||
memcpy(TapeBlocks[num_blocks_available].block_filename, &ROM_Memory[idx+4+2], 10);
|
||||
}
|
||||
@ -305,7 +305,7 @@ void tape_parse_blocks(int tapeSize)
|
||||
TapeBlocks[num_blocks_available].data_one_widthX2 = TapeBlocks[num_blocks_available].data_one_width << 1;
|
||||
TapeBlocks[num_blocks_available].data_zero_widthX2 = TapeBlocks[num_blocks_available].data_zero_width << 1;
|
||||
|
||||
if ((block_flag < 128) || (block_len == 19)) // Header
|
||||
if (!(block_flag & 0x80) || (block_len == 19)) // Header
|
||||
{
|
||||
memcpy(TapeBlocks[num_blocks_available].block_filename, &ROM_Memory[idx+18+2], 10);
|
||||
}
|
||||
@ -480,9 +480,23 @@ void tape_position(u8 newPos)
|
||||
}
|
||||
|
||||
// Called every frame
|
||||
u8 show_tape_counter = 0;
|
||||
void tape_frame(void)
|
||||
{
|
||||
// Not sure if we need this yet... called after every 1 frame of timing in the main loop
|
||||
char tmp[5];
|
||||
if (tape_state)
|
||||
{
|
||||
sprintf(tmp, "%03d", (tape_bytes_processed/1000) % 1000);
|
||||
DSPrint(2, 20, 0, tmp);
|
||||
show_tape_counter = 60;
|
||||
}
|
||||
else if (show_tape_counter)
|
||||
{
|
||||
if (--show_tape_counter == 0)
|
||||
{
|
||||
DSPrint(2, 20, 0, " ");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
@ -735,7 +749,7 @@ ITCM_CODE u8 tape_pulse(void)
|
||||
{
|
||||
last_edge = CPU.TStates;
|
||||
tape_state = TAPE_DELAY_AFTER; // We're done with this block... delay after
|
||||
return 0x00; // But make at least one transition back to 'low'
|
||||
// Do not return here... if delay is zero we don't want to perform any transition
|
||||
}
|
||||
else // We've got another byte to process...
|
||||
{
|
||||
@ -781,7 +795,7 @@ ITCM_CODE u8 tape_pulse(void)
|
||||
break;
|
||||
|
||||
case TAPE_DELAY_AFTER: // Normally ~1 second but can be different for custom tapes
|
||||
if ((CPU.TStates-last_edge) <= (TapeBlocks[current_block].gap_delay_after * 3500)) return 0x00;
|
||||
if ((CPU.TStates-last_edge) < (TapeBlocks[current_block].gap_delay_after * 3500)) return 0x00; // Must be < so we do nothing if delay is zero
|
||||
else
|
||||
{
|
||||
tape_search_for_loader();
|
||||
|
Loading…
Reference in New Issue
Block a user