PPCenter :: devblog

PPcenter. Arts and craft for my Sega Saturn. Since 1847 !

No more spam ? "I'll be back" edition

Written by cafealpha 5 comments
Second (and I hope last) part of this article ...

Last week, I spend half a day in getting rid of spam messages via my homepage contact form.
And, it seems to work well

So today, I spent another half a day in getting rid of spam messages via this blog's comments
So I removed bullshit advertisement messages scattered on my blogs comments, and tried captcha plugin for PluXml (= my blog's CMS).
And unfortunately, image based captcha plugin doesn't seem to work well, because it blocks ALL comments ... very efficient spam filter
So I added a simple additional test when posting comments. Hope you will solve it ... or not in the case you are a robot

Extra : I spend the other half a day in testing Saturn cartridge with custom USB dev cart connected to my laptop and Open Logic Sniffer and JTAG (ByteBlaster on my desktop's Parallel Port, because I don't have enough budget to buy a USB Blaster ^^; ) around my Saturn
Here is a snapshot of signals when it finally worked :
data/images/20150417_sniffer.png

Can you guess what it is about ?

Read more No more spam ? "I'll be back" edition

USB dev cart for sale soon

Written by cafealpha no comments
I'm about to gather parts in order to make new USB dev cart !
I hope to have some free time at the end of the month to assemble few ones, so please let me know in the comments or by email if you want to preorder one unit

Only very few SST39SF040 flash chips were available for sale from IC supplier, so I bought SST39SF020 instead. On Saturn side, this change makes flash memory dropping from 1MB to 512KB, but USB dev cart itself uses only few tens of KB to work, so everything is fine

First, I will assemble my personal USB dev cart, because I sold it few months ago ... I can't wait to finally be able to debug software on my Saturn

Edit (2015/03/10) : My personal cartridge (until I sell it ) is ready and tested !
data/images/20150310_rev1b.tb.jpg
The PCB is a old version, hence some ICs are unused and unsoldered. Latest PCB version has a cleaner design
Two more cartridges are waiting for flashing and testing before selling. I plan to do this on next week.

Read more USB dev cart for sale soon

New USB dev cart - currently debugging

Written by cafealpha 4 comments
Few weeks ago, I had some free time (only one day however) to populate new USB dev carts
data/images/20140829_usb_dev_cart.tb.jpg
USB dev carts during different populating states
"This isn't even my final form"

I could populate 3 boards ... third one is not on the picture, while a couple of capacitors is missing on second one, but this is a matter of 5 minutes to solder.
After that, time was missing, and what's more problematic, ICs were missing too >_<

I soldered my last flash chips (on the right side of the cart), as well as my last USB chips and connectors (top left side of the cart) ... and my last 100nF decoupling capacitor (everywhere near all ICs) too ... it's a shame about the capacitors because they cost absolutely nothing and they are required everywhere in the cart.

So what's the plan from now ? I'm currently improving USB dev cart firmware, and plan to sell the completed cartridge on the bottom right corner of the picture when firmware will be ready for release.
From that money, I will buy a new stock of ICs to populate other PCBs
Why not buying ICs now ? Simply because I don't have enough budget for that, and also because buying ICs in few quantities is too much expensive : IC price decrease with quantity, and shipping fees are free when more than of USD100 of ICs are purchased.


So let's come the interesting part : firmware, which means software !
Last month I had enough about PCB design with Kicad, so that was good to get back with my Saturn and USB connect it to my laptop

data/images/20140829_dev_env.tb.jpg
My Saturn development environment : no expensive vintage development kit,
only a modchipped Saturn, USB dev cart and 7 years old laptop are enough.

So of course I lost a lot of time with stupid software troubles.
Here is a list of the troubles. I hope that writing them here will prevent me from repeating the same mistakes in the future.

 1) Data alignment problem : one structure is 1 byte packed, and some long word was put a non 4 multiple offset in this structure. It is usually easy to spot, but ...
 - It doesn't cause problem under yabause (? not verified, please tell me if I'm wrong), so this problem was unnoticed until I test it under real hardware.
 - It happened during program initialization, before USB transfer would allow me to easily find why my Saturn freezes.
 - I was sleepy at this time

 2) Adding byte size to unsigned long* pointer ... it resulted in pointer set 4 times farther than expected ... really stupid bug
Oh, and in the same fashion, a similar bug in Action Replay flasher utility prevented from writing more than half of flash memory size ... it's good that I could fix this bug before anybody notice it

 3) Saturn freezes when reading flash vendor/device IDs.
As usual, when Saturn freezes, it is during program startup, when USB can't be used for debug ^^;
This problem was the most interesting one : some parts of the firmware runs directly from Flash ROM, and it seems that reading flash vendor/device IDs makes whole flash returning theses IDs, resulting in invalid instruction from CPU ... this is just a guess, correct me if I'm wrong.
This problem was corrected in a very Q&D way : return 0xBFBF/0xB7B7 in FlashGetVendorID/FlashGetDeviceID functions
I have a better idea to fix this, but it requires to modify cartridge flasher utility ... I made enough flasher utility stuff recently (I'm enough in fixing compatibility issues with Action Replay old flash chips !), so I will fix this later.

Read more New USB dev cart - currently debugging

Rss feed of the tag