SPRITESR is a work-in-progress sprite library to automate drawing and animating sprites. SPRITESR is written to work specifically with N66 SR Mode 6 Screen 2 (Warka PC-6002, NEC PC6001 Mk2 SR, NEC PC-6601 SR, and NEC Mr PC).

SPRITESR Demo: disk for N66 SR emulator

To run the demo in the emulator, insert floppy disk image, go to mode 6 then type:

COMPILE60 is a simple front-end I wrote in Python/Tkinter to simplify C compilation and linking of PC-6002 projects.

Installation and usage instructions are in the readme.md file: COMPILE60 git

COMPILE60 requires z88dk to work and of course a PC-6001 emulator to run the binaries.

compile60_scrnshot_window

Limitations:

  • At the moment, N66 SR (Mode 6) support is listed but it doesn’t exist in z88dk yet (working on it).
  • Limited options that don’t include more advanced features like optimization

A few planned features to be implemented some day:

I expected a troubled commercial history for the PC-60 due to the limited information about it, but I wanted to understand why and I’ve been researching the history of the PC-60 platform in Japan this last week.

My main source of information was the only related magazine I was able to find online in archive.org, IO Magazine. In every issue starting around page 200 there is an impressive amount of technical information about multiple platforms from that era as well as entire source code listings for software and games for these platforms.

The PNG Pipeline

The first utility I wanted to build was a set of tools to convert any appropriately scaled-down PNG to be viewable directly in PC-60 BASIC.

I’ve used Python for the scripts that convert and generate the necessary data plus the 3rd party tool txt2bas.exe available online.

I was able to draw directly using the PC-60 palette using this palette profile I made for Paint.Net, then convert the PNG to a BASIC program for display.

The Benchmark

Didn’t have much time last week to finish working on a PNG-to-PC-6001 compressed bitmaps pipeline (next blog post) but I saw this video on youtube and thought this would make a great quick test of performance level for 80s computers! (mostly z80-based) to understand how they compare to each other.

I used the exact same program in the video:

10 FOR I=2 to 1000
20 K=INT(SQR(I))+1
30 FOR J=2 TO K
40 K1=I/J
50 K2=INT(K1)
60 IF K1=K2 THEN GOTO 90
70 NEXT J
80 PRINT I
90 NEXT I

This is mostly a test of the embedded BASIC interpreter rather than the processing power in these computers. I’m sure running compiled assembly code should deliver similar performance since all Z80 PCs are running at the same frequency.

Toolbox

The most important tool you need is a good emulator! Here are two excellent emulators with all necessary settings and files as well as a collection of PC-6001 games and demos for testing here:

  • PC6001VW3: Full featured accurate emulator with a built-in debugger and many useful tools.
  • iP6+: Light-weight emulator, great for quick testing.

Of course both emulators use Japanese ROMs, maybe in the future if I had access to a Warka ROM chip I could dump it and use that instead. The main difference is language, the Warka had an Arabic font built-in while the PC-6001 had Japanese fonts.

A long time ago when I was 11 and lived in Basra south of Iraq my parents thought it was a good idea to get me into computers and programming. I’ve always been a gamer since birth pretty much so it fit nicely.

The year was around 1996 and Iraq was way behind the world in computing due to unfortunate circumstances.

During the 80s however, Iraq was a regional pioneer in digital technology despite the devastating 8 years war with Iran, this growth was led by a national group of companies collectively named: Electronics Industry Company or EIC (شركة الصناعات الوطنية).

This is mostly going to be an information dump. I’ve been researching this for a month or two and the amount of stuff happening out there these last few months is just mind-blowing. Progress achieved from mid 2016 till time of writing this post (end of 2017) wasn’t only impressive but paradigm shifting.

First off, this is not about robots or androids or skynet. This is about artificial intelligence that runs on software and hardware designed to resemble biological intelligence. Everytime you swipe through Snapchat’s filters, you’re running a variation of that intelligence that attempts to find where your face is, match its orientation and scale to superimpose dog-ears or makeup.

Week 45 Year 2016

- 8 mins read

I’m always working on something but don’t usually write about it. Since this week I updated my Jekyll blog so it works again as well as a few other weby things.. here is a compilation of what I was focusing on last week.

Static Blog/Web Generators

So this blog is powered by Jekyll which is a static blog/web generator that is pretty straight forward and supported by github directly as it was actually developed by github developers. The code for this website is in a normal public github repository. Using some special flags github rebuilds the website using jekyll every time I perform a new push with some changes.

Mac OS X: Prologue

- 7 mins read

A word of warning: this is a very long post about nothing in particular, I just felt like writing something :)

Past Considerations

I’ve been mainly using Windows for most of my programming career starting with Windows XP. I also work on linux whenever possible but most game projects treat linux as a secondary platform to port to (if at all targeted) rather than a main platform of development so I always felt like my experience on POSIX-compliant operating systems was relatively lacking as a user and a developer due to less exposure despite a modest history of linux and open source community involvement.