Skip to content
Snippets Groups Projects
Verified Commit 5bb90559 authored by João Magalhães's avatar João Magalhães :rocket:
Browse files

feat: better debugging

parent 14f379b9
No related branches found
No related tags found
No related merge requests found
Pipeline #1488 passed
...@@ -566,7 +566,9 @@ export const App: FC<AppProps> = ({ emulator, backgrounds = ["264653"] }) => { ...@@ -566,7 +566,9 @@ export const App: FC<AppProps> = ({ emulator, backgrounds = ["264653"] }) => {
}} }}
> >
<h3>Registers</h3> <h3>Registers</h3>
<RegistersGB registers={emulator.registers} /> <RegistersGB
getRegisters={() => emulator.registers}
/>
</div> </div>
</Section> </Section>
)} )}
......
import React, { FC } from "react"; import React, { FC, useEffect, useRef, useState } from "react";
import "./registers-gb.css"; import "./registers-gb.css";
type RegistersGBProps = { type RegistersGBProps = {
registers: Record<string, string | number>; getRegisters: () => Record<string, string | number>;
interval?: number;
style?: string[]; style?: string[];
}; };
export const RegistersGB: FC<RegistersGBProps> = ({ export const RegistersGB: FC<RegistersGBProps> = ({
registers, getRegisters,
interval = 100,
style = [] style = []
}) => { }) => {
const classes = () => ["registers-gb", ...style].join(" "); const classes = () => ["registers-gb", ...style].join(" ");
const [registers, setRegisters] = useState<Record<string, string | number>>(
{}
);
const intervalsRef = useRef<number>();
useEffect(() => {
const updateRegisters = () => {
const registers = getRegisters();
setRegisters(registers);
};
setInterval(() => updateRegisters(), interval);
updateRegisters();
return () => {
if (intervalsRef.current) {
clearInterval(intervalsRef.current);
}
};
}, []);
const renderRegister = ( const renderRegister = (
key: string, key: string,
value: number, value?: number,
size = 2, size = 2,
styles: string[] = [] styles: string[] = []
) => { ) => {
const classes = ["register", ...styles].join(" "); const classes = ["register", ...styles].join(" ");
const valueS = value.toString(16).toUpperCase().padStart(size, "0"); const valueS =
value?.toString(16).toUpperCase().padStart(size, "0") ?? value;
return ( return (
<div className={classes}> <div className={classes}>
<span className="register-key">{key}</span> <span className="register-key">{key}</span>
<span className="register-value">0x{valueS}</span> <span className="register-value">
{valueS ? `0x${valueS}` : "-"}
</span>
</div> </div>
); );
}; };
......
...@@ -18,7 +18,7 @@ export const Tiles: FC<TilesProps> = ({ ...@@ -18,7 +18,7 @@ export const Tiles: FC<TilesProps> = ({
tileCount, tileCount,
width, width,
contentBox = true, contentBox = true,
interval = 500, interval = 1000,
style = [] style = []
}) => { }) => {
const classes = () => const classes = () =>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment