• 0 Posts
  • 103 Comments
Joined 1 year ago
cake
Cake day: July 23rd, 2025

help-circle
  • I agree it’s a hell of a coincidence, but also a hell of a long game and they were both EEs.

    Rough timeline:

    • 1984 Huang graduates and starts working at AMD
    • 1985 ATI founded
    • 1986-1993 Huang bounces between grad school and other tech companies
    • 1993 Huang founds NVidia
    • 1994-2012 Su graduates and starts at Texas Instruments, goes on to other companies
    • 2006 AMD buys ATI
    • 2012 Su joins AMD
    • 2014 Su becomes CEO of AMD

    Back in 2012, both companies were not that significant. Very different from today. Like Intel was worth roughly 8x NVidia and AMD combined.

    So did AMD, 6 years after buying NVidia’s biggest rival, intend to hire Huang’s relative to form a GPU cartel? Maybe. There’s plenty of other scenarios where it seems more obvious that things were done because of family connections. I wouldn’t be surprised if it came out that was the case, but I’m on the coincidence side (for now).


  • Lee@retrolemmy.comtoGames@lemmy.world•Rayman Legends - Question
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    4 days ago

    There were old games for 2D sprite based consoles that had a 3D look (and maybe Rayman did this technique too). Donkey Kong Country (SNES) is a good example (there were others though). Donkey Kong Country is a 2D game, but it looks like 3D models (consider its age). They (and other games) were done by way of actually creating 3D models and rendering them to 2D and then creating sprites out of the renders. If you wanted to go that route, you’d have to create the 3D models and animations anyway, so to save steps and extra effort, I’d probably just stick to a 3D engine unless you want to impose the additional challenge of 2D. If your target is a modern platform, it’s probably not worth actually doing 2D.

    AFAIK Rayman was always on 3D capable systems, but I’m actually not 100% sure. I mean the original release was on hardware capable of 3D rendering (Playstation), but I never played that version and idk if it was using 3D rendering, but just restricting camera and movement to the style of a 2D platformer, or if it is actually 2D. I think the earliest version I played was Dreamcast and it’s been a while. A few months ago I was playing the PC versions of Rayman. Whether it’s truly a 2D render or 3D, it’s beautiful either way and you have choices (depending on your target platform): 3D with camera/player movement restricted to 2D, 3D models rendered to 2D sprites/animations, create 2D art assets and stay in 2D.

    A hobby of mine is writing code for old (sprite/tile based) game systems. I’ve never completed a game or released one, so idk if I count as a indie game developer, but I can probably answer some questions as it pertains to traditional sprite based hardware and limitations, but I suspect what you actually are interested in is making a game for a modern game console (or computer) using 3D game engine to make a 2D style platformer. There’s also modern 2D game engines as well if you actually wanted to restrict yourself to 2D, but if you want 3D look, you’ll probably want to just do 3D.

    If you actually want to make a game for an old sprite based hardware and want to collaborate, I’d be interested in talking with you. In this case the challenge of working with 2D sprites is out of necessity due to hardware limitations.

    EDIT: I did some reading and it seems like at least some of the Rayman games were hand drawn, so they really were 2D assets.


  • Circuit breakers are not one time use like fuses. You can think of them as reusable fuses. An in device fuse only protects if the fault is in the device. If you were to put metal in the outlet, to stop current, you need a fuse in the outlet or somewhere else between the outlet and makns, which is what US has. Circuit breakers are typically 20A (or 15A) and multiple outlets are connected to the same circuit breaker.



  • I’m having trouble finding the exact details of the problem, but http was supposed to be fine because it does a signature check of the package (that’s what the apt keys are for), meaning even if someone were to MITM you, the signature check would fail.

    If I’m understanding the Debian security announcement correctly, it says there’s a way a redirect can cause a package to replace another. I don’t understand why this in itself is a problem unless it’s also bypassing the signature check (which I’d expect to happen as part of the installation process and after download completion, not prior to download completion), but in that case it seems to me the heart of the bug isn’t using http as http allowing MITM and manipulations is a given. The actual issue is bypassing the signature check, but I’ve not seen any articles explain that.

    EDIT: now that I think about it, you can just download .deb outside of apt and install without a key, so maybe it isn’t checked as part of install and only download, but that would still mean that the root problem itself isn’t on the http/redirect side, it’s the bypassing of the signature check. I want to look in to how apt functions more deeply.

    EDIT: I think I got it. If you download 2 packages (A and B) as part of a single apt run, package A completes and passes signature check, package B gets a redirect such that it effectively gets renamed to A, when B completes, the signature check is not rerun on the file name of A, but what B should have been. A is replaced with a file that hasn’t passed signature check and gets installed without a further check. I’m not suoer confident, but this is my interpretation of the Debian security announcement. This does out the problem more in the handling of http redirects because it’s not updating the file name that’s used for the sig check. I think I need to look at the code to be sure.


  • I’ve also not had great luck with MOTU devices (624, 8pre-es). Granted AFAIK, they’re still not supported in mainline kernel, but I found a few kernel modules on github. Those kernel modules work in that the audio interfaces are detected and I can play audio, but after a couple mins (sometimes immediately), it sounds like I’m getting buffer under runs even if I max out my buffers. If I disconnect and reconnect the devices it will sometimes work for another few mins. They work perfectly on windows. My preferred DAW is also windows only, but I can run a windows VM and do USB pass through on the either of the audio interfaces (other is connected via AVB), and it works great. So this is how I do audio, but this also means I’m using onboard audio for everything except the windows VM.


  • Ok, but you listed a tool outside of the editor (grep). In this game, you dont get access to tools outside of the editor except a very limited “test” command.

    You are 100% correct that it is possible to write code with only a plain text editor. It’s how I got started. Pico + man pages (vi didn’t make sense and I couldn’t exit it anyway so avoided it for a while), but even with “just a plain text editor” I still had access to other tools like a compiler and its output, etc,m but we’re not talking about programming on a normal system here. It’s a game inside which you type code as part of playing the game.

    If you look up screen shots for the game, you’ll see what looks like a shell, but it only has a very small number of commands, so you don’t have the tools you would normally have outside of the text editor (like grep). Can you search multiple files in the game? Yes, switch the editor between each file one by one (it has tabs) and search. Would a better in game editor improve that experience? I’d say yes. On a normal system you could get around edutor linitations by using tools outside the editor like grep. This isn’t a normal system. It’s a fake computer inside of a game and you don’t get the typical tools outside of the in game code editor.

    There may be some tricks that a JS developer would know to use inside the game, but I’m not a JS developer. That also means i need to look up JS standard functions and syntax outside of the game. Having it in game would be a better experience for me but not a requirement. I got pretty far in the game. I’ll probably go back to it as newer ADHD obsessions allow.





  • I think you should look in to MIPI from a hardware protocol perspective before committing to that route. The issue isn’t the physical connector, but the complexity of the protocol. I found some open MIPI cores. idk if you’re allowed to use open cores, but if they fit in your FPGA (with whatever other logic you need for your CPU and glue logic), then that may work, but if I were a student I’d probably be looking for a simpler interface where I can have the FPGA control the flow of data (like request 1 row of pixels at a time given the memory constraints).


  • Outputting to VGA with an FPGA is fairly easy, but depending on what you mean by “image processing”, this may be too big of a project given you’re the only hardware engineer or maybe all you mean is to take the video input and output it to VGA without any further processing. You did mention wishbone, so I guess if you’re planning to reuse a bunch of Open Cores, that could simplify some things.

    How much RAM do you have on your dev board? How long of a video do you want to do?

    USB2 is fast enough for uncompressed 640x480 @ 24 fps @ 24bit color: 640 * 480 * 24 * 24 = ~177Mbit/s (plus misc overhead) USB isn’t so bad to get working on an FPGA dev board (I didn’t see you mention which you’re using) as it probably has a transceiver chip already along with drivers available. Even if not, you could add a cheap USB interface chip (FTDI makes some popular ones, but there’s many others like CP2102, etc). I’d not try to do more modern USB (3+) as it’s not needed, but also higher speeds bring more problems. I’d actually try lower quality video (lower res, framerate, and not 24bit color). As you increase the amount of data you need to transfer, you have more potential for issues related to buffering the video (and the extra memory required) or timing requirements (ensuring the video is arriving by the time it needs to, but not too much before).

    If I’m understanding your main concern, it’s how to get the video data in to your hardware? Generally:

    • camera module (that outputs uncompressed image/pixel data, idk how difficult these are to get running, drivers often abstract a lot of complexity)
    • video stored on memory chip like an eeprom (may be impractical given size)
    • storage device like SD, compact flash, or even an IDE hard drive (idk how difficult SATA is to work with). if you go this route, I recommend avoiding file systems.
    • stream over USB2 from a laptop (whether it’s pre recorded file, built in camera, some USB camera or capture device kind of doesn’t matter from your hardware perspective)

    Other communication interfaces (like ethernet) are probably going to be a lot more effort although I’ve seen a serial to ethernet interface that worked similarly to those UART <-> USB chips. idk cost or how easy they are to use though.

    EDIT: I see dev board is Basys 3 (I didn’t realize that’s what that was, I thought that was a camera). With only 1.8Mbits of memory, you’re going to need to add memory (could be complicated), drastically reduce video quality and/or have some pretty strict timing requirements for the image data entering your hardware and maybe a camera module is the way to go at that point (vs USB from laptop, but I’m thinking flash memory like SD card is going to be more practical). You had mentioned designing a CPU, so I assume you intend to run software on this, which is also going to need to use memory. Depending on what that software wants to do, adding more memory may be a hard requirement. If you’re just taking the video and outputting to VGA, you wouldn’t even need the CPU and could probably get it to work without extra memory, but without being able to buffer much video data, you still have to ensure your video input meets timing requirements and I’m leaning away from streaming from a laptop due to that I thought you’d be able to buffer more data.

    Also this dev board only does 12bit VGA output, so you can reduce your video color bit depth, which will help some.




  • I assume admin/moderation issues are a given, so uptime/reliability. I don’t have issue with my instance, but I see a lot of image posts on another instance that I want to view and they regularly don’t load until I try again much later (even opening the URL of the original instance in a browser doesn’t load, so I don’t think it’s a federation issue/issue with my instance). I don’t want to name the other instance as I don’t like to bad mouth what are almost certainly volunteers, but I do wonder why people haven’t abandoned posting images to it due to reliability. Maybe the posters aren’t aware.



    1. Why not both? Packaging multiple releases, documenting, and support is lessened with a single release. Officially supporting more ways to install is extra time and effort that is considerably worse with PHP than applications written in most (maybe all?) other popular languages due to the variety of ways people can configure PHP and how the web server executes it is huge and trying to support all of that is considerable. Even if you just narrow down to a single http server, there’s a lot of variations just how the http server executes the scripts and that’s ignoring the PHP/PHP extension level differences. I can’t think of any popular languages that are worse or even in the same ballpark as PHP on execution environment inconsistencies.

    2. The existence of the docker release doesn’t prevent you from running it outside of docker and the Dockerfile/image serves as a reference implementation. It provides you the exact steps and working configuration to deploy it outside of docker.

    Consider a PHP application with install instructions, you follow them and it doesn’t work due to some non obvious configuration difference. With the docker image you have a reference of what should work and can use that to narrow down what is different between your PHP install/configuration and a working system.

    If you’ve not run in to these kinds of situations, consider yourself lucky. It was a nightmare back in early 7.x releases and older.


  • Years ago I’d have one PHP app that required version X of PHP and another that required version Y and my distro often only had one of them (or you couldn’t install both simultaneously), so I’d have to either compile myself (or later use a 3rd party repo). All solvable of course, but then throw in MySQL version requirements and PHP extensions and it’s just extra crap that containers just take care of for you. I’ve had this kind of inter app requirements conflicts with stuff other than PHP, but I’ve had by far more of it with PHP. For a while I used FreeBSD jails to help, but jails was kind of a pain. I enthusiastically embraced docker for PHP stuff early on.

    A benefit for application developers, particularly PHP is there’s a lot of differences between distros and how people install and configure PHP. Even like which PHP extensions are available and their settings. Other languages things tend to be more consistent at the system level and customizations are app are usually application level (contrast with PHP extensions and system level configurations). It really helps reduce support issues due to distro/user differences if a developer just provides a working dockerfile as a reference implementation and in my experience this is far more likely with PHP than other languages. I realize this is mostly applicable outside of PHP, but I actually personally see more benefit with PHP based on my past experiences.



  • While most (maybe all?) TVs actively prevent this, there have ben security flaws that allow you to gain root and go from there. A few years ago I saw my TV+firmware combo was rootable, but newer firmwares patch it. My point is that while you probably can’t just install on your TV model, there may be a security flaw that allows for root access that can be used. It’s also possible that it’s not rootable now, but someone will find a way to jail break in the future. No one can really offer specific guidance without knowing the model and firmware version as whether it’s possible is most likley going to depend on both.

    Example of one that worked for my TV (and other older LGs): https://github.com/throwaway96/dejavuln-autoroot It worked by exploiting a bug in the LG media player (I don’t know more specifics).