User Tools

Site Tools


wswan:guide:pcv2_support

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
wswan:guide:pcv2_support [2025/12/31 11:59] asiewswan:guide:pcv2_support [2025/12/31 13:10] (current) asie
Line 3: Line 3:
 Pocket Challenge V2 differs from the //mono// WonderSwan in two ways: Pocket Challenge V2 differs from the //mono// WonderSwan in two ways:
  
-  * Most boot ROM execution is skipped and the code entry point is different. +  * Most boot ROM execution is skipped and the code entry point is different. This is referred to as using the "pinstrap" entry point
-  * The input layout is different.+  * The input button layout is different.
  
-===== Pinstrap support =====+===== Pinstrap entry point =====
  
-"Pinstrap support" refers to an alternate mode of execution where code is executed from ''4000:0000'' or ''4000:0010'' instead of executing the full boot ROM logic and jumping to ''FFFF:0000''. It is documented in more detail on [[https://ws.nesdev.org/wiki/Boot_ROM|the WSdev wiki]].+"Pinstrap" refers to an alternate mode of execution where code is executed from ''4000:0000'' or ''4000:0010'' instead of executing the full boot ROM logic and jumping to ''FFFF:0000''. It is documented in more detail on [[https://ws.nesdev.org/wiki/Boot_ROM|the WSdev wiki]].
  
-The Pocket Challenge V2 uses the same ASWAN SoC as the "monoWonderSwan, but it repurposes the bit 1 pinstrap (code starts at ''4000:0010'') in order to bypass the Bandai splash screen, seeing as it is instead a Benesse product. This page documents how to use Wonderful to create a cartridge image that boots on the PCv2.+The Pocket Challenge V2 uses the same ASWAN SoC as the //mono// WonderSwan, but it repurposes the bit 1 pinstrap (code starts at ''4000:0010'') in order to bypass the Bandai splash screen, seeing as it is instead a Benesse product. This page documents how to use Wonderful to create a cartridge image that boots on the PCv2.
  
 ==== Adding the alternate start location ==== ==== Adding the alternate start location ====
Line 16: Line 16:
 To add a stub at ''4000:0010'' which jumps to your program, replace ''%%$(WF_CRT0)%%'' in your Makefile with ''%%$(WF_CRT0) $(WF_CRT0_PINSTRAP1)%%''. To add a stub at ''4000:0010'' which jumps to your program, replace ''%%$(WF_CRT0)%%'' in your Makefile with ''%%$(WF_CRT0) $(WF_CRT0_PINSTRAP1)%%''.
  
-For ''4000:0000'', add ''%%$(WF_CRT0_PINSTRAP0)%%'' instead. You can also add both.+For ''4000:0000'', append ''%%$(WF_CRT0_PINSTRAP0)%%'' instead of ''%%$(WF_CRT0_PINSTRAP1)%%''. You can also append both.
  
 ==== Adding missing hardware initialization ==== ==== Adding missing hardware initialization ====
Line 26: Line 26:
 </code> </code>
  
-==== Preserving unlocked boot ROM ====+==== Optional: Preserving unlocked boot ROM ====
  
 The default pinstrap stubs disable the boot ROM before jumping to user code, as the pinstrap mode starts with the boot ROM overlaid on top of the cartridge area at ''0xFF000'' - ''0xFFFFF''. If you'd like to instead access the boot ROM contents, you have to perform the following steps: The default pinstrap stubs disable the boot ROM before jumping to user code, as the pinstrap mode starts with the boot ROM overlaid on top of the cartridge area at ''0xFF000'' - ''0xFFFFF''. If you'd like to instead access the boot ROM contents, you have to perform the following steps:
Line 33: Line 33:
   * Add ''%%rom_reserve_bootrom_area = true%%'' to the ''%%[cartridge]%%'' section of ''%%wfconfig.toml%%''. This will reserve the final 8 KiB of the cartridge space, preventing any data assigned to the linear ROM bank (but //not// assigned to ROM0 or ROM1 banks) from being placed there.   * Add ''%%rom_reserve_bootrom_area = true%%'' to the ''%%[cartridge]%%'' section of ''%%wfconfig.toml%%''. This will reserve the final 8 KiB of the cartridge space, preventing any data assigned to the linear ROM bank (but //not// assigned to ROM0 or ROM1 banks) from being placed there.
  
-===== Input layout differences =====+===== Input button layout =====
  
-The input layout of the Pocket Challenge V2 is [[https://ws.nesdev.org/wiki/Keypad#Pocket_Challenge_V2|distinct]]. libws provides separate key defines matching this layout:+The input button layout of the Pocket Challenge V2 is [[https://ws.nesdev.org/wiki/Keypad#Pocket_Challenge_V2|distinct]]. libws provides separate key defines matching this layout:
  
 <code C> <code C>
wswan/guide/pcv2_support.1767182360.txt.gz · Last modified: by asie