![]() |
![]() |
#2921 |
Registered User
Join Date: Aug 2013
Location: Marseille / France
Posts: 971
|
|
![]() |
![]() |
#2922 |
Registered User
Join Date: Nov 2014
Location: Netherlands
Posts: 259
|
@earok yes if more people would report this issue then it would be easier to find the cause. But removing features indeed isn’t an option. So we probably just need to live with it.
![]() Edit: it could still be something else causing it and not scorpion. It’s just that I’ve seen two cases in one week; one here on the forum and a yt video of boxx4 with sound stutter (which I can’t find anymore). Last edited by Lemming880; 25 May 2023 at 15:14. |
![]() |
![]() |
#2923 |
Registered User
Join Date: Apr 2019
Location: UK
Posts: 257
|
Not sure if I've mentioned this before but I noticed player on a moving platform doesn't change the isOnPlatform value (it's same as if still jumping/falling), so if you have a player that can switch to a crouch/crawl but only if on platform you can't using that variable.
I can work around by triggering a variable in animation state to allow crouching on moving platform, but thought I'd mention in case it was an oversight. In future for Mega Drive could we have the option to offset a block by 8 pixels on the X (so a block could be centered between two tiles), alternatively a non movable sprite that acts like a solid? |
![]() |
![]() |
#2924 | |
Registered User
Join Date: Jan 2023
Location: Toronto
Posts: 176
|
Quote:
|
|
![]() |
![]() |
#2925 |
Registered User
Join Date: Dec 2013
Location: Auckland
Posts: 3,454
|
@lionagony it's no worries at all! I'm definitely a little relieved to hear it's not just Scorpion games in that case.
@ultranarwhall it should be set to the value of 2 "IsOnPlatform_PlatformActor" whenever it's standing on a moving platform, but it's admittedly not well tested. Can you give me a demo to investigate? In regards to having the block offset by 8 pixels on X, I'm not really sure I could do that - the internal logic of Scorpion is designed around a 16x16 grid (including using hardcoded bitshifts by 4 to convert between pixel and tile coordinates). What's the idea that you had in mind? -- Latest check in is sponsored by BitBeamCannon, and is the major Mega Drive update for the month. 8 pixel tall parallax slices are now working in engine and editor. Rather than using a spreadsheet as per the Amiga OCS system, it's all in editor. (At some stage, I do intend to replace the spreadsheet editing with something entirely editor based). As an aside, there was also some improvements to foreground handling on Mega Drive - blank tiles on the foreground don't override the priority bit of solid tiles on the background, and also it's possible for 8x8 portions to be on the foreground rather than just entire 16x16 tiles. |
![]() |
![]() |
#2926 | |
Registered User
Join Date: Apr 2019
Location: UK
Posts: 257
|
Quote:
Block offset was so item blocks aligned nicely if I used even ramps/spike pits/etc tiles. (I'm not working on a Mario game, just example graphics) I'll stick to using an offset platform sprite. |
|
![]() |
![]() |
#2927 | |
Registered User
Join Date: Dec 2013
Location: Auckland
Posts: 3,454
|
Quote:
--- Latest update: Mega Drive: * Sprite streaming is a little smarter. It'll fill the entire VDP before looping back around to the top of the VDP, in order to reduce "single buffer" glitches where a sprite is drawn while the patterns are still being loaded. There's still some improvements left to be done here to make sprites truly "double buffered". * The side effect of the above is that it's also less likely that having too many streamed sprites on screen will corrupt scrolling and sprite position data. Universal: * Compiler is a little more strict, if a goto or gosub operation references a missing label, it'll refuse to compile. Edit: Also checked in an emergency fix for Master Linkeui, fixing issue where sprite streaming would corrupt the patterns used by the panels and parallax Last edited by earok; 26 May 2023 at 01:59. |
|
![]() |
![]() |
#2928 |
Registered User
Join Date: Dec 2013
Location: Auckland
Posts: 3,454
|
Latest check in is some work on some Mega Drive related issues:
The sprite system has been extensively reworked so it is effectively double buffered, and should be a lot less likely to show glitches - it's also a little more intelligent with not reloading patterns already in the buffer. It still seems to be showing some glitches for a fraction of a second if there's a lot going on but I haven't really been able to nail down why, but I figure I should be able to fully fix that on a future update. Fix for bug reported by BitBeamCannon, the palette on some PNG files weren't being parsed correctly (this was a bug I had previously fixed for Panels on Amiga, had forgotten to do so for Panels on Mega Drive) |
![]() |
![]() |
#2929 |
Registered User
Join Date: Dec 2013
Location: Auckland
Posts: 3,454
|
Latest experimental in sponsored by BitBeamCannon:
Mega Drive parallax panels can now have an overlay layer - this is used for setting the "high priority" (eg, foreground) portion of the parallax. Note that it doesn't mean that there's two different layers - both layers are "baked" down to be rendered on Plane B. But it can be used to have parallax both behind and in front of Plane A. Essentially the same as how foreground slicing on the Amiga OCS parallax works. In addition, there have been some improvements to Bitmap reading, so compile times (on all platforms) should hopefully be slightly faster. |
![]() |
![]() |
#2930 |
Registered User
Join Date: Dec 2013
Location: Auckland
Posts: 3,454
|
Latest experimental update is for Amiga, and it's sponsored by msmalik681
There's a new Sliced render type (find this underneath "delay" on the animation tab) which is designed for saving memory at the cost of some performance. It slices up graphics this way: * The "head" is cut off as a single 16 pixel wide segment * The rest of the image is divided up into 16 pixel tall segments * The individual segments are added to memory in a way that's a little like LWZ compression - if the top half of the head slice is already in memory, then it links to that rather than adding the entire head to memory on every frame. The combined total shaves nearly 30% off the size of the graphics data on the Street Fighter 1 demo, and there's still some opportunities for shaving memory usage down further. It isn't designed to be used with games that are tall vertically, it may break if the character goes further downwards past the part where the buffers wrap around (but games that are wide, such as street fighter or double dragon, it should work fine for). It's also very new so it's likely to need bug fixes going forward. ![]() |
![]() |
![]() |
#2931 |
Registered User
Join Date: Dec 2013
Location: Auckland
Posts: 3,454
|
Latest update
Amiga: Spent some time optimising sprite functions, replacing Blitz code with ASM (this was actually in the last update, I forgot to mention it). Fixed bug with sliced graphics where images less than or equal to 16 pixels wide would be trimmed at the sides. Fixed issue with sliced graphics cutting off when leaving the left or right of the screen (still needs to be fixed for leaving the top or bottom of the screen) Universal: Fixed bug reported by @Mixel, the automatic upgrade of events from the old system was incorrectly changing the OnEnter event to OnExit |
![]() |
![]() |
#2932 |
Registered User
Join Date: Dec 2013
Location: Auckland
Posts: 3,454
|
Latest update further iterates on the slicing system - it's now "non-interleaved", saving (in the test case of the Street Fighter 1 demo) some 55% in memory over the normal interleaved blitting mode alone.
The reason why I went for interleaved to begin with for most graphics was performance - all interleaved blits can be done with a single blit operation, so for a platformer or a shooter with a lot of small things to blit it makes sense to do it that way. But for a game with a small number of large characters where memory is a bigger concern than performance, it makes sense to use non-interleaved graphics. |
![]() |
![]() |
#2933 |
Registered User
Join Date: Dec 2013
Location: Auckland
Posts: 3,454
|
Experimental updates for Amiga platform:
* Further improvements to the sliced render type, saving approximately 60% memory (in the test case) over normal blitting. The change this time is that every bitplane is added to memory only once, which means that graphics that only need a subset of bitplanes (say, colors 1-8) will use a lot less memory. * Sliced actors can also move off the top and bottom of the screen without being completely cut off. * Minor improvements to compile times (hopefully!). * Fix for bug reported by Mixel where long running blit operations on panels could cause display glitches. * Also fix for bug reported by Mixel where "bar" elements could overwrite neighbouring elements. |
![]() |
![]() |
#2934 |
Registered User
Join Date: Dec 2013
Location: Auckland
Posts: 3,454
|
Latest experimental update has some breaking updates for Amiga:
Amiga: * Set Panel Gap command removed. This value can now be set on Panels directly. * Set Background Sprite Pairs command removed. A sprite can be flagged as a background sprite in the animation editor (though note that you should still use Z sorting to put those sprites at the back otherwise you may not get the expected result). The command was very confusing to use, this should be much more simple. Universal: * When changing an animation frame, it only asks if you want to apply the setting to all if you're changing the very first frame in an animation. (So if you're manually tweaking every single frame speed, it won't ask every time) |
![]() |
![]() |
#2935 |
Registered User
Join Date: Sep 2019
Location: Italy
Age: 50
Posts: 271
|
Would it be possible to animate an element in the panels? In my case I would have to have the "enemy" sign constantly doing some sort of color cycling, but not wanting to involve other elements that use the colors in question it would be useful to be able to simply do a small animation with 2-3 frames.
|
![]() |
![]() |
#2936 |
Registered User
Join Date: Apr 2019
Location: UK
Posts: 257
|
Tested with Amiga Abbeys of Dead and noticed this update makes sprites act weird, sometimes drawn behind non black parts of tiles.
Also found the experimental builds from the 30th May onwards appears to continue running code on animations, even though the object is many screens away. You can try yourself with my git copy of AOTD. Walk through entry and hear banging then fall through the floor by note/blue circle window and go anywhere. If you instead go up to bell tower and back it'll work correct way. |
![]() |
![]() |
#2937 |
Registered User
Join Date: Dec 2013
Location: Auckland
Posts: 3,454
|
@skyzoo73
Assuming there's three frames of animation, I'd do something like this: * Create an element on the panel with max value of 3, counter divisions set to 3, the attached image having all of the frames. * Then it's simply a case of setting the attached variable for that element to loop through all three states on a timer. @UltraNarwhall. That is weird, I can take a look. Just wanted to make sure - you're not using background sprites or parallax I take it? |
![]() |
![]() |
#2938 |
Registered User
Join Date: Dec 2013
Location: Auckland
Posts: 3,454
|
Emergency fix for UltraNarwhal checked into experimental, background sprite channels were incorrectly allocated. It should be okay now but please let me know if there's any further weirdness (either sprites incorrectly appear in in the background or in the foreground)
|
![]() |
![]() |
#2939 |
Registered User
Join Date: Dec 2013
Location: Auckland
Posts: 3,454
|
Latest experimental:
Mega Drive: * Fades are moved to the top of the vblank, this should reduce instances of cram dots (it's very possible that the screen might tear if there's scrolling during a fade, but since sprites are double buffered it shouldn't result in sprite glitches - hopefully) Universal: * From the patreon poll, AND/OR conditionals are there. On any conditional, click "edit advanced condition" to stack and/or conditions on top of the base condition. This is new and may be buggy. There's no way to group conditions yet, the conditions run in a linear order from top to bottom (which is to say, it'll stop checking at the first OR that's true or the first AND that's false) |
![]() |
![]() |
#2940 | |
Registered User
Join Date: Apr 2019
Location: UK
Posts: 257
|
Quote:
I made AOTD example to easily see glitches, just choose the Alternative menu option. |
|
![]() |
Currently Active Users Viewing This Thread: 2 (0 members and 2 guests) | |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
2D Platformer Engine | carrion | Coders. Blitz Basic | 27 | 06 June 2019 14:35 |
New Chaos Engine!! | arpz | Retrogaming General Discussion | 75 | 31 August 2013 22:20 |
F/S Warp engine 32 mb | tabuhuso | MarketPlace | 0 | 24 February 2012 15:13 |
PC Engine CD | TodaysForgotten | Retrogaming General Discussion | 47 | 13 May 2009 23:57 |
Scorpion (100% working) | andreas | request.Old Rare Games | 13 | 01 August 2003 08:48 |
|
|