SoftwareSerial from Attiny85 over Arduino Uno, help?

Trying to get serial output from an ATtiny85 through my Arduino Uno but all that comes out of the serial monitor is garbage.
The tiny was if programmed and working (afaik, according to my blinking led);
the Uno is programmed with "Arduino as ISP (ATTinyCore)"
here is the code I uploaded to my ATtiny:

#include <SoftwareSerial.h>
SoftwareSerial mySerial(3, 4); // RX, TX

/*
 * ATtiny85:
 *  1 -> nil,           8 -> 5v
 *  2 -> Rx to Uno Tx,  7 -> a_1_in(not connected)
 *  3 -> Tx to Uno Rx,  6 -> d_1_in(not connected)
 *  4 -> Gnd,           5 -> d_0_val (blinking LED)
 *  
 *  pinout: https://cdn.sparkfun.com/assets/f/8/f/d/9/52713d5b757b7fc0658b4567.png
 */


bool alive_led = false;

int d_1_in, a_1_in;
bool d_0_val = false;

void setup() {
    pinMode(3, OUTPUT);
    pinMode(4, OUTPUT);
    //Serial.begin(9600);
    mySerial.begin(9600);
    mySerial.println("Hello, world?");


    
    pinMode(0, OUTPUT);
    pinMode(1, INPUT);
    pinMode(A1, INPUT);
    digitalWrite(0, HIGH);
}

void loop() {
    int n_d_1_in = digitalRead(1);
    int n_a_1_in = analogRead(A1);

    if(n_d_1_in != d_1_in) {
        mySerial.println(String("digital pin 1 output: " + n_d_1_in));
        d_1_in = n_d_1_in;
    }
    
    if(n_a_1_in != a_1_in) {
        mySerial.println(String("analog pin A1 output: " + n_a_1_in));
        a_1_in = n_a_1_in;
    }

    d_0_val = !d_0_val;
    digitalWrite(0, (d_0_val ? HIGH : LOW));

    delay(500);
}

attached is a img of my breadboard.
Any ideas what Ive done wrong?, I'm still learning this and want to do small projects with the tinys. Thanks.

decided to re-read through the ATtinyCore github page and updated my code/pinout with what I could gleam from it, unfortunately theres no change, still receiving garbage on the serial monitor

changed code:

//#include <SoftwareSerial.h>
//SoftwareSerial mySerial(3, 4); // RX, TX

/*
 * ATtiny85:
 *  1 -> reset,           8 -> 5v
 *  2 -> nil,             7 -> LED (blinking)
 *  3 -> nil,             6 -> Rx
 *  4 -> Gnd,             5 -> Tx
 *  
 *  pinout: https://cdn.sparkfun.com/assets/f/8/f/d/9/52713d5b757b7fc0658b4567.png
 */

int led_pin = A1;
int d_read_pin = 3;
int a_read_pin = A2;
int tx_pin = 0;

bool alive_led = false;

int d_1_in, a_1_in;
bool d_0_val = false;

void setup() {
    //mySerial.begin(4800);
    //mySerial.println("Hello, world?");

    pinMode(tx_pin, OUTPUT);
    Serial.begin(9600);
    
    pinMode(led_pin, OUTPUT);
    pinMode(d_read_pin, INPUT);
    pinMode(a_read_pin, INPUT);
    digitalWrite(0, HIGH);
}

void loop() {
    int n_d_1_in = digitalRead(d_read_pin);
    int n_a_1_in = analogRead(a_read_pin);

    if(n_d_1_in != d_1_in) {
        Serial.println(String("digital pin " + (String)d_read_pin + " output: " + n_d_1_in));
        d_1_in = n_d_1_in;
    }
    
    if(n_a_1_in != a_1_in) {
        Serial.println(String("analog pin " + (String)a_read_pin + " output: " + n_a_1_in));
        a_1_in = n_a_1_in;
    }

    d_0_val = !d_0_val;
    analogWrite(led_pin, (d_0_val ? 255 : 0));

    delay(500);
}

serial monitor output:

⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮?⸮⸮⸮?⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮?⸮?⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮?⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮?⸮?⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮?⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮?⸮⸮⸮⸮⸮?⸮⸮?⸮?⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮?⸮⸮⸮⸮?⸮⸮?⸮?⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮

In your photo the ground pin of the tiny85 goes to ground through the resistor. The anode of the LED goes straight to ground (bad), not through the resistor. The lack of a bypass capacitor (0.1uf tiny85 Vcc to ground) can advesly affect the operation of the tiny85.

Connecting the tiny85 to the Uno hardware serial and using serial monitor at the same time might not work. You may need a software serial port on the Uno to receive from the tiny85.

edit: I did a simple experiment with a tiny 85 and Uno with the tiny85 TX (pin 0 or AIN0) to the Uno hardware serial RX (pin 1) and it works fine. You must disconnect the tiny to upload code to the Uno, though.

Uno receive code

void setup()
{
   Serial.begin(9600);
}

void loop()
{
  if(Serial.available())
  {
    Serial.print(char(Serial.read()));
  }
}

tiny85 transmit code:

void setup()
{
   Serial.begin(9600);
}

void loop()
{
  Serial.println("hello world");
  delay(2000);
}

ah, yea I hadn't noticed that at first with the ground, it was still blinking the led at the time, I fixed it before the second bit of code was uploaded though.

I didn't know the Uno had to be re-programmed as a receiver too, I had left it programmed as the ISP the entire time, Just uploaded the code to the Uno and its working great, thanks alot.

Also is there a preferred method/device for programming ATTinys outside of the Arduino as ISP , maybe one that allows you to use the programmer for serial too? I'm currently using a shield I made, and its kinda of a pain to pull-of and on every time i make a change (picture attached).

Also is there a preferred method/device for programming ATTinys outside of the Arduino as ISP ,

I don't know. I built my own programmer shield with a 16 pin ZIF (zero insertion force) socket and use Arduino as ISP.