Gameboy Development Forum

Discussion about software development for the old-school Gameboys, ranging from the "Gray brick" to Gameboy Color
(Launched in 2008)

You are not logged in.


#1 2018-04-03 01:26:08

Registered: 2018-03-22
Posts: 13

STN torture test

This ROM was produced during early development of a Game Boy port of Artemio Urbina's 240p Test Suite.  Techniques demonstrated:

* Fading out the IPL logo
* Drawing text in a variable width font (VWF), also called
  proportional font
* Copying tile data to VRAM during horizontal blanking
* Bank switching background tiles at line 72 using a STAT IRQ
* Drawing half of a character as background and the other
  as flipped sprites
* Ease-in, ease-out, and overscroll bounce for window
* Making an excuse to skip leg day
* No exceptions in BGB

The effect looks great on a Super Game Boy, Game Boy Color, or PC based emulator.  On GBC or GBA, press Left+B to hide miscoloration of flipped sprites.  But it's a smearfest on a Game Boy Pocket, with these analog artifacts:

* Vertical smearing proportional to each pixel column's average
  gray level.  This appears to be inherent in passive matrix
  super-twisted nematic (STN) displays.
* Darkening of gray areas when large white area present.  I'm not
  sure whether this is the fault of the Game Boy Pocket, which
  supplies less power than other models, or of the EverDrive GB X5,
  which draws more power than a single-game cart.
Ideal video, similar to SGB/GBC output

Download: Smear test executable and source code (31.4 kB)



#2 2018-04-03 18:52:46

Registered: 2014-06-17
Posts: 106

Re: STN torture test

Pretty cool.



#3 2018-04-10 00:22:33

Registered: 2018-03-22
Posts: 13

Re: STN torture test

If you haven't heard of 240p Test Suite, it's a tool for testing and calibrating monitors and scalers. But not everybody can run 240p Test Suite.

A. Someone owns a Super NES console, Super Game Boy accessory, and EverDrive GB, but no Super EverDrive or SNES PowerPak.
B. Someone owns a Nintendo GameCube console, Game Boy Player accessory, and EverDrive GB, but no GameCube homebrew device.
C. Someone wants to see exactly how much a Game Boy (DMG) or Game Boy Pocket suffers from motion blur and STN smear artifacts, or gloat over the GBC's utter lack thereof.

Hence the 144p Test Suite. It's just a start, but I've already got most of the easy ones (Grid, Linearity, Gray ramp, Solid screen, Sharpness, Grid scroll, Full screen stripes, About, and Credits) going, enough to give a sense of where the project is headed. And I plan to introduce a couple GB-exclusive tests for good measure.

Download: 144p Test Suite 0.01 ROM and source



#4 2018-04-10 11:23:35

Registered: 2008-02-22
Posts: 177

Re: STN torture test

PinoBatch wrote:

But not everybody can run 240p Test Suite.

A. Someone owns a Super NES console, Super Game Boy accessory, and EverDrive GB, but no Super EverDrive or SNES PowerPak.

This is not strictly true. The SGB contains facilities for downloading code into SNES RAM and running it. This should be enough to run a special version of the suite using only the hardware listed in A.

Blog: Gameboy Genius
"A journey of a thousand miles begins with one small step"
Old Chinese Proverb



#5 2018-04-14 15:42:28

Registered: 2018-03-22
Posts: 13

Re: STN torture test

I'd be interested to see the "special version of the suite" that you make using the transfer and jump mechanism that Space Invaders uses. In particular, I'd like to see how something like that could be squeezed into 32K to fit on an MBC-less cartridge, or whether it'd need something bigger and MBC-ful like an EverDrive. Until then, I'm focusing on finishing the minimum viable product.

I came up with a GB/SNES counterpart to PB8, a CHR data codec used in some of my NES games. (PB8 is LZSS with a fixed distance and length of 1, or equivalently RLE with unary-coded run lengths.) To make RLE effective on Game Boy, TurboGrafx-16, or Super NES, you need to change the fixed distance to 2. I was inspired by the RLE tile codecs used in Master System games, which store the data bitplane-major before compression (like NES tiles) rather than row-major (like Master System and Game Boy tiles) and then reinterleave the data when copying it to VRAM.

I also dug up the text coder that I had for made for another NES project. Byte pair encoding (BPE), also called digram coding or (in the ROM hacking community) dual tile encoding (DTE), is a way of compressing text by mapping otherwise unused high-numbered code units to pairs of characters. For example, code units $20-$87 might be your ASCII code plus a few accented glyphs, and $88-$FF would represent pairs of characters. Recursive BPE, or digram tree encoding (DTE), also allows one or both of the pairs to refer to another (lower-numbered) pair.

0.02 (2018-04-14)
* Solid screen: Mention dead pixel test (requested by calima)
* Compress most tile graphics with PB16, saving about 1.25K
* Compress help text with DTE, saving about 3.5K
* Add tests: Shadow sprite, Hill zone scroll, Vertical scroll, and Stopwatch

Download: 144p Test Suite 0.02 ROM and source
It's only missing six tests.
darryl.revok's portrait of Gus, 128 tiles
Smaller version of mikejmoffitt's Green Hill Zone-alike, 109 tiles



#6 2018-04-17 00:45:53

Registered: 2018-03-22
Posts: 13

Re: STN torture test

Stick a fork in it 'cause I think it's done, unless someone wants to contribute a patch for SGB or GBC support. There's about 6K left without having to step up to an MBC.

0.03 (2018-04-17)
* Add Overscan, working around a mono hardware bug with WX=166
* Add Audio sync, Manual lag, Sound test, and Motion blur
* Help: When displaying the same page as last time, don't move the window out and back in

Download 144p Test Suite 0.03 ROM and source



Board footer

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson