Nostalgia Sim Baseball

Come play baseball with us! We combine the best in historically accurate baseball game simulation with a passion for baseball’s storied history. We believe playing a baseball sim should be a learning experience. That latest version of our free software package features many enhancements to Negro League player stats, including, for the first time, the use of splits and park factors. If you love making managerial decisions based on detailed baseball stats, this game is for you!  

Nostalgia Sim Baseball Software Main Screen
Nostalgia Sim Baseball Software Main Screen

Three Ways to Play!

1. Continuing Leagues

We have a community of longstanding members who play in our continuing leagues--the original concept for our game--running season after season, like MLB franchises. These leagues require longer-term player signings, draft pick trading, financial planning and management, and strategies oriented to the long haul of managing a franchise. These leagues are configured in many different ways. Some draft by historical era, some by random players selection, and some by a sequence of years. Some span the entire range of players from 1871 - present. Others focus on a single era, e.g. the dead ball era, or players since the turn of the millennium. Division structures and playoff structures vary.     

2. Single Season Leagues

Members can play in leagues that run for only a single-season. These leagues draft the 1st of each month. Schedules play three times daily for maximum control of your team. Each season is approximate 2 months duration. Teams come financially stocked. Owning teams in these leagues free you from financial worry and planning.       

3. Custom-Designed Leagues

Members can design and sim their own leagues by building them from the ground up or selecting historical teams, or a combination thereof. The software offers full managerial control of every team in the custom leagues and you can play the season schedule at your own pace.  

Version 7 of our software introduced players from the seven Negro Leagues recognized by MLB (1920 - 1948). Our baseball sim combines a competitive universe of statistical precision with a passion for baseball history and lore. Questions about our product can be directed to nostalgiasimbaseball@gmail.com

Technical Requirements

Nostalgia Sim Baseball is not an online game. You must have a Windows (any version) desktop, laptop, or notebook to run our free software. Most find the game more enjoyable on a larger screen. 

3.966MBMemory Usage58.59msRequest Duration
Joomla! Version4.4.12
PHP Version7.4.33
Identityguest
Response200
Templatecassiopeia
Database
Server
mysql
Version
8.0.27
Collation
utf8mb4_unicode_ci
Conn Collation
utf8mb4_general_ci
$_GET
[]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:42 [ "SCRIPT_URL" => "/" "SCRIPT_URI" => "https://www.nostalgiabaseball.com/" "HTTPS" =>...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1743804535 "last" => 1743804535...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:18 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (550.06KB) (2.35ms)
  • afterInitialise (1.6MB) (23.27ms)
  • afterRoute (109.66KB) (2.47ms)
  • beforeRenderComponent com_content (175.54KB) (2.96ms)
  • Before Access::preloadComponents (all components) (148.11KB) (1.49ms)
  • After Access::preloadComponents (all components) (109.96KB) (1.21ms)
  • Before Access::preloadPermissions (com_content) (2.76KB) (31μs)
  • After Access::preloadPermissions (com_content) (2.8KB) (675μs)
  • Before Access::getAssetRules (id:99 name:com_content.article.3) (56B) (19μs)
  • After Access::getAssetRules (id:99 name:com_content.article.3) (9.4KB) (115μs)
  • afterRenderComponent com_content (642.94KB) (14.32ms)
  • afterDispatch (2.25KB) (129μs)
  • beforeRenderRawModule mod_custom (Free Trial) (51.99KB) (2.02ms)
  • afterRenderRawModule mod_custom (Free Trial) (72.03KB) (475μs)
  • beforeRenderRawModule mod_custom (Announcement) (720B) (30μs)
  • afterRenderRawModule mod_custom (Announcement) (912B) (55μs)
  • beforeRenderModule mod_custom (Free Trial) (2.4KB) (373μs)
  • afterRenderModule mod_custom (Free Trial) (4.65KB) (140μs)
  • beforeRenderModule mod_custom (Announcement) (360B) (31μs)
  • afterRenderModule mod_custom (Announcement) (2.7KB) (60μs)
  • beforeRenderRawModule mod_breadcrumbs (Breadcrumbs) (832B) (83μs)
  • afterRenderRawModule mod_breadcrumbs (Breadcrumbs) (10.73KB) (583μs)
  • beforeRenderModule mod_breadcrumbs (Breadcrumbs) (704B) (7μs)
  • afterRenderModule mod_breadcrumbs (Breadcrumbs) (2.88KB) (101μs)
  • beforeRenderRawModule mod_menu (Main Menu) (1.63KB) (68μs)
  • afterRenderRawModule mod_menu (Main Menu) (86.42KB) (1.71ms)
  • beforeRenderModule mod_menu (Main Menu) (704B) (8μs)
  • afterRenderModule mod_menu (Main Menu) (2.68KB) (54μs)
  • afterRender (60.46KB) (3.09ms)
  • 1 x afterInitialise (1.6MB) (39.71%)
    23.27ms
    1 x afterRenderComponent com_content (642.94KB) (24.43%)
    14.32ms
    1 x afterRender (60.46KB) (5.27%)
    3.09ms
    1 x beforeRenderComponent com_content (175.54KB) (5.06%)
    2.96ms
    1 x afterRoute (109.66KB) (4.22%)
    2.47ms
    1 x afterLoad (550.06KB) (4.01%)
    2.35ms
    1 x beforeRenderRawModule mod_custom (Free Trial) (51.99KB) (3.44%)
    2.02ms
    1 x afterRenderRawModule mod_menu (Main Menu) (86.42KB) (2.92%)
    1.71ms
    1 x Before Access::preloadComponents (all components) (148.11KB) (2.54%)
    1.49ms
    1 x After Access::preloadComponents (all components) (109.96KB) (2.07%)
    1.21ms
    1 x After Access::preloadPermissions (com_content) (2.8KB) (1.15%)
    675μs
    1 x afterRenderRawModule mod_breadcrumbs (Breadcrumbs) (10.73KB) (0.99%)
    583μs
    1 x afterRenderRawModule mod_custom (Free Trial) (72.03KB) (0.81%)
    475μs
    1 x beforeRenderModule mod_custom (Free Trial) (2.4KB) (0.64%)
    373μs
    1 x afterRenderModule mod_custom (Free Trial) (4.65KB) (0.24%)
    140μs
    1 x afterDispatch (2.25KB) (0.22%)
    129μs
    1 x After Access::getAssetRules (id:99 name:com_content.article.3) (9.4KB) (0.2%)
    115μs
    1 x afterRenderModule mod_breadcrumbs (Breadcrumbs) (2.88KB) (0.17%)
    101μs
    1 x beforeRenderRawModule mod_breadcrumbs (Breadcrumbs) (832B) (0.14%)
    83μs
    1 x beforeRenderRawModule mod_menu (Main Menu) (1.63KB) (0.12%)
    68μs
    1 x afterRenderModule mod_custom (Announcement) (2.7KB) (0.1%)
    60μs
    1 x afterRenderRawModule mod_custom (Announcement) (912B) (0.09%)
    55μs
    1 x afterRenderModule mod_menu (Main Menu) (2.68KB) (0.09%)
    54μs
    1 x Before Access::preloadPermissions (com_content) (2.76KB) (0.05%)
    31μs
    1 x beforeRenderModule mod_custom (Announcement) (360B) (0.05%)
    31μs
    1 x beforeRenderRawModule mod_custom (Announcement) (720B) (0.05%)
    30μs
    1 x Before Access::getAssetRules (id:99 name:com_content.article.3) (56B) (0.03%)
    19μs
    1 x beforeRenderModule mod_menu (Main Menu) (704B) (0.01%)
    8μs
    1 x beforeRenderModule mod_breadcrumbs (Breadcrumbs) (704B) (0.01%)
    7μs
22 statements were executed, 2 of which were duplicates, 20 unique25.24ms505.05KB
  • SELECT `data` FROM `nsbj4_session` WHERE `session_id` = ?367μs17.65KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:261Copy
  • SELECT `session_id` FROM `nsbj4_session` WHERE `session_id` = :session_id LIMIT 1234μs16.98KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `nsbj4_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)6.4ms1.63KBParamsCopy
  • SELECT `extension_id` AS `id`,`element` AS `option`,`params`,`enabled` FROM `nsbj4_extensions` WHERE `type` = 'component' AND `state` = 0 AND `enabled` = 1862μs31.45KB/libraries/src/Component/ComponentHelper.php:399Copy
  • SELECT `id`,`rules` FROM `nsbj4_viewlevels`306μs17.14KB/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `nsbj4_usergroups` AS `a` LEFT JOIN `nsbj4_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest439μs17.1KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `folder` AS `type`,`element` AS `name`,`params` AS `params`,`extension_id` AS `id` FROM `nsbj4_extensions` WHERE `enabled` = 1 AND `type` = 'plugin' AND `state` IN (0,1) AND `access` IN (:preparedArray1,:preparedArray2) ORDER BY `ordering`1.07ms46.29KBParams/libraries/src/Plugin/PluginHelper.php:294Copy
  • SELECT `m`.`id`,`m`.`menutype`,`m`.`title`,`m`.`alias`,`m`.`note`,`m`.`link`,`m`.`type`,`m`.`level`,`m`.`language`,`m`.`browserNav`,`m`.`access`,`m`.`params`,`m`.`home`,`m`.`img`,`m`.`template_style_id`,`m`.`component_id`,`m`.`parent_id`,`m`.`path` AS `route`,`e`.`element` AS `component` FROM `nsbj4_menu` AS `m` LEFT JOIN `nsbj4_extensions` AS `e` ON `m`.`component_id` = `e`.`extension_id` WHERE ( (`m`.`published` = 1 AND `m`.`parent_id` > 0 AND `m`.`client_id` = 0) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :currentDate1)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :currentDate2) ORDER BY `m`.`lft`1.22ms73.37KBParams/libraries/src/Menu/SiteMenu.php:166Copy
  • SELECT * FROM `nsbj4_languages` WHERE `published` = 1 ORDER BY `ordering` ASC409μs18.65KB/libraries/src/Language/LanguageHelper.php:142Copy
  • SELECT `id`,`home`,`template`,`s`.`params`,`inheritable`,`parent` FROM `nsbj4_template_styles` AS `s` LEFT JOIN `nsbj4_extensions` AS `e` ON `e`.`element` = `s`.`template` AND `e`.`type` = 'template' AND `e`.`client_id` = `s`.`client_id` WHERE `s`.`client_id` = 0 AND `e`.`enabled` = 1557μs16.88KB/administrator/components/com_templates/src/Model/StyleModel.php:773Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `nsbj4_assets` WHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38)838μs32.5KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `nsbj4_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 0519μs22.34KBParams/libraries/src/Access/Access.php:301Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `nsbj4_content` AS `a` INNER JOIN `nsbj4_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `nsbj4_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `nsbj4_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `nsbj4_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `nsbj4_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)983μs28.23KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `nsbj4_categories` AS `s` INNER JOIN `nsbj4_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`832μs21.75KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`tag_id`,`t`.* FROM `nsbj4_contentitem_tag_map` AS `m` INNER JOIN `nsbj4_tags` AS `t` ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = :contentType AND `m`.`content_item_id` = :id AND `t`.`published` = 1 AND `t`.`access` IN (:preparedArray1,:preparedArray2)435μs19.56KBParams/libraries/src/Helper/TagsHelper.php:388Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `nsbj4_categories` AS `s` INNER JOIN `nsbj4_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`734μs21.75KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM nsbj4_fields AS a LEFT JOIN `nsbj4_languages` AS l ON l.lang_code = a.language LEFT JOIN nsbj4_users AS uc ON uc.id=a.checked_out LEFT JOIN nsbj4_viewlevels AS ag ON ag.id = a.access LEFT JOIN nsbj4_users AS ua ON ua.id = a.created_user_id LEFT JOIN nsbj4_fields_groups AS g ON g.id = a.group_id LEFT JOIN `nsbj4_fields_categories` AS fc ON fc.field_id = a.id WHERE ( (`a`.`context` = :context AND (`fc`.`category_id` IS NULL OR `fc`.`category_id` IN (:preparedArray1,:preparedArray2)) AND `a`.`access` IN (:preparedArray3,:preparedArray4)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray5,:preparedArray6)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC1.5ms24.18KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT `a`.`id`,`a`.`title`,`a`.`catid`,`a`.`language`, CASE WHEN CHAR_LENGTH(`a`.`alias`) != 0 THEN CONCAT_WS(':', `a`.`id`, `a`.`alias`) ELSE a.id END AS `slug`, CASE WHEN CHAR_LENGTH(`cc`.`alias`) != 0 THEN CONCAT_WS(':', `cc`.`id`, `cc`.`alias`) ELSE cc.id END AS `catslug` FROM `nsbj4_content` AS `a` LEFT JOIN `nsbj4_categories` AS `cc` ON `cc`.`id` = `a`.`catid` WHERE `a`.`catid` = :catid AND `a`.`state` = :state AND `a`.`access` IN (:preparedArray1,:preparedArray2) AND (`publish_up` IS NULL OR `publish_up` <= :nowDate1) AND (`publish_down` IS NULL OR `publish_down` >= :nowDate2) ORDER BY CASE WHEN `a`.`publish_up` IS NULL THEN `a`.`created` ELSE `a`.`publish_up` END DESC995μs19.2KBParams/plugins/content/pagenavigation/src/Extension/PageNavigation.php:188Copy
  • SELECT `m`.`id`,`m`.`title`,`m`.`module`,`m`.`position`,`m`.`content`,`m`.`showtitle`,`m`.`params`,`mm`.`menuid` FROM `nsbj4_modules` AS `m` LEFT JOIN `nsbj4_modules_menu` AS `mm` ON `mm`.`moduleid` = `m`.`id` LEFT JOIN `nsbj4_extensions` AS `e` ON `e`.`element` = `m`.`module` AND `e`.`client_id` = `m`.`client_id` WHERE ( ( (`m`.`published` = 1 AND `e`.`enabled` = 1 AND `m`.`client_id` = :clientId AND `m`.`access` IN (:preparedArray1,:preparedArray2)) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :publishUp)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :publishDown)) AND (`mm`.`menuid` = :itemId OR `mm`.`menuid` <= 0) ORDER BY `m`.`position`,`m`.`ordering`970μs22.33KBParams/libraries/src/Cache/Controller/CallbackController.php:51Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `nsbj4_scheduler_tasks` AS `a` WHERE `a`.`state` = 1512μs17.23KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:517Copy
  • SELECT `session_id` FROM `nsbj4_session` WHERE `session_id` = ?434μs17.01KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:291Copy
  • UPDATE `nsbj4_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?4.64ms1.84KBParamsCopy