What happened?
Twelve years!
You hit me with a cricket bat!
Ha! Twelve years!

Sunday, September 13

Geek

Daily News Stuff 12 September 2020

ABCD Goldfish Edition

Tech News

  • I sat down this evening to put in an hour or two on Imagine-Emu, starting by updating PyCharm and getting some proper Nim support, and fairly quickly realised two things.

    First, while pairing 10-bit registers A, B, C, and D into 20-bit registers AB and CD might be historically accurate and aesthetically pleasing, it turns the emulator code into a bramble of special cases.

    And second, I shouldn't be writing a CPU emulator at all.  I should be writing a CPU emulator generator.

    These five architectures have between them a total of 15,872 opcodes.  Just write a program that loops through all the general cases and the special cases and spits out the exact code required to implement each one.  Each emulator then consists of some register and memory definitions, a few helper functions like the indexed address calculator, and one huge case statement.

    Same applies to the DSPs that exist in four of the five machines.  Graphics hardware I will need to write some specific code for.

    After pulling out some misfeatures from my original design, the Imagine and the Dream CPUs are looking very similar.  The main difference is that the Dream has twice as many general-purpose registers - eight each in 12-bit and 24-bit lengths.  The Mirage will likely slot in between the two, with four accumulators and eight general purpose registers.


  • Or of course you could just download an Amiga.  (Tom's Hardware)

    Workbench 3.1 was kind of ugly.  The original blue 1.x series was nicer.


  • A benchmark for a Radeon RX 6000 has leaked, putting it in line with an Nvidia RTX 2080 Ti.  (WCCFTech)

    Which is right this minute the fastest graphics card available but very shortly will not be.

    However, it's not clear what card actually leaked, whether this is the long-awaited Big Navi or merely the new high-midrange part.  We'll see, at some point, probably.


  • 6000 Euros for a plastic toy car?  (The Guardian)

    Albeit a plastic toy car that seats two slim adults and can hit 45km/h.


  • Just say false.  (NoYAML)

    YAML is readable JSON.  That turned out to be a really bad idea.

    Also, that "If SQL were built on YAML" example?  That's Elasticsearch, only Elasticsearch is much less elegant and changes arbitrarily every few months.


  • Apple continues to shit all over its customers.  (Thurrott.com)

    Their latest bright idea is that game streaming services must submit every streamable game to the App Store as an individual app.  The streaming service app itself then acts as a catalog for all the other apps - which are all absolutely identical because all they do is stream a game.  And for this unmitigated fuckery Apple will skim 30% off the top of every single transaction.


  • Or you could just say fuck you, Apple and get an Xbox Series S for $25 per month including constantly updated libraries of downloadable and streamable games from Microsoft and EA.  No payment up front and you own the device outright after two years.  It actually works out $60 cheaper than buying the device and paying for the service for two years.


  • In Australia the Series S is $499 and the Series X is $749.  With exchange rates and sales tax that makes the S about 10% more expensive here and the X about 1% cheaper.


  • Noted.



Disclaimer: MNO goldfish.

more...

Posted by: Pixy Misa at 12:53 AM | Comments (2) | Add Comment | Trackbacks (Suck)
Post contains 1036 words, total size 8 kb.

Saturday, September 12

Geek

Mirage-11

I haven't worked out many details of this one just yet, except that it's going to be a response to the Imagine.  Everywhere that the Imagine is limited because it only has 10 bits, the Mirage is going to jump in with both feet.  And 11 bits.  Mostly with 11 bits, in fact.

Any feature I kind of want to put into the Imagine but reject because it is unreasonable goes into the Mirage.  It will hypothetically have come out a couple of years later - say, 1986 - so that I have more transistors to play with and can get away with more nonsense.
  • It will use fast external SRAM for colour lookup, with a total of 2048 registers.  You can freely select a palette of 2048 colours from a total of 2048, just because.
  • Standard 256k each of system RAM and VRAM, expandable to 512k, and with later memory chips, to as much as 2M, just because.
  • Fast page mode DRAM that can run for a full page, not just for two-word bursts, for up to double the VRAM bandwidth, just because.
  • Two 1.8M floppy drives, one on either side of the wedge-shaped case, just because.
  • Multi-threaded CPU / DSP.  The Imagine's CPU and DSP chips are effectively merged into one device running twice as fast, with multiple hardware threads and cycle-level scheduling.

Posted by: Pixy Misa at 03:37 PM | No Comments | Add Comment | Trackbacks (Suck)
Post contains 226 words, total size 1 kb.

Geek

Phantom Nine

<mode wiki on>

The Phantom Nine is a 9/18 bit home computer introduced in November 1986 to compete with the increasingly popular MSX systems.  The Phantom's 12MHz Y90 CPU is a rare variation on Zilog's Z80: All word sizes are increased from 8 to 9 or from 16 to 18 bits as appropriate, but the instruction set is largely unaltered and Z80 assembler code can be ported to the Y90 with minimal effort.

The Phantom Nine boots from an internal 2.2M 3½" floppy drive, having only 8k of ROM for boot code, a basic font, and a simple machine-language monitor.

This is because the Phantom does not support address extension, segmentation, or bank-switching; its 18-bit address space is fully populated by 256k of standard RAM.  The boot ROM itself is only mapped into address space long enough to copy itself into high memory.

The Phantom Nine features five custom chips:
  • Two video display controllers each with 64k of RAM, displaying 240x270 in 512 colours or 480x270 with two 16-colour palettes.  Each video controller supports any combination of scrolling, scaling, shearing, and reflection of the pixel map.
  • One sprite controller with its own 64k of RAM, supporting up to 600 8-colour 18x18 sprites.
  • One video mapper that combines the palette and priority selectors and pixel data from the video and sprite controller chips, and merges them into a single display.  The video mapper includes 96 colour registers shared by the video and sprite controllers.
  • One sound controller with its own 64k of RAM, supporting 9 voices of FM or PCM sound.

The video controllers have no hardware acceleration for drawing graphics; instead the Y90's block mode operations are used via the VDC interface registers to move or copy data.

The Phantom Nine received one major hardware update, in 1988.  The Phantom 9/512 has 512k total RAM, the extra 256k functioning by default as a RAM disk, though it can be directly addressed by the Y90's I/O instructions, allowing it to be used as heap space (for example, for Basic program variables) though not for executable code.

The 9/512 also includes an extended-density 4.4M floppy drive.

Unusually for systems of this era, the Phantom Nine never officially ceased production.  The parent company still sold new stock Phantom 9/512 systems on their website as of July 2019, with the choice of either the original 4.4M floppy drive, or an SD card reader and USB adaptor that fits into the floppy drive bay.

This adaptor uses a 48 MHz Arm microcontroller to interface the USB and SD card signals with the onboard floppy controller, meaning that it is significantly more powerful than the Phantom Nine itself.

A much later pin-compatible Y99 CMOS microcontroller running at 24 MHz can be swapped into both Phantom models with no other modifications required; the clock speed is selected by a previously unimplemented instruction sequence.  The Y99 supports numerous additional instructions and also executes many existing instructions in fewer cycles, while drawing approximately one-fifth the power of the original Y90 chip.

<mode wiki off>

Posted by: Pixy Misa at 02:53 PM | Comments (2) | Add Comment | Trackbacks (Suck)
Post contains 507 words, total size 3 kb.

Geek

Case Nightmare Green 13

I've worked out what the Nightmare-13 - our 13-bit imaginary system - is, and why.

<mode wiki on>

The Nightmare 13 was a range of 13-bit computers produced from 1986 to 1988 aimed at the higher education market, particularly computer science, engineering and mathematics.

The initial model Nightmare Red had a 13 MHz CPU with a 13 bit bus, 256k of dual-ported VRAM, 8k of colour lookup RAM, and 40k of ROM containing a multi-tasking operating system kernel and a Forth interpreter.  It was equipped with a single 1.6M floppy drive and one ISA-compatible expansion slot.

The Nightmare-13 CPU had several unusual features:
  • It was stack-oriented, with a 33-entry hardware stack with automatic spill to main memory.
  • It had six independent 33-entry stacks and two independent ALUs.
  • It could issue two stack instructions per cycle, to two different stacks.
  • It supported three simultaneous threads, each with its own pair of stacks.
  • Threads could freely swap or share stacks, though each thread had to be asigned two different stacks.
  • Threads had priority allocation, each receiving 0-13 cycles from every 13.
  • It was bit addressed, with total accessible memory of 226 bits.
  • Memory reads and writes could access objects of arbitrary bit length, with hardware bit masking.
  • It had built-in floating-point support, albeit in non-standard formats.
  • Peak performance was 26 MIPS at 13 MHz.
On the graphics side, the Nightmare Red had a single plane of 512x256 with up to 13 bits per pixel.  It had no explicit sprite or overlay hardware, but could freely draw to any subset of the bits in each pixel with no performance overhead.

The 8k colour lookup RAM allowed any 13 bit pixel value to be remapped to any 13 bit RGB value.  This meant that the programmer could treat 7 bits from each pixel as a 128-colour background, 2 bits as a translucent mask layer, and 4 bits as a sprite overlay.  The colour lookup RAM could effectively apply not only bitwise operations but addition, subtraction, and averaging as well.

The Nightmare Blue (1987) increased RAM to 512k, still entirely VRAM, and the floppy capacity to 3.2M. 

The Nightmare Yellow (1988) increased VRAM to 768k and increased the bus width to 26 bits.  The Nightmare-26 CPU supported the same instruction set as the Nightmare-13 and ran at the same 13 MHz, but added a 96-word instruction buffer, and could issue instructions to two different threads (out of a total six) in each cycle.

The Nightmare Yellow introduced support for much higher resolution displays, up to 1024x1024.  It also upgraded the floppy capacity to 9.6M.

A planned model Nightmare Green was scheduled to ship in 1989 but was never completed.  Surviving prototypes included support for mini (80mm) CD-ROMs, internal hard drives, and up to 2M of VRAM.

The only programming languages available to the Nightmare range in the first two years were Forth and assembler.  Compilers for Basic and Pascal arrived in early 1989, just months before production was cancelled.

Sound on the Nightmare range was driven entirely by software, depending on the CPU writing to a pair of 13-bit DACs.  However, the fast stack operations and hardware threading made the Nightmare a very effective audio workstation for its time.

<mode wiki off>

Posted by: Pixy Misa at 06:41 AM | Comments (2) | Add Comment | Trackbacks (Suck)
Post contains 541 words, total size 4 kb.

Geek

Daily News Stuff 11 September 2020

Together In 12-Bit Dreams Edition

Tech News

Disclaimer: All the trees are gone / And the sky is orange.

more...

Posted by: Pixy Misa at 04:13 AM | Comments (1) | Add Comment | Trackbacks (Suck)
Post contains 1266 words, total size 10 kb.

Thursday, September 10

Geek

Daily News Stuff 10 September 2020

Top Eleven Edition

Tech News

  • There are now no Intel processors among the top ten results in PassMark.  (CPUBenchmark)

    The 3995WX leads the way - about 10% faster than the 3990X - with the rest of the places distributed among Threadripper and Epyc and the Ryzen 3950X.

    Intel did have some CPUs - two chips on a package - that would likely have scored in the top ten, but they didn't sell any so they don't get counted.


  • Speaking of the 3995WX, it can be yours for just $18,000.  (Tom's Hardware)

    That configuration does include dual Nvidia Quadro RTX 6000 GPUs which retail for $4000 each.


  • If that's too rich for your blood you might want to look at the Armari Magnetar X64T which is a much more affordable $14,000.  (AnandTech)

    But only comes with one RTX 6000.

    Rather than the 3995WX this one has a water-cooled overclocked 3990X, running at 4GHz on all cores.  Expensive as it is, it outperforms $30,000 Intel-based workstations by 50% on real-world tests, and is 35% faster than a stock 3990X on CPU-intensive workloads.


  • AMD has announced Zen 3 and RDNA 2 announcements.  (AnandTech)

    Zen 3 will be announced October 8; RDNA 2 and Radeon RX 6000 will be announced on October 28.  Not clear when anything will actually ship, except for after those dates.


  • Full specs are out for the Sbox.  (Tom's Hardware)

    They're exactly what I posted before, so whoever updated the Wikipedia page had the correct details.

    The Xbox Series X will be released the same day at $499.

    The Sbox comes with 512GB of SSD but supports the same 1TB upgrade card as the Series X.

    They've done something weird with the Sbox memory bus too.  It has five 32-bit 16Gb memory chips on a 128-bit bus.  Why, Microsoft?  Was the upgrade from 8GB to 10GB a last-minute decision?  That's at least plausible, I guess.


  • What games do we want to be able recreate - closely or just in spirit - for the Imagine?

    Civilization, Warlords, and SimCity I've got covered as far as art assets go.  The Time Fantasy series has old-school RPGs covered.  SunnyLand is a nice little platformer bundle.

    What are the other true classics?  Populous, Railroad Tycoon, Syndicate, Master of Orion, Master of Magic.  Elite, but that's primarily 3d.  Cannon Fodder, Dune 2,  Oh, UFO, of course.  Alpha Centauri, which you can pick up for under $2 on GOG right now.  Some of these came out years after our imaginary system and would really stretch its capabilities, but in most cases there are art assets available to do something similar.

    Not Railroad Tycoon though.  Nobody likes trains for some reason.

    The SSI Gold Box games can probably be covered with a combination of Time Fantasy and Tyler Warren's pixel-graphics battlers.  The feel isn't quite the same; D&D was more realistic and less cute than JRPGs, but it will work.

    Star Control II?  That would be hard.  Reach for the Stars?  Easier.  

    Space strategy - Master of Orion, Reach for the Stars and similar - are fairly well covered.

    http://ai.mee.nu/images/ImagineRFTS1.png?size=640x&q=95http://ai.mee.nu/images/ImagineRFTS3.jpg?size=640x&q=95

    The designer of those planets has some great space stations too, but unfortunately they're licensed "no derivatives" so they can't be used for anything you want to share with other people.

    This isn't pixel art - each of the icons as delivered would fill the Imagine's entire screen - but could probably be squished down.

    http://ai.mee.nu/images/ImagineRFTS4.jpg?size=640x&q=95

    And there is - no surprise - a better way to produce pixel art from hi-resolution assets than fussing about in something like Affinity Photo.  Currently on sale for $15 too.


Disclaimer: The art assets are out there.

more...

Posted by: Pixy Misa at 10:50 PM | Comments (2) | Add Comment | Trackbacks (Suck)
Post contains 999 words, total size 8 kb.

Wednesday, September 09

Geek

Daily News Stuff 9 September 2020

BEEEP Edition

Tech News

  • How do you stop a Synology box beeping when it insists that it is not beeping?

    Not a rhetorical question.  I really want to know.


  • Just back on the Sbox for a moment: It costs $299 and includes an 8-core Zen 2 CPU, which costs $299, plus essentially an 8GB Radeon RX 5500 XT, which costs $199, plus a 512GB NVMe SSD which admittedly only costs about $59.  And the motherboard, case, and power supply, and another 2GB of RAM, are free.

    I want a couple to run Windows and Linux.  These are really nice little compute bricks.  Not stackable though, not with that huge vent.


  • Speaking of nice little compute bricks ASRock Industrial has announced a Ryzen 4000 NUC.  (AnandTech)

    A choice of 4300U, 4500U, or 4800U, up to 64GB RAM, one M.2 slot and one 2.5" drive bay.

    Rear I/O consists of both 1Gb and 2.5Gb Ethernet, HDMI and DisplayPort, and two USB 2.0 ports.  On the front you get one USB 3.0 Type-A, a headphone jack, and two USB 3.2 Gen 2 Type-C ports (that is, 10Gb) with DisplayPort alt mode.

    No official pricing as yet.


  • Some Western Digital 5400 rpm drives run at 7200 rpm.  (Tech Report)

    WD, would it be too much to ask for you to simply sell what you advertise, and advertise what you sell?

    This isn't an obvious downgrade, at least; you're unlikely to be disappointed unless you're building for a strict low noise / low power / low heat configuration.


  • Still can't log in to Patreon.  Yes, Patreon themselves are dirtbag morons, but there's someone I'd like to throw a few dollars at.


  • No new graphics mode for the Imagine today.  I'm trying to figure out an elegant 256-colour high-res mode that fits into the same memory and bandwidth as standard 32-colour mode.  Of course that's a trick since the hardware only has 32 colour registers and you can only pack four five-bit pixels into twenty bits.

    But I want to improve the appearance of that last tileset I posted yesterday.  And there are tricks we can do.

    https://ai.mee.nu/images/ImagineHex2.png?size=640x&q=95

    It's mostly in shades of green and grey; 16 colours should cover that reasonably well.  The little buildings though are in red and brown, and they suffered badly when I flattened it to 32 colours.

    But the buildings all have a white outline around them, so what we can do is encode our pixels so that we only have 16 colours at a time, but every four pixels we can switch which 16 colours we have, from 16 palettes.  If each palette contains our border colour - white or black here - and the border is at least three pixels wide, we can do this invisibly.

    http://ai.mee.nu/images/256Colours.png?size=640x&q=95

    That's 256 colours.  Only 32 would be freely programmable; the rest would be derived from the colour index by some trivial algorithm.  Maybe with some bits to flip how the algorithm works - in 2x8 slices or 4x4 blocks, for example.  Easy to implement in the emulator; it just needs to not be too much of a cheat.

    Update: You know what?  That tileset should work just fine with 32 colours.  I blame Affinity Photo for generating a crappy palette.  I'll see if I can coax it into doing a bit better.  It's also really bad at scaling pixel art; it is after all a photo program, not a pixel art program.  I should probable buy a pixel art program.  I probably already have one in my Humble Bundle treasure chest.

    Here's three versions, colour-squashed before being pixel-squashed this time.

    16 colours:

    http://ai.mee.nu/images/IslandLore16.png?size=640x&q=95

    32 colours:

    http://ai.mee.nu/images/IslandLore32.png?size=640x&q=95

    64 colours:

    http://ai.mee.nu/images/IslandLore64.png?size=640x&q=95

    64 colour mode looks great, which is good news for the 12-bit Dream system but doesn't immediately help with the 10-bit Imagine.  But once these images are squashed down to a 64-colour palette it's much easier to optimise that to 32 colours.  Just find the colours that are almost the same and drop one from each pair.

    So maybe just forget the whole 256 colour mode nonsense?

    For my next trick: Hardware-based hexagonal tiling!

    Update: I bought the tileset - ten bucks.  It's a 249MB download, so about five hundred Imagine floppies worth.  But the tiles come as 210x210 images, which is about half an Imagine screen, so they will scale down a bit.

Disclaimer: Because if I wanted to cheat I could just implement the Imagine 1400CD, with 6M of RAM, 1024 colour registers, and a 150MB mini-CD-ROM.

Posted by: Pixy Misa at 10:57 PM | Comments (2) | Add Comment | Trackbacks (Suck)
Post contains 748 words, total size 6 kb.

Geek

Daily News Stuff 8 September 2020

Napoleon Has Entered The Chat Edition

Tech News

  • The Sbox has been announced.



    From the pictures, the Series S is about half the size of the Series X, which measures 6" x 6" x 12".

    Tech specs according to Wikipedia - not sure of the source - include the same 8 core 3.8GHz Zen 2 CPU as the X, 20 Navi 2 CUs delivering 4 TFLOPS, 10 GB of GDDR6 RAM, and a 512 GB NVMe SSD.

    For $299.

    They're targeting 1440p with this; it will certainly breeze through 1080p games, with about three times the performance of the Xbox One.  The GPU is within 5% of the raw performance of the PS4 Pro, and on a newer architecture, with more memory bandwidth and a much, much faster CPU.

    Wonder what it would take to get Imagine-Emu to run on it...


  • SiPearl's Rhea has 72 Zeus cores.  (AnandTech)

    Zeus is a new Arm server core, but I don't know any details and a quick search failed to turn up anything.  It might well be a server version of the client-oriented Cortex X1, because the codename for that is Hera.

    If so, this will be the fastest Arm Chip yet; the X1 is expected to be 30% faster than the current A77.


  • Yet another lake emerges from Intel.  (Tom's Hardware)

    Jasper Lake is the new Tremont-based Atom lineup.  It's expected to deliver 30% better IPC than current Goldmont-based Gemini Lake Refresh chips, and the same TDP and slightly better clocks.

    Which doesn't mean a lot if you don't know that Gemini Lake is already pretty decent on light workloads.  (CPUBenchmark)

    A 6W Pentium Silver N5030 delivers a PassMark score of 1346 single-threaded.  My Ryzen 7 1700 is only 50% faster, and current Ryzens are only 30% faster than that.  Of course with a 6W TDP the multi-threaded performance tails off rapidly - four cores delivering only 18% of the eight core Ryzen 1700 - but if you're only using one or two cores it's not actually terrible.


  • Ryzen 4000 will include 10-core parts. (WCCFTech)

    This is entirely possible.  AMD didn't do this before because it would have meant an asymmetric core layout, which causes scheduling complications.  But with Zen 3 they're moving from two 4-core CCXs per chiplet to a unified 8-core CCX.  That means they could also do 14 cores if they really wanted to segment the market.  That might actually be worthwhile too; dies with only one defective core can be sold at a small premium over those with two.


  • Progress is acquiring Chef, the devops automation tool. (Chef)

    I saw this on Hacker News and said, Progress?  That Progress?

    Yes, that Progress.


  • Italy and now Australia have opened antitrust investigations into Apple over iCloud and the App Store.  (9to5Mac)

    Congratulations, Apple.  Senpai noticed you.


  • Did a little experiment today with translucent playfields for the Imagine - that is, if you have a blue pixel, rather than being opaque to the field behind it, it tints it blue.

    Using a dead simple approach of adding the three three-bit RGB values and reading off the top three bits of the result, something that would have required only a handful of transistors to implement...  It actually works pretty well.  So that's going in.

    The only limitation is that you can either have the tenth bit giving you an extra Â½ LSB of brightness on all three colour channels or using it to select alpha mode, not both.

    Colour register 0 on overlays is still transparent; the remaining colours can be any mix of opaque and translucent.


  • If I actually get this working - and working or not I'll release the source code - there's a ton of stuff on Itch.io to build cool games with.

    Looking for a space-based shmup rather than a turn-based strategy game?

    http://ai.mee.nu/images/ImagineShmup.gif

    Or maybe an epic RPG?

    http://ai.mee.nu/images/ImagineFantasy.png?size=640x&q=95

    Or a platformer?



    Oh, there it is.  I found an even better platformer set, but then lost the link.  It's the same artist.  (PixelGameArt)




    Or a...  Map?  This is awesome, but the license precludes using it in a game; you can only use it to create static maps.

    http://ai.mee.nu/images/ImagineHex.png

    Ah, this one isn't pixel art, but anything can be turned into pixel art if you squash it hard enough.

    http://ai.mee.nu/images/ImagineHex2.png?size=640x&q=95

    Like this.

    http://ai.mee.nu/images/ImagineHex2-480-32.png?size=640x&q=95

    That was just quickly squashed to 480 pixels wide and reduced to 32 colours, then resized back up for this page, so it's, well, not perfect.  But it's not a bad start.  32 colours is a bit restrictive, but we do have that 16+16+512 colour mode.


    There's also the Kenney asset packs which are public domain so I could even bundle some parts of those with the emulator, but while they offer a huge number of elements the individual sets aren't that extensive; they don't offer the scope of some of the ones above.


Pixel Game Art Music Video of the Day



Disclaimer: Bleeeeeeeee.

Posted by: Pixy Misa at 01:52 AM | Comments (1) | Add Comment | Trackbacks (Suck)
Post contains 820 words, total size 8 kb.

Tuesday, September 08

Geek

Daily News Stuff 7 September 2020

SimCivWar Edition

Tech News

  • Chrome just crashed, take the entire Daily News Stuff with it.  Yay.  It did save the title.  Thanks Chrome.


  • QB64 is an open-source QBasic-compatible compiler for Windows, Mac, and Linux.  (QB64.org)

    It looks pretty good.  Only major weirdness is that to maintain strict compatibility all the extension commands start with _.

    This looks like the perfect place to start with Imagine Basic.  Write a compiler that supports a subset of QB64, written only in that subset, and targeting Imagine assembler.  Write an Imagine assembler in that same subset.  Just like that, I'll have a self-hosting compiler.

    Easy peasy.

    ...

    Anyone got a good Write your own Basic compiler in Basic guide?  The assembler I can handle.


  • Civilisation* has been announced for the Imagine!

    http://ai.mee.nu/images/ImagineCiv.gif

    By pure serendipity this tileset was released today.  (Itch.io)

    It's part of a bundle that includes all kinds of neat stuff and which I immediately purchased.  I also tried to support the designer on Patreon but Patreon won't let me log in because they're retarded.

    Other titles announced for the Imagine include CitySim:

    http://ai.mee.nu/images/ImagineCity.png

    And LoreWards:

    http://ai.mee.nu/images/ImagineWar2.png

    I don't know how well these will fit into 128k of RAM.  The original SimCity did come out on the Commodore 64, so that's a datapoint.  I may have to lose the unit and water animations unless you have the Imagine 1000D model with 256k; it will be interesting to find out.

    These tilesets are nice because they are complete; they provide all the graphics you need including things like leader avatars and UI frames.  A lot of the graphics sets on Itch.io provide one thing only - here's a forest, good luck with the rest of your game.  The other notable exception to this is if you buy the complete Time Fantasy bundle which contains about twenty compatible tilesets, plus objects, plus dozens of animated sprites for heroes, NPCs, and monsters.

    Graphics on the Imagine should look much like that though only about half that height - those screenshots are 512x512 and the Imagine runs at 480x270 well what do you know: Graphics on the Imagine should look about twice that good.  I took one of those images, zoomed in, and added some 1x1 pixel dots just to confirm what my eyes were saying, and those screenshots are zoomed in at 2x at the pixel level (plus whatever your browser does to make them big enough to see).

    So those sample screenshots represent roughly half an Imagine screen.  That's pretty good; I can certainly see a game being enjoyable at that scale.  (And after all, Kairosoft games run at 320x200 and I've played the hell out of those the last few years.)

    * Any similarities to games spelled with a Z are purely coincidental.


  • Speaking of Imagine graphics I added another graphics mode that I thought up when I was looking at doing this in hardware on an embedded Arm chip.

    Basically it's half-resolution - 240x270 - in 512 direct colours.  That uses 9 bits from our 10 bit byte, so if you set the 10th bit to 1 it splits the pixel into two 16 colour full-resolution pixels.  You can freely mix low resolution in full colour with high resolution in limited colour, so for example the ocean in that last screenshot can be shaded exactly how you want.

    Update: That leaves 256 values out of 1024 unused.  I was wondering what to do with them then realised the simple answer: We have 32 colour registers, so use those for a second palette of 16 colours.  32 total colours in high resolution, and 512 in low resolution, on the same screen.  That's a really nice graphics mode if you're working with tiles and sprites, rather than drawing to a bitmap.

    Hardware sprites could use exactly the same mode, except that would limit them to 8 pixels wide (instead of 10).  There are 10 sprites so you could pair them for 5 16-pixel sprites per scan line, in up to 512 colours.

    I'm also looking at efficient ways to handle 8x8 and 16x16 tilesets, as an alternative to bitmap mode.  That could help make these games an imaginary reality.  With 16x16 tiles we could steal the sprite buffer and load in the tile indexes - once every 16 scanlines - which would leave the full bandwidth available for that 16+16+512 colour mode above.  And still have two sprites left for a cursor.  That's probably fine for Civilisation or LoreWards - those tilesets are indeed 16x16 and those games are turn-based and don't need a lot of sprites running around.

    (And if we're using the sprite buffer as a general-purpose buffer now, I might bump it up to 64 bytes, the same as the audio chip.  That will let you load a 30-wide tile map and 4 16-pixel sprites, all in this new 512 colour mode, which is pretty good for 1983.)

    The CitySim tileset though is 8x8 - those buildings are composed of lots of tiles stacked together - and you really want to see the cars and trucks running around.  That one pretty much has to be bitmapped.

    Also working on an RLL-compressed mode for overlays.  Let's say you have a 3d-rendered scene from your spaceship cockpit, but the cockpit itself is drawn in 2d and mostly static.  You can draw the 3d view directly to one playfield in high resolution 32 colour mode in VRAM (perhaps with fill mode enabled so you don't need to shade the polygons).  Then you can have a mostly-static RLL-mode cockpit overlay, in 16 colour RLL mode, in system RAM.

    Thanks to the RLL encoding, the transparent window only only uses 1/16th the normal bitmap memory and bandwidth.  You can shape and colour the opaque parts any way you like, while the transparent parts (or any solid colour) cause almost no overhead.  The RLL parts would be a massive pain to draw arbitrary updates to - totally impractical on a slow CPU - so the sections with lots of controls or displays you'd want to render as uncompressed scanlines.  Any pixels where you don't enable RLL it's just a regular bitmap.

    Update: Just realised this is also a brilliant way to extend sprites.  An empty full-screen RLL overlay uses 4k of system RAM and about 5% of the system bus.  You can even use the display list processor to entirely skip the parts where you don't need software sprites.  Or, using that mode from before, but with only 16+512 colours, we can get it down to 540 bytes and 0.4% bandwidth use for an empty overlay.  Yeah.  This is good.  This might be better than actual sprites.  

    Update update: So lets say if you turn off two sprites you can enable another playfield - after all we're saving the sprite pointer and position registers and the sprite buffer.  We can say that sprites 0-5 are always sprites, and 6-7 and 8-9 can be switched for additional playfields.  With normal pixel modes we could only do that by using half-resolution and saturating both the VRAM and system RAM buses, but with RLL mode we can do whatever the hell we like.  The demoscene would go nuts with this.


  • The Poco X3 NFC is a pretty good phone for €229.  (WCCFTech)

    In fact it's a pretty good phone regardless.  Snapdragon 732G - two A76 cores at 2.3GHz and six A55 cores at 1.8GHz.  6.67" 120Hz 1080p screen.  64Mpx main camera, 20Mpx front camera, and three other little cameras along for the ride.

    6GB RAM, 64GB storage (the 128GB model is another €40), USB-C, headphone jack, and microSD slot.  The only box it doesn't tick is apparently wireless charging.

    On sale tomorrow in Europe, no news yet for the rest of the world.


  • Magenta doesn't exist.  (Medium)

    The article discusses impossible colours and even provides examples - though since they're impossible the examples do require you to do the old stare at the X for thirty seconds without blinking trick.  If you manage that, though, you get to see a blue that is darker than black and a red that is brighter than white.

    Colour is about one third physics, one third biology, and one third bullshit.


  • Elon Musk's reading list.  (Most Recommended Books)

    Max Tegmark, who is great, Sean Carroll, who is also great but who blocked me on Twitter when I pointed out he was talking nonsense about events in Portland, Iain M. Banks - several times, Robert Heinlein, Isaac Asimov, Frank Herbert.  Also both Adam Smith and Karl Marx, but that's okay so long as your read them both.


  • Chrome fixed copying and pasting URLs.

    At some point it started turning URLs into URLs in this editor, so you had to go and un-URL them all.  Firefox didn't do that.  Now it's stopped doing that again.


Disclaimer: I could have done without the crash though.

Posted by: Pixy Misa at 12:19 AM | Comments (4) | Add Comment | Trackbacks (Suck)
Post contains 1481 words, total size 11 kb.

Sunday, September 06

Geek

Daily News Stuff 6 September 2020

Obvious Plant Edition

Tech News

  • HP Basic has a lot of commands.  Just building a spreadsheet merging all these versions of Basic into one is exhausting.


  • The HP Omen 15 has the Four Essential Keys.  (Tom's Hardware)

    In fact, it has a regular desktop cursor key layout instead of the largely useless numeric keypad.

    It also has a Ryzen 4000 APU, two socketed DIMMS for up to 64GB RAM, and two socketed M.2 NVMe devices for up to however much storage you can afford.  The expandability and the standard cursor keys make for a great developer machine.

    It has an absolute swarm of I/O ports, including HDMI, mini DisplayPort, three USB-A 5Gb ports, one Type-C port, headphone jack, SD card, and wired Ethernet.

    Graphics are provided by an Nvidia GPU with options from the 1650 Ti up to a 2070 Super Max-Q which sounds like a season of Pretty Cure.

    Battery life on the model tested by Tom's Hardware was only 6 hours, where the Asus Zephyrus G14 got over 11 hours.  The Asus model only has one DIMM slot and one M.2 slot available, and lacks the FEK, so choices have to be made.


  • A PDP-11/70 emulator.

    Not a download link for an emulator, but the whole thing running right there on the web page.


  • Snap sucks.  (Uncertain Jatan)

    Log in to a recent Ubuntu installation.  Type df.  Who the actual fuck thought this was a good idea?


  • Bronze age Europeans couldn't drink milk.  (Science Magazine)

    To be fair, they didn't have Milo.


  • 64K Basic is 2MB.  (Basic-Lang)

    It's a stripped down version of Basic with no I/O facilities apart from PRINT, LOAD, and SAVE.  That's a little too stripped down, really.  Written in Rust, so at least you know it's written in Rust.

    Wikipedia has a list of Basic dialects.  There's slightly more than an infinite number of them.  But if I can find one suitable for writing a compiler, it will make it easier for me to build a self-hosting compiler of my own.

    Chances of cramming everything I want into the allocated 128k of ROM are slim, even though I can redefine the hardware at will to make the software easier.  I'll just make a prioritised feature list and when the ROM is full, it ships.  It will support loading additional functions from disk files - HP Basic does this with LOADSUB ALL FROM "graphics.bas" for example.


That's Enough Internet For Today Video of the Day




Disclaimer: I'm only up to G and already have 159 commands, plus 47 event handling commands from skipping ahead to O.

Posted by: Pixy Misa at 09:13 PM | Comments (6) | Add Comment | Trackbacks (Suck)
Post contains 437 words, total size 4 kb.

<< Page 3 of 4 >>
115kb generated in CPU 0.0296, elapsed 0.243 seconds.
59 queries taking 0.2216 seconds, 364 records returned.
Powered by Minx 1.1.6c-pink.
Using http / http://ai.mee.nu / 362