Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

StellaDS Phoenix Edition: Difference between revisions

From GameBrew
No edit summary
 
(One intermediate revision by one other user not shown)
Line 4: Line 4:
|description=Atari VCS 2600 emulator for DS and DSi, an improved version of StellaDS by Alekmaul.
|description=Atari VCS 2600 emulator for DS and DSi, an improved version of StellaDS by Alekmaul.
|author=Dave Bernazzani (wavemotion)
|author=Dave Bernazzani (wavemotion)
|lastupdated=2024/08/25
|lastupdated=2024/11/30
|type=Console
|type=Console
|version=7.6
|version=7.8
|license=Mixed
|license=Mixed
|download=https://dlhb.gamebrew.org/dshomebrew2/stelladswav.7z
|download=https://dlhb.gamebrew.org/dshomebrew2/stelladswav.7z
Line 12: Line 12:
|source=https://github.com/wavemotion-dave/StellaDS
|source=https://github.com/wavemotion-dave/StellaDS
}}
}}
StellaDS is an Atari 2600 console emulator for the DS/DSi, based on AlekMaul's [[StellaDS|StellaDS]].
StellaDS is an Atari 2600 console emulator for the DS/DSi improved based on AlekMaul's [[StellaDS|StellaDS]].


This is the Phoenix Edition with improvements of speed, compatibility and accuracy to the emulation on the DSi. It also added new features such as instruction manuals and high score support.
This Phoenix Edition brings greater speed, compatibility and accuracy to the emulation on the DSi. It also added new features such as instruction manuals and high score support.


==Features==
==Features==
Line 126: Line 126:


==Changelog==
==Changelog==
'''V7.8 2024/11/30'''
* Further tweaks to the improved 'Wave Direct' to prevent audio gaps.
* First pass at allowing 'Wave Direct' for DS-Phat/Lite (only for simple games like Quadrun, Berzerk VE and Open Sesame).
* Tweaks to the DPC audio driver for improved Pitfall II music.
* Added support for some of the Voice Enhanced Berzerk hacks such as DrVsDaleks.
* Improved Meltdown emulation - added hack for NUSIZ0/1 to improve screen rendering. Not perfect but closer...
* Fixed Pole Position speedometer zero so it shows correctly and other minor graphical fixes (HMOVE timing)
* Fixed Grand Prix graphical glitch on rocks/scenery (HMOVE timing).
* Fixed Moon Patrol graphical glitch on right side of screen (HMOVE timing).
* Fixed Double Dragon graphical glitch on strength meter (HMOVE timing).
* Apply RSYNC improved TIA handling across the board (was only being applied to select games).
'''V7.7 2024/11/24'''
* Improved 'Wave Direct' sound to help with digitized speech effects of Quadrun, Berzerk VE, Open Sesame, Pitfall II, etc.
* Tweaked handling of the new Champ Games - Tuthankham.
* Version 7.7a - hotfix to support DrVsDalek hack with voice support and improved voice timing to eliminate gaps.
'''V7.6 2024/08/25'''
'''V7.6 2024/08/25'''
* Fixed config setting of RAM randomized vs clear.
* Fixed config setting of RAM randomized vs clear.

Latest revision as of 02:21, 1 December 2024

StellaDS Phoenix Edition
Stelladsphoenix4.png
General
AuthorDave Bernazzani (wavemotion)
TypeConsole
Version7.8
LicenseMixed
Last Updated2024/11/30
Links
Download
Website
Source

StellaDS is an Atari 2600 console emulator for the DS/DSi improved based on AlekMaul's StellaDS.

This Phoenix Edition brings greater speed, compatibility and accuracy to the emulation on the DSi. It also added new features such as instruction manuals and high score support.

Features

  • High level of compatibility to make games playable. Most games you remember fondly run full speed on a DSi in native 133MHz mode.
  • Full console emulation including Reset, Select, Difficulty Switches, TV Type.
  • Wide range of controllers including joystick, paddles, driving controller, booster grip, keypad, Genesis 2-button and more.
  • Savekey Support with backing 32K EEPROM.
  • FA2 and Cherity supported with backing EEPROM support.
  • Most popular bankswitching is supported up to 128K/256K BF/EF/DF/SB and 512K 3E and 3F schemes with up to 32K of RAM.
  • DPC+ Arm-Assisted games supported.
  • CDF/CDFJ/CDFJ+ Arm-Assisted games supported.
  • High score support with up to 10 scores for each game.
  • Manuals for more than 100 of the common games included.
  • Keypad overlay for Star Raiders.
  • Frame Blending to help smooth out flicker.

Installation

DIDL patch the StellaDS.nds file depending on the flash card (if it does not have auto-patching).

Copy it into a directory of your flash/(micro)SD/MMC card.

Put the a26/bin files where you want on your flashcard. If you are using Twilight Menu++, you will need to need to rename the .bin to .a26 in order to use.

User guide

When the emulator starts, click on the cartridge slot to choose a file.

Use Up/Down to select a file, then use A to load it.

Game Autodetection

The Atari 2600 utilizes a growing number of bankswitching scheme. StellaDS currently supports 36 different bank switching schemes (refer to the readme for the full list) - and it usually will auto-detect the right one. If for some reason it does not, you can go into the configuration (gear icon) and manually select a new scheme.

Be sure to hit START to save your config and then try re-loading the game (the bank switching requires a reload of the game). In the catastrophic event that the detected bankswitching scheme causes the emulation to crash, you can try loading the game using the Y (instead of A) button which will load the game but NOT start it running... this should let you go in and adjust the back switching scheme and other settings (PAL vs NTSC, etc).

Configuration

The gear icon on the main screen allows you to set a number of configuration parameters related specifically to the game you are running. In addition to the parameters shown, the difficulty switches (Left/Right A/B) are also saved on a per-game basis. If you change any configuration settings, you really should re-load the game after saving out your configuration - some settings such as Bank Switching and NTSC vs PAL are only applied when the game is first loaded.

Here is a description of the configuration items you can adjust. Be sure to press the START button to save out your configuration after making changes:

  • Controller - Most games use the Left-Joystick (with a Savekey in the right port) but you can change this.
  • Bankswitch - The system tries to auto-detect the correct bankswitching scheme but you can override that here if needed.
  • Frame Blend - Normal is fastest. Flicker free combines even/odd frames and it's pretty fast (10% hit to emulation speed which is no problem on most games) and effective at eliminating flicker. Background/Black mode is the slowest and will help with games that show background/black on one frame and sprites on the other (a simple blending will cause the sprites to disappear - Missile Command is one such game).
  • TV Type - NTSC vs PAL. Reload your game after saving this setting.
  • Palette - Three different palette types are supported. One optmized for the DS (default), the mainline Stella palette and the Z26 palette. You can also set the global palette for loading up all future games (page 2 of options).
  • Sound - Four different levels including the new WAVE DIRECT if you're using a game that does direct sound output (such as Quadrun, Stay Frosty 2, Mappy or Draconian). Most games should auto-detect this correctly. You can also set the global sound for loading up all future games (page 2 of options).
  • ABXY Button - Default to FIRE button but you can change this. You can now set to Screen Pan UP or Screen Pan DN to scroll the screen for more complex games. See Screen Settings below.
  • HBLANK Zero - Whether system clears pixels on horizontal blanks. Turn off at your own risk (it will speed up emulation which helps with older DS-LITE)
  • VBLANK Zero - Whether system clears pixels on vertical blanks. Turn off at your own risk (it will speed up emulation which helps with older DS-LITE)
  • Analog Sens - Default is 10 (1.0x speed). You can ajust how the paddle emulation responds.
  • Start Scanline - Starting Scanline setting. When the TV first starts output of scanlines.
  • Num Scanlines - Number of scanlines to display. Don't touch if you don't understand this.
  • Offset/Scale - You can ajust the screen scaling and offset positions for the game. If you scale down, be aware that some pixel lines will not render - such is life with a very small 256x192 pixel DS screen.
  • ARM THUMB - SAFE and Optimized are roughly the same - Optmized is preferred as is slightly faster and recommended for ARM-assisted games. Optimized-No-Collisions is generally fine for most of the new CDF/CDFJ/CDFJ+ games that don't need TIA hardware collision detection. One final experimental setting is to enable some level of frameskip for the really hard-hitting newest ARM games (e.g. Elevator Agent).
  • BUS Mode - For the DSi and above, this will default to 'Accurate' and for the older DS hardware (or running in DS compatibility mode on an R4 cart) it will be set to 'Optimized' to gain speed. If you encounter a glitch with a game, try setting this to 'Accurate'.
  • RAM Clear - Normally set to 'Random' but you can force the Atari VCS RAM to all zeros. A few games might care - but most won't.

These options are spread across two (2) pages, use the L/R shoulder buttons to switch pages. This gets you access to some global settings for sound quality and default color palette (after saving, new games loaded will use the global settings by default and you can tweak individual games as desired).

Screen settings

If you are only running Classic games - the default screen settings should be fine. But if you're running some of the newer homebrews created over the past decade, you will want to configure your screen properly. For many games, you simply can't fit all the content on the 192 pixel lines of a DS/DSi. For these you can either cut off the top, bottom or scale the screen.

When these options aren't enough, you can set your Y offset so that some of the screen is cut-off top or bottom and then you can map one of the DS buttons to 'SCREEN PAN UP' or 'SCREEN PAN DOWN' which will momentarily pan up or down. This works great for Champ Games offerings where the score display is normally off-screen while you play and then you can tap a button to briefly see it.

Backing files used by StellaDS

The /data directory on your SD card contains files generated by StellaDS, and you can manage them according to your preferences. Deleting a file will result in its clean recreation upon the next emulator boot.

Here are the key files in the /data directory:

  • StellaDS.DAT - This file stores per-game settings, saving configurations made using the START button on the Configuration screen. If you wish to reset all games to default settings, you can delete this file.
  • StellaDS.HI - File to store high-score on a per-game basis. Up to 10 high scores for each game. Pressing the golden chalice icon on the main screen allows you to access high scores.
  • StellaDS.EE - This is the SaveKey 32K EEPROM file for games that utilize a SaveKey. If you choose to remove it, StellaDS will generate a new clean and blank copy as needed.

Champ Games Support

StellaDS fully supports all current games from Champ Games, including Turbo Arcade and Elevator Agent. These titles showcase the Atari 2600's capabilities with an ARM co-processor for enhanced performance. To run these advanced arm-assisted games at their full potential, it's recommended to use a DSi or later model with TWiLight Menu++ or Unlaunch, unlocking the 2X CPU at 134MHz. The original DS or DSi/2DS/3DS running with an R4 cart will operate in DS compatibility mode at 67MHz, which may not provide optimal performance.

For the best experience, an XL/LL model with a larger screen is recommended due to its slower LCD fade, resulting in less flicker and a picture closer to an old TV.

Note that these games often utilize overscan, with extra information rendering off-screen. StellaDS focuses on the main gameplay portion, using screen pan UP/DN to shift additional information, such as scores or status, in and out of view. While most Champ Games run at or near full speed, Turbo Arcade may experience a slight dip in framerate during complex rendering scenes, and Elevator Agent may exhibit variable performance with occasional music output wavering. Testing the DEMO roms first is advisable to ensure satisfaction with the emulation quality.

Controls

D-Pad - the Joystick

A,B,X,Y - Fire button (configurable)

SELECT - SELECT switch

START - START switch

R+D-Pad - Shift display offset in the D-PAD direction

L+D-Pad - Change Scaling of the Y-Screen (UP/DOWN scaling only)

L+R+A - Swap LCD top/bottom

Hold L+R shoulder buttons for ~1 second to take a snapshot of the screen (written to SD card as a .BMP file).

Use stylus on buttons for other icon-based actions on bottom screen.

Screenshots

stelladsphoenix2.png

stelladsphoenix3.png

Compatibility

For the older DS-LITE and DS-PHAT, many of the simple 8k, 4k and 2k games will play perfectly. More sophisticated bank-switching schemes really require the DSi for the best experience.

If you're a fan of classic emulators on the DS/DSi, a DSi XL (USA) or LL (Japan) version is strongly recommended. Or a 2DS/3DS if you can get homebrews to run on those. The reason is that the original DSi has a fast LCD fade and as such some of the games will be a little hard to see or appear to flicker due to the way the original Atari game is coded. For a real TV or a slow LCD fade, this looks much better.

StellaDS includes an option to reduce the flicker - in configuration you can turn on Blending (recommend try Half Blend Mode as it's the least CPU intensive). This comes at a performance pentaly - for many games, the DSi can handle that penalty. For the ARM-Assisted games (DPC+, CDF/CDFJ/CDFJ+) that penalty will be too great which is why the full gammut of Atari games will always render best on an XL/LL screen.

Known issues

Please refer to https://github.com/wavemotion-dave/StellaDS/blob/master/README.md#known-issues-

Changelog

V7.8 2024/11/30

  • Further tweaks to the improved 'Wave Direct' to prevent audio gaps.
  • First pass at allowing 'Wave Direct' for DS-Phat/Lite (only for simple games like Quadrun, Berzerk VE and Open Sesame).
  • Tweaks to the DPC audio driver for improved Pitfall II music.
  • Added support for some of the Voice Enhanced Berzerk hacks such as DrVsDaleks.
  • Improved Meltdown emulation - added hack for NUSIZ0/1 to improve screen rendering. Not perfect but closer...
  • Fixed Pole Position speedometer zero so it shows correctly and other minor graphical fixes (HMOVE timing)
  • Fixed Grand Prix graphical glitch on rocks/scenery (HMOVE timing).
  • Fixed Moon Patrol graphical glitch on right side of screen (HMOVE timing).
  • Fixed Double Dragon graphical glitch on strength meter (HMOVE timing).
  • Apply RSYNC improved TIA handling across the board (was only being applied to select games).

V7.7 2024/11/24

  • Improved 'Wave Direct' sound to help with digitized speech effects of Quadrun, Berzerk VE, Open Sesame, Pitfall II, etc.
  • Tweaked handling of the new Champ Games - Tuthankham.
  • Version 7.7a - hotfix to support DrVsDalek hack with voice support and improved voice timing to eliminate gaps.

V7.6 2024/08/25

  • Fixed config setting of RAM randomized vs clear.
  • Fixed AR (Starpath/Supercharger) games to prevent memory overwrite.
  • Big improvement to Starpath Supercharger (AR) cart rendering for 3-6 frames of improvement.
  • Numerous comment cleanups and other minor refactors to improve the codebase.

V7.5a 2024/08/24

  • Fixed config setting of RAM randomized vs clear.
  • Fixed AR (Starpath/Supercharger) games to prevent memory overwrite.

V7.5 2024/08/23

  • Overhaul and refactor of cart/device handling to gain a 3-4% speed boost across the board.
  • Improved memory handling to use a bit less of the precious DS resources.
  • Fixed multi-load Starpath Supercharger (AR) carts so they work again (broken for almost a year!)
  • Cleanup as time permitted

V7.4 2024/08/19

  • Adding adding save/restore state handling for all games. Use the new down-arrow icon in the lower left.
  • Added 03E0 banking for Parker Bros. Brazilian carts.
  • Added 0FA0 banking for Fotomania Brazilian carts.

V7.3 2024/06/05

  • Added wF8 banking scheme for the new dump of Smurf and Zaxxon.
  • Added JANE banking scheme for the new Tarzan prototype release.
  • Added support for Champ Games Tutankham Arcade.

V7.2 2024/01/01

  • Updated copyright as we cross into the new year!
  • Another partial frame of performance on CDFJ/+ games.
  • Cleanup this readme file to reflect latest changes in the emulator.

V7.1b 2023/12/25

  • Squeezed out one extra frame of performance on CDFJ/+ games.
  • New light frameskip applied to Draconian for a performance boost.
  • Minor fixes and tweaks to make all the latest homebrew games look and play their best.
  • Version 7.1b eeks out another partial frame on the hardest hitting ARM-assisted games.

V7.0 2023/12/10

  • Champ Games Edition! Major overhal to the CDFJ/+ driver to squeeze out ever bit of performance.
  • Fix for Genesis gamepad emulation (detection now works).
  • Other minor cleanups and tweaks as time permitted.

V6.9 2023/12/06

  • Improved the ARM Thumb driver and the CDFJ driver to squeeze out two more frames of performance.
  • Fixed PAN UP / PAN DOWN handling on the A-button and you can now pan even if another button is pressed (useful for Turbo Arcade).
  • Minor cleanups as time permitted.

V6.8 2023/07/01

  • Improved RSYNC so Extra Terrestrials (1984 by Skill Screen Games) works.
  • Improved keypad handling so Magicard and similar keypad/keyboard game work.
  • Added a few of the ultra-rare games discovered in the last decade to the internal database.
  • Updated internal database to ROMHUNTER v18 for the classic-era games.
  • Starpath Supercharger (AR) carts now clear RAM by default (prevent lock-ups).
  • Added Dual Keypad/Keyboards for the few game that need them (BASIC, Magicard mostly).

V6.7 2023/06/24

  • Fix for Sword of Surtr so it runs correctly.
  • Hold L+R shoulder buttons for ~1 second to take a snapshot of the screen (written to SD card)
  • DSi now defaults to the 'Accurate' BUS MODE for maximum compatibility.
  • Improved data bus handling for undriven pins in Tia::Peek() for improved compatibility.
  • A few more tweaks to a few more games to make them as accurate as possible.

V6.6b 2023/06/21

  • DSi now defaults to the 'Accurate' BUS MODE for maximum compatibility.
  • Improved data bus handling for undriven pins in Tia::Peek() for improved compatibility.
  • A few more tweaks to a few more games to make them as accurate as possible.

V6.6 2023/06/20

  • Fix for Meltdown prototype so it doesn't crash.
  • Fix for Pleiades to fix graphical glitches.
  • Fix for Atom Smasher prototype so it doesn't crash on start (wrong bank scheme detected).
  • Fix for E7 banking so it handles 8K, 12K and 16K roms.
  • Fix for Flash Gordon to eliminate graphical glitches.
  • Fix for Elf Adventure prototype so it runs.
  • Fix for Star Gunner so it doesn't glitch.
  • Fix for Warlords graphical glitches.
  • Fix for Worm War I graphical glitches.
  • Fix for A-Star not starting.
  • Fix for Hugo Hunt graphical glitches.
  • Improved random() generator for more robust RAM clear / handling on startup and added config to either randomize RAM or clear it at start.
  • Added new option to use the 'Compatible' BUS driver which will handles things like invalid reads and drives unused TIA bits (a few games rely on this - but it does slow down emulation slightly).

V6.5 2022/12/21

  • Polished release - a few more tweaks, a few more optimizations and everything is running as fast science allows on the DS/DSi.
  • Removed "ghost read" and "ghost writes" on the 6502 emulation for a bit more speed.
  • Use of gcc "likely/unlikely" in a few key spots to help the compiler optimize.

V6.4 2022/12/16

  • Reduced stack memory so we don't crash when first creating a Savekey EE file.
  • Improved 6502 handling to localize the PC for a bit of a performance boost.
  • Added the 3E+ banking scheme.
  • New global palette and sound options on the Configuration Menu page 2 (use L/R keys).
  • Other small improvements as time permitted.

V6.3 2022/12/11

  • Improved performance across the board. More games play at the right speed even on the older DS-Lite/Phat.
  • New QuadTari support - for now it's just Dual Joysticks + SaveKey which is useful for games like Robotwar.

V6.2 2022/12/05

  • New WAVE DIRECT sound handling for fast-fetching music. Draconian, Mappy, Stay Frosty 2, Stella's Stocking, Pitfall II and Quadrun have much improved sound.
  • New palette options to tweak the colors to your liking.
  • Memory re-org for a bit more speed but also to recover some valuable resources so more features can be added in the future.
  • Added a 2nd page (not yet populated) for possible future options. This requires a new configuration file format - your old one will be reset. Sorry!
  • Fixed CDFJ+ fetchers causing problems (including incorrect handling of SaveKey).
  • Other small improvements as time permitted.

V6.1 2022/12/01

  • CDFJ+ games are now supported up to 256K of ROM and 32K of RAM. Turbo Arcade is playable but isn't yet full speed.
  • More speedup in ARM Thumb processing.
  • New Screen Pan Up and Pan Down handling - this can be mapped to any DS button (XYAB) to help with games that use more than 192 pixel lines (really useful for CDFJ games from Champ Games).

V6.0 2022/11/27

  • CDF/CDFJ games are now supported (but not CDFJ+)
  • Big speedup in ARM Thumb processing to render all DPC+ games full-speed on the DSi or above.

V5.9 2022/11/21

  • Minor fixes for some games to render them more accurately including the new Chaotic Grill homebrew.
  • Improved ARM Thumbulator for another frame of performance.
  • Minor cleanups and optimizations across the board.

V5.8 2022/10/21

  • Fixed colors in Medieval Mayhem (and a few other games).
  • Fixed stars to show properly in Stay Frosty and Rabbit Transit.
  • Streamlined DPC+ so Space Rocks and Stay Frosty 2 are full speed.
  • Minor cleanups and optmizations across the board.

V5.7 2022/10/18

  • Fixed Sword of Surtr so it plays properly.
  • Added TWIN STICK controller so games like Rail Slider are playable!
  • More DPC+ optimizations... Space Rocks is almost full speed!

V5.6 2022/10/14

  • Massive speedup improvement for DPC+ games. Most play full speed on the DSi.
  • Fixed graphical glitches on Space Rocks homebrew.
  • Other cleanups and optimizations across the board to shine things up.

V5.5 2022/10/12

  • Added DPC+ with ARM Thumbulator to provide some preliminary support for ARM-assisted games.
  • Improved execution speed of the emulator and improved the frame blending algorithm.

V5.4 2022/10/07

  • Added DF bank switching scheme (missed when DFSC was added).
  • New core execution loop that gives us another 2 frames of performance.
  • Optimized F4 driver to make some of the 32K games playable on DS-Lite.
  • Cleanup across the board.

V5.3 2022/10/03

  • Added Chetiry (CTY) bank switching scheme with EEPROM support (but no music fetchers).
  • Improved memory handling across the board for another frame of performance.
  • Fixed SP+ so it runs properly again.
  • Improved driver for Midnight Magic and Realsports Tennis so both now run at 60FPS!

V5.2 2022/09/30

  • Fixed goof in F6, F4 and related F6SC and F4SC drivers!
  • Another frame of increased performance
  • More accurate AR cart handling for Supercharger games
  • V5.2a: 3E and related fix

V5.1 2022/09/29

  • Improved all bankswitching for more speed and greater copatibility.
  • New F6 driver for DS-LITE to support 16K games - many at full speed!
  • Cleanups across the board.

V5.0 2022/09/27

  • Added new bankswitching scheme: X07 (Stella's Stocking).
  • Improved 4K/2K driver to squeese out a couple more frames of performance.
  • New special F8 driver to support more 8K games on the DS-Lite.
  • Lots of cleanup across the board in the database to make more games playable.
  • Updated to 5.0c with another frame of improvement for 4K and 8K games!

V4.9 2022/09/18

  • Added new bankswitching schemes: TVBOY, UASW and 0840 (Econobanking).
  • Fixed UA bankswitching scheme to allow more games to run.

V4.8 2022/09/11

  • Fixed Super Bank (SB) scheme.

V4.7 2022/03/24

  • Added per-game configuration settings.
  • Fixed 3E/3F and UA bankswitching schemes.

V4.6 2022/03/20

  • Added SaveKey support - standard games will have a virtual SaveKey in the right controller jack and will be auto-backed to a 32K /data/StellaDS.EE file.
  • Added EF, EFSC, DFSC and SB (SuperBank) support for games as large as 256K!

V4.5 2021/11/05

  • New sound output core - no more zingers.

V4.4 2021/08/22

  • Minor cleanups across the board. Improved AR cart speed by ~1FPS.
  • Added horizontal stretch - use the Left Shoulder + L/R D-Pad.
  • The Y button is now auto-fire.

V4.3 2021/08/09

  • Massive overhaul of the non-bank-switched engine so now the older DS-Lite and DS-Phat will run many games at full speed.

V4.2 2021/08/02

  • New overlay graphic for Star Raiders (plus manual).
  • A half dozen odd games got their controllers straightened out.
  • About 100 graphical tweaks for various games to make them look as good as possible.

V4.1 2021/07/28

  • Found another 1-2% speed up in TIA rendering.
  • Bumper Bash now plays correctly (you can use the shoulder buttons too).
  • Kool-Aid-Man now plays correctly.
  • Meltdown graphics improvements (but not fixed... but playable).
  • Alpha Beam, Big Bird and Cookie Monster games all work with joystick controls now.

V4.0 2021/07/24

  • Found another 3-5% speed up in TIA rendering! Official Frogger now at 60FPS.
  • Press and hold L+R+A to swap LCD screens.
  • Other minor cleanups and polish.

Release notes.

Credits

Thanks and credits:

External links

Advertising: