Jump to content


  • Content Count

  • Joined

  • Last visited

Posts posted by EricBall

  1. First, I am not planning on buying one - I've got too many other ways to spend my discretionary time and $$ on.


    But I do wonder who the target market is.  While it is an impressive portable PC at the price point almost everything seems to be a little bit of a compromise.


    The CPU is decent, although will likely struggle with modern AAA titles.  The GPU is probably equivalent to a high-end laptop APU - but nowhere near as powerful as a traditional desktop dedicated GPU.  Again, fine if you're playing "casual" or "indie" games rather than Crysis X.


    Only 16GB of RAM (I'm assuming shared with the GPU) might be a limitation, but probably not as much as the 64GB of slow storage in the base model.


    And as others have pointed out, the low resolution of the display may be an issue as well.  (OTOH, lower resolution typically means higher framerates.)


    There's also the issue of what games will be playable.  While Linux versions do exist for many titles, they often aren't quite as good as the Windows versions.  Nor will many games be playable via Proton.  (See https://www.protondb.com/ for lots more info.)


    However, one place Valve hasn't skimped is on the controls - although I do wonder how well most games will work "out of the box".


    But back to "who is the target market" ?  Probably not the people playing competitive online multiplayer games which dominate the Steam top 10.  And post-COVID will as many people be commuting via public transportation?

  2. @spaceInvader89

    Which email address did you use for me?  (The old atariage one stopped working years ago.)


    But I have no issues with you using the game itself as part of your research.  (That would fall under fair use anyway, but I appreciate you asking first.)


    Send me a DM if there's anything in particular you'd like to know about the game which would help you out.  I'm also curious about what particular properties Skeleton+ has which caught your interest.


    Just don't use it as AI training for killer robots.

    • Like 5
    • Thanks 1

  3. My technique was to loop through the objects then append the entry to the relevant display list(s).  Just need to store an offset for the end of each list.  But whatever the method you have to transform the Y position to select the correct display list and then the graphics page offset.

    • Like 1

  4. IMHO one of the big challenges of programming the 7800 is the amount of data required to get anything to appear on screen - you need to generate the display lists and the display list list.  And once you get that done you realize it's non-trivial to dynamically generate those display lists efficiently.

    • Like 3

  5. Just a note to anyone looking at my sprite data to color mapping post, I really recommend you look at the spreadsheet as it makes it much easier to see how the bit patterns match the the different colors.  (And hopefully allow you to avoid making bad assumptions when designing sprites.)


    Also for anyone thinking about using the 320 modes, don't forget that large luma changes between pixels will cause false colors on real hardware (e.g Tower Toppler).


    • Like 5
    • Thanks 1

  6. Thanks for the nod.


    Yeah, the TIA audio generator is pretty limited in what it can create, so trying to use it to duplicate any normal audio is fraught with challenges.  That's one of the reasons I went with the brute force correlation rather than something like the FFT.  (Also given an FFT is just a way of calculating a Discrete Fourier Transform - which is essentially a correlation matrix between the input and the set of sine and cosine waves, I figured I could use the raw TIA waveforms to create a similar correlation matrix.)


    Hmm... I wonder if what is required is to find the "closest" TIA waveform - so rather than looking for an exact match / correlation, instead somehow have each TIA waveform represent a range of frequencies.



  7. 5 hours ago, Synthpopalooza said:

    So, just to clarify:

    320D means that even columns get the 3 colors from palette 0 plus background, and odd columns get the 3 colors from palette 4 plus background.  Is that correct?


    No.  Whether the 320D sprite uses palette 0 or 4 depends upon P2.  P1 & P0 selects which colors are used for the graphics bit combinations.  You get 3 colors + background & transparent from 2 palettes


    5 hours ago, Synthpopalooza said:

    I am also seeing the same in 320C but from across differing palettes.  Is that correct as well?


    320C uses C2 from palettes 0-3 or 4-7 depending upon P2.  So you get 4 colors + background & transparent from 2 "palettes".


    Note: this is better shown in the spreadsheet as it breaks down the exact pixel colors for each graphics & palette bit combination. 


    Don't forget that all 320 modes are subject to color aliasing for adjacent pixels with different Y values.


    • Like 1

  8. Awesome! Thanks for the info on this, that'll be extremely helpful for me. Just to clarify though, if Kangaroo mode is turned on, then in 320C I can use 4 solid colors, just no transparency available, right?


    320C will allow you 4 colors with transparency. However, the two half pixels are either the same color, transparent or one is the background color.

    • Like 1

  9. You're right. In 320B you can't have both of the two half pixels be C1. 320C doesn't have this issue, but it restricts the two half pixels to be either transparent, the same color, or one be the background color.


    You've also inspired me to revisit my sprite data to color mapping post an make it easier to understand and hopefully use.


    • Like 3

  10. It's actually kind of the opposite in my experience, though it probably depends on the specific device itself. But consider the fact that most Android TV's have literally a one year product cycle (that is, they're replaced with new models every year), so there's no incentive for the manufacturer to keep updating the OS. Most get about 2 years at most; just enough to make sure it doesn't hit their reputation (which would prevent people from buying a current TV from them).


    I was referring to Android TV devices like the Nvidia Shield rather than TVs with Android / Android TV built in. I agree with you that "smart" TVs often have short lifespans when it comes to streaming.


    However, I didn't realize that Android TV was first announced back in the summer of 2014; and it doesn't look like there has been much recently - not a good sign for a long term plan unfortunately.


    Yeah, Android (and Google Play Services) does suffer from upgrade obsolescence. I'd recommend an Apple TV - except it's not supported by all streaming content providers.

  11. Updates and corrections:


    A loot heat map has been generated: https://www.reddit.com/r/csgo/comments/a5g6ji/i_made_a_heatmap_of_danger_zone_weapon_drop/ While the loot locations are set, the loot at each location is an independent RNG which determines whether there is nothing or any of the other possible items.


    For duos and trios, there are 18 players on the map - and map is apparently ~400m x ~400m (versus PUBG Erangel which is 8000m x 8000m; for comparison, the fifth circle is 370m in diameter).


    The matchmaker has been tweaked so the waiting room deathmatch starts once 14 players have accepted.


    Other than the expensive radar jammer, there is no way to not show up on other player's tablets (e.g. being underground or dropping your tablet).


    There are no crates which require explosives to open - only pre-wired safes containing cash. These are armed like C4 and have a significant blast radius.


    Cash isn't given for surviving, but for exploring each hex.


    Walking (via the shift key) generates no noise. I recommend going into settings and setting it to toggle. However, you still generate noise when changing weapons etc.


    The AUG is a single shot weapon, the second fire mode uses the scope.





  12. I'm not a streaming subscriber, I find I already have enough content. However, IMHO your best chance of a long term solution is a device running Android TV (not just a reskinned / modified version of Android) with the Google Play store. My logic is then the software is provided by the streaming company, not the device seller; and the software is not specific to the device - meaning a larger user population. Hopefully this means the software will be updated to support new features etc for a longer time.

  13. Valve decided to make CS:GO free to play and at the same time add a battle royale mode "Danger Zone". This is great for me as I was looking for a way to scratch my PUBG itch on my 27" iMac.


    As a PUBG player, there are a bunch of differences worth noting. (Although they may be "normal" for CS:GO players.)


    First, there's only 16 players on a small island "Blacksite". I haven't found any online loot maps etc. There are a variety of buildings, underground passages, and terrain to work around. No vehicles, but that's not an issue as the map is small. This also means the games are relatively quick - although how long depends whether you avoid or seek conflict. Second, the safe zone and damage zone aren't simple circles and the new safe zone isn't always in the old safe zone. (There's a tablet upgrade which shows the zones.) A random hex is also bombed, a-la a the PUBG red zone.


    Once you get matched with 15 other players (note: it seems like if one player doesn't accept the match everyone gets tossed back into the matchmaker) you get placed on the island in "waiting room mode". You're automatically given a Glock-18 with full ammo (enjoy it while it lasts) and dropped in a random location. There's no loot to pick up and it's more of a deathmatch mode - if you're killed you'll respawn in a random location until all the players have joined the server. (Fortunately if a player disconnects at this point the game will still go on.)


    However, before you go hunting, press the B key to bring up the Buy menu on your tablet. Yes, you will have the opportunity to buy weapons etc if don't find them while looting and have the cash. You can't buy anything while in the waiting room, but note the prices of the weapons listed (especially the middle SMG, usually $1750) and which weapons you can buy (as this is different each game). Also note that armor will cost you $500, which is how much cash you start with.


    Next press the Tab key to initialize your tablet and bring up the map. Yellow hexes contain players (including yourself). While this obviously makes it easier to hunt the other players, it also makes it easier for them to hunt you. Note: it is possible for a single player on a hex boundary to light up both hexes. Also the map doesn't work underground (not sure whether that also hides you from other players).


    Press Tab again, or Q or 2 to get back to your pistol. Click the right mouse button to change to burst mode and go hunting. Keys are fairly standard - WASD to move, R to reload, E to use (open doors, pick up / swap weapon). Space is jump, but you don't automatically vault to go through windows. Instead you also need to press Ctrl to crouch while you're jumping (just like in Half-Life). Crouching is also necessary to crawl into places with low ceilings. 1 will select your primary weapon (if you find one), 2 will select your pistol (once you've found one), 3 will select your melee weapon or fists, and 4 and above will select explosives and other items. X selects your health kit / boost. The game will prompt you to use it - note you need to click the left mouse button to use. Note: there are no lean buttons, nor the ability to go prone.


    Eventually you'll be given a count-down and the actual game will begin and you'll be presented with a labelled map and you will get to chose your drop point. Each player starts in a separate hex and there is also an invisible sub-grid which restricts where you can choose. Where other players have chosen is also shown on the map, so you can either race to select your preferred location or wait and select a location based on where the other players have chosen. There's a timer and the game will select a random location when it runs out. As you fast-rope out of the helicopter you can shift your landing point somewhat - the rope often seems to have a mind of its own. You can also try to spot crates and other loot as you descend.


    Once you're on the ground, you need to start looting. While some loot is out in the open, a lot will be in crates which you will need to break open first. The smallest crates you can punch open with your fists (although hitting it with a melee weapon is faster). The medium sized crates need weapon damage to open (melee weapon strongly recommended to preserve ammo). The biggest crates require C4 explosives. The color of the crates gives a hint to what's inside - red for weapons, blue for armor / melee, orange for explosives. There's also cash, ammo, tablet upgrades and briefcases containing special missions laying around. Later in the game, supply crates drop on to the map (shown on your tablet) containing better weapons. They beep when you're near them to help you find them.


    Cash is used to buy weapons and other items. These are delivered to you by drone - although it is possible for another player to shoot down your drone and steal your stuff (or you can do the same). You can watch the drone progress on your tablet map. Make sure the drone can get to you - I've had it drop my stuff on the roof above me. Cash is obtained either as loot (stacks or duffle bags), from killed or disconnected players, and by surviving. As previously stated, you start with enough cash to buy armor - which I think would be a very good idea if you don't find anything during your initial looting.


    In Danger Zone ammo is precious. Guns often don't spawn with full clips. And while ammo boxes are universal, you can't swap ammo between guns - even if they are the same caliber (in game or real life). So it might be preferable to keep a fully loaded SMG than to swap it out for an AR with only 10 bullets. And don't forget to select the gun you want to load before you start taking bullets from the ammo box. There's even some logic to leaving an ammo box untouched if you haven't found anything better than a pistol. If you're really desperate, you can buy ammo using your tablet.


    Other notes:

    • There are automated turrets - avoid or attack with a melee weapon to get access to the ammo box they are guarding.
    • There are also hostages which you can carry to a location on the map for $500. From a distance they look like players as they also in yellow-orange jump suits, but they are on their knees.
    • While you do get some player sounds (especially with headphones), I've been snuck up on several times.
    • Unlike PUBG, you can only carry one primary weapon (and one pistol). And there are a lot of different weapons; which is "best" is difficult to say - although the one with ammo is a good starting spot
    • Some weapons (like the Glock 18) have different firing modes. Test it out when you get the weapon - before you get into a firefight and realize your AUG is on single shot...
    • CS:GO also has some practice modes so you can improve your game mechanics.
    • When you die, you're shown the last few seconds of play from your killer's perspective then flip into a spectating mode while you wait for the matchmaking.

    • I've had the game crash on me at various points - never in game, but sometimes during the matchmaking and in the waiting room.

    My current strategy is to drop at the edge of the map, looting while working my way around the shoreline and avoid confrontation as long as possible. Ideally I want to find a weapon which I can use at range, which typically means getting enough cash to buy one or raiding a supply drop.



    • Like 1

  14. Aha...DMA time. There's the bottleneck I was expecting. So, if I understand this correctly, MARIA halts the 6502 to read the DLL, determines which display list to generate, goes out and finds all the appropriate elements, then determines what pixels will be in the raster, and finally outputs the raster.


    Kinda / sorta. The pixel output occurs independently of the display list activities. It's like a traditional double buffer, except on a per-line basis. I'm also not certain whether the DLL entry is fetched every line or only once per zone. But the majority of the DMA time is spent reading the display list entries from RAM and the characters and graphics from RAM or ROM.

    • Like 1

  15. MARIA has two internal 800 bit Line RAM buffers. While one buffer is being written to, the other is being read to generate the display. So there's no way for a cartridge to change the Line RAM directly.


    Think of MARIA as a bus-master coprocessor. So at the start of the visible frame, if uses the display list list pointer to walk the display list list, getting the display list pointer for the zone and the number of lines. Each line it halts the 6502 CPU and walks the display list, reading graphics data from memory and writing it to an internal line RAM buffer. Once MARIA reaches the end of the display list, it releases the 6502 until the start of the next line. (Note: it's a little more complex, but this is the basic idea.)


    Where a cartridge based coprocessor could really help is building the display lists. Imagine something which would allow the 6502 program to use a NES style sprite table and a simple X,Y coordinate for the background which would then automagically provide MARIA with the appropriate DLL and display list entries. That would free up a huge amount of 6502 processor time.


    Update: I just remembered that MARIA wants the DLL and display list to be in RAM. So the game would need to copy the DLL and display lists from the cartridge to RAM every frame. This would cut into the CPU savings somewhat, but there would still be value.


    Regarding "Would that make 320B viable for a full background including sprites?" - the main limitation is DMA time, which can't be changed by the cartridge. You can do a full background in 160B/320B/320C, but it severely restricts the number of other sprites which are available.

    • Like 3

  16. Doesn't One on One use a 320 mode background with 160 mode sprites? I'd like to do that with my current project, but I don't see a way of doing it.

    I really don't want to switch to 160 mode completely...



    Unfortunately it's not possible to mix 160 and 320 modes on a single line as that is controlled by the Read Mode bits in the CTRL register. You could change the CTRL register mid-screen using a Display List Interrupt to have different sections of the screen use different resolution.


    Bob, I don't know if it helps for your project (and maybe I'm missing something) but the 320D mode looks like the equivalent of 320B mode (with 3 colors + background & transparent from 2 palettes) with the advantage that the 320D mode is only 1bpp (as 320A) and therefore approximately equivalent to 160A (cycles consumption).


    The difference is in how the palette bits are used. So with 320D if the sprite is palette = x01 then the sprite can use the second set of four pixel duos: BG+C1 / transparent, BG+C3, C2+C1, C2+C3. So while 320D looks like it has all of the combinations which 320B has, each 320D sprite is restricted to what colors it can use for each pixel.


    But I'm glad to see someone using my tables!

    • Like 2

  17. https://itunes.apple.com/us/app/slide-tilt-roll/id1366633420?mt=8


    I took a day off so I could finally put on my "round-tuit" and get my iOS game into the App Store.


    • 100% free to play. No in-app purchases. No subscriptions. No advertising. WiFi not required.
    • 30 levels to complete (so far)
    • Built-in level creator with the option to submit levels for inclusion in future updates.
    • Requres iOS 9 or better, compatible with all devices
    • Like 1
  • Create New...