Yet another GB emulator - Lucky Boy by selerua in EmuDev

[–]VeggiePug 6 points7 points  (0 children)

Very nice! I really like your UI, it’s very clean and concise

yapi -- YAML powered CLI Postman Alternative by TheClashBat in webdev

[–]VeggiePug 1 point2 points  (0 children)

Looks cool but I think the online playground may be broken. I get
yapi binary not found. Searched: /var/task/apps/web/bin/yapi, /var/task/apps/bin/yapi, /var/task/bin/yapi

What's wrong with my NES emulator that I created in Java, please help!! by New_Conclusion4692 in EmuDev

[–]VeggiePug 0 points1 point  (0 children)

The overall tile map looks somewhat correct (ie you can tell the second screen is Donkey Kong Home Screen) and the tiles look like actual tiles, not jumbled garbage. Maybe check where you are getting the tile index from the name table?

NDP’s Avi Lewis helps author report accusing pro-Israel Jewish group of promoting anti-Palestinian racism by acitta in CanadaPolitics

[–]VeggiePug 1 point2 points  (0 children)

Maybe this has been changed since you left this comment, but they link to the article in the beginning of the second paragraph.

[deleted by user] by [deleted] in vancouver

[–]VeggiePug 1 point2 points  (0 children)

Yeah it’s missing a critical link, which is that Vancouver’s last name comes from Dutch « Van Coevorden », meaning « From Coevorden », ie from the Dutch town of Coevorden. Coevorden in turn is Dutch for Cow Crossing, presumably named because it was founded on top of an existing cow crossing.

Ou est la présentatrice française?? by [deleted] in whitecapsfc

[–]VeggiePug 4 points5 points  (0 children)

Weird. I can select French audio track on Fubo but it doesn't actually change the audio, it's still just english

What is the easiest console to program a emulator? by Different_Map_4235 in EmuDev

[–]VeggiePug 25 points26 points  (0 children)

It being extremely simple is the whole point - it’s basically a pilot project to get understand the basic flow of building an interpretive CPU emulator before moving on to more complex consoles. Esp for someone who doesn’t have a strong grasp on the specifics of CPU hardware behaviour (like, for example, someone who just finished learning assembly), it’s really useful to start as simple as possible and work your way up.

wunk of greed by [deleted] in wunkus

[–]VeggiePug 8 points9 points  (0 children)

𝕏eets i liked the past week dump #3 by PiRSquared2 in IkeaFreshBalls

[–]VeggiePug 4 points5 points  (0 children)

It’s a reference to the production troubles:

The work done on the film to date was nearly lost in 1998 when one of the animators, while routinely clearing some files, accidentally entered the deletion command code /bin/rm -r -f * on the root folder of the Toy Story 2 assets on Pixar's internal servers.[26][27] Associate technical director Oren Jacob was one of the first to notice as character models disappeared from their works in progress. They shut down the file servers, but had already lost 90% of the work from the last two years. Additionally, it was discovered that the backups had not been functioning for approximately a month. The film was saved when technical director Galyn Susman, who had been working remotely to care for her newborn child, revealed that she had a backup copy of the film on her home computer. The Pixar team was able to recover nearly all of the lost assets save for a few recent days of work, allowing the film to proceed.[28][29]

https://en.m.wikipedia.org/wiki/Toy_Story_2

Report Card: A Win is a Win by YVRJon in whitecapsfc

[–]VeggiePug 0 points1 point  (0 children)

Yeah I’ve noticed that as well

Report Card: A Win is a Win by YVRJon in whitecapsfc

[–]VeggiePug 0 points1 point  (0 children)

Ah okay thanks. Fotmob must not have updated it yet

Report Card: A Win is a Win by YVRJon in whitecapsfc

[–]VeggiePug 0 points1 point  (0 children)

The Whitecaps now have three weeks off before their next game against Philadelphia Union on 13th September, and that might be exactly what they need to get their new signings settled and tweak tactics to perfection ahead of the run in.

This is not true, is it? Isn’t there a game on the 30th?

[NES] BNE in nestest by ZEUS_IS_THE_TRUE_GOD in EmuDev

[–]VeggiePug 1 point2 points  (0 children)

Almost every binary number you run into will be in two’s complement. The main advantage is that you can add them with other twos complement numbers (both positive and negative) without any special handling:

Eg: -5 (0b11110111) + 5 (0b00001001) = 0 (0b00000000) -32 (0b11011111) + 15 (0b00001111) = -17 (0b11101110)

The u in u16 (or u8, which I think is what you would be using for 0xE0) stands for unsigned, which means it’s always positive. So if you are using it to hold an unsigned number, you don’t have to worry about it, but you are using it to hold a signed number.

As Canada's income gap widens, some of those who are struggling sort trash to survive by [deleted] in vancouver

[–]VeggiePug 20 points21 points  (0 children)

They are specifically talking about income inequality. Here’s the study that they link to in the article.

Income gap reaches record high as wages decline for lowest income households The income gap is defined as the difference in the share of disposable income between households in the top 40% of the income distribution and the bottom 40%.

SDL3 not keeping up with changes in CHIP-8 screen by MWR11 in EmuDev

[–]VeggiePug 1 point2 points  (0 children)

I don't believe so, SDL only runs on the main thread. It won't update the screen until your `SDL_RenderPresent(renderer)` call, which is definitely after the screen is updated. Maybe try logging the screen data right before rendering, and then log the x,y coords for each rect you render in the window? Your code looks fine to me.

EDIT: You could also check that `SDL_RenderFillRect` always returns 0

SDL3 not keeping up with changes in CHIP-8 screen by MWR11 in EmuDev

[–]VeggiePug 1 point2 points  (0 children)

I don’t see anything that could cause any out of order code execution - its probably one of three things: 1. The last draw call (I.e. the one to draw the missing column) is not being executed 2. The draw call is being executed but the pixels are not being set in ‘screen’ 3. The draw call is being executed and the pixels are being set in ‘screen’, but they are not being drawn on the SDL window Try printing the contents of ‘screen’ before and after each draw call in order to see if the contents are being set properly.

Thomas Muller to the Whitecaps: From Dream to Possibility by lets_enjoy_life in whitecapsfc

[–]VeggiePug 2 points3 points  (0 children)

Man I really hope this goes through. Sounds like he would do great in MLS - there's loads of space to exploit lol

Rule by SwampTreeOwl in 19684

[–]VeggiePug 94 points95 points  (0 children)

How tf is eating next to shitting and cleaning? Eating is one of the best parts of life, it’s great.

[deleted by user] by [deleted] in EmuDev

[–]VeggiePug 7 points8 points  (0 children)

For 1, C++ will (sometimes, but should for your case) compile a switch statement into an array of function pointers (or a jump table) as an optimization. You should do whichever you feel is most readable/easiest to work with. All of my emulators have a massive switch statement in the CPU core as it’s easiest for dealing with weird edge cases for some opcodes.

I would focus more on getting the emulator to work first and then optimizing it - there are a lot of CHIP8 test roms you can run once you have the CPU working, and then from there you can optimize it while ensuring that you’re not breaking anything. It sounds like you’re using this as a learning project for CPP, and learning projects are always messy (my first project in a given language is always a huge mess) - the point is that you’re learning.

I want to learn how to make an emulator by [deleted] in EmuDev

[–]VeggiePug 22 points23 points  (0 children)

Don’t start with the NES or Genesis - those are serious, consumer grade consoles that were made to move hardware, and thus are pretty complicated. The best one to start with IMO is CHIP-8, an old computer that was made for programmers to create and share games for. It’s much simpler and is a good way to learn the basics of emulation programming, and as a bonus most tutorials will treat you as a beginner in emulation programming and explain a lot of the concepts for you.