The Lord of King 🇧🇷 retweeted
#PR store.steampowered.com/app/4…
現在半額セールを実施中です。11月12日までですので、この機会にぜひお買い求めください。
Our 52% off sale is on now through November 12. Don't miss your chance to get it!
The Lord of King 🇧🇷 retweeted
Sexier zoomer thing, I found and removed a divide instruction in the hot loop and changed the memory layout.
Not close to the speed of the effect used in some commercial megadrive games, but i'm reasonably happy with it.
The Lord of King 🇧🇷 retweeted
So basically, today PHP got two critical bugs that let anyone run code on your server without even logging in, which is bad, and then the details leaked before the patch was even out, which is worse, and it works on WordPress and MediaWiki and Magento and Joomla and Laravel, and Censys says like 1.5 million servers are running a version with no fix, so the NSA was like "take your system offline," and the FBI was like "take your system offline," and CISA and the UK and CERT-EU were all like "take your system offline," and then the Prime Minister of Japan, the actual Prime Minister, posted at 5:55 in the morning telling 48.8 million people to take their system offline, so everyone took their system offline, like the Dutch cybersecurity agency took its own website offline, and the Dutch parliament went offline, and the Port of Rotterdam went offline, and Finland and France and Denmark started pulling government sites, and Wikipedia went down, and Archive.org went down, and Asana and GOG and Something Awful went down, and the University of Vienna's webmail went down for some reason, and that's just PHP. Because GitLab also dropped a CVSS 10.0, which is the highest score they give out, for a bug that's been there since 2014, so that's every self-hosted GitLab for twelve years, and then LiteLLM 1.107.0 got hijacked and shipped a credential stealer and a remote access trojan in every single wheel and the Docker images, including latest, and you didn't even have to import it, just installing it was enough, and it's the second time this year, and then Railway paused every deployment on the entire platform because someone got into the environment variables, so now everyone has to rotate every secret they've ever stored there, and TiDB Cloud said someone was walking around inside with stolen credentials for basically a month and an extortion group says they took 10.6 terabytes, and Zeabur got breached for the second time in two months and is just shutting down, like the whole company, and Node.js patched remote code execution and a TLS bypass, and CISA says Plex is being actively exploited, and someone took over 300 Tor exit relays to steal SSH passwords, and SafePay ransomware has hit over 600 critical infrastructure orgs, and India's biggest bank filed a data loss incident, and Japan has been in an official state of emergency in cyberspace since October 9, which honestly explains the 5:55 AM post. Oh, and eMudhra, a certificate authority that's issued over 60 million certificates, whose entire job is proving websites are who they say they are, was supposed to be using private keys that are random numbers over a hundred digits long, and one of them was 4. Just 4. And the others were like 66 and 237. Anyway, it's Wednesday.
The Lord of King 🇧🇷 retweeted
#PCエンジン #pcengine #tg16 #retrogaming #rondo #draculax #castlevania #retrodev
Time to show some progress on this PC-Engine Dracula-X demo that has been over a year now in coding development. The fire effect and most of the foreground sprites were done a while ago. All these little things to make it feel like a game now, and not just a graphics demo.. way too much time. It's the little things that are time sinks. This still isn't the final version - need some more polishing.
I ended up doing more than I had originally planned.. and having more detail and things that were originally not calculated for. Yes, this is a PC-Engine.. no graphic chips or SuperGrafx here. But I did end up using more LUTs for the added detail, and expanded beyond my memory budget (512k CD RAM). I'm converting it over to Arcade Card for the required memory budget and to just make things a lot easier on me hahah.
Some interesting things here; the translucent fire layer and house layer take up the LEAST amount of CPU resource here. To the point where I would have so much cpu resource left, that I wouldn't know what else to do with it. But see that large wall section with the stairs? THAT part eats up soo much CPU resource. Part of that is my own fault because I wanted more detail than I had planned for that part (and I made the sin-wave effect more aggressive than it was supposed to be). You see how the background has all that sin-wave effects? The foreground in that large wall section.. is dynamically counter acting every single offset! I'm not gonna lie.. the idea is a little crazy. I'll post a video showing the tilemap section in a reply. On average, the cpu cost is like 55%.. but heavy areas like this average 70%.. and heavy spikes as much as 90% cpu usage! But it's still a rock solid 60fps.
Anyway.. this has been what.. 16 years in the making? I designed and spec'd everything you pretty much see here back in 2010. All the number crunching, total costs, design, effects.. everything you basically see here, I had already figured out back then. That's how I work.. without writing a single line of code.. I design the graphic effects and cpu costs all upfront. From there, it was just a matter of coding it up (the boring part haha).
Feels good to have it in a playable state. A proof-of-concept on paper.. to a proof-of-concept in action. 3 layers of parallax, translucency, and 60fps on a 1987 "8bit" console. Not bad.
FYI: If this was on the SuperGrafx.. this would be a cake-walk. By far. Maybe I'll do an upgraded SGX version too.
The Lord of King 🇧🇷 retweeted
Sorry for a somewhat long text, but I need to reiterate my anti-AI stance once again...
The Lord of King 🇧🇷 retweeted
Replying to @_9327201525691 @hena_R9
Yeah, PCE has three pixel resolutions; 5.37mhz, 7.16mhz, and 10.74mhz. Those are three pixels sizes. In combination with those, you can define how many pixels are active on a line - by units of 8 pixels. And finally, you can define how many lines a screen will have (up to 242 can be visible) - in units of 1 scanline. R-Type (JP) use 7.16mhz pixel dot clock and 352 active pixels on a line (out of the total 455 pixels - that includes hblank). 7.16mhz is ~139ns ram access. The vram memory on the PCE is 120ns, so it's faster. What the US version of R-Type does, is put a wait state on vram.. meaning it forces the VDC access vram twice as slow at 278ns.
How that affects sprites; all sprite pixels needed for showing on the line are fetched entirely in hblank. In terms of dot clocks.. to fetch all sixteen 16 pixel wide cells, it takes 4 pixel dot clocks (all measurements/timing can be represented in pixel dot clocks) per 4bit 16 pixel wide sell. So you need a total of 64 dot clock pixels to fetch all cells. In JP R-Type, 455-352 = 103 pixels of hblank. That's more than enough. Of course, some of those dot clocks in hblank need to be setting up the line.. so you can't use all of it for sprite pixel fetching. But what happens when you put vram into 1 wait state? Vram access now becomes twice as long.. so 64 dot clocks to fetch all sprites now becomes 128 dot clocks. To give it more room, if you run that setup, you need to give it more hblank time.
So the US version reduced the line down to 336 pixels active.. but that's still not enough; 455 - 336 = 119 dot clocks. You would need to drop down to 304 pixels wide to fetch all of them. 455-304 = 152 dot clocks.. and you need around ~20 more for the line prep stuffs. 336 dot clocks is not enough time.. it needs 32 more. And since vram is now running double slow, that means every 8 dot clocks to fetch a full 4bit cell.. so it 32/8 = 4 sprite cells are dropped. That means you can only have 12 sprite cells per line.. not the full 16.
AND on top of ALL of this, you need to "cull" sprites. That means removing sprites from SAT (sprite table) when they are off screen, because they get included in that cell count for the line! But the US Hucard, and the JP CD version, never bothered to fix the culling.. they assume the visible part of the screen is still the original 352 pixels wide. So on top of the reduced sprite cells per line, you also have off screen sprites (on the right-hand side) potentially causing even more drop out! Other IREM games that came to the US, like Ninja Spirit and others, don't have this vram wait state enabled.. only R-Type.
The Lord of King 🇧🇷 retweeted
ひとまずバランス調整とバグ取りも終わったので、10月11日の #MI68 用バージョンはこれにて完成とします! これ以上いじると危ないので💦 敵を皆殺しにする脳筋プレイでも、謎解きで迷わなければ20分以内には何とかクリアできる感じです💪
#Argophonia(アルゴフォニア) #MZ1500
The Lord of King 🇧🇷 retweeted
Fabian been playing with scalers on MegaDrive with some great results !, I almost feel sorry for him as I know what has now begun .. its a deep rabbit hole this one haha .. be careful brother 😉
MD / Genesis cannot do scaling they say... well.. 60fps at left and 30fps at right. Maybe Art of Fighting for MD @RheoGamer ? 😁✌️
The Lord of King 🇧🇷 retweeted
1982年発売の8ビットPC「MZ-1500」……その新作RPG 『#Argophonia(アルゴフォニア)』を現在制作中です! 最近は体験版配布に向けて面白みのない地味な作業を続けています😇
10月11日のMI68、31日のゲムダン14では実機を試遊できますので、お時間があればぜひ✨
#RPG制作デー #ゲーム制作
The Lord of King 🇧🇷 retweeted
Saiu na Folha @folha

ALT Tira de Laerte, em 4 quadrinhos. 1) Homem, mulher e criança correm e entram por uma porta blindada, que dá para um lugar subterrâeno. Texto: “QUANDO O MOMENTO CHEGOU” 2) Homem, mulher e criança sentados numa sala pequena, olhando uma tela de TV, cercados por prateleiras atulhadas de latas e pacotes. Texto: “FOMOS PARA O ABRIGO” 3) Mesma cena, mas o homem e a mulher estão velhos, com cabelos brancos, o homem com longas barbas brancas. A criança é um homem adulto, ainda sentado no colo da mãe. As roupas são as mesmas, agora gastas e rasgadas. As prateleiras estão quase vazias. Texto: “AGUARDAMOS 45 ANOS” 4) Homem velho, mulher velha e homem adulto saem pela porta blindada. Texto: “E PRONTO.”
The Lord of King 🇧🇷 retweeted
#PCエンジン #pcengine #tg16 #retrodev #retrogaming #shmup #bullethell
I very much like shumps/STG/shooters, but I'm not into bullet-hell ones. They just never clicked with me. And from the dev side of things, the PCE/SGX doesn't have hundreds of sprites - at least, not natively so it wasn't really an interest for me on that side either.
But a while back
@upsilandre
had a video showing collisions for the 2nd ship level/boss in R-Type for PCE. And how it got up to around 400-700 total collision checks. I mean, it slowed down but I thought that was kind of impressive for an early title.
So I figured.. just from the CPU side of things, how many collision check can the PCE do? I had a pretty good idea but never put it to the test. So, time to do it.
Now, I knew of some of the tricks used BITD for bullet-hell shmups/STGs. Or, at least I have heard some. Single points for bullets (instead of boxes).. and grids, etc. Everyone always talks about collision detection like it's the most taxing thing.. but "transforms" cost more! Still, I read that early Cave shooters like DoDonPachi actually cheat (because the bullets move slowly, they split the collision check for the bullets down the middle across two frames). And I do know of some console games that also cheat like this.
No cheating here. Just smart code and pure cpu grunt. What you're looking at here in these videos is 800 bullets, 1 player ship, 32 enemies, and 16 player shots. That's 1344 total collision checks. No grid system here. And that's also 800 8.8 fixed-point delta transform movements on X/Y positions, object culling at the edge of the screen.. and object spawning. The cpu handles all the collision, and all the objects, and all the transforms for the objects. The only thing here, because the original PCE VDC can't show 849 sprite objects - I have a LUA script in Mesen emulator drawing the bullets - it reads out the SAT the CPU creates. The bullets are about 5x5 in size, but they are single point collision boxes.
So, the PCE cpu is doing ALL of that, and handling the 1000 entry wide SAT in ram, at ~62% cpu resource. Read that again.. it's only taking 62% cpu resource for the entire logic. And.. no grid system here. Every object is checked.
You might be asking.. how is that even possible? One of the oldest tricks in the 65x arch.. LUTs. LUTs are extremely fast on the 65x arch. They are in fact one of the magic elixirs of the design. Here, I use no comparison instruction for the collision check. I use the bullet X position as an index into the player's position that is an array of 0's and 1's. LDY bull_x,x; LDA p_x,y; Beq xx. That's it's. No 4-point check either; only two checks.. X and Y, with an early opt out after failing X. Early exit on X.. is 14 cycles. And with this, I can unroll this too (it's unrolled to 32 in this video).
Looking at the video: the grey bars represent the X LUT and Y LUT or arrays for the player position as well as the width/height of the player 4-point collision box. The player is the red square, and the boxes next to it are when a full bullet collision happens (I didn't bother showing anything for the other collisions). The white cross-hairs are player shots, and yellow boxes are enemies. Player shots and enemies are still 4-point checks here.
To put that into perspective, DoDonPachi doesn't even put close to 800 bullets on screen.. and divides the collision up across two frames (and still uses point collision to speed things up). This 800 bullets, 1344 collision checks, 850 full object transforms (with fixed point movement), culling, spawing,etc.. all done in a single frame.. at 62% cpu resource. On an 8bit processor.
"[PC-Engine] nice colors.. but it only had an 8bit processor" - You know.. some 8bits just hit different😅
Anyway, that was a fun exercise. Unless you put a special VDC on the back of a PCE.. you're not going to see these 800 bullets hahah. But hey, the CPU can handle it.
Also, and no - grid'ing won't help here. Grid'ing isn't free, but that's not even the issue. The cost of collision detection on 800 bullets against the player is slightly less than 10% cpu resource (out of that 62%). The biggest cost are transforms and handling logic of those objects. Which was also kind of the point of this test (to show that - to put a figure to it). The one optimization I did here, was that when I go to do the transform on the bullet object, I also do the collision check against the player. It shaved like 5-8% cpu resource off the top.
::Just to note:: I did not use AI for this (the idea or design). It's not a good fit at this kind of stuff, and you don't need it for this either. This is just taking existing ideas that have been out there forever and adding a couple of tweaks.
The Lord of King 🇧🇷 retweeted
Toda vez que vc ver alguém reclamando das pessoas usando PSP pra ouvir música, lembre-se dessa foto:
Esse é Akira Tanaka, literalmente o responsável por mais de 25 modelos de Walkman e desenvolvedor principal do mecanismo de UMD do PSP.
Façam o que quiserem com seus consoles.
The Lord of King 🇧🇷 retweeted
ああああ、懐かしい。あるある
折角なので「PS1時代のハードウェアで、レースゲーム描画していた古の技術」を書いてみましょう
RT元の原因は、シザリングとパースペクティブコレクトに対応していないからです
この動画だと、透視投影結果で負のZ値(カメラより手前に来てしまった頂点)を0にclampしているのでしょう。エンジン制作時のテスト挙動としてよく入れます
PS1/PS2とかの時代は、こういう工夫がありました
判りやすく言うと、画面奥からカメラに向かって、長く、更にカメラの後ろまで伸びている様なポリゴンは描画出来なかったんです。変な値になって画面が壊れてしまう
「シザリング」は、そういうポリゴンを文字通り「リアルタイムにハサミで切り取る」事で描画の整合性を保ちます
パースペクティブコレクトは少し目的が違いますが、3D空間を透視変換した単純な座標と、ラスタライザーとの不一致を解消するため(要するに変な歪みを無くすため)、w値という数値の逆数(1-w)で割り算して綺麗にします
こういう事情があった時代ですので、特にPS1リッジレーサーなどのレースゲームは作るのが大変でした
ゲーム中に飛び込んでくるのは、時速何百キロで迫るレースの舞台となるサーキットのポリゴンです。普通に空間をモデリングしてしまうと、上記の「カメラを突き抜けるポリゴン」が流星の様に毎秒飛び込んでくるからです
当時のエンジニアは知恵を絞りました
コースのポリゴンを、視線から見て横方向に区切り、短冊状にしたのです
横に長い短冊の様なポリゴンを、視線方向に何十枚も重ねたのです
こうすることで、カメラの後ろへ突き抜ける路面ポリゴンを殆どなくし、あっても目立たなくなったのです
昔は大変だったんですよホントに
↓こんな感じに、コースのポリゴンを横長短冊状にします
Can someone explain this mystery ? The more I get close to the floor, the weirder the polygons get,I use
RotMatrix_gte(&rotation, &mat);
ApplyMatrixLV(&mat, &position, &vec);
TransMatrix(&mat, &vec);
gte_SetRotMatrix(&mat);
gte_SetTransMatrix(&mat);
then gte_ldv3/gte_rtpt #psxdev
The Lord of King 🇧🇷 retweeted
We can go ahead and say that VESPERTINO WORLD RACING, despite the graphical limitations typical of a CPC, will offer a more realistic driving experience than the LOTUS series on the Amiga (as a benchmark for 16-bit racing games), and will feature smoother animation frames. +
The Lord of King 🇧🇷 retweeted
#PCエンジン #pcengine #turbografx #tg16 #retrodev
I hooked up a logic analyzer to the expansion port of the PCE, and captured the digital pixel bus, vsync, hsync, pixel dot clock, etc. I was writing test roms for RE'ing stuff. Just to note, these Vsync and Hsync signals are the ones that drive the VDC for syncing it.. not the external sync signals (composite sync). They are sent from the VCE tho.
The cool thing is, if you know the color table contents, you can re-construct a visual image from the collected data. Here's an example Bonk demo. Not only the visual pixels, but I can overlay the hsync and vsync signals, and VDC interrupts.. in exact phase to the pixels being rendered. A lot like the Event viewer in Mesen emulator/debugger. So the yellow pixels are the VDC vector reads for the cpu interrupts. Basically, those are line interrupts and you can see when they're firing and the moment the cpu acts on them.
And because there is a BG/SPRITE bit on the digital pixel bus, I can also separate BG pixels from Sprite pixels. Better than a capture card hahah. I can overlay whatever signals I want too - given I have enough pins on the logic analyzer.


































