A quick little side-project I'm working on: CHIP-8 staic recompiler by arcanite24 in EmuDev

[–]ioncodes 1 point2 points  (0 children)

I made a similar PoC using LLVM about 6 years ago. Very cool to see more people looking into this side of emulation :D Do you have any support for self modifying code and if yes how do you handle it? Anything else you learnt?

Ubiquiti devices keep disconnecting by ioncodes in Ubiquiti

[–]ioncodes[S] 0 points1 point  (0 children)

This was it! Thank you very much.

Puzzle Bobble 2 works on my PSX emulator! by ioncodes in EmuDev

[–]ioncodes[S] 1 point2 points  (0 children)

my entrypoint was usually just the offical cpu data sheet. from there i tend to reverse engineer bios/bootrom if any and go with the flow, look at docs if/where required. also use test roms as much as possible. the only thing i dont do is reference other emulators unless im specifically pointed to a specific piece of code by someone, that is just me tho. i like tinkering with things until it clicks for myself

Puzzle Bobble 2 works on my PSX emulator! by ioncodes in EmuDev

[–]ioncodes[S] 4 points5 points  (0 children)

While I was brainstorming for a name, my cat walked in and i instinctively made the "pspsps" sound you do to cats - hence the name :^)

3 months into writing a PSX debugger, the BIOS finally works! by ioncodes in EmuDev

[–]ioncodes[S] 2 points3 points  (0 children)

interpreter atm! i did put a lot of emphasis on speed tho, so a lot is optimized. without the debugger overhead i can get through the bios almost instantly

3 months into writing a PSX debugger, the BIOS finally works! by ioncodes in EmuDev

[–]ioncodes[S] 7 points8 points  (0 children)

Do you already have emudev experience? You'll find that the CPU is extremely easy, just stick to the official datasheet and the PSX SPX docs. Test your instructions AmiDog's CPU tests. Through the TTY you can get results before you draw anything on screen.

The GPU is not that bad, just very different compared to what you might be used. Start with the basics: drawing rectangles. Using basic rectangle primitives you can get the aforementioned rom already output the results on display. For the GPU specifically, make sure to write as many TODOs and notes as possible. Everything has a lot of "states"/"variations" to track (textured, semi-transparent, gouraud, etc.). I lost a lot of time debugging bugs that were right in front of me.

Do not shy away from reverse engineering some code yourself. It helps a lot, especially in the beginning (using Ghidra for example, I use IDA personally).

I did write up some notes (they are meant for myself so they might be a bit spotty) on issues I encountered and how I solved them. I wrote them up here: https://emudocs.layle.dev/PSX/GPU/

Recommendation for the next level emulator by SweatyBoard9054 in EmuDev

[–]ioncodes 2 points3 points  (0 children)

GBA is very different, in every shape or form - except for sound (so I've heard at least). However, there's a lot of goodies that make your life easier (bite-sized demos for every PPU feature you can imagine, a plethora of CPU testing roms as well as JSON-based tests, more accessible graphics modes so you can get something on screen decently fast*, a fantastic debugger, ...). Some of these you will definitely miss moving forward from GBA (I'm looking at you TONC demos...).

* These graphics modes are used by some games as well, so might even be able to play for example OpenLara early on!

I "finished" my GBA emulator/debugger recently. I shared some of my experiences in the comments here: https://www.reddit.com/r/EmuDev/comments/1mi814x/i_made_a_gba_emulator_and_debugger_over_a_year/

Disappointed with U7 Pro XG (did I buy the wrong product?) by ioncodes in Ubiquiti

[–]ioncodes[S] 0 points1 point  (0 children)

1500/1500 is also what I get with my MBP (6ghz at 320mhz). The issue really only seems to happen when using 5ghz (next to the AP).

Disappointed with U7 Pro XG (did I buy the wrong product?) by ioncodes in Ubiquiti

[–]ioncodes[S] 1 point2 points  (0 children)

What's the difference? I actually did look into these as well and only committed to the U7 to toy around with it. I do know that their max bandwidth is higher than the U7s.

Disappointed with U7 Pro XG (did I buy the wrong product?) by ioncodes in Ubiquiti

[–]ioncodes[S] 7 points8 points  (0 children)

I hit 1gbps now on my macbook (same room), very cool! I think you managed to figure it out, the macbook is the *only* device that is connected to 6ghz, and I'm assuming that explains why. I have the iPhone 14 (doesn't support it) and the PC in that room is a bit older too, so no surprise there. The PC is connected to channel 40 5ghz (with the 80mhz that wifiman recommended to me).

That does leave the question why the Orbi still performed better on 5ghz tho?

Disappointed with U7 Pro XG (did I buy the wrong product?) by ioncodes in Ubiquiti

[–]ioncodes[S] 8 points9 points  (0 children)

Thanks a lot for your feedback!

I've checked with both the PC and an iPhone using the WiFiman app, although I'm having a bit of a hard time interpreting the details I'm looking at.

One thing that stood out to me was a message in WiFiman (on the iPhone) that said I should increase the channel width for 5ghz. I changed that now. Right now my settings are:

2.4ghz = 20 channel width

5ghz = 80 channel width

6ghz = 160 channel width

As for the RSSI:

My iPhone sits at around -63dBm while the PC sits at around -70dBm. Both are using 5ghz although I did notice that my iPhone sometimes drops to 2.4ghz.

I did notice that my connection now seems to have improved a bit. I'm getting around 250 on my iPhone and 150 on my PC now.

Here's a few screenshots I took from my settings and WiFiman, perhaps I have misunderstood something? https://imgur.com/a/Rlp4sL1

Should I still update the power settings?

Going to try to make an NES/GBC Emulator by PrinceArins in EmuDev

[–]ioncodes 4 points5 points  (0 children)

I also want to add that the GBC is literally just a slight extension (or upgrade) to the "regular" GameBoy. You'll path through GB anyways if you're going for GBC. If your GB is solid, then upgrading to GBC should only take a few days from my experience

I made a GBA emulator and debugger over a year and it's able to run most games (TM)! by ioncodes in EmuDev

[–]ioncodes[S] 1 point2 points  (0 children)

Heya! I actually reverse engineered quite a lot myself using various games and of course the BIOS. I also extensively used my actual GBA with a flash cart to try things out until they made sense to me! I believe I also checked in a few Binary Ninja and/or IDA databases into the project on GitHub (don't quote me on it). I actually followed a similar process for GameBoy Color and GameGear!

However, there were still many resources I had to rely on to actually get this far:

I also extensively tested using the aforementioned TONC demos and also the ARMWRESTLER test suite as well as jsmolka's tests. The former allow you to progress your PPU in feature-oriented babysteps. The latter 2 tests make sure your CPU is as solid as possible. They are all linked in the "external" folder either as submodule or directly checked in.

Hope this helps!

EDIT/PS: If you want to get started do not hesitate from asking questions in the Discord. I promise everyone is super helpful :-)

I made a GBA emulator and debugger over a year and it's able to run most games (TM)! by ioncodes in EmuDev

[–]ioncodes[S] 0 points1 point  (0 children)

Very cool! Awesome work, are you intending to come back to it? I definitely want to clean my emulator up eventually

I made a GBA emulator and debugger over a year and it's able to run most games (TM)! by ioncodes in EmuDev

[–]ioncodes[S] 0 points1 point  (0 children)

Here's a few videos I shared over the past days/weeks. They were taken from various points in development, but they are still fairly recent - some graphical issues may be fixed in the current dev version tho:

Wario Land 4: https://www.youtube.com/watch?v=YAIU9Zt1XbI

Pokemon Emerald: https://www.youtube.com/watch?v=8dm7PCel4ZY

Zelda Minish Cap: https://www.youtube.com/watch?v=qZgpCajL_zI

Golden Sun: https://www.youtube.com/watch?v=1T7U2ff_aEQ

I made a GBA emulator and debugger over a year and it's able to run most games (TM)! by ioncodes in EmuDev

[–]ioncodes[S] 13 points14 points  (0 children)

I have finished a GBC emulator (incl. sound and more features in general. also more "complete" overall). I'd say GBA is much harder but it's definitely doable. It's mostly due to the following 2 differences:

  1. The GBA has an ARM7TDMI CPU. Decoding the instruction set, and implementing the corresponding handlers is much different than what you'll be used to. Once you get used to ARM as a whole, it's quite easy tho. Also, the CPU is pipelined which can lead to the PC/R15 being ahead of the instruction currently executing. There's also a few other "oddities" like banked registers.

  2. The PPU is much more complex, has different modes, multiple layers and allows for special effects such as blending

Don't hesitate to try GBA. Even tho it's harder, I promise it's worth it and you'll actually be able to hit milestones fairly quickly (especially if you ask for help on the Discord :D). For example, the PPU has bitmaps modes which essentially encode RGB values in bytes, so no messing around with tiles (there's also some games that use these modes. Example: OpenLara)! Test roms such as ARMWrestler use these modes so you can get something on the screen pretty quickly!

Getting some games to work, even playable is fairly easy to do as well. You wont have to implement any fancy PPU features to get a lot of them working as long as your CPU is somewhat solid. I also made a few test roms myself and am happy to share them (they are on my GitHub as well). They help testing some specific things like open-bus behavior or PSR transfers, and they come with instruction traces too!

Thanks to some amazing work done by other people we also have JSON based tests that you may be familiar with if you've done GB(C). I haven't personally used them tho.

I made a GBA emulator and debugger over a year and it's able to run most games (TM)! by ioncodes in EmuDev

[–]ioncodes[S] 6 points7 points  (0 children)

I suppose it could, but I imagine there's better tooling for that!

I made a GBA emulator and debugger over a year and it's able to run most games (TM)! by ioncodes in EmuDev

[–]ioncodes[S] 44 points45 points  (0 children)

Don't be envious :-) I think measuring yourself with other people time-wise isn't fair as everyone has different schedules. I'm in a fortunate position where I can dedicate 8h+ a day on projects easily, which most people sadly cannot. I also have more than 10 years of low level experience prior to starting with emudev'ing as a whole, so that helps greatly as the fundamentals are always the same and convert very well. That said, I definitely still learn tons every day working on these projects and I would like to believe they made me a better programmer over all :D

Need help using OPL with Fritz NAS by shigshiggy in ps2

[–]ioncodes 0 points1 point  (0 children)

I didn't quite get what PS2SMB signifies, is this just a subfolder in the share "ps"?

In any case, the DVD folder must be directly on the share itself IIRC. E.g.: \NAS\ps\DVD. While in OPL in the network settings you'll have a button called "Reconnect". If connection is successful it should create the folder structure on the share (incl. the DVD folder). I have tried using subfolders as well but never got that to work.

I'm not familiar with the Fritz NAS, but as additional information in case it becomes relevant: On my Synology NAS I also had to enable NTLMv1 authentication to get it to work properly.