You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+8-12Lines changed: 8 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,19 +10,19 @@ To build the bootloader in the easiest way, just follow the instructions below.
10
10
You can do it the manual way with an assembler, a video to ASCII converter and a virtualization software of your choice too, but then, you're on your own.
11
11
12
12
### Installing dependencies
13
-
For Windows, you can install [`scoop`](https://scoop.sh/) and run:
13
+
For Windows, you can install [Scoop](https://scoop.sh/) and run:
14
14
```powershell
15
-
scoop install nasm make python
15
+
scoop install nasm make ffmpeg python
16
16
```
17
17
18
18
As for Linux, all of the packages should be in your default package manager. Here's an example for Ubuntu:
19
19
```bash
20
-
sudo apt install nasm make python3
20
+
sudo apt install nasm make ffmpeg python3
21
21
```
22
22
23
23
If you want to run the bootloader, you need to install QEMU as well, which can be done with either `scoop install qemu` or `sudo apt install qemu`, depending on your operating system.
24
24
25
-
Once you have Python installed, you will also need to install the dependencies for the `vid2data` converter. Simply do:
25
+
Once you have Python installed, you will also need to install the dependencies for the ASCII converter. Simply do:
@@ -46,13 +46,8 @@ By default, the Makefile uses KVM as an accelerator for QEMU. Since KVM is exclu
46
46
#### It's too slow/fast and/or the frame rate is unstable!
47
47
~~In the future, I might implement something bigger, like a custom interrupt handler, to get a stable frame rate.~~
48
48
49
-
After like a month or maybe even more, I finally understood how to set up the PIT and add a handler in the IVT, thus, the framerate is now fully faithful to the original! If it's still going too slow/fast though, you might need to adjust the `PIT_RELOAD_VALUE` value on line 2 in [`src/pit.asm`](src/pit.asm).
50
-
51
-
To calculate the reload value, simply use the equation:
52
-
```
53
-
Reload Value = floor(1193182 / FPS)
54
-
```
55
-
where `FPS` is the framerate of the original video.
49
+
After like a month or maybe even more, I finally understood how to set up the PIT and add a handler in the IVT, thus, the framerate is now fully faithful to the original!
50
+
If it is still too slow, that means your CPU might not be able to handle the video at the original framerate. In that case, you can change the `FPS` variable in the `Makefile` to a lower value.
56
51
57
52
## FAQ
58
53
@@ -61,7 +56,8 @@ There are two main reasons for this project:
61
56
62
57
Firstly, I wanted to learn more about low-level programming, more specifically Assembly. I already made [an operating system](https://github.com/bemxio/bemxos), however, the Assembly side has attracted me the most. I wanted to challenge myself into using it for something bigger, in order to properly learn registers, interrupts and things like that. Perhaps, in the future, I will step into NES development!
63
58
64
-
~~Secondly, no one has done this before.~~ Actually, I was wrong. [@redstone_flash5774](https://www.youtube.com/channel/UCxL3ay5lRA4KvCX56sRIUeA) made their version and uploaded it to YouTube [here](https://www.youtube.com/watch?v=DsJH3SNYqvM). I didn't notice it at all in those 6 months, just found it out when I was uploading my video on YouTube. Still, our approaches to do it are different, and they have not uploaded the source code, so I guess I can still be proud of it!
59
+
~~Secondly, no one has done this before.~~
60
+
Actually, I was wrong. [@redstone_flash5774](https://www.youtube.com/channel/UCxL3ay5lRA4KvCX56sRIUeA) made their version and uploaded it to YouTube [here](https://www.youtube.com/watch?v=DsJH3SNYqvM). I didn't notice it at all in those 6 months, just found it out when I was uploading my video on YouTube. Still, our approaches to do it are different, and they have not uploaded the source code, so I guess I can still be proud of it!
65
61
66
62
### How does it work?
67
63
The `bootloader.bin` file is split into two parts - the first one is the bootloader itself, with all of the code, and the second one is the video data.
0 commit comments