I meant the pattern
Code:0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0020 0040 0000 0020 0040 0040 0020 0000 0040 0020 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
I find this around x4A190 in my code.bin extracted from my agbbg.xci. You suggested looking for this back on the 2nd or 3rd page.
Its "active" in the sense that I can see changes in game when I make small changes to the values, so it seems to be the right area. Someone else on 3rd page suggested instead editing what looks like an unused matrix right above this one, it avoided crashes but doesn't seem to do anything. (Guessing that is unused 1.25x scaling?)
Thanks for the obvious tip about treating these as fixed point decimals, makes these almost readable, maybe I will figure it out eventually.
Oh, I documented it?
Well then... in that case this is indeed the default 1.5x scale matrix AgbBg uses. Also good job on knowing the proper orientation of the matrix (it took me a while to get which way the hardware scans it)! The only problem is that you wrote it as Big Endian, but the 3DS is Little Endian, so 1234 would be 34 12 in HxD.
Each column represents a single output pixel. In the code there is also a "hidden" number which represents the number of input pixels as a list of yes/no because the hardware doesn't support non-integer pixel boundaries. For 1.5x it's hardcoded to 27 (not hex) in the binary (code), which is 110011 in binary (number format) (hardware reads this textual representation from right to left, aka. least significant bit to most significant bit). A few posts ago I explained how this works.
I also had problems with the hardware crashing. It turns out that I NEED the patcher, because using the HxD method can result in a corrupted binary for some unknown reason. After I switched to using the patcher, I was able to use even the most retarded scaling matrixes imaginable without crashing. There still seem to be some hardware quirks, but as long as you keep the very first matrix sane, you can do extremely stupid matrixes in the rest of the slots.
I just wanted to thank you guys for this achievement.
Which is your preferred filter to play with?
"Sono's sharp 1", which is integer scaling with the last two pixels interpolated into eachother. Looks horrible in 2D games, but almost unnoticable in 3D games.
Duuuude... how many nights have you stayed awake since you started this project?
I think I can speak in behalf of all community in this:
We love the progress you're making, it's rather impressive and something good for the community,
but you should always prioritize your health.
This lack of sleeping will cause fatigue, can drive you sick and will hinder you as a developer.
I can't remember how many times that as a developer, I made stupid coding mistakes because I was tired from not sleeping.
Linters help a lot, but there is always something, calling a function with the wrong name,
some wrong math, you know things that would be simple if I had rested properly.
I see someone posted it before, but Sono actually is sleep in portuguese haha
So do yourself a favor and get some sleep
Also thank you very much for your work, been playing Heartgold again and your filter brought new life to it.
I can't sleep more than 4hrs in this heat because I wake up super dry and cooking hot. Some days I can't sleep at all other than passing out for 1-2hrs a few times during the day. But whatever, better weather should come *eventually* (I hope), and then I'll be able to work with a sane sleep schedule. If weather forecast is right then 24C temperatures should come in 1-2days.
Last edited by Sono,