Hi jonrisual,
Custom registration fields data will be saved in Registration responses entity record.
For example, I created a custom field called "Promo code", then a registration response record will be created to save submitted answer from contact.

As some people have asked same requirement as yours and from my exploration on event portal,
currently firstname, lastname and email fields are only supported fields for contact during event registration,
we couldn't add add custom input fileds and map them to contact corresponding fields.
With a technical explanation, these fields are restricted in current Event API design, other not supported fields will be ignored.
(Feature that customization for mapping more fields to contact might come up in future version)
------------------------------------------------------------------------------------------------------------------------------------
However, due to each registration response record will bind to one event registration record,
and a event registration record will bind to one contact record,
so you could create an on-demand or automatical workflow based on registration response entity,
then update contact's field via relationship: registration response -> event registration -> contact.
For example, I update promo code value in registration response to related contact's jobtitle field:
1. Create a workflow: Update related contact's field

2. Create an action: Update contact field which is based on contact entity to update contact field, because we could only update directly related entity in workflow.

find input text in Local value:

set field value:

Save and active the action.
3. Back to Update related contact's field workflow again, find our previous created action

In Properties dialog, set
PromoCode(Input text) to registration response's response value(answer in custom field) directly.
Target(contact) to related event registration's contact field.

4. Run the workflow on registration response:

5. The value in response field will be passed via the relationship chain that I mentioned previously.

6. You can open the workflow process session to see whether operation has been executed successfully or there was any reason for being stuck.

In addition, by default registration response entity is not visible in site map(left navigation menu), you could view all records by method below:
When you're viewing list records of any entity, then change etn to msevtmgt_registrationresponse in URL:

Regards,
Clofly